@mlightcad/cad-simple-viewer 1.5.4 → 1.5.6

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 (275) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -0
  3. package/dist/{index.js → cad-simple-viewer.js} +16583 -14248
  4. package/dist/cad-simple-viewer.umd.cjs +921 -0
  5. package/dist/dxf-parser-worker.js +2002 -0
  6. package/dist/libredwg-parser-worker.js +5388 -5122
  7. package/dist/mtext-renderer-worker.js +3061 -2858
  8. package/lib/app/AcApContext.d.ts.map +1 -1
  9. package/lib/app/AcApContext.js +3 -0
  10. package/lib/app/AcApContext.js.map +1 -1
  11. package/lib/app/AcApDocManager.d.ts +7 -0
  12. package/lib/app/AcApDocManager.d.ts.map +1 -1
  13. package/lib/app/AcApDocManager.js +84 -10
  14. package/lib/app/AcApDocManager.js.map +1 -1
  15. package/lib/app/AcDbOpenDatabaseOptions.d.ts +29 -0
  16. package/lib/app/AcDbOpenDatabaseOptions.d.ts.map +1 -1
  17. package/lib/app/AcDbOpenDatabaseOptions.js +10 -1
  18. package/lib/app/AcDbOpenDatabaseOptions.js.map +1 -1
  19. package/lib/app/index.d.ts +1 -0
  20. package/lib/app/index.d.ts.map +1 -1
  21. package/lib/app/index.js +1 -0
  22. package/lib/app/index.js.map +1 -1
  23. package/lib/command/AcApCacheFontCmd.d.ts +25 -0
  24. package/lib/command/AcApCacheFontCmd.d.ts.map +1 -0
  25. package/lib/command/AcApCacheFontCmd.js +142 -0
  26. package/lib/command/AcApCacheFontCmd.js.map +1 -0
  27. package/lib/command/AcApSysVarCmd.d.ts.map +1 -1
  28. package/lib/command/AcApSysVarCmd.js +5 -11
  29. package/lib/command/AcApSysVarCmd.js.map +1 -1
  30. package/lib/command/convert/AcApPngConvertor.d.ts +1 -1
  31. package/lib/command/convert/AcApPngConvertor.d.ts.map +1 -1
  32. package/lib/command/convert/AcApPngConvertor.js +5 -2
  33. package/lib/command/convert/AcApPngConvertor.js.map +1 -1
  34. package/lib/command/draw/AcApArcCmd.d.ts.map +1 -1
  35. package/lib/command/draw/AcApArcCmd.js +2 -5
  36. package/lib/command/draw/AcApArcCmd.js.map +1 -1
  37. package/lib/command/draw/AcApEllipseCmd.d.ts.map +1 -1
  38. package/lib/command/draw/AcApEllipseCmd.js +2 -5
  39. package/lib/command/draw/AcApEllipseCmd.js.map +1 -1
  40. package/lib/command/draw/AcApHatchCmd.d.ts +1 -1
  41. package/lib/command/draw/AcApMLineCmd.d.ts.map +1 -1
  42. package/lib/command/draw/AcApMLineCmd.js +2 -2
  43. package/lib/command/draw/AcApMLineCmd.js.map +1 -1
  44. package/lib/command/draw/AcApPolygonCmd.d.ts.map +1 -1
  45. package/lib/command/draw/AcApPolygonCmd.js +2 -5
  46. package/lib/command/draw/AcApPolygonCmd.js.map +1 -1
  47. package/lib/command/draw/AcApRectCmd.d.ts +6 -0
  48. package/lib/command/draw/AcApRectCmd.d.ts.map +1 -1
  49. package/lib/command/draw/AcApRectCmd.js +12 -10
  50. package/lib/command/draw/AcApRectCmd.js.map +1 -1
  51. package/lib/command/draw/AcApXLineCmd.d.ts.map +1 -1
  52. package/lib/command/draw/AcApXLineCmd.js +1 -1
  53. package/lib/command/draw/AcApXLineCmd.js.map +1 -1
  54. package/lib/command/index.d.ts +1 -0
  55. package/lib/command/index.d.ts.map +1 -1
  56. package/lib/command/index.js +1 -0
  57. package/lib/command/index.js.map +1 -1
  58. package/lib/command/layer/AcApLayerCmd.d.ts +0 -7
  59. package/lib/command/layer/AcApLayerCmd.d.ts.map +1 -1
  60. package/lib/command/layer/AcApLayerCmd.js +13 -23
  61. package/lib/command/layer/AcApLayerCmd.js.map +1 -1
  62. package/lib/command/layer/AcApLayerCurCmd.d.ts +0 -7
  63. package/lib/command/layer/AcApLayerCurCmd.d.ts.map +1 -1
  64. package/lib/command/layer/AcApLayerCurCmd.js +3 -13
  65. package/lib/command/layer/AcApLayerCurCmd.js.map +1 -1
  66. package/lib/command/layer/AcApLayerDelCmd.d.ts +0 -7
  67. package/lib/command/layer/AcApLayerDelCmd.d.ts.map +1 -1
  68. package/lib/command/layer/AcApLayerDelCmd.js +8 -18
  69. package/lib/command/layer/AcApLayerDelCmd.js.map +1 -1
  70. package/lib/command/layer/AcApLayerFreezeCmd.d.ts +0 -7
  71. package/lib/command/layer/AcApLayerFreezeCmd.d.ts.map +1 -1
  72. package/lib/command/layer/AcApLayerFreezeCmd.js +11 -21
  73. package/lib/command/layer/AcApLayerFreezeCmd.js.map +1 -1
  74. package/lib/command/layer/AcApLayerIsoCmd.d.ts +0 -7
  75. package/lib/command/layer/AcApLayerIsoCmd.d.ts.map +1 -1
  76. package/lib/command/layer/AcApLayerIsoCmd.js +7 -17
  77. package/lib/command/layer/AcApLayerIsoCmd.js.map +1 -1
  78. package/lib/command/layer/AcApLayerLockCmd.d.ts +0 -7
  79. package/lib/command/layer/AcApLayerLockCmd.d.ts.map +1 -1
  80. package/lib/command/layer/AcApLayerLockCmd.js +4 -14
  81. package/lib/command/layer/AcApLayerLockCmd.js.map +1 -1
  82. package/lib/command/layer/AcApLayerOffCmd.d.ts +0 -7
  83. package/lib/command/layer/AcApLayerOffCmd.d.ts.map +1 -1
  84. package/lib/command/layer/AcApLayerOffCmd.js +11 -21
  85. package/lib/command/layer/AcApLayerOffCmd.js.map +1 -1
  86. package/lib/command/layer/AcApLayerOnCmd.d.ts +0 -7
  87. package/lib/command/layer/AcApLayerOnCmd.d.ts.map +1 -1
  88. package/lib/command/layer/AcApLayerOnCmd.js +2 -13
  89. package/lib/command/layer/AcApLayerOnCmd.js.map +1 -1
  90. package/lib/command/layer/AcApLayerPCmd.d.ts +0 -7
  91. package/lib/command/layer/AcApLayerPCmd.d.ts.map +1 -1
  92. package/lib/command/layer/AcApLayerPCmd.js +2 -13
  93. package/lib/command/layer/AcApLayerPCmd.js.map +1 -1
  94. package/lib/command/layer/AcApLayerThawCmd.d.ts +0 -7
  95. package/lib/command/layer/AcApLayerThawCmd.d.ts.map +1 -1
  96. package/lib/command/layer/AcApLayerThawCmd.js +2 -13
  97. package/lib/command/layer/AcApLayerThawCmd.js.map +1 -1
  98. package/lib/command/layer/AcApLayerUnisoCmd.d.ts +0 -7
  99. package/lib/command/layer/AcApLayerUnisoCmd.d.ts.map +1 -1
  100. package/lib/command/layer/AcApLayerUnisoCmd.js +4 -15
  101. package/lib/command/layer/AcApLayerUnisoCmd.js.map +1 -1
  102. package/lib/command/layer/AcApLayerUnlockCmd.d.ts +0 -7
  103. package/lib/command/layer/AcApLayerUnlockCmd.d.ts.map +1 -1
  104. package/lib/command/layer/AcApLayerUnlockCmd.js +4 -14
  105. package/lib/command/layer/AcApLayerUnlockCmd.js.map +1 -1
  106. package/lib/command/modify/AcApHideObjectsCmd.js +1 -1
  107. package/lib/command/modify/AcApHideObjectsCmd.js.map +1 -1
  108. package/lib/command/modify/AcApOffsetCmd.d.ts.map +1 -1
  109. package/lib/command/modify/AcApOffsetCmd.js +9 -4
  110. package/lib/command/modify/AcApOffsetCmd.js.map +1 -1
  111. package/lib/command/modify/AcApRotateCmd.d.ts.map +1 -1
  112. package/lib/command/modify/AcApRotateCmd.js +2 -5
  113. package/lib/command/modify/AcApRotateCmd.js.map +1 -1
  114. package/lib/command/modify/AcApUnisolateObjectsCmd.d.ts.map +1 -1
  115. package/lib/command/modify/AcApUnisolateObjectsCmd.js +3 -3
  116. package/lib/command/modify/AcApUnisolateObjectsCmd.js.map +1 -1
  117. package/lib/editor/command/AcEdCommand.d.ts +16 -0
  118. package/lib/editor/command/AcEdCommand.d.ts.map +1 -1
  119. package/lib/editor/command/AcEdCommand.js +23 -0
  120. package/lib/editor/command/AcEdCommand.js.map +1 -1
  121. package/lib/editor/global/AcEdUiColor.d.ts +13 -13
  122. package/lib/editor/global/AcEdUiColor.d.ts.map +1 -1
  123. package/lib/editor/global/AcEdUiColor.js +21 -20
  124. package/lib/editor/global/AcEdUiColor.js.map +1 -1
  125. package/lib/editor/global/eventBus.d.ts +7 -1
  126. package/lib/editor/global/eventBus.d.ts.map +1 -1
  127. package/lib/editor/global/eventBus.js.map +1 -1
  128. package/lib/editor/grip/AcEdGripEditSession.d.ts +29 -0
  129. package/lib/editor/grip/AcEdGripEditSession.d.ts.map +1 -0
  130. package/lib/editor/grip/AcEdGripEditSession.js +76 -0
  131. package/lib/editor/grip/AcEdGripEditSession.js.map +1 -0
  132. package/lib/editor/grip/AcEdGripHandle.d.ts +20 -0
  133. package/lib/editor/grip/AcEdGripHandle.d.ts.map +1 -0
  134. package/lib/editor/grip/AcEdGripHandle.js +59 -0
  135. package/lib/editor/grip/AcEdGripHandle.js.map +1 -0
  136. package/lib/editor/grip/AcEdGripManager.d.ts +159 -0
  137. package/lib/editor/grip/AcEdGripManager.d.ts.map +1 -0
  138. package/lib/editor/grip/AcEdGripManager.js +336 -0
  139. package/lib/editor/grip/AcEdGripManager.js.map +1 -0
  140. package/lib/editor/grip/AcEdGripPolicy.d.ts +6 -0
  141. package/lib/editor/grip/AcEdGripPolicy.d.ts.map +1 -0
  142. package/lib/editor/grip/AcEdGripPolicy.js +30 -0
  143. package/lib/editor/grip/AcEdGripPolicy.js.map +1 -0
  144. package/lib/editor/grip/AcEdGripPreviewJig.d.ts +21 -0
  145. package/lib/editor/grip/AcEdGripPreviewJig.d.ts.map +1 -0
  146. package/lib/editor/grip/AcEdGripPreviewJig.js +73 -0
  147. package/lib/editor/grip/AcEdGripPreviewJig.js.map +1 -0
  148. package/lib/editor/grip/index.d.ts +5 -0
  149. package/lib/editor/grip/index.d.ts.map +1 -0
  150. package/lib/editor/grip/index.js +5 -0
  151. package/lib/editor/grip/index.js.map +1 -0
  152. package/lib/editor/index.d.ts +1 -0
  153. package/lib/editor/index.d.ts.map +1 -1
  154. package/lib/editor/index.js +1 -0
  155. package/lib/editor/index.js.map +1 -1
  156. package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -1
  157. package/lib/editor/input/AcEdCursorManager.js +2 -2
  158. package/lib/editor/input/AcEdCursorManager.js.map +1 -1
  159. package/lib/editor/input/AcEdOsnapResolver.d.ts +34 -0
  160. package/lib/editor/input/AcEdOsnapResolver.d.ts.map +1 -0
  161. package/lib/editor/input/AcEdOsnapResolver.js +117 -0
  162. package/lib/editor/input/AcEdOsnapResolver.js.map +1 -0
  163. package/lib/editor/input/handler/AcEdAngleHandler.d.ts +2 -1
  164. package/lib/editor/input/handler/AcEdAngleHandler.d.ts.map +1 -1
  165. package/lib/editor/input/handler/AcEdAngleHandler.js +6 -0
  166. package/lib/editor/input/handler/AcEdAngleHandler.js.map +1 -1
  167. package/lib/editor/input/handler/AcEdInputHandler.d.ts +20 -1
  168. package/lib/editor/input/handler/AcEdInputHandler.d.ts.map +1 -1
  169. package/lib/editor/input/handler/AcEdKeywordHandler.d.ts +2 -1
  170. package/lib/editor/input/handler/AcEdKeywordHandler.d.ts.map +1 -1
  171. package/lib/editor/input/handler/AcEdKeywordHandler.js +3 -0
  172. package/lib/editor/input/handler/AcEdKeywordHandler.js.map +1 -1
  173. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts +2 -1
  174. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts.map +1 -1
  175. package/lib/editor/input/handler/AcEdNumericalHandler.js +6 -0
  176. package/lib/editor/input/handler/AcEdNumericalHandler.js.map +1 -1
  177. package/lib/editor/input/handler/AcEdPointHandler.d.ts +17 -1
  178. package/lib/editor/input/handler/AcEdPointHandler.d.ts.map +1 -1
  179. package/lib/editor/input/handler/AcEdPointHandler.js +89 -0
  180. package/lib/editor/input/handler/AcEdPointHandler.js.map +1 -1
  181. package/lib/editor/input/handler/AcEdStringHandler.d.ts +2 -1
  182. package/lib/editor/input/handler/AcEdStringHandler.d.ts.map +1 -1
  183. package/lib/editor/input/handler/AcEdStringHandler.js +3 -0
  184. package/lib/editor/input/handler/AcEdStringHandler.js.map +1 -1
  185. package/lib/editor/input/index.d.ts +1 -0
  186. package/lib/editor/input/index.d.ts.map +1 -1
  187. package/lib/editor/input/index.js +1 -0
  188. package/lib/editor/input/index.js.map +1 -1
  189. package/lib/editor/input/session/AcEdInputSession.d.ts +11 -1
  190. package/lib/editor/input/session/AcEdInputSession.d.ts.map +1 -1
  191. package/lib/editor/input/session/AcEdInputSession.js.map +1 -1
  192. package/lib/editor/input/session/AcEdPromptInputSession.d.ts +51 -0
  193. package/lib/editor/input/session/AcEdPromptInputSession.d.ts.map +1 -0
  194. package/lib/editor/input/session/AcEdPromptInputSession.js +109 -0
  195. package/lib/editor/input/session/AcEdPromptInputSession.js.map +1 -0
  196. package/lib/editor/input/session/index.d.ts +1 -0
  197. package/lib/editor/input/session/index.d.ts.map +1 -1
  198. package/lib/editor/input/session/index.js +1 -0
  199. package/lib/editor/input/session/index.js.map +1 -1
  200. package/lib/editor/input/ui/AcEdCommandLine.d.ts +10 -0
  201. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  202. package/lib/editor/input/ui/AcEdCommandLine.js +67 -35
  203. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  204. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +0 -11
  205. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -1
  206. package/lib/editor/input/ui/AcEdFloatingInput.js +9 -119
  207. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -1
  208. package/lib/editor/input/ui/AcEdInputManager.d.ts +26 -23
  209. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  210. package/lib/editor/input/ui/AcEdInputManager.js +135 -83
  211. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  212. package/lib/editor/input/ui/AcEdMTextEditor.js +2 -2
  213. package/lib/editor/input/ui/AcEdMTextEditor.js.map +1 -1
  214. package/lib/editor/view/AcEdBaseView.d.ts +7 -0
  215. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  216. package/lib/editor/view/AcEdBaseView.js +12 -0
  217. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  218. package/lib/i18n/en/command.d.ts +3 -0
  219. package/lib/i18n/en/command.d.ts.map +1 -1
  220. package/lib/i18n/en/command.js +3 -0
  221. package/lib/i18n/en/command.js.map +1 -1
  222. package/lib/i18n/en/jig.d.ts +26 -0
  223. package/lib/i18n/en/jig.d.ts.map +1 -1
  224. package/lib/i18n/en/jig.js +134 -108
  225. package/lib/i18n/en/jig.js.map +1 -1
  226. package/lib/i18n/en/main.d.ts +3 -0
  227. package/lib/i18n/en/main.d.ts.map +1 -1
  228. package/lib/i18n/en/main.js +4 -1
  229. package/lib/i18n/en/main.js.map +1 -1
  230. package/lib/i18n/zh/command.d.ts +3 -0
  231. package/lib/i18n/zh/command.d.ts.map +1 -1
  232. package/lib/i18n/zh/command.js +3 -0
  233. package/lib/i18n/zh/command.js.map +1 -1
  234. package/lib/i18n/zh/jig.d.ts +26 -0
  235. package/lib/i18n/zh/jig.d.ts.map +1 -1
  236. package/lib/i18n/zh/jig.js +134 -108
  237. package/lib/i18n/zh/jig.js.map +1 -1
  238. package/lib/i18n/zh/main.d.ts +3 -0
  239. package/lib/i18n/zh/main.d.ts.map +1 -1
  240. package/lib/i18n/zh/main.js +4 -1
  241. package/lib/i18n/zh/main.js.map +1 -1
  242. package/lib/plugin/AcApLazyPluginRegistration.d.ts +3 -8
  243. package/lib/plugin/AcApLazyPluginRegistration.d.ts.map +1 -1
  244. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +1 -1
  245. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +2 -2
  246. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  247. package/lib/util/AcApFontUtil.d.ts +14 -2
  248. package/lib/util/AcApFontUtil.d.ts.map +1 -1
  249. package/lib/util/AcApFontUtil.js +18 -0
  250. package/lib/util/AcApFontUtil.js.map +1 -1
  251. package/lib/view/AcTrEntityDisplayController.d.ts +46 -0
  252. package/lib/view/AcTrEntityDisplayController.d.ts.map +1 -0
  253. package/lib/view/AcTrEntityDisplayController.js +114 -0
  254. package/lib/view/AcTrEntityDisplayController.js.map +1 -0
  255. package/lib/view/AcTrGroupWcsBboxAssert.d.ts +27 -0
  256. package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -0
  257. package/lib/view/AcTrGroupWcsBboxAssert.js +65 -0
  258. package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -0
  259. package/lib/view/AcTrLayer.d.ts +7 -0
  260. package/lib/view/AcTrLayer.d.ts.map +1 -1
  261. package/lib/view/AcTrLayer.js +11 -2
  262. package/lib/view/AcTrLayer.js.map +1 -1
  263. package/lib/view/AcTrLayout.d.ts +1 -1
  264. package/lib/view/AcTrLayout.js +2 -2
  265. package/lib/view/AcTrLayout.js.map +1 -1
  266. package/lib/view/AcTrProgressiveOpenFitController.d.ts +64 -0
  267. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -0
  268. package/lib/view/AcTrProgressiveOpenFitController.js +209 -0
  269. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -0
  270. package/lib/view/AcTrView2d.d.ts +95 -1
  271. package/lib/view/AcTrView2d.d.ts.map +1 -1
  272. package/lib/view/AcTrView2d.js +539 -200
  273. package/lib/view/AcTrView2d.js.map +1 -1
  274. package/package.json +13 -11
  275. package/dist/index.umd.cjs +0 -897
