@mlightcad/cad-simple-viewer 1.2.4 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/index.js +13000 -10094
  2. package/dist/index.umd.cjs +327 -24
  3. package/dist/libredwg-parser-worker.js +7267 -7238
  4. package/dist/mtext-renderer-worker.js +81 -41
  5. package/lib/app/AcApContext.js +1 -1
  6. package/lib/app/AcApContext.js.map +1 -1
  7. package/lib/app/AcApDocManager.d.ts +20 -3
  8. package/lib/app/AcApDocManager.d.ts.map +1 -1
  9. package/lib/app/AcApDocManager.js +67 -12
  10. package/lib/app/AcApDocManager.js.map +1 -1
  11. package/lib/app/AcApProgress.d.ts +133 -0
  12. package/lib/app/AcApProgress.d.ts.map +1 -0
  13. package/lib/app/AcApProgress.js +148 -0
  14. package/lib/app/AcApProgress.js.map +1 -0
  15. package/lib/app/AcApSettingManager.d.ts +42 -0
  16. package/lib/app/AcApSettingManager.d.ts.map +1 -1
  17. package/lib/app/AcApSettingManager.js +63 -0
  18. package/lib/app/AcApSettingManager.js.map +1 -1
  19. package/lib/app/index.d.ts +0 -1
  20. package/lib/app/index.d.ts.map +1 -1
  21. package/lib/app/index.js +0 -1
  22. package/lib/app/index.js.map +1 -1
  23. package/lib/command/AcApCircleCmd.d.ts +21 -0
  24. package/lib/command/AcApCircleCmd.d.ts.map +1 -0
  25. package/lib/command/AcApCircleCmd.js +115 -0
  26. package/lib/command/AcApCircleCmd.js.map +1 -0
  27. package/lib/command/AcApDimCmd.d.ts +57 -0
  28. package/lib/command/AcApDimCmd.d.ts.map +1 -0
  29. package/lib/command/AcApDimCmd.js +228 -0
  30. package/lib/command/AcApDimCmd.js.map +1 -0
  31. package/lib/command/AcApLogCmd.d.ts +13 -0
  32. package/lib/command/AcApLogCmd.d.ts.map +1 -0
  33. package/lib/command/AcApLogCmd.js +97 -0
  34. package/lib/command/AcApLogCmd.js.map +1 -0
  35. package/lib/command/AcApSysVarCmd.d.ts +15 -0
  36. package/lib/command/AcApSysVarCmd.d.ts.map +1 -0
  37. package/lib/command/AcApSysVarCmd.js +94 -0
  38. package/lib/command/AcApSysVarCmd.js.map +1 -0
  39. package/lib/command/AcApZoomCmd.js +1 -1
  40. package/lib/command/AcApZoomCmd.js.map +1 -1
  41. package/lib/command/AcApZoomToBoxCmd.d.ts +0 -36
  42. package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -1
  43. package/lib/command/AcApZoomToBoxCmd.js +4 -61
  44. package/lib/command/AcApZoomToBoxCmd.js.map +1 -1
  45. package/lib/command/index.d.ts +4 -0
  46. package/lib/command/index.d.ts.map +1 -1
  47. package/lib/command/index.js +4 -0
  48. package/lib/command/index.js.map +1 -1
  49. package/lib/editor/command/AcEdCommandStack.d.ts +19 -1
  50. package/lib/editor/command/AcEdCommandStack.d.ts.map +1 -1
  51. package/lib/editor/command/AcEdCommandStack.js +40 -0
  52. package/lib/editor/command/AcEdCommandStack.js.map +1 -1
  53. package/lib/editor/input/AcEdCursorManager.d.ts +14 -30
  54. package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -1
  55. package/lib/editor/input/AcEdCursorManager.js +32 -31
  56. package/lib/editor/input/AcEdCursorManager.js.map +1 -1
  57. package/lib/editor/input/AcEdPreviewJig.d.ts +103 -0
  58. package/lib/editor/input/AcEdPreviewJig.d.ts.map +1 -0
  59. package/lib/editor/input/AcEdPreviewJig.js +82 -0
  60. package/lib/editor/input/AcEdPreviewJig.js.map +1 -0
  61. package/lib/editor/input/AcEditor.d.ts +58 -11
  62. package/lib/editor/input/AcEditor.d.ts.map +1 -1
  63. package/lib/editor/input/AcEditor.js +86 -22
  64. package/lib/editor/input/AcEditor.js.map +1 -1
  65. package/lib/editor/input/handler/AcEdAngleHandler.d.ts +12 -0
  66. package/lib/editor/input/handler/AcEdAngleHandler.d.ts.map +1 -0
  67. package/lib/editor/input/handler/AcEdAngleHandler.js +25 -0
  68. package/lib/editor/input/handler/AcEdAngleHandler.js.map +1 -0
  69. package/lib/editor/input/handler/AcEdDistanceHandler.d.ts +8 -0
  70. package/lib/editor/input/handler/AcEdDistanceHandler.d.ts.map +1 -0
  71. package/lib/editor/input/handler/AcEdDistanceHandler.js +29 -0
  72. package/lib/editor/input/handler/AcEdDistanceHandler.js.map +1 -0
  73. package/lib/editor/input/handler/AcEdDoubleHandler.d.ts +7 -0
  74. package/lib/editor/input/handler/AcEdDoubleHandler.d.ts.map +1 -0
  75. package/lib/editor/input/handler/AcEdDoubleHandler.js +28 -0
  76. package/lib/editor/input/handler/AcEdDoubleHandler.js.map +1 -0
  77. package/lib/editor/input/handler/AcEdInputHandler.d.ts +14 -0
  78. package/lib/editor/input/handler/AcEdInputHandler.d.ts.map +1 -0
  79. package/lib/editor/input/handler/AcEdInputHandler.js +2 -0
  80. package/lib/editor/input/handler/AcEdInputHandler.js.map +1 -0
  81. package/lib/editor/input/handler/AcEdIntegerHandler.d.ts +11 -0
  82. package/lib/editor/input/handler/AcEdIntegerHandler.d.ts.map +1 -0
  83. package/lib/editor/input/handler/AcEdIntegerHandler.js +44 -0
  84. package/lib/editor/input/handler/AcEdIntegerHandler.js.map +1 -0
  85. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts +11 -0
  86. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts.map +1 -0
  87. package/lib/editor/input/handler/AcEdNumericalHandler.js +24 -0
  88. package/lib/editor/input/handler/AcEdNumericalHandler.js.map +1 -0
  89. package/lib/editor/input/handler/AcEdPointHandler.d.ts +16 -0
  90. package/lib/editor/input/handler/AcEdPointHandler.d.ts.map +1 -0
  91. package/lib/editor/input/handler/AcEdPointHandler.js +19 -0
  92. package/lib/editor/input/handler/AcEdPointHandler.js.map +1 -0
  93. package/lib/editor/input/handler/AcEdStringHandler.d.ts +12 -0
  94. package/lib/editor/input/handler/AcEdStringHandler.d.ts.map +1 -0
  95. package/lib/editor/input/handler/AcEdStringHandler.js +24 -0
  96. package/lib/editor/input/handler/AcEdStringHandler.js.map +1 -0
  97. package/lib/editor/input/handler/index.d.ts +9 -0
  98. package/lib/editor/input/handler/index.d.ts.map +1 -0
  99. package/lib/editor/input/handler/index.js +9 -0
  100. package/lib/editor/input/handler/index.js.map +1 -0
  101. package/lib/editor/input/index.d.ts +4 -1
  102. package/lib/editor/input/index.d.ts.map +1 -1
  103. package/lib/editor/input/index.js +4 -1
  104. package/lib/editor/input/index.js.map +1 -1
  105. package/lib/editor/input/marker/AcEdMarker.d.ts +72 -0
  106. package/lib/editor/input/marker/AcEdMarker.d.ts.map +1 -0
  107. package/lib/editor/input/marker/AcEdMarker.js +124 -0
  108. package/lib/editor/input/marker/AcEdMarker.js.map +1 -0
  109. package/lib/editor/input/marker/AcEdOSnapMarkerManager.d.ts +52 -0
  110. package/lib/editor/input/marker/AcEdOSnapMarkerManager.d.ts.map +1 -0
  111. package/lib/editor/input/marker/AcEdOSnapMarkerManager.js +91 -0
  112. package/lib/editor/input/marker/AcEdOSnapMarkerManager.js.map +1 -0
  113. package/lib/editor/input/marker/index.d.ts +3 -0
  114. package/lib/editor/input/marker/index.d.ts.map +1 -0
  115. package/lib/editor/input/marker/index.js +3 -0
  116. package/lib/editor/input/marker/index.js.map +1 -0
  117. package/lib/editor/input/prompt/AcEdKeyword.d.ts +63 -0
  118. package/lib/editor/input/prompt/AcEdKeyword.d.ts.map +1 -0
  119. package/lib/editor/input/prompt/AcEdKeyword.js +120 -0
  120. package/lib/editor/input/prompt/AcEdKeyword.js.map +1 -0
  121. package/lib/editor/input/prompt/AcEdKeywordCollection.d.ts +52 -0
  122. package/lib/editor/input/prompt/AcEdKeywordCollection.d.ts.map +1 -0
  123. package/lib/editor/input/prompt/AcEdKeywordCollection.js +103 -0
  124. package/lib/editor/input/prompt/AcEdKeywordCollection.js.map +1 -0
  125. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +75 -0
  126. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -0
  127. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +182 -0
  128. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -0
  129. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.d.ts +46 -0
  130. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.d.ts.map +1 -0
  131. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.js +114 -0
  132. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.js.map +1 -0
  133. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.d.ts +10 -0
  134. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.d.ts.map +1 -0
  135. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.js +31 -0
  136. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.js.map +1 -0
  137. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.d.ts +39 -0
  138. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.d.ts.map +1 -0
  139. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.js +84 -0
  140. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.js.map +1 -0
  141. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts +59 -0
  142. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts.map +1 -0
  143. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js +140 -0
  144. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js.map +1 -0
  145. package/lib/editor/input/prompt/AcEdPromptNumericalResult.d.ts +19 -0
  146. package/lib/editor/input/prompt/AcEdPromptNumericalResult.d.ts.map +1 -0
  147. package/lib/editor/input/prompt/AcEdPromptNumericalResult.js +36 -0
  148. package/lib/editor/input/prompt/AcEdPromptNumericalResult.js.map +1 -0
  149. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts +61 -0
  150. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts.map +1 -0
  151. package/lib/editor/input/prompt/AcEdPromptOptions.js +179 -0
  152. package/lib/editor/input/prompt/AcEdPromptOptions.js.map +1 -0
  153. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts +46 -0
  154. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts.map +1 -0
  155. package/lib/editor/input/prompt/AcEdPromptPointOptions.js +113 -0
  156. package/lib/editor/input/prompt/AcEdPromptPointOptions.js.map +1 -0
  157. package/lib/editor/input/prompt/AcEdPromptPointResult.d.ts +25 -0
  158. package/lib/editor/input/prompt/AcEdPromptPointResult.d.ts.map +1 -0
  159. package/lib/editor/input/prompt/AcEdPromptPointResult.js +38 -0
  160. package/lib/editor/input/prompt/AcEdPromptPointResult.js.map +1 -0
  161. package/lib/editor/input/prompt/AcEdPromptResult.d.ts +27 -0
  162. package/lib/editor/input/prompt/AcEdPromptResult.d.ts.map +1 -0
  163. package/lib/editor/input/prompt/AcEdPromptResult.js +19 -0
  164. package/lib/editor/input/prompt/AcEdPromptResult.js.map +1 -0
  165. package/lib/editor/input/prompt/AcEdPromptStatus.d.ts +22 -0
  166. package/lib/editor/input/prompt/AcEdPromptStatus.d.ts.map +1 -0
  167. package/lib/editor/input/prompt/AcEdPromptStatus.js +23 -0
  168. package/lib/editor/input/prompt/AcEdPromptStatus.js.map +1 -0
  169. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts +54 -0
  170. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts.map +1 -0
  171. package/lib/editor/input/prompt/AcEdPromptStringOptions.js +124 -0
  172. package/lib/editor/input/prompt/AcEdPromptStringOptions.js.map +1 -0
  173. package/lib/editor/input/prompt/index.d.ts +11 -0
  174. package/lib/editor/input/prompt/index.d.ts.map +1 -0
  175. package/lib/editor/input/prompt/index.js +11 -0
  176. package/lib/editor/input/prompt/index.js.map +1 -0
  177. package/lib/editor/input/ui/AcEdCommandLine.d.ts +116 -0
  178. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -0
  179. package/lib/editor/input/ui/AcEdCommandLine.js +481 -0
  180. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -0
  181. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +151 -0
  182. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -0
  183. package/lib/editor/input/ui/AcEdFloatingInput.js +239 -0
  184. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -0
  185. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts +60 -0
  186. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts.map +1 -0
  187. package/lib/editor/input/ui/AcEdFloatingInputBox.js +113 -0
  188. package/lib/editor/input/ui/AcEdFloatingInputBox.js.map +1 -0
  189. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts +104 -0
  190. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -0
  191. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +154 -0
  192. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -0
  193. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +113 -0
  194. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -0
  195. package/lib/editor/input/ui/AcEdFloatingInputTypes.js +2 -0
  196. package/lib/editor/input/ui/AcEdFloatingInputTypes.js.map +1 -0
  197. package/lib/editor/input/ui/AcEdInputManager.d.ts +132 -0
  198. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -0
  199. package/lib/editor/input/ui/AcEdInputManager.js +477 -0
  200. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -0
  201. package/lib/editor/input/ui/AcEdRubberBand.d.ts +66 -0
  202. package/lib/editor/input/ui/AcEdRubberBand.d.ts.map +1 -0
  203. package/lib/editor/input/ui/AcEdRubberBand.js +276 -0
  204. package/lib/editor/input/ui/AcEdRubberBand.js.map +1 -0
  205. package/lib/editor/input/ui/index.d.ts +3 -0
  206. package/lib/editor/input/ui/index.d.ts.map +1 -0
  207. package/lib/editor/input/ui/index.js +3 -0
  208. package/lib/editor/input/ui/index.js.map +1 -0
  209. package/lib/editor/view/AcEdBaseView.d.ts +54 -16
  210. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  211. package/lib/editor/view/AcEdBaseView.js +14 -11
  212. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  213. package/lib/editor/view/AcEdLayerInfo.d.ts +5 -0
  214. package/lib/editor/view/AcEdLayerInfo.d.ts.map +1 -1
  215. package/lib/i18n/AcApI18n.d.ts +135 -0
  216. package/lib/i18n/AcApI18n.d.ts.map +1 -0
  217. package/lib/i18n/AcApI18n.js +208 -0
  218. package/lib/i18n/AcApI18n.js.map +1 -0
  219. package/lib/i18n/en/command.d.ts +18 -0
  220. package/lib/i18n/en/command.d.ts.map +1 -0
  221. package/lib/i18n/en/command.js +17 -0
  222. package/lib/i18n/en/command.js.map +1 -0
  223. package/lib/i18n/en/jig.d.ts +11 -0
  224. package/lib/i18n/en/jig.d.ts.map +1 -0
  225. package/lib/i18n/en/jig.js +10 -0
  226. package/lib/i18n/en/jig.js.map +1 -0
  227. package/lib/i18n/en/main.d.ts +37 -0
  228. package/lib/i18n/en/main.d.ts.map +1 -0
  229. package/lib/i18n/en/main.js +36 -0
  230. package/lib/i18n/en/main.js.map +1 -0
  231. package/lib/i18n/index.d.ts +6 -0
  232. package/lib/i18n/index.d.ts.map +1 -0
  233. package/lib/i18n/index.js +31 -0
  234. package/lib/i18n/index.js.map +1 -0
  235. package/lib/i18n/zh/command.d.ts +18 -0
  236. package/lib/i18n/zh/command.d.ts.map +1 -0
  237. package/lib/i18n/zh/command.js +17 -0
  238. package/lib/i18n/zh/command.js.map +1 -0
  239. package/lib/i18n/zh/jig.d.ts +11 -0
  240. package/lib/i18n/zh/jig.d.ts.map +1 -0
  241. package/lib/i18n/zh/jig.js +10 -0
  242. package/lib/i18n/zh/jig.js.map +1 -0
  243. package/lib/i18n/zh/main.d.ts +37 -0
  244. package/lib/i18n/zh/main.d.ts.map +1 -0
  245. package/lib/i18n/zh/main.js +36 -0
  246. package/lib/i18n/zh/main.js.map +1 -0
  247. package/lib/index.d.ts +1 -0
  248. package/lib/index.d.ts.map +1 -1
  249. package/lib/index.js +1 -0
  250. package/lib/index.js.map +1 -1
  251. package/lib/view/AcTrLayer.d.ts +29 -5
  252. package/lib/view/AcTrLayer.d.ts.map +1 -1
  253. package/lib/view/AcTrLayer.js +44 -6
  254. package/lib/view/AcTrLayer.js.map +1 -1
  255. package/lib/view/AcTrLayout.d.ts +13 -7
  256. package/lib/view/AcTrLayout.d.ts.map +1 -1
  257. package/lib/view/AcTrLayout.js +29 -21
  258. package/lib/view/AcTrLayout.js.map +1 -1
  259. package/lib/view/AcTrScene.d.ts +22 -8
  260. package/lib/view/AcTrScene.d.ts.map +1 -1
  261. package/lib/view/AcTrScene.js +36 -9
  262. package/lib/view/AcTrScene.js.map +1 -1
  263. package/lib/view/AcTrView2d.d.ts +19 -4
  264. package/lib/view/AcTrView2d.d.ts.map +1 -1
  265. package/lib/view/AcTrView2d.js +135 -43
  266. package/lib/view/AcTrView2d.js.map +1 -1
  267. package/package.json +7 -7
  268. package/lib/editor/input/AcEdBaseInput.d.ts +0 -89
  269. package/lib/editor/input/AcEdBaseInput.d.ts.map +0 -1
  270. package/lib/editor/input/AcEdBaseInput.js +0 -166
  271. package/lib/editor/input/AcEdBaseInput.js.map +0 -1
  272. package/lib/editor/input/AcEdBoxSelector.d.ts +0 -108
  273. package/lib/editor/input/AcEdBoxSelector.d.ts.map +0 -1
  274. package/lib/editor/input/AcEdBoxSelector.js +0 -220
  275. package/lib/editor/input/AcEdBoxSelector.js.map +0 -1
  276. package/lib/editor/input/AcEdInputPoint.d.ts +0 -51
  277. package/lib/editor/input/AcEdInputPoint.d.ts.map +0 -1
  278. package/lib/editor/input/AcEdInputPoint.js +0 -78
  279. package/lib/editor/input/AcEdInputPoint.js.map +0 -1
  280. package/lib/editor/input/AcEdJig.d.ts +0 -180
  281. package/lib/editor/input/AcEdJig.d.ts.map +0 -1
  282. package/lib/editor/input/AcEdJig.js +0 -256
  283. package/lib/editor/input/AcEdJig.js.map +0 -1
  284. package/lib/editor/input/AcEdJigLoop.d.ts +0 -63
  285. package/lib/editor/input/AcEdJigLoop.d.ts.map +0 -1
  286. package/lib/editor/input/AcEdJigLoop.js +0 -91
  287. package/lib/editor/input/AcEdJigLoop.js.map +0 -1
