@hatiolab/things-scene 10.0.0-beta.4 → 10.0.0-beta.40

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 (179) hide show
  1. package/CHANGELOG.md +2240 -0
  2. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  3. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  4. package/dist-types/animation/interfaces.d.ts +1 -1
  5. package/dist-types/animation/interfaces.d.ts.map +1 -1
  6. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  7. package/dist-types/components/audio.d.ts.map +1 -1
  8. package/dist-types/components/component-data.d.ts +2 -0
  9. package/dist-types/components/component-data.d.ts.map +1 -1
  10. package/dist-types/components/container-abstract.d.ts +14 -1
  11. package/dist-types/components/container-abstract.d.ts.map +1 -1
  12. package/dist-types/components/data/data.d.ts.map +1 -1
  13. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  14. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  15. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  16. package/dist-types/components/global-ref.d.ts.map +1 -1
  17. package/dist-types/components/image-view.d.ts.map +1 -1
  18. package/dist-types/components/index.d.ts +1 -0
  19. package/dist-types/components/index.d.ts.map +1 -1
  20. package/dist-types/components/line.d.ts +1 -1
  21. package/dist-types/components/mutater/path.d.ts.map +1 -1
  22. package/dist-types/components/root-container.d.ts +11 -4
  23. package/dist-types/components/root-container.d.ts.map +1 -1
  24. package/dist-types/components/service-component.d.ts +264 -0
  25. package/dist-types/components/service-component.d.ts.map +1 -0
  26. package/dist-types/decorator/decorator-registry.d.ts +4 -0
  27. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  28. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  29. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  30. package/dist-types/diagnostics/data-lag-tracker.d.ts +44 -0
  31. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  32. package/dist-types/diagnostics/inspector.d.ts +0 -1
  33. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  34. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  35. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  36. package/dist-types/diagnostics/loading-overlay.d.ts +41 -0
  37. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  38. package/dist-types/event-map/index.d.ts +1 -0
  39. package/dist-types/event-map/index.d.ts.map +1 -1
  40. package/dist-types/event-map/transition-handler.d.ts +2 -0
  41. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  42. package/dist-types/interfaces/providers.d.ts +5 -0
  43. package/dist-types/interfaces/providers.d.ts.map +1 -1
  44. package/dist-types/layer/action/popup.d.ts +1 -0
  45. package/dist-types/layer/action/popup.d.ts.map +1 -1
  46. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  47. package/dist-types/layer/index.d.ts +1 -0
  48. package/dist-types/layer/index.d.ts.map +1 -1
  49. package/dist-types/layer/layer.d.ts +1 -0
  50. package/dist-types/layer/layer.d.ts.map +1 -1
  51. package/dist-types/layer/model-layer.d.ts +46 -7
  52. package/dist-types/layer/model-layer.d.ts.map +1 -1
  53. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  54. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  55. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  56. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  57. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  58. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  59. package/dist-types/search/index.d.ts +3 -0
  60. package/dist-types/search/index.d.ts.map +1 -0
  61. package/dist-types/search/scene-search-engine.d.ts +65 -0
  62. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  63. package/dist-types/search/search-overlay.d.ts +69 -0
  64. package/dist-types/search/search-overlay.d.ts.map +1 -0
  65. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  66. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  67. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  68. package/dist-types/things-scene/application-context.d.ts +16 -0
  69. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  70. package/dist-types/things-scene/create.d.ts +4 -1
  71. package/dist-types/things-scene/create.d.ts.map +1 -1
  72. package/dist-types/things-scene/index.d.ts +7 -0
  73. package/dist-types/things-scene/index.d.ts.map +1 -1
  74. package/dist-types/things-scene/scene.d.ts +15 -0
  75. package/dist-types/things-scene/scene.d.ts.map +1 -1
  76. package/dist-types/threed/arrow-3d.d.ts +13 -4
  77. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  78. package/dist-types/threed/common.d.ts +5 -0
  79. package/dist-types/threed/common.d.ts.map +1 -1
  80. package/dist-types/threed/environments/base-environment.d.ts +9 -0
  81. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  82. package/dist-types/threed/environments/factory-environment.d.ts +10 -0
  83. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -0
  84. package/dist-types/threed/environments/home-environment.d.ts +10 -0
  85. package/dist-types/threed/environments/home-environment.d.ts.map +1 -0
  86. package/dist-types/threed/environments/index.d.ts +6 -0
  87. package/dist-types/threed/environments/index.d.ts.map +1 -0
  88. package/dist-types/threed/environments/office-environment.d.ts +10 -0
  89. package/dist-types/threed/environments/office-environment.d.ts.map +1 -0
  90. package/dist-types/threed/environments/studio-environment.d.ts +11 -0
  91. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -0
  92. package/dist-types/threed/environments/warehouse-environment.d.ts +10 -0
  93. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -0
  94. package/dist-types/threed/factories/banner.d.ts +2 -1
  95. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  96. package/dist-types/threed/factories/camera.d.ts +1 -0
  97. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  98. package/dist-types/threed/factories/cube.d.ts +1 -0
  99. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  100. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  101. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  102. package/dist-types/threed/factories/gltf-object.d.ts +20 -4
  103. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  104. package/dist-types/threed/factories/light.d.ts +1 -0
  105. package/dist-types/threed/factories/light.d.ts.map +1 -1
  106. package/dist-types/threed/factories/line.d.ts +10 -0
  107. package/dist-types/threed/factories/line.d.ts.map +1 -0
  108. package/dist-types/threed/factories/polyline.d.ts +10 -0
  109. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  110. package/dist-types/threed/factories/sphere.d.ts +1 -0
  111. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  112. package/dist-types/threed/factories/sprite.d.ts +1 -0
  113. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  114. package/dist-types/threed/factories/wall.d.ts +1 -0
  115. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  116. package/dist-types/threed/index.d.ts +6 -0
  117. package/dist-types/threed/index.d.ts.map +1 -1
  118. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  119. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  120. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +127 -0
  121. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -0
  122. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  123. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  124. package/dist-types/threed/managers/controls-manager.d.ts +22 -4
  125. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  126. package/dist-types/threed/managers/event-manager3d.d.ts +8 -0
  127. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  128. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +6 -0
  129. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  130. package/dist-types/threed/managers/index.d.ts +3 -0
  131. package/dist-types/threed/managers/index.d.ts.map +1 -1
  132. package/dist-types/threed/managers/interaction-manager.d.ts +16 -0
  133. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  134. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  135. package/dist-types/threed/managers/renderer-manager.d.ts +32 -0
  136. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  137. package/dist-types/threed/managers/scene-manager.d.ts +11 -0
  138. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  139. package/dist-types/threed/managers/types.d.ts +5 -2
  140. package/dist-types/threed/managers/types.d.ts.map +1 -1
  141. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +109 -0
  142. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  143. package/dist-types/threed/material-3d.d.ts +5 -0
  144. package/dist-types/threed/material-3d.d.ts.map +1 -1
  145. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  146. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  147. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  148. package/dist-types/threed/real-object-extrude.d.ts +6 -0
  149. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  150. package/dist-types/threed/real-object-gltf.d.ts +48 -3
  151. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  152. package/dist-types/threed/real-object-line.d.ts +81 -0
  153. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  154. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  155. package/dist-types/threed/real-object-service.d.ts +14 -0
  156. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  157. package/dist-types/threed/real-object-text.d.ts +2 -0
  158. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  159. package/dist-types/threed/real-object.d.ts +22 -2
  160. package/dist-types/threed/real-object.d.ts.map +1 -1
  161. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  162. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  163. package/dist-types/threed/texture/fillstyle-texture.d.ts +37 -0
  164. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  165. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  166. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  167. package/dist-types/threed/three-capability.d.ts +136 -6
  168. package/dist-types/threed/three-capability.d.ts.map +1 -1
  169. package/dist-types/threed/three-container.d.ts +5 -1
  170. package/dist-types/threed/three-container.d.ts.map +1 -1
  171. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  172. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  173. package/dist-types/transition/transition-effect.d.ts +84 -0
  174. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  175. package/package.json +4 -3
  176. package/things-scene-min.js +11 -12
  177. package/things-scene-min.js.map +1 -1
  178. package/things-scene.mjs +7 -8
  179. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,44 @@
