@mlightcad/cad-simple-viewer 1.4.10 → 1.4.12

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 (309) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +88 -88
  3. package/dist/index.js +21257 -14069
  4. package/dist/index.umd.cjs +201 -76
  5. package/dist/libredwg-parser-worker.js +6604 -12157
  6. package/dist/mtext-renderer-worker.js +28725 -28097
  7. package/lib/app/AcApAnnotation.d.ts.map +1 -1
  8. package/lib/app/AcApAnnotation.js +3 -3
  9. package/lib/app/AcApAnnotation.js.map +1 -1
  10. package/lib/app/AcApContext.d.ts.map +1 -1
  11. package/lib/app/AcApContext.js +3 -3
  12. package/lib/app/AcApContext.js.map +1 -1
  13. package/lib/app/AcApDocManager.d.ts +24 -1
  14. package/lib/app/AcApDocManager.d.ts.map +1 -1
  15. package/lib/app/AcApDocManager.js +67 -12
  16. package/lib/app/AcApDocManager.js.map +1 -1
  17. package/lib/app/AcApDocument.d.ts +6 -0
  18. package/lib/app/AcApDocument.d.ts.map +1 -1
  19. package/lib/app/AcApDocument.js +14 -2
  20. package/lib/app/AcApDocument.js.map +1 -1
  21. package/lib/app/AcApProgress.d.ts.map +1 -1
  22. package/lib/app/AcApProgress.js +3 -3
  23. package/lib/app/AcApProgress.js.map +1 -1
  24. package/lib/app/AcApSettingManager.d.ts.map +1 -1
  25. package/lib/app/AcApSettingManager.js +3 -1
  26. package/lib/app/AcApSettingManager.js.map +1 -1
  27. package/lib/app/AcDbOpenDatabaseOptions.d.ts.map +1 -1
  28. package/lib/command/AcApArcCmd.d.ts +140 -0
  29. package/lib/command/AcApArcCmd.d.ts.map +1 -0
  30. package/lib/command/AcApArcCmd.js +1009 -0
  31. package/lib/command/AcApArcCmd.js.map +1 -0
  32. package/lib/command/AcApCircleCmd.d.ts.map +1 -1
  33. package/lib/command/AcApCircleCmd.js +10 -4
  34. package/lib/command/AcApCircleCmd.js.map +1 -1
  35. package/lib/command/AcApClearMeasurementsCmd.d.ts +13 -0
  36. package/lib/command/AcApClearMeasurementsCmd.d.ts.map +1 -0
  37. package/lib/command/AcApClearMeasurementsCmd.js +84 -0
  38. package/lib/command/AcApClearMeasurementsCmd.js.map +1 -0
  39. package/lib/command/AcApConvertToDxfCmd.d.ts +9 -0
  40. package/lib/command/AcApConvertToDxfCmd.d.ts.map +1 -0
  41. package/lib/command/AcApConvertToDxfCmd.js +75 -0
  42. package/lib/command/AcApConvertToDxfCmd.js.map +1 -0
  43. package/lib/command/AcApDimLinearCmd.d.ts.map +1 -1
  44. package/lib/command/AcApDimLinearCmd.js +14 -5
  45. package/lib/command/AcApDimLinearCmd.js.map +1 -1
  46. package/lib/command/AcApDxfConvertor.d.ts +12 -0
  47. package/lib/command/AcApDxfConvertor.d.ts.map +1 -0
  48. package/lib/command/AcApDxfConvertor.js +37 -0
  49. package/lib/command/AcApDxfConvertor.js.map +1 -0
  50. package/lib/command/AcApEraseCmd.d.ts.map +1 -1
  51. package/lib/command/AcApEraseCmd.js +10 -6
  52. package/lib/command/AcApEraseCmd.js.map +1 -1
  53. package/lib/command/AcApLineCmd.d.ts.map +1 -1
  54. package/lib/command/AcApLineCmd.js +10 -4
  55. package/lib/command/AcApLineCmd.js.map +1 -1
  56. package/lib/command/AcApLogCmd.js +3 -3
  57. package/lib/command/AcApLogCmd.js.map +1 -1
  58. package/lib/command/AcApMTextCmd.d.ts +12 -0
  59. package/lib/command/AcApMTextCmd.d.ts.map +1 -0
  60. package/lib/command/AcApMTextCmd.js +123 -0
  61. package/lib/command/AcApMTextCmd.js.map +1 -0
  62. package/lib/command/AcApMeasureAngleCmd.d.ts +15 -0
  63. package/lib/command/AcApMeasureAngleCmd.d.ts.map +1 -0
  64. package/lib/command/AcApMeasureAngleCmd.js +369 -0
  65. package/lib/command/AcApMeasureAngleCmd.js.map +1 -0
  66. package/lib/command/AcApMeasureArcCmd.d.ts +25 -0
  67. package/lib/command/AcApMeasureArcCmd.d.ts.map +1 -0
  68. package/lib/command/AcApMeasureArcCmd.js +429 -0
  69. package/lib/command/AcApMeasureArcCmd.js.map +1 -0
  70. package/lib/command/AcApMeasureAreaCmd.d.ts +21 -0
  71. package/lib/command/AcApMeasureAreaCmd.d.ts.map +1 -0
  72. package/lib/command/AcApMeasureAreaCmd.js +387 -0
  73. package/lib/command/AcApMeasureAreaCmd.js.map +1 -0
  74. package/lib/command/AcApMeasureDistanceCmd.d.ts +34 -0
  75. package/lib/command/AcApMeasureDistanceCmd.d.ts.map +1 -0
  76. package/lib/command/AcApMeasureDistanceCmd.js +191 -0
  77. package/lib/command/AcApMeasureDistanceCmd.js.map +1 -0
  78. package/lib/command/AcApPolylineCmd.d.ts +71 -0
  79. package/lib/command/AcApPolylineCmd.d.ts.map +1 -0
  80. package/lib/command/AcApPolylineCmd.js +569 -0
  81. package/lib/command/AcApPolylineCmd.js.map +1 -0
  82. package/lib/command/AcApRectCmd.d.ts.map +1 -1
  83. package/lib/command/AcApRectCmd.js +10 -4
  84. package/lib/command/AcApRectCmd.js.map +1 -1
  85. package/lib/command/AcApRevCloudCmd.d.ts.map +1 -1
  86. package/lib/command/AcApRevCloudCmd.js +10 -4
  87. package/lib/command/AcApRevCloudCmd.js.map +1 -1
  88. package/lib/command/AcApSketchCmd.d.ts.map +1 -1
  89. package/lib/command/AcApSketchCmd.js +11 -7
  90. package/lib/command/AcApSketchCmd.js.map +1 -1
  91. package/lib/command/AcApSplineCmd.d.ts +20 -0
  92. package/lib/command/AcApSplineCmd.d.ts.map +1 -0
  93. package/lib/command/AcApSplineCmd.js +213 -0
  94. package/lib/command/AcApSplineCmd.js.map +1 -0
  95. package/lib/command/AcApSwitchBgCmd.js +2 -2
  96. package/lib/command/AcApSwitchBgCmd.js.map +1 -1
  97. package/lib/command/AcApSysVarCmd.d.ts.map +1 -1
  98. package/lib/command/AcApSysVarCmd.js +20 -7
  99. package/lib/command/AcApSysVarCmd.js.map +1 -1
  100. package/lib/command/AcApZoomToBoxCmd.d.ts +1 -1
  101. package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -1
  102. package/lib/command/AcApZoomToBoxCmd.js +10 -5
  103. package/lib/command/AcApZoomToBoxCmd.js.map +1 -1
  104. package/lib/command/index.d.ts +11 -0
  105. package/lib/command/index.d.ts.map +1 -1
  106. package/lib/command/index.js +11 -0
  107. package/lib/command/index.js.map +1 -1
  108. package/lib/editor/command/AcEdCommandIterator.d.ts.map +1 -1
  109. package/lib/editor/command/AcEdCommandIterator.js.map +1 -1
  110. package/lib/editor/global/AcEdConditionWaiter.d.ts +1 -1
  111. package/lib/editor/global/AcEdConditionWaiter.d.ts.map +1 -1
  112. package/lib/editor/global/AcEdConditionWaiter.js +3 -2
  113. package/lib/editor/global/AcEdConditionWaiter.js.map +1 -1
  114. package/lib/editor/global/AcEdUiTheme.d.ts +4 -0
  115. package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -0
  116. package/lib/editor/global/AcEdUiTheme.js +44 -0
  117. package/lib/editor/global/AcEdUiTheme.js.map +1 -0
  118. package/lib/editor/global/index.d.ts +1 -0
  119. package/lib/editor/global/index.d.ts.map +1 -1
  120. package/lib/editor/global/index.js +1 -0
  121. package/lib/editor/global/index.js.map +1 -1
  122. package/lib/editor/input/AcEdCursorManager.d.ts +10 -0
  123. package/lib/editor/input/AcEdCursorManager.d.ts.map +1 -1
  124. package/lib/editor/input/AcEdCursorManager.js +26 -6
  125. package/lib/editor/input/AcEdCursorManager.js.map +1 -1
  126. package/lib/editor/input/AcEdInputModifiers.d.ts +39 -0
  127. package/lib/editor/input/AcEdInputModifiers.d.ts.map +1 -0
  128. package/lib/editor/input/AcEdInputModifiers.js +2 -0
  129. package/lib/editor/input/AcEdInputModifiers.js.map +1 -0
  130. package/lib/editor/input/AcEdInputToggles.d.ts +24 -0
  131. package/lib/editor/input/AcEdInputToggles.d.ts.map +1 -0
  132. package/lib/editor/input/AcEdInputToggles.js +2 -0
  133. package/lib/editor/input/AcEdInputToggles.js.map +1 -0
  134. package/lib/editor/input/AcEdPromptStateMachine.d.ts +110 -0
  135. package/lib/editor/input/AcEdPromptStateMachine.d.ts.map +1 -0
  136. package/lib/editor/input/AcEdPromptStateMachine.js +147 -0
  137. package/lib/editor/input/AcEdPromptStateMachine.js.map +1 -0
  138. package/lib/editor/input/AcEditor.d.ts +58 -9
  139. package/lib/editor/input/AcEditor.d.ts.map +1 -1
  140. package/lib/editor/input/AcEditor.js +98 -3
  141. package/lib/editor/input/AcEditor.js.map +1 -1
  142. package/lib/editor/input/index.d.ts +3 -0
  143. package/lib/editor/input/index.d.ts.map +1 -1
  144. package/lib/editor/input/index.js +3 -0
  145. package/lib/editor/input/index.js.map +1 -1
  146. package/lib/editor/input/marker/AcEdMarker.d.ts.map +1 -1
  147. package/lib/editor/input/marker/AcEdMarker.js +3 -3
  148. package/lib/editor/input/marker/AcEdMarker.js.map +1 -1
  149. package/lib/editor/input/prompt/AcEdKeywordCollection.d.ts.map +1 -1
  150. package/lib/editor/input/prompt/AcEdKeywordCollection.js +11 -4
  151. package/lib/editor/input/prompt/AcEdKeywordCollection.js.map +1 -1
  152. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +1 -1
  153. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -1
  154. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +2 -2
  155. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -1
  156. package/lib/editor/input/prompt/AcEdPromptBoxOptions.d.ts +20 -0
  157. package/lib/editor/input/prompt/AcEdPromptBoxOptions.d.ts.map +1 -0
  158. package/lib/editor/input/prompt/AcEdPromptBoxOptions.js +80 -0
  159. package/lib/editor/input/prompt/AcEdPromptBoxOptions.js.map +1 -0
  160. package/lib/editor/input/prompt/AcEdPromptBoxResult.d.ts +12 -0
  161. package/lib/editor/input/prompt/AcEdPromptBoxResult.d.ts.map +1 -0
  162. package/lib/editor/input/prompt/AcEdPromptBoxResult.js +30 -0
  163. package/lib/editor/input/prompt/AcEdPromptBoxResult.js.map +1 -0
  164. package/lib/editor/input/prompt/AcEdPromptDoubleResult.d.ts +9 -0
  165. package/lib/editor/input/prompt/AcEdPromptDoubleResult.d.ts.map +1 -0
  166. package/lib/editor/input/prompt/AcEdPromptDoubleResult.js +28 -0
  167. package/lib/editor/input/prompt/AcEdPromptDoubleResult.js.map +1 -0
  168. package/lib/editor/input/prompt/AcEdPromptEntityOptions.d.ts +1 -1
  169. package/lib/editor/input/prompt/AcEdPromptEntityOptions.d.ts.map +1 -1
  170. package/lib/editor/input/prompt/AcEdPromptEntityOptions.js +2 -2
  171. package/lib/editor/input/prompt/AcEdPromptEntityOptions.js.map +1 -1
  172. package/lib/editor/input/prompt/AcEdPromptEntityResult.d.ts +14 -0
  173. package/lib/editor/input/prompt/AcEdPromptEntityResult.d.ts.map +1 -0
  174. package/lib/editor/input/prompt/AcEdPromptEntityResult.js +31 -0
  175. package/lib/editor/input/prompt/AcEdPromptEntityResult.js.map +1 -0
  176. package/lib/editor/input/prompt/AcEdPromptIntegerResult.d.ts +9 -0
  177. package/lib/editor/input/prompt/AcEdPromptIntegerResult.d.ts.map +1 -0
  178. package/lib/editor/input/prompt/AcEdPromptIntegerResult.js +28 -0
  179. package/lib/editor/input/prompt/AcEdPromptIntegerResult.js.map +1 -0
  180. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.d.ts +1 -1
  181. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.d.ts.map +1 -1
  182. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.js +2 -2
  183. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.js.map +1 -1
  184. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts +1 -1
  185. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts.map +1 -1
  186. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js +2 -2
  187. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js.map +1 -1
  188. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts +3 -2
  189. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts.map +1 -1
  190. package/lib/editor/input/prompt/AcEdPromptOptions.js +15 -4
  191. package/lib/editor/input/prompt/AcEdPromptOptions.js.map +1 -1
  192. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts +1 -1
  193. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts.map +1 -1
  194. package/lib/editor/input/prompt/AcEdPromptPointOptions.js +2 -2
  195. package/lib/editor/input/prompt/AcEdPromptPointOptions.js.map +1 -1
  196. package/lib/editor/input/prompt/AcEdPromptPointResult.d.ts +3 -3
  197. package/lib/editor/input/prompt/AcEdPromptSelectionOptions.d.ts +1 -1
  198. package/lib/editor/input/prompt/AcEdPromptSelectionOptions.d.ts.map +1 -1
  199. package/lib/editor/input/prompt/AcEdPromptSelectionOptions.js +2 -2
  200. package/lib/editor/input/prompt/AcEdPromptSelectionOptions.js.map +1 -1
  201. package/lib/editor/input/prompt/AcEdPromptSelectionResult.d.ts +12 -0
  202. package/lib/editor/input/prompt/AcEdPromptSelectionResult.d.ts.map +1 -0
  203. package/lib/editor/input/prompt/AcEdPromptSelectionResult.js +30 -0
  204. package/lib/editor/input/prompt/AcEdPromptSelectionResult.js.map +1 -0
  205. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts +1 -1
  206. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts.map +1 -1
  207. package/lib/editor/input/prompt/AcEdPromptStringOptions.js +2 -2
  208. package/lib/editor/input/prompt/AcEdPromptStringOptions.js.map +1 -1
  209. package/lib/editor/input/prompt/index.d.ts +10 -0
  210. package/lib/editor/input/prompt/index.d.ts.map +1 -1
  211. package/lib/editor/input/prompt/index.js +10 -0
  212. package/lib/editor/input/prompt/index.js.map +1 -1
  213. package/lib/editor/input/session/AcEdKeywordSession.d.ts +2 -1
  214. package/lib/editor/input/session/AcEdKeywordSession.d.ts.map +1 -1
  215. package/lib/editor/input/session/AcEdKeywordSession.js +7 -1
  216. package/lib/editor/input/session/AcEdKeywordSession.js.map +1 -1
  217. package/lib/editor/input/ui/AcEdCommandLine.d.ts +4 -1
  218. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  219. package/lib/editor/input/ui/AcEdCommandLine.js +34 -5
  220. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  221. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +23 -1
  222. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -1
  223. package/lib/editor/input/ui/AcEdFloatingInput.js +140 -26
  224. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -1
  225. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts +2 -0
  226. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts.map +1 -1
  227. package/lib/editor/input/ui/AcEdFloatingInputBox.js +4 -0
  228. package/lib/editor/input/ui/AcEdFloatingInputBox.js.map +1 -1
  229. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts +7 -0
  230. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -1
  231. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +14 -6
  232. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -1
  233. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +5 -0
  234. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -1
  235. package/lib/editor/input/ui/AcEdFloatingMessage.d.ts +12 -0
  236. package/lib/editor/input/ui/AcEdFloatingMessage.d.ts.map +1 -1
  237. package/lib/editor/input/ui/AcEdFloatingMessage.js +61 -2
  238. package/lib/editor/input/ui/AcEdFloatingMessage.js.map +1 -1
  239. package/lib/editor/input/ui/AcEdInputManager.d.ts +47 -13
  240. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  241. package/lib/editor/input/ui/AcEdInputManager.js +854 -389
  242. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  243. package/lib/editor/input/ui/AcEdMTextEditor.d.ts +79 -0
  244. package/lib/editor/input/ui/AcEdMTextEditor.d.ts.map +1 -0
  245. package/lib/editor/input/ui/AcEdMTextEditor.js +157 -0
  246. package/lib/editor/input/ui/AcEdMTextEditor.js.map +1 -0
  247. package/lib/editor/input/ui/AcEdRubberBand.js +1 -1
  248. package/lib/editor/input/ui/AcEdRubberBand.js.map +1 -1
  249. package/lib/editor/input/ui/index.d.ts +2 -0
  250. package/lib/editor/input/ui/index.d.ts.map +1 -1
  251. package/lib/editor/input/ui/index.js +1 -0
  252. package/lib/editor/input/ui/index.js.map +1 -1
  253. package/lib/editor/view/AcEdBaseView.d.ts +81 -0
  254. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  255. package/lib/editor/view/AcEdBaseView.js +173 -1
  256. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  257. package/lib/editor/view/AcEdSpatialQueryResult.d.ts.map +1 -1
  258. package/lib/i18n/en/command.d.ts +21 -0
  259. package/lib/i18n/en/command.d.ts.map +1 -1
  260. package/lib/i18n/en/command.js +21 -0
  261. package/lib/i18n/en/command.js.map +1 -1
  262. package/lib/i18n/en/jig.d.ts +131 -0
  263. package/lib/i18n/en/jig.d.ts.map +1 -1
  264. package/lib/i18n/en/jig.js +131 -0
  265. package/lib/i18n/en/jig.js.map +1 -1
  266. package/lib/i18n/zh/command.d.ts +21 -0
  267. package/lib/i18n/zh/command.d.ts.map +1 -1
  268. package/lib/i18n/zh/command.js +21 -0
  269. package/lib/i18n/zh/command.js.map +1 -1
  270. package/lib/i18n/zh/jig.d.ts +131 -0
  271. package/lib/i18n/zh/jig.d.ts.map +1 -1
  272. package/lib/i18n/zh/jig.js +131 -0
  273. package/lib/i18n/zh/jig.js.map +1 -1
  274. package/lib/index.d.ts +2 -0
  275. package/lib/index.d.ts.map +1 -1
  276. package/lib/index.js +1 -0
  277. package/lib/index.js.map +1 -1
  278. package/lib/plugin/AcApPluginExample.d.ts.map +1 -1
  279. package/lib/plugin/AcApPluginExample.js +7 -6
  280. package/lib/plugin/AcApPluginExample.js.map +1 -1
  281. package/lib/plugin/AcApPluginManager.d.ts +4 -4
  282. package/lib/plugin/AcApPluginManager.d.ts.map +1 -1
  283. package/lib/plugin/AcApPluginManager.js +7 -6
  284. package/lib/plugin/AcApPluginManager.js.map +1 -1
  285. package/lib/util/AcApMeasurementElementGenerator.d.ts +36 -0
  286. package/lib/util/AcApMeasurementElementGenerator.d.ts.map +1 -0
  287. package/lib/util/AcApMeasurementElementGenerator.js +92 -0
  288. package/lib/util/AcApMeasurementElementGenerator.js.map +1 -0
  289. package/lib/util/index.d.ts +1 -0
  290. package/lib/util/index.d.ts.map +1 -1
  291. package/lib/util/index.js +1 -0
  292. package/lib/util/index.js.map +1 -1
  293. package/lib/view/AcTrLayout.d.ts +14 -0
  294. package/lib/view/AcTrLayout.d.ts.map +1 -1
  295. package/lib/view/AcTrLayout.js +21 -0
  296. package/lib/view/AcTrLayout.js.map +1 -1
  297. package/lib/view/AcTrLayoutView.d.ts +11 -0
  298. package/lib/view/AcTrLayoutView.d.ts.map +1 -1
  299. package/lib/view/AcTrLayoutView.js +30 -0
  300. package/lib/view/AcTrLayoutView.js.map +1 -1
  301. package/lib/view/AcTrScene.d.ts +7 -1
  302. package/lib/view/AcTrScene.d.ts.map +1 -1
  303. package/lib/view/AcTrScene.js +16 -2
  304. package/lib/view/AcTrScene.js.map +1 -1
  305. package/lib/view/AcTrView2d.d.ts +16 -1
  306. package/lib/view/AcTrView2d.d.ts.map +1 -1
  307. package/lib/view/AcTrView2d.js +145 -56
  308. package/lib/view/AcTrView2d.js.map +1 -1
  309. package/package.json +10 -9
