@mlightcad/cad-simple-viewer 1.5.6 → 1.5.7

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 (321) hide show
  1. package/README.md +66 -1
  2. package/dist/cad-simple-viewer.js +30394 -28405
  3. package/dist/cad-simple-viewer.umd.cjs +150 -158
  4. package/dist/dxf-parser-worker.js +796 -707
  5. package/lib/app/AcApContext.d.ts.map +1 -1
  6. package/lib/app/AcApContext.js +15 -5
  7. package/lib/app/AcApContext.js.map +1 -1
  8. package/lib/app/AcApDocManager.d.ts +56 -0
  9. package/lib/app/AcApDocManager.d.ts.map +1 -1
  10. package/lib/app/AcApDocManager.js +112 -14
  11. package/lib/app/AcApDocManager.js.map +1 -1
  12. package/lib/app/AcApDocument.d.ts +81 -0
  13. package/lib/app/AcApDocument.d.ts.map +1 -1
  14. package/lib/app/AcApDocument.js +154 -0
  15. package/lib/app/AcApDocument.js.map +1 -1
  16. package/lib/app/AcApLayerSessionState.d.ts +15 -0
  17. package/lib/app/AcApLayerSessionState.d.ts.map +1 -0
  18. package/lib/app/AcApLayerSessionState.js +2 -0
  19. package/lib/app/AcApLayerSessionState.js.map +1 -0
  20. package/lib/app/AcApOpenFileDialog.d.ts +35 -0
  21. package/lib/app/AcApOpenFileDialog.d.ts.map +1 -0
  22. package/lib/app/AcApOpenFileDialog.js +192 -0
  23. package/lib/app/AcApOpenFileDialog.js.map +1 -0
  24. package/lib/app/AcApWebworkerReadiness.d.ts +18 -0
  25. package/lib/app/AcApWebworkerReadiness.d.ts.map +1 -0
  26. package/lib/app/AcApWebworkerReadiness.js +126 -0
  27. package/lib/app/AcApWebworkerReadiness.js.map +1 -0
  28. package/lib/app/index.d.ts +3 -0
  29. package/lib/app/index.d.ts.map +1 -1
  30. package/lib/app/index.js +2 -0
  31. package/lib/app/index.js.map +1 -1
  32. package/lib/command/AcApOpenCmd.d.ts +3 -22
  33. package/lib/command/AcApOpenCmd.d.ts.map +1 -1
  34. package/lib/command/AcApOpenCmd.js +3 -22
  35. package/lib/command/AcApOpenCmd.js.map +1 -1
  36. package/lib/command/AcApRedoCmd.d.ts +10 -0
  37. package/lib/command/AcApRedoCmd.d.ts.map +1 -0
  38. package/lib/command/AcApRedoCmd.js +85 -0
  39. package/lib/command/AcApRedoCmd.js.map +1 -0
  40. package/lib/command/AcApUndoCmd.d.ts +10 -0
  41. package/lib/command/AcApUndoCmd.d.ts.map +1 -0
  42. package/lib/command/AcApUndoCmd.js +85 -0
  43. package/lib/command/AcApUndoCmd.js.map +1 -0
  44. package/lib/command/draw/AcApEllipseCmd.d.ts.map +1 -1
  45. package/lib/command/draw/AcApEllipseCmd.js +12 -4
  46. package/lib/command/draw/AcApEllipseCmd.js.map +1 -1
  47. package/lib/command/draw/AcApLineCmd.d.ts.map +1 -1
  48. package/lib/command/draw/AcApLineCmd.js +8 -2
  49. package/lib/command/draw/AcApLineCmd.js.map +1 -1
  50. package/lib/command/draw/AcApMLineCmd.d.ts.map +1 -1
  51. package/lib/command/draw/AcApMLineCmd.js +2 -0
  52. package/lib/command/draw/AcApMLineCmd.js.map +1 -1
  53. package/lib/command/draw/AcApPolylineCmd.d.ts.map +1 -1
  54. package/lib/command/draw/AcApPolylineCmd.js +3 -0
  55. package/lib/command/draw/AcApPolylineCmd.js.map +1 -1
  56. package/lib/command/draw/AcApSplineCmd.d.ts.map +1 -1
  57. package/lib/command/draw/AcApSplineCmd.js +2 -0
  58. package/lib/command/draw/AcApSplineCmd.js.map +1 -1
  59. package/lib/command/index.d.ts +2 -0
  60. package/lib/command/index.d.ts.map +1 -1
  61. package/lib/command/index.js +2 -0
  62. package/lib/command/index.js.map +1 -1
  63. package/lib/command/layer/AcApLayerCmd.d.ts +3 -187
  64. package/lib/command/layer/AcApLayerCmd.d.ts.map +1 -1
  65. package/lib/command/layer/AcApLayerCmd.js +52 -376
  66. package/lib/command/layer/AcApLayerCmd.js.map +1 -1
  67. package/lib/command/layer/AcApLayerCurCmd.d.ts +2 -27
  68. package/lib/command/layer/AcApLayerCurCmd.d.ts.map +1 -1
  69. package/lib/command/layer/AcApLayerCurCmd.js +18 -67
  70. package/lib/command/layer/AcApLayerCurCmd.js.map +1 -1
  71. package/lib/command/layer/AcApLayerDelCmd.d.ts +2 -25
  72. package/lib/command/layer/AcApLayerDelCmd.d.ts.map +1 -1
  73. package/lib/command/layer/AcApLayerDelCmd.js +22 -155
  74. package/lib/command/layer/AcApLayerDelCmd.js.map +1 -1
  75. package/lib/command/layer/AcApLayerFreezeCmd.d.ts +2 -9
  76. package/lib/command/layer/AcApLayerFreezeCmd.d.ts.map +1 -1
  77. package/lib/command/layer/AcApLayerFreezeCmd.js +27 -39
  78. package/lib/command/layer/AcApLayerFreezeCmd.js.map +1 -1
  79. package/lib/command/layer/AcApLayerIsoCmd.d.ts +2 -24
  80. package/lib/command/layer/AcApLayerIsoCmd.d.ts.map +1 -1
  81. package/lib/command/layer/AcApLayerIsoCmd.js +14 -183
  82. package/lib/command/layer/AcApLayerIsoCmd.js.map +1 -1
  83. package/lib/command/layer/AcApLayerLockCmd.d.ts +2 -33
  84. package/lib/command/layer/AcApLayerLockCmd.d.ts.map +1 -1
  85. package/lib/command/layer/AcApLayerLockCmd.js +18 -55
  86. package/lib/command/layer/AcApLayerLockCmd.js.map +1 -1
  87. package/lib/command/layer/AcApLayerMutationCmd.d.ts +13 -0
  88. package/lib/command/layer/AcApLayerMutationCmd.d.ts.map +1 -0
  89. package/lib/command/layer/AcApLayerMutationCmd.js +42 -0
  90. package/lib/command/layer/AcApLayerMutationCmd.js.map +1 -0
  91. package/lib/command/layer/AcApLayerOffCmd.d.ts +2 -2
  92. package/lib/command/layer/AcApLayerOffCmd.d.ts.map +1 -1
  93. package/lib/command/layer/AcApLayerOffCmd.js +27 -28
  94. package/lib/command/layer/AcApLayerOffCmd.js.map +1 -1
  95. package/lib/command/layer/AcApLayerOnCmd.d.ts +2 -15
  96. package/lib/command/layer/AcApLayerOnCmd.d.ts.map +1 -1
  97. package/lib/command/layer/AcApLayerOnCmd.js +6 -49
  98. package/lib/command/layer/AcApLayerOnCmd.js.map +1 -1
  99. package/lib/command/layer/AcApLayerPCmd.d.ts +2 -68
  100. package/lib/command/layer/AcApLayerPCmd.d.ts.map +1 -1
  101. package/lib/command/layer/AcApLayerPCmd.js +4 -152
  102. package/lib/command/layer/AcApLayerPCmd.js.map +1 -1
  103. package/lib/command/layer/AcApLayerThawCmd.d.ts +2 -22
  104. package/lib/command/layer/AcApLayerThawCmd.d.ts.map +1 -1
  105. package/lib/command/layer/AcApLayerThawCmd.js +6 -61
  106. package/lib/command/layer/AcApLayerThawCmd.js.map +1 -1
  107. package/lib/command/layer/AcApLayerUnisoCmd.d.ts +2 -37
  108. package/lib/command/layer/AcApLayerUnisoCmd.d.ts.map +1 -1
  109. package/lib/command/layer/AcApLayerUnisoCmd.js +7 -108
  110. package/lib/command/layer/AcApLayerUnisoCmd.js.map +1 -1
  111. package/lib/command/layer/AcApLayerUnlockCmd.d.ts +2 -33
  112. package/lib/command/layer/AcApLayerUnlockCmd.d.ts.map +1 -1
  113. package/lib/command/layer/AcApLayerUnlockCmd.js +18 -55
  114. package/lib/command/layer/AcApLayerUnlockCmd.js.map +1 -1
  115. package/lib/command/modify/AcApCopyCmd.d.ts +12 -0
  116. package/lib/command/modify/AcApCopyCmd.d.ts.map +1 -1
  117. package/lib/command/modify/AcApCopyCmd.js +67 -177
  118. package/lib/command/modify/AcApCopyCmd.js.map +1 -1
  119. package/lib/command/modify/AcApCopyPreviewJig.d.ts +21 -0
  120. package/lib/command/modify/AcApCopyPreviewJig.d.ts.map +1 -0
  121. package/lib/command/modify/AcApCopyPreviewJig.js +61 -0
  122. package/lib/command/modify/AcApCopyPreviewJig.js.map +1 -0
  123. package/lib/command/modify/AcApEraseCmd.d.ts +0 -6
  124. package/lib/command/modify/AcApEraseCmd.d.ts.map +1 -1
  125. package/lib/command/modify/AcApEraseCmd.js +11 -38
  126. package/lib/command/modify/AcApEraseCmd.js.map +1 -1
  127. package/lib/command/modify/AcApHideObjectsCmd.d.ts +0 -7
  128. package/lib/command/modify/AcApHideObjectsCmd.d.ts.map +1 -1
  129. package/lib/command/modify/AcApHideObjectsCmd.js +0 -7
  130. package/lib/command/modify/AcApHideObjectsCmd.js.map +1 -1
  131. package/lib/command/modify/AcApMoveCmd.d.ts +0 -6
  132. package/lib/command/modify/AcApMoveCmd.d.ts.map +1 -1
  133. package/lib/command/modify/AcApMoveCmd.js +26 -105
  134. package/lib/command/modify/AcApMoveCmd.js.map +1 -1
  135. package/lib/command/modify/AcApMovePreviewJig.d.ts +18 -0
  136. package/lib/command/modify/AcApMovePreviewJig.d.ts.map +1 -0
  137. package/lib/command/modify/AcApMovePreviewJig.js +45 -0
  138. package/lib/command/modify/AcApMovePreviewJig.js.map +1 -0
  139. package/lib/command/modify/AcApOffsetCmd.d.ts.map +1 -1
  140. package/lib/command/modify/AcApOffsetCmd.js +5 -33
  141. package/lib/command/modify/AcApOffsetCmd.js.map +1 -1
  142. package/lib/command/modify/AcApRotateCmd.d.ts +2 -2
  143. package/lib/command/modify/AcApRotateCmd.d.ts.map +1 -1
  144. package/lib/command/modify/AcApRotateCmd.js +37 -200
  145. package/lib/command/modify/AcApRotateCmd.js.map +1 -1
  146. package/lib/command/modify/AcApRotatePreviewJig.d.ts +47 -0
  147. package/lib/command/modify/AcApRotatePreviewJig.d.ts.map +1 -0
  148. package/lib/command/modify/AcApRotatePreviewJig.js +97 -0
  149. package/lib/command/modify/AcApRotatePreviewJig.js.map +1 -0
  150. package/lib/editor/command/AcEdCommand.d.ts +8 -0
  151. package/lib/editor/command/AcEdCommand.d.ts.map +1 -1
  152. package/lib/editor/command/AcEdCommand.js +48 -5
  153. package/lib/editor/command/AcEdCommand.js.map +1 -1
  154. package/lib/editor/global/eventBus.d.ts +10 -2
  155. package/lib/editor/global/eventBus.d.ts.map +1 -1
  156. package/lib/editor/global/eventBus.js.map +1 -1
  157. package/lib/editor/grip/AcEdGripAppearance.d.ts +18 -0
  158. package/lib/editor/grip/AcEdGripAppearance.d.ts.map +1 -0
  159. package/lib/editor/grip/AcEdGripAppearance.js +30 -0
  160. package/lib/editor/grip/AcEdGripAppearance.js.map +1 -0
  161. package/lib/editor/grip/AcEdGripEditSession.d.ts.map +1 -1
  162. package/lib/editor/grip/AcEdGripEditSession.js +9 -2
  163. package/lib/editor/grip/AcEdGripEditSession.js.map +1 -1
  164. package/lib/editor/grip/AcEdGripHandle.d.ts +3 -2
  165. package/lib/editor/grip/AcEdGripHandle.d.ts.map +1 -1
  166. package/lib/editor/grip/AcEdGripHandle.js +9 -6
  167. package/lib/editor/grip/AcEdGripHandle.js.map +1 -1
  168. package/lib/editor/grip/AcEdGripManager.d.ts +13 -1
  169. package/lib/editor/grip/AcEdGripManager.d.ts.map +1 -1
  170. package/lib/editor/grip/AcEdGripManager.js +54 -14
  171. package/lib/editor/grip/AcEdGripManager.js.map +1 -1
  172. package/lib/editor/input/AcEdBatchPreview.d.ts +96 -0
  173. package/lib/editor/input/AcEdBatchPreview.d.ts.map +1 -0
  174. package/lib/editor/input/AcEdBatchPreview.js +125 -0
  175. package/lib/editor/input/AcEdBatchPreview.js.map +1 -0
  176. package/lib/editor/input/AcEdPreviewJig.d.ts +1 -1
  177. package/lib/editor/input/AcEdPreviewJig.d.ts.map +1 -1
  178. package/lib/editor/input/AcEdPreviewJig.js +14 -0
  179. package/lib/editor/input/AcEdPreviewJig.js.map +1 -1
  180. package/lib/editor/input/AcEdSelectionPreviewJig.d.ts +109 -0
  181. package/lib/editor/input/AcEdSelectionPreviewJig.d.ts.map +1 -0
  182. package/lib/editor/input/AcEdSelectionPreviewJig.js +185 -0
  183. package/lib/editor/input/AcEdSelectionPreviewJig.js.map +1 -0
  184. package/lib/editor/input/index.d.ts +2 -0
  185. package/lib/editor/input/index.d.ts.map +1 -1
  186. package/lib/editor/input/index.js +2 -0
  187. package/lib/editor/input/index.js.map +1 -1
  188. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +7 -0
  189. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -1
  190. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +17 -0
  191. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -1
  192. package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts.map +1 -1
  193. package/lib/editor/input/ui/AcEdFloatingInputBox.js +10 -2
  194. package/lib/editor/input/ui/AcEdFloatingInputBox.js.map +1 -1
  195. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -1
  196. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +9 -4
  197. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -1
  198. package/lib/editor/view/AcEdBaseView.d.ts +37 -2
  199. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  200. package/lib/editor/view/AcEdBaseView.js +14 -12
  201. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  202. package/lib/editor/view/AcEdSpatialQueryResult.d.ts +28 -0
  203. package/lib/editor/view/AcEdSpatialQueryResult.d.ts.map +1 -1
  204. package/lib/editor/view/AcEdSpatialQueryResult.js +65 -1
  205. package/lib/editor/view/AcEdSpatialQueryResult.js.map +1 -1
  206. package/lib/i18n/AcApI18n.d.ts +42 -0
  207. package/lib/i18n/AcApI18n.d.ts.map +1 -1
  208. package/lib/i18n/AcApI18n.js +56 -4
  209. package/lib/i18n/AcApI18n.js.map +1 -1
  210. package/lib/i18n/en/command.d.ts +23 -0
  211. package/lib/i18n/en/command.d.ts.map +1 -1
  212. package/lib/i18n/en/command.js +23 -0
  213. package/lib/i18n/en/command.js.map +1 -1
  214. package/lib/i18n/zh/command.d.ts +23 -0
  215. package/lib/i18n/zh/command.d.ts.map +1 -1
  216. package/lib/i18n/zh/command.js +23 -0
  217. package/lib/i18n/zh/command.js.map +1 -1
  218. package/lib/index.d.ts +1 -0
  219. package/lib/index.d.ts.map +1 -1
  220. package/lib/index.js +1 -0
  221. package/lib/index.js.map +1 -1
  222. package/lib/service/AcApEntitySelection.d.ts +42 -0
  223. package/lib/service/AcApEntitySelection.d.ts.map +1 -0
  224. package/lib/service/AcApEntitySelection.js +156 -0
  225. package/lib/service/AcApEntitySelection.js.map +1 -0
  226. package/lib/service/AcApEntityService.d.ts +115 -0
  227. package/lib/service/AcApEntityService.d.ts.map +1 -0
  228. package/lib/service/AcApEntityService.js +194 -0
  229. package/lib/service/AcApEntityService.js.map +1 -0
  230. package/lib/{command/layer → service}/AcApLayerIsoState.d.ts +6 -24
  231. package/lib/service/AcApLayerIsoState.d.ts.map +1 -0
  232. package/lib/service/AcApLayerIsoState.js +28 -0
  233. package/lib/service/AcApLayerIsoState.js.map +1 -0
  234. package/lib/service/AcApLayerService.d.ts +400 -0
  235. package/lib/service/AcApLayerService.d.ts.map +1 -0
  236. package/lib/service/AcApLayerService.js +1240 -0
  237. package/lib/service/AcApLayerService.js.map +1 -0
  238. package/lib/service/AcApLayerStore.d.ts +198 -0
  239. package/lib/service/AcApLayerStore.d.ts.map +1 -0
  240. package/lib/service/AcApLayerStore.js +335 -0
  241. package/lib/service/AcApLayerStore.js.map +1 -0
  242. package/lib/service/AcApServiceEdit.d.ts +18 -0
  243. package/lib/service/AcApServiceEdit.d.ts.map +1 -0
  244. package/lib/service/AcApServiceEdit.js +34 -0
  245. package/lib/service/AcApServiceEdit.js.map +1 -0
  246. package/lib/service/index.d.ts +16 -0
  247. package/lib/service/index.d.ts.map +1 -0
  248. package/lib/service/index.js +16 -0
  249. package/lib/service/index.js.map +1 -0
  250. package/lib/service/types.d.ts +116 -0
  251. package/lib/service/types.d.ts.map +1 -0
  252. package/lib/service/types.js +5 -0
  253. package/lib/service/types.js.map +1 -0
  254. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +21 -6
  255. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  256. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +56 -10
  257. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  258. package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts +2 -2
  259. package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts.map +1 -1
  260. package/lib/spatialIndex/AcTrLinearSpatialIndex.js +9 -3
  261. package/lib/spatialIndex/AcTrLinearSpatialIndex.js.map +1 -1
  262. package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts +2 -2
  263. package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts.map +1 -1
  264. package/lib/spatialIndex/AcTrRBushSpatialIndex.js +19 -5
  265. package/lib/spatialIndex/AcTrRBushSpatialIndex.js.map +1 -1
  266. package/lib/spatialIndex/AcTrSpatialIndex.d.ts +10 -1
  267. package/lib/spatialIndex/AcTrSpatialIndex.d.ts.map +1 -1
  268. package/lib/spatialIndex/AcTrSpatialIndex.js +7 -1
  269. package/lib/spatialIndex/AcTrSpatialIndex.js.map +1 -1
  270. package/lib/util/AcApDatabaseEdit.d.ts +11 -0
  271. package/lib/util/AcApDatabaseEdit.d.ts.map +1 -0
  272. package/lib/util/AcApDatabaseEdit.js +20 -0
  273. package/lib/util/AcApDatabaseEdit.js.map +1 -0
  274. package/lib/util/AcApGeTransform.d.ts +10 -0
  275. package/lib/util/AcApGeTransform.d.ts.map +1 -0
  276. package/lib/util/AcApGeTransform.js +15 -0
  277. package/lib/util/AcApGeTransform.js.map +1 -0
  278. package/lib/util/index.d.ts +2 -0
  279. package/lib/util/index.d.ts.map +1 -1
  280. package/lib/util/index.js +2 -0
  281. package/lib/util/index.js.map +1 -1
  282. package/lib/view/AcEdViewKeyHandler.d.ts +32 -0
  283. package/lib/view/AcEdViewKeyHandler.d.ts.map +1 -0
  284. package/lib/view/AcEdViewKeyHandler.js +101 -0
  285. package/lib/view/AcEdViewKeyHandler.js.map +1 -0
  286. package/lib/view/AcTrGroupWcsBboxAssert.d.ts +16 -0
  287. package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
  288. package/lib/view/AcTrGroupWcsBboxAssert.js +19 -0
  289. package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
  290. package/lib/view/AcTrInheritedLayerMaterialMapper.d.ts +49 -0
  291. package/lib/view/AcTrInheritedLayerMaterialMapper.d.ts.map +1 -0
  292. package/lib/view/AcTrInheritedLayerMaterialMapper.js +138 -0
  293. package/lib/view/AcTrInheritedLayerMaterialMapper.js.map +1 -0
  294. package/lib/view/AcTrLayer.d.ts +26 -2
  295. package/lib/view/AcTrLayer.d.ts.map +1 -1
  296. package/lib/view/AcTrLayer.js +64 -0
  297. package/lib/view/AcTrLayer.js.map +1 -1
  298. package/lib/view/AcTrLayerAppearanceController.d.ts +55 -0
  299. package/lib/view/AcTrLayerAppearanceController.d.ts.map +1 -0
  300. package/lib/view/AcTrLayerAppearanceController.js +86 -0
  301. package/lib/view/AcTrLayerAppearanceController.js.map +1 -0
  302. package/lib/view/AcTrLayout.d.ts +36 -1
  303. package/lib/view/AcTrLayout.d.ts.map +1 -1
  304. package/lib/view/AcTrLayout.js +160 -14
  305. package/lib/view/AcTrLayout.js.map +1 -1
  306. package/lib/view/AcTrScene.d.ts +47 -1
  307. package/lib/view/AcTrScene.d.ts.map +1 -1
  308. package/lib/view/AcTrScene.js +78 -3
  309. package/lib/view/AcTrScene.js.map +1 -1
  310. package/lib/view/AcTrView2d.d.ts +50 -53
  311. package/lib/view/AcTrView2d.d.ts.map +1 -1
  312. package/lib/view/AcTrView2d.js +195 -312
  313. package/lib/view/AcTrView2d.js.map +1 -1
  314. package/lib/view/index.d.ts +3 -0
  315. package/lib/view/index.d.ts.map +1 -1
  316. package/lib/view/index.js +3 -0
  317. package/lib/view/index.js.map +1 -1
  318. package/package.json +7 -7
  319. package/lib/command/layer/AcApLayerIsoState.d.ts.map +0 -1
  320. package/lib/command/layer/AcApLayerIsoState.js +0 -53
  321. package/lib/command/layer/AcApLayerIsoState.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { AcDbDatabase } from '@mlightcad/data-model';