1
+ export interface LagMonitorConfig {
2
+ tag: string;
3
+ timestampField: string;
4
+ warnThreshold?: number;
5
+ criticalThreshold?: number;
6
+ }
7
+ export type LagTrend = 'stable' | 'increasing' | 'decreasing' | 'spike';
8
+ export type LagLevel = 'normal' | 'warn' | 'critical';
9
+ export interface LagStats {
10
+ tag: string;
11
+ currentDelta: number;
12
+ baseline: number;
13
+ drift: number;
14
+ driftAvg: number;
15
+ driftMax: number;
16
+ trend: LagTrend;
17
+ sampleCount: number;
18
+ level: LagLevel;
19
+ }
20
+ export declare class DataLagTracker {
21
+ private _monitors;
22
+ private _disposed;
23
+ /** level 변경 시 콜백 (evaluateAll 호출 시 트리거) */
24
+ onLevelChange?: (tag: string, level: LagLevel, stats: LagStats) => void;
25
+ configure(config: LagMonitorConfig | LagMonitorConfig[]): void;
26
+ isMonitored(tag: string): boolean;
27
+ /**
28
+ * 핫 패스 진입점.
29
+ * 대상 태그가 아니면 Map.get() 1회로 즉시 리턴.
30
+ */
31
+ recordIfMonitored(tag: string, data: any): void;
32
+ getStats(tag: string): LagStats | null;
33
+ getAllStats(): LagStats[];
34
+ /**
35
+ * UI 갱신 주기에 호출. threshold 판정 + onLevelChange 콜백 발생.
36
+ */
37
+ evaluateAll(): void;
38
+ dispose(): void;
39
+ private _extractField;
40
+ private _getRecentDrifts;
41
+ private _calcTrend;
42
+ private _calcLevel;
43
+ }
44
+ //# sourceMappingURL=data-lag-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-lag-tracker.d.ts","sourceRoot":"","sources":["../../src/diagnostics/data-lag-tracker.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAA;AACvE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,QAAQ,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,QAAQ,CAAA;CAChB;AAkBD,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAQ;IAEzB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAEvE,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,IAAI;IAuB9D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IA4B/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IA4CtC,WAAW,IAAI,QAAQ,EAAE;IASzB;;OAEG;IACH,WAAW,IAAI,IAAI;IAcnB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,UAAU;CAKnB"}
@@ -7,7 +7,6 @@ interface ThreedInfo {
7
7
  resolved?: ResolvedMaterial3D;
8
8
  nodeNames?: string[];
9
9
  animationNames?: string[];
10
- autoPlay?: boolean;
11
10
  nodes?: Record<string, any>;
12
11
  animations?: Record<string, any>;
13
12
  fillStyleTargets?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/diagnostics/inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/diagnostics/inspector.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE9E,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAG7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAG3B,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IAGlC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjC;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,OAAO,CAAqB;IAEpC;;;OAGG;IACH,aAAa,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAM1B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAQ5B;;OAEG;IACH,SAAS,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE;IAkBxF;;OAEG;IACH,gBAAgB,CAAC,UAAU,SAAI,GAAG,iBAAiB,EAAE;IAarD;;;OAGG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,iBAAiB,EAAE;IAmBtE;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,aAAa,GAAG,IAAI;IAsC3E;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,OAAO;IAmB7D;;OAEG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,SAAI,GAAG,OAAO;IAyB3F;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,OAAO;IAkBpD;;;OAGG;IACH,cAAc,CAAC,UAAU,SAAI,GAAG,GAAG;IAiBnC;;;OAGG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,OAAO;IAkB1D;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,GAAG;IAetD;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,GAAG;IAevD;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,iBAAiB,EAAE;IAgCpE;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,MAAM,EAAE;IAiB/D;;;OAGG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,UAAU,GAAG,IAAI;IA4DrE,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,UAAU;CAQnB;AAED,eAAO,MAAM,SAAS,gBAAuB,CAAA"}
@@ -0,0 +1,82 @@
1
+ export type LoadPhase = 'fetch' | 'parse' | 'init' | 'compile' | 'assets' | 'data' | 'render' | 'complete';
2
+ /** 자동 팝업 표시까지의 대기 시간 (ms) */
3
+ export declare const OVERLAY_DELAY = 5000;
4
+ export interface LoadEntry {
5
+ id: string;
6
+ type: string;
7
+ url: string;
8
+ startTime: number;
9
+ status: 'pending' | 'loaded' | 'timeout' | 'error' | 'cancelled';
10
+ elapsed: number;
11
+ }
12
+ export interface LoadingOptions {
13
+ /** 전체 에셋 로딩 제한 (ms), 0 = 무제한 */
14
+ timeout?: number;
15
+ /** 개별 에셋 제한 (ms), 0 = 무제한 */
16
+ assetTimeout?: number;
17
+ /** 앱에서 미리 생성한 LoadTracker — create()가 새로 만들지 않고 재사용 */
18
+ tracker?: LoadTracker;
19
+ }
20
+ export interface LoadStats {
21
+ total: number;
22
+ loaded: number;
23
+ timeout: number;
24
+ error: number;
25
+ cancelled: number;
26
+ elapsed: number;
27
+ pending: number;
28
+ }
29
+ export interface PhaseRecord {
30
+ phase: LoadPhase;
31
+ timestamp: number;
32
+ elapsed: number;
33
+ duration?: number;
34
+ }
35
+ export declare class LoadTracker {
36
+ private _entries;
37
+ private _phase;
38
+ private _phaseHistory;
39
+ private _options;
40
+ private _startTime;
41
+ private _completedElapsed?;
42
+ private _disposed;
43
+ private _promiseResolve;
44
+ private _promise;
45
+ private _globalTimerId?;
46
+ private _slowTimerId?;
47
+ /** OVERLAY_DELAY 이상 로딩이 지속되었음을 표시 — overlay가 나중에 attach돼도 확인 가능 */
48
+ needsOverlay: boolean;
49
+ /** overlay 표시가 필요할 때 호출되는 콜백 */
50
+ onNeedsOverlay?: () => void;
51
+ /** 콜백 — phase 변경 시 */
52
+ onPhase?: (phase: LoadPhase) => void;
53
+ /** 콜백 — 에셋 완료/에러 시 */
54
+ onProgress?: (stats: LoadStats) => void;
55
+ /** 콜백 — 개별 에셋 타임아웃 시 */
56
+ onTimeout?: (entry: LoadEntry) => void;
57
+ /** 콜백 — complete 시 */
58
+ onComplete?: (stats: LoadStats) => void;
59
+ constructor(options?: LoadingOptions);
60
+ get phase(): LoadPhase;
61
+ get phaseHistory(): PhaseRecord[];
62
+ get progress(): number;
63
+ get pending(): LoadEntry[];
64
+ get entries(): LoadEntry[];
65
+ get stats(): LoadStats;
66
+ get promise(): Promise<void>;
67
+ private _firstRenderDone;
68
+ /** 첫 렌더링 완료 알림 — Layer.__draw__에서 호출 */
69
+ markFirstRender(): void;
70
+ setPhase(phase: LoadPhase): void;
71
+ track(id: string, type: string, url: string, promise: Promise<any>): void;
72
+ checkComplete(): void;
73
+ startGlobalTimeout(): void;
74
+ abort(): void;
75
+ reset(): void;
76
+ dispose(): void;
77
+ private _onEntryDone;
78
+ private _doComplete;
79
+ private _clearEntryTimer;
80
+ private _toPublicEntry;
81
+ }
82
+ //# sourceMappingURL=load-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-tracker.d.ts","sourceRoot":"","sources":["../../src/diagnostics/load-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { LoadTracker } from './load-tracker.js';
2
+ import type { DataLagTracker } from './data-lag-tracker.js';
3
+ export declare class LoadingOverlay {
4
+ private _tracker?;
5
+ private _lagTracker?;
6
+ private _container?;
7
+ private _targetElement?;
8
+ private _updateTimer?;
9
+ private _visible;
10
+ private _manualOpen;
11
+ private _headerEl?;
12
+ private _progressFillEl?;
13
+ private _progressTextEl?;
14
+ private _phaseListEl?;
15
+ private _phaseRenderedCount;
16
+ private _pendingListEl?;
17
+ private _lagSectionEl?;
18
+ private _elapsedEl?;
19
+ attach(targetElement: HTMLElement, tracker?: LoadTracker, lagTracker?: DataLagTracker): void;
20
+ toggle(): void;
21
+ show(): void;
22
+ hide(): void;
23
+ destroy(): void;
24
+ get isVisible(): boolean;
25
+ get isAttached(): boolean;
26
+ private _show;
27
+ private _hide;
28
+ private _update;
29
+ private _updateProgress;
30
+ private _updatePhaseList;
31
+ private _updateAssetList;
32
+ private _updateLagDisplay;
33
+ private _renderHistorySummary;
34
+ private _renderLagSection;
35
+ private _createPendingRow;
36
+ private _updatePendingRow;
37
+ private _updateLagSection;
38
+ private _shortUrl;
39
+ private _buildDOM;
40
+ }
41
+ //# sourceMappingURL=loading-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-overlay.d.ts","sourceRoot":"","sources":["../../src/diagnostics/loading-overlay.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAA;AA6BrE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,UAAU,CAAC,CAAa;IAEhC,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI;IAsC5F,MAAM,IAAI,IAAI;IAUd,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAKZ,OAAO,IAAI,IAAI;IAYf,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAID,OAAO,CAAC,KAAK;IA4Bb,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,OAAO;IAkCf,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;CAsGlB"}
@@ -4,5 +4,6 @@ import './shift-handler.js';
4
4
  import './zoom-handler.js';
5
5
  import './paste-handler.js';
6
6
  import './waypoint-handler.js';
7
+ import './transition-handler.js';
7
8
  export { default as EventMap } from './event-map.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-map/index.ts"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAE9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/event-map/index.ts"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAA;AAC9B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAC3B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transition-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-handler.d.ts","sourceRoot":"","sources":["../../src/event-map/transition-handler.ts"],"names":[],"mappings":""}
@@ -50,6 +50,11 @@ export interface ApplicationContext {
50
50
  PPI?: number;
51
51
  /** Command executor for undo/redo operations (edit mode) */
52
52
  commander?: any;
53
+ /** Loading monitor */
54
+ loadTracker?: import('../diagnostics/load-tracker.js').LoadTracker;
55
+ adoptLoadTracker?(tracker: import('../diagnostics/load-tracker.js').LoadTracker): void;
56
+ /** Data lag monitor (optional, created when dataLagMonitor configured) */
57
+ lagTracker?: import('../diagnostics/data-lag-tracker.js').DataLagTracker;
53
58
  url(x: string): string;
54
59
  dispose(): void;
55
60
  subscribe?(tag: string, component: any): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/interfaces/providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAA;IACnB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IACvE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC7E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5E,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAA;IAC3D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,SAAS,CAAC,EAAE,GAAG,CAAA;IAEf,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACtD"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/interfaces/providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAA;IACnB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IACvE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC7E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5E,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAA;IAC3D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,SAAS,CAAC,EAAE,GAAG,CAAA;IAEf,sBAAsB;IACtB,WAAW,CAAC,EAAE,OAAO,gCAAgC,EAAE,WAAW,CAAA;IAClE,gBAAgB,CAAC,CAAC,OAAO,EAAE,OAAO,gCAAgC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtF,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,oCAAoC,EAAE,cAAc,CAAA;IAExE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACtD"}
@@ -14,6 +14,7 @@ export default class ScenePopup {
14
14
  popupPosition?: Position;
15
15
  origin?: PopupOrigin;
16
16
  title?: string;
17
+ threed?: boolean;
17
18
  }): void;