@@ -0,0 +1,117 @@
1
+ import { acdbHostApplicationServices, acdbMaskToOsnapModes, AcDbOsnapMode, AcGeGeometryUtil } from '@mlightcad/data-model';
2
+ import { AcApSettingManager } from '../../app';
3
+ var DEFAULT_HIT_RADIUS_PX = 20;
4
+ /**
5
+ * Resolves object snap points for a view during interactive input.
6
+ */
7
+ var AcEdOsnapResolver = /** @class */ (function () {
8
+ function AcEdOsnapResolver(view) {
9
+ this._view = view;
10
+ }
11
+ /**
12
+ * Resolves the best osnap point near the cursor, matching command-input behavior.
13
+ */
14
+ AcEdOsnapResolver.prototype.resolve = function (options) {
15
+ var _a, _b;
16
+ var hitRadiusPx = (_a = options.hitRadiusPx) !== null && _a !== void 0 ? _a : DEFAULT_HIT_RADIUS_PX;
17
+ var lastPoint = (_b = options.lastPoint) !== null && _b !== void 0 ? _b : options.cursorWcs;
18
+ var snapPoints = this.collectOsnapPoints(options.cursorWcs, lastPoint, hitRadiusPx);
19
+ if (snapPoints.length === 0)
20
+ return undefined;
21
+ var p1 = this._view.screenToWorld({ x: 0, y: 0 });
22
+ var p2 = this._view.screenToWorld({ x: hitRadiusPx, y: 0 });
23
+ var threshold = p2.x - p1.x;
24
+ var bestPriority = Number.MAX_VALUE;
25
+ var bestDist = Number.MAX_VALUE;
26
+ var bestIndex = -1;
27
+ for (var i = 0; i < snapPoints.length; i++) {
28
+ var snap = snapPoints[i];
29
+ var dx = options.cursorWcs.x - snap.x;
30
+ var dy = options.cursorWcs.y - snap.y;
31
+ var dist = Math.hypot(dx, dy);
32
+ if (dist >= threshold)
33
+ continue;
34
+ var priority = AcEdOsnapResolver.osnapModePriority(snap.type);
35
+ if (priority < bestPriority ||
36
+ (priority === bestPriority && dist < bestDist)) {
37
+ bestPriority = priority;
38
+ bestDist = dist;
39
+ bestIndex = i;
40
+ }
41
+ }
42
+ return bestIndex !== -1 ? snapPoints[bestIndex] : undefined;
43
+ };
44
+ /**
45
+ * Maps an osnap mode to the marker shape shown at the snap location.
46
+ */
47
+ AcEdOsnapResolver.osnapModeToMarkerType = function (osnapMode) {
48
+ switch (osnapMode) {
49
+ case AcDbOsnapMode.EndPoint:
50
+ return 'rect';
51
+ case AcDbOsnapMode.MidPoint:
52
+ return 'triangle';
53
+ case AcDbOsnapMode.Center:
54
+ return 'circle';
55
+ case AcDbOsnapMode.Quadrant:
56
+ return 'diamond';
57
+ case AcDbOsnapMode.Nearest:
58
+ return 'x';
59
+ default:
60
+ return 'rect';
61
+ }
62
+ };
63
+ AcEdOsnapResolver.osnapModePriority = function (mode) {
64
+ switch (mode) {
65
+ case AcDbOsnapMode.EndPoint:
66
+ case AcDbOsnapMode.MidPoint:
67
+ case AcDbOsnapMode.Center:
68
+ return 0;
69
+ case AcDbOsnapMode.Quadrant:
70
+ return 1;
71
+ case AcDbOsnapMode.Nearest:
72
+ return 2;
73
+ default:
74
+ return 1;
75
+ }
76
+ };
77
+ AcEdOsnapResolver.prototype.collectOsnapPointsByMode = function (entity, osnapMode, osnapPoints, pickPoint, lastPoint, gsMark) {
78
+ var start = osnapPoints.length;
79
+ entity.subGetOsnapPoints(osnapMode, pickPoint, lastPoint, osnapPoints, gsMark);
80
+ for (var i = start; i < osnapPoints.length; i++) {
81
+ osnapPoints[i].type = osnapMode;
82
+ }
83
+ };
84
+ AcEdOsnapResolver.prototype.collectOsnapPointsInAvailableModes = function (entity, osnapPoints, pickPoint, lastPoint, gsMark) {
85
+ var _this = this;
86
+ var modes = acdbMaskToOsnapModes(AcApSettingManager.instance.osnapModes);
87
+ modes.forEach(function (mode) {
88
+ return _this.collectOsnapPointsByMode(entity, mode, osnapPoints, pickPoint, lastPoint, gsMark);
89
+ });
90
+ };
91
+ AcEdOsnapResolver.prototype.collectOsnapPoints = function (cursorWcs, lastPoint, hitRadiusPx) {
92
+ var _this = this;
93
+ var results = this._view.pick(cursorWcs, hitRadiusPx);
94
+ var db = acdbHostApplicationServices().workingDatabase;
95
+ var modelSpace = db.tables.blockTable.modelSpace;
96
+ var osnapPoints = [];
97
+ var pickPoint = AcGeGeometryUtil.point2dToPoint3d(cursorWcs);
98
+ var last = AcGeGeometryUtil.point2dToPoint3d(lastPoint);
99
+ results.forEach(function (item) {
100
+ var entity = modelSpace.getIdAt(item.id);
101
+ if (!entity)
102
+ return;
103
+ if (item.children && item.children.length > 0) {
104
+ item.children.forEach(function (child) {
105
+ return _this.collectOsnapPointsInAvailableModes(entity, osnapPoints, pickPoint, last, child.id);
106
+ });
107
+ }
108
+ else {
109
+ _this.collectOsnapPointsInAvailableModes(entity, osnapPoints, pickPoint, last);
110
+ }
111
+ });
112
+ return osnapPoints;
113
+ };
114
+ return AcEdOsnapResolver;
115
+ }());
116
+ export { AcEdOsnapResolver };
117
+ //# sourceMappingURL=AcEdOsnapResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdOsnapResolver.js","sourceRoot":"","sources":["../../../src/editor/input/AcEdOsnapResolver.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AcEdPromptAngleOptions } from '../prompt/AcEdPromptAngleOptions';
2
- import { AcEdInputHandler } from './AcEdInputHandler';
2
+ import { AcEdInputHandler, AcEdPointInputContext } from './AcEdInputHandler';
3
3
  /**
4
4
  * Validates angular numeric input.
5
5
  * Uses degrees. Fully compatible with PromptAngleOptions behavior in AutoCAD.
@@ -8,5 +8,6 @@ export declare class AcEdAngleHandler implements AcEdInputHandler<number> {
8
8
  private options;
9
9
  constructor(options: AcEdPromptAngleOptions);
10
10
  parse(value: string): number | null;
11
+ parseCommandLine(token: string, _context?: AcEdPointInputContext): number | null;
11
12
  }
12
13
  //# sourceMappingURL=AcEdAngleHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdAngleHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdAngleHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,KAAK,EAAE,MAAM;CAiBpB"}
1
+ {"version":3,"file":"AcEdAngleHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdAngleHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE5E;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,KAAK,EAAE,MAAM;IAkBnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB;CAKjE"}
@@ -19,6 +19,12 @@ var AcEdAngleHandler = /** @class */ (function () {
19
19
  }
20
20
  return n;
21
21
  };