@@ -0,0 +1,116 @@
1
+ /**
2
+ * AutoCAD-style floating command line with Promise-based execution.
3
+ *
4
+ * Features:
5
+ * - Floating command bar with left terminal glyph + down toggle and right up toggle
6
+ * - Command history popup
7
+ * - Message panel above the bar
8
+ * - Enter repeats last command if input empty
9
+ * - Esc cancels current command
10
+ * - Inline clickable options
11
+ * - Keyboard navigation
12
+ * - Promise-based execution for async command handling
13
+ * - Auto-complete popup for matching commands
14
+ */
15
+ export declare class AcEdCommandLine {
16
+ container: HTMLElement;
17
+ history: string[];
18
+ historyIndex: number;
19
+ lastExecuted: string | null;
20
+ isCmdPopupOpen: boolean;
21
+ isMsgPanelOpen: boolean;
22
+ minWidth: number;
23
+ widthRatio: number;
24
+ cliContainer: HTMLDivElement;
25
+ wrapper: HTMLDivElement;
26
+ bar: HTMLDivElement;
27
+ leftGroup: HTMLDivElement;
28
+ termGlyph: HTMLDivElement;
29
+ downBtn: HTMLButtonElement;
30
+ input: HTMLDivElement;
31
+ upBtn: HTMLButtonElement;
32
+ cmdPopup: HTMLDivElement;
33
+ msgPanel: HTMLDivElement;
34
+ autoCompleteIndex: number;
35
+ constructor(container?: HTMLElement);
36
+ /** Visibility of the command line */
37
+ get visible(): boolean;
38
+ set visible(val: boolean);
39
+ /**
40
+ * Localize a text key using AcApI18n.t().
41
+ *
42
+ * This helper centralizes localization calls for the class and makes
43
+ * it easier to adjust localization behavior in one place if needed.
44
+ *
45
+ * @param key - Localization key (flat key style, e.g. "command.placeholder")
46
+ * @param defaultText - Default English (or fallback) text to use if the key is missing
47
+ * @returns localized string from AcApI18n or the provided defaultText
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const placeholder = this.localize('main.commandLine.placeholder', 'Type command')
52
+ * ```
53
+ */
54
+ private localize;
55
+ /** Refresh all messages when locale changes */
56
+ private refreshLocale;
57
+ /**
58
+ * Execute a command line string.
59
+ * Returns a Promise that resolves when the command is completed.
60
+ * @param cmdLine - Command string
61
+ * @returns Promise<void>
62
+ */
63
+ executeCommand(cmdLine: string): void;
64
+ /** Inject CSS styles */
65
+ injectCSS(): void;
66
+ /** Create the command line UI elements */
67
+ createUI(): void;
68
+ /** Bind event listeners */
69
+ bindEvents(): void;
70
+ /** Handle Enter/Escape keys */
71
+ handleKeyDown(e: KeyboardEvent): void;
72
+ /** Handle Up/Down keys for history or auto-complete */
73
+ handleArrowKeys(e: KeyboardEvent): void;
74
+ /** Handle input change to show auto-complete */
75
+ handleInputChange(): void;
76
+ /** Navigate auto-complete list with arrow keys */
77
+ navigateAutoComplete(dir: number): void;
78
+ /** Navigate command history */
79
+ navigateHistory(dir: number): void;
80
+ /** Get current input text */
81
+ getInputText(): string;
82
+ /** Set input text */
83
+ setInputText(text?: string): void;
84
+ /** Render command line with options */
85
+ renderCommandLine(cmd: string, options?: string[]): void;
86
+ /** Insert option into input */
87
+ insertOption(opt: string): void;
88
+ /** Move cursor to end of input */
89
+ setCursorToEnd(): void;
90
+ /** Resolve command name */
91
+ resolveCommand(cmdLine: string): import("../../command").AcEdCommand | undefined;
92
+ /** Show or hide popups */
93
+ updatePopups({ showCmd, showMsg }?: {
94
+ showCmd?: boolean | undefined;
95
+ showMsg?: boolean | undefined;
96
+ }): void;
97
+ /** Show command history popup */
98
+ showCommandHistoryPopup(): void;
99
+ /** Position command history popup */
100
+ positionCmdPopup(): void;
101
+ /** Show message panel */
102
+ showMessagePanel(): void;
103
+ /** Position message panel */
104
+ positionMsgPanel(): void;
105
+ /** Remove "no history" placeholder if present */
106
+ private clearNoHistoryPlaceholder;
107
+ /** Print message to message panel with optional localization key */
108
+ printMessage(msg: string, msgKey?: string): void;
109
+ /** Print error message with optional localization key */
110
+ printError(msg: string, msgKey?: string): void;
111
+ /** Print executed command line to history */
112
+ printHistoryLine(cmdLine: string): void;
113
+ /** Handle window resize */
114
+ resizeHandler(): void;
115
+ }
116
+ //# sourceMappingURL=AcEdCommandLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdCommandLine.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/ui/AcEdCommandLine.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,SAAS,EAAE,WAAW,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAG,cAAc,CAAA;IAC7B,OAAO,EAAG,cAAc,CAAA;IACxB,GAAG,EAAG,cAAc,CAAA;IACpB,SAAS,EAAG,cAAc,CAAA;IAC1B,SAAS,EAAG,cAAc,CAAA;IAC1B,OAAO,EAAG,iBAAiB,CAAA;IAC3B,KAAK,EAAG,cAAc,CAAA;IACtB,KAAK,EAAG,iBAAiB,CAAA;IACzB,QAAQ,EAAG,cAAc,CAAA;IACzB,QAAQ,EAAG,cAAc,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;gBAEb,SAAS,GAAE,WAA2B;IAmBlD,qCAAqC;IACrC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAEvB;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,QAAQ;IAIhB,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IA6BrB;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM;IA8B9B,wBAAwB;IACxB,SAAS;IAuMT,0CAA0C;IAC1C,QAAQ;IAyDR,2BAA2B;IAC3B,UAAU;IAsCV,+BAA+B;IAC/B,aAAa,CAAC,CAAC,EAAE,aAAa;IAc9B,uDAAuD;IACvD,eAAe,CAAC,CAAC,EAAE,aAAa;IAahC,gDAAgD;IAChD,iBAAiB;IA6BjB,kDAAkD;IAClD,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAsBhC,+BAA+B;IAC/B,eAAe,CAAC,GAAG,EAAE,MAAM;IAc3B,6BAA6B;IAC7B,YAAY,IAAI,MAAM;IAMtB,qBAAqB;IACrB,YAAY,CAAC,IAAI,SAAK;IAMtB,uCAAuC;IACvC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO;IAkBrD,+BAA+B;IAC/B,YAAY,CAAC,GAAG,EAAE,MAAM;IAMxB,kCAAkC;IAClC,cAAc;IAWd,2BAA2B;IAC3B,cAAc,CAAC,OAAO,EAAE,MAAM;IAO9B,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAe,EAAE,OAAe,EAAE;;;KAAK;IAStD,iCAAiC;IACjC,uBAAuB;IAmBvB,qCAAqC;IACrC,gBAAgB;IAKhB,yBAAyB;IACzB,gBAAgB;IAchB,6BAA6B;IAC7B,gBAAgB;IAIhB,iDAAiD;IACjD,OAAO,CAAC,yBAAyB;IASjC,oEAAoE;IACpE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAUzC,yDAAyD;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAUvC,6CAA6C;IAC7C,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAWhC,2BAA2B;IAC3B,aAAa;CAWd"}
@@ -0,0 +1,481 @@
1
+ import { AcApDocManager } from '../../../app';
2
+ import { AcApI18n } from '../../../i18n';
3
+ import { AcEdCommandStack } from '../../command';
4
+ /**
5
+ * AutoCAD-style floating command line with Promise-based execution.
6
+ *
7
+ * Features:
8
+ * - Floating command bar with left terminal glyph + down toggle and right up toggle
9
+ * - Command history popup
10
+ * - Message panel above the bar
11
+ * - Enter repeats last command if input empty
12
+ * - Esc cancels current command
13
+ * - Inline clickable options
14
+ * - Keyboard navigation
15
+ * - Promise-based execution for async command handling
16
+ * - Auto-complete popup for matching commands
17
+ */
18
+ var AcEdCommandLine = /** @class */ (function () {
19
+ function AcEdCommandLine(container) {
20
+ if (container === void 0) { container = document.body; }
21
+ var _this = this;
22
+ this.container = container;
23
+ this.history = [];
24
+ this.historyIndex = -1;
25
+ this.lastExecuted = null;
26
+ this.isCmdPopupOpen = false;
27
+ this.isMsgPanelOpen = false;
28
+ this.minWidth = 420;
29
+ this.widthRatio = 0.66;
30
+ this.autoCompleteIndex = -1;
31
+ this.injectCSS();
32
+ this.createUI();
33
+ this.bindEvents();
34
+ this.resizeHandler();
35
+ window.addEventListener('resize', function () { return _this.resizeHandler(); });
36
+ AcApI18n.events.localeChanged.addEventListener(function () { return _this.refreshLocale(); });
37
+ }
38
+ Object.defineProperty(AcEdCommandLine.prototype, "visible", {
39
+ /** Visibility of the command line */
40
+ get: function () {
41
+ return this.cliContainer.style.display !== 'none';
42
+ },
43
+ set: function (val) {
44
+ this.cliContainer.style.display = val ? 'block' : 'none';
45
+ },
46
+ enumerable: false,
47
+ configurable: true
48
+ });
49
+ /**
50
+ * Localize a text key using AcApI18n.t().
51
+ *
52
+ * This helper centralizes localization calls for the class and makes
53
+ * it easier to adjust localization behavior in one place if needed.
54
+ *
55
+ * @param key - Localization key (flat key style, e.g. "command.placeholder")
56
+ * @param defaultText - Default English (or fallback) text to use if the key is missing
57
+ * @returns localized string from AcApI18n or the provided defaultText
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const placeholder = this.localize('main.commandLine.placeholder', 'Type command')
62
+ * ```
63
+ */
64
+ AcEdCommandLine.prototype.localize = function (key, defaultText) {
65
+ return AcApI18n.t(key, { fallback: defaultText });
66
+ };
67
+ /** Refresh all messages when locale changes */
68
+ AcEdCommandLine.prototype.refreshLocale = function () {
69
+ var _this = this;
70
+ Array.from(this.msgPanel.children).forEach(function (child) {
71
+ var _a, _b, _c, _d, _e, _f;
72
+ var div = child;
73
+ var key = div.dataset.msgKey;
74
+ if (key) {
75
+ if (key === 'main.commandLine.executed') {
76
+ // Preserve the command name part
77
+ var cmdName = (_c = (_b = (_a = div.textContent) === null || _a === void 0 ? void 0 : _a.split(':')[1]) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
78
+ div.textContent = "".concat(_this.localize(key), ": ").concat(cmdName);
79
+ }
80
+ else if (key === 'main.commandLine.unknownCommand') {
81
+ var cmd = (_f = (_e = (_d = div.textContent) === null || _d === void 0 ? void 0 : _d.split(':')[1]) === null || _e === void 0 ? void 0 : _e.trim()) !== null && _f !== void 0 ? _f : '';
82
+ div.textContent = "".concat(_this.localize(key), ": ").concat(cmd);
83
+ }
84
+ else {
85
+ div.textContent = _this.localize(key);
86
+ }
87
+ }
88
+ });
89
+ // Refresh input placeholder
90
+ this.input.setAttribute('data-placeholder', this.localize('main.commandLine.placeholder'));
91
+ // Refresh button titles
92
+ this.downBtn.title = this.localize('main.commandLine.showHistory');
93
+ this.upBtn.title = this.localize('main.commandLine.showMessages');
94
+ };
95
+ /**
96
+ * Execute a command line string.
97
+ * Returns a Promise that resolves when the command is completed.
98
+ * @param cmdLine - Command string
99
+ * @returns Promise<void>
100
+ */
101
+ AcEdCommandLine.prototype.executeCommand = function (cmdLine) {
102
+ if (!cmdLine || !cmdLine.trim()) {
103
+ if (this.lastExecuted)
104
+ cmdLine = this.lastExecuted;
105
+ else {
106
+ this.printMessage(this.localize('main.commandLine.noLast', '(no last command)'));
107
+ return;
108
+ }
109
+ }
110
+ var command = this.resolveCommand(cmdLine);
111
+ if (!command) {
112
+ var unknown = this.localize('main.commandLine.unknownCommand');
113
+ this.printError("".concat(unknown, ": ").concat(cmdLine));
114
+ return;
115
+ }
116
+ this.history.push(command.globalName);
117
+ this.historyIndex = this.history.length;
118
+ this.lastExecuted = command.globalName;
119
+ this.printHistoryLine(cmdLine);
120
+ var executed = this.localize('main.commandLine.executed');
121
+ this.printMessage("".concat(executed, ": ").concat(command.localName));
122
+ AcApDocManager.instance.sendStringToExecute(cmdLine);
123
+ this.renderCommandLine('');
124
+ };
125
+ /** Inject CSS styles */
126
+ AcEdCommandLine.prototype.injectCSS = function () {
127
+ var style = document.createElement('style');
128
+ style.textContent = "\n .ml-cli-container {\n position: fixed;\n bottom: 45px;\n left: 50%;\n transform: translateX(-50%);\n font-family: \"Segoe UI\", Arial, sans-serif;\n font-size: 13px;\n box-sizing: border-box;\n user-select: none;\n }\n\n .ml-cli-bar {\n display: flex;\n align-items: center;\n gap: 6px;\n border-radius: 6px;\n background: linear-gradient(#ededed, #e0e0e0);\n border: 1px solid rgba(0, 0, 0, 0.35);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);\n min-width: 300px;\n height: 30px;\n }\n\n .ml-cli-left {\n display: flex;\n align-items: center;\n gap: 4px;\n background: rgba(0, 0, 0, 0.06);\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n height: 100%;\n }\n\n .ml-cli-term {\n width: 18px;\n height: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n font-weight: 700;\n color: #222;\n font-size: 12px;\n }\n\n .ml-cli-down,\n .ml-cli-up {\n width: 16px;\n height: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 16px;\n color: #222;\n padding: 0;\n }\n\n .ml-cli-up {\n transform: rotate(180deg);\n transform-origin: center;\n }\n\n .ml-cli-right {\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.06);\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n height: 100%;\n }\n\n .ml-cli-input {\n flex: 1;\n display: flex;\n align-items: center;\n min-height: 22px;\n padding: 0 6px;\n border-radius: 3px;\n background: transparent;\n outline: none;\n border: none;\n font-family: monospace;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n line-height: normal;\n }\n\n .ml-cli-input[data-placeholder]:empty:before {\n content: attr(data-placeholder);\n color: #9a9a9a;\n font-weight: 400;\n display: flex;\n align-items: center;\n height: 100%;\n }\n\n .ml-cli-option {\n display: inline-block;\n color: #222;\n background: #f7f7f7;\n border: 1px solid rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n margin: 0 4px;\n cursor: pointer;\n font-size: 12px;\n }\n\n .ml-cli-option:hover {\n background: #eaeaea;\n }\n\n .ml-cli-cmd-popup {\n position: absolute;\n bottom: 100%;\n left: 0;\n transform: translate(0, 0);\n max-height: 220px;\n overflow-y: auto;\n background: #333;\n border: 1px solid rgba(0, 0, 0, 0.5);\n box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);\n border-radius: 4px;\n padding: 6px 0;\n color: #fff;\n }\n\n .ml-cli-cmd-popup .item {\n padding: 8px 14px;\n cursor: pointer;\n color: #fff;\n font-size: 14px;\n }\n\n .ml-cli-cmd-popup .item:hover {\n background: #444;\n }\n\n .ml-cli-msg-panel {\n position: absolute;\n bottom: 100%;\n left: 0;\n transform: translate(0, 0);\n max-height: 340px;\n overflow-y: auto;\n background: #333;\n border: 1px solid rgba(0, 0, 0, 0.5);\n box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);\n border-radius: 4px;\n padding: 6px 0;\n font-family: \"Microsoft YaHei\", Arial, sans-serif;\n color: #fff;\n font-size: 14px;\n white-space: pre-wrap;\n line-height: 1.35;\n }\n\n .ml-cli-history-line {\n padding: 4px 6px;\n color: #fff;\n }\n\n .ml-cli-msg-error {\n color: #ff5555;\n }\n\n .ml-cli-wrapper {\n position: relative;\n width: 100%;\n }\n\n .hidden {\n display: none !important;\n }\n\n .ml-cli-cmd-popup::-webkit-scrollbar,\n .ml-cli-msg-panel::-webkit-scrollbar {\n width: 10px;\n }\n\n .ml-cli-cmd-popup::-webkit-scrollbar-thumb,\n .ml-cli-msg-panel::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2);\n border-radius: 6px;\n }\n ";
129
+ document.head.appendChild(style);
130
+ };
131
+ /** Create the command line UI elements */
132
+ AcEdCommandLine.prototype.createUI = function () {
133
+ this.cliContainer = document.createElement('div');
134
+ this.cliContainer.className = 'ml-cli-container';
135
+ this.wrapper = document.createElement('div');
136
+ this.wrapper.className = 'ml-cli-wrapper';
137
+ this.cliContainer.appendChild(this.wrapper);
138
+ this.bar = document.createElement('div');
139
+ this.bar.className = 'ml-cli-bar';
140
+ this.wrapper.appendChild(this.bar);
141
+ this.leftGroup = document.createElement('div');
142
+ this.leftGroup.className = 'ml-cli-left';
143
+ this.bar.appendChild(this.leftGroup);
144
+ this.termGlyph = document.createElement('div');
145
+ this.termGlyph.className = 'ml-cli-term';
146
+ this.termGlyph.textContent = '>';
147
+ this.leftGroup.appendChild(this.termGlyph);
148
+ this.downBtn = document.createElement('button');
149
+ this.downBtn.className = 'ml-cli-down';
150
+ this.downBtn.title = this.localize('main.commandLine.showHistory');
151
+ this.downBtn.innerHTML = '&#9662;';
152
+ this.leftGroup.appendChild(this.downBtn);
153
+ this.input = document.createElement('div');
154
+ this.input.className = 'ml-cli-input';
155
+ this.input.contentEditable = 'true';
156
+ this.input.setAttribute('spellcheck', 'false');
157
+ this.input.setAttribute('data-placeholder', this.localize('main.commandLine.placeholder'));
158
+ this.bar.appendChild(this.input);
159
+ var rightGroup = document.createElement('div');
160
+ rightGroup.className = 'ml-cli-right';
161
+ this.bar.appendChild(rightGroup);
162
+ this.upBtn = document.createElement('button');
163
+ this.upBtn.className = 'ml-cli-up';
164
+ this.upBtn.title = this.localize('main.commandLine.showMessages');
165
+ this.upBtn.innerHTML = '&#9662;';
166
+ rightGroup.appendChild(this.upBtn);
167
+ this.cmdPopup = document.createElement('div');
168
+ this.cmdPopup.className = 'ml-cli-cmd-popup hidden';
169
+ this.wrapper.appendChild(this.cmdPopup);
170
+ this.msgPanel = document.createElement('div');
171
+ this.msgPanel.className = 'ml-cli-msg-panel hidden';
172
+ this.wrapper.appendChild(this.msgPanel);
173
+ this.container.appendChild(this.cliContainer);
174
+ };
175
+ /** Bind event listeners */
176
+ AcEdCommandLine.prototype.bindEvents = function () {
177
+ var _this = this;
178
+ this.downBtn.addEventListener('click', function (e) {
179
+ e.stopPropagation();
180
+ _this.isCmdPopupOpen = !_this.isCmdPopupOpen;
181
+ _this.updatePopups({ showCmd: _this.isCmdPopupOpen, showMsg: false });
182
+ if (_this.isCmdPopupOpen)
183
+ _this.showCommandHistoryPopup();
184
+ });
185
+ this.upBtn.addEventListener('click', function (e) {
186
+ e.stopPropagation();
187
+ _this.isMsgPanelOpen = !_this.isMsgPanelOpen;
188
+ _this.updatePopups({ showCmd: false, showMsg: _this.isMsgPanelOpen });
189
+ if (_this.isMsgPanelOpen)
190
+ _this.showMessagePanel();
191
+ });
192
+ document.addEventListener('click', function (e) {
193
+ if (!_this.cliContainer.contains(e.target)) {
194
+ _this.updatePopups({ showCmd: false, showMsg: false });
195
+ }
196
+ });
197
+ this.input.addEventListener('keydown', function (e) { return _this.handleKeyDown(e); });
198
+ this.input.addEventListener('keydown', function (e) { return _this.handleArrowKeys(e); });
199
+ this.input.addEventListener('input', function () { return _this.handleInputChange(); });
200
+ this.input.addEventListener('focus', function () {
201
+ return _this.updatePopups({ showCmd: false, showMsg: false });
202
+ });
203
+ this.cmdPopup.addEventListener('click', function (e) {
204
+ var item = e.target.closest('.item');
205
+ if (item) {
206
+ _this.setInputText(item.dataset.value || '');
207
+ _this.input.focus();
208
+ _this.updatePopups({ showCmd: false, showMsg: false });
209
+ }
210
+ });
211
+ };
212
+ /** Handle Enter/Escape keys */
213
+ AcEdCommandLine.prototype.handleKeyDown = function (e) {
214
+ if (e.key === 'Enter') {
215
+ e.preventDefault();
216
+ var text = this.getInputText();
217
+ this.executeCommand(text);
218
+ this.updatePopups({ showCmd: false, showMsg: false });
219
+ }
220
+ else if (e.key === 'Escape') {
221
+ e.preventDefault();
222
+ this.setInputText('');
223
+ this.printMessage(this.localize('main.commandLine.canceled'));
224
+ this.updatePopups({ showCmd: false, showMsg: false });
225
+ }
226
+ };
227
+ /** Handle Up/Down keys for history or auto-complete */
228
+ AcEdCommandLine.prototype.handleArrowKeys = function (e) {
229
+ if (e.key === 'ArrowUp') {
230
+ e.preventDefault();
231
+ if (this.isCmdPopupOpen)
232
+ this.navigateAutoComplete(-1);
233
+ else
234
+ this.navigateHistory(-1);
235
+ }
236
+ if (e.key === 'ArrowDown') {
237
+ e.preventDefault();
238
+ if (this.isCmdPopupOpen)
239
+ this.navigateAutoComplete(1);
240
+ else
241
+ this.navigateHistory(1);
242
+ }
243
+ };
244
+ /** Handle input change to show auto-complete */
245
+ AcEdCommandLine.prototype.handleInputChange = function () {
246
+ var _this = this;
247
+ var text = this.getInputText();
248
+ if (!text) {
249
+ this.updatePopups({ showCmd: false });
250
+ return;
251
+ }
252
+ var matches = AcEdCommandStack.instance.searchCommandsByPrefix(text);
253
+ if (matches.length) {
254
+ this.autoCompleteIndex = -1;
255
+ this.cmdPopup.innerHTML = '';
256
+ matches.forEach(function (item, idx) {
257
+ var div = document.createElement('div');
258
+ div.className = 'item';
259
+ div.dataset.value = item.command.globalName;
260
+ var description = AcApI18n.cmdDescription(item.commandGroup, item.command.globalName);
261
+ div.innerHTML = "<strong>".concat(item.command.globalName, " - ").concat(description, "</strong>");
262
+ if (idx === _this.autoCompleteIndex)
263
+ div.classList.add('selected');
264
+ _this.cmdPopup.appendChild(div);
265
+ });
266
+ this.updatePopups({ showCmd: true });
267
+ }
268
+ else {
269
+ this.updatePopups({ showCmd: false });
270
+ }
271
+ };
272
+ /** Navigate auto-complete list with arrow keys */
273
+ AcEdCommandLine.prototype.navigateAutoComplete = function (dir) {
274
+ var _this = this;
275
+ var _a;
276
+ var items = Array.from(this.cmdPopup.querySelectorAll('.item'));
277
+ if (!items.length)
278
+ return;
279
+ this.autoCompleteIndex += dir;
280
+ if (this.autoCompleteIndex < 0)
281
+ this.autoCompleteIndex = 0;
282
+ if (this.autoCompleteIndex >= items.length)
283
+ this.autoCompleteIndex = items.length - 1;
284
+ items.forEach(function (el, idx) {
285
+ el.classList.toggle('selected', idx === _this.autoCompleteIndex);
286
+ });
287
+ var selected = items[this.autoCompleteIndex];
288
+ if (selected) {
289
+ this.setInputText((_a = selected.dataset.value) !== null && _a !== void 0 ? _a : '');
290
+ }
291
+ };
292
+ /** Navigate command history */
293
+ AcEdCommandLine.prototype.navigateHistory = function (dir) {
294
+ if (!this.history.length)
295
+ return;
296
+ if (this.historyIndex === -1)
297
+ this.historyIndex = this.history.length;
298
+ this.historyIndex += dir;
299
+ if (this.historyIndex < 0)
300
+ this.historyIndex = 0;
301
+ if (this.historyIndex > this.history.length)
302
+ this.historyIndex = this.history.length;
303
+ if (this.historyIndex >= 0 && this.historyIndex < this.history.length) {
304
+ this.setInputText(this.history[this.historyIndex]);
305
+ }
306
+ else {
307
+ this.setInputText('');
308
+ }
309
+ };
310
+ /** Get current input text */
311
+ AcEdCommandLine.prototype.getInputText = function () {
312
+ var clone = this.input.cloneNode(true);
313
+ clone.querySelectorAll('.ml-cli-option').forEach(function (n) { return n.remove(); });
314
+ return clone.innerText.replace(/\u00A0/g, ' ').trim();
315
+ };
316
+ /** Set input text */
317
+ AcEdCommandLine.prototype.setInputText = function (text) {
318
+ if (text === void 0) { text = ''; }
319
+ this.input.innerHTML = '';
320
+ if (text)
321
+ this.input.appendChild(document.createTextNode(text + ' '));
322
+ this.setCursorToEnd();
323
+ };
324
+ /** Render command line with options */
325
+ AcEdCommandLine.prototype.renderCommandLine = function (cmd, options) {
326
+ var _this = this;
327
+ if (options === void 0) { options = []; }
328
+ this.input.innerHTML = '';
329
+ if (cmd)
330
+ this.input.appendChild(document.createTextNode(cmd + ' '));
331
+ options.forEach(function (opt) {
332
+ var span = document.createElement('span');
333
+ span.className = 'ml-cli-option';
334
+ span.textContent = opt;
335
+ span.addEventListener('click', function (e) {
336
+ e.stopPropagation();
337
+ _this.insertOption(opt);
338
+ });
339
+ _this.input.appendChild(span);
340
+ _this.input.appendChild(document.createTextNode(' '));
341
+ });
342
+ this.setCursorToEnd();
343
+ this.input.focus();
344
+ };
345
+ /** Insert option into input */
346
+ AcEdCommandLine.prototype.insertOption = function (opt) {
347
+ this.input.appendChild(document.createTextNode(opt + ' '));
348
+ this.setCursorToEnd();
349
+ this.input.focus();
350
+ };
351
+ /** Move cursor to end of input */
352
+ AcEdCommandLine.prototype.setCursorToEnd = function () {
353
+ var range = document.createRange();
354
+ range.selectNodeContents(this.input);
355
+ range.collapse(false);
356
+ var sel = window.getSelection();
357
+ if (!sel)
358
+ return;
359
+ sel.removeAllRanges();
360
+ sel.addRange(range);
361
+ this.input.scrollLeft = this.input.scrollWidth;
362
+ };
363
+ /** Resolve command name */
364
+ AcEdCommandLine.prototype.resolveCommand = function (cmdLine) {
365
+ var parts = cmdLine.trim().split(/\s+/);
366
+ var cmdStr = parts[0].toUpperCase();
367
+ // TODO: Should look up local cmd too
368
+ return AcEdCommandStack.instance.lookupLocalCmd(cmdStr);
369
+ };
370
+ /** Show or hide popups */
371
+ AcEdCommandLine.prototype.updatePopups = function (_a) {
372
+ var _b = _a === void 0 ? {} : _a, _c = _b.showCmd, showCmd = _c === void 0 ? false : _c, _d = _b.showMsg, showMsg = _d === void 0 ? false : _d;
373
+ this.isCmdPopupOpen = showCmd;
374
+ this.isMsgPanelOpen = showMsg;
375
+ this.cmdPopup.classList.toggle('hidden', !showCmd);
376
+ this.msgPanel.classList.toggle('hidden', !showMsg);
377
+ if (showCmd)
378
+ this.positionCmdPopup();
379
+ if (showMsg)
380
+ this.positionMsgPanel();
381
+ };
382
+ /** Show command history popup */
383
+ AcEdCommandLine.prototype.showCommandHistoryPopup = function () {
384
+ this.cmdPopup.innerHTML = '';
385
+ if (!this.history.length) {
386
+ var empty = document.createElement('div');
387
+ empty.className = 'item';
388
+ empty.textContent = this.localize('main.commandLine.noHistory');
389
+ this.cmdPopup.appendChild(empty);
390
+ }
391
+ else {
392
+ for (var i = this.history.length - 1; i >= 0; i--) {
393
+ var item = document.createElement('div');
394
+ item.className = 'item';
395
+ item.dataset.value = this.history[i];
396
+ item.textContent = this.history[i];
397
+ this.cmdPopup.appendChild(item);
398
+ }
399
+ }
400
+ this.positionCmdPopup();
401
+ };
402
+ /** Position command history popup */
403
+ AcEdCommandLine.prototype.positionCmdPopup = function () {
404
+ this.cmdPopup.style.left = '0px';
405
+ this.cmdPopup.style.width = this.bar.offsetWidth + 'px';
406
+ };
407
+ /** Show message panel */
408
+ AcEdCommandLine.prototype.showMessagePanel = function () {
409
+ // If there is no message history, show a localized "no history" placeholder
410
+ if (!this.msgPanel.children.length) {
411
+ var empty = document.createElement('div');
412
+ empty.className = 'ml-cli-history-line';
413
+ empty.textContent = this.localize('main.commandLine.noHistory');
414
+ empty.dataset.msgKey = 'main.commandLine.noHistory';
415
+ this.msgPanel.appendChild(empty);
416
+ }
417
+ this.msgPanel.scrollTop = this.msgPanel.scrollHeight;
418
+ this.positionMsgPanel();
419
+ };
420
+ /** Position message panel */
421
+ AcEdCommandLine.prototype.positionMsgPanel = function () {
422
+ this.msgPanel.style.width = this.bar.offsetWidth + 'px';
423
+ };
424
+ /** Remove "no history" placeholder if present */
425
+ AcEdCommandLine.prototype.clearNoHistoryPlaceholder = function () {
426
+ var _this = this;
427
+ Array.from(this.msgPanel.children).forEach(function (child) {
428
+ var div = child;
429
+ if (div.dataset.msgKey === 'main.commandLine.noHistory') {
430
+ _this.msgPanel.removeChild(div);
431
+ }
432
+ });
433
+ };
434
+ /** Print message to message panel with optional localization key */
435
+ AcEdCommandLine.prototype.printMessage = function (msg, msgKey) {
436
+ this.clearNoHistoryPlaceholder();
437
+ var div = document.createElement('div');
438
+ div.className = 'ml-cli-history-line';
439
+ div.textContent = msg;
440
+ if (msgKey)
441
+ div.dataset.msgKey = msgKey;
442
+ this.msgPanel.appendChild(div);
443
+ this.showMessagePanel();
444
+ };
445
+ /** Print error message with optional localization key */
446
+ AcEdCommandLine.prototype.printError = function (msg, msgKey) {
447
+ this.clearNoHistoryPlaceholder();
448
+ var div = document.createElement('div');
449
+ div.className = 'ml-cli-history-line ml-cli-msg-error';
450
+ div.textContent = msg;
451
+ if (msgKey)
452
+ div.dataset.msgKey = msgKey;
453
+ this.msgPanel.appendChild(div);
454
+ this.showMessagePanel();
455
+ };
456
+ /** Print executed command line to history */
457
+ AcEdCommandLine.prototype.printHistoryLine = function (cmdLine) {
458
+ this.clearNoHistoryPlaceholder();
459
+ var div = document.createElement('div');
460
+ div.className = 'ml-cli-history-line';
461
+ div.textContent = '> ' + cmdLine;
462
+ // For executed command messages, also store msgKey
463
+ div.dataset.msgKey = 'main.commandLine.executed';
464
+ this.msgPanel.appendChild(div);
465
+ this.showMessagePanel();
466
+ };
467
+ /** Handle window resize */
468
+ AcEdCommandLine.prototype.resizeHandler = function () {
469
+ // Calculate desired width based on ratio and minimum width
470
+ var w = Math.max(this.minWidth, window.innerWidth * this.widthRatio);
471
+ // Clamp width so it never exceeds the window width
472
+ w = Math.min(w, window.innerWidth - 20); // optional 20px margin from edges
473
+ this.bar.style.width = w + 'px';
474
+ // Reposition popups to match new width
475
+ this.positionMsgPanel();
476
+ this.positionCmdPopup();
477
+ };
478
+ return AcEdCommandLine;
479
+ }());
480
+ export { AcEdCommandLine };
481
+ //# sourceMappingURL=AcEdCommandLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdCommandLine.js","sourceRoot":"","sources":["../../../../src/editor/input/ui/AcEdCommandLine.ts"],"names":[],"mappings":"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"}