@@ -0,0 +1,429 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
27
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ var __values = (this && this.__values) || function(o) {
53
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
54
+ if (m) return m.call(o);
55
+ if (o && typeof o.length === "number") return {
56
+ next: function () {
57
+ if (o && i >= o.length) o = void 0;
58
+ return { value: o && o[i++], done: !o };
59
+ }
60
+ };
61
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
62
+ };
63
+ import { AcDbArc, AcDbCircle, AcDbLine } from '@mlightcad/data-model';
64
+ import { AcEdCommand, AcEdCorsorType, AcEdOpenMode, AcEdPreviewJig, AcEdPromptPointOptions, AcEdPromptStatus, AcEdViewMode } from '../editor';
65
+ import { AcApI18n } from '../i18n';
66
+ import { cssColor, makeBadge, makeDot, makeLiveBadge, makeLiveDot, makeOverlayCanvas, makeSnapIndicator, measurementColor } from '../util';
67
+ import { registerMeasurementCleanup } from './AcApClearMeasurementsCmd';
68
+ /** Returns the world point snapped to the nearest point on the circle circumference */
69
+ function snapToCircle(p, g) {
70
+ var angle = Math.atan2(p.y - g.cy, p.x - g.cx);
71
+ return {
72
+ x: g.cx + g.r * Math.cos(angle),
73
+ y: g.cy + g.r * Math.sin(angle),
74
+ z: 0
75
+ };
76
+ }
77
+ /** Returns the shorter arc length between two points on a circle */
78
+ function shortArcLength(p1, p2, g) {
79
+ var a1 = Math.atan2(p1.y - g.cy, p1.x - g.cx);
80
+ var a2 = Math.atan2(p2.y - g.cy, p2.x - g.cx);
81
+ var norm = function (a) {
82
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
83
+ };
84
+ var span = norm(a2 - a1);
85
+ return Math.min(span, 2 * Math.PI - span) * g.r;
86
+ }
87
+ /** World midpoint of the shorter arc between two circle points */
88
+ function shortArcMid(p1, p2, g) {
89
+ var a1 = Math.atan2(p1.y - g.cy, p1.x - g.cx);
90
+ var a2 = Math.atan2(p2.y - g.cy, p2.x - g.cx);
91
+ var norm = function (a) {
92
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
93
+ };
94
+ var ccwSpan = norm(a2 - a1);
95
+ var mid = ccwSpan <= Math.PI ? a1 + ccwSpan / 2 : a1 - (2 * Math.PI - ccwSpan) / 2;
96
+ return { x: g.cx + g.r * Math.cos(mid), y: g.cy + g.r * Math.sin(mid), z: 0 };
97
+ }
98
+ /**
99
+ * Draws the arc between two snapped circle points onto a canvas element.
100
+ * Uses screen-space angles so the Y-axis flip is handled automatically.
101
+ */
102
+ function drawArcOnCanvas(canvas, view, g, p1, p2, color) {
103
+ var rect = view.canvas.getBoundingClientRect();
104
+ var dpr = window.devicePixelRatio || 1;
105
+ var w = Math.round(rect.width);
106
+ var h = Math.round(rect.height);
107
+ var origin = view.canvasToContainer({ x: 0, y: 0 });
108
+ canvas.style.left = "".concat(origin.x, "px");
109
+ canvas.style.top = "".concat(origin.y, "px");
110
+ canvas.style.width = "".concat(w, "px");
111
+ canvas.style.height = "".concat(h, "px");
112
+ if (canvas.width !== w * dpr || canvas.height !== h * dpr) {
113
+ canvas.width = w * dpr;
114
+ canvas.height = h * dpr;
115
+ }
116
+ var ctx = canvas.getContext('2d');
117
+ if (!ctx)
118
+ return;
119
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
120
+ ctx.save();
121
+ ctx.scale(dpr, dpr);
122
+ var sc = view.worldToScreen({ x: g.cx, y: g.cy });
123
+ var ss = view.worldToScreen(p1);
124
+ var se = view.worldToScreen(p2);
125
+ var screenR = Math.hypot(ss.x - sc.x, ss.y - sc.y);
126
+ var sa = Math.atan2(ss.y - sc.y, ss.x - sc.x);
127
+ var ea = Math.atan2(se.y - sc.y, se.x - sc.x);
128
+ var norm = function (a) {
129
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
130
+ };
131
+ var cwSpan = norm(ea - sa);
132
+ var antiClockwise = cwSpan > Math.PI;
133
+ ctx.beginPath();
134
+ ctx.arc(sc.x, sc.y, screenR, sa, ea, antiClockwise);
135
+ ctx.strokeStyle = cssColor(color);
136
+ ctx.lineWidth = 4;
137
+ ctx.stroke();
138
+ ctx.restore();
139
+ }
140
+ /**
141
+ * Jig for the first point: shows a small square snap indicator when the
142
+ * cursor hovers over a circle or arc entity. Notifies the caller via onSnap.
143
+ */
144
+ var AcApArcSnapJig = /** @class */ (function (_super) {
145
+ __extends(AcApArcSnapJig, _super);
146
+ function AcApArcSnapJig(context, color, onSnap) {
147
+ var _this = _super.call(this, context.view) || this;
148
+ _this._ctx = context;
149
+ _this._onSnap = onSnap;
150
+ var o = { x: 0, y: 0, z: 0 };
151
+ _this._dummy = new AcDbLine(o, o);
152
+ _this._indicator = makeSnapIndicator(color);
153
+ return _this;
154
+ }
155
+ Object.defineProperty(AcApArcSnapJig.prototype, "entity", {
156
+ get: function () {
157
+ return this._dummy;
158
+ },
159
+ enumerable: false,
160
+ configurable: true
161
+ });
162
+ AcApArcSnapJig.prototype.update = function (p) {
163
+ var e_1, _a;
164
+ var hits = this._ctx.view.pick(p);
165
+ var modelSpace = this._ctx.doc.database.tables.blockTable.modelSpace;
166
+ // Collect all circle/arc candidates, then pick the one whose
167
+ // circumference is closest to the cursor (fixes wrong-arc selection
168
+ // when multiple arcs overlap in the pick area).
169
+ var bestGeom = null;
170
+ var bestDist = Number.MAX_VALUE;
171
+ try {
172
+ for (var hits_1 = __values(hits), hits_1_1 = hits_1.next(); !hits_1_1.done; hits_1_1 = hits_1.next()) {
173
+ var hit = hits_1_1.value;
174
+ var entity = modelSpace.getIdAt(hit.id);
175
+ var geom = null;
176
+ if (entity instanceof AcDbCircle) {
177
+ geom = { cx: entity.center.x, cy: entity.center.y, r: entity.radius };
178
+ }
179
+ else if (entity instanceof AcDbArc) {
180
+ geom = { cx: entity.center.x, cy: entity.center.y, r: entity.radius };
181
+ }
182
+ if (geom) {
183
+ // Distance from cursor to circumference
184
+ var distToCenter = Math.hypot(p.x - geom.cx, p.y - geom.cy);
185
+ var distToCircumference = Math.abs(distToCenter - geom.r);
186
+ if (distToCircumference < bestDist) {
187
+ bestDist = distToCircumference;
188
+ bestGeom = geom;
189
+ }
190
+ }
191
+ }
192
+ }
193
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
194
+ finally {
195
+ try {
196
+ if (hits_1_1 && !hits_1_1.done && (_a = hits_1.return)) _a.call(hits_1);
197
+ }
198
+ finally { if (e_1) throw e_1.error; }
199
+ }
200
+ if (bestGeom) {
201
+ // Only snap when cursor is close enough to the circumference in
202
+ // screen space (20 px threshold) — prevents snapping from far away.
203
+ var snapped = snapToCircle(p, bestGeom);
204
+ var cursorScreen = this._ctx.view.worldToScreen(p);
205
+ var snapScreen = this._ctx.view.worldToScreen(snapped);
206
+ var screenDist = Math.hypot(cursorScreen.x - snapScreen.x, cursorScreen.y - snapScreen.y);
207
+ if (screenDist <= 20) {
208
+ var rect = this._ctx.view.canvas.getBoundingClientRect();
209
+ this._indicator.style.left = "".concat(snapScreen.x + rect.left, "px");
210
+ this._indicator.style.top = "".concat(snapScreen.y + rect.top, "px");
211
+ this._indicator.style.display = 'block';
212
+ this._onSnap(bestGeom, snapped);
213
+ return;
214
+ }
215
+ }
216
+ this._indicator.style.display = 'none';
217
+ this._onSnap(null, null);
218
+ };
219
+ AcApArcSnapJig.prototype.end = function () {
220
+ _super.prototype.end.call(this);
221
+ this._indicator.remove();
222
+ };
223
+ return AcApArcSnapJig;
224
+ }(AcEdPreviewJig));
225
+ /**
226
+ * Jig for the second point: snaps cursor to the known circle, shows the
227
+ * square snap indicator, and fires onMove with the already-snapped point.
228
+ */
229
+ var AcApArcEndSnapJig = /** @class */ (function (_super) {
230
+ __extends(AcApArcEndSnapJig, _super);
231
+ function AcApArcEndSnapJig(context, geom, color, onMove) {
232
+ var _this = _super.call(this, context.view) || this;
233
+ _this._ctx = context;
234
+ _this._geom = geom;
235
+ _this._onMove = onMove;
236
+ var o = { x: 0, y: 0, z: 0 };
237
+ _this._dummy = new AcDbLine(o, o);
238
+ _this._indicator = makeSnapIndicator(color);
239
+ _this._indicator.style.display = 'block';
240
+ return _this;
241
+ }
242
+ Object.defineProperty(AcApArcEndSnapJig.prototype, "entity", {
243
+ get: function () {
244
+ return this._dummy;
245
+ },
246
+ enumerable: false,
247
+ configurable: true
248
+ });
249
+ AcApArcEndSnapJig.prototype.update = function (p) {
250
+ var snapped = snapToCircle(p, this._geom);
251
+ var rect = this._ctx.view.canvas.getBoundingClientRect();
252
+ var sp = this._ctx.view.worldToScreen(snapped);
253
+ this._indicator.style.left = "".concat(sp.x + rect.left, "px");
254
+ this._indicator.style.top = "".concat(sp.y + rect.top, "px");
255
+ this._onMove(snapped);
256
+ };
257
+ AcApArcEndSnapJig.prototype.end = function () {
258
+ _super.prototype.end.call(this);
259
+ this._indicator.remove();
260
+ };
261
+ return AcApArcEndSnapJig;
262
+ }(AcEdPreviewJig));
263
+ /**
264
+ * Command that measures the length of an arc on an existing circle or arc entity.
265
+ *
266
+ * Uses a two-phase pick flow that mirrors AutoCAD's arc-length measurement:
267
+ *
268
+ * 1. **Phase 1 — entity snap**: The user hovers over a circle or arc in the
269
+ * drawing. A square snap indicator appears on the circumference and the
270
+ * entity geometry is captured. Clicking confirms the start point.
271
+ *
272
+ * 2. **Phase 2 — end point**: The same square indicator follows the cursor,
273
+ * always locked to the captured circle. A canvas overlay draws the shorter
274
+ * arc between the start and current position in real time, together with a
275
+ * live badge showing the arc length.
276
+ *
277
+ * Persistent overlays are placed via {@link AcTrHtmlTransientManager} for dots
278
+ * and badge. The arc canvas is managed with a viewChanged listener cleaned up
279
+ * via {@link registerMeasurementCleanup}.
280
+ */
281
+ var AcApMeasureArcCmd = /** @class */ (function (_super) {
282
+ __extends(AcApMeasureArcCmd, _super);
283
+ function AcApMeasureArcCmd() {
284
+ var _this = _super.call(this) || this;
285
+ _this.mode = AcEdOpenMode.Read;
286
+ return _this;
287
+ }
288
+ AcApMeasureArcCmd.prototype.execute = function (context) {
289
+ return __awaiter(this, void 0, void 0, function () {
290
+ var editor, color, arcCanvas;
291
+ var _this = this;
292
+ return __generator(this, function (_a) {
293
+ switch (_a.label) {
294
+ case 0:
295
+ editor = context.view.editor;
296
+ color = measurementColor(context.doc.database);
297
+ arcCanvas = makeOverlayCanvas(context.view.container);
298
+ return [4 /*yield*/, context.view.withMode(AcEdViewMode.SELECTION, function () {
299
+ return editor.withCursor(AcEdCorsorType.Crosshair, function () { return __awaiter(_this, void 0, void 0, function () {
300
+ var snapGeom, snappedStart, snapJig, p1Prompt, p1Result, _a, geom, start, dot1, liveBadge, reposDot1, redrawPreview, onViewChangedPreview, onMove, p2Prompt, p2Raw, p2Result, _b, end, arcLen, mid, persistCanvas, redrawPersist, htManager, id;
301
+ return __generator(this, function (_c) {
302
+ switch (_c.label) {
303
+ case 0:
304
+ snapGeom = null;
305
+ snappedStart = null;
306
+ snapJig = new AcApArcSnapJig(context, color, function (geom, snapped) {
307
+ snapGeom = geom;
308
+ snappedStart = snapped;
309
+ });
310
+ p1Prompt = new AcEdPromptPointOptions(AcApI18n.t('jig.measureArc.startPoint'));
311
+ p1Prompt.jig = snapJig;
312
+ _c.label = 1;
313
+ case 1:
314
+ _c.trys.push([1, 3, , 4]);
315
+ return [4 /*yield*/, editor.getPoint(p1Prompt)];
316
+ case 2:
317
+ p1Result = _c.sent();
318
+ if (p1Result.status !== AcEdPromptStatus.OK) {
319
+ arcCanvas.remove();
320
+ return [2 /*return*/];
321
+ }
322
+ return [3 /*break*/, 4];
323
+ case 3:
324
+ _a = _c.sent();
325
+ arcCanvas.remove();
326
+ return [2 /*return*/];
327
+ case 4:
328
+ if (!snapGeom || !snappedStart) {
329
+ arcCanvas.remove();
330
+ return [2 /*return*/];
331
+ }
332
+ geom = snapGeom;
333
+ start = snappedStart;
334
+ dot1 = makeLiveDot(color);
335
+ liveBadge = makeLiveBadge(color);
336
+ reposDot1 = function () {
337
+ var rect = context.view.canvas.getBoundingClientRect();
338
+ var sp = context.view.worldToScreen(start);
339
+ dot1.style.left = "".concat(sp.x + rect.left, "px");
340
+ dot1.style.top = "".concat(sp.y + rect.top, "px");
341
+ };
342
+ reposDot1();
343
+ redrawPreview = function () {
344
+ return drawArcOnCanvas(arcCanvas, context.view, geom, start, start, color);
345
+ };
346
+ onViewChangedPreview = function () {
347
+ reposDot1();
348
+ redrawPreview();
349
+ };
350
+ context.view.events.viewChanged.addEventListener(onViewChangedPreview);
351
+ onMove = function (snapped) {
352
+ drawArcOnCanvas(arcCanvas, context.view, geom, start, snapped, color);
353
+ var len = shortArcLength(start, snapped, geom);
354
+ liveBadge.textContent = "~ ".concat(len.toFixed(4), " m");
355
+ liveBadge.style.display = '';
356
+ var mid = shortArcMid(start, snapped, geom);
357
+ var rect = context.view.canvas.getBoundingClientRect();
358
+ var sm = context.view.worldToScreen(mid);
359
+ liveBadge.style.left = "".concat(sm.x + rect.left, "px");
360
+ liveBadge.style.top = "".concat(sm.y + rect.top, "px");
361
+ reposDot1();
362
+ };
363
+ p2Prompt = new AcEdPromptPointOptions(AcApI18n.t('jig.measureArc.endPoint'));
364
+ p2Prompt.jig = new AcApArcEndSnapJig(context, geom, color, onMove);
365
+ _c.label = 5;
366
+ case 5:
367
+ _c.trys.push([5, 7, , 8]);
368
+ return [4 /*yield*/, editor.getPoint(p2Prompt)];
369
+ case 6:
370
+ p2Result = _c.sent();
371
+ if (p2Result.status !== AcEdPromptStatus.OK) {
372
+ arcCanvas.remove();
373
+ dot1.remove();
374
+ liveBadge.remove();
375
+ context.view.events.viewChanged.removeEventListener(onViewChangedPreview);
376
+ return [2 /*return*/];
377
+ }
378
+ p2Raw = p2Result.value;
379
+ return [3 /*break*/, 8];
380
+ case 7:
381
+ _b = _c.sent();
382
+ arcCanvas.remove();
383
+ dot1.remove();
384
+ liveBadge.remove();
385
+ context.view.events.viewChanged.removeEventListener(onViewChangedPreview);
386
+ return [2 /*return*/];
387
+ case 8:
388
+ // Clean up construction-phase elements
389
+ liveBadge.remove();
390
+ dot1.remove();
391
+ context.view.events.viewChanged.removeEventListener(onViewChangedPreview);
392
+ arcCanvas.remove();
393
+ end = snapToCircle(p2Raw, geom);
394
+ arcLen = shortArcLength(start, end, geom);
395
+ mid = shortArcMid(start, end, geom);
396
+ persistCanvas = makeOverlayCanvas(context.view.container);
397
+ drawArcOnCanvas(persistCanvas, context.view, geom, start, end, color);
398
+ redrawPersist = function () {
399
+ return drawArcOnCanvas(persistCanvas, context.view, geom, start, end, color);
400
+ };
401
+ context.view.events.viewChanged.addEventListener(redrawPersist);
402
+ htManager = context.view.htmlTransientManager;
403
+ id = "arc-".concat(Date.now());
404
+ htManager.add("".concat(id, "-dot1"), makeDot(color), start, 'measurement');
405
+ htManager.add("".concat(id, "-dot2"), makeDot(color), end, 'measurement');
406
+ htManager.add("".concat(id, "-badge"), makeBadge(color, "~ ".concat(arcLen.toFixed(4), " m")), mid, 'measurement');
407
+ registerMeasurementCleanup(function () {
408
+ persistCanvas.remove();
409
+ context.view.events.viewChanged.removeEventListener(redrawPersist);
410
+ htManager.remove("".concat(id, "-dot1"));
411
+ htManager.remove("".concat(id, "-dot2"));
412
+ htManager.remove("".concat(id, "-badge"));
413
+ });
414
+ return [2 /*return*/];
415
+ }
416
+ });
417
+ }); });
418
+ })];
419
+ case 1:
420
+ _a.sent();
421
+ return [2 /*return*/];
422
+ }
423
+ });
424
+ });
425
+ };
426
+ return AcApMeasureArcCmd;
427
+ }(AcEdCommand));
428
+ export { AcApMeasureArcCmd };
429
+ //# sourceMappingURL=AcApMeasureArcCmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureArcCmd.js","sourceRoot":"","sources":["../../src/command/AcApMeasureArcCmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { AcApContext } from '../app';
2
+ import { AcEdCommand } from '../editor';
3
+ /**
4
+ * Command that measures the area of a polygon drawn by the user.
5
+ *
6
+ * The user clicks successive vertices; after each click the canvas overlay
7
+ * updates with a semi-transparent blue fill and a dashed outline. The polygon
8
+ * auto-closes when the user clicks near the first vertex (14 px threshold),
9
+ * clicks near the last vertex, or draws a segment that crosses an existing
10
+ * edge — matching AutoCAD's area measurement behaviour. Pressing ESC/Enter
11
+ * also finalises the polygon.
12
+ *
13
+ * Persistent overlays are placed via {@link AcTrHtmlTransientManager} for dots
14
+ * and badge. The filled area canvas is managed with a viewChanged listener
15
+ * cleaned up via {@link registerMeasurementCleanup}.
16
+ */
17
+ export declare class AcApMeasureAreaCmd extends AcEdCommand {
18
+ constructor();
19
+ execute(context: AcApContext): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=AcApMeasureAreaCmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureAreaCmd.d.ts","sourceRoot":"","sources":["../../src/command/AcApMeasureAreaCmd.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAEL,WAAW,EAOZ,MAAM,WAAW,CAAA;AAoIlB;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;;IAM3C,OAAO,CAAC,OAAO,EAAE,WAAW;CAyLnC"}