22
+ AcEdAngleHandler.prototype.parseCommandLine = function (token, _context) {
23
+ var trimmed = token.trim();
24
+ if (!trimmed)
25
+ return null;
26
+ return this.parse(trimmed);
27
+ };
22
28
  return AcEdAngleHandler;
23
29
  }());
24
30
  export { AcEdAngleHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdAngleHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdAngleHandler.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAGE,0BAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,gCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAEvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,IAwBC"}
1
+ {"version":3,"file":"AcEdAngleHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdAngleHandler.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAGE,0BAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,gCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAEvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,2CAAgB,GAAhB,UAAiB,KAAa,EAAE,QAAgC;QAC9D,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IACH,uBAAC;AAAD,CAAC,AA9BD,IA8BC"}
@@ -1,14 +1,33 @@
1
+ import { AcGePoint2dLike } from '@mlightcad/data-model';
2
+ /**
3
+ * Optional context for AutoCAD-style command-line point entry.
4
+ */
5
+ export interface AcEdPointInputContext {
6
+ /** Last picked point or prompt base point for relative (`@`) entry. */
7
+ referencePoint?: AcGePoint2dLike | null;
8
+ /**
9
+ * Current cursor position in WCS. Required to interpret a lone distance value
10
+ * as a point along the active rubber-band direction.
11
+ */
12
+ cursorPoint?: AcGePoint2dLike | null;
13
+ }
1
14
  /**
2
15
  * Base class for all input handlers.
3
16
  * @template T The final parsed value type (number, string, point, etc.).
4
17
  */
5
18
  export interface AcEdInputHandler<T> {
6
19
  /**
7
- * Parses `value` using rules implemented in subclasses.
20
+ * Parses floating-input box values using rules implemented in subclasses.
8
21
  * @param x - Texts in the first input box
9
22
  * @param y - Texts in the second input box
10
23
  * @returns parsed value if valid, otherwise null.
11
24
  */
12
25
  parse(x: string, y?: string): T | null;
26
+ /**
27
+ * Parses one AutoCAD-style command-line token.
28
+ *
29
+ * Handlers that only accept a single value typically delegate to {@link parse}.
30
+ */
31
+ parseCommandLine(token: string, context?: AcEdPointInputContext): T | null;
13
32
  }
14
33
  //# sourceMappingURL=AcEdInputHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdInputHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdInputHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAA;CACvC"}
1
+ {"version":3,"file":"AcEdInputHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdInputHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAA;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAA;CAC3E"}
@@ -1,5 +1,5 @@
1
1
  import { AcEdPromptKeywordOptions } from '../prompt/AcEdPromptKeywordOptions';
2
- import { AcEdInputHandler } from './AcEdInputHandler';
2
+ import { AcEdInputHandler, AcEdPointInputContext } from './AcEdInputHandler';
3
3
  /**
4
4
  * Validates keyword input according to {@link AcEdPromptKeywordOptions}.
5
5
  */
@@ -7,5 +7,6 @@ export declare class AcEdKeywordHandler implements AcEdInputHandler<string> {
7
7
  private options;
8
8
  constructor(options: AcEdPromptKeywordOptions);
9
9
  parse(value: string): string | null;
10
+ parseCommandLine(token: string, _context?: AcEdPointInputContext): string | null;
10
11
  }
11
12
  //# sourceMappingURL=AcEdKeywordHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdKeywordHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdKeywordHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;GAEG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IACjE,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,wBAAwB;IAI7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAyBpC"}
1
+ {"version":3,"file":"AcEdKeywordHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdKeywordHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE5E;;GAEG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IACjE,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,wBAAwB;IAI7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA0BnC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB;CAGjE"}
@@ -26,6 +26,9 @@ var AcEdKeywordHandler = /** @class */ (function () {
26
26
  // 4. Invalid input
27
27
  return null;
28
28
  };
29
+ AcEdKeywordHandler.prototype.parseCommandLine = function (token, _context) {
30
+ return this.parse(token);
31
+ };
29
32
  return AcEdKeywordHandler;
30
33
  }());
