@mlightcad/cad-simple-viewer 1.7.0 → 1.7.2

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 (358) hide show
  1. package/README.md +6 -1
  2. package/dist/cad-simple-viewer.js +17658 -13023
  3. package/dist/cad-simple-viewer.umd.cjs +985 -114
  4. package/dist/mtext-renderer-worker.js +7390 -7160
  5. package/lib/app/AcApContext.d.ts.map +1 -1
  6. package/lib/app/AcApContext.js +4 -3
  7. package/lib/app/AcApContext.js.map +1 -1
  8. package/lib/app/AcApDocManager.d.ts +41 -18
  9. package/lib/app/AcApDocManager.d.ts.map +1 -1
  10. package/lib/app/AcApDocManager.js +89 -49
  11. package/lib/app/AcApDocManager.js.map +1 -1
  12. package/lib/app/AcApDocument.d.ts +3 -0
  13. package/lib/app/AcApDocument.d.ts.map +1 -1
  14. package/lib/app/AcApDocument.js +31 -24
  15. package/lib/app/AcApDocument.js.map +1 -1
  16. package/lib/app/AcApOpenDatabaseOptions.d.ts +33 -7
  17. package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
  18. package/lib/app/AcApOpenDatabaseOptions.js +1 -1
  19. package/lib/app/AcApOpenDatabaseOptions.js.map +1 -1
  20. package/lib/app/AcApOpenFileProgressController.d.ts +13 -4
  21. package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
  22. package/lib/app/AcApOpenFileProgressController.js +25 -6
  23. package/lib/app/AcApOpenFileProgressController.js.map +1 -1
  24. package/lib/app/AcApWorkerAssets.d.ts +3 -3
  25. package/lib/app/AcApWorkerAssets.d.ts.map +1 -1
  26. package/lib/app/AcApWorkerAssets.js +3 -3
  27. package/lib/app/AcApWorkerAssets.js.map +1 -1
  28. package/lib/app/index.d.ts +1 -0
  29. package/lib/app/index.d.ts.map +1 -1
  30. package/lib/app/index.js +1 -0
  31. package/lib/app/index.js.map +1 -1
  32. package/lib/app/notification/AcApNotificationEventBridge.d.ts +130 -0
  33. package/lib/app/notification/AcApNotificationEventBridge.d.ts.map +1 -0
  34. package/lib/app/notification/AcApNotificationEventBridge.js +309 -0
  35. package/lib/app/notification/AcApNotificationEventBridge.js.map +1 -0
  36. package/lib/app/notification/AcApNotificationService.d.ts +185 -0
  37. package/lib/app/notification/AcApNotificationService.d.ts.map +1 -0
  38. package/lib/app/notification/AcApNotificationService.js +271 -0
  39. package/lib/app/notification/AcApNotificationService.js.map +1 -0
  40. package/lib/app/notification/AcApNotificationStore.d.ts +147 -0
  41. package/lib/app/notification/AcApNotificationStore.d.ts.map +1 -0
  42. package/lib/app/notification/AcApNotificationStore.js +345 -0
  43. package/lib/app/notification/AcApNotificationStore.js.map +1 -0
  44. package/lib/app/notification/AcApNotificationTypes.d.ts +195 -0
  45. package/lib/app/notification/AcApNotificationTypes.d.ts.map +1 -0
  46. package/lib/app/notification/AcApNotificationTypes.js +78 -0
  47. package/lib/app/notification/AcApNotificationTypes.js.map +1 -0
  48. package/lib/app/notification/index.d.ts +13 -0
  49. package/lib/app/notification/index.d.ts.map +1 -0
  50. package/lib/app/notification/index.js +13 -0
  51. package/lib/app/notification/index.js.map +1 -0
  52. package/lib/command/AcApInstallDrawStyleSessionAccessory.js +11 -7
  53. package/lib/command/AcApInstallDrawStyleSessionAccessory.js.map +1 -1
  54. package/lib/command/AcApSwitchBgCmd.d.ts.map +1 -1
  55. package/lib/command/AcApSwitchBgCmd.js +7 -2
  56. package/lib/command/AcApSwitchBgCmd.js.map +1 -1
  57. package/lib/command/AcApToolbarDocBind.d.ts +19 -0
  58. package/lib/command/AcApToolbarDocBind.d.ts.map +1 -0
  59. package/lib/command/AcApToolbarDocBind.js +62 -0
  60. package/lib/command/AcApToolbarDocBind.js.map +1 -0
  61. package/lib/command/convert/AcApConvertToBmpCmd.d.ts +14 -0
  62. package/lib/command/convert/AcApConvertToBmpCmd.d.ts.map +1 -0
  63. package/lib/command/convert/AcApConvertToBmpCmd.js +34 -0
  64. package/lib/command/convert/AcApConvertToBmpCmd.js.map +1 -0
  65. package/lib/command/convert/AcApConvertToJpgCmd.d.ts +14 -0
  66. package/lib/command/convert/AcApConvertToJpgCmd.d.ts.map +1 -0
  67. package/lib/command/convert/AcApConvertToJpgCmd.js +34 -0
  68. package/lib/command/convert/AcApConvertToJpgCmd.js.map +1 -0
  69. package/lib/command/convert/AcApConvertToPngCmd.d.ts +4 -36
  70. package/lib/command/convert/AcApConvertToPngCmd.d.ts.map +1 -1
  71. package/lib/command/convert/AcApConvertToPngCmd.js +4 -138
  72. package/lib/command/convert/AcApConvertToPngCmd.js.map +1 -1
  73. package/lib/command/convert/AcApConvertToRasterImageCmd.d.ts +40 -0
  74. package/lib/command/convert/AcApConvertToRasterImageCmd.d.ts.map +1 -0
  75. package/lib/command/convert/AcApConvertToRasterImageCmd.js +161 -0
  76. package/lib/command/convert/AcApConvertToRasterImageCmd.js.map +1 -0
  77. package/lib/command/convert/{AcApPngConvertor.d.ts → AcApRasterImageConvertor.d.ts} +36 -12
  78. package/lib/command/convert/AcApRasterImageConvertor.d.ts.map +1 -0
  79. package/lib/command/convert/{AcApPngConvertor.js → AcApRasterImageConvertor.js} +163 -32
  80. package/lib/command/convert/AcApRasterImageConvertor.js.map +1 -0
  81. package/lib/command/convert/index.d.ts +4 -1
  82. package/lib/command/convert/index.d.ts.map +1 -1
  83. package/lib/command/convert/index.js +4 -1
  84. package/lib/command/convert/index.js.map +1 -1
  85. package/lib/command/index.d.ts +2 -0
  86. package/lib/command/index.d.ts.map +1 -1
  87. package/lib/command/index.js +2 -0
  88. package/lib/command/index.js.map +1 -1
  89. package/lib/command/markup/AcApMarkupCalloutCmd.d.ts.map +1 -1
  90. package/lib/command/markup/AcApMarkupCalloutCmd.js +51 -1
  91. package/lib/command/markup/AcApMarkupCalloutCmd.js.map +1 -1
  92. package/lib/command/markup/AcApMarkupCmdUtil.d.ts +5 -0
  93. package/lib/command/markup/AcApMarkupCmdUtil.d.ts.map +1 -1
  94. package/lib/command/markup/AcApMarkupCmdUtil.js +27 -9
  95. package/lib/command/markup/AcApMarkupCmdUtil.js.map +1 -1
  96. package/lib/command/markup/AcApMarkupShapeCallout.d.ts.map +1 -1
  97. package/lib/command/markup/AcApMarkupShapeCallout.js +49 -1
  98. package/lib/command/markup/AcApMarkupShapeCallout.js.map +1 -1
  99. package/lib/editor/global/AcEdUiLayout.d.ts +6 -0
  100. package/lib/editor/global/AcEdUiLayout.d.ts.map +1 -1
  101. package/lib/editor/global/AcEdUiLayout.js +6 -0
  102. package/lib/editor/global/AcEdUiLayout.js.map +1 -1
  103. package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.d.ts +31 -0
  104. package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.d.ts.map +1 -0
  105. package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.js +67 -0
  106. package/lib/editor/input/ui/AcEdCanvasTouchCalloutGuard.js.map +1 -0
  107. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +2 -0
  108. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -1
  109. package/lib/editor/input/ui/AcEdFloatingInput.js +13 -2
  110. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -1
  111. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +6 -0
  112. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -1
  113. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  114. package/lib/editor/input/ui/AcEdInputManager.js +47 -7
  115. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  116. package/lib/editor/input/ui/AcEdMTextEditor.d.ts.map +1 -1
  117. package/lib/editor/input/ui/AcEdMTextEditor.js +2 -1
  118. package/lib/editor/input/ui/AcEdMTextEditor.js.map +1 -1
  119. package/lib/editor/input/ui/AcEdMobileBoxGesture.d.ts.map +1 -1
  120. package/lib/editor/input/ui/AcEdMobileBoxGesture.js +2 -0
  121. package/lib/editor/input/ui/AcEdMobileBoxGesture.js.map +1 -1
  122. package/lib/editor/input/ui/AcEdMobileCommandChrome.d.ts +18 -4
  123. package/lib/editor/input/ui/AcEdMobileCommandChrome.d.ts.map +1 -1
  124. package/lib/editor/input/ui/AcEdMobileCommandChrome.js +14 -0
  125. package/lib/editor/input/ui/AcEdMobileCommandChrome.js.map +1 -1
  126. package/lib/editor/input/ui/AcEdSessionAccessoryController.d.ts +10 -2
  127. package/lib/editor/input/ui/AcEdSessionAccessoryController.d.ts.map +1 -1
  128. package/lib/editor/input/ui/AcEdSessionAccessoryController.js +15 -4
  129. package/lib/editor/input/ui/AcEdSessionAccessoryController.js.map +1 -1
  130. package/lib/editor/input/ui/AcEdTouchPointTiming.d.ts +1 -1
  131. package/lib/editor/input/ui/AcEdTouchPointTiming.d.ts.map +1 -1
  132. package/lib/editor/input/ui/AcEdTouchPointTiming.js +1 -1
  133. package/lib/editor/input/ui/AcEdTouchPointTiming.js.map +1 -1
  134. package/lib/editor/input/ui/index.d.ts +1 -0
  135. package/lib/editor/input/ui/index.d.ts.map +1 -1
  136. package/lib/editor/input/ui/index.js +1 -0
  137. package/lib/editor/input/ui/index.js.map +1 -1
  138. package/lib/editor/view/AcEdBaseView.d.ts +12 -0
  139. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  140. package/lib/editor/view/AcEdBaseView.js +19 -9
  141. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  142. package/lib/editor/view/AcEdSelectionBoxIntersect.d.ts +36 -0
  143. package/lib/editor/view/AcEdSelectionBoxIntersect.d.ts.map +1 -0
  144. package/lib/editor/view/AcEdSelectionBoxIntersect.js +113 -0
  145. package/lib/editor/view/AcEdSelectionBoxIntersect.js.map +1 -0
  146. package/lib/editor/view/index.d.ts +1 -0
  147. package/lib/editor/view/index.d.ts.map +1 -1
  148. package/lib/editor/view/index.js +1 -0
  149. package/lib/editor/view/index.js.map +1 -1
  150. package/lib/i18n/AcApI18n.d.ts +2 -1
  151. package/lib/i18n/AcApI18n.d.ts.map +1 -1
  152. package/lib/i18n/AcApI18n.js +4 -1
  153. package/lib/i18n/AcApI18n.js.map +1 -1
  154. package/lib/i18n/ar/command.d.ts +9 -0
  155. package/lib/i18n/ar/command.d.ts.map +1 -1
  156. package/lib/i18n/ar/command.js +1 -1
  157. package/lib/i18n/ar/command.js.map +1 -1
  158. package/lib/i18n/ar/jig.d.ts +47 -0
  159. package/lib/i18n/ar/jig.d.ts.map +1 -1
  160. package/lib/i18n/ar/jig.js +17 -1
  161. package/lib/i18n/ar/jig.js.map +1 -1
  162. package/lib/i18n/ar/main.d.ts +32 -0
  163. package/lib/i18n/ar/main.d.ts.map +1 -1
  164. package/lib/i18n/ar/main.js +38 -6
  165. package/lib/i18n/ar/main.js.map +1 -1
  166. package/lib/i18n/cs/command.d.ts +9 -0
  167. package/lib/i18n/cs/command.d.ts.map +1 -1
  168. package/lib/i18n/cs/command.js +9 -0
  169. package/lib/i18n/cs/command.js.map +1 -1
  170. package/lib/i18n/cs/jig.d.ts +47 -0
  171. package/lib/i18n/cs/jig.d.ts.map +1 -1
  172. package/lib/i18n/cs/jig.js +47 -0
  173. package/lib/i18n/cs/jig.js.map +1 -1
  174. package/lib/i18n/cs/main.d.ts +32 -0
  175. package/lib/i18n/cs/main.d.ts.map +1 -1
  176. package/lib/i18n/cs/main.js +38 -6
  177. package/lib/i18n/cs/main.js.map +1 -1
  178. package/lib/i18n/en/command.d.ts +9 -0
  179. package/lib/i18n/en/command.d.ts.map +1 -1
  180. package/lib/i18n/en/command.js +9 -0
  181. package/lib/i18n/en/command.js.map +1 -1
  182. package/lib/i18n/en/jig.d.ts +47 -0
  183. package/lib/i18n/en/jig.d.ts.map +1 -1
  184. package/lib/i18n/en/jig.js +47 -0
  185. package/lib/i18n/en/jig.js.map +1 -1
  186. package/lib/i18n/en/main.d.ts +32 -0
  187. package/lib/i18n/en/main.d.ts.map +1 -1
  188. package/lib/i18n/en/main.js +38 -6
  189. package/lib/i18n/en/main.js.map +1 -1
  190. package/lib/i18n/index.d.ts +2 -2
  191. package/lib/i18n/index.d.ts.map +1 -1
  192. package/lib/i18n/index.js.map +1 -1
  193. package/lib/i18n/tr/command.d.ts +9 -0
  194. package/lib/i18n/tr/command.d.ts.map +1 -1
  195. package/lib/i18n/tr/command.js +9 -0
  196. package/lib/i18n/tr/command.js.map +1 -1
  197. package/lib/i18n/tr/jig.d.ts +47 -0
  198. package/lib/i18n/tr/jig.d.ts.map +1 -1
  199. package/lib/i18n/tr/jig.js +47 -0
  200. package/lib/i18n/tr/jig.js.map +1 -1
  201. package/lib/i18n/tr/main.d.ts +32 -0
  202. package/lib/i18n/tr/main.d.ts.map +1 -1
  203. package/lib/i18n/tr/main.js +38 -6
  204. package/lib/i18n/tr/main.js.map +1 -1
  205. package/lib/i18n/zh/command.d.ts +9 -0
  206. package/lib/i18n/zh/command.d.ts.map +1 -1
  207. package/lib/i18n/zh/command.js +9 -0
  208. package/lib/i18n/zh/command.js.map +1 -1
  209. package/lib/i18n/zh/jig.d.ts +47 -0
  210. package/lib/i18n/zh/jig.d.ts.map +1 -1
  211. package/lib/i18n/zh/jig.js +47 -0
  212. package/lib/i18n/zh/jig.js.map +1 -1
  213. package/lib/i18n/zh/main.d.ts +32 -0
  214. package/lib/i18n/zh/main.d.ts.map +1 -1
  215. package/lib/i18n/zh/main.js +38 -6
  216. package/lib/i18n/zh/main.js.map +1 -1
  217. package/lib/index.d.ts +1 -1
  218. package/lib/index.d.ts.map +1 -1
  219. package/lib/index.js +1 -1
  220. package/lib/index.js.map +1 -1
  221. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +6 -0
  222. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  223. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +10 -0
  224. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  225. package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts +4 -0
  226. package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts.map +1 -1
  227. package/lib/spatialIndex/AcTrLinearSpatialIndex.js +9 -0
  228. package/lib/spatialIndex/AcTrLinearSpatialIndex.js.map +1 -1
  229. package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts +4 -0
  230. package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts.map +1 -1
  231. package/lib/spatialIndex/AcTrRBushSpatialIndex.js +9 -0
  232. package/lib/spatialIndex/AcTrRBushSpatialIndex.js.map +1 -1
  233. package/lib/ui/AcUiDefaultNotificationUi.d.ts +167 -0
  234. package/lib/ui/AcUiDefaultNotificationUi.d.ts.map +1 -0
  235. package/lib/ui/AcUiDefaultNotificationUi.js +604 -0
  236. package/lib/ui/AcUiDefaultNotificationUi.js.map +1 -0
  237. package/lib/ui/AcUiDrawStyle.d.ts +2 -1
  238. package/lib/ui/AcUiDrawStyle.d.ts.map +1 -1
  239. package/lib/ui/AcUiDrawStyle.js +2 -1
  240. package/lib/ui/AcUiDrawStyle.js.map +1 -1
  241. package/lib/ui/AcUiDrawStyleSessionAccessory.d.ts.map +1 -1
  242. package/lib/ui/AcUiDrawStyleSessionAccessory.js +5 -1
  243. package/lib/ui/AcUiDrawStyleSessionAccessory.js.map +1 -1
  244. package/lib/ui/AcUiMobileSessionPanel.d.ts +73 -8
  245. package/lib/ui/AcUiMobileSessionPanel.d.ts.map +1 -1
  246. package/lib/ui/AcUiMobileSessionPanel.js +314 -49
  247. package/lib/ui/AcUiMobileSessionPanel.js.map +1 -1
  248. package/lib/ui/AcUiShortCutToolbar.d.ts +24 -0
  249. package/lib/ui/AcUiShortCutToolbar.d.ts.map +1 -1
  250. package/lib/ui/AcUiShortCutToolbar.js +73 -5
  251. package/lib/ui/AcUiShortCutToolbar.js.map +1 -1
  252. package/lib/ui/icons.d.ts +7 -1
  253. package/lib/ui/icons.d.ts.map +1 -1
  254. package/lib/ui/icons.js +10 -2
  255. package/lib/ui/icons.js.map +1 -1
  256. package/lib/ui/index.d.ts +2 -0
  257. package/lib/ui/index.d.ts.map +1 -1
  258. package/lib/ui/index.js +2 -0
  259. package/lib/ui/index.js.map +1 -1
  260. package/lib/ui/toolbar/AcUiDropdownMenu.d.ts +48 -0
  261. package/lib/ui/toolbar/AcUiDropdownMenu.d.ts.map +1 -0
  262. package/lib/ui/toolbar/AcUiDropdownMenu.js +116 -0
  263. package/lib/ui/toolbar/AcUiDropdownMenu.js.map +1 -0
  264. package/lib/ui/toolbar/AcUiSubToolbar.d.ts +125 -0
  265. package/lib/ui/toolbar/AcUiSubToolbar.d.ts.map +1 -0
  266. package/lib/ui/toolbar/AcUiSubToolbar.js +625 -0
  267. package/lib/ui/toolbar/AcUiSubToolbar.js.map +1 -0
  268. package/lib/ui/toolbar/AcUiToolbar.d.ts +446 -0
  269. package/lib/ui/toolbar/AcUiToolbar.d.ts.map +1 -0
  270. package/lib/ui/toolbar/AcUiToolbar.js +1550 -0
  271. package/lib/ui/toolbar/AcUiToolbar.js.map +1 -0
  272. package/lib/ui/toolbar/AcUiToolbarStyles.d.ts +20 -0
  273. package/lib/ui/toolbar/AcUiToolbarStyles.d.ts.map +1 -0
  274. package/lib/ui/toolbar/AcUiToolbarStyles.js +34 -0
  275. package/lib/ui/toolbar/AcUiToolbarStyles.js.map +1 -0
  276. package/lib/ui/toolbar/acuiWrapPackLayout.d.ts +19 -0
  277. package/lib/ui/toolbar/acuiWrapPackLayout.d.ts.map +1 -0
  278. package/lib/ui/toolbar/acuiWrapPackLayout.js +36 -0
  279. package/lib/ui/toolbar/acuiWrapPackLayout.js.map +1 -0
  280. package/lib/ui/toolbar/index.d.ts +19 -0
  281. package/lib/ui/toolbar/index.d.ts.map +1 -0
  282. package/lib/ui/toolbar/index.js +15 -0
  283. package/lib/ui/toolbar/index.js.map +1 -0
  284. package/lib/ui/toolbar/resolveToolbarChrome.d.ts +14 -0
  285. package/lib/ui/toolbar/resolveToolbarChrome.d.ts.map +1 -0
  286. package/lib/ui/toolbar/resolveToolbarChrome.js +35 -0
  287. package/lib/ui/toolbar/resolveToolbarChrome.js.map +1 -0
  288. package/lib/ui/toolbar/resolveToolbarItemState.d.ts +63 -0
  289. package/lib/ui/toolbar/resolveToolbarItemState.d.ts.map +1 -0
  290. package/lib/ui/toolbar/resolveToolbarItemState.js +171 -0
  291. package/lib/ui/toolbar/resolveToolbarItemState.js.map +1 -0
  292. package/lib/ui/toolbar/toolbarItemUtils.d.ts +62 -0
  293. package/lib/ui/toolbar/toolbarItemUtils.d.ts.map +1 -0
  294. package/lib/ui/toolbar/toolbarItemUtils.js +184 -0
  295. package/lib/ui/toolbar/toolbarItemUtils.js.map +1 -0
  296. package/lib/ui/toolbar/types.d.ts +268 -0
  297. package/lib/ui/toolbar/types.d.ts.map +1 -0
  298. package/lib/ui/toolbar/types.js +8 -0
  299. package/lib/ui/toolbar/types.js.map +1 -0
  300. package/lib/ui-html-entry.d.ts +8 -1
  301. package/lib/ui-html-entry.d.ts.map +1 -1
  302. package/lib/ui-html-entry.js +6 -1
  303. package/lib/ui-html-entry.js.map +1 -1
  304. package/lib/util/AcApAnalyzeUnsupportedDrawing.d.ts +53 -0
  305. package/lib/util/AcApAnalyzeUnsupportedDrawing.d.ts.map +1 -0
  306. package/lib/util/AcApAnalyzeUnsupportedDrawing.js +164 -0
  307. package/lib/util/AcApAnalyzeUnsupportedDrawing.js.map +1 -0
  308. package/lib/util/AcApFormatFontMissedMessage.d.ts +32 -0
  309. package/lib/util/AcApFormatFontMissedMessage.d.ts.map +1 -0
  310. package/lib/util/AcApFormatFontMissedMessage.js +46 -0
  311. package/lib/util/AcApFormatFontMissedMessage.js.map +1 -0
  312. package/lib/util/AcApFormatUnsupportedEntitiesMessage.d.ts +44 -0
  313. package/lib/util/AcApFormatUnsupportedEntitiesMessage.d.ts.map +1 -0
  314. package/lib/util/AcApFormatUnsupportedEntitiesMessage.js +105 -0
  315. package/lib/util/AcApFormatUnsupportedEntitiesMessage.js.map +1 -0
  316. package/lib/util/AcApMessageLink.d.ts +41 -0
  317. package/lib/util/AcApMessageLink.d.ts.map +1 -0
  318. package/lib/util/AcApMessageLink.js +127 -0
  319. package/lib/util/AcApMessageLink.js.map +1 -0
  320. package/lib/util/AcApOpenFileErrorMessage.d.ts +18 -1
  321. package/lib/util/AcApOpenFileErrorMessage.d.ts.map +1 -1
  322. package/lib/util/AcApOpenFileErrorMessage.js +34 -2
  323. package/lib/util/AcApOpenFileErrorMessage.js.map +1 -1
  324. package/lib/util/index.d.ts +4 -0
  325. package/lib/util/index.d.ts.map +1 -1
  326. package/lib/util/index.js +4 -0
  327. package/lib/util/index.js.map +1 -1
  328. package/lib/view/AcTrDirectBatch.d.ts.map +1 -1
  329. package/lib/view/AcTrDirectBatch.js +12 -1
  330. package/lib/view/AcTrDirectBatch.js.map +1 -1
  331. package/lib/view/AcTrLayer.d.ts +13 -1
  332. package/lib/view/AcTrLayer.d.ts.map +1 -1
  333. package/lib/view/AcTrLayer.js +28 -11
  334. package/lib/view/AcTrLayer.js.map +1 -1
  335. package/lib/view/AcTrLayout.d.ts +17 -2
  336. package/lib/view/AcTrLayout.d.ts.map +1 -1
  337. package/lib/view/AcTrLayout.js +44 -3
  338. package/lib/view/AcTrLayout.js.map +1 -1
  339. package/lib/view/AcTrProgressiveOpenFitController.d.ts +8 -0
  340. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
  341. package/lib/view/AcTrProgressiveOpenFitController.js +13 -0
  342. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
  343. package/lib/view/AcTrScene.d.ts +4 -0
  344. package/lib/view/AcTrScene.d.ts.map +1 -1
  345. package/lib/view/AcTrScene.js +6 -0
  346. package/lib/view/AcTrScene.js.map +1 -1
  347. package/lib/view/AcTrView2d.d.ts +173 -17
  348. package/lib/view/AcTrView2d.d.ts.map +1 -1
  349. package/lib/view/AcTrView2d.js +742 -144
  350. package/lib/view/AcTrView2d.js.map +1 -1
  351. package/lib/view/fontLoadRegen.d.ts +25 -0
  352. package/lib/view/fontLoadRegen.d.ts.map +1 -0
  353. package/lib/view/fontLoadRegen.js +33 -0
  354. package/lib/view/fontLoadRegen.js.map +1 -0
  355. package/package.json +10 -8
  356. package/src/ui/icons.ts +14 -2
  357. package/lib/command/convert/AcApPngConvertor.d.ts.map +0 -1
  358. package/lib/command/convert/AcApPngConvertor.js.map +0 -1