2
+ /**
3
+ * Notifies UI listeners that undo/redo availability may have changed.
4
+ */
5
+ export declare function acapNotifyUndoStackChanged(): void;
6
+ /**
7
+ * Application-layer shortcut for {@link AcDbDatabase.runDatabaseEdit} that also
8
+ * notifies UI listeners when a new undo mark is created.
9
+ */
10
+ export declare function acapRunDatabaseEdit(db: AcDbDatabase, label: string, fn: () => void): void;
11
+ //# sourceMappingURL=AcApDatabaseEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApDatabaseEdit.d.ts","sourceRoot":"","sources":["../../src/util/AcApDatabaseEdit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,IAAI,GACb,IAAI,CAMN"}
@@ -0,0 +1,20 @@
1
+ import { eventBus } from '../editor/global/eventBus';
2
+ /**
3
+ * Notifies UI listeners that undo/redo availability may have changed.
4
+ */
5
+ export function acapNotifyUndoStackChanged() {
6
+ eventBus.emit('undo-stack-changed', {});
7
+ }
8
+ /**
9
+ * Application-layer shortcut for {@link AcDbDatabase.runDatabaseEdit} that also
10
+ * notifies UI listeners when a new undo mark is created.
11
+ */
12
+ export function acapRunDatabaseEdit(db, label, fn) {
13
+ var _a, _b;
14
+ var wasRecording = (_b = (_a = db.isUndoRecording) === null || _a === void 0 ? void 0 : _a.call(db)) !== null && _b !== void 0 ? _b : false;
15
+ db.runDatabaseEdit(label, fn);
16
+ if (!wasRecording) {
17
+ acapNotifyUndoStackChanged();
18
+ }
19
+ }
20
+ //# sourceMappingURL=AcApDatabaseEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApDatabaseEdit.js","sourceRoot":"","sources":["../../src/util/AcApDatabaseEdit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,KAAa,EACb,EAAc;;IAEd,IAAM,YAAY,GAAG,MAAA,MAAA,EAAE,CAAC,eAAe,kDAAI,mCAAI,KAAK,CAAA;IACpD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,0BAA0B,EAAE,CAAA;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AcGeMatrix3d, AcGePoint3dLike } from '@mlightcad/data-model';
2
+ /**
3
+ * Builds a world-space rotation matrix around a given base point.
4
+ *
5
+ * @param basePoint - Rotation origin.
6
+ * @param angleRad - Rotation angle in radians.
7
+ * @returns Composite transform that rotates around `basePoint`.
8
+ */
9
+ export declare function createRotationMatrix(basePoint: AcGePoint3dLike, angleRad: number): AcGeMatrix3d;
10
+ //# sourceMappingURL=AcApGeTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApGeTransform.d.ts","sourceRoot":"","sources":["../../src/util/AcApGeTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,MAAM,gBAYjB"}
@@ -0,0 +1,15 @@
1
+ import { AcGeMatrix3d } from '@mlightcad/data-model';
2
+ /**
3
+ * Builds a world-space rotation matrix around a given base point.
4
+ *
5
+ * @param basePoint - Rotation origin.
6
+ * @param angleRad - Rotation angle in radians.
7
+ * @returns Composite transform that rotates around `basePoint`.
8
+ */
9
+ export function createRotationMatrix(basePoint, angleRad) {
10
+ return new AcGeMatrix3d()
11
+ .makeTranslation(basePoint.x, basePoint.y, basePoint.z)
12
+ .multiply(new AcGeMatrix3d().makeRotationZ(angleRad))
13
+ .multiply(new AcGeMatrix3d().makeTranslation(-basePoint.x, -basePoint.y, -basePoint.z));
14
+ }
15
+ //# sourceMappingURL=AcApGeTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApGeTransform.js","sourceRoot":"","sources":["../../src/util/AcApGeTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,uBAAuB,CAAA;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA0B,EAC1B,QAAgB;IAEhB,OAAO,IAAI,YAAY,EAAE;SACtB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;SACtD,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACpD,QAAQ,CACP,IAAI,YAAY,EAAE,CAAC,eAAe,CAChC,CAAC,SAAS,CAAC,CAAC,EACZ,CAAC,SAAS,CAAC,CAAC,EACZ,CAAC,SAAS,CAAC,CAAC,CACb,CACF,CAAA;AACL,CAAC"}
@@ -1,3 +1,5 @@
1
+ export * from './AcApDatabaseEdit';
2
+ export * from './AcApGeTransform';
1
3
  export * from './AcApExportFileNameUtil';