31
34
  export { AcEdKeywordHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdKeywordHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdKeywordHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAGE,4BAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,kCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAE1B,yBAAyB;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAC3C,0CAA0C;YAC1C,8CAA8C;QAChD,CAAC;QAED,0CAA0C;QAC1C,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,gDAAgD;YAChD,OAAO,OAAO,CAAC,UAAU,CAAA;QAC3B,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,mBAAmB;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACH,yBAAC;AAAD,CAAC,AAhCD,IAgCC"}
1
+ {"version":3,"file":"AcEdKeywordHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdKeywordHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAGE,4BAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,kCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAE1B,yBAAyB;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAC3C,0CAA0C;YAC1C,8CAA8C;QAChD,CAAC;QAED,0CAA0C;QAC1C,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,gDAAgD;YAChD,OAAO,OAAO,CAAC,UAAU,CAAA;QAC3B,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,mBAAmB;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6CAAgB,GAAhB,UAAiB,KAAa,EAAE,QAAgC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACH,yBAAC;AAAD,CAAC,AApCD,IAoCC"}
@@ -1,5 +1,5 @@
1
1
  import { AcEdPromptNumericalOptions } from '../prompt/AcEdPromptNumericalOptions';
2
- import { AcEdInputHandler } from './AcEdInputHandler';
2
+ import { AcEdInputHandler, AcEdPointInputContext } from './AcEdInputHandler';
3
3
  /**
4
4
  * Handles validation and parsing of numerical user input.
5
5
  */
@@ -7,5 +7,6 @@ export declare class AcEdNumericalHandler implements AcEdInputHandler<number> {
7
7
  protected options: AcEdPromptNumericalOptions;
8
8
  constructor(options: AcEdPromptNumericalOptions);
9
9
  parse(value: string): number | null;
10
+ parseCommandLine(token: string, _context?: AcEdPointInputContext): number | null;
10
11
  }
11
12
  //# sourceMappingURL=AcEdNumericalHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdNumericalHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdNumericalHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IACnE,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAA;gBAEjC,OAAO,EAAE,0BAA0B;IAI/C,KAAK,CAAC,KAAK,EAAE,MAAM;CAiBpB"}
1
+ {"version":3,"file":"AcEdNumericalHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdNumericalHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE5E;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IACnE,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAA;gBAEjC,OAAO,EAAE,0BAA0B;IAI/C,KAAK,CAAC,KAAK,EAAE,MAAM;IAkBnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB;CAKjE"}
@@ -18,6 +18,12 @@ var AcEdNumericalHandler = /** @class */ (function () {
18
18
  }
19
19
  return n;
20
20
  };
21
+ AcEdNumericalHandler.prototype.parseCommandLine = function (token, _context) {
22
+ var trimmed = token.trim();
23
+ if (!trimmed)
24
+ return null;
25
+ return this.parse(trimmed);
26
+ };
21
27
  return AcEdNumericalHandler;
22
28
  }());