@@ -61,9 +61,13 @@ import { isOpenFileProgressComplete } from './openFileProgress';
61
61
  * `setMessage` only when the localized stage text changes. Progress events
62
62
  * still emit on every callback so listeners see fine-grained percentages.
63
63
  *
64
- * When progressive scene convert is still draining after CONVERSION `END`,
65
- * the overlay stays up (see-through) until {@link setSceneBusyGate} reports
66
- * idle so geometry can appear under the spinner.
64
+ * When scene convert is still draining after CONVERSION `END`, the overlay
65
+ * stays up (see-through during progressive open) with "Rendering drawing ..."
66
+ * until {@link setSceneBusyGate} reports idle. The gate is driven by
67
+ * {@link AcApOpenDatabaseOptions.progressiveRendering}: when progressive
68
+ * rendering is on it tracks entity convert only; when off it also waits for
69
+ * deferred glyph jobs so pan/zoom stay blocked while text catches up.
70
+ * Deprecated `waitForTextGeometry` is ignored.
67
71
  */
68
72
  var AcApOpenFileProgressController = /** @class */ (function () {
69
73
  /**
@@ -74,6 +78,8 @@ var AcApOpenFileProgressController = /** @class */ (function () {
74
78
  this._overlayVisible = false;
75
79
  this._lastMessage = '';
76
80
  this._seeThrough = false;
81
+ /** Consecutive idle polls while holding the overlay after CONVERSION END. */
82
+ this._holdIdleStreak = 0;
77
83
  this._progress = new AcApProgress({
78
84
  host: host,
79
85
  overlayColor: AcApOpenFileProgressController.OVERLAY_DEFAULT
@@ -100,7 +106,7 @@ var AcApOpenFileProgressController = /** @class */ (function () {
100
106
  };
101
107
  /**
102
108
  * Gate that returns true while the view still has entities to convert.
103
- * Used to keep the overlay until progressive scene convert finishes.
109
+ * Used to keep the overlay until scene convert finishes (not deferred text).
104
110
  */
105
111
  AcApOpenFileProgressController.prototype.setSceneBusyGate = function (gate) {
106
112
  this._sceneBusyGate = gate;
@@ -122,6 +128,7 @@ var AcApOpenFileProgressController = /** @class */ (function () {
122
128
  this._stage = undefined;
123
129
  this._overlayVisible = false;
124
130
  this._lastMessage = '';
131
+ this._holdIdleStreak = 0;
125
132
  };
126
133
  /**
127
134
  * Shows the open-file overlay immediately and yields so it can paint before
@@ -228,16 +235,24 @@ var AcApOpenFileProgressController = /** @class */ (function () {
228
235
  if (this._holdPollId != null) {
229
236
  return;
230
237
  }
238
+ this._holdIdleStreak = 0;
231
239
  var poll = function () {
232
240
  var _a;
233
241
  if ((_a = _this._sceneBusyGate) === null || _a === void 0 ? void 0 : _a.call(_this)) {
234
- _this._holdPollId = setTimeout(poll, 50);
242
+ _this._holdIdleStreak = 0;
243
+ _this._holdPollId = setTimeout(poll, AcApOpenFileProgressController.HOLD_POLL_MS);
244
+ return;
245
+ }
246
+ _this._holdIdleStreak++;
247
+ if (_this._holdIdleStreak < AcApOpenFileProgressController.HOLD_IDLE_STREAK) {
248
+ _this._holdPollId = setTimeout(poll, AcApOpenFileProgressController.HOLD_POLL_MS);
235
249
  return;
236
250
  }
237
251
  _this._holdPollId = undefined;
252
+ _this._holdIdleStreak = 0;
238
253
  _this.hideAndReset();
239
254
  };
240
- this._holdPollId = setTimeout(poll, 50);
255
+ this._holdPollId = setTimeout(poll, AcApOpenFileProgressController.HOLD_POLL_MS);
241
256
  };
242
257
  AcApOpenFileProgressController.prototype.hideAndReset = function () {
243
258
  var _a;
@@ -251,9 +266,13 @@ var AcApOpenFileProgressController = /** @class */ (function () {
251
266
  clearTimeout(this._holdPollId);
252
267
  this._holdPollId = undefined;
253
268
  }
269
+ this._holdIdleStreak = 0;
254
270
  };
255
271
  AcApOpenFileProgressController.OVERLAY_DEFAULT = 'rgba(0,0,0,0.45)';
256
272
  AcApOpenFileProgressController.OVERLAY_SEE_THROUGH = 'rgba(0,0,0,0.16)';
273
+ /** Match {@link AcTrView2d.waitUntilIdle}: require two idle samples. */
274
+ AcApOpenFileProgressController.HOLD_IDLE_STREAK = 2;
275
+ AcApOpenFileProgressController.HOLD_POLL_MS = 50;
257
276
  return AcApOpenFileProgressController;
258
277
  }());
259
278
  export { AcApOpenFileProgressController };
@@ -1 +1 @@
1
- {"version":3,"file":"AcApOpenFileProgressController.js","sourceRoot":"","sources":["../../src/app/AcApOpenFileProgressController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcApOpenFileProgressController.js","sourceRoot":"","sources":["../../src/app/AcApOpenFileProgressController.ts"],"names":[],"mappings":"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"}
@@ -22,12 +22,12 @@ export declare const LIBREDWG_PARSER_WASM_FILE = "libredwg-web.wasm";
22
22
  /** MTEXT layout/shaping worker from `@mlightcad/mtext-renderer`. */
23
23
  export declare const MTEXT_RENDERER_WORKER_FILE = "mtext-renderer-worker.js";
24
24
  /**
25
- * Proprietary DWG parser worker from private package `@mlight-cad/dwg-converter`.
25
+ * Proprietary DWG parser worker from private package `@mlightcad/dwg-converter`.
26
26
  * Not registered by default; used when the host app opts into that converter.
27
27
  */
28
28
  export declare const DWG_PARSER_WORKER_FILE = "dwg-parser-worker.js";
29
29
  /**
30
- * Proprietary DWG parser main-thread module from `@mlight-cad/dwg-converter`.
30
+ * Proprietary DWG parser main-thread module from `@mlightcad/dwg-converter`.
31
31
  * Used when parsing DWG on the main thread instead of a Web Worker.
32
32
  */
33
33
  export declare const DWG_PARSER_MAIN_FILE = "dwg-parser-main.js";
@@ -36,5 +36,5 @@ export declare const LIBREDWG_CONVERTER_PACKAGE = "@mlightcad/libredwg-converter
36
36
  /** npm package that ships {@link MTEXT_RENDERER_WORKER_FILE}. */
37
37
  export declare const MTEXT_RENDERER_PACKAGE = "@mlightcad/mtext-renderer";
38
38
  /** Private npm package that ships {@link DWG_PARSER_WORKER_FILE} / {@link DWG_PARSER_MAIN_FILE}. */
39
- export declare const DWG_CONVERTER_PACKAGE = "@mlight-cad/dwg-converter";
39
+ export declare const DWG_CONVERTER_PACKAGE = "@mlightcad/dwg-converter";
40
40
  //# sourceMappingURL=AcApWorkerAssets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcApWorkerAssets.d.ts","sourceRoot":"","sources":["../../src/app/AcApWorkerAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,eAAO,MAAM,2BAA2B,8BAA8B,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAE5D,oEAAoE;AACpE,eAAO,MAAM,0BAA0B,6BAA6B,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,uBAAuB,CAAA;AAExD,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,kCAAkC,CAAA;AAEzE,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,8BAA8B,CAAA;AAEjE,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,8BAA8B,CAAA"}
1
+ {"version":3,"file":"AcApWorkerAssets.d.ts","sourceRoot":"","sources":["../../src/app/AcApWorkerAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,eAAO,MAAM,2BAA2B,8BAA8B,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAE5D,oEAAoE;AACpE,eAAO,MAAM,0BAA0B,6BAA6B,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,uBAAuB,CAAA;AAExD,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,kCAAkC,CAAA;AAEzE,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,8BAA8B,CAAA;AAEjE,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,6BAA6B,CAAA"}
@@ -22,12 +22,12 @@ export var LIBREDWG_PARSER_WASM_FILE = 'libredwg-web.wasm';
22
22
  /** MTEXT layout/shaping worker from `@mlightcad/mtext-renderer`. */
23
23
  export var MTEXT_RENDERER_WORKER_FILE = 'mtext-renderer-worker.js';
24
24
  /**
25
- * Proprietary DWG parser worker from private package `@mlight-cad/dwg-converter`.
25
+ * Proprietary DWG parser worker from private package `@mlightcad/dwg-converter`.
26
26
  * Not registered by default; used when the host app opts into that converter.
27
27
  */
28
28
  export var DWG_PARSER_WORKER_FILE = 'dwg-parser-worker.js';
29
29
  /**
30
- * Proprietary DWG parser main-thread module from `@mlight-cad/dwg-converter`.
30
+ * Proprietary DWG parser main-thread module from `@mlightcad/dwg-converter`.
31
31
  * Used when parsing DWG on the main thread instead of a Web Worker.
32
32
  */
33
33
  export var DWG_PARSER_MAIN_FILE = 'dwg-parser-main.js';
@@ -36,5 +36,5 @@ export var LIBREDWG_CONVERTER_PACKAGE = '@mlightcad/libredwg-converter';
36
36
  /** npm package that ships {@link MTEXT_RENDERER_WORKER_FILE}. */
37
37
  export var MTEXT_RENDERER_PACKAGE = '@mlightcad/mtext-renderer';
38
38
  /** Private npm package that ships {@link DWG_PARSER_WORKER_FILE} / {@link DWG_PARSER_MAIN_FILE}. */
39
- export var DWG_CONVERTER_PACKAGE = '@mlight-cad/dwg-converter';
39
+ export var DWG_CONVERTER_PACKAGE = '@mlightcad/dwg-converter';
40
40
  //# sourceMappingURL=AcApWorkerAssets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcApWorkerAssets.js","sourceRoot":"","sources":["../../src/app/AcApWorkerAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,CAAC,IAAM,2BAA2B,GAAG,2BAA2B,CAAA;AAEtE;;;GAGG;AACH,MAAM,CAAC,IAAM,yBAAyB,GAAG,mBAAmB,CAAA;AAE5D,oEAAoE;AACpE,MAAM,CAAC,IAAM,0BAA0B,GAAG,0BAA0B,CAAA;AAEpE;;;GAGG;AACH,MAAM,CAAC,IAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE5D;;;GAGG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAExD,kEAAkE;AAClE,MAAM,CAAC,IAAM,0BAA0B,GAAG,+BAA+B,CAAA;AAEzE,iEAAiE;AACjE,MAAM,CAAC,IAAM,sBAAsB,GAAG,2BAA2B,CAAA;AAEjE,oGAAoG;AACpG,MAAM,CAAC,IAAM,qBAAqB,GAAG,2BAA2B,CAAA"}
1
+ {"version":3,"file":"AcApWorkerAssets.js","sourceRoot":"","sources":["../../src/app/AcApWorkerAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,CAAC,IAAM,2BAA2B,GAAG,2BAA2B,CAAA;AAEtE;;;GAGG;AACH,MAAM,CAAC,IAAM,yBAAyB,GAAG,mBAAmB,CAAA;AAE5D,oEAAoE;AACpE,MAAM,CAAC,IAAM,0BAA0B,GAAG,0BAA0B,CAAA;AAEpE;;;GAGG;AACH,MAAM,CAAC,IAAM,sBAAsB,GAAG,sBAAsB,CAAA;AAE5D;;;GAGG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAExD,kEAAkE;AAClE,MAAM,CAAC,IAAM,0BAA0B,GAAG,+BAA+B,CAAA;AAEzE,iEAAiE;AACjE,MAAM,CAAC,IAAM,sBAAsB,GAAG,2BAA2B,CAAA;AAEjE,oGAAoG;AACpG,MAAM,CAAC,IAAM,qBAAqB,GAAG,0BAA0B,CAAA"}
@@ -18,4 +18,5 @@ export type { AcApOpenDatabaseOptions, AcApOpenSysVars } from './AcApOpenDatabas
18
18
  export { AcApOpenViewMode } from './AcApOpenDatabaseOptions';
19
19
  export type { AcApOpenDocumentDefaultsResolver, AcApOpenFileDialogOptions } from './AcApOpenFileDialog';
20
20
  export { acapInstallOpenFileDialog, acapUninstallOpenFileDialog, acapUpdateOpenFileDialogOptions } from './AcApOpenFileDialog';
21
+ export * from './notification';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,YAAY,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,YAAY,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,YAAY,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,YAAY,EACV,gCAAgC,EAChC,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
package/lib/app/index.js CHANGED
@@ -16,4 +16,5 @@ export * from './AcApSettingManager';
16
16
  export * from './AcApLayerSessionState';
17
17
  export { AcApOpenViewMode } from './AcApOpenDatabaseOptions';
18
18
  export { acapInstallOpenFileDialog, acapUninstallOpenFileDialog, acapUpdateOpenFileDialogOptions } from './AcApOpenFileDialog';
19
+ export * from './notification';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAKvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAK5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAKvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAK5D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,130 @@
1
+ import type { AcApDocManager } from '../AcApDocManager';
2
+ import type { AcApNotificationCenter } from './AcApNotificationTypes';
3
+ /**
4
+ * Subscribes to engine events and forwards user-visible alerts into the active
5
+ * {@link AcApNotificationCenter}.
6
+ *
7
+ * Shared by the built-in DOM center and host overrides (e.g. cad-viewer).
8
+ * Notifications are tagged with the current {@link AcApDocSession.id}.
9
+ */
10
+ export declare class AcApNotificationEventBridge {
11
+ /** Document manager whose lifecycle events drive session scoping. */
12
+ private readonly _docManager;
13
+ /** Lazily resolves the active center (built-in or host override). */
14
+ private _getCenter;
15
+ /** Parser unknown-entity counts keyed by {@link AcApDocSession.id}. */
16
+ private readonly _pendingUnknownBySession;
17
+ /**
18
+ * Sessions that already received an unsupported-entity pass for the current
19
+ * open. Prevents tab switches from clearing and re-scanning (and from
20
+ * dropping warnings that depended solely on the one-shot PARSE stats).
21
+ */
22
+ private readonly _unsupportedNotifiedSessions;
23
+ /** Whether {@link install} has attached listeners. */
24
+ private _installed;
25
+ /**
26
+ * Builds options that stamp the active session id onto a new notification.
27
+ *
28
+ * @returns `{ sessionId }` when a session is active, otherwise `{}`.
29
+ */
30
+ private sessionOptions;
31
+ /**
32
+ * Pushes the manager's active session id into the center.
33
+ */
34
+ private syncActiveSession;
35
+ /**
36
+ * Drops per-session PARSE / analysis bookkeeping for a closed or reopened session.
37
+ *
38
+ * @param sessionId - Session to forget.
39
+ */
40
+ private forgetSession;
41
+ /**
42
+ * Handles generic `message` bus events and mirrors them into the center.
43
+ *
44
+ * @param params - Message text and severity.
45
+ */
46
+ private readonly _onMessage;
47
+ /**
48
+ * Handles fonts that failed to load from the remote repository.
49
+ *
50
+ * @param params - Failed font descriptors.
51
+ */
52
+ private readonly _onFontsNotLoaded;
53
+ /**
54
+ * Handles fonts that could not be found in the remote repository.
55
+ *
56
+ * @param params - Missing font names.
57
+ */
58
+ private readonly _onFontsNotFound;
59
+ /**
60
+ * Handles a single font required by the drawing that is unavailable at render time.
61
+ *
62
+ * Replaces any prior `font-missed` entry for the same font name.
63
+ *
64
+ * @param params - Font name and how many text objects require it.
65
+ */
66
+ private readonly _onFontNotFound;
67
+ /**
68
+ * Prunes resolved `font-missed` notifications when missed-data changes.
69
+ */
70
+ private readonly _onMissedDataChanged;
71
+ /**
72
+ * Handles failure to fetch the available-fonts catalog.
73
+ *
74
+ * @param params - Catalog URL that failed.
75
+ */
76
+ private readonly _onFailedToGetFonts;
77
+ /**
78
+ * Handles open-file failures and writes a persistent error notification.
79
+ *
80
+ * @param params - File name and structured error metadata.
81
+ */
82
+ private readonly _onFailedToOpenFile;
83
+ /**
84
+ * Captures `unknownEntityCount` from PARSE END for the active session.
85
+ *
86
+ * @param data - Open-file progress payload.
87
+ */
88
+ private readonly _onOpenFileProgress;
89
+ /**
90
+ * Resets unsupported-entity bookkeeping before a new open starts.
91
+ */
92
+ private readonly _onDocumentToBeOpened;
93
+ /**
94
+ * Syncs the active session when a document is created.
95
+ */
96
+ private readonly _onDocumentCreated;
97
+ /**
98
+ * Syncs the session and runs unsupported-entity analysis on first activation.
99
+ *
100
+ * Subsequent activations for the same open skip re-analysis.
101
+ */
102
+ private readonly _onDocumentActivated;
103
+ /**
104
+ * Clears the closed session's notifications and local analysis state.
105
+ *
106
+ * @param args - Document about to be destroyed.
107
+ */
108
+ private readonly _onDocumentToBeDestroyed;
109
+ /**
110
+ * @param docManager - Manager whose events and active session are observed.
111
+ * @param getCenter - Accessor for the currently installed notification center.
112
+ */
113
+ constructor(docManager: AcApDocManager, getCenter: () => AcApNotificationCenter);
114
+ /**
115
+ * Attaches event-bus and document-manager listeners. Idempotent.
116
+ */
117
+ install(): void;
118
+ /**
119
+ * Detaches all listeners and clears per-session analysis bookkeeping. Idempotent.
120
+ */
121
+ uninstall(): void;
122
+ /**
123
+ * Analyzes the current document for unsupported entities and writes a warning
124
+ * when {@link AcApUnsupportedDrawingAnalysis.shouldWarn} is true.
125
+ *
126
+ * Marks the active session as notified so later tab switches do not rescan.
127
+ */
128
+ private notifyUnsupportedEntities;
129
+ }
130
+ //# sourceMappingURL=AcApNotificationEventBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApNotificationEventBridge.d.ts","sourceRoot":"","sources":["../../../src/app/notification/AcApNotificationEventBridge.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAErE;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAA8B;IAChD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4B;IACrE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAoB;IACjE,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CA4B1B;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAWjC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAQhC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAqB/B;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAKpC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQnC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMnC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAgBnC;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAQrC;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAElC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CASpC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAMxC;IAED;;;OAGG;gBAED,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,sBAAsB;IAMzC;;OAEG;IACH,OAAO;IA6BP;;OAEG;IACH,SAAS;IA8BT;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;CAqClC"}
@@ -0,0 +1,309 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { eventBus } from '../../editor/global/eventBus';
13
+ import { acapAnalyzeUnsupportedDrawing } from '../../util/AcApAnalyzeUnsupportedDrawing';
14
+ import { AcApFontUtil } from '../../util/AcApFontUtil';
15
+ import { acapFormatFontsMissedReplacement } from '../../util/AcApFormatFontMissedMessage';
16
+ import { acapFormatUnsupportedEntitiesMessage, acapI18nTranslate } from '../../util/AcApFormatUnsupportedEntitiesMessage';
17
+ import { acapFormatOpenFileErrorMessage, acapFormatOpenFileErrorTitle } from '../../util/AcApOpenFileErrorMessage';
18
+ /**
19
+ * Subscribes to engine events and forwards user-visible alerts into the active
20
+ * {@link AcApNotificationCenter}.
21
+ *
22
+ * Shared by the built-in DOM center and host overrides (e.g. cad-viewer).
23
+ * Notifications are tagged with the current {@link AcApDocSession.id}.
24
+ */
25
+ var AcApNotificationEventBridge = /** @class */ (function () {
26
+ /**
27
+ * @param docManager - Manager whose events and active session are observed.
28
+ * @param getCenter - Accessor for the currently installed notification center.
29
+ */
30
+ function AcApNotificationEventBridge(docManager, getCenter) {
31
+ var _this = this;
32
+ /** Parser unknown-entity counts keyed by {@link AcApDocSession.id}. */
33
+ this._pendingUnknownBySession = new Map();
34
+ /**
35
+ * Sessions that already received an unsupported-entity pass for the current
36
+ * open. Prevents tab switches from clearing and re-scanning (and from
37
+ * dropping warnings that depended solely on the one-shot PARSE stats).
38
+ */
39
+ this._unsupportedNotifiedSessions = new Set();
40
+ /** Whether {@link install} has attached listeners. */
41
+ this._installed = false;
42
+ /**
43
+ * Handles generic `message` bus events and mirrors them into the center.
44
+ *
45
+ * @param params - Message text and severity.
46
+ */
47
+ this._onMessage = function (params) {
48
+ var center = _this._getCenter();
49
+ var title = params.type === 'error'
50
+ ? acapI18nTranslate('main.notification.title.systemError')
51
+ : params.type === 'warning'
52
+ ? acapI18nTranslate('main.notification.title.systemWarning')
53
+ : params.type === 'success'
54
+ ? acapI18nTranslate('main.notification.title.systemMessage')
55
+ : acapI18nTranslate('main.notification.title.systemInfo');
56
+ var options = _this.sessionOptions();
57
+ switch (params.type) {
58
+ case 'error':
59
+ center.error(title, params.message, options);
60
+ break;
61
+ case 'warning':
62
+ center.warning(title, params.message, options);
63
+ break;
64
+ case 'success':
65
+ center.success(title, params.message, options);
66
+ break;
67
+ default:
68
+ center.info(title, params.message, options);
69
+ break;
70
+ }
71
+ };
72
+ /**
73
+ * Handles fonts that failed to load from the remote repository.
74
+ *
75
+ * @param params - Failed font descriptors.
76
+ */
77
+ this._onFontsNotLoaded = function (params) {
78
+ var fontNames = params.fonts.map(function (font) { return font.fontName; });
79
+ _this._getCenter().error(acapI18nTranslate('main.notification.title.fontNotLoaded'), acapI18nTranslate('main.message.fontsNotLoaded', {
80
+ fonts: acapFormatFontsMissedReplacement(fontNames)
81
+ }), __assign({ source: 'font-missed', fontNames: fontNames, persistent: true }, _this.sessionOptions()));
82
+ };
83
+ /**
84
+ * Handles fonts that could not be found in the remote repository.
85
+ *
86
+ * @param params - Missing font names.
87
+ */
88
+ this._onFontsNotFound = function (params) {
89
+ _this._getCenter().warning(acapI18nTranslate('main.notification.title.fontNotFound'), acapI18nTranslate('main.message.fontsNotFound', {
90
+ fonts: acapFormatFontsMissedReplacement(params.fonts)
91
+ }), __assign({ source: 'font-missed', fontNames: params.fonts }, _this.sessionOptions()));
92
+ };
93
+ /**
94
+ * Handles a single font required by the drawing that is unavailable at render time.
95
+ *
96
+ * Replaces any prior `font-missed` entry for the same font name.
97
+ *
98
+ * @param params - Font name and how many text objects require it.
99
+ */
100
+ this._onFontNotFound = function (params) {
101
+ var fontName = params.fontName.trim();
102
+ if (!fontName)
103
+ return;
104
+ var center = _this._getCenter();
105
+ center.removeWhere(function (notification) {
106
+ var _a;
107
+ return notification.source === 'font-missed' &&
108
+ ((_a = notification.fontNames) === null || _a === void 0 ? void 0 : _a.includes(fontName)) === true;
109
+ });
110
+ center.warning(acapI18nTranslate('main.notification.title.fontNotFound'), acapI18nTranslate('main.message.fontMissedInDrawing', {
111
+ font: fontName,
112
+ count: params.count,
113
+ replacementFont: AcApFontUtil.getReplacementFontName(fontName)
114
+ }), __assign({ source: 'font-missed', fontNames: [fontName] }, _this.sessionOptions()));
115
+ };
116
+ /**
117
+ * Prunes resolved `font-missed` notifications when missed-data changes.
118
+ */
119
+ this._onMissedDataChanged = function () {
120
+ var missedFonts = Object.keys(_this._docManager.curView.missedData.fonts);
121
+ _this._getCenter().removeResolvedFontMissedNotifications(missedFonts);
122
+ };
123
+ /**
124
+ * Handles failure to fetch the available-fonts catalog.
125
+ *
126
+ * @param params - Catalog URL that failed.
127
+ */
128
+ this._onFailedToGetFonts = function (params) {
129
+ _this._getCenter().error(acapI18nTranslate('main.notification.title.systemError'), acapI18nTranslate('main.message.failedToGetAvaiableFonts', {
130
+ url: params.url
131
+ }), _this.sessionOptions());
132
+ };
133
+ /**
134
+ * Handles open-file failures and writes a persistent error notification.
135
+ *
136
+ * @param params - File name and structured error metadata.
137
+ */
138
+ this._onFailedToOpenFile = function (params) {
139
+ _this._getCenter().error(acapFormatOpenFileErrorTitle(params.errorCode), acapFormatOpenFileErrorMessage(params), _this.sessionOptions());
140
+ };
141
+ /**
142
+ * Captures `unknownEntityCount` from PARSE END for the active session.
143
+ *
144
+ * @param data - Open-file progress payload.
145
+ */
146
+ this._onOpenFileProgress = function (data) {
147
+ var _a;
148
+ if (data.stage === 'CONVERSION' &&
149
+ data.subStage === 'PARSE' &&
150
+ data.subStageStatus === 'END' &&
151
+ data.data) {
152
+ var stats = data.data;
153
+ var sessionId = _this._docManager.activeSessionId;
154
+ if (sessionId) {
155
+ _this._pendingUnknownBySession.set(sessionId, (_a = stats.unknownEntityCount) !== null && _a !== void 0 ? _a : 0);
156
+ }
157
+ }
158
+ };
159
+ /**
160
+ * Resets unsupported-entity bookkeeping before a new open starts.
161
+ */
162
+ this._onDocumentToBeOpened = function () {
163
+ _this.syncActiveSession();
164
+ var sessionId = _this._docManager.activeSessionId;
165
+ if (sessionId) {
166
+ _this.forgetSession(sessionId);
167
+ _this._pendingUnknownBySession.set(sessionId, 0);
168
+ }
169
+ _this._getCenter().removeBySource('unsupported-entities');
170
+ };
171
+ /**
172
+ * Syncs the active session when a document is created.
173
+ */
174
+ this._onDocumentCreated = function () {
175
+ _this.syncActiveSession();
176
+ };
177
+ /**
178
+ * Syncs the session and runs unsupported-entity analysis on first activation.
179
+ *
180
+ * Subsequent activations for the same open skip re-analysis.
181
+ */
182
+ this._onDocumentActivated = function () {
183
+ _this.syncActiveSession();
184
+ var sessionId = _this._docManager.activeSessionId;
185
+ // Tab switch / re-activate: keep the existing unsupported warning and skip
186
+ // another full-database proxy scan.
187
+ if (sessionId && _this._unsupportedNotifiedSessions.has(sessionId)) {
188
+ return;
189
+ }
190
+ _this.notifyUnsupportedEntities();
191
+ };
192
+ /**
193
+ * Clears the closed session's notifications and local analysis state.
194
+ *
195
+ * @param args - Document about to be destroyed.
196
+ */
197
+ this._onDocumentToBeDestroyed = function (args) {
198
+ var session = _this._docManager.sessionFor(args.doc);
199
+ if (session) {
200
+ _this.forgetSession(session.id);
201
+ _this._getCenter().clearSession(session.id);
202
+ }
203
+ };
204
+ this._docManager = docManager;
205
+ this._getCenter = getCenter;
206
+ }
207
+ /**
208
+ * Builds options that stamp the active session id onto a new notification.
209
+ *
210
+ * @returns `{ sessionId }` when a session is active, otherwise `{}`.
211
+ */
212
+ AcApNotificationEventBridge.prototype.sessionOptions = function () {
213
+ var sessionId = this._docManager.activeSessionId;
214
+ return sessionId ? { sessionId: sessionId } : {};
215
+ };
216
+ /**
217
+ * Pushes the manager's active session id into the center.
218
+ */
219
+ AcApNotificationEventBridge.prototype.syncActiveSession = function () {
220
+ this._getCenter().setActiveSession(this._docManager.activeSessionId);
221
+ };
222
+ /**
223
+ * Drops per-session PARSE / analysis bookkeeping for a closed or reopened session.
224
+ *
225
+ * @param sessionId - Session to forget.
226
+ */
227
+ AcApNotificationEventBridge.prototype.forgetSession = function (sessionId) {
228
+ this._pendingUnknownBySession.delete(sessionId);
229
+ this._unsupportedNotifiedSessions.delete(sessionId);
230
+ };
231
+ /**
232
+ * Attaches event-bus and document-manager listeners. Idempotent.
233
+ */
234
+ AcApNotificationEventBridge.prototype.install = function () {
235
+ if (this._installed)
236
+ return;
237
+ this._installed = true;
238
+ this.syncActiveSession();
239
+ eventBus.on('message', this._onMessage);
240
+ eventBus.on('fonts-not-loaded', this._onFontsNotLoaded);
241
+ eventBus.on('fonts-not-found', this._onFontsNotFound);
242
+ eventBus.on('font-not-found', this._onFontNotFound);
243
+ eventBus.on('missed-data-changed', this._onMissedDataChanged);
244
+ eventBus.on('failed-to-get-avaiable-fonts', this._onFailedToGetFonts);
245
+ eventBus.on('failed-to-open-file', this._onFailedToOpenFile);
246
+ eventBus.on('open-file-progress', this._onOpenFileProgress);
247
+ this._docManager.events.documentToBeOpened.addEventListener(this._onDocumentToBeOpened);
248
+ this._docManager.events.documentCreated.addEventListener(this._onDocumentCreated);
249
+ this._docManager.events.documentActivated.addEventListener(this._onDocumentActivated);
250
+ this._docManager.events.documentToBeDestroyed.addEventListener(this._onDocumentToBeDestroyed);
251
+ };
252
+ /**
253
+ * Detaches all listeners and clears per-session analysis bookkeeping. Idempotent.
254
+ */
255
+ AcApNotificationEventBridge.prototype.uninstall = function () {
256
+ if (!this._installed)
257
+ return;
258
+ this._installed = false;
259
+ eventBus.off('message', this._onMessage);
260
+ eventBus.off('fonts-not-loaded', this._onFontsNotLoaded);
261
+ eventBus.off('fonts-not-found', this._onFontsNotFound);
262
+ eventBus.off('font-not-found', this._onFontNotFound);
263
+ eventBus.off('missed-data-changed', this._onMissedDataChanged);
264
+ eventBus.off('failed-to-get-avaiable-fonts', this._onFailedToGetFonts);
265
+ eventBus.off('failed-to-open-file', this._onFailedToOpenFile);
266
+ eventBus.off('open-file-progress', this._onOpenFileProgress);
267
+ this._docManager.events.documentToBeOpened.removeEventListener(this._onDocumentToBeOpened);
268
+ this._docManager.events.documentCreated.removeEventListener(this._onDocumentCreated);
269
+ this._docManager.events.documentActivated.removeEventListener(this._onDocumentActivated);
270
+ this._docManager.events.documentToBeDestroyed.removeEventListener(this._onDocumentToBeDestroyed);
271
+ this._pendingUnknownBySession.clear();
272
+ this._unsupportedNotifiedSessions.clear();
273
+ };
274
+ /**
275
+ * Analyzes the current document for unsupported entities and writes a warning
276
+ * when {@link AcApUnsupportedDrawingAnalysis.shouldWarn} is true.
277
+ *
278
+ * Marks the active session as notified so later tab switches do not rescan.
279
+ */
280
+ AcApNotificationEventBridge.prototype.notifyUnsupportedEntities = function () {
281
+ var _a;
282
+ var doc = this._docManager.curDocument;
283
+ if (!doc)
284
+ return;
285
+ var sessionId = this._docManager.activeSessionId;
286
+ var unknownCount = sessionId
287
+ ? ((_a = this._pendingUnknownBySession.get(sessionId)) !== null && _a !== void 0 ? _a : 0)
288
+ : 0;
289
+ var classOnly = acapAnalyzeUnsupportedDrawing(doc.database, unknownCount, {
290
+ scanProxies: false
291
+ });
292
+ var analysis = classOnly.isTianzhengDrawing || classOnly.unknownEntityCount > 0
293
+ ? classOnly
294
+ : acapAnalyzeUnsupportedDrawing(doc.database, unknownCount, {
295
+ scanProxies: true
296
+ });
297
+ if (sessionId) {
298
+ this._unsupportedNotifiedSessions.add(sessionId);
299
+ }
300
+ var center = this._getCenter();
301
+ center.removeBySource('unsupported-entities');
302
+ if (!analysis.shouldWarn)
303
+ return;
304
+ center.warning(acapI18nTranslate('main.notification.title.parsingWarning'), acapFormatUnsupportedEntitiesMessage(analysis), __assign({ source: 'unsupported-entities', persistent: true }, this.sessionOptions()));
305
+ };
306
+ return AcApNotificationEventBridge;
307
+ }());
308
+ export { AcApNotificationEventBridge };
309
+ //# sourceMappingURL=AcApNotificationEventBridge.js.map