2
4
  export * from './AcApFontUtil';
3
5
  export * from './AcApMeasurementElementGenerator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
package/lib/util/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './AcApDatabaseEdit';
2
+ export * from './AcApGeTransform';
1
3
  export * from './AcApExportFileNameUtil';
2
4
  export * from './AcApFontUtil';
3
5
  export * from './AcApMeasurementElementGenerator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,32 @@
1
+ import type { AcTrView2d } from './AcTrView2d';
2
+ /**
3
+ * Document-level undo/redo shortcut resolved from a keyboard event.
4
+ *
5
+ * - Windows: Ctrl+Z (undo), Ctrl+Y (redo)
6
+ * - macOS: Cmd+Z (undo), Shift+Cmd+Z (redo)
7
+ *
8
+ * Ctrl/Cmd+Shift+Z is also accepted as redo on Windows for convenience.
9
+ */
10
+ export type AcEdUndoRedoShortcut = 'undo' | 'redo';
11
+ /**
12
+ * Handles global keyboard shortcuts for a CAD view.
13
+ *
14
+ * Shortcuts are suppressed while the user is typing in editable fields, during
15
+ * IME composition, while a command is acquiring input, or while MText is being
16
+ * edited inline.
17
+ */
18
+ export declare class AcEdViewKeyHandler {
19
+ private readonly view;
20
+ private static readonly COMMAND_LINE_INPUT_CLASS;
21
+ constructor(view: AcTrView2d);
22
+ /**
23
+ * Handles a document `keydown` event for global view shortcuts.
24
+ *
25
+ * @returns `true` when the event was consumed and default action prevented.
26
+ */
27
+ handleKeyDown(e: KeyboardEvent): boolean;
28
+ private resolveUndoRedoShortcut;
29
+ private shouldIgnoreEditableTargetShortcut;
30
+ private shouldHandleUndoRedoShortcut;
31
+ }
32
+ //# sourceMappingURL=AcEdViewKeyHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdViewKeyHandler.d.ts","sourceRoot":"","sources":["../../src/view/AcEdViewKeyHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAgB;gBAEnC,IAAI,EAAE,UAAU;IAE7C;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IA0CxC,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,kCAAkC;IAmB1C,OAAO,CAAC,4BAA4B;CA4BrC"}
@@ -0,0 +1,101 @@
1
+ import { AcApDocManager } from '../app';
2
+ import { AcEdMTextEditor } from '../editor/input/ui/AcEdMTextEditor';
3
+ /**
4
+ * Handles global keyboard shortcuts for a CAD view.
5
+ *
6
+ * Shortcuts are suppressed while the user is typing in editable fields, during
7
+ * IME composition, while a command is acquiring input, or while MText is being
8
+ * edited inline.
9
+ */
10
+ var AcEdViewKeyHandler = /** @class */ (function () {
11
+ function AcEdViewKeyHandler(view) {
12
+ this.view = view;
13
+ }
14
+ /**
15
+ * Handles a document `keydown` event for global view shortcuts.
16
+ *
17
+ * @returns `true` when the event was consumed and default action prevented.
18
+ */
19
+ AcEdViewKeyHandler.prototype.handleKeyDown = function (e) {
20
+ var undoRedoShortcut = this.resolveUndoRedoShortcut(e);
21
+ var ignoreEditableTarget = this.shouldIgnoreEditableTargetShortcut(e);
22
+ if (ignoreEditableTarget && !undoRedoShortcut) {
23
+ return false;
24
+ }
25
+ if (undoRedoShortcut) {
26
+ if (!this.shouldHandleUndoRedoShortcut(e) ||
27
+ AcEdMTextEditor.getActiveInputBox() ||
28
+ this.view.editor.isActive) {
29
+ return false;
30
+ }
31
+ AcApDocManager.instance.sendStringToExecute(undoRedoShortcut);
32
+ e.preventDefault();
33
+ return true;
34
+ }
35
+ switch (e.code) {
36
+ case 'Escape':
37
+ this.view.selectionSet.clear();
38
+ return false;
39
+ case 'Delete':
40
+ case 'Backspace':
41
+ // Only dispatch erase when no command is currently active.
42
+ // Dispatching erase mid-command (e.g. while LINE awaits the next
43
+ // point) corrupts the active command's input pipeline because
44
+ // sendStringToExecute clears scripted inputs unconditionally.
45
+ if (!this.view.editor.isActive) {
46
+ AcApDocManager.instance.sendStringToExecute('erase');
47
+ }
48
+ return false;
49
+ }
50
+ return false;
51
+ };
52
+ AcEdViewKeyHandler.prototype.resolveUndoRedoShortcut = function (e) {
53
+ if (!e.ctrlKey && !e.metaKey) {
54
+ return null;
55
+ }
56
+ if (e.code === 'KeyY') {
57
+ return 'redo';
58
+ }
59
+ if (e.code === 'KeyZ') {
60
+ return e.shiftKey ? 'redo' : 'undo';
61
+ }
62
+ return null;
63
+ };
64
+ AcEdViewKeyHandler.prototype.shouldIgnoreEditableTargetShortcut = function (e) {
65
+ if (e.isComposing || e.keyCode === 229) {
66
+ return true;
67
+ }
68
+ var target = e.target;
69
+ if ((target === null || target === void 0 ? void 0 : target.tagName) === 'TEXTAREA') {
70
+ return true;
71
+ }
72
+ if (target === null || target === void 0 ? void 0 : target.isContentEditable) {
73
+ return true;
74
+ }
75
+ return (target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT';
76
+ };
77
+ AcEdViewKeyHandler.prototype.shouldHandleUndoRedoShortcut = function (e) {
78
+ if (e.isComposing || e.keyCode === 229) {
79
+ return false;
80
+ }
81
+ var target = e.target;
82
+ if ((target === null || target === void 0 ? void 0 : target.tagName) === 'TEXTAREA') {
83
+ return false;
84
+ }
85
+ if (target === null || target === void 0 ? void 0 : target.isContentEditable) {
86
+ return false;
87
+ }
88
+ if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT') {
89
+ var input = target;
90
+ if (input.classList.contains(AcEdViewKeyHandler.COMMAND_LINE_INPUT_CLASS)) {
91
+ return input.value.trim() === '' && !input.readOnly;
92
+ }
93
+ return false;
94
+ }
95
+ return true;
96
+ };
97
+ AcEdViewKeyHandler.COMMAND_LINE_INPUT_CLASS = 'ml-cli-text';
98
+ return AcEdViewKeyHandler;
99
+ }());
100
+ export { AcEdViewKeyHandler };
101
+ //# sourceMappingURL=AcEdViewKeyHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcEdViewKeyHandler.js","sourceRoot":"","sources":["../../src/view/AcEdViewKeyHandler.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,24 @@ export interface AcTrGroupWcsBboxLike {
9
9
  maxY: number;