23
29
  export { AcEdNumericalHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdNumericalHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdNumericalHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAGE,8BAAY,OAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,oCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAEvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IACH,2BAAC;AAAD,CAAC,AAxBD,IAwBC"}
1
+ {"version":3,"file":"AcEdNumericalHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdNumericalHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAGE,8BAAY,OAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,oCAAK,GAAL,UAAM,KAAa;QACjB,IAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAEvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,+CAAgB,GAAhB,UAAiB,KAAa,EAAE,QAAgC;QAC9D,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IACH,2BAAC;AAAD,CAAC,AA9BD,IA8BC"}
@@ -1,6 +1,6 @@
1
1
  import { AcGePoint3dLike } from '@mlightcad/data-model';
2
2
  import { AcEdPromptPointOptions } from '../prompt/AcEdPromptPointOptions';
3
- import { AcEdInputHandler } from './AcEdInputHandler';
3
+ import { AcEdInputHandler, AcEdPointInputContext } from './AcEdInputHandler';
4
4
  /**
5
5
  * Handles validation and parsing of point user input.
6
6
  */
@@ -12,5 +12,21 @@ export declare class AcEdPointHandler implements AcEdInputHandler<AcGePoint3dLik
12
12
  y: number;
13
13
  z: number;
14
14
  } | null;
