@mlightcad/cad-simple-viewer 1.2.4 → 1.2.5

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 (273) hide show
  1. package/dist/index.js +11406 -8892
  2. package/dist/index.umd.cjs +314 -24
  3. package/dist/libredwg-parser-worker.js +7267 -7238
  4. package/dist/mtext-renderer-worker.js +32 -9
  5. package/lib/app/AcApDocManager.d.ts +20 -3
  6. package/lib/app/AcApDocManager.d.ts.map +1 -1
  7. package/lib/app/AcApDocManager.js +66 -11
  8. package/lib/app/AcApDocManager.js.map +1 -1
  9. package/lib/app/AcApProgress.d.ts +133 -0
  10. package/lib/app/AcApProgress.d.ts.map +1 -0
  11. package/lib/app/AcApProgress.js +148 -0
  12. package/lib/app/AcApProgress.js.map +1 -0
  13. package/lib/app/AcApSettingManager.d.ts +42 -0
  14. package/lib/app/AcApSettingManager.d.ts.map +1 -1
  15. package/lib/app/AcApSettingManager.js +63 -0
  16. package/lib/app/AcApSettingManager.js.map +1 -1
  17. package/lib/app/index.d.ts +0 -1
  18. package/lib/app/index.d.ts.map +1 -1
  19. package/lib/app/index.js +0 -1
  20. package/lib/app/index.js.map +1 -1
  21. package/lib/command/AcApCircleCmd.d.ts +21 -0
  22. package/lib/command/AcApCircleCmd.d.ts.map +1 -0
  23. package/lib/command/AcApCircleCmd.js +115 -0
  24. package/lib/command/AcApCircleCmd.js.map +1 -0
  25. package/lib/command/AcApDimCmd.d.ts +57 -0
  26. package/lib/command/AcApDimCmd.d.ts.map +1 -0
  27. package/lib/command/AcApDimCmd.js +228 -0
  28. package/lib/command/AcApDimCmd.js.map +1 -0
  29. package/lib/command/AcApLogCmd.d.ts +13 -0
  30. package/lib/command/AcApLogCmd.d.ts.map +1 -0
  31. package/lib/command/AcApLogCmd.js +97 -0
  32. package/lib/command/AcApLogCmd.js.map +1 -0
  33. package/lib/command/AcApSysVarCmd.d.ts +15 -0
  34. package/lib/command/AcApSysVarCmd.d.ts.map +1 -0
  35. package/lib/command/AcApSysVarCmd.js +94 -0
  36. package/lib/command/AcApSysVarCmd.js.map +1 -0
  37. package/lib/command/AcApZoomToBoxCmd.d.ts +0 -36
  38. package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -1
  39. package/lib/command/AcApZoomToBoxCmd.js +4 -61
  40. package/lib/command/AcApZoomToBoxCmd.js.map +1 -1
  41. package/lib/command/index.d.ts +4 -0
  42. package/lib/command/index.d.ts.map +1 -1
  43. package/lib/command/index.js +4 -0
  44. package/lib/command/index.js.map +1 -1
  45. package/lib/editor/command/AcEdCommandStack.d.ts +19 -1
  46. package/lib/editor/command/AcEdCommandStack.d.ts.map +1 -1
  47. package/lib/editor/command/AcEdCommandStack.js +40 -0
  48. package/lib/editor/command/AcEdCommandStack.js.map +1 -1
  49. package/lib/editor/input/AcEdCursorManager.d.ts +14 -30
  50. package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -1
  51. package/lib/editor/input/AcEdCursorManager.js +32 -31
  52. package/lib/editor/input/AcEdCursorManager.js.map +1 -1
  53. package/lib/editor/input/AcEdPreviewJig.d.ts +103 -0
  54. package/lib/editor/input/AcEdPreviewJig.d.ts.map +1 -0
  55. package/lib/editor/input/AcEdPreviewJig.js +82 -0
  56. package/lib/editor/input/AcEdPreviewJig.js.map +1 -0
  57. package/lib/editor/input/AcEditor.d.ts +58 -11
  58. package/lib/editor/input/AcEditor.d.ts.map +1 -1
  59. package/lib/editor/input/AcEditor.js +86 -22
  60. package/lib/editor/input/AcEditor.js.map +1 -1
  61. package/lib/editor/input/handler/AcEdAngleHandler.d.ts +12 -0
  62. package/lib/editor/input/handler/AcEdAngleHandler.d.ts.map +1 -0
  63. package/lib/editor/input/handler/AcEdAngleHandler.js +25 -0
  64. package/lib/editor/input/handler/AcEdAngleHandler.js.map +1 -0
  65. package/lib/editor/input/handler/AcEdDistanceHandler.d.ts +8 -0
  66. package/lib/editor/input/handler/AcEdDistanceHandler.d.ts.map +1 -0
  67. package/lib/editor/input/handler/AcEdDistanceHandler.js +29 -0
  68. package/lib/editor/input/handler/AcEdDistanceHandler.js.map +1 -0
  69. package/lib/editor/input/handler/AcEdDoubleHandler.d.ts +7 -0
  70. package/lib/editor/input/handler/AcEdDoubleHandler.d.ts.map +1 -0
  71. package/lib/editor/input/handler/AcEdDoubleHandler.js +28 -0
  72. package/lib/editor/input/handler/AcEdDoubleHandler.js.map +1 -0
  73. package/lib/editor/input/handler/AcEdInputHandler.d.ts +14 -0
  74. package/lib/editor/input/handler/AcEdInputHandler.d.ts.map +1 -0
  75. package/lib/editor/input/handler/AcEdInputHandler.js +2 -0
  76. package/lib/editor/input/handler/AcEdInputHandler.js.map +1 -0
  77. package/lib/editor/input/handler/AcEdIntegerHandler.d.ts +11 -0
  78. package/lib/editor/input/handler/AcEdIntegerHandler.d.ts.map +1 -0
  79. package/lib/editor/input/handler/AcEdIntegerHandler.js +44 -0
  80. package/lib/editor/input/handler/AcEdIntegerHandler.js.map +1 -0
  81. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts +11 -0
  82. package/lib/editor/input/handler/AcEdNumericalHandler.d.ts.map +1 -0
  83. package/lib/editor/input/handler/AcEdNumericalHandler.js +24 -0
  84. package/lib/editor/input/handler/AcEdNumericalHandler.js.map +1 -0
  85. package/lib/editor/input/handler/AcEdPointHandler.d.ts +16 -0
  86. package/lib/editor/input/handler/AcEdPointHandler.d.ts.map +1 -0
  87. package/lib/editor/input/handler/AcEdPointHandler.js +19 -0
  88. package/lib/editor/input/handler/AcEdPointHandler.js.map +1 -0
  89. package/lib/editor/input/handler/AcEdStringHandler.d.ts +12 -0
  90. package/lib/editor/input/handler/AcEdStringHandler.d.ts.map +1 -0
  91. package/lib/editor/input/handler/AcEdStringHandler.js +24 -0
  92. package/lib/editor/input/handler/AcEdStringHandler.js.map +1 -0
  93. package/lib/editor/input/handler/index.d.ts +9 -0
  94. package/lib/editor/input/handler/index.d.ts.map +1 -0
  95. package/lib/editor/input/handler/index.js +9 -0
  96. package/lib/editor/input/handler/index.js.map +1 -0
  97. package/lib/editor/input/index.d.ts +4 -1
  98. package/lib/editor/input/index.d.ts.map +1 -1
  99. package/lib/editor/input/index.js +4 -1
  100. package/lib/editor/input/index.js.map +1 -1
  101. package/lib/editor/input/marker/AcEdMarker.d.ts +72 -0
  102. package/lib/editor/input/marker/AcEdMarker.d.ts.map +1 -0
  103. package/lib/editor/input/marker/AcEdMarker.js +124 -0
  104. package/lib/editor/input/marker/AcEdMarker.js.map +1 -0
  105. package/lib/editor/input/marker/AcEdOSnapMarkerManager.d.ts +52 -0
  106. package/lib/editor/input/marker/AcEdOSnapMarkerManager.d.ts.map +1 -0
  107. package/lib/editor/input/marker/AcEdOSnapMarkerManager.js +91 -0
  108. package/lib/editor/input/marker/AcEdOSnapMarkerManager.js.map +1 -0
  109. package/lib/editor/input/marker/index.d.ts +3 -0
  110. package/lib/editor/input/marker/index.d.ts.map +1 -0
  111. package/lib/editor/input/marker/index.js +3 -0
  112. package/lib/editor/input/marker/index.js.map +1 -0
  113. package/lib/editor/input/prompt/AcEdKeyword.d.ts +63 -0
  114. package/lib/editor/input/prompt/AcEdKeyword.d.ts.map +1 -0
  115. package/lib/editor/input/prompt/AcEdKeyword.js +120 -0
  116. package/lib/editor/input/prompt/AcEdKeyword.js.map +1 -0
  117. package/lib/editor/input/prompt/AcEdKeywordCollection.d.ts +52 -0
  118. package/lib/editor/input/prompt/AcEdKeywordCollection.d.ts.map +1 -0
  119. package/lib/editor/input/prompt/AcEdKeywordCollection.js +103 -0
  120. package/lib/editor/input/prompt/AcEdKeywordCollection.js.map +1 -0
  121. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +75 -0
  122. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -0
  123. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +182 -0
  124. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -0
  125. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.d.ts +46 -0
  126. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.d.ts.map +1 -0
  127. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.js +114 -0
  128. package/lib/editor/input/prompt/AcEdPromptDistanceOptions.js.map +1 -0
  129. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.d.ts +10 -0
  130. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.d.ts.map +1 -0
  131. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.js +31 -0
  132. package/lib/editor/input/prompt/AcEdPromptDoubleOptions.js.map +1 -0
  133. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.d.ts +39 -0
  134. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.d.ts.map +1 -0
  135. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.js +84 -0
  136. package/lib/editor/input/prompt/AcEdPromptIntegerOptions.js.map +1 -0
  137. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts +59 -0
  138. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts.map +1 -0
  139. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js +140 -0
  140. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js.map +1 -0
  141. package/lib/editor/input/prompt/AcEdPromptNumericalResult.d.ts +19 -0
  142. package/lib/editor/input/prompt/AcEdPromptNumericalResult.d.ts.map +1 -0
  143. package/lib/editor/input/prompt/AcEdPromptNumericalResult.js +36 -0
  144. package/lib/editor/input/prompt/AcEdPromptNumericalResult.js.map +1 -0
  145. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts +61 -0
  146. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts.map +1 -0
  147. package/lib/editor/input/prompt/AcEdPromptOptions.js +179 -0
  148. package/lib/editor/input/prompt/AcEdPromptOptions.js.map +1 -0
  149. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts +46 -0
  150. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts.map +1 -0
  151. package/lib/editor/input/prompt/AcEdPromptPointOptions.js +113 -0
  152. package/lib/editor/input/prompt/AcEdPromptPointOptions.js.map +1 -0
  153. package/lib/editor/input/prompt/AcEdPromptPointResult.d.ts +25 -0
  154. package/lib/editor/input/prompt/AcEdPromptPointResult.d.ts.map +1 -0
  155. package/lib/editor/input/prompt/AcEdPromptPointResult.js +38 -0
  156. package/lib/editor/input/prompt/AcEdPromptPointResult.js.map +1 -0
  157. package/lib/editor/input/prompt/AcEdPromptResult.d.ts +27 -0
  158. package/lib/editor/input/prompt/AcEdPromptResult.d.ts.map +1 -0
  159. package/lib/editor/input/prompt/AcEdPromptResult.js +19 -0
  160. package/lib/editor/input/prompt/AcEdPromptResult.js.map +1 -0
  161. package/lib/editor/input/prompt/AcEdPromptStatus.d.ts +22 -0
  162. package/lib/editor/input/prompt/AcEdPromptStatus.d.ts.map +1 -0
  163. package/lib/editor/input/prompt/AcEdPromptStatus.js +23 -0
  164. package/lib/editor/input/prompt/AcEdPromptStatus.js.map +1 -0
  165. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts +54 -0
  166. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts.map +1 -0
  167. package/lib/editor/input/prompt/AcEdPromptStringOptions.js +124 -0
  168. package/lib/editor/input/prompt/AcEdPromptStringOptions.js.map +1 -0
  169. package/lib/editor/input/prompt/index.d.ts +11 -0
  170. package/lib/editor/input/prompt/index.d.ts.map +1 -0
  171. package/lib/editor/input/prompt/index.js +11 -0
  172. package/lib/editor/input/prompt/index.js.map +1 -0
  173. package/lib/editor/input/ui/AcEdCommandLine.d.ts +114 -0
  174. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -0
  175. package/lib/editor/input/ui/AcEdCommandLine.js +453 -0
  176. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -0
  177. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +151 -0
  178. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -0
  179. package/lib/editor/input/ui/AcEdFloatingInput.js +239 -0
  180. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -0
  181. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts +60 -0
  182. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts.map +1 -0
  183. package/lib/editor/input/ui/AcEdFloatingInputBox.js +113 -0
  184. package/lib/editor/input/ui/AcEdFloatingInputBox.js.map +1 -0
  185. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts +104 -0
  186. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -0
  187. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +154 -0
  188. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -0
  189. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +113 -0
  190. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -0
  191. package/lib/editor/input/ui/AcEdFloatingInputTypes.js +2 -0
  192. package/lib/editor/input/ui/AcEdFloatingInputTypes.js.map +1 -0
  193. package/lib/editor/input/ui/AcEdInputManager.d.ts +132 -0
  194. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -0
  195. package/lib/editor/input/ui/AcEdInputManager.js +477 -0
  196. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -0
  197. package/lib/editor/input/ui/AcEdRubberBand.d.ts +66 -0
  198. package/lib/editor/input/ui/AcEdRubberBand.d.ts.map +1 -0
  199. package/lib/editor/input/ui/AcEdRubberBand.js +276 -0
  200. package/lib/editor/input/ui/AcEdRubberBand.js.map +1 -0
  201. package/lib/editor/input/ui/index.d.ts +3 -0
  202. package/lib/editor/input/ui/index.d.ts.map +1 -0
  203. package/lib/editor/input/ui/index.js +3 -0
  204. package/lib/editor/input/ui/index.js.map +1 -0
  205. package/lib/editor/view/AcEdBaseView.d.ts +35 -11
  206. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  207. package/lib/editor/view/AcEdBaseView.js +14 -11
  208. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  209. package/lib/i18n/AcApI18n.d.ts +135 -0
  210. package/lib/i18n/AcApI18n.d.ts.map +1 -0
  211. package/lib/i18n/AcApI18n.js +208 -0
  212. package/lib/i18n/AcApI18n.js.map +1 -0
  213. package/lib/i18n/en/command.d.ts +18 -0
  214. package/lib/i18n/en/command.d.ts.map +1 -0
  215. package/lib/i18n/en/command.js +17 -0
  216. package/lib/i18n/en/command.js.map +1 -0
  217. package/lib/i18n/en/jig.d.ts +11 -0
  218. package/lib/i18n/en/jig.d.ts.map +1 -0
  219. package/lib/i18n/en/jig.js +10 -0
  220. package/lib/i18n/en/jig.js.map +1 -0
  221. package/lib/i18n/en/main.d.ts +37 -0
  222. package/lib/i18n/en/main.d.ts.map +1 -0
  223. package/lib/i18n/en/main.js +36 -0
  224. package/lib/i18n/en/main.js.map +1 -0
  225. package/lib/i18n/index.d.ts +6 -0
  226. package/lib/i18n/index.d.ts.map +1 -0
  227. package/lib/i18n/index.js +31 -0
  228. package/lib/i18n/index.js.map +1 -0
  229. package/lib/i18n/zh/command.d.ts +18 -0
  230. package/lib/i18n/zh/command.d.ts.map +1 -0
  231. package/lib/i18n/zh/command.js +17 -0
  232. package/lib/i18n/zh/command.js.map +1 -0
  233. package/lib/i18n/zh/jig.d.ts +11 -0
  234. package/lib/i18n/zh/jig.d.ts.map +1 -0
  235. package/lib/i18n/zh/jig.js +10 -0
  236. package/lib/i18n/zh/jig.js.map +1 -0
  237. package/lib/i18n/zh/main.d.ts +37 -0
  238. package/lib/i18n/zh/main.d.ts.map +1 -0
  239. package/lib/i18n/zh/main.js +36 -0
  240. package/lib/i18n/zh/main.js.map +1 -0
  241. package/lib/index.d.ts +1 -0
  242. package/lib/index.d.ts.map +1 -1
  243. package/lib/index.js +1 -0
  244. package/lib/index.js.map +1 -1
  245. package/lib/view/AcTrScene.d.ts +19 -6
  246. package/lib/view/AcTrScene.d.ts.map +1 -1
  247. package/lib/view/AcTrScene.js +25 -6
  248. package/lib/view/AcTrScene.js.map +1 -1
  249. package/lib/view/AcTrView2d.d.ts +11 -1
  250. package/lib/view/AcTrView2d.d.ts.map +1 -1
  251. package/lib/view/AcTrView2d.js +73 -35
  252. package/lib/view/AcTrView2d.js.map +1 -1
  253. package/package.json +7 -7
  254. package/lib/editor/input/AcEdBaseInput.d.ts +0 -89
  255. package/lib/editor/input/AcEdBaseInput.d.ts.map +0 -1
  256. package/lib/editor/input/AcEdBaseInput.js +0 -166
  257. package/lib/editor/input/AcEdBaseInput.js.map +0 -1
  258. package/lib/editor/input/AcEdBoxSelector.d.ts +0 -108
  259. package/lib/editor/input/AcEdBoxSelector.d.ts.map +0 -1
  260. package/lib/editor/input/AcEdBoxSelector.js +0 -220
  261. package/lib/editor/input/AcEdBoxSelector.js.map +0 -1
  262. package/lib/editor/input/AcEdInputPoint.d.ts +0 -51
  263. package/lib/editor/input/AcEdInputPoint.d.ts.map +0 -1
  264. package/lib/editor/input/AcEdInputPoint.js +0 -78
  265. package/lib/editor/input/AcEdInputPoint.js.map +0 -1
  266. package/lib/editor/input/AcEdJig.d.ts +0 -180
  267. package/lib/editor/input/AcEdJig.d.ts.map +0 -1
  268. package/lib/editor/input/AcEdJig.js +0 -256
  269. package/lib/editor/input/AcEdJig.js.map +0 -1
  270. package/lib/editor/input/AcEdJigLoop.d.ts +0 -63
  271. package/lib/editor/input/AcEdJigLoop.d.ts.map +0 -1
  272. package/lib/editor/input/AcEdJigLoop.js +0 -91
  273. package/lib/editor/input/AcEdJigLoop.js.map +0 -1
