@hatiolab/things-scene 10.0.0-beta.99 → 10.0.0

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 (278) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +56 -53
  3. package/dist-types/clock/frame-clock.d.ts.map +1 -1
  4. package/dist-types/command/command-migrate.d.ts.map +1 -1
  5. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  6. package/dist-types/components/audio.d.ts +12 -9
  7. package/dist-types/components/audio.d.ts.map +1 -1
  8. package/dist-types/components/component-drawing.d.ts.map +1 -1
  9. package/dist-types/components/component-geometry.d.ts.map +1 -1
  10. package/dist-types/components/component-hierarchy.d.ts +1 -1
  11. package/dist-types/components/component-hierarchy.d.ts.map +1 -1
  12. package/dist-types/components/component.d.ts +109 -13
  13. package/dist-types/components/component.d.ts.map +1 -1
  14. package/dist-types/components/container-abstract.d.ts +26 -22
  15. package/dist-types/components/container-abstract.d.ts.map +1 -1
  16. package/dist-types/components/container.d.ts +13 -9
  17. package/dist-types/components/container.d.ts.map +1 -1
  18. package/dist-types/components/data/data.d.ts.map +1 -1
  19. package/dist-types/components/data/evaluator.d.ts +27 -0
  20. package/dist-types/components/data/evaluator.d.ts.map +1 -1
  21. package/dist-types/components/donut.d.ts.map +1 -1
  22. package/dist-types/components/ellipse.d.ts +12 -9
  23. package/dist-types/components/ellipse.d.ts.map +1 -1
  24. package/dist-types/components/generic-placeholders.d.ts +12 -9
  25. package/dist-types/components/generic-placeholders.d.ts.map +1 -1
  26. package/dist-types/components/group.d.ts +1 -0
  27. package/dist-types/components/group.d.ts.map +1 -1
  28. package/dist-types/components/html/reposition.d.ts.map +1 -1
  29. package/dist-types/components/html-overlay-container.d.ts +13 -9
  30. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  31. package/dist-types/components/html-overlay-element.d.ts +25 -18
  32. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  33. package/dist-types/components/image-view.d.ts +12 -9
  34. package/dist-types/components/image-view.d.ts.map +1 -1
  35. package/dist-types/components/index.d.ts +1 -0
  36. package/dist-types/components/index.d.ts.map +1 -1
  37. package/dist-types/components/info-window.d.ts +12 -9
  38. package/dist-types/components/info-window.d.ts.map +1 -1
  39. package/dist-types/components/line.d.ts.map +1 -1
  40. package/dist-types/components/local-ref.d.ts +12 -9
  41. package/dist-types/components/local-ref.d.ts.map +1 -1
  42. package/dist-types/components/mixins/connectable.d.ts +12 -9
  43. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  44. package/dist-types/components/mixins/data-source.d.ts +12 -9
  45. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  46. package/dist-types/components/mixins/gltf-component.d.ts +13 -11
  47. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -1
  48. package/dist-types/components/mixins/holdable.d.ts +12 -0
  49. package/dist-types/components/mixins/holdable.d.ts.map +1 -0
  50. package/dist-types/components/mixins/html-element.d.ts +22 -9
  51. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  52. package/dist-types/components/mixins/move-handle.d.ts +21 -13
  53. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  54. package/dist-types/components/mixins/rect-path.d.ts +12 -9
  55. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  56. package/dist-types/components/mixins/three-d-only.d.ts +18 -9
  57. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -1
  58. package/dist-types/components/mixins/value-holder.d.ts +12 -9
  59. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  60. package/dist-types/components/modeling-faint.d.ts +14 -0
  61. package/dist-types/components/modeling-faint.d.ts.map +1 -0
  62. package/dist-types/components/mutater/path.d.ts.map +1 -1
  63. package/dist-types/components/node.d.ts +12 -9
  64. package/dist-types/components/node.d.ts.map +1 -1
  65. package/dist-types/components/polygon-container.d.ts +61 -0
  66. package/dist-types/components/polygon-container.d.ts.map +1 -0
  67. package/dist-types/components/polygon.d.ts.map +1 -1
  68. package/dist-types/components/polyline.d.ts +6 -0
  69. package/dist-types/components/polyline.d.ts.map +1 -1
  70. package/dist-types/components/popup.d.ts +12 -9
  71. package/dist-types/components/popup.d.ts.map +1 -1
  72. package/dist-types/components/rect.d.ts +24 -18
  73. package/dist-types/components/rect.d.ts.map +1 -1
  74. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  75. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  76. package/dist-types/components/root-container.d.ts +7 -0
  77. package/dist-types/components/root-container.d.ts.map +1 -1
  78. package/dist-types/components/ruler.d.ts +12 -9
  79. package/dist-types/components/ruler.d.ts.map +1 -1
  80. package/dist-types/components/service-component.d.ts +12 -9
  81. package/dist-types/components/service-component.d.ts.map +1 -1
  82. package/dist-types/components/star.d.ts.map +1 -1
  83. package/dist-types/components/text.d.ts +12 -9
  84. package/dist-types/components/text.d.ts.map +1 -1
  85. package/dist-types/core/dom-to-image.d.ts.map +1 -1
  86. package/dist-types/core/logger.d.ts.map +1 -1
  87. package/dist-types/core/memoize.d.ts.map +1 -1
  88. package/dist-types/decorator/decorator-registry.d.ts +10 -1
  89. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  90. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
  91. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  92. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
  93. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
  94. package/dist-types/diagnostics/contract-inspector.d.ts +9 -2
  95. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -1
  96. package/dist-types/diagnostics/data-lag-tracker.d.ts +31 -25
  97. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -1
  98. package/dist-types/diagnostics/inspector.d.ts +136 -3
  99. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  100. package/dist-types/diagnostics/loading-overlay.d.ts +67 -10
  101. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -1
  102. package/dist-types/diagnostics/metrics.d.ts +10 -0
  103. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  104. package/dist-types/flow/auto-route.d.ts +36 -0
  105. package/dist-types/flow/auto-route.d.ts.map +1 -0
  106. package/dist-types/flow/capability-inference.d.ts +19 -0
  107. package/dist-types/flow/capability-inference.d.ts.map +1 -0
  108. package/dist-types/flow/face-anchors.d.ts +26 -0
  109. package/dist-types/flow/face-anchors.d.ts.map +1 -0
  110. package/dist-types/flow/flow-engine.d.ts +122 -0
  111. package/dist-types/flow/flow-engine.d.ts.map +1 -0
  112. package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
  113. package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
  114. package/dist-types/flow/flow-graph-validator.d.ts +33 -0
  115. package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
  116. package/dist-types/flow/flow-graph.d.ts +76 -0
  117. package/dist-types/flow/flow-graph.d.ts.map +1 -0
  118. package/dist-types/flow/flow-introspection.d.ts +36 -0
  119. package/dist-types/flow/flow-introspection.d.ts.map +1 -0
  120. package/dist-types/flow/flow-node.d.ts +69 -0
  121. package/dist-types/flow/flow-node.d.ts.map +1 -0
  122. package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
  123. package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
  124. package/dist-types/flow/flow-orientation.d.ts +42 -0
  125. package/dist-types/flow/flow-orientation.d.ts.map +1 -0
  126. package/dist-types/flow/flow-trace.d.ts +5 -0
  127. package/dist-types/flow/flow-trace.d.ts.map +1 -0
  128. package/dist-types/flow/index.d.ts +16 -0
  129. package/dist-types/flow/index.d.ts.map +1 -0
  130. package/dist-types/flow/segment-topology.d.ts +225 -0
  131. package/dist-types/flow/segment-topology.d.ts.map +1 -0
  132. package/dist-types/interfaces/event-handler.d.ts +40 -0
  133. package/dist-types/interfaces/event-handler.d.ts.map +1 -0
  134. package/dist-types/interfaces/index.d.ts +2 -0
  135. package/dist-types/interfaces/index.d.ts.map +1 -1
  136. package/dist-types/interfaces/providers.d.ts +7 -0
  137. package/dist-types/interfaces/providers.d.ts.map +1 -1
  138. package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
  139. package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
  140. package/dist-types/items/arrangement/index.d.ts +2 -0
  141. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  142. package/dist-types/{transfer/container-capacity.d.ts → items/capacity-mixin.d.ts} +39 -78
  143. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  144. package/dist-types/items/capacity.d.ts +53 -0
  145. package/dist-types/items/capacity.d.ts.map +1 -0
  146. package/dist-types/items/index.d.ts +7 -0
  147. package/dist-types/items/index.d.ts.map +1 -0
  148. package/dist-types/items/items-data-binding.d.ts +103 -0
  149. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  150. package/dist-types/items/slot-record.d.ts +23 -0
  151. package/dist-types/items/slot-record.d.ts.map +1 -0
  152. package/dist-types/items/stacking/index.d.ts +3 -0
  153. package/dist-types/items/stacking/index.d.ts.map +1 -0
  154. package/dist-types/items/stacking/stack-layout.d.ts +33 -0
  155. package/dist-types/items/stacking/stack-layout.d.ts.map +1 -0
  156. package/dist-types/items/stacking/stacking-strategy.d.ts +114 -0
  157. package/dist-types/items/stacking/stacking-strategy.d.ts.map +1 -0
  158. package/dist-types/layer/layer.d.ts +1 -0
  159. package/dist-types/layer/layer.d.ts.map +1 -1
  160. package/dist-types/layer/model-layer.d.ts +25 -2
  161. package/dist-types/layer/model-layer.d.ts.map +1 -1
  162. package/dist-types/layer/modeler/index.d.ts +1 -0
  163. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  164. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  165. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  166. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  167. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  168. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  169. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  170. package/dist-types/layer/modeling-layer.d.ts +19 -0
  171. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  172. package/dist-types/layer/selection-layer.d.ts +7 -0
  173. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  174. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -1
  175. package/dist-types/license/license.d.ts.map +1 -1
  176. package/dist-types/search/scene-search-engine.d.ts +0 -1
  177. package/dist-types/search/scene-search-engine.d.ts.map +1 -1
  178. package/dist-types/search/search-overlay.d.ts +0 -1
  179. package/dist-types/search/search-overlay.d.ts.map +1 -1
  180. package/dist-types/things-scene/api/clipboard.d.ts +1 -1
  181. package/dist-types/things-scene/api/clipboard.d.ts.map +1 -1
  182. package/dist-types/things-scene/api/listener.d.ts +1 -1
  183. package/dist-types/things-scene/api/listener.d.ts.map +1 -1
  184. package/dist-types/things-scene/api/to-data-url.d.ts +1 -1
  185. package/dist-types/things-scene/api/to-data-url.d.ts.map +1 -1
  186. package/dist-types/things-scene/api/zorder.d.ts +1 -1
  187. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  188. package/dist-types/things-scene/application-context.d.ts +15 -2
  189. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  190. package/dist-types/things-scene/create.d.ts +24 -0
  191. package/dist-types/things-scene/create.d.ts.map +1 -1
  192. package/dist-types/things-scene/index.d.ts +11 -5
  193. package/dist-types/things-scene/index.d.ts.map +1 -1
  194. package/dist-types/things-scene/scene.d.ts +89 -20
  195. package/dist-types/things-scene/scene.d.ts.map +1 -1
  196. package/dist-types/threed/common.d.ts +6 -1
  197. package/dist-types/threed/common.d.ts.map +1 -1
  198. package/dist-types/threed/factories/backdrop.d.ts +25 -18
  199. package/dist-types/threed/factories/backdrop.d.ts.map +1 -1
  200. package/dist-types/threed/factories/banner.d.ts +14 -9
  201. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  202. package/dist-types/threed/factories/camera.d.ts +13 -9
  203. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  204. package/dist-types/threed/factories/cube.d.ts +12 -9
  205. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  206. package/dist-types/threed/factories/decal.d.ts +25 -20
  207. package/dist-types/threed/factories/decal.d.ts.map +1 -1
  208. package/dist-types/threed/factories/floor-plate.d.ts +1 -0
  209. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -1
  210. package/dist-types/threed/factories/gltf-object.d.ts +24 -18
  211. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  212. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  213. package/dist-types/threed/factories/sprite.d.ts +12 -9
  214. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  215. package/dist-types/threed/factories/wall.d.ts +12 -9
  216. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  217. package/dist-types/threed/handle-3d.d.ts.map +1 -1
  218. package/dist-types/threed/index.d.ts +6 -0
  219. package/dist-types/threed/index.d.ts.map +1 -1
  220. package/dist-types/threed/managers/event-manager3d.d.ts +6 -0
  221. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  222. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +0 -1
  223. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  224. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +0 -1
  225. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -1
  226. package/dist-types/threed/material-bank.d.ts +42 -0
  227. package/dist-types/threed/material-bank.d.ts.map +1 -0
  228. package/dist-types/threed/material-variant.d.ts +43 -0
  229. package/dist-types/threed/material-variant.d.ts.map +1 -0
  230. package/dist-types/threed/real-object-dom-element.d.ts +8 -0
  231. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  232. package/dist-types/threed/real-object-dom-texture.d.ts +0 -1
  233. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  234. package/dist-types/threed/real-object-mesh.d.ts +0 -1
  235. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  236. package/dist-types/threed/real-object-plane-2d.d.ts +0 -1
  237. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  238. package/dist-types/threed/real-object-sprite.d.ts +0 -1
  239. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  240. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  241. package/dist-types/threed/real-object.d.ts +104 -3
  242. package/dist-types/threed/real-object.d.ts.map +1 -1
  243. package/dist-types/threed/texture/fillstyle-texture.d.ts +13 -2
  244. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -1
  245. package/dist-types/threed/three-capability.d.ts +2 -0
  246. package/dist-types/threed/three-capability.d.ts.map +1 -1
  247. package/dist-types/threed/threed-enabled.d.ts +5 -0
  248. package/dist-types/threed/threed-enabled.d.ts.map +1 -0
  249. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  250. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  251. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  252. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  253. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  254. package/dist-types/transfer/index.d.ts +13 -3
  255. package/dist-types/transfer/index.d.ts.map +1 -1
  256. package/dist-types/transfer/pickup-helpers.d.ts +11 -1
  257. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -1
  258. package/dist-types/transfer/tracer.d.ts +35 -0
  259. package/dist-types/transfer/tracer.d.ts.map +1 -0
  260. package/dist-types/transfer/transfer-helpers.d.ts +18 -0
  261. package/dist-types/transfer/transfer-helpers.d.ts.map +1 -0
  262. package/dist-types/transfer/transfer.d.ts +132 -43
  263. package/dist-types/transfer/transfer.d.ts.map +1 -1
  264. package/dist-types/transfer/transferable-mixin.d.ts +275 -0
  265. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  266. package/dist-types/transfer/types.d.ts +75 -2
  267. package/dist-types/transfer/types.d.ts.map +1 -1
  268. package/dist-types/transition/transition-effect.d.ts +21 -1
  269. package/dist-types/transition/transition-effect.d.ts.map +1 -1
  270. package/dist-types/types/capability.d.ts +65 -0
  271. package/dist-types/types/capability.d.ts.map +1 -0
  272. package/package.json +2 -2
  273. package/things-scene-min.js +11 -11
  274. package/things-scene-min.js.map +1 -1
  275. package/things-scene-transfer.mjs +3 -2
  276. package/things-scene.mjs +3 -3
  277. package/things-scene.mjs.map +1 -1
  278. package/dist-types/transfer/container-capacity.d.ts.map +0 -1