15
+ /**
16
+ * Parses an AutoCAD-style point token from the command line.
17
+ *
18
+ * Supported forms:
19
+ * - Absolute Cartesian: `X,Y` or `X Y`
20
+ * - Relative Cartesian: `@X,Y` or `@X Y`
21
+ * - Absolute polar: `distance<angle`
22
+ * - Relative polar: `@distance<angle`
23
+ * - Rubber-band distance: plain number when a reference point and cursor
24
+ * position are available
25
+ */
26
+ parseCommandLine(token: string, context?: AcEdPointInputContext): {
27
+ x: number;
28
+ y: number;
29
+ z: number;
30
+ } | null;
15
31
  }
16
32
  //# sourceMappingURL=AcEdPointHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdPointHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;gBAE7B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;;;;;CAU5B"}
1
+ {"version":3,"file":"AcEdPointHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AA4B5E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;gBAE7B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;;;;;IAW3B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;;;;;CAmEhE"}
@@ -1,3 +1,27 @@
1
+ var NUMERIC_TOKEN = /^-?(?:\d+\.?\d*|\.\d+)$/;
2
+ /**
3
+ * Splits a Cartesian point token into x/y components.
4
+ *
5
+ * Accepts comma-separated (`50,30`) or whitespace-separated (`50 30`) forms.
6
+ * An optional third `z` component is tolerated but ignored by 2D prompts.
7
+ */
8
+ function splitCartesianPointToken(token) {
9
+ var trimmed = token.trim();
10
+ if (!trimmed)
11
+ return undefined;
12
+ if (trimmed.includes(',')) {
13
+ var parts_1 = trimmed.split(',').map(function (v) { return v.trim(); });
14
+ if (parts_1.length !== 2 && parts_1.length !== 3)
15
+ return undefined;
16
+ if (parts_1.length === 3 && Number.isNaN(Number(parts_1[2])))
17
+ return undefined;
18
+ return { x: parts_1[0], y: parts_1[1] };
19
+ }
20
+ var parts = trimmed.split(/\s+/);
21
+ if (parts.length < 2)
22
+ return undefined;
23
+ return { x: parts[0], y: parts[1] };
24
+ }
1
25
  /**
2
26
  * Handles validation and parsing of point user input.
3
27
  */