10
10
  }>;
11
11
  }
12
+ /**
13
+ * Tests whether a 2D axis-aligned box has finite extents.
14
+ *
15
+ * Deferred MText/Shape geometry can seed `±Infinity` placeholders in
16
+ * {@link AcTrGroup.wcsChildBoxes}; those entries must be skipped when unioning
17
+ * bounds for spatial indexing.
18
+ */
19
+ export declare function isFiniteSpatialBBox(box: {
20
+ minX: number;
21
+ minY: number;
22
+ maxX: number;
23
+ maxY: number;
24
+ }): boolean;
12
25
  /**
13
26
  * Unions per-child WCS boxes into one axis-aligned WCS box.
27
+ *
28
+ * Non-finite child boxes are skipped, matching
29
+ * {@link AcTrGroup.syncWcsBboxFromChildBoxes}.
14
30
  */
15
31
  export declare function unionGroupWcsChildBoxes(group: AcTrGroupWcsBboxLike): THREE.Box3;
16
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,KAAK,CAAC,IAAI,CAWZ;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAsBN;AAED,0DAA0D;AAC1D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAEzE"}
1
+ {"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAOV;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,KAAK,CAAC,IAAI,CAcZ;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAsBN;AAED,0DAA0D;AAC1D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAEzE"}
@@ -11,8 +11,24 @@ var __values = (this && this.__values) || function(o) {
11
11
  };