@@ -0,0 +1,103 @@
1
+ import type { SlotRecord } from './slot-record.js';
2
+ type Ctor<T = {}> = new (...args: any[]) => T;
3
+ /**
4
+ * FlowNode-shape interface (mixin Base 제약). _items 어휘 + handoverIn / removeItem
5
+ * 가용성 보증. (실제 type 의존 회피 — circular import 방지.)
6
+ */
7
+ interface FlowNodeShape {
8
+ _items: any[];
9
+ handoverIn(carrier: any, options?: any): void;
10
+ removeItem(item: any, silent?: boolean): void;
11
+ slotIds?(): string[];
12
+ ready(): Promise<void> | void;
13
+ }
14
+ export declare function ItemsDataBinding<TBase extends Ctor<FlowNodeShape>>(Base: TBase): {
15
+ new (...args: any[]): {
16
+ /**
17
+ * 로드 시 model.data(records) → _items materialize.
18
+ *
19
+ * Component 생성자는 model 을 `_model` 에 *raw 저장* 할 뿐 `set data`(reconcile)를
20
+ * 호출하지 않는다 → 저장된 씬을 열면 state.data 엔 record 가 있어도 _items 는 비어
21
+ * 아무 화물도 안 보인다. ready(모델 완성 후 1회, 양 모드)에서 명시 reconcile.
22
+ * (배열일 때만 — 고전 scalar data(parcel toggle 등)는 items 아님. RecordStorage 는
23
+ * transient materialize 라 제외. _items 가 이미 차 있으면 runtime 설정된 것 → skip.)
24
+ */
25
+ ready(): Promise<void>;
26
+ /**
27
+ * data getter — _items + slotIds() → SlotRecord[] snapshot.
28
+ * 빈 slot 도 record (itemId: null) — 점유 상태 가시.
29
+ *
30
+ * RecordStorage 자손은 state.data 그대로 반환 (D-6, 2026-06-20).
31
+ *
32
+ * **보유 아이템이 없으면 `[]` 를 지어내지 않고 밑단 `state.data`(undefined/null 포함)를
33
+ * 그대로 반영한다.** ItemsDataBinding 이 없는 순수 컴포넌트와 구분되지 않게 하기 위함 —
34
+ * `return []` 이면 프레임워크가 `data !== undefined` 로 "빈 데이터를 보유"로 오인해
35
+ * data 핸들러(onchangeData / mapping / data-toggle)가 붙는다. 특히 data 를 items 가
36
+ * 아니라 *고전 트리거*(parcel 의 data-toggle → mapping)로 쓰는 carrier 는 data 가
37
+ * undefined 여야 `!data === true` 로 정상 토글된다. (아이템이 있으면 records 반환.)
38
+ */
39
+ get data(): SlotRecord[] | undefined;
40
+ /**
41
+ * data setter — external records → _items reconcile (3-step diff).
42
+ *
43
+ * RecordStorage 자손 (RackGrid / Stockpile / StorageRack — records-only) 은
44
+ * state.data 직접 path 우선 — ItemsDataBinding 의 reconcile 우회 (D-6, 2026-06-20).
45
+ * RecordStorage 의 obtainCarrier 가 transient materialize 담당, _items 는 미사용.
46
+ *
47
+ * **비-배열 값(boolean/scalar — data-toggle, 고전 data-binding)은 items reconcile
48
+ * 대상이 아니라 고전 채널로 통과시킨다** (`setState({data})` → onchangeData / mapping).
49
+ * getter 가 아이템 없을 때 state.data 를 그대로 반영하는 것과 대칭 — carrier 가 data 를
50
+ * items(배열)로도, 고전 트리거(parcel 의 data-toggle → mapping)로도 쓸 수 있게 공존.
51
+ * (예전엔 `!Array.isArray → return` 으로 토글값을 조용히 버려 parcel 매핑이 죽었다.)
52
+ */
53
+ set data(records: ReadonlyArray<SlotRecord> | any);
54
+ _reconcileItems(records: ReadonlyArray<SlotRecord>): void;
55
+ _exportSlotRecords(): SlotRecord[];
56
+ /**
57
+ * record 정체성 key — default = `slotId`. holder 가 carrier ID 기반 추적 원하면
58
+ * `record.itemId` 또는 `record.itemRefid` 사용으로 override.
59
+ */
60
+ _recordKey(record: SlotRecord): string;
61
+ /**
62
+ * default record build — holder override 권장 (도메인 확장 field 추가).
63
+ *
64
+ * itemState 산출:
65
+ * 1. _businessFields() 명시 시 → 화이트리스트만 (정공)
66
+ * 2. 미명시 시 → visual blacklist 제외 (fallback, back-compat)
67
+ *
68
+ * 사용자 인사이트 (2026-06-20): *_아이템의 모든 속성이 데이타가 될 필요는 없다.
69
+ * 비즈니스적인 속성이 훨씬 중요_* — 도메인 holder 가 sku / batch / weight / expiry
70
+ * 등 자기 비즈니스 속성 명시 책임.
71
+ */
72
+ _slotRecordOf(slotId: string, carrier: any | null): SlotRecord;
73
+ /**
74
+ * carrier.state → itemState 추출. 도메인 자손이 _businessFields() override 로
75
+ * 화이트리스트 명시 권장 — 정공 path. 미명시 시 visual blacklist 제외 (fallback).
76
+ */
77
+ _extractItemState(carrier: any): Record<string, any> | undefined;
78
+ /**
79
+ * 도메인 자손이 명시 — record.itemState 에 포함시킬 *_비즈니스 속성 화이트리스트_*.
80
+ *
81
+ * - 명시 (정공): `['sku', 'batch', 'weight', 'expiry']` — 그 field 만 export.
82
+ * - 미명시 (fallback): visual / scene transform 속성 자동 제외 + 나머지 spread.
83
+ *
84
+ * 사용자 인사이트 (2026-06-20): *_도메인 속성_* 이 진정한 data — 도메인 holder 가
85
+ * 자기 비즈니스 속성 명시 책임.
86
+ */
87
+ _businessFields(): readonly string[] | null;
88
+ /**
89
+ * record → carrier 인스턴스. default = things-scene Component.register lookup
90
+ * (record.itemType 의 등록된 type class 인스턴스 생성). 도메인 holder 가
91
+ * 특수 factory (custom args, validation, factory pool 등) 필요 시 override.
92
+ *
93
+ * record.itemType 미명시 또는 등록 안 된 type 시 null (reconcile 의 추가 단계 skip).
94
+ */
95
+ _createItemFromRecord(record: SlotRecord): any | null;
96
+ _items: any[];
97
+ handoverIn(carrier: any, options?: any): void;
98
+ removeItem(item: any, silent?: boolean): void;
99
+ slotIds?(): string[];
100
+ };
101
+ } & TBase;
102
+ export {};
103
+ //# sourceMappingURL=items-data-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items-data-binding.d.ts","sourceRoot":"","sources":["../../src/items/items-data-binding.ts"],"names":[],"mappings":"AAyDA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AA+B7C;;;GAGG;AACH,UAAU,aAAa;IACrB,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IAC7C,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,OAAO,CAAC,IAAI,MAAM,EAAE,CAAA;IAKpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK;kBA/C7C,GAAG,EAAE;QAiDnC;;;;;;;;WAQG;iBACY,OAAO,CAAC,IAAI,CAAC;QAsC5B;;;;;;;;;;;;WAYG;oBACS,UAAU,EAAE,GAAG,SAAS;QA3CpC;;;;;;;;;;;;WAYG;0BACe,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG;iCA2CxB,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI;8BA4CnC,UAAU,EAAE;QAkClC;;;WAGG;2BACgB,UAAU,GAAG,MAAM;QAItC;;;;;;;;;;WAUG;8BACmB,MAAM,WAAW,GAAG,GAAG,IAAI,GAAG,UAAU;QAgB9D;;;WAGG;mCACwB,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS;QAuBhE;;;;;;;;WAQG;2BACgB,SAAS,MAAM,EAAE,GAAG,IAAI;QAI3C;;;;;;WAMG;sCAC2B,UAAU,GAAG,GAAG,GAAG,IAAI;gBAtP/C,GAAG,EAAE;4BACO,GAAG,YAAY,GAAG,GAAG,IAAI;yBAC5B,GAAG,WAAW,OAAO,GAAG,IAAI;oBACjC,MAAM,EAAE;;UAqQrB"}
@@ -0,0 +1,23 @@
1
+ export interface SlotRecord {
2
+ /** slot 식별자 (holder 안 유일). 예: 'forks' / 'cell-3-0-2' / 'slide' / 'pos-7' */
3
+ slotId?: string;
4
+ /** 점유 상태 — item 의 *_비즈니스 식별자_* (sku / sscc / lot 등). 없으면 null.
5
+ * refid(things-scene 내부 정적/동적 영역 인덱스)는 절대 넣지 않는다 — data 영속 시 영역 오염. */
6
+ itemId?: string | null;
7
+ /** item 도메인 type — 'pallet' / 'parcel' / 'tote' 등 */
8
+ itemType?: string;
9
+ /** item 의 추가 state snapshot (도메인 확장 — left/top/rotation/etc.) */
10
+ itemState?: Record<string, any>;
11
+ /** slot 정적 메타 — capacity / kind 등 (holder 가 정의) */
12
+ slotMeta?: Record<string, any>;
13
+ /**
14
+ * @deprecated D-1 (2026-06-20) — back-compat. cellId 기반 records (RackGrid /
15
+ * Stockpile / RecordStorage) 와 호환 위해 잔존. 새 코드는 `slotId` 사용.
16
+ */
17
+ cellId?: string;
18
+ /** @deprecated 도메인 자유 field — back-compat. */
19
+ type?: string;
20
+ /** holder 별 도메인 확장 field 자유 (extends SlotRecord 권장). */
21
+ [key: string]: any;
22
+ }
23
+ //# sourceMappingURL=slot-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-record.d.ts","sourceRoot":"","sources":["../../src/items/slot-record.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;4EACwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAEtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,wDAAwD;IACxD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB"}
@@ -0,0 +1,3 @@
1
+ export * from './stack-layout.js';
2
+ export * from './stacking-strategy.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/items/stacking/index.ts"],"names":[],"mappings":"AAMA,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,33 @@
1
+ export type StackPattern = 'row' | 'staggered' | 'pyramid' | 'column' | 'pile';
2
+ export interface StackCell {
3
+ /** carrier 평면 가로(x). */
4
+ w: number;
5
+ /** carrier 평면 세로(z). */
6
+ h: number;
7
+ /** carrier 적층 높이(y). */
8
+ d: number;
9
+ }
10
+ export interface StackArea {
11
+ /** 적치 영역 가로(x). */
12
+ w: number;
13
+ /** 적치 영역 세로(z). */
14
+ h: number;
15
+ }
16
+ /**
17
+ * stackPattern 별 각 carrier 의 local 좌표(영역 중심 기준). y 는 바닥 위 적층 높이(d 단위),
18
+ * x/z 는 영역 평면 위 분포. 반환 길이 = min(count, heightLimit 적용 결과).
19
+ */
20
+ /** 적치 채움 방향 — *입구 맞은편 슬라이스부터 입구쪽으로 한 슬라이스씩* 진행. caller
21
+ * (stockpile)가 그래프에서 입구를 도출해 넘긴다. 기본 = z 축 진행, -z 슬라이스부터. */
22
+ export interface StackFillOptions {
23
+ /** 진행축을 x 로 (입구가 좌/우 = x 방향일 때). false 면 z 축 진행. */
24
+ advanceAlongX?: boolean;
25
+ /** 진행 시작 슬라이스를 + 끝으로 (입구가 - 쪽이면 반대편 = + 끝부터). */
26
+ reverse?: boolean;
27
+ }
28
+ export declare function computeStackPositions(pattern: StackPattern, count: number, area: StackArea, cell: StackCell, gap: number, heightLimit?: number, fillOpts?: StackFillOptions): Array<{
29
+ x: number;
30
+ y: number;
31
+ z: number;
32
+ }>;
33
+ //# sourceMappingURL=stack-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-layout.d.ts","sourceRoot":"","sources":["../../../src/items/stacking/stack-layout.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;AAK9E,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAA;IACT,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAA;IACT,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,mBAAmB;IACnB,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;GAGG;AACH;8DAC8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6H5C"}
@@ -0,0 +1,114 @@
1
+ import * as THREE from 'three';
2
+ import type { StackArea, StackCell, StackPattern, StackFillOptions } from './stack-layout.js';
3
+ export type { StackArea, StackCell } from './stack-layout.js';
4
+ /** 적층 옵션 백 — 새 옵션은 선택 필드 추가(하위호환). */
5
+ export interface StackOptions {
6
+ /** 아이템 간 수평 간격 (0 = 딱 붙음). */
7
+ gap?: number;
8
+ /** 최대 단 수(layer count) 제한. 미지정 = 무제한(모두 쌓음). (총 높이가 아니라 *단 수* —
9
+ * scene-unit 높이 제한이 있으면 caller 가 `floor(높이 / 아이템높이)` 로 환산해 넘긴다.) */
10
+ heightLimit?: number;
11
+ /** 채우기 진행 방향(입구 반대편부터 등). */
12
+ fill?: StackFillOptions;
13
+ }
14
+ /** 한 아이템 배치 결과 — 위치 + (선택)자세. staggered/브릭 등 회전 패턴 대응. */
15
+ export interface StackPlacement {
16
+ position: {
17
+ x: number;
18
+ y: number;
19
+ z: number;
20
+ };
21
+ rotation?: {
22
+ x: number;
23
+ y: number;
24
+ z: number;
25
+ w: number;
26
+ };
27
+ }
28
+ /**
29
+ * 적층 전략 계약. `layout` 은 holder-local placement 배열 반환 — 원점 = 영역 중심,
30
+ * y = 수직(0 = 바닥층). 넘치면 위층. baseline(deck/pad top) 미포함(소비자가 더함).
31
+ */
32
+ export interface StackingStrategy {
33
+ layout(count: number, area: StackArea, cell: StackCell, opts?: StackOptions): StackPlacement[];
34
+ }
35
+ /**
36
+ * PatternStacking — 기존 `computeStackPositions` 엔진을 패턴으로 래핑
37
+ * (row / column / staggered / pyramid / pile). Stockpile 계열 적치.
38
+ */
39
+ export declare class PatternStacking implements StackingStrategy {
40
+ private readonly pattern;
41
+ private readonly defaults;
42
+ constructor(pattern: StackPattern, defaults?: StackOptions);
43
+ layout(count: number, area: StackArea, cell: StackCell, opts?: StackOptions): StackPlacement[];
44
+ }
45
+ /**
46
+ * GridStacking — 정확한 cols×rows footprint 중앙 정렬 + **수직 무제한 적층**.
47
+ * `computeStackPositions` 의 패턴들이 주지 못하는 격자 적층(예: 팔레트 2×2)을 담당.
48
+ * footprint 를 다 채우면(= cols*rows 개) 위층으로 쌓는다. 층 높이 = cell.d.
49
+ */
50
+ export declare class GridStacking implements StackingStrategy {
51
+ private readonly cols;
52
+ private readonly rows;
53
+ private readonly defaults;
54
+ constructor(cols: number, rows: number, defaults?: StackOptions);
55
+ layout(count: number, _area: StackArea, cell: StackCell, opts?: StackOptions): StackPlacement[];
56
+ }
57
+ /**
58
+ * VolumeStacking — 3D 부피를 cols×rows×layers 로 채우는 보편 적층(트레일러/컨테이너/bin).
59
+ *
60
+ * cols/rows 는 area(수평 바닥)와 cell 에서 **자동 도출**(GridStacking 은 고정 cols/rows). 층 수는
61
+ * opts.heightLimit(단 수)로 제한, 미지정 시 count 만큼 무제한 적층. 간격은 cell 치수의 비율
62
+ * (`gapRatio`, 축별). `fillFromFar` 면 rows 를 먼 쪽(+z, 예: 트럭 뒤)부터 채운다.
63
+ *
64
+ * 반환은 표준 규약: holder-local **중앙 정렬** x/z + y=수직(바닥층 중심 = cell.d/2). 소비자가
65
+ * 받침면 baseline 을 더한다. (트레일러의 wall/pad·frame 오프셋은 소비자(_repositionAll)가 적용.)
66
+ */
67
+ export declare class VolumeStacking implements StackingStrategy {
68
+ private readonly gapRatio;
69
+ private readonly fillFromFar;
70
+ private readonly sliceFirst;
71
+ /**
72
+ * @param gapRatio 아이템 간 간격 = 치수 × ratio (축별). default 0.1.
73
+ * @param fillFromFar rows(깊이 z) 진행 방향을 뒤집는다. default false = -z(row 0)부터 +z 로.
74
+ * @param sliceFirst **true = 슬라이스(수직 벽) 우선** — 한 depth-row 의 벽(cols×layers)을 꽉
75
+ * 채우고 다음 depth 로. 트럭/컨테이너 적재(벽 단위, 출구쪽 슬라이스가 working-edge → 먼저
76
+ * 소비). false(기본) = layer 우선(바닥 전체 → 위층). 팔레트식. sliceFirst 는 heightLimit(단 수)
77
+ * 필요(없으면 layer-first fallback).
78
+ */
79
+ constructor(gapRatio?: number, fillFromFar?: boolean, sliceFirst?: boolean);
80
+ /** area(수평) × cell 로부터 cols/rows + 축별 pitch 산출. */
81
+ private grid;
82
+ /** cols×rows×maxLayers = 이 부피가 수용하는 최대 개수. */
83
+ capacity(area: StackArea, cell: StackCell, maxLayers: number): number;
84
+ layout(count: number, area: StackArea, cell: StackCell, opts?: StackOptions): StackPlacement[];
85
+ }
86
+ /**
87
+ * placements 를 대상 object3d 들에 적용 — 실 Component(Pallet) / 가상 mesh(Stockpile) 무관.
88
+ * host 자식으로 attach 하고 (baselineY + 층 y) 위치·자세 설정. things 와 placements 는 index 대응.
89
+ */
90
+ export declare function applyStackLayout(host: THREE.Object3D, things: Array<THREE.Object3D | undefined | null>, placements: StackPlacement[], baselineY?: number): void;
91
+ /** 2D top-down footprint 한 셀 — (x,y)=board 좌표 좌상단, w×h 크기, count=겹친(적층) 개수. */
92
+ export interface StackFootprintCell {
93
+ x: number;
94
+ y: number;
95
+ w: number;
96
+ h: number;
97
+ count: number;
98
+ }
99
+ /**
100
+ * placements 를 **2D top-down footprint 로 투영** — 3D 와 *같은* StackingStrategy.layout 을 2D
101
+ * 렌더가 소비하도록(한 소스, 방언 금지). holder-local (x,z) → board 좌표. 같은 (x,z)에 겹친
102
+ * 화물은 하나의 셀 + count 로 묶는다(적층 = ×N). 소비자(pallet/trailer postrender)는 이 셀들을
103
+ * 자기 appearance 로 그리기만 한다.
104
+ */
105
+ export declare function footprint2D(placements: StackPlacement[], area: {
106
+ left: number;
107
+ top: number;
108
+ width: number;
109
+ height: number;
110
+ }, cell: {
111
+ w: number;
112
+ h: number;
113
+ }, marginRatio?: number): StackFootprintCell[];
114
+ //# sourceMappingURL=stacking-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacking-strategy.d.ts","sourceRoot":"","sources":["../../../src/items/stacking/stacking-strategy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import Component from '../components/component.js';
2
2
  import ContainerAbstract from '../components/container-abstract.js';
