@mlightcad/cad-simple-viewer 1.5.8 → 1.5.9

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 (201) hide show
  1. package/README.md +12 -4
  2. package/dist/cad-simple-viewer.js +8556 -6655
  3. package/dist/cad-simple-viewer.umd.cjs +200 -37
  4. package/dist/libredwg-parser-worker.js +2061 -2059
  5. package/dist/mtext-renderer-worker.js +1878 -1865
  6. package/lib/app/AcApBrand.d.ts +36 -0
  7. package/lib/app/AcApBrand.d.ts.map +1 -0
  8. package/lib/app/AcApBrand.js +63 -0
  9. package/lib/app/AcApBrand.js.map +1 -0
  10. package/lib/app/AcApBusyIndicator.d.ts.map +1 -1
  11. package/lib/app/AcApBusyIndicator.js +2 -2
  12. package/lib/app/AcApBusyIndicator.js.map +1 -1
  13. package/lib/app/AcApDocManager.d.ts +11 -15
  14. package/lib/app/AcApDocManager.d.ts.map +1 -1
  15. package/lib/app/AcApDocManager.js +60 -35
  16. package/lib/app/AcApDocManager.js.map +1 -1
  17. package/lib/app/AcApOpenFileDialog.d.ts.map +1 -1
  18. package/lib/app/AcApOpenFileDialog.js +8 -4
  19. package/lib/app/AcApOpenFileDialog.js.map +1 -1
  20. package/lib/app/AcApOpenFileProfiler.d.ts +58 -0
  21. package/lib/app/AcApOpenFileProfiler.d.ts.map +1 -0
  22. package/lib/app/AcApOpenFileProfiler.js +353 -0
  23. package/lib/app/AcApOpenFileProfiler.js.map +1 -0
  24. package/lib/app/AcApOpenFileProgressController.d.ts +12 -0
  25. package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
  26. package/lib/app/AcApOpenFileProgressController.js +85 -5
  27. package/lib/app/AcApOpenFileProgressController.js.map +1 -1
  28. package/lib/app/AcApProgress.d.ts +9 -2
  29. package/lib/app/AcApProgress.d.ts.map +1 -1
  30. package/lib/app/AcApProgress.js +40 -12
  31. package/lib/app/AcApProgress.js.map +1 -1
  32. package/lib/app/AcApWebworkerReadiness.d.ts.map +1 -1
  33. package/lib/app/AcApWebworkerReadiness.js +6 -7
  34. package/lib/app/AcApWebworkerReadiness.js.map +1 -1
  35. package/lib/app/AcApWorkerAssets.d.ts +27 -0
  36. package/lib/app/AcApWorkerAssets.d.ts.map +1 -0
  37. package/lib/app/AcApWorkerAssets.js +27 -0
  38. package/lib/app/AcApWorkerAssets.js.map +1 -0
  39. package/lib/app/index.d.ts +3 -0
  40. package/lib/app/index.d.ts.map +1 -1
  41. package/lib/app/index.js +3 -0
  42. package/lib/app/index.js.map +1 -1
  43. package/lib/command/AcApAboutCmd.d.ts +21 -0
  44. package/lib/command/AcApAboutCmd.d.ts.map +1 -0
  45. package/lib/command/AcApAboutCmd.js +119 -0
  46. package/lib/command/AcApAboutCmd.js.map +1 -0
  47. package/lib/command/AcApSysVarCmd.d.ts.map +1 -1
  48. package/lib/command/AcApSysVarCmd.js +6 -4
  49. package/lib/command/AcApSysVarCmd.js.map +1 -1
  50. package/lib/command/convert/AcApConvertToPngCmd.js +1 -1
  51. package/lib/command/convert/AcApConvertToPngCmd.js.map +1 -1
  52. package/lib/command/convert/AcApDxfConvertor.d.ts.map +1 -1
  53. package/lib/command/convert/AcApDxfConvertor.js +2 -1
  54. package/lib/command/convert/AcApDxfConvertor.js.map +1 -1
  55. package/lib/command/convert/AcApEntityPreviewCmd.js +1 -1
  56. package/lib/command/convert/AcApEntityPreviewCmd.js.map +1 -1
  57. package/lib/command/draw/AcApHatchCmd.js +12 -10
  58. package/lib/command/draw/AcApHatchCmd.js.map +1 -1
  59. package/lib/command/draw/AcApImageAttachCmd.js +2 -2
  60. package/lib/command/draw/AcApImageAttachCmd.js.map +1 -1
  61. package/lib/command/draw/AcApInsertCmd.js +2 -2
  62. package/lib/command/draw/AcApInsertCmd.js.map +1 -1
  63. package/lib/command/draw/AcApPolygonCmd.d.ts.map +1 -1
  64. package/lib/command/draw/AcApPolygonCmd.js +3 -1
  65. package/lib/command/draw/AcApPolygonCmd.js.map +1 -1
  66. package/lib/command/draw/AcApXAttachCmd.d.ts.map +1 -1
  67. package/lib/command/draw/AcApXAttachCmd.js +10 -5
  68. package/lib/command/draw/AcApXAttachCmd.js.map +1 -1
  69. package/lib/command/index.d.ts +1 -0
  70. package/lib/command/index.d.ts.map +1 -1
  71. package/lib/command/index.js +1 -0
  72. package/lib/command/index.js.map +1 -1
  73. package/lib/command/modify/AcApCopyCmd.d.ts.map +1 -1
  74. package/lib/command/modify/AcApCopyCmd.js +6 -2
  75. package/lib/command/modify/AcApCopyCmd.js.map +1 -1
  76. package/lib/command/modify/AcApOffsetCmd.d.ts.map +1 -1
  77. package/lib/command/modify/AcApOffsetCmd.js +1 -4
  78. package/lib/command/modify/AcApOffsetCmd.js.map +1 -1
  79. package/lib/editor/global/AcEdUiTheme.d.ts +12 -0
  80. package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -1
  81. package/lib/editor/global/AcEdUiTheme.js +26 -0
  82. package/lib/editor/global/AcEdUiTheme.js.map +1 -1
  83. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +1 -0
  84. package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -1
  85. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +5 -0
  86. package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -1
  87. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.d.ts +10 -0
  88. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.d.ts.map +1 -1
  89. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.js +19 -0
  90. package/lib/editor/input/prompt/AcEdPromptKeywordOptions.js.map +1 -1
  91. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts +1 -0
  92. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.d.ts.map +1 -1
  93. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js +5 -0
  94. package/lib/editor/input/prompt/AcEdPromptNumericalOptions.js.map +1 -1
  95. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts +20 -0
  96. package/lib/editor/input/prompt/AcEdPromptOptions.d.ts.map +1 -1
  97. package/lib/editor/input/prompt/AcEdPromptOptions.js +29 -0
  98. package/lib/editor/input/prompt/AcEdPromptOptions.js.map +1 -1
  99. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts +18 -0
  100. package/lib/editor/input/prompt/AcEdPromptPointOptions.d.ts.map +1 -1
  101. package/lib/editor/input/prompt/AcEdPromptPointOptions.js +49 -0
  102. package/lib/editor/input/prompt/AcEdPromptPointOptions.js.map +1 -1
  103. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts +1 -0
  104. package/lib/editor/input/prompt/AcEdPromptStringOptions.d.ts.map +1 -1
  105. package/lib/editor/input/prompt/AcEdPromptStringOptions.js +5 -0
  106. package/lib/editor/input/prompt/AcEdPromptStringOptions.js.map +1 -1
  107. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  108. package/lib/editor/input/ui/AcEdCommandLine.js +6 -5
  109. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  110. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  111. package/lib/editor/input/ui/AcEdInputManager.js +3 -1
  112. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  113. package/lib/i18n/AcApI18n.d.ts +1 -1
  114. package/lib/i18n/AcApI18n.d.ts.map +1 -1
  115. package/lib/i18n/AcApI18n.js +2 -1
  116. package/lib/i18n/AcApI18n.js.map +1 -1
  117. package/lib/i18n/cs/command.d.ts +390 -0
  118. package/lib/i18n/cs/command.d.ts.map +1 -0
  119. package/lib/i18n/cs/command.js +389 -0
  120. package/lib/i18n/cs/command.js.map +1 -0
  121. package/lib/i18n/cs/jig.d.ts +2 -0
  122. package/lib/i18n/cs/jig.d.ts.map +1 -0
  123. package/lib/i18n/cs/jig.js +7 -0
  124. package/lib/i18n/cs/jig.js.map +1 -0
  125. package/lib/i18n/cs/main.d.ts +58 -0
  126. package/lib/i18n/cs/main.d.ts.map +1 -0
  127. package/lib/i18n/cs/main.js +57 -0
  128. package/lib/i18n/cs/main.js.map +1 -0
  129. package/lib/i18n/en/command.d.ts +49 -1
  130. package/lib/i18n/en/command.d.ts.map +1 -1
  131. package/lib/i18n/en/command.js +49 -1
  132. package/lib/i18n/en/command.js.map +1 -1
  133. package/lib/i18n/en/main.d.ts +11 -0
  134. package/lib/i18n/en/main.d.ts.map +1 -1
  135. package/lib/i18n/en/main.js +11 -0
  136. package/lib/i18n/en/main.js.map +1 -1
  137. package/lib/i18n/index.d.ts.map +1 -1
  138. package/lib/i18n/index.js +8 -0
  139. package/lib/i18n/index.js.map +1 -1
  140. package/lib/i18n/tr/command.d.ts +49 -1
  141. package/lib/i18n/tr/command.d.ts.map +1 -1
  142. package/lib/i18n/tr/command.js +49 -1
  143. package/lib/i18n/tr/command.js.map +1 -1
  144. package/lib/i18n/tr/main.d.ts +11 -0
  145. package/lib/i18n/tr/main.d.ts.map +1 -1
  146. package/lib/i18n/tr/main.js +11 -0
  147. package/lib/i18n/tr/main.js.map +1 -1
  148. package/lib/i18n/zh/command.d.ts +49 -1
  149. package/lib/i18n/zh/command.d.ts.map +1 -1
  150. package/lib/i18n/zh/command.js +49 -1
  151. package/lib/i18n/zh/command.js.map +1 -1
  152. package/lib/i18n/zh/main.d.ts +11 -0
  153. package/lib/i18n/zh/main.d.ts.map +1 -1
  154. package/lib/i18n/zh/main.js +11 -0
  155. package/lib/i18n/zh/main.js.map +1 -1
  156. package/lib/index.d.ts +1 -0
  157. package/lib/index.d.ts.map +1 -1
  158. package/lib/index.js +1 -0
  159. package/lib/index.js.map +1 -1
  160. package/lib/ui/AcUiAboutDialog.d.ts +25 -0
  161. package/lib/ui/AcUiAboutDialog.d.ts.map +1 -0
  162. package/lib/ui/AcUiAboutDialog.js +120 -0
  163. package/lib/ui/AcUiAboutDialog.js.map +1 -0
  164. package/lib/ui/AcUiDialog.d.ts +101 -0
  165. package/lib/ui/AcUiDialog.d.ts.map +1 -0
  166. package/lib/ui/AcUiDialog.js +182 -0
  167. package/lib/ui/AcUiDialog.js.map +1 -0
  168. package/lib/ui/index.d.ts +3 -0
  169. package/lib/ui/index.d.ts.map +1 -0
  170. package/lib/ui/index.js +3 -0
  171. package/lib/ui/index.js.map +1 -0
  172. package/lib/util/index.d.ts +0 -1
  173. package/lib/util/index.d.ts.map +1 -1
  174. package/lib/util/index.js +0 -1
  175. package/lib/util/index.js.map +1 -1
  176. package/lib/view/AcTrEntityDisplayController.d.ts +9 -0
  177. package/lib/view/AcTrEntityDisplayController.d.ts.map +1 -1
  178. package/lib/view/AcTrEntityDisplayController.js +18 -5
  179. package/lib/view/AcTrEntityDisplayController.js.map +1 -1
  180. package/lib/view/AcTrLayout.d.ts +19 -0
  181. package/lib/view/AcTrLayout.d.ts.map +1 -1
  182. package/lib/view/AcTrLayout.js +79 -9
  183. package/lib/view/AcTrLayout.js.map +1 -1
  184. package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -4
  185. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
  186. package/lib/view/AcTrProgressiveOpenFitController.js +3 -8
  187. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
  188. package/lib/view/AcTrScene.d.ts +4 -1
  189. package/lib/view/AcTrScene.d.ts.map +1 -1
  190. package/lib/view/AcTrScene.js +79 -44
  191. package/lib/view/AcTrScene.js.map +1 -1
  192. package/lib/view/AcTrView2d.d.ts +23 -3
  193. package/lib/view/AcTrView2d.d.ts.map +1 -1
  194. package/lib/view/AcTrView2d.js +145 -57
  195. package/lib/view/AcTrView2d.js.map +1 -1
  196. package/package.json +8 -9
  197. package/dist/dxf-parser-worker.js +0 -2357
  198. package/lib/util/yieldToMain.d.ts +0 -5
  199. package/lib/util/yieldToMain.d.ts.map +0 -1
  200. package/lib/util/yieldToMain.js +0 -11
  201. package/lib/util/yieldToMain.js.map +0 -1