12
12
  import * as THREE from 'three';
13
13
  var WCS_BBOX_TOLERANCE = 1e-5;
14
+ /**
15
+ * Tests whether a 2D axis-aligned box has finite extents.
16
+ *
17
+ * Deferred MText/Shape geometry can seed `±Infinity` placeholders in
18
+ * {@link AcTrGroup.wcsChildBoxes}; those entries must be skipped when unioning
19
+ * bounds for spatial indexing.
20
+ */
21
+ export function isFiniteSpatialBBox(box) {
22
+ return (Number.isFinite(box.minX) &&
23
+ Number.isFinite(box.minY) &&
24
+ Number.isFinite(box.maxX) &&
25
+ Number.isFinite(box.maxY));
26
+ }
14
27
  /**
15
28
  * Unions per-child WCS boxes into one axis-aligned WCS box.
29
+ *
30
+ * Non-finite child boxes are skipped, matching
31
+ * {@link AcTrGroup.syncWcsBboxFromChildBoxes}.
16
32
  */
17
33
  export function unionGroupWcsChildBoxes(group) {
18
34
  var e_1, _a;
@@ -20,6 +36,9 @@ export function unionGroupWcsChildBoxes(group) {
20
36
  try {
21
37
  for (var _b = __values(group.wcsChildBoxes), _c = _b.next(); !_c.done; _c = _b.next()) {
22
38
  var box = _c.value;
39
+ if (!isFiniteSpatialBBox(box)) {
40
+ continue;
41
+ }
23
42
  union.union(new THREE.Box3(new THREE.Vector3(box.minX, box.minY, 0), new THREE.Vector3(box.maxX, box.maxY, 0)));
24
43
  }
25
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,IAAM,kBAAkB,GAAG,IAAI,CAAA;AAY/B;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA2B;;IAE3B,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;;QAC9B,KAAkB,IAAA,KAAA,SAAA,KAAK,CAAC,aAAa,CAAA,gBAAA,4BAAE,CAAC;YAAnC,IAAM,GAAG,WAAA;YACZ,KAAK,CAAC,KAAK,CACT,IAAI,KAAK,CAAC,IAAI,CACZ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CACzC,CACF,CAAA;QACH,CAAC;;;;;;;;;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAA2B;IAE3B,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IAED,IAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAA;IACzB,IAAM,YAAY,GAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB;QACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAA;IAEzD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,sCAA+B,GAAG,CAAC,GAAG,CAAC,CAAC,eAAK,GAAG,CAAC,GAAG,CAAC,CAAC,qBAAM,GAAG,CAAC,GAAG,CAAC,CAAC,eAAK,GAAG,CAAC,GAAG,CAAC,CAAC,OAAI;YACrF,8CAAuC,KAAK,CAAC,GAAG,CAAC,CAAC,eAAK,KAAK,CAAC,GAAG,CAAC,CAAC,qBAAM,KAAK,CAAC,GAAG,CAAC,CAAC,eAAK,KAAK,CAAC,GAAG,CAAC,CAAC,QAAK;YACxG,iFAAiF,CACpF,CAAA;IACH,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,kCAAkC,CAAC,KAAgB;IACjE,8BAA8B,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC"}
1
+ {"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { AcGiSubEntityTraits } from '@mlightcad/data-model';
2
+ import { AcTrRenderer } from '@mlightcad/three-renderer';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Remaps layer metadata and material bindings when block contents inherit an INSERT layer.
6
+ *
7
+ * AutoCAD requires entities authored on layer "0" inside a block to inherit the INSERT's
8
+ * layer for ByLayer traits. This mapper mutates drawable `userData.layerName` and rebinds
9
+ * materials via the renderer style cache so subsequent layer-level style edits target the
10
+ * correct material instances.
11
+ */
12
+ export declare class AcTrInheritedLayerMaterialMapper {
13
+ private readonly getLayerTraits;
14
+ private readonly renderer;
15
+ /**
16
+ * @param getLayerTraits - Resolves live layer-table traits for an effective layer name.
17
+ * @param renderer - Renderer used to rebind materials through the style cache.
18
+ */
19
+ constructor(getLayerTraits: (layerName: string) => Partial<AcGiSubEntityTraits> | undefined, renderer: AcTrRenderer);
20
+ /**
21
+ * Remaps materials for objects in a layer bucket after INSERT decomposition.
22
+ *
23
+ * @param objects - Root objects in the current layer bucket to traverse and remap.
24
+ * @param sourceLayerName - Layer name found in the block definition before inheritance.
25
+ * @param effectiveLayerName - Final layer name used by rendering and style updates.
26
+ */
27
+ remap(objects: THREE.Object3D[], sourceLayerName: string, effectiveLayerName: string): void;
28
+ /**
29
+ * Layer-0 block contents with ByLayer color resolve to ACI-7 foreground materials before
30
+ * INSERT remapping. Those materials must still inherit the INSERT layer when their colour
31
+ * is layer-bound, while explicit ACI-7 entities on layer 0 stay untouched.
32
+ *
33
+ * @param material - Candidate material to evaluate for INSERT-layer rebinding.
34
+ * @param sourceLayerName - Layer name from the block definition before inheritance.
35
+ * @returns True when the material should be rebound to the INSERT layer.
36
+ */
37
+ private shouldRemap;
38
+ /**
39
+ * Some DXF conversion paths lose `isByLayerColor` on layer-0 block contents while still
40
+ * retaining other ByLayer markers (lineType/lineWeight/transparency). For AutoCAD-compatible
41
+ * INSERT inheritance, treat such colors as inheritable when remapping from layer "0".
42
+ *
43
+ * @param material - Material whose ByLayer metadata may need normalization.
44
+ * @param sourceLayerName - Source bucket layer name (typically `"0"`).
45
+ * @returns The same material instance, possibly with patched metadata.
46
+ */
47
+ private promoteLayerZeroByLayerColor;
48
+ }
49
+ //# sourceMappingURL=AcTrInheritedLayerMaterialMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcTrInheritedLayerMaterialMapper.d.ts","sourceRoot":"","sources":["../../src/view/AcTrInheritedLayerMaterialMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EACL,YAAY,EAMb,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;;;;GAOG;AACH,qBAAa,gCAAgC;IAMzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B;;;OAGG;gBAEgB,cAAc,EAAE,CAC/B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY;IAGzC;;;;;;OAMG;IACH,KAAK,CACH,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EACzB,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,GACzB,IAAI;IAoEP;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,4BAA4B;CAarC"}
@@ -0,0 +1,138 @@
1
+ var __values = (this && this.__values) || function(o) {
2
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
+ if (m) return m.call(o);
4
+ if (o && typeof o.length === "number") return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
+ };
12
+ import { getMaterialMetadata, getSceneDrawableUserData, hasByLayerBinding, setMaterialMetadata, syncStyleMaterialIdFromMaterials } from '@mlightcad/three-renderer';
13
+ /**
14
+ * Remaps layer metadata and material bindings when block contents inherit an INSERT layer.
15
+ *
16
+ * AutoCAD requires entities authored on layer "0" inside a block to inherit the INSERT's
17
+ * layer for ByLayer traits. This mapper mutates drawable `userData.layerName` and rebinds
18
+ * materials via the renderer style cache so subsequent layer-level style edits target the
19
+ * correct material instances.
20
+ */
21
+ var AcTrInheritedLayerMaterialMapper = /** @class */ (function () {
22
+ /**
23
+ * @param getLayerTraits - Resolves live layer-table traits for an effective layer name.
24
+ * @param renderer - Renderer used to rebind materials through the style cache.
25
+ */
26
+ function AcTrInheritedLayerMaterialMapper(getLayerTraits, renderer) {
27
+ this.getLayerTraits = getLayerTraits;
28
+ this.renderer = renderer;
29
+ }
30
+ /**
31
+ * Remaps materials for objects in a layer bucket after INSERT decomposition.
32
+ *
33
+ * @param objects - Root objects in the current layer bucket to traverse and remap.
34
+ * @param sourceLayerName - Layer name found in the block definition before inheritance.
35
+ * @param effectiveLayerName - Final layer name used by rendering and style updates.
36
+ */
37
+ AcTrInheritedLayerMaterialMapper.prototype.remap = function (objects, sourceLayerName, effectiveLayerName) {
38
+ var e_1, _a;
39
+ var _this = this;
40
+ if (sourceLayerName === effectiveLayerName) {
41
+ return;
42
+ }
43
+ var layerTraits = this.getLayerTraits(effectiveLayerName);
44
+ try {
45
+ for (var objects_1 = __values(objects), objects_1_1 = objects_1.next(); !objects_1_1.done; objects_1_1 = objects_1.next()) {
46
+ var object = objects_1_1.value;
47
+ object.traverse(function (child) {
48
+ var inheritsInsertLayer = child.userData.layerName === sourceLayerName;
49
+ if (inheritsInsertLayer) {
50
+ child.userData.layerName = effectiveLayerName;
51
+ }
52
+ if (!('material' in child)) {
53
+ return;
54
+ }
55
+ // Only layer-"0" (or the current source bucket) inherits INSERT traits.
56
+ // Attributes/text on other layers must keep their own layer materials.
57
+ if (!inheritsInsertLayer) {
58
+ return;
59
+ }
60
+ var material = child.material;
61
+ if (Array.isArray(material)) {
62
+ var materials = material;
63
+ child.material = materials.map(function (entry) {
64
+ var _a;
65
+ if (!_this.shouldRemap(entry, sourceLayerName)) {
66
+ return entry;
67
+ }
68
+ return ((_a = _this.renderer.getLayerBoundMaterial(_this.promoteLayerZeroByLayerColor(entry, sourceLayerName), effectiveLayerName, layerTraits)) !== null && _a !== void 0 ? _a : entry);
69
+ });
70
+ syncStyleMaterialIdFromMaterials(getSceneDrawableUserData(child), child.material);
71
+ return;
72
+ }
73
+ if (!_this.shouldRemap(material, sourceLayerName)) {
74
+ return;
75
+ }
76
+ var remappedMaterial = _this.renderer.getLayerBoundMaterial(_this.promoteLayerZeroByLayerColor(material, sourceLayerName), effectiveLayerName, layerTraits);
77
+ if (!remappedMaterial) {
78
+ return;
79
+ }
80
+ child.material = remappedMaterial;
81
+ syncStyleMaterialIdFromMaterials(getSceneDrawableUserData(child), remappedMaterial);
82
+ });
83
+ }
84
+ }
85
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
+ finally {
87
+ try {
88
+ if (objects_1_1 && !objects_1_1.done && (_a = objects_1.return)) _a.call(objects_1);
89
+ }
90
+ finally { if (e_1) throw e_1.error; }
91
+ }
92
+ };
93
+ /**
94
+ * Layer-0 block contents with ByLayer color resolve to ACI-7 foreground materials before
95
+ * INSERT remapping. Those materials must still inherit the INSERT layer when their colour
96
+ * is layer-bound, while explicit ACI-7 entities on layer 0 stay untouched.
97
+ *
98
+ * @param material - Candidate material to evaluate for INSERT-layer rebinding.
99
+ * @param sourceLayerName - Layer name from the block definition before inheritance.
100
+ * @returns True when the material should be rebound to the INSERT layer.
101
+ */
102
+ AcTrInheritedLayerMaterialMapper.prototype.shouldRemap = function (material, sourceLayerName) {
103
+ var metadata = getMaterialMetadata(material);
104
+ if (metadata.isForeground !== true) {
105
+ return true;
106
+ }
107
+ if (sourceLayerName !== '0') {
108
+ return false;
109
+ }
110
+ if (metadata.isByLayerColor === true) {
111
+ return true;
112
+ }
113
+ return (sourceLayerName === '0' &&
114
+ (metadata.isByLayerLineType === true ||
115
+ metadata.isByLayerLineWeight === true ||
116
+ metadata.isByLayerTransparency === true));
117
+ };
118
+ /**
119
+ * Some DXF conversion paths lose `isByLayerColor` on layer-0 block contents while still
120
+ * retaining other ByLayer markers (lineType/lineWeight/transparency). For AutoCAD-compatible
121
+ * INSERT inheritance, treat such colors as inheritable when remapping from layer "0".
122
+ *
123
+ * @param material - Material whose ByLayer metadata may need normalization.
124
+ * @param sourceLayerName - Source bucket layer name (typically `"0"`).
125
+ * @returns The same material instance, possibly with patched metadata.
126
+ */
127
+ AcTrInheritedLayerMaterialMapper.prototype.promoteLayerZeroByLayerColor = function (material, sourceLayerName) {
128
+ var metadata = getMaterialMetadata(material);
129
+ var hasAnyOtherByLayerBinding = hasByLayerBinding(metadata) && metadata.isByLayerColor !== true;
130
+ if (sourceLayerName === '0' && hasAnyOtherByLayerBinding) {
131
+ setMaterialMetadata(material, { isByLayerColor: true });
132
+ }
133
+ return material;
134
+ };
135
+ return AcTrInheritedLayerMaterialMapper;
136
+ }());
137
+ export { AcTrInheritedLayerMaterialMapper };
138
+ //# sourceMappingURL=AcTrInheritedLayerMaterialMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcTrInheritedLayerMaterialMapper.js","sourceRoot":"","sources":["../../src/view/AcTrInheritedLayerMaterialMapper.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAEL,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,2BAA2B,CAAA;AAGlC;;;;;;;GAOG;AACH;IACE;;;OAGG;IACH,0CACmB,cAE4B,EAC5B,QAAsB;QAHtB,mBAAc,GAAd,cAAc,CAEc;QAC5B,aAAQ,GAAR,QAAQ,CAAc;IACtC,CAAC;IAEJ;;;;;;OAMG;IACH,gDAAK,GAAL,UACE,OAAyB,EACzB,eAAuB,EACvB,kBAA0B;;QAH5B,iBAsEC;QAjEC,IAAI,eAAe,KAAK,kBAAkB,EAAE,CAAC;YAC3C,OAAM;QACR,CAAC;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;;YAC3D,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;gBAA1B,IAAM,MAAM,oBAAA;gBACf,MAAM,CAAC,QAAQ,CAAC,UAAA,KAAK;oBACnB,IAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,eAAe,CAAA;oBACxE,IAAI,mBAAmB,EAAE,CAAC;wBACxB,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,kBAAkB,CAAA;oBAC/C,CAAC;oBAED,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;wBAC3B,OAAM;oBACR,CAAC;oBACD,wEAAwE;oBACxE,uEAAuE;oBACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,OAAM;oBACR,CAAC;oBAED,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;oBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5B,IAAM,SAAS,GAAG,QAA4B,CAAA;wBAC9C,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAA,KAAK;;4BAClC,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;gCAC9C,OAAO,KAAK,CAAA;4BACd,CAAC;4BACD,OAAO,CACL,MAAA,KAAI,CAAC,QAAQ,CAAC,qBAAqB,CACjC,KAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,eAAe,CAAC,EACzD,kBAAkB,EAClB,WAAW,CACZ,mCAAI,KAAK,CACX,CAAA;wBACH,CAAC,CAAC,CAAA;wBACF,gCAAgC,CAC9B,wBAAwB,CAAC,KAAK,CAAC,EAC/B,KAAK,CAAC,QAA4B,CACnC,CAAA;wBACD,OAAM;oBACR,CAAC;oBAED,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,QAA0B,EAAE,eAAe,CAAC,EAAE,CAAC;wBACnE,OAAM;oBACR,CAAC;oBAED,IAAM,gBAAgB,GAAG,KAAI,CAAC,QAAQ,CAAC,qBAAqB,CAC1D,KAAI,CAAC,4BAA4B,CAC/B,QAA0B,EAC1B,eAAe,CAChB,EACD,kBAAkB,EAClB,WAAW,CACZ,CAAA;oBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,OAAM;oBACR,CAAC;oBACD,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAA;oBACjC,gCAAgC,CAC9B,wBAAwB,CAAC,KAAK,CAAC,EAC/B,gBAAgB,CACjB,CAAA;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;;;;;;;;;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,sDAAW,GAAnB,UACE,QAAwB,EACxB,eAAuB;QAEvB,IAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CACL,eAAe,KAAK,GAAG;YACvB,CAAC,QAAQ,CAAC,iBAAiB,KAAK,IAAI;gBAClC,QAAQ,CAAC,mBAAmB,KAAK,IAAI;gBACrC,QAAQ,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAC3C,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,uEAA4B,GAApC,UACE,QAAwB,EACxB,eAAuB;QAEvB,IAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAM,yBAAyB,GAC7B,iBAAiB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAA;QAEjE,IAAI,eAAe,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACzD,mBAAmB,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IACH,uCAAC;AAAD,CAAC,AAhJD,IAgJC"}
@@ -1,5 +1,5 @@
1
- import { AcDbObjectId } from '@mlightcad/data-model';
2
- import { AcTrBatchedGroup, AcTrBatchedGroupStats, AcTrEntity } from '@mlightcad/three-renderer';
1
+ import { AcDbObjectId, AcGiSubEntityTraits } from '@mlightcad/data-model';
2
+ import { AcTrBatchedGroup, AcTrBatchedGroupStats, AcTrEntity, AcTrPreviewSubsetOptions, AcTrRenderer, AcTrStyleManager } from '@mlightcad/three-renderer';
3
3
  import * as THREE from 'three';
4
4
  import { AcEdLayerInfo } from '../editor';
5
5
  /**
@@ -124,6 +124,22 @@ export declare class AcTrLayer {
124
124
  * @param material - The new material associated with entities
125
125
  */
126
126
  updateMaterial(oldId: number, material: THREE.Material): void;
127
+ /**
128
+ * Refreshes drawable materials after a layer-table style change.
129
+ *
130
+ * Updates batched material ids when the style cache remaps instances, patches
131
+ * unbatched drawables, and rematerializes text glyph hierarchies.
132
+ *
133
+ * @param layerName - Target layer whose drawables should be refreshed.
134
+ * @param layerTraits - Resolved layer traits from the live layer-table record.
135
+ * @param materials - Style-cache material map, keyed by previous material id.
136
+ * @param renderer - Renderer used to rebind layer-bound materials.
137
+ */
138
+ syncAppearanceFromRecord(layerName: string, layerTraits: Partial<AcGiSubEntityTraits>, materials: Record<number, THREE.Material>, renderer: AcTrRenderer): void;
139
+ /** Rebinds batched drawables whose materials follow live layer-table style. */
140
+ rebindMaterialsForLayer(layerName: string, layerTraits: Partial<AcGiSubEntityTraits>, getLayerBoundMaterial: (material: THREE.Material, layerName: string, layerTraits?: Partial<AcGiSubEntityTraits>) => THREE.Material | undefined, styleManager?: AcTrStyleManager): void;
141
+ /** Rematerializes MTEXT/TEXT drawables stored as unbatched glyph subtrees. */
142
+ rematerializeLayerTextDrawables(layerName: string, styleManager: AcTrStyleManager, layerTraits?: Partial<AcGiSubEntityTraits>): void;
127
143
  /**
128
144
  * Re-render points with latest point style settings
129
145
  * @param displayMode Input display mode of points
@@ -144,6 +160,14 @@ export declare class AcTrLayer {
144
160
  * Returns the current scene visibility for one entity.
145
161
  */
146
162
  getEntityVisible(objectId: AcDbObjectId): boolean | undefined;
163
+ /**
164
+ * Builds a preview subset for entities stored in this layer group.
165
+ *
166
+ * @param entityIds - Database object ids to extract from this layer
167
+ * @param options - Optional preview style and slot limits
168
+ * @returns Preview subset group, or `null` when extraction failed
169
+ */
170
+ createPreviewSubset(entityIds: AcDbObjectId[], options?: AcTrPreviewSubsetOptions): THREE.Group<THREE.Object3DEventMap> | null;
147
171
  /**
148
172
  * Add one AutoCAD entity into this layer.
149
173
  * @param entity Input AutoCAD entity to be added into this layer.
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACX,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IACnD,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAS;IACpB;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAInD;;OAEG;IACH,OAAO,CAAC,KAAK,CAAQ;IACrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;gBACS,KAAK,EAAE,aAAa;IAQhC;;OAEG;IACH,IAAI,IAAI,IAGQ,MAAM,CADrB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED;;;;;;OAMG;IACH,IAAI,GAAG,eAMN;IAED;;OAEG;IACH,uBAAuB,CACrB,MAAM,aAAmB,EACzB,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IASxC,IAAI,OAAO,IAGQ,OAAO,CADzB;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,cAAc,qBAEjB;IAED;;OAEG;IACH,IAAI,KAAK,IAKF,cAAc,CACpB;IAED;;OAEG;IACH,IAAI,WAAW,WAEd;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa;IAS3B;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAItD;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY;IAIhC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;IAIzD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY;IAIvC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,GAAE,OAAc;IAKzD;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAI5D;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;IAQ7C;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAkBzC;;OAEG;IACH,KAAK;IAOL;;OAEG;IACH,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE;IAMzB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE;IAM3B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE;IAM1B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE;CAK7B"}
1
+ {"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"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"}