3
3
  export default class Layer extends ContainerAbstract {
4
+ get showMoveHandle(): boolean;
4
5
  _element: HTMLElement | null;
5
6
  _draw_reserved: any;
6
7
  __draw__: any;
@@ -1 +1 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/layer/layer.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAInE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB;IAClD,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAO;IACnC,cAAc,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,GAAG,CAAA;IACb,eAAe,EAAE,GAAG,CAAA;IACpB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IAsCpC,IAAI,OAAO,IAAI,WAAW,GAAG,IAAI,CAAyB;IAC1D,IAAI,OAAO,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,EAAuB;IAExD,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG;IAsBzD,MAAM;IAIN,OAAO;IAIP,IAAI,YAAY,YAEf;IAED,IAAI,OAAO,IAAI,GAAG,CAAqB;IAEvC,aAAa;IASb,IAAI,aAAa,WAEhB;IAED,IAAI,MAAM,QAET;IAED,IAAI,MAAM,CAAC,MAAM,KAAA,EAuBhB;IAED,IAAI,MAAM,IAAI,iBAAiB,GAAG,IAAI,CAErC;IAED,OAAO;IAQP,IAAI,QAAQ,IAAI,SAAS,EAAE,CAE1B;IAED,IAAI,QAAQ,CAAC,IAAI,EAJD,SAAS,EAIR,EAEhB;IAED,IAAI,2BAA2B,YAE9B;IAED,IAAI,OAAO,qBAEV;IAED,IAAI,OAAO,CAAC,SAAS,kBAAA,EAEpB;IAED,IAAI,SAAS,QAgBZ;IAED,UAAU,CAAC,SAAS,EAAE,GAAG;IASzB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;IAalB,SAAS,CAAC,OAAO,EAAE,wBAAwB;IAkB3C,IAAI,WAAW;;;MAMd;IAGD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAI7B,UAAU;IASV,IAAI,CAAC,MAAM,EAAE,GAAG;IAWhB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;CAqCvC"}
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../src/layer/layer.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAInE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB;IAIlD,IAAI,cAAc,YAEjB;IAED,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAO;IACnC,cAAc,EAAE,GAAG,CAAA;IACnB,QAAQ,EAAE,GAAG,CAAA;IACb,eAAe,EAAE,GAAG,CAAA;IACpB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IA8CpC,IAAI,OAAO,IAAI,WAAW,GAAG,IAAI,CAAyB;IAC1D,IAAI,OAAO,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,EAAuB;IAExD,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG;IAsBzD,MAAM;IAIN,OAAO;IAIP,IAAI,YAAY,YAEf;IAED,IAAI,OAAO,IAAI,GAAG,CAAqB;IAEvC,aAAa;IASb,IAAI,aAAa,WAEhB;IAED,IAAI,MAAM,QAET;IAED,IAAI,MAAM,CAAC,MAAM,KAAA,EAuBhB;IAED,IAAI,MAAM,IAAI,iBAAiB,GAAG,IAAI,CAErC;IAED,OAAO;IAQP,IAAI,QAAQ,IAAI,SAAS,EAAE,CAE1B;IAED,IAAI,QAAQ,CAAC,IAAI,EAJD,SAAS,EAIR,EAEhB;IAED,IAAI,2BAA2B,YAE9B;IAED,IAAI,OAAO,qBAEV;IAED,IAAI,OAAO,CAAC,SAAS,kBAAA,EAEpB;IAED,IAAI,SAAS,QAgBZ;IAED,UAAU,CAAC,SAAS,EAAE,GAAG;IASzB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;IAalB,SAAS,CAAC,OAAO,EAAE,wBAAwB;IAkB3C,IAAI,WAAW;;;MAMd;IAGD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAI7B,UAAU;IASV,IAAI,CAAC,MAAM,EAAE,GAAG;IAWhB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;CAqCvC"}
@@ -1,6 +1,7 @@
1
1
  import * as THREE from 'three';
2
2
  import type { ArrowStyle3D } from '../threed/arrow-3d.js';
3
3
  import Component from '../components/component.js';
4
+ import { type EventHandler, type EventTrigger } from '../interfaces/event-handler.js';
4
5
  import ScenePopup from './action/popup.js';
5
6
  import DualCanvasLayer from './dual-canvas-layer.js';
6
7
  import { ThreeCapability } from '../threed/three-capability.js';
@@ -34,6 +35,11 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
34
35
  onMonitorToggle?: () => void;
35
36
  get nature(): ComponentNature;
36
37
  get is3dMode(): boolean;
38
+ /**
39
+ * 3D capability 전역 스위치 참조 (모듈스코프, 앱 부트스트랩에서 setThreedEnabled 로 설정).
40
+ * false 이면 3D 는 전혀 켜지지 않는다 (2D 전용). 인스턴스별로 다르지 않다.
41
+ */
42
+ private get _threedEnabled();
37
43
  is3dContainer(): boolean;
38
44
  get gizmoMode(): 'translate' | 'rotate' | 'scale' | undefined;
39
45
  setGizmoMode(mode: 'translate' | 'rotate' | 'scale'): void;
@@ -136,9 +142,11 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
136
142
  centerTo(component: any, animated?: boolean): void;
137
143
  ready(): Promise<void>;
138
144
  /**
139
- * 3D 모드 전환 (모델에 저장하지 않음 런타임 전환만)
145
+ * 라이브 모드 제어 API (런타임 전환만모델의 threed 설정은 건드리지 않음).
146
+ * threed 속성(열 때 초기 모드)과 무관하게, 이미 열린 뷰의 2D/3D 를 바꾼다.
140
147
  */
141
- private _threeDUserDeactivated;
148
+ private _threeDActivationPending;
149
+ private _rebuildPreserveThreeD;
142
150
  toggleThreeD(force3d?: boolean): void;
143
151
  dispose(): void;
144
152
  contains(x: any, y: any): boolean;
@@ -221,6 +229,21 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
221
229
  _onmouseenter_all(event: any, hint: any): void;
222
230
  _onmouseleave_all(event: any, hint: any): void;
223
231
  _onclick(event: any, hint: any): void;
232
+ /**
233
+ * 컴포넌트의 eventHandlers (legacy 정규화 포함) 중 매칭되는 trigger 의 핸들러
234
+ * 모두 실행. enter=true (mouseenter/click), enter=false (mouseleave).
235
+ *
236
+ * 실행 순서:
237
+ * 1) 컴포넌트 class 의 *built-in method* (예: onTap, onMouseEnter) — 도메인
238
+ * 기본 동작 (예: SlidingDoor.onTap → toggle). 컴포넌트가 override 시 호출.
239
+ * 2) state.eventHandlers (사용자 커스텀) — UI 에서 등록한 script/action.
240
+ *
241
+ * 둘 다 실행 — *override 가 아니라 augment*. 사용자 커스텀이 도메인 동작 보완.
242
+ */
243
+ _dispatchEventHandlers(component: any, triggers: EventTrigger[], event: any, enter: boolean): void;
244
+ /** EventTrigger → 컴포넌트 method 이름. 컴포넌트가 해당 method override 시 자동 호출. */
245
+ _triggerToMethodName(trigger: EventTrigger, enter: boolean): string | undefined;
246
+ _executeHandler(handler: EventHandler, component: any, event: any, enter: boolean): void;
224
247
  _onmousedownup(event: any, hint: any): void;
225
248
  _doMouseDownUpEventAction(event: any, component: any, enter: any, org_event: any): void;
226
249
  _doEventAction(event: any, component: any, enter: any, org_event: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export { default as PathHandler } from './path-handler.js';
5
5
  export { default as AnchorHandler } from './anchor-handler.js';
6
6
  export { default as Resizer } from './resizer.js';
7
7
  export { default as Rotator } from './rotator.js';
8
+ export { default as MoveHandleModeler } from './move-handle-modeler.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function getMoveHandleImage(): HTMLImageElement;
2
+ //# sourceMappingURL=move-handle-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-handle-icon.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/move-handle-icon.ts"],"names":[],"mappings":"AASA,wBAAgB,kBAAkB,qBAGjC"}
@@ -0,0 +1,18 @@
1
+ export default class MoveHandleModeler {
2
+ layer: any;
3
+ active: any;
4
+ constructor(layer: any);
5
+ reset(): void;
6
+ get selected(): any;
7
+ /** 핸들 사각 영역 (컴포넌트 좌표계, scale 역보정으로 화면 고정 크기). */
8
+ private _rect;
9
+ contains(x: number, y: number, component: any, scale: any): boolean;
10
+ draw(ctx: CanvasRenderingContext2D, 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
+ /** 마우스 이벤트 → 컴포넌트 부모 좌표계 점 (move-handler 와 동일). */
16
+ private _pointOf;
17
+ }
18
+ //# sourceMappingURL=move-handle-modeler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-handle-modeler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/move-handle-modeler.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;gBAEC,KAAK,EAAE,GAAG;IAItB,KAAK;IAIL,IAAI,QAAQ,QAEX;IAED,iDAAiD;IACjD,OAAO,CAAC,KAAK;IAOb,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAWzD,IAAI,CAAC,GAAG,EAAE,wBAAwB,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAyB9D,WAAW,CAAC,EAAE,EAAE,GAAG;IAQnB,WAAW,CAAC,CAAC,EAAE,GAAG;IAMlB,UAAU,CAAC,CAAC,EAAE,GAAG;IAOjB,SAAS,CAAC,EAAE,EAAE,GAAG;IAMjB,mDAAmD;IACnD,OAAO,CAAC,QAAQ;CAOjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA0CA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;gBAEA,KAAK,EAAE,GAAG;IAItB,KAAK;IAML,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IA6D/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAgG9B,UAAU,CAAC,CAAC,KAAA;IAiCZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAkBb,UAAU,CAAC,CAAC,KAAA;IAgLZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
1
+ {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA0CA,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;gBAEA,KAAK,EAAE,GAAG;IAItB,KAAK;IAML,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAmE/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAsG9B,UAAU,CAAC,CAAC,KAAA;IAiCZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAkBb,UAAU,CAAC,CAAC,KAAA;IAgLZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"rotator.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/rotator.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;gBAEC,KAAK,EAAE,GAAG;IAItB,KAAK;IAKL,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAkB/B,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IA0C9B,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAQb,UAAU,CAAC,CAAC,KAAA;IAmCZ,SAAS,CAAC,CAAC,KAAA;CAuBZ"}
1
+ {"version":3,"file":"rotator.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/rotator.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE,GAAG,CAAA;gBAEC,KAAK,EAAE,GAAG;IAItB,KAAK;IAKL,IAAI,QAAQ,QAEX;IAED,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAkB/B,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IA0C9B,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAOb,UAAU,CAAC,CAAC,KAAA;IAmCZ,SAAS,CAAC,CAAC,KAAA;CAuBZ"}
@@ -16,6 +16,10 @@ export default class ModelingLayer extends DualCanvasLayer {
16
16
  _anchorTarget: any;
17
17
  _hovered: any;
18
18
  processingLink: any;
19
+ moveHandleModeler: any;
20
+ /** 이동 핸들을 표시할 컨테이너 (hovered 와 분리 — grace period 동안 유지된다). */
21
+ _moveHandleSticky: any;
22
+ _moveHandleHideTimer: any;
19
23
  constructor(model: any, context: any);
20
24
  get modelers(): any[];
21
25
  get reversedModelers(): any[];
@@ -25,10 +29,25 @@ export default class ModelingLayer extends DualCanvasLayer {
25
29
  _componentDrawer(context: any, component: any, scale: any, logic: any): void;
26
30
  prerender(context: any): void;
27
31
  render(context: any): void;
32
+ /** component 또는 그 조상 중 가장 가까운 showMoveHandle 컨테이너 (없으면 null). */
33
+ _moveHandleOwner(component: any): any;
34
+ /**
35
+ * 핸들 표시/hit 의 실제 대상. 삭제된(parent 없음) sticky 는 즉시 해제하고 null 반환.
36
+ *
37
+ * 컴포넌트 삭제 시 onchange_model/onselected 의 invalidate 가 재렌더를 부르고, 이때
38
+ * render/capture 가 본 메서드를 통해 죽은 sticky 를 정리 → 핸들이 grace 타이머(1s)를
39
+ * 기다리지 않고 즉시 사라진다. 또한 capture(hit-test)가 죽은 대상으로 contains 계산을
40
+ * 하지 않아 "삭제 후 보드 전체 클릭 불가" (stale hit 가로채기) 를 막는다.
41
+ */
42
+ _resolveMoveHandleOwner(): any;
28
43
  get anchorTarget(): any;
29
44
  set anchorTarget(target: any);
30
45
  get hovered(): any;
31
46
  set hovered(hovered: any);
47
+ /** grace period 후 이동 핸들 sticky 를 해제한다 (핸들 위에 있으면 유지). */
48
+ _scheduleMoveHandleHide(): void;
49
+ _clearMoveHandleHideTimer(): void;
50
+ dispose(): void;
32
51
  startLinkProcess(linkFrom: any, linkModel: any, e: any): void;
33
52
  set counterEnd(anchor: any);
34
53
  get counterEnd(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"modeling-layer.d.ts","sourceRoot":"","sources":["../../src/layer/modeling-layer.ts"],"names":[],"mappings":"AAUA,OAAO,eAAe,MAAM,wBAAwB,CAAA;AAGpD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IAChD,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,GAAG,EAAE,CAAA;IAChB,sBAAsB,EAAE,GAAG,EAAE,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;IACjB,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,GAAG,CAAA;IAClB,kBAAkB,EAAE,GAAG,EAAE,CAAA;IACzB,8BAA8B,EAAE,GAAG,EAAE,CAAA;IACrC,WAAW,EAAE,GAAG,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,GAAG,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,GAAG,CAAA;IAClB,QAAQ,EAAE,GAAG,CAAA;IACb,cAAc,EAAE,GAAG,CAAA;gBAEf,KAAK,KAAA,EAAE,OAAO,KAAA;IAuB1B,IAAI,QAAQ,UAEX;IAED,IAAI,gBAAgB,UAEnB;IAGK,KAAK;IAWX,OAAO,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,MAAM,KAAA;IAQpB,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IA2Eb,gBAAgB,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA;IAqDjD,SAAS,CAAC,OAAO,KAAA;IAuBjB,MAAM,CAAC,OAAO,KAAA;IAyCd,IAAI,YAAY,QAUf;IAED,IAAI,YAAY,CAAC,MAAM,KAAA,EAEtB;IAED,IAAI,OAAO,QAEV;IAED,IAAI,OAAO,CAAC,OAAO,KAAA,EAIlB;IAED,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAOvC,IAAI,UAAU,CAAC,MAAM,KAAA,EAGpB;IAED,IAAI,UAAU,QAEb;IAED,cAAc;IAMd,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;MAwBX;IAED,YAAY,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAIpB,YAAY,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAIpB,SAAS,CAAC,CAAC,KAAA;IASX,OAAO,CAAC,CAAC,KAAA;IAOT,UAAU,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAIxB,cAAc,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAoBlC,gBAAgB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAQ5B,UAAU,CAAC,CAAC,KAAA;IAMZ,WAAW,CAAC,CAAC,KAAA;IAMb,SAAS,CAAC,CAAC,KAAA;IAMX,WAAW,CAAC,CAAC,KAAA;IAKb,UAAU,CAAC,CAAC,KAAA;IAMZ,SAAS,CAAC,CAAC,KAAA;IAOX,MAAM,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA4Id,aAAa,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAqEtB"}
1
+ {"version":3,"file":"modeling-layer.d.ts","sourceRoot":"","sources":["../../src/layer/modeling-layer.ts"],"names":[],"mappings":"AAUA,OAAO,eAAe,MAAM,wBAAwB,CAAA;AAWpD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;IAChD,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,GAAG,EAAE,CAAA;IAChB,sBAAsB,EAAE,GAAG,EAAE,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;IACjB,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,GAAG,CAAA;IAClB,kBAAkB,EAAE,GAAG,EAAE,CAAA;IACzB,8BAA8B,EAAE,GAAG,EAAE,CAAA;IACrC,WAAW,EAAE,GAAG,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,GAAG,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,GAAG,CAAA;IAClB,QAAQ,EAAE,GAAG,CAAA;IACb,cAAc,EAAE,GAAG,CAAA;IACnB,iBAAiB,EAAE,GAAG,CAAA;IAC9B,6DAA6D;IACrD,iBAAiB,EAAE,GAAG,CAAA;IACtB,oBAAoB,EAAE,GAAG,CAAA;gBAErB,KAAK,KAAA,EAAE,OAAO,KAAA;IAwB1B,IAAI,QAAQ,UAEX;IAED,IAAI,gBAAgB,UAEnB;IAGK,KAAK;IAWX,OAAO,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,MAAM,KAAA;IAQpB,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IA8Fb,gBAAgB,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA;IAqDjD,SAAS,CAAC,OAAO,KAAA;IAuBjB,MAAM,CAAC,OAAO,KAAA;IAkDd,iEAAiE;IACjE,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG;IAMrC;;;;;;;OAOG;IACH,uBAAuB,IAAI,GAAG;IAO9B,IAAI,YAAY,QAUf;IAED,IAAI,YAAY,CAAC,MAAM,KAAA,EAEtB;IAED,IAAI,OAAO,QAEV;IAED,IAAI,OAAO,CAAC,OAAO,KAAA,EAelB;IAED,yDAAyD;IACzD,uBAAuB;IAavB,yBAAyB;IAOzB,OAAO;IAKP,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAOvC,IAAI,UAAU,CAAC,MAAM,KAAA,EAGpB;IAED,IAAI,UAAU,QAEb;IAED,cAAc;IAMd,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;MAwBX;IAED,YAAY,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAUpB,YAAY,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAQpB,SAAS,CAAC,CAAC,KAAA;IASX,OAAO,CAAC,CAAC,KAAA;IAOT,UAAU,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAIxB,cAAc,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAoBlC,gBAAgB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAQ5B,UAAU,CAAC,CAAC,KAAA;IAMZ,WAAW,CAAC,CAAC,KAAA;IAMb,SAAS,CAAC,CAAC,KAAA;IAMX,WAAW,CAAC,CAAC,KAAA;IAKb,UAAU,CAAC,CAAC,KAAA;IAMZ,SAAS,CAAC,CAAC,KAAA;IAOX,MAAM,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA4Id,aAAa,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAqEtB"}
@@ -32,6 +32,13 @@ export default class SelectionLayer extends Layer {
32
32
  _selectGroupItem(origin: any, e: any): void;
33
33
  onmousedown_comp(e: any, hint: any): void;
34
34
  onmouseup_comp(e: any, hint: any): void;
35
+ /**
36
+ * selbox(영역 멀티선택)를 *_시작_* 할 origin 인가.
37
+ * - `origin.stuck`: 기존 — 배경 / lock / 배치형(card·linear·table) 컨테이너.
38
+ * - 이동 핸들을 가진 컨테이너의 *_메인영역_* 드래그: stuck 이 아니어도 *_내부 자식들_* 을
39
+ * selbox 로 선택하기 위해 시작 허용. (핸들 영역 드래그는 컨테이너 이동이므로 제외.)
40
+ */
41
+ _isSelboxOrigin(origin: any): boolean;
35
42
  ondragstart_selbox(e: any, hint: any): void;
36
43
  ondragmove_selbox(e: any, hint: any): void;
37
44
  ondragend_selbox(e: any, hint: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"selection-layer.d.ts","sourceRoot":"","sources":["../../src/layer/selection-layer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,YAAY,CAAA;AA0B9B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,GAAG,CAAA;IAGf,KAAK;IAiBX,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAIb,MAAM,CAAC,GAAG,KAAA;IAmBV,IAAI,QAAQ;;;;;;;;;;;;;;;;;;MAqBX;IAED,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA8CjB,mBAAmB,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAYvC,gBAAgB,CAAC,CAAC,KAAA;IAQlB,gBAAgB,CAAC,MAAM,KAAA,EAAE,CAAC,KAAA;IAoF1B,gBAAgB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA8CxB,cAAc,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAkDtB,kBAAkB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAiB1B,iBAAiB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA0BzB,gBAAgB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAYzB"}
1
+ {"version":3,"file":"selection-layer.d.ts","sourceRoot":"","sources":["../../src/layer/selection-layer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,YAAY,CAAA;AA0B9B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,GAAG,CAAA;IAGf,KAAK;IAiBX,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAIb,MAAM,CAAC,GAAG,KAAA;IAmBV,IAAI,QAAQ;;;;;;;;;;;;;;;;;;MAqBX;IAED,SAAS,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA8CjB,mBAAmB,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAYvC,gBAAgB,CAAC,CAAC,KAAA;IAQlB,gBAAgB,CAAC,MAAM,KAAA,EAAE,CAAC,KAAA;IAoF1B,gBAAgB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA8CxB,cAAc,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAkDtB;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAOrC,kBAAkB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAoB1B,iBAAiB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAuBzB,gBAAgB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAczB"}
@@ -1 +1 @@
1
- {"version":3,"file":"snap-guide-layer.d.ts","sourceRoot":"","sources":["../../src/layer/snap-guide-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,OAAO,KAAK,MAAM,YAAY,CAAA;AAM9B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAC/C,OAAO,CAAC,WAAW,CAA0B;IAE7C,IAAI,aAAa,WAEhB;IAED,IAAI,UAAU,YAEb;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAI/B,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,CAElC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,EAGvC;IAED,KAAK;IAOL,IAAI,QAAQ;;;gCAUe,GAAG;;;MAF7B;IAED,mBAAmB,CAAC,KAAK,EAAE,GAAG;IAM9B,OAAO,CAAC,aAAa;IAUf,KAAK;IAKX,MAAM,CAAC,GAAG,EAAE,wBAAwB;CA4BrC"}
1
+ {"version":3,"file":"snap-guide-layer.d.ts","sourceRoot":"","sources":["../../src/layer/snap-guide-layer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,KAAK,MAAM,YAAY,CAAA;AAM9B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAC/C,OAAO,CAAC,WAAW,CAA0B;IAE7C,IAAI,aAAa,WAEhB;IAED,IAAI,UAAU,YAEb;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAI/B,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,CAElC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,EAGvC;IAED,KAAK;IAOL,IAAI,QAAQ;;;gCAUe,GAAG;;;MAF7B;IAED,mBAAmB,CAAC,KAAK,EAAE,GAAG;IAM9B,OAAO,CAAC,aAAa;IAUf,KAAK;IAKX,MAAM,CAAC,GAAG,EAAE,wBAAwB;CA4BrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/license/license.ts"],"names":[],"mappings":"AAkBA,qBAAa,OAAO;IAClB,MAAM,CAAC,IAAI,EAAE,GAAG,CAAA;IAChB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAA;IAGpB,MAAM,KAAK,SAAS,YA0BnB;IAGD,MAAM,KAAK,GAAG,QAEb;IAGD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAA,EAIjB;IAED,MAAM,KAAK,WAAW,QAErB;IAED,MAAM,KAAK,cAAc,QAMxB;IAED,MAAM,KAAK,QAAQ,QAElB;IAED,MAAM,KAAK,UAAU,QAEpB;IAED,MAAM,KAAK,OAAO,QAEjB;IAED,MAAM,KAAK,OAAO,CAAC,OAAO,KAAA,EAEzB;IAED,MAAM,CAAC,eAAe;IAyBtB,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAiCzD,MAAM,CAAC,WAAW;IAIlB,MAAM,CAAC,WAAW;IASlB,MAAM,CAAC,UAAU;IAMjB,MAAM,KAAK,KAAK,YAMf;CACF;AAwBD,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QAE/B"}
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/license/license.ts"],"names":[],"mappings":"AAeA,qBAAa,OAAO;IAClB,MAAM,CAAC,IAAI,EAAE,GAAG,CAAA;IAChB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAA;IAGpB,MAAM,KAAK,SAAS,YA0BnB;IAGD,MAAM,KAAK,GAAG,QAEb;IAGD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAA,EAIjB;IAED,MAAM,KAAK,WAAW,QAErB;IAED,MAAM,KAAK,cAAc,QAMxB;IAED,MAAM,KAAK,QAAQ,QAElB;IAED,MAAM,KAAK,UAAU,QAEpB;IAED,MAAM,KAAK,OAAO,QAEjB;IAED,MAAM,KAAK,OAAO,CAAC,OAAO,KAAA,EAEzB;IAED,MAAM,CAAC,eAAe;IAyBtB,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;IAiCzD,MAAM,CAAC,WAAW;IAIlB,MAAM,CAAC,WAAW;IASlB,MAAM,CAAC,UAAU;IAKjB,MAAM,KAAK,KAAK,YAMf;CACF;AAoBD,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QAE/B"}
@@ -31,7 +31,6 @@ export interface SearchOptions {
31
31
  export declare class SceneSearchEngine {
32
32
  private _results;
33
33
  private _currentIndex;
34
- private _lastQuery;
35
34
  get results(): readonly SearchResult[];
36
35
  get currentIndex(): number;
37
36
  get currentResult(): SearchResult | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEvB,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAmC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
1
+ {"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAkC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
@@ -40,7 +40,6 @@ export declare class SearchOverlay {
40
40
  private _historyIndex;
41
41
  private _savedInput;
42
42
  private static MAX_HISTORY;
43
- private _keyboardNav;
44
43
  get isVisible(): boolean;
45
44
  get engine(): SceneSearchEngine;
46
45
  setup(host: SearchOverlayHost): void;
@@ -1 +1 @@
1
- {"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,0BAA0B,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAG/B,OAAO,CAAC,YAAY,CAAQ;IAE5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAkBZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IA8JjB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA+HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAkBZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IA8JjB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA8HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -1,4 +1,4 @@
1
1
  export declare function copy(this: any): string | undefined;
2
2
  export declare function cut(this: any): string | undefined;
3
- export declare function paste(this: any, copied: string): void;
3
+ export declare function paste(this: any, copied?: string): void;
4
4
  //# sourceMappingURL=clipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/clipboard.ts"],"names":[],"mappings":"AAWA,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,sBAU7B;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,sBAO5B;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAS9C"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/clipboard.ts"],"names":[],"mappings":"AAWA,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,sBAU7B;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,sBAO5B;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,QAS/C"}
@@ -1,4 +1,4 @@
1
1
  export declare function on(this: any, event: string, listener: any, context?: any): void;
2
2
  export declare function once(this: any, event: string, listener: any, context?: any): void;
3
- export declare function off(this: any, event: string, listener: any, context?: any): void;
3
+ export declare function off(this: any, event?: string, listener?: any, context?: any): void;
4
4
  //# sourceMappingURL=listener.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/listener.ts"],"names":[],"mappings":"AAmBA,wBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAExE;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAE1E;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAEzE"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/listener.ts"],"names":[],"mappings":"AAmBA,wBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAExE;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAE1E;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,QAE3E"}