@@ -13,6 +37,71 @@ var AcEdPointHandler = /** @class */ (function () {
13
37
  }
14
38
  return { x: nx, y: ny, z: 0 };
15
39
  };
40
+ /**
41
+ * Parses an AutoCAD-style point token from the command line.
42
+ *
43
+ * Supported forms:
44
+ * - Absolute Cartesian: `X,Y` or `X Y`
45
+ * - Relative Cartesian: `@X,Y` or `@X Y`
46
+ * - Absolute polar: `distance<angle`
47
+ * - Relative polar: `@distance<angle`
48
+ * - Rubber-band distance: plain number when a reference point and cursor
49
+ * position are available
50
+ */
51
+ AcEdPointHandler.prototype.parseCommandLine = function (token, context) {
52
+ var _a;
53
+ var trimmed = token.trim();
54
+ if (!trimmed)
55
+ return null;
56
+ var isRelative = trimmed.startsWith('@');
57
+ var body = isRelative ? trimmed.slice(1).trim() : trimmed;
58
+ if (!body)
59
+ return null;
60
+ var reference = (_a = context === null || context === void 0 ? void 0 : context.referencePoint) !== null && _a !== void 0 ? _a : undefined;
61
+ var ltIndex = body.indexOf('<');
62
+ if (ltIndex >= 0) {
63
+ var distStr = body.slice(0, ltIndex).trim();
64
+ var angleStr = body.slice(ltIndex + 1).trim();
65
+ var dist = Number(distStr);
66
+ var angleDeg = Number(angleStr);
67
+ if (Number.isNaN(dist) || Number.isNaN(angleDeg))
68
+ return null;
69
+ var angleRad = (angleDeg * Math.PI) / 180;
70
+ var offsetX = dist * Math.cos(angleRad);
71
+ var offsetY = dist * Math.sin(angleRad);
72
+ if (isRelative) {
73
+ if (!reference)
74
+ return null;
75
+ return this.parse(String(reference.x + offsetX), String(reference.y + offsetY));
76
+ }
77
+ return this.parse(String(offsetX), String(offsetY));
78
+ }
79
+ var cartesian = splitCartesianPointToken(body);
80
+ if (cartesian) {
81
+ var offsetX = Number(cartesian.x);
82
+ var offsetY = Number(cartesian.y);
83
+ if (Number.isNaN(offsetX) || Number.isNaN(offsetY))
84
+ return null;
85
+ if (isRelative) {
86
+ if (!reference)
87
+ return null;
88
+ return this.parse(String(reference.x + offsetX), String(reference.y + offsetY));
89
+ }
90
+ return this.parse(cartesian.x, cartesian.y);
91
+ }
92
+ if (NUMERIC_TOKEN.test(body)) {
93
+ var distance = Number(body);
94
+ var cursor = context === null || context === void 0 ? void 0 : context.cursorPoint;
95
+ if (!reference || !cursor || Number.isNaN(distance))
96
+ return null;
97
+ var dx = cursor.x - reference.x;
98
+ var dy = cursor.y - reference.y;
99
+ var len = Math.hypot(dx, dy);
100
+ var angleRad = len > 1e-10 ? Math.atan2(dy, dx) : 0;
101
+ return this.parse(String(reference.x + distance * Math.cos(angleRad)), String(reference.y + distance * Math.sin(angleRad)));
102
+ }
103
+ return null;
104
+ };
16
105
  return AcEdPointHandler;
17
106
  }());
18
107
  export { AcEdPointHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdPointHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH;IAGE,0BAAY,OAA+B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,gCAAK,GAAL,UAAM,CAAS,EAAE,CAAU;QACzB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC/B,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,IAiBC"}
1
+ {"version":3,"file":"AcEdPointHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AcEdPromptStringOptions } from '../prompt/AcEdPromptStringOptions';
2
- import { AcEdInputHandler } from './AcEdInputHandler';
2
+ import { AcEdInputHandler, AcEdPointInputContext } from './AcEdInputHandler';
3
3
  /**
4
4
  * Validates string input according to {@link AcEdPromptStringOptions}.
5
5
  * Supports empty string rules and maximum length.
@@ -8,5 +8,6 @@ export declare class AcEdStringHandler implements AcEdInputHandler<string> {
8
8
  private options;
9
9
  constructor(options: AcEdPromptStringOptions);
10
10
  parse(value: string): string | null;
11
+ parseCommandLine(token: string, _context?: AcEdPointInputContext): string | null;
11
12
  }
12
13
  //# sourceMappingURL=AcEdStringHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdStringHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdStringHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IAChE,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,EAAE,uBAAuB;IAI5C,KAAK,CAAC,KAAK,EAAE,MAAM;CAepB"}
1
+ {"version":3,"file":"AcEdStringHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdStringHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE5E;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,gBAAgB,CAAC,MAAM,CAAC;IAChE,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,EAAE,uBAAuB;IAI5C,KAAK,CAAC,KAAK,EAAE,MAAM;IAgBnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB;CAGjE"}
@@ -18,6 +18,9 @@ var AcEdStringHandler = /** @class */ (function () {
18
18
  }
19
19
  return value;
20
20
  };
21
+ AcEdStringHandler.prototype.parseCommandLine = function (token, _context) {
22
+ return this.parse(token);
23
+ };
21
24
  return AcEdStringHandler;
22
25
  }());