@@ -252,6 +252,23 @@ export declare class AcTrView2d extends AcEdBaseView {
252
252
  * manager. Does not touch `COLORTHEME` / UI chrome.
253
253
  */
254
254
  private applyCanvasBackground;
255
+ /**
256
+ * Rebuilds byLayer materials on ACI-7 (foreground) layers after a canvas
257
+ * background change.
258
+ *
259
+ * The scene traversal above only reaches entity wrappers that still expose
260
+ * `refreshTextMaterials` — but `AcTrBatchedGroup.addEntity` flattens glyph
261
+ * entities into cloned drawable subtrees at add time, so for already-batched
262
+ * layouts it matches nothing and ACI-7 byLayer text kept its build-time
263
+ * colour (white text on a white canvas, #464). Entity-level ACI-7 materials
264
+ * are foreground-tracked and repainted by the style manager, but byLayer
265
+ * materials on an ACI-7 layer were created before the manager knew the
266
+ * layer colour and are not. Re-running the live layer sync — the same path
267
+ * a layer-table colour edit uses, which the #464 workaround exploited —
268
+ * rebuilds them against the background set just above, with foreground
269
+ * tracking attached for subsequent switches.
270
+ */
271
+ private resyncForegroundLayersForBackground;
255
272
  private isModelSpaceLayout;
256
273
  /**
257
274
  * Binds the active drawing database on the renderer draw context.
@@ -277,9 +294,12 @@ export declare class AcTrView2d extends AcEdBaseView {
277
294
  * `visible` property, and tear it down by removing `internalObject` from
278
295
  * `cadScene.internalScene` and calling `clear()`.
279
296
  *
280
- * Scope: draws top-level geometry, text, and hatch entities. Block (INSERT)
281
- * expansion, viewports, and dimensions are not supported for overlays yet
282
- * and are skipped.
297
+ * Scope: draws top-level geometry, text, hatch, and block-reference
298
+ * (INSERT) entities, including entities that expand to multi-layer groups
299
+ * (dimensions, tables). A multi-layer group stays bucketed under its
300
+ * INSERT's layer — overlay layers are display-only, so per-fragment layer
301
+ * re-parenting (see `handleGroup`) is intentionally not replicated here.
302
+ * Viewports are not supported for overlays and are skipped.
283
303
  *
284
304
  * @param overlayDb - Input a database parsed independently of the active
285
305
  * document (e.g. via `new AcDbDatabase().read(...)`).
@@ -1 +1 @@
1
- {"version":3,"file":"AcTrView2d.d.ts","sourceRoot":"","sources":["../../src/view/AcTrView2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcTrView2d.d.ts","sourceRoot":"","sources":["../../src/view/AcTrView2d.ts"],"names":[],"mappings":"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"}
@@ -681,9 +681,48 @@ var AcTrView2d = /** @class */ (function (_super) {
681
681
  // Updates style-manager background, repaints ACI-7 / bg-follow materials.
682
682
  this._renderer.currentBackgroundColor = value;
683
683
  this._layerAppearance.refreshTextMaterialsInObjectTree(this._scene.internalScene);
684
+ this.resyncForegroundLayersForBackground();
684
685
  this.editor.syncCursorBackground(value);
685
686
  this._isDirty = true;
686
687
  };
688
+ /**
689
+ * Rebuilds byLayer materials on ACI-7 (foreground) layers after a canvas
690
+ * background change.
691
+ *
692
+ * The scene traversal above only reaches entity wrappers that still expose
693
+ * `refreshTextMaterials` — but `AcTrBatchedGroup.addEntity` flattens glyph
694
+ * entities into cloned drawable subtrees at add time, so for already-batched
695
+ * layouts it matches nothing and ACI-7 byLayer text kept its build-time
696
+ * colour (white text on a white canvas, #464). Entity-level ACI-7 materials
697
+ * are foreground-tracked and repainted by the style manager, but byLayer
698
+ * materials on an ACI-7 layer were created before the manager knew the
699
+ * layer colour and are not. Re-running the live layer sync — the same path
700
+ * a layer-table colour edit uses, which the #464 workaround exploited —
701
+ * rebuilds them against the background set just above, with foreground
702
+ * tracking attached for subsequent switches.
703
+ */
704
+ AcTrView2d.prototype.resyncForegroundLayersForBackground = function () {
705
+ var e_1, _a;
706
+ var _b;
707
+ var database = this._renderer.context.database;
708
+ if (!database)
709
+ return;
710
+ try {
711
+ for (var _c = __values(database.tables.layerTable.newIterator()), _d = _c.next(); !_d.done; _d = _c.next()) {
712
+ var layer = _d.value;
713
+ if ((_b = layer.color) === null || _b === void 0 ? void 0 : _b.isForeground) {
714
+ this._layerAppearance.syncFromLiveRecord(layer);
715
+ }
716
+ }
717
+ }
718
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
719
+ finally {
720
+ try {
721
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
722
+ }
723
+ finally { if (e_1) throw e_1.error; }
724
+ }
725
+ };
687
726
  AcTrView2d.prototype.isModelSpaceLayout = function (database) {
688
727
  if (!database) {
689
728
  return this.activeLayoutBtrId === this.modelSpaceBtrId;
@@ -719,9 +758,12 @@ var AcTrView2d = /** @class */ (function (_super) {
719
758
  * `visible` property, and tear it down by removing `internalObject` from
720
759
  * `cadScene.internalScene` and calling `clear()`.
721
760
  *
722
- * Scope: draws top-level geometry, text, and hatch entities. Block (INSERT)
723
- * expansion, viewports, and dimensions are not supported for overlays yet
724
- * and are skipped.
761
+ * Scope: draws top-level geometry, text, hatch, and block-reference
762
+ * (INSERT) entities, including entities that expand to multi-layer groups
763
+ * (dimensions, tables). A multi-layer group stays bucketed under its
764
+ * INSERT's layer — overlay layers are display-only, so per-fragment layer
765
+ * re-parenting (see `handleGroup`) is intentionally not replicated here.
766
+ * Viewports are not supported for overlays and are skipped.
725
767
  *
726
768
  * @param overlayDb - Input a database parsed independently of the active
727
769
  * document (e.g. via `new AcDbDatabase().read(...)`).
@@ -729,8 +771,8 @@ var AcTrView2d = /** @class */ (function (_super) {
729
771
  */
730
772
  AcTrView2d.prototype.addOverlayEntities = function (overlayDb) {
731
773
  return __awaiter(this, void 0, void 0, function () {
732
- var layout, _a, _b, layer, previousDatabase, modelSpace, _c, _d, entity, threeEntity, e_1_1;
733
- var e_2, _e, e_1, _f;
774
+ var layout, _a, _b, layer, previousDatabase, modelSpace, _c, _d, entity, threeEntity, error_1, e_2_1;
775
+ var e_3, _e, e_2, _f;
734
776
  return __generator(this, function (_g) {
735
777
  switch (_g.label) {
736
778
  case 0:
@@ -749,61 +791,75 @@ var AcTrView2d = /** @class */ (function (_super) {
749
791
  });
750
792
  }
751
793
  }
752
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
794
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
753
795
  finally {
754
796
  try {
755
797
  if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
756
798
  }
757
- finally { if (e_2) throw e_2.error; }
799
+ finally { if (e_3) throw e_3.error; }
758
800
  }
759
801
  previousDatabase = this._renderer.context.database;
760
802
  this._renderer.context.database = overlayDb;
761
803
  _g.label = 1;
762
804
  case 1:
763
- _g.trys.push([1, , 10, 11]);
805
+ _g.trys.push([1, , 12, 13]);
764
806
  modelSpace = overlayDb.tables.blockTable.modelSpace;
765
807
  _g.label = 2;
766
808
  case 2:
767
- _g.trys.push([2, 7, 8, 9]);
809
+ _g.trys.push([2, 9, 10, 11]);
768
810
  _c = __values(modelSpace.newIterator()), _d = _c.next();
769
811
  _g.label = 3;
770
812
  case 3:
771
- if (!!_d.done) return [3 /*break*/, 6];
813
+ if (!!_d.done) return [3 /*break*/, 8];
772
814
  entity = _d.value;
773
815
  if (entity instanceof AcDbViewport)
774
- return [3 /*break*/, 5];
816
+ return [3 /*break*/, 7];
817
+ _g.label = 4;
818
+ case 4:
819
+ _g.trys.push([4, 6, , 7]);
775
820
  threeEntity = this.drawEntity(entity, false);
776
- if (!threeEntity || threeEntity instanceof AcTrGroup)
777
- return [3 /*break*/, 5];
821
+ if (!threeEntity)
822
+ return [3 /*break*/, 7];
778
823
  threeEntity.objectId = entity.objectId;
779
824
  threeEntity.ownerId = entity.ownerId;
780
825
  threeEntity.layerName = entity.layer;
781
826
  threeEntity.visible = entity.visibility !== false;
827
+ if (threeEntity instanceof AcTrGroup &&
828
+ threeEntity.isOnTheSameLayer) {
829
+ // Children authored on layer "0" inherit the INSERT layer for
830
+ // ByLayer traits (color, etc.), same as the primary-document path.
831
+ this._inheritedLayerMaterialMapper.remap(threeEntity.children, '0', threeEntity.layerName);
832
+ }
782
833
  return [4 /*yield*/, this.finishEntityGeometry(threeEntity, false)];
783
- case 4:
834
+ case 5:
784
835
  _g.sent();
785
836
  layout.addEntity(threeEntity);
786
837
  threeEntity.dispose();
787
- _g.label = 5;
788
- case 5:
838
+ return [3 /*break*/, 7];
839
+ case 6:
840
+ error_1 = _g.sent();
841
+ // One unconvertible entity must not abort the whole overlay.
842
+ log.error("[AcTrView2d] Failed to convert overlay entity ".concat(entity.objectId, " (").concat(entity.type, "):"), error_1);
843
+ return [3 /*break*/, 7];
844
+ case 7:
789
845
  _d = _c.next();
790
846
  return [3 /*break*/, 3];
791
- case 6: return [3 /*break*/, 9];
792
- case 7:
793
- e_1_1 = _g.sent();
794
- e_1 = { error: e_1_1 };
795
- return [3 /*break*/, 9];
796
- case 8:
847
+ case 8: return [3 /*break*/, 11];
848
+ case 9:
849
+ e_2_1 = _g.sent();
850
+ e_2 = { error: e_2_1 };
851
+ return [3 /*break*/, 11];
852
+ case 10:
797
853
  try {
798
854
  if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
799
855
  }
800
- finally { if (e_1) throw e_1.error; }
856
+ finally { if (e_2) throw e_2.error; }
801
857
  return [7 /*endfinally*/];
802
- case 9: return [3 /*break*/, 11];
803
- case 10:
858
+ case 11: return [3 /*break*/, 13];
859
+ case 12:
804
860
  this._renderer.context.database = previousDatabase;
805
861
  return [7 /*endfinally*/];
806
- case 11: return [2 /*return*/, layout];
862
+ case 13: return [2 /*return*/, layout];
807
863
  }
808
864
  });
809
865
  });
@@ -891,7 +947,7 @@ var AcTrView2d = /** @class */ (function (_super) {
891
947
  AcTrView2d.prototype.ensureEntitiesConvertedForExport = function (options) {
892
948
  return __awaiter(this, void 0, void 0, function () {
893
949
  var includeInvisibleLayers, db, pending, _a, _b, _c, layoutBtrId, blockTableRecord;
894
- var e_3, _d;
950
+ var e_4, _d;
895
951
  var _this = this;
896
952
  return __generator(this, function (_e) {
897
953
  switch (_e.label) {
@@ -909,12 +965,12 @@ var AcTrView2d = /** @class */ (function (_super) {
909
965
  pending.push.apply(pending, __spreadArray([], __read(this._entityDisplay.collectMissingEntitiesForExport(blockTableRecord, function (objectId) { return _this.hasEntity(objectId); }, includeInvisibleLayers)), false));
910
966
  }
911
967
  }
912
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
968
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
913
969
  finally {
914
970
  try {
915
971
  if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
916
972
  }
917
- finally { if (e_3) throw e_3.error; }
973
+ finally { if (e_4) throw e_4.error; }
918
974
  }
919
975
  if (pending.length === 0) {
920
976
  return [2 /*return*/];
@@ -1218,7 +1274,7 @@ var AcTrView2d = /** @class */ (function (_super) {
1218
1274
  * don't have to land pixel-perfect on the viewport line to grab it.
1219
1275
  */
1220
1276
  AcTrView2d.prototype.pick = function (point, hitRadius, pickOneOnly) {
1221
- var e_4, _a;
1277
+ var e_5, _a;
1222
1278
  if (point == null)
1223
1279
  point = this.curPos;
1224
1280
  var results = [];
@@ -1249,12 +1305,12 @@ var AcTrView2d = /** @class */ (function (_super) {
1249
1305
  }
1250
1306
  }
1251
1307
  }
1252
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
1308
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
1253
1309
  finally {
1254
1310
  try {
1255
1311
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1256
1312
  }
1257
- finally { if (e_4) throw e_4.error; }
1313
+ finally { if (e_5) throw e_5.error; }
1258
1314
  }
1259
1315
  }
1260
1316
  // 1) Resolve hits in the active layout. Skip the `AcDbViewport`
@@ -1297,7 +1353,7 @@ var AcTrView2d = /** @class */ (function (_super) {
1297
1353
  * paper-space pick.
1298
1354
  */
1299
1355
  AcTrView2d.prototype.pickThroughViewports = function (paperPoint, paperBox, viewports, results) {
1300
- var e_5, _a;
1356
+ var e_6, _a;
1301
1357
  var modelLayout = this._scene.modelSpaceLayout;
1302
1358
  if (!modelLayout)
1303
1359
  return;
@@ -1332,12 +1388,12 @@ var AcTrView2d = /** @class */ (function (_super) {
1332
1388
  _loop_1(vpView);
1333
1389
  }
1334
1390
  }
1335
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
1391
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
1336
1392
  finally {
1337
1393
  try {
1338
1394
  if (viewports_1_1 && !viewports_1_1.done && (_a = viewports_1.return)) _a.call(viewports_1);
1339
1395
  }
1340
- finally { if (e_5) throw e_5.error; }
1396
+ finally { if (e_6) throw e_6.error; }
1341
1397
  }
1342
1398
  };
1343
1399
  /**
@@ -1374,13 +1430,34 @@ var AcTrView2d = /** @class */ (function (_super) {
1374
1430
  * @inheritdoc
1375
1431
  */
1376
1432
  AcTrView2d.prototype.updateLayer = function (layer, changes) {
1377
- this._scene.updateLayer(this.toLayerInfo(layer));
1433
+ var e_7, _a;
1434
+ var touchedObjectIds = this._scene.updateLayer(this.toLayerInfo(layer)).touchedObjectIds;
1378
1435
  if (this._layerAppearance.layerStyleMayHaveChanged(changes)) {
1379
1436
  this._layerAppearance.syncFromLiveRecord(layer);
1380
1437
  }
1381
- if (this._entityDisplay.layerVisibilityMayHaveChanged(changes) &&
1382
- AcTrLayer.isLayerVisible(this.toLayerInfo(layer))) {
1383
- void this.convertMissingEntitiesOnLayer(layer.name);
1438
+ if (this._entityDisplay.layerVisibilityMayHaveChanged(changes)) {
1439
+ var layerInfo = this.toLayerInfo(layer);
1440
+ // Normal entities convert when the layer is on and thawed. INSERTs also
1441
+ // convert when thawed while still off (Off must not skip multi-layer
1442
+ // block contents).
1443
+ if (AcTrLayer.isLayerVisible(layerInfo) || !layerInfo.isFrozen) {
1444
+ void this.convertMissingEntitiesOnLayer(layer.name);
1445
+ }
1446
+ }
1447
+ try {
1448
+ // Thawing an INSERT layer may restore cross-layer fragments that were
1449
+ // session-hidden; reapply that state.
1450
+ for (var touchedObjectIds_1 = __values(touchedObjectIds), touchedObjectIds_1_1 = touchedObjectIds_1.next(); !touchedObjectIds_1_1.done; touchedObjectIds_1_1 = touchedObjectIds_1.next()) {
1451
+ var objectId = touchedObjectIds_1_1.value;
1452
+ this.applySessionHiddenObjectState(objectId);
1453
+ }
1454
+ }
1455
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
1456
+ finally {
1457
+ try {
1458
+ if (touchedObjectIds_1_1 && !touchedObjectIds_1_1.done && (_a = touchedObjectIds_1.return)) _a.call(touchedObjectIds_1);
1459
+ }
1460
+ finally { if (e_7) throw e_7.error; }
1384
1461
  }
1385
1462
  this._isDirty = true;
1386
1463
  };
@@ -1570,7 +1647,7 @@ var AcTrView2d = /** @class */ (function (_super) {
1570
1647
  * drawable entity that must be rebuilt (for example ATTRIB → INSERT).
1571
1648
  */
1572
1649
  AcTrView2d.prototype.resolveSceneUpdateEntities = function (entities) {
1573
- var e_6, _a;
1650
+ var e_8, _a;
1574
1651
  var _b;
1575
1652
  var db = (_b = AcApDocManager.instance.curDocument) === null || _b === void 0 ? void 0 : _b.database;
1576
1653
  var resolved = [];
@@ -1592,12 +1669,12 @@ var AcTrView2d = /** @class */ (function (_super) {
1592
1669
  resolved.push(target);
1593
1670
  }
1594
1671
  }
1595
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
1672
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
1596
1673
  finally {
1597
1674
  try {
1598
1675
  if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
1599
1676
  }
1600
- finally { if (e_6) throw e_6.error; }
1677
+ finally { if (e_8) throw e_8.error; }
1601
1678
  }
1602
1679
  return resolved;
1603
1680
  };
@@ -1819,7 +1896,7 @@ var AcTrView2d = /** @class */ (function (_super) {
1819
1896
  * @param layoutBtrId Input the block table record id of the layout
1820
1897
  */
1821
1898
  AcTrView2d.prototype.loadLayoutEntitiesIfNeeded = function (layoutBtrId) {
1822
- var e_7, _a;
1899
+ var e_9, _a;
1823
1900
  var _this = this;
1824
1901
  try {
1825
1902
  var db = AcApDocManager.instance.curDocument.database;
@@ -1890,12 +1967,12 @@ var AcTrView2d = /** @class */ (function (_super) {
1890
1967
  entities_2.push(entity);
1891
1968
  }
1892
1969
  }
1893
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
1970
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
1894
1971
  finally {
1895
1972
  try {
1896
1973
  if (iterator_1_1 && !iterator_1_1.done && (_a = iterator_1.return)) _a.call(iterator_1);
1897
1974
  }
1898
- finally { if (e_7) throw e_7.error; }
1975
+ finally { if (e_9) throw e_9.error; }
1899
1976
  }
1900
1977
  if (entities_2.length === 0) {
1901
1978
  // Empty layout (e.g. a freshly-created paper space tab). Mark as
@@ -2058,7 +2135,7 @@ var AcTrView2d = /** @class */ (function (_super) {
2058
2135
  * paper layouts.
2059
2136
  */
2060
2137
  AcTrView2d.prototype.ensureViewportViews = function (blockTableRecord, layoutView) {
2061
- var e_8, _a;
2138
+ var e_10, _a;
2062
2139
  var iterator = blockTableRecord.newIterator();
2063
2140
  try {
2064
2141
  for (var iterator_2 = __values(iterator), iterator_2_1 = iterator_2.next(); !iterator_2_1.done; iterator_2_1 = iterator_2.next()) {
@@ -2071,12 +2148,12 @@ var AcTrView2d = /** @class */ (function (_super) {
2071
2148
  layoutView.addViewport(viewportView);
2072
2149
  }
2073
2150
  }
2074
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
2151
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
2075
2152
  finally {
2076
2153
  try {
2077
2154
  if (iterator_2_1 && !iterator_2_1.done && (_a = iterator_2.return)) _a.call(iterator_2);
2078
2155
  }
2079
- finally { if (e_8) throw e_8.error; }
2156
+ finally { if (e_10) throw e_10.error; }
2080
2157
  }
2081
2158
  };
2082
2159
  /**
@@ -2086,7 +2163,7 @@ var AcTrView2d = /** @class */ (function (_super) {
2086
2163
  */
2087
2164
  AcTrView2d.prototype.batchConvert = function (entities_3) {
2088
2165
  return __awaiter(this, arguments, void 0, function (entities, options) {
2089
- var progressive, i, entity, shouldConvert, threeEntity, isExtendBbox, layoutView, viewportView, fileName, error_1;
2166
+ var progressive, i, entity, shouldConvert, threeEntity, isExtendBbox, layoutView, viewportView, fileName, error_2;
2090
2167
  var _this = this;
2091
2168
  if (options === void 0) { options = {}; }
2092
2169
  return __generator(this, function (_a) {
@@ -2137,6 +2214,7 @@ var AcTrView2d = /** @class */ (function (_super) {
2137
2214
  // Even when a block expands to a single layer bucket, children authored on
2138
2215
  // layer "0" still inherit the INSERT layer for ByLayer traits (color, etc.).
2139
2216
  this._inheritedLayerMaterialMapper.remap(threeEntity.children, '0', threeEntity.layerName);
2217
+ threeEntity.userData.insertLayerName = threeEntity.layerName;
2140
2218
  }
2141
2219
  if (!(threeEntity instanceof AcTrGroup &&
2142
2220
  !threeEntity.isOnTheSameLayer)) return [3 /*break*/, 4];
@@ -2185,8 +2263,8 @@ var AcTrView2d = /** @class */ (function (_super) {
2185
2263
  }
2186
2264
  return [3 /*break*/, 10];
2187
2265
  case 8:
2188
- error_1 = _a.sent();
2189
- log.error("[AcTrView2d] Failed to convert entity ".concat(entity.objectId, " (").concat(entity.type, "):"), error_1);
2266
+ error_2 = _a.sent();
2267
+ log.error("[AcTrView2d] Failed to convert entity ".concat(entity.objectId, " (").concat(entity.type, "):"), error_2);
2190
2268
  return [3 /*break*/, 10];
2191
2269
  case 9:
2192
2270
  this.decreaseNumOfEntitiesToProcess();
@@ -2222,7 +2300,7 @@ var AcTrView2d = /** @class */ (function (_super) {
2222
2300
  AcTrView2d.prototype.handleGroup = function (group, progressive) {
2223
2301
  return __awaiter(this, void 0, void 0, function () {
2224
2302
  var children, objectsGroupByLayer, children_1, children_1_1, child, renderContext, groupObjectId, groupLayerName, groupChildBoxes, aggregateSpatialBbox;
2225
- var e_9, _a;
2303
+ var e_11, _a;
2226
2304
  var _this = this;
2227
2305
  return __generator(this, function (_b) {
2228
2306
  switch (_b.label) {
@@ -2259,12 +2337,12 @@ var AcTrView2d = /** @class */ (function (_super) {
2259
2337
  child.parent = null;
2260
2338
  }
2261
2339
  }
2262
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
2340
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
2263
2341
  finally {
2264
2342
  try {
2265
2343
  if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);
2266
2344
  }
2267
- finally { if (e_9) throw e_9.error; }
2345
+ finally { if (e_11) throw e_11.error; }
2268
2346
  }
2269
2347
  renderContext = group.renderContext;
2270
2348
  groupObjectId = group.objectId;
@@ -2289,13 +2367,22 @@ var AcTrView2d = /** @class */ (function (_super) {
2289
2367
  group.wcsBbox = aggregateSpatialBbox.clone();
2290
2368
  }
2291
2369
  objectsGroupByLayer.forEach(function (objects, layerName) {
2292
- // AutoCAD block rule: entities authored on layer "0" inherit the INSERT's layer.
2293
- // Non-zero layers keep their original layer name.
2370
+ // Nested layer-0 may already be resolved to an inner INSERT layer during
2371
+ // flatten. Remaining "0" buckets inherit this (outermost) INSERT layer.
2294
2372
  var effectiveLayerName = layerName === '0' ? groupLayerName : layerName;
2373
+ // Material remap must still treat authored layer-0 drawables as layer-0
2374
+ // ByLayer even when nest resolution already rewrote layerName.
2375
+ var sourceLayerForMaterials = objects.some(function (object) {
2376
+ var _a;
2377
+ var data = object.userData;
2378
+ return ((_a = data.authoredLayerName) !== null && _a !== void 0 ? _a : layerName) === '0';
2379
+ })
2380
+ ? '0'
2381
+ : layerName;
2295
2382
  // Keep runtime layer metadata/material cache aligned with the inherited layer so
2296
2383
  // later layer style edits (color, linetype, lineweight, transparency) target this
2297
2384
  // object set correctly.
2298
- _this._inheritedLayerMaterialMapper.remap(objects, layerName, effectiveLayerName);
2385
+ _this._inheritedLayerMaterialMapper.remap(objects, sourceLayerForMaterials, effectiveLayerName);
2299
2386
  // One INSERT can expand to children from multiple layers. Here we create one
2300
2387
  // render entity per layer bucket but preserve the INSERT object id for all
2301
2388
  // buckets, so selection/highlight still maps back to the same database object.
@@ -2307,6 +2394,7 @@ var AcTrView2d = /** @class */ (function (_super) {
2307
2394
  // If block-definition entities are on layer "0", this bucket now uses the layer
2308
2395
  // of the block reference itself (effectiveLayerName).
2309
2396
  entity.layerName = effectiveLayerName;
2397
+ entity.userData.insertLayerName = groupLayerName;
2310
2398
  entity.wcsBbox = aggregateSpatialBbox.clone();
2311
2399
  var entityUserData = entity.userData;
2312
2400
  entityUserData.spatialIndexChildBoxes = groupChildBoxes;