18
19
  }
19
20
  //# sourceMappingURL=popup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/layer/action/popup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAIL,WAAW,EACZ,MAAM,6CAA6C,CAAA;AA4RpD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;IAKxB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS;IAoBhC,MAAM,CAAC,IAAI,CACT,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,aAAa,CAAC,EAAE,QAAQ,CAAA;QACxB,MAAM,CAAC,EAAE,WAAW,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACV;CAgOT"}
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/layer/action/popup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAIL,WAAW,EACZ,MAAM,6CAA6C,CAAA;AA4RpD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;IAKxB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS;IAoBhC,MAAM,CAAC,IAAI,CACT,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QACP,IAAI,CAAC,EAAE,GAAG,CAAA;QACV,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,aAAa,CAAC,EAAE,QAAQ,CAAA;QACxB,MAAM,CAAC,EAAE,WAAW,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;KACZ;CAqOT"}
@@ -1 +1 @@
1
- {"version":3,"file":"dual-canvas-layer.d.ts","sourceRoot":"","sources":["../../src/layer/dual-canvas-layer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;IAChD,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;IAElB,OAAO;IAOP,aAAa,IAAI,GAAG;IA6BpB,MAAM;IAaN,IAAI,MAAM,QAET;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,QAcZ;IAED,IAAI,YAAY,QAcf;IAED,UAAU,CAAC,SAAS,EAAE,GAAG;IAQzB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;CAiBnB"}
1
+ {"version":3,"file":"dual-canvas-layer.d.ts","sourceRoot":"","sources":["../../src/layer/dual-canvas-layer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;IAChD,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;IAElB,OAAO;IAOP,aAAa,IAAI,GAAG;IA6BpB,MAAM;IAaN,IAAI,MAAM,QAET;IAED,IAAI,SAAS,QAEZ;IAED,IAAI,SAAS,QAcZ;IAED,IAAI,YAAY,QAcf;IAED,UAAU,CAAC,SAAS,EAAE,GAAG;IAYzB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;CAiBnB"}
@@ -5,4 +5,5 @@ export { default as AddLayer } from './add-layer.js';
5
5
  export { default as SelectionLayer } from './selection-layer.js';
6
6
  export { default as ModelingLayer } from './modeling-layer.js';
7
7
  export { default as ScrollLayer } from './scroll-layer.js';
8
+ export { default as SnapGuideLayer } from './snap-guide-layer.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
@@ -7,6 +7,7 @@ export default class Layer extends ContainerAbstract {
7
7
  throttle_render: any;
8
8
  _target: any;
9
9
  _context2D: any;
10
+ private _firstDrawReported;
10
11
  constructor(model: any, context: any);
11
12
  get element(): HTMLElement | null;
12
13
  set element(v: HTMLElement | null);
@@ -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;gBAEH,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IAiCpC,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;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,4 +1,4 @@
1
- import type * as THREE from 'three';
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
4
  import ScenePopup from './action/popup.js';
@@ -23,19 +23,24 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
23
23
  _decoratorAuxOverlay: any;
24
24
  private _threeCapability?;
25
25
  private _lastCameraState?;
26
+ private _saved2DViewport?;
26
27
  private _toolbar?;
27
- private _cameraSection?;
28
- private _gizmoSection?;
29
28
  private _cameraButtons?;
30
- private _gizmoButtons?;
29
+ private _floatingPopup?;
30
+ private _floatingPopupCloseHandler?;
31
+ /** Scene이 주입하는 토글 콜백 */
32
+ onSearchToggle?: () => void;
33
+ onDataBindingToggle?: () => void;
34
+ onMonitorToggle?: () => void;
31
35
  get nature(): ComponentNature;
32
36
  get is3dMode(): boolean;
33
37
  is3dContainer(): boolean;
38
+ get gizmoMode(): 'translate' | 'rotate' | 'scale' | undefined;
39
+ setGizmoMode(mode: 'translate' | 'rotate' | 'scale'): void;
34
40
  get scene3d(): THREE.Scene | undefined;
35
41
  get renderer3d(): THREE.WebGLRenderer | undefined;
36
42
  get activeCamera3d(): THREE.Camera | undefined;
37
43
  get mixer(): THREE.AnimationMixer | undefined;
38
- get zoom(): number | undefined;
39
44
  addArrow3D(id: string, from: Component, to: Component, style?: ArrowStyle3D): void;
40
45
  removeArrow3D(id: string): void;
41
46
  clearArrows3D(): void;
@@ -45,6 +50,18 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
45
50
  * _activateThreeD()와 adoptThreeCapability()에서 공용으로 사용한다.
46
51
  */
47
52
  private _hide2DLayers;
53
+ /**
54
+ * zoom-handler가 등록되어 있는지 확인한다.
55
+ * zoom-handler가 있으면 사용자가 자유 줌/팬이 가능하므로 뷰포트 연동이 필요하다.
56
+ */
57
+ private get _hasZoomHandler();
58
+ /**
59
+ * 2D↔3D 전환 시 뷰포트 연동이 필요한지 판단한다.
60
+ * - 모델러: 항상 연동 (3D↔2D 카메라 매핑)
61
+ * - 뷰어 + zoom-handler: 연동 (2D 상태 저장/복원)
62
+ * - 뷰어 + zoom-handler 없음: 독립 (각자 뷰, 연동 불필요)
63
+ */
64
+ private get _needsViewportSync();
48
65
  private _activateThreeD;
49
66
  /**
50
67
  * 플로팅 툴바를 생성한다.
@@ -54,9 +71,15 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
54
71
  private _createToolbar;
55
72
  private _applyToggleStyle;
56
73
  private _applyButtonStyle;
57
- private _toggleToolbarSection;
58
74
  private _updateCameraButtons;
59
- private _updateGizmoButtons;
75
+ private _registerPopupCallbacks;
76
+ private _closeFloatingPopup;
77
+ private _showFloatingPopup;
78
+ private _makePopupDraggable;
79
+ private _toggleHelpPanel;
80
+ private _toggleBookmarkNav;
81
+ private _toggleBookmarkEdit;
82
+ private _buildBookmarkPopup;
60
83
  private _removeToolbar;
61
84
  /**
62
85
  * 3D 렌더러를 실제 표시 영역 크기에 맞춰 리사이즈한다.
@@ -81,6 +104,20 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
81
104
  */
82
105
  adoptThreeCapability(cap: ThreeCapability): void;
83
106
  private _deactivateThreeD;
107
+ /**
108
+ * 실제 뷰포트 크기를 반환한다.
109
+ * canvas가 hidden일 수 있으므로 target(외부 컨테이너)에서 읽는다.
110
+ */
111
+ private _getViewportSize;
112
+ /**
113
+ * 2D 뷰포트 상태를 기반으로 3D 카메라 위치/타겟을 설정한다.
114
+ */
115
+ private _initCameraFrom2DViewport;
116
+ /**
117
+ * 3D 카메라 상태를 기반으로 2D 뷰포트(translate, scale)를 설정한다.
118
+ */
119
+ private _init2DViewportFrom3DCamera;
120
+ centerTo(component: any, animated?: boolean): void;
84
121
  ready(): Promise<void>;
85
122
  dispose(): void;
86
123
  contains(x: any, y: any): boolean;
@@ -98,6 +135,7 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
98
135
  capturePath(path: any, excepts: any): any;
99
136
  getOverlay(component: any): any;
100
137
  getDecoratorOverlay(component: any): any;
138
+ _onkeydown_root(e: KeyboardEvent): void;
101
139
  get eventMap(): {
102
140
  '(self)': {
103
141
  '(all)': {
@@ -145,6 +183,7 @@ export default class ModelLayer extends DualCanvasLayer implements ThreeDimensio
145
183
  '(root)': {
146
184
  '(self)': {
147
185
  selected: (selected: any[]) => void;
186
+ keydown: (e: KeyboardEvent) => void;
148
187
  };
149
188
  };
150
189
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAOlD,OAAO,UAAU,MAAM,mBAAmB,CAAA;AAE1C,OAAO,eAAe,MAAM,wBAAwB,CAAA;AAGpD,OAAO,EAAE,eAAe,EAA2B,MAAM,+BAA+B,CAAA;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,2BAA2B,CAAA;AA+DlC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAgB,YAAW,yBAAyB;IAC1F,MAAM,CAAC,KAAK,EAAE,OAAO,UAAU,CAAA;IAE/B,QAAQ,EAAE,GAAG,CAAA;IACb,iBAAiB,EAAE,GAAG,CAAA;IACtB,oBAAoB,EAAE,GAAG,CAAA;IAEzB,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,aAAa,CAAC,CAAe;IAErC,IAAI,MAAM,IAAI,eAAe,CAE5B;IAID,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,aAAa,IAAI,OAAO;IAIxB,IAAI,OAAO,4BAEV;IAED,IAAI,UAAU,oCAEb;IAED,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAE7C;IAED,IAAI,KAAK,qCAER;IAED,IAAI,IAAI,uBAEP;IAID,UAAU,CACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,KAAK,CAAC,EAAE,YAAY,GACnB,IAAI;IAIP,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,oBAAoB;IAuB5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,eAAe;IAyEvB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA0QtB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;OAIG;IACH,qBAAqB,IAAI,eAAe,GAAG,SAAS;IAUpD;;;;OAIG;IACH,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAoChD,OAAO,CAAC,iBAAiB;IAuFnB,KAAK;IAuBX,OAAO;IA2BP,QAAQ,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAIb,WAAW;IAIX,IAAI,KAAK,YAER;IAED,IAAI,MAAM,IAAI,GAAG,CAMhB;IAED,IAAI,OAAO,QAqBV;IAED,IAAI,UAAU,IAAI,WAAW,GAAG,SAAS,CAExC;IAED,IAAI,gBAAgB,QAwBnB;IAED,IAAI,mBAAmB,QAyBtB;IAED,aAAa;IAWb,MAAM;IA8DN,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;IAqBlB,IAAI,GAAG,WAaN;IAQD,WAAW,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;IAczB,UAAU,CAAC,SAAS,KAAA;IAQpB,mBAAmB,CAAC,SAAS,KAAA;IAQ7B,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAgLsB,GAAG,EAAE;;;MA/EtC;IAED,oBAAoB;IAOpB,UAAU,CAAC,IAAI,KAAA;IAYf,kBAAkB;IAyBlB,QAAQ,CAAC,KAAK,KAAA;IA6Bd;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB,cAAc,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,KAAA;IAIlC,iBAAiB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAqB7B,iBAAiB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAkB7B,QAAQ,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAcpB,cAAc,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAqB1B,yBAAyB,CAAC,KAAK,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA,EAAE,SAAS,KAAA;IAa5D,cAAc,CAAC,KAAK,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA,EAAE,SAAS,KAAA;IAwLjD;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;CAUjC"}
1
+ {"version":3,"file":"model-layer.d.ts","sourceRoot":"","sources":["../../src/layer/model-layer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA6BA,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;IAoB/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAmC9B,UAAU,CAAC,CAAC,KAAA;IAYZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAab,UAAU,CAAC,CAAC,KAAA;IAgIZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
1
+ {"version":3,"file":"path-handler.d.ts","sourceRoot":"","sources":["../../../src/layer/modeler/path-handler.ts"],"names":[],"mappings":"AA6BA,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;IAoB/B,gBAAgB,CAAC,QAAQ,KAAA,EAAE,SAAS,KAAA,EAAE,CAAC,KAAA;IAmBvC,IAAI,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,KAAK,KAAA;IAmC9B,UAAU,CAAC,CAAC,KAAA;IAYZ,WAAW,CAAC,CAAC,KAAA;IAIb,WAAW,CAAC,CAAC,KAAA;IAab,UAAU,CAAC,CAAC,KAAA;IA8IZ,SAAS,CAAC,CAAC,KAAA;CAsDZ"}
@@ -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;IAgBX,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;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 +1 @@
1
- {"version":3,"file":"selected-finder.d.ts","sourceRoot":"","sources":["../../../src/layer/selection/selected-finder.ts"],"names":[],"mappings":"AA0GA,wBAAgB,cAAc,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,MAAM,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,KAAA,QAIrE"}
1
+ {"version":3,"file":"selected-finder.d.ts","sourceRoot":"","sources":["../../../src/layer/selection/selected-finder.ts"],"names":[],"mappings":"AAuGA,wBAAgB,cAAc,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,MAAM,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,KAAA,QAIrE"}
@@ -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;IAWX,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;IA0DxB,cAAc,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IA6CtB,kBAAkB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAiB1B,iBAAiB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAuBzB,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;IAWX,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;IAwCxB,cAAc,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAkDtB,kBAAkB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAiB1B,iBAAiB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;IAuBzB,gBAAgB,CAAC,CAAC,KAAA,EAAE,IAAI,KAAA;CAYzB"}
@@ -0,0 +1,23 @@
1
+ import type { SnapResult } from '../components/geometry/snap-guide.js';
2
+ import Layer from './layer.js';
3
+ export default class SnapGuideLayer extends Layer {
4
+ private _snapResult;
5
+ get pointerEvents(): string;
6
+ get capturable(): boolean;
7
+ contains(_x: number, _y: number): boolean;
8
+ get snapResult(): SnapResult | null;
9
+ set snapResult(result: SnapResult | null);
10
+ clear(): void;
11
+ get eventMap(): {
12
+ '(root)': {
13
+ 'model-layer': {
14
+ change: (after: any) => void;
15
+ };
16
+ };
17
+ };
18
+ onchange_root_model(after: any): void;
19
+ private syncTransform;
20
+ ready(): Promise<void>;
21
+ render(ctx: CanvasRenderingContext2D): void;
22
+ }
23
+ //# sourceMappingURL=snap-guide-layer.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ export { SceneSearchEngine, type SearchResult, type SearchOptions } from './scene-search-engine.js';
2
+ export { SearchOverlay, type SearchOverlayHost } from './search-overlay.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,65 @@
1
+ import type Component from '../components/component.js';
2
+ /**
3
+ * 검색 결과 하나를 나타낸다.
4
+ */
5
+ export interface SearchResult {
6
+ /** 매칭된 컴포넌트 */
7
+ component: Component;
8
+ /** 매칭 카테고리 */
9
+ matchType: 'id' | 'name' | 'tag' | 'type' | 'class' | 'text' | 'data' | 'property';
10
+ /** 매칭된 필드 이름 (예: 'accessor', 'fillStyle') */
11
+ matchField: string;
12
+ /** 매칭된 값 */
13
+ matchValue: string;
14
+ }
15
+ export interface SearchOptions {
16
+ /** 검색할 필드 범위 (기본: 전체) */
17
+ fields?: SearchResult['matchType'][];
18
+ /** 대소문자 구분 (기본: false) */
19
+ caseSensitive?: boolean;
20
+ /** hidden 컴포넌트 포함 (기본: false) */
21
+ includeHidden?: boolean;
22
+ /** 최대 결과 수 (기본: 무제한) */
23
+ maxResults?: number;
24
+ }
25
+ /**
26
+ * things-scene 컴포넌트 트리를 대상으로 텍스트 검색을 수행하는 엔진.
27
+ *
28
+ * 에디터/뷰어, 2D/3D 모드 공용.
29
+ * 검색 대상: id, name, tag, type, class, text, data-binding(accessor/target/property), 주요 속성값.
30
+ */
31
+ export declare class SceneSearchEngine {
32
+ private _results;
33
+ private _currentIndex;
34
+ private _lastQuery;
35
+ get results(): readonly SearchResult[];
36
+ get currentIndex(): number;
37
+ get currentResult(): SearchResult | undefined;
38
+ get resultCount(): number;
39
+ /**
40
+ * 컴포넌트 트리에서 query를 검색한다.
41
+ * 동일 컴포넌트가 여러 필드에서 매칭되면 첫 번째 매칭만 결과에 포함한다.
42
+ */
43
+ search(root: Component, query: string, options?: SearchOptions): SearchResult[];
44
+ /** 다음 결과로 이동 */
45
+ navigateNext(): SearchResult | undefined;
46
+ /** 이전 결과로 이동 */
47
+ navigatePrev(): SearchResult | undefined;
48
+ /** 특정 인덱스로 이동 */
49
+ navigateTo(index: number): SearchResult | undefined;
50
+ /** 검색 결과 초기화 */
51
+ clear(): void;
52
+ private _traverse;
53
+ private _matchComponent;
54
+ /**
55
+ * data-binding 설정(mappings)에서 검색.
56
+ * accessor, target, property, source 필드를 대상으로 한다.
57
+ */
58
+ private _matchDataBinding;
59
+ /**
60
+ * 주요 속성값에서 검색.
61
+ * fillStyle(문자열), strokeStyle(문자열), ref, src 등.
62
+ */
63
+ private _matchProperties;
64
+ }
65
+ //# sourceMappingURL=scene-search-engine.d.ts.map
@@ -0,0 +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;CAuBzB"}