23
26
  export { AcEdStringHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdStringHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdStringHandler.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAGE,2BAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,iCAAK,GAAL,UAAM,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACpE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,AAtBD,IAsBC"}
1
+ {"version":3,"file":"AcEdStringHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdStringHandler.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAGE,2BAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,iCAAK,GAAL,UAAM,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACpE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,4CAAgB,GAAhB,UAAiB,KAAa,EAAE,QAAgC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACH,wBAAC;AAAD,CAAC,AA1BD,IA0BC"}
@@ -2,6 +2,7 @@ export * from './AcEdCursorManager';
2
2
  export * from './AcEdInputModifiers';
3
3
  export * from './AcEdInputToggles';
4
4
  export * from './AcEdOrthoMode';
5
+ export * from './AcEdOsnapResolver';
5
6
  export * from './AcEdPolarTracking';
6
7
  export * from './AcEditor';
7
8
  export * from './AcEdPreviewJig';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/editor/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,MAAM,CAAA"}
@@ -2,6 +2,7 @@ export * from './AcEdCursorManager';
2
2
  export * from './AcEdInputModifiers';
3
3
  export * from './AcEdInputToggles';
4
4
  export * from './AcEdOrthoMode';
5
+ export * from './AcEdOsnapResolver';
5
6
  export * from './AcEdPolarTracking';
6
7
  export * from './AcEditor';
7
8
  export * from './AcEdPreviewJig';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/editor/input/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,MAAM,CAAA"}
@@ -1,4 +1,14 @@
1
- export declare abstract class AcEdInputSession<T> {
1
+ /**
2
+ * Minimal command-line session surface used while a prompt is active.
3
+ *
4
+ * Stored without a result-type parameter so keyword and mixed-input sessions
5
+ * can share the same active-session slot.
6
+ */
7
+ export interface AcEdCommandLineSessionControl {
8
+ handleEnter(value: string): boolean;
9
+ handleEscape(): void;
10
+ }
11
+ export declare abstract class AcEdInputSession<T> implements AcEdCommandLineSessionControl {
2
12
  protected resolve: (value: T) => void;
3
13
  start(): Promise<T>;
4
14
  /** Called once session starts */
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdInputSession.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/session/AcEdInputSession.ts"],"names":[],"mappings":"AAAA,8BAAsB,gBAAgB,CAAC,CAAC;IACtC,SAAS,CAAC,OAAO,EAAG,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAEtC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;IAOnB,iCAAiC;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC,gDAAgD;IAChD,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAE5C,wBAAwB;IACxB,QAAQ,CAAC,YAAY,IAAI,IAAI;IAE7B,yBAAyB;IACzB,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;CAI1B"}
1
+ {"version":3,"file":"AcEdInputSession.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/session/AcEdInputSession.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC,YAAY,IAAI,IAAI,CAAA;CACrB;AAED,8BAAsB,gBAAgB,CACpC,CAAC,CACD,YAAW,6BAA6B;IACxC,SAAS,CAAC,OAAO,EAAG,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAEtC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;IAOnB,iCAAiC;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC,gDAAgD;IAChD,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAE5C,wBAAwB;IACxB,QAAQ,CAAC,YAAY,IAAI,IAAI;IAE7B,yBAAyB;IACzB,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;CAI1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdInputSession.js","sourceRoot":"","sources":["../../../../src/editor/input/session/AcEdInputSession.ts"],"names":[],"mappings":"AAAA;IAAA;IA0BA,CAAC;IAvBC,gCAAK,GAAL;QAAA,iBAKC;QAJC,OAAO,IAAI,OAAO,CAAI,UAAA,OAAO;YAC3B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,KAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAcS,iCAAM,GAAhB,UAAiB,KAAQ;QACvB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACH,uBAAC;AAAD,CAAC,AA1BD,IA0BC"}
1
+ {"version":3,"file":"AcEdInputSession.js","sourceRoot":"","sources":["../../../../src/editor/input/session/AcEdInputSession.ts"],"names":[],"mappings":"AAWA;IAAA;IA4BA,CAAC;IAvBC,gCAAK,GAAL;QAAA,iBAKC;QAJC,OAAO,IAAI,OAAO,CAAI,UAAA,OAAO;YAC3B,KAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,KAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAcS,iCAAM,GAAhB,UAAiB,KAAQ;QACvB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACH,uBAAC;AAAD,CAAC,AA5BD,IA4BC"}
@@ -0,0 +1,51 @@
1
+ import { AcEdPromptKeywordOptions } from '../prompt/AcEdPromptKeywordOptions';
2
+ import { AcEdCommandLine } from '../ui/AcEdCommandLine';
3
+ import { AcEdInputSession } from './AcEdInputSession';
4
+ /**
5
+ * Resolution mode for mixed command-line prompt sessions.
6
+ *
7
+ * - `geometric`: try coordinate/numeric parsing first, then keywords
8
+ * - `string`: try keywords first, then accept arbitrary string input
9
+ * - `keyword`: keywords only (same as {@link AcEdKeywordSession})
10
+ */
11
+ export type AcEdPromptInputMode = 'geometric' | 'string' | 'keyword';
12
+ /**
13
+ * Result produced by a mixed prompt-input session.
14
+ */
15
+ export type AcEdPromptInputResult<T> = {
16
+ kind: 'value';
17
+ value: T;
18
+ } | {
19
+ kind: 'keyword';
20
+ keyword: string;
21
+ } | {
22
+ kind: 'none';
23
+ };
24
+ /**
25
+ * Interactive command-line session that accepts geometric or textual prompt
26
+ * input together with optional keywords, using AutoCAD-style precedence rules.
27
+ */
28
+ export declare class AcEdPromptInputSession<T> extends AcEdInputSession<AcEdPromptInputResult<T>> {
29
+ private cli;
30
+ private options;
31
+ private parseValue;
32
+ private mode;
33
+ private allowNone;
34
+ private allowTyping;
35
+ private keywordHandler?;
36
+ /**
37
+ * @param cli - Command-line UI adapter
38
+ * @param options - Keyword prompt options used for rendering and keyword parsing
39
+ * @param parseValue - Parser for the prompt's primary value type
40
+ * @param mode - Precedence rules between data and keyword resolution
41
+ * @param allowNone - Whether empty Enter is accepted as `none`
42
+ * @param allowTyping - Whether typed input is accepted
43
+ */
44
+ constructor(cli: AcEdCommandLine, options: AcEdPromptKeywordOptions, parseValue: (text: string) => T | null, mode: AcEdPromptInputMode, allowNone: boolean, allowTyping?: boolean);
45
+ protected onStart(): void;
46
+ handleEnter(value: string): boolean;
47
+ handleEscape(): void;
48
+ protected cleanup(): void;
49
+ private tryResolveKeyword;
50
+ }
51
+ //# sourceMappingURL=AcEdPromptInputSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdPromptInputSession.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/session/AcEdPromptInputSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEpE;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB;;;GAGG;AACH,qBAAa,sBAAsB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAC7D,qBAAqB,CAAC,CAAC,CAAC,CACzB;IAYG,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IAhBrB,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C;;;;;;;OAOG;gBAEO,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EACtC,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,OAAO,EAClB,WAAW,GAAE,OAAc;IAQrC,SAAS,CAAC,OAAO,IAAI,IAAI;IASzB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAuCnC,YAAY,IAAI,IAAI;IAIpB,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,OAAO,CAAC,iBAAiB;CAO1B"}