@@ -0,0 +1,276 @@
1
+ import { AcGePoint3d } from '@mlightcad/data-model';
2
+ /**
3
+ * AcEdRubberBand provides a temporary CAD-style rubber-band preview.
4
+ *
5
+ * It can draws a CAD-like reference rectangle:
6
+ * 1. baseLine: solid line from the last point to the cursor.
7
+ * 2. perpLineAtBase: dashed perpendicular line at the base point.
8
+ * 3. perpLineAtCursor: dashed perpendicular line at the cursor.
9
+ * 4. connectorLine: dashed line connecting the ends of the two perpendicular lines.
10
+ * 5. distance label displayed near connectorLine
11
+ *
12
+ * And draw one arc:
13
+ * 1. xAxisLine: horizontal reference line starting at base point
14
+ * 2. angleArc: arc showing angle between baseLine and x-axis (radius = baseLine length)
15
+ * 3. angle label shown at midpoint of the arc
16
+ */
17
+ var AcEdRubberBand = /** @class */ (function () {
18
+ function AcEdRubberBand(view) {
19
+ this.container = null;
20
+ // main geometry
21
+ this.baseLine = null;
22
+ this.perpLineAtBase = null;
23
+ this.perpLineAtCursor = null;
24
+ this.connectorLine = null;
25
+ // labels
26
+ this.labelEl = null;
27
+ this.angleLabelEl = null;
28
+ // angle visuals (SVG)
29
+ this.xAxisLine = null;
30
+ this.angleSvg = null;
31
+ this.anglePath = null;
32
+ this.options = {};
33
+ this.view = view;
34
+ }
35
+ Object.defineProperty(AcEdRubberBand.prototype, "element", {
36
+ /** Returns the parent container element that holds all rubber-band HTML elements. */
37
+ get: function () {
38
+ return this.container;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ /**
44
+ * Starts the rubber-band preview.
45
+ * @param basePoint The starting point in world coordinates.
46
+ */
47
+ AcEdRubberBand.prototype.start = function (basePoint, options) {
48
+ var _this = this;
49
+ this.basePoint = new AcGePoint3d(basePoint);
50
+ this.options = options || {};
51
+ var color = this.options.color || '#0f0';
52
+ // --------------------------------------------------------------------
53
+ // Create parent container
54
+ // --------------------------------------------------------------------
55
+ this.container = document.createElement('div');
56
+ this.container.style.position = 'fixed';
57
+ this.container.style.left = '0';
58
+ this.container.style.top = '0';
59
+ this.container.style.pointerEvents = 'none';
60
+ this.container.style.zIndex = '99999';
61
+ document.body.appendChild(this.container);
62
+ // --------------------------------------------------------------------
63
+ // Always create baseLine
64
+ // --------------------------------------------------------------------
65
+ this.baseLine = document.createElement('div');
66
+ this.baseLine.style.position = 'fixed';
67
+ this.baseLine.style.borderTop = "1px solid ".concat(color);
68
+ this.container.appendChild(this.baseLine);
69
+ var createDashed = function () {
70
+ var el = document.createElement('div');
71
+ el.style.position = 'fixed';
72
+ el.style.borderTop = "1px dashed ".concat(color);
73
+ _this.container.appendChild(el);
74
+ return el;
75
+ };
76
+ if (!this.options.showBaseLineOnly) {
77
+ // perpendiculars + connector
78
+ this.perpLineAtBase = createDashed();
79
+ this.perpLineAtCursor = createDashed();
80
+ this.connectorLine = createDashed();
81
+ // distance label
82
+ this.labelEl = document.createElement('div');
83
+ this.labelEl.style.position = 'fixed';
84
+ // this.labelEl.style.background = 'rgba(0,0,0,0.6)'
85
+ this.labelEl.style.color = color;
86
+ this.labelEl.style.fontSize = '12px';
87
+ this.labelEl.style.padding = '2px 4px';
88
+ this.labelEl.style.borderRadius = '4px';
89
+ this.container.appendChild(this.labelEl);
90
+ // X-axis reference line
91
+ this.xAxisLine = document.createElement('div');
92
+ this.xAxisLine.style.position = 'fixed';
93
+ this.xAxisLine.style.borderTop = "1px solid ".concat(color);
94
+ this.container.appendChild(this.xAxisLine);
95
+ // SVG for angle arc
96
+ // We'll create an SVG sized dynamically on each update (width = height = 2*radius)
97
+ this.angleSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
98
+ // Let the SVG be absolutely positioned; we set left/top/width/height in update()
99
+ this.angleSvg.setAttribute('style', 'position:absolute; overflow:visible; pointer-events:none;');
100
+ // Path element for the arc
101
+ this.anglePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');
102
+ this.anglePath.setAttribute('fill', 'none');
103
+ this.anglePath.setAttribute('stroke', color);
104
+ this.anglePath.setAttribute('stroke-width', '1');
105
+ this.anglePath.setAttribute('stroke-dasharray', '4 4');
106
+ this.angleSvg.appendChild(this.anglePath);
107
+ this.container.appendChild(this.angleSvg);
108
+ // Angle label (HTML) positioned in screen coords at arc midpoint
109
+ this.angleLabelEl = document.createElement('div');
110
+ this.angleLabelEl.style.position = 'fixed';
111
+ // this.angleLabelEl.style.background = 'rgba(0,0,0,0.6)'
112
+ this.angleLabelEl.style.color = color;
113
+ this.angleLabelEl.style.fontSize = '12px';
114
+ this.angleLabelEl.style.padding = '2px 4px';
115
+ this.angleLabelEl.style.borderRadius = '4px';
116
+ this.container.appendChild(this.angleLabelEl);
117
+ }
118
+ };
119
+ /**
120
+ * Updates the rubber-band lines to a new target point.
121
+ * @param targetPoint The current cursor position in world coordinates.
122
+ */
123
+ AcEdRubberBand.prototype.update = function (targetPoint) {
124
+ var _a;
125
+ if (!this.container || !this.basePoint || !this.baseLine)
126
+ return;
127
+ var rect = this.view.canvas.getBoundingClientRect();
128
+ var p0 = this.view.wcs2Cwcs(this.basePoint);
129
+ var p3 = this.view.wcs2Cwcs(targetPoint);
130
+ var offsetX = rect.left;
131
+ var offsetY = rect.top;
132
+ var drawLine = function (line, start, end) {
133
+ var dx = end.x - start.x;
134
+ var dy = end.y - start.y;
135
+ var length = Math.sqrt(dx * dx + dy * dy);
136
+ var angle = Math.atan2(dy, dx) * (180 / Math.PI);
137
+ line.style.width = "".concat(length, "px");
138
+ line.style.transformOrigin = '0 0';
139
+ line.style.transform = "translate(".concat(start.x + offsetX, "px, ").concat(start.y + offsetY, "px) rotate(").concat(angle, "deg)");
140
+ };
141
+ // --------------------------------------------------------------------
142
+ // Always update baseLine
143
+ // --------------------------------------------------------------------
144
+ drawLine(this.baseLine, p0, p3);
145
+ if (this.options.showBaseLineOnly)
146
+ return;
147
+ // --------------------------------------------------------------------
148
+ // Update remaining rectangle geometry
149
+ // --------------------------------------------------------------------
150
+ if (!this.perpLineAtBase || !this.perpLineAtCursor || !this.connectorLine)
151
+ return;
152
+ var dx = p3.x - p0.x;
153
+ var dy = p3.y - p0.y;
154
+ var lengthBase = Math.sqrt(dx * dx + dy * dy);
155
+ // protect against zero-length base line
156
+ if (lengthBase === 0) {
157
+ // hide or collapse other visuals
158
+ if (this.perpLineAtBase)
159
+ this.perpLineAtBase.style.width = '0px';
160
+ if (this.perpLineAtCursor)
161
+ this.perpLineAtCursor.style.width = '0px';
162
+ if (this.connectorLine)
163
+ this.connectorLine.style.width = '0px';
164
+ if (this.xAxisLine)
165
+ this.xAxisLine.style.width = '0px';
166
+ if (this.anglePath)
167
+ this.anglePath.setAttribute('d', '');
168
+ if (this.angleLabelEl)
169
+ this.angleLabelEl.style.display = 'none';
170
+ return;
171
+ }
172
+ var perpLen = (_a = this.options.perpendicularLength) !== null && _a !== void 0 ? _a : 50;
173
+ // perpendicular unit
174
+ var ux = -dy / lengthBase;
175
+ var uy = dx / lengthBase;
176
+ // perpendicular endpoints
177
+ var pBasePerp = { x: p0.x + ux * perpLen, y: p0.y + uy * perpLen };
178
+ var pCursorPerp = { x: p3.x + ux * perpLen, y: p3.y + uy * perpLen };
179
+ drawLine(this.perpLineAtBase, p0, pBasePerp);
180
+ drawLine(this.perpLineAtCursor, p3, pCursorPerp);
181
+ drawLine(this.connectorLine, pBasePerp, pCursorPerp);
182
+ // --------------------------------------------------------------------
183
+ // Distance label
184
+ // --------------------------------------------------------------------
185
+ if (this.labelEl) {
186
+ var midX = (pBasePerp.x + pCursorPerp.x) / 2 + offsetX;
187
+ var midY = (pBasePerp.y + pCursorPerp.y) / 2 + offsetY - 24;
188
+ var dist = Math.sqrt(Math.pow((targetPoint.x - this.basePoint.x), 2) +
189
+ Math.pow((targetPoint.y - this.basePoint.y), 2));
190
+ this.labelEl.textContent = dist.toFixed(3);
191
+ this.labelEl.style.left = "".concat(midX - 20, "px");
192
+ this.labelEl.style.top = "".concat(midY, "px");
193
+ this.labelEl.style.display = '';
194
+ }
195
+ // --------------------------------------------------------------------
196
+ // Horizontal X-axis line (same length as base line)
197
+ // --------------------------------------------------------------------
198
+ if (this.xAxisLine) {
199
+ var pX = { x: p0.x + lengthBase, y: p0.y };
200
+ drawLine(this.xAxisLine, p0, pX);
201
+ }
202
+ // --------------------------------------------------------------------
203
+ // Angle arc (radius = length of base line)
204
+ // Arc from end of x-axis (p0 + radius * +X) to end of baseLine (p3).
205
+ // --------------------------------------------------------------------
206
+ if (this.angleSvg && this.anglePath && this.angleLabelEl) {
207
+ var radius = lengthBase;
208
+ // center (screen) of the arc
209
+ var centerScreenX = p0.x + offsetX;
210
+ var centerScreenY = p0.y + offsetY;
211
+ // We need coordinates relative to the SVG's top-left.
212
+ // We'll make the SVG have width = height = 2*radius and be positioned
213
+ // at (center - radius). Then coordinates inside SVG are:
214
+ // start = (2r, r), end = (r + r*cos(theta), r + r*sin(theta))
215
+ // angle between +X and baseLine in screen coordinate system
216
+ var angleRad = Math.atan2(p3.y - p0.y, p3.x - p0.x);
217
+ var angleDeg = (angleRad * 180) / Math.PI;
218
+ // mid-angle for placing label (middle of arc)
219
+ var midAngle = angleRad / 2;
220
+ // SVG position and sizing
221
+ var svgLeft = centerScreenX - radius;
222
+ var svgTop = centerScreenY - radius;
223
+ var svgSize = radius * 2;
224
+ // set SVG attributes and position
225
+ this.angleSvg.style.left = "".concat(svgLeft, "px");
226
+ this.angleSvg.style.top = "".concat(svgTop, "px");
227
+ this.angleSvg.setAttribute('width', "".concat(svgSize));
228
+ this.angleSvg.setAttribute('height', "".concat(svgSize));
229
+ this.angleSvg.setAttribute('viewBox', "0 0 ".concat(svgSize, " ").concat(svgSize));
230
+ // compute start and end in SVG local coords (origin top-left)
231
+ var cx = radius;
232
+ var cy = radius;
233
+ var sx = cx + radius; // = 2*radius
234
+ var sy = cy;
235
+ var ex = cx + radius * Math.cos(angleRad);
236
+ var ey = cy + radius * Math.sin(angleRad);
237
+ // large-arc-flag: whether to take the long way around
238
+ var largeArcFlag = Math.abs(angleRad) > Math.PI ? '1' : '0';
239
+ // sweep-flag: for screen coords (y downwards), positive angle => sweep=1
240
+ var sweepFlag = angleRad >= 0 ? '1' : '0';
241
+ // build path: Move to start, arc to end
242
+ var d = "M ".concat(sx, " ").concat(sy, " A ").concat(radius, " ").concat(radius, " 0 ").concat(largeArcFlag, " ").concat(sweepFlag, " ").concat(ex, " ").concat(ey);
243
+ this.anglePath.setAttribute('d', d);
244
+ // angle label (absolute degrees)
245
+ var angleValueDeg = Math.abs(angleDeg);
246
+ var angleText = "".concat(angleValueDeg.toFixed(1), "\u00B0");
247
+ // midpoint of arc in screen coords
248
+ var midScreenX = centerScreenX + radius * Math.cos(midAngle);
249
+ var midScreenY = centerScreenY + radius * Math.sin(midAngle);
250
+ this.angleLabelEl.textContent = angleText;
251
+ // center the label roughly
252
+ var labelRectApproxWidth = 40; // rough centering; exact can be done by measuring
253
+ this.angleLabelEl.style.left = "".concat(midScreenX - labelRectApproxWidth / 2, "px");
254
+ this.angleLabelEl.style.top = "".concat(midScreenY - 12, "px");
255
+ this.angleLabelEl.style.display = '';
256
+ }
257
+ };
258
+ /** Disposes all HTML elements associated with this rubber-band. */
259
+ AcEdRubberBand.prototype.dispose = function () {
260
+ if (this.container)
261
+ this.container.remove();
262
+ this.container = null;
263
+ this.baseLine = null;
264
+ this.perpLineAtBase = null;
265
+ this.perpLineAtCursor = null;
266
+ this.connectorLine = null;
267
+ this.labelEl = null;
268
+ this.angleLabelEl = null;
269
+ this.xAxisLine = null;
270
+ this.angleSvg = null;
271
+ this.anglePath = null;
272
+ };
273
+ return AcEdRubberBand;
274
+ }());
275
+ export { AcEdRubberBand };
276
+ //# sourceMappingURL=AcEdRubberBand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdRubberBand.js","sourceRoot":"","sources":["../../../../src/editor/input/ui/AcEdRubberBand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './AcEdCommandLine';
2
+ export * from './AcEdInputManager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './AcEdCommandLine';
2
+ export * from './AcEdInputManager';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/editor/input/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -153,8 +153,8 @@ export declare abstract class AcEdBaseView {
153
153
  private _bbox;
154
154
  /** Current mouse position in world coordinates */
155
155
  private _curPos;
156
- /** Current mouse position in screen coordinates */
157
- private _curScreenPos;
156
+ /** Current mouse position in client window coordinates */
157
+ private _curMousePos;
158
158
  /** Set of currently selected entities */
159
159
  private _selectionSet;
160
160
  /** Input manager for handling user interactions */
@@ -334,13 +334,27 @@ export declare abstract class AcEdBaseView {
334
334
  */
335
335
  abstract search(box: AcGeBox2d | AcGeBox3d): AcEdSpatialQueryResultItem[];
336
336
  /**
337
- * Pick entities intersected with the specified point in the world coordinate
338
- * system.
339
- * @param point Input the point to pick objects. If not provided, the position
340
- * of current cursor is used.
341
- * @returns Return ids of entities intersected with the specified point
337
+ * Picks entities that intersect a hit-region centered at the specified point
338
+ * in world coordinates.
339
+ *
340
+ * The hit-region is defined as a square (or bounding box) centered at the
341
+ * input point, whose half-size is determined by the `hitRadius` parameter.
342
+ * Only entities whose geometry intersects this region are returned.
343
+ *
344
+ * @param point The center point of the hit-region in world coordinates.
345
+ * If omitted, the current cursor position is used.
346
+ *
347
+ * @param hitRadius The half-width (in pixel size) of the hit-region around
348
+ * the point. It will be converted on one value in the world
349
+ * coordinate 'wcsHitRadius' and creates a square bounding box:
350
+ * [point.x ± wcsHitRadius, point.y ± wcsHitRadius].
351
+ * A larger value increases the pick sensitivity. If omitted, a reasonable
352
+ * default is used.
353
+ *
354
+ * @returns An array of object IDs representing the entities that intersect
355
+ * the hit-region.
342
356
  */
343
- abstract pick(point?: AcGePoint2dLike): AcDbObjectId[];
357
+ abstract pick(point?: AcGePoint2dLike, hitRadius?: number): AcDbObjectId[];
344
358
  /**
345
359
  * Select entities intersected with the specified bounding box in the world
346
360
  * coordinate system, add them to the current selection set, and highlight
@@ -368,10 +382,20 @@ export declare abstract class AcEdBaseView {
368
382
  * @param layer Input the layer to update
369
383
  */
370
384
  abstract updateLayer(layer: AcDbLayerTableRecord): void;
385
+ /**
386
+ * Add the specified transient entity or entities in the current scene.
387
+ * @param entity Input one or multiple transient entities
388
+ */
389
+ abstract addTransientEntity(entity: AcDbEntity | AcDbEntity[]): void;
390
+ /**
391
+ * Remove the specified transient entity or entities in the current scene.
392
+ * @param entity Input the object id of one transient entity
393
+ */
394
+ abstract removeTransientEntity(objectId: AcDbObjectId): void;
371
395
  /**
372
396
  * Add the specified entity or entities in drawing database into the current scene
373
397
  * and draw it or them
374
- * @param entity Input the entity to add into the current scene
398
+ * @param entity Input one or multiple entities to add into the current scene
375
399
  */
376
400
  abstract addEntity(entity: AcDbEntity | AcDbEntity[]): void;
377
401
  /**
@@ -434,9 +458,9 @@ export declare abstract class AcEdBaseView {
434
458
  */
435
459
  get curPos(): AcGePoint2d;
436
460
  /**
437
- * Postion of current mouse in screen coordinate system
461
+ * Postion of current mouse in client window
438
462
  */
439
- get curScreenPos(): AcGePoint2d;
463
+ get curMousePos(): AcGePoint2d;
440
464
  /**
441
465
  * The selection set in current view.
442
466
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdBaseView.d.ts","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcEdBaseView.d.ts","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"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"}
@@ -104,7 +104,7 @@ var AcEdBaseView = /** @class */ (function () {
104
104
  this._width = rect.width;
105
105
  this._height = rect.height;
106
106
  this._curPos = new AcGePoint2d();
107
- this._curScreenPos = new AcGePoint2d();
107
+ this._curMousePos = new AcGePoint2d();
108
108
  this._selectionSet = new AcEdSelectionSet();
109
109
  this._editor = new AcEditor(this);
110
110
  this._canvas.addEventListener('mousemove', function (event) { return _this.onMouseMove(event); });
@@ -242,12 +242,12 @@ var AcEdBaseView = /** @class */ (function () {
242
242
  enumerable: false,
243
243
  configurable: true
244
244
  });
245
- Object.defineProperty(AcEdBaseView.prototype, "curScreenPos", {
245
+ Object.defineProperty(AcEdBaseView.prototype, "curMousePos", {
246
246
  /**
247
- * Postion of current mouse in screen coordinate system
247
+ * Postion of current mouse in client window
248
248
  */
249
249
  get: function () {
250
- return this._curScreenPos;
250
+ return this._curMousePos;
251
251
  },
252
252
  enumerable: false,
253
253
  configurable: true
@@ -282,21 +282,24 @@ var AcEdBaseView = /** @class */ (function () {
282
282
  * @param event Input mouse event argument
283
283
  */
284
284
  AcEdBaseView.prototype.onMouseMove = function (event) {
285
- this._curScreenPos = new AcGePoint2d(event.clientX, event.clientY);
286
- var wcsPos = this.cwcs2Wcs(this._curScreenPos);
285
+ this._curMousePos = new AcGePoint2d(event.clientX, event.clientY);
286
+ var wcsPos = this.cwcs2Wcs(this._curMousePos);
287
287
  this._curPos.copy(wcsPos);
288
288
  this.events.mouseMove.dispatch({ x: wcsPos.x, y: wcsPos.y });
289
289
  // Hover handler
290
290
  if (this.mode == AcEdViewMode.SELECTION) {
291
- this.startHoverTimer(wcsPos.x, wcsPos.y);
291
+ // If it is in “input acquisition” mode, disable hover behavior
292
+ if (!this._editor.isActive) {
293
+ this.startHoverTimer(wcsPos.x, wcsPos.y);
294
+ }
292
295
  }
293
296
  };
294
297
  AcEdBaseView.prototype.setHoveredObjectId = function (newId) {
295
298
  if (this._hoveredObjectId) {
296
299
  this.events.unhover.dispatch({
297
300
  id: this._hoveredObjectId,
298
- x: this.curScreenPos.x,
299
- y: this.curScreenPos.y
301
+ x: this.curMousePos.x,
302
+ y: this.curMousePos.y
300
303
  });
301
304
  this.onUnhover(this._hoveredObjectId);
302
305
  }
@@ -338,8 +341,8 @@ var AcEdBaseView = /** @class */ (function () {
338
341
  this._pauseTimer = setTimeout(function () {
339
342
  _this.events.hover.dispatch({
340
343
  id: id,
341
- x: _this.curScreenPos.x,
342
- y: _this.curScreenPos.y
344
+ x: _this.curMousePos.x,
345
+ y: _this.curMousePos.y
343
346
  });
344
347
  }, 500);
345
348
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdBaseView.js","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcEdBaseView.js","sourceRoot":"","sources":["../../../src/editor/view/AcEdBaseView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { AcCmEventManager } from '@mlightcad/data-model';
2
+ /**
3
+ * Language/locale id used in the application.
4
+ * Matches the naming style used by vue-i18n ("Locale").
5
+ */
6
+ export type AcApLocale = 'en' | 'zh';
7
+ /**
8
+ * A single locale message tree.
9
+ * Leaf values are strings, inner nodes are nested objects of the same shape.
10
+ * This mirrors vue-i18n's LocaleMessage structure.
11
+ */
12
+ export interface AcApLocaleMessage {
13
+ [key: string]: string | AcApLocaleMessage;
14
+ }
15
+ /**
16
+ * The whole messages map: locale -> locale message tree.
17
+ * This mirrors vue-i18n's "LocaleMessages".
18
+ */
19
+ export type AcApLocaleMessages = Record<AcApLocale, AcApLocaleMessage>;
20
+ /**
21
+ * Options for translation lookup.
22
+ */
23
+ export interface AcApTranslateOptions {
24
+ fallback?: string;
25
+ }
26
+ /**
27
+ * Event arguments for locale changed events.
28
+ */
29
+ export interface AcApLocaleChangedEventArgs {
30
+ /** The old locale value */
31
+ old: AcApLocale;
32
+ /** The new locale value */
33
+ new: AcApLocale;
34
+ }
35
+ /**
36
+ * A framework-agnostic i18n registry with vue-i18n-like API names.
37
+ *
38
+ * Key methods:
39
+ * - getLocaleMessages(): returns all messages (for vue-i18n { messages })
40
+ * - getLocaleMessage(locale): returns single locale messages
41
+ * - setLocaleMessage(locale, messages): replace locale messages
42
+ * - mergeLocaleMessage(locale, messages): deep-merge into existing locale (fixed)
43
+ * - t(locale, key, options): translation helper for core code (no Vue required)
44
+ */
45
+ export declare class AcApI18n {
46
+ private static _messages;
47
+ /**
48
+ * @private
49
+ *
50
+ * Stores the currently active locale used by the translation
51
+ * system. Defaults to `"en"`.
52
+ *
53
+ * This value is used by `t(key, options)` when no locale
54
+ * parameter is provided.
55
+ */
56
+ private static _currentLocale;
57
+ /**
58
+ * Return the whole messages map (for vue-i18n initialisation).
59
+ */
60
+ static get messages(): Readonly<AcApLocaleMessages>;
61
+ /** Supported events */
62
+ static readonly events: {
63
+ /** Fired when locale changed */
64
+ localeChanged: AcCmEventManager<AcApLocaleChangedEventArgs>;
65
+ };
66
+ /**
67
+ * Return the messages object for a single locale.
68
+ */
69
+ static getLocaleMessage(locale: AcApLocale): Readonly<AcApLocaleMessage>;
70
+ /**
71
+ * Deep-merge a message dictionary into an existing locale.
72
+ */
73
+ static mergeLocaleMessage<L extends AcApLocale>(locale: L, messages: AcApLocaleMessage): void;
74
+ /**
75
+ * Register a plugin's messages.
76
+ * Alias for mergeLocaleMessage for consistency with vue-i18n.
77
+ */
78
+ static registerMessage<L extends AcApLocale>(locale: L, messages: AcApLocaleMessage): void;
79
+ /**
80
+ * Set the current active locale for translation.
81
+ *
82
+ * @param locale - Locale to activate (`"en"` or `"zh"`)
83
+ *
84
+ * @remarks
85
+ * This method updates the internal locale state used by all
86
+ * future calls to `t(key, options)`. After calling this method,
87
+ * the entire application will use the new locale automatically.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * AcApI18n.setCurrentLocale('zh')
92
+ * console.log(AcApI18n.t('core.start')) // uses Chinese messages
93
+ * ```
94
+ */
95
+ static setCurrentLocale(locale: AcApLocale): void;
96
+ /**
97
+ * Get the currently active locale.
98
+ *
99
+ * @returns The locale currently used for translation.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * console.log(AcApI18n.currentLocale) // "en" or "zh"
104
+ * ```
105
+ */
106
+ static get currentLocale(): AcApLocale;
107
+ /**
108
+ * Translate a dotted key path using the registry (no Vue required).
109
+ *
110
+ * @param key - dotted path, e.g. "core.start" or "pluginX.button.ok"
111
+ * @param options - optional fallback
112
+ * @returns translated string or fallback/key if not found
113
+ */
114
+ static t(key: string, options?: AcApTranslateOptions): string;
115
+ /**
116
+ * Get localized command description
117
+ * @param groupName - Command group name
118
+ * @param cmdName - Global command name
119
+ * @returns - The localized command description.
120
+ */
121
+ static cmdDescription(groupName: string, cmdName: string): string;
122
+ /**
123
+ * Tries to find command in system group and gets its localized command description
124
+ * @param cmdName - Global command name
125
+ * @returns - The localized command description
126
+ */
127
+ static sysCmdDescription(name: string): string;
128
+ /**
129
+ * Tries to find command in user group and gets its localized command description
130
+ * @param cmdName - Global command name
131
+ * @returns - The localized command description
132
+ */
133
+ static userCmdDescription: (name: string) => string;
134
+ }
135
+ //# sourceMappingURL=AcApI18n.d.ts.map