@mlightcad/cad-simple-viewer 1.7.4 → 1.7.6-preview.0
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.
- package/README.md +5 -0
- package/dist/cad-simple-viewer.js +11114 -8898
- package/dist/cad-simple-viewer.umd.cjs +432 -88
- package/dist/mtext-renderer-worker.js +2987 -2815
- package/find.ts +7 -0
- package/lib/app/AcApDocManager.d.ts +49 -1
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +150 -12
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApOpenDatabaseOptions.d.ts +33 -4
- package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
- package/lib/app/AcApOpenFileDialog.d.ts +1 -1
- package/lib/app/AcApOpenFileDialog.d.ts.map +1 -1
- package/lib/app/AcApOpenFileDialog.js +22 -92
- package/lib/app/AcApOpenFileDialog.js.map +1 -1
- package/lib/app/AcApOpenFileProfiler.d.ts +14 -0
- package/lib/app/AcApOpenFileProfiler.d.ts.map +1 -1
- package/lib/app/AcApOpenFileProfiler.js +25 -3
- package/lib/app/AcApOpenFileProfiler.js.map +1 -1
- package/lib/app/AcApOpenFileProgressController.d.ts +17 -9
- package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
- package/lib/app/AcApOpenFileProgressController.js +41 -20
- package/lib/app/AcApOpenFileProgressController.js.map +1 -1
- package/lib/app/AcApProgress.d.ts +5 -0
- package/lib/app/AcApProgress.d.ts.map +1 -1
- package/lib/app/AcApProgress.js +10 -0
- package/lib/app/AcApProgress.js.map +1 -1
- package/lib/app/dataSource/AcApDataSource.d.ts +97 -0
- package/lib/app/dataSource/AcApDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApDataSource.js +2 -0
- package/lib/app/dataSource/AcApDataSource.js.map +1 -0
- package/lib/app/dataSource/AcApDataSourceManager.d.ts +70 -0
- package/lib/app/dataSource/AcApDataSourceManager.d.ts.map +1 -0
- package/lib/app/dataSource/AcApDataSourceManager.js +84 -0
- package/lib/app/dataSource/AcApDataSourceManager.js.map +1 -0
- package/lib/app/dataSource/AcApLocalDataSource.d.ts +25 -0
- package/lib/app/dataSource/AcApLocalDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApLocalDataSource.js +153 -0
- package/lib/app/dataSource/AcApLocalDataSource.js.map +1 -0
- package/lib/app/dataSource/AcApUrlDataSource.d.ts +17 -0
- package/lib/app/dataSource/AcApUrlDataSource.d.ts.map +1 -0
- package/lib/app/dataSource/AcApUrlDataSource.js +214 -0
- package/lib/app/dataSource/AcApUrlDataSource.js.map +1 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts +42 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.d.ts.map +1 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.js +121 -0
- package/lib/app/dataSource/acapBuildDataSourceMenu.js.map +1 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts +17 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.d.ts.map +1 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js +74 -0
- package/lib/app/dataSource/acapInvokeDataSourceMenuAction.js.map +1 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.d.ts +13 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.d.ts.map +1 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.js +35 -0
- package/lib/app/dataSource/acapOpenCenteredPopup.js.map +1 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.d.ts +13 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.d.ts.map +1 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.js +90 -0
- package/lib/app/dataSource/acapOpenDataSourceResult.js.map +1 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts +15 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.d.ts.map +1 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.js +74 -0
- package/lib/app/dataSource/acapRunDataSourceMenuAction.js.map +1 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.d.ts +12 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.d.ts.map +1 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.js +88 -0
- package/lib/app/dataSource/acapWithDataSourceBusy.js.map +1 -0
- package/lib/app/dataSource/index.d.ts +11 -0
- package/lib/app/dataSource/index.d.ts.map +1 -0
- package/lib/app/dataSource/index.js +10 -0
- package/lib/app/dataSource/index.js.map +1 -0
- package/lib/app/index.d.ts +1 -0
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +1 -0
- package/lib/app/index.js.map +1 -1
- package/lib/app/openFileProgress.d.ts +8 -1
- package/lib/app/openFileProgress.d.ts.map +1 -1
- package/lib/app/openFileProgress.js +13 -2
- package/lib/app/openFileProgress.js.map +1 -1
- package/lib/app/syncCurrentSpaceFromTileMode.d.ts +25 -0
- package/lib/app/syncCurrentSpaceFromTileMode.d.ts.map +1 -0
- package/lib/app/syncCurrentSpaceFromTileMode.js +85 -0
- package/lib/app/syncCurrentSpaceFromTileMode.js.map +1 -0
- package/lib/editor/global/AcEdUiTheme.d.ts +10 -1
- package/lib/editor/global/AcEdUiTheme.d.ts.map +1 -1
- package/lib/editor/global/AcEdUiTheme.js +35 -2
- package/lib/editor/global/AcEdUiTheme.js.map +1 -1
- package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdCommandLine.js +7 -7
- package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
- package/lib/find/AcApFindNavigator.d.ts +59 -0
- package/lib/find/AcApFindNavigator.d.ts.map +1 -0
- package/lib/find/AcApFindNavigator.js +145 -0
- package/lib/find/AcApFindNavigator.js.map +1 -0
- package/lib/find/findDrawing.d.ts +100 -0
- package/lib/find/findDrawing.d.ts.map +1 -0
- package/lib/find/findDrawing.js +183 -0
- package/lib/find/findDrawing.js.map +1 -0
- package/lib/find/findText.d.ts +147 -0
- package/lib/find/findText.d.ts.map +1 -0
- package/lib/find/findText.js +527 -0
- package/lib/find/findText.js.map +1 -0
- package/lib/find/index.d.ts +3 -0
- package/lib/find/index.d.ts.map +1 -0
- package/lib/find/index.js +3 -0
- package/lib/find/index.js.map +1 -0
- package/lib/i18n/ar/main.d.ts +26 -0
- package/lib/i18n/ar/main.d.ts.map +1 -1
- package/lib/i18n/ar/main.js +26 -0
- package/lib/i18n/ar/main.js.map +1 -1
- package/lib/i18n/cs/main.d.ts +26 -0
- package/lib/i18n/cs/main.d.ts.map +1 -1
- package/lib/i18n/cs/main.js +26 -0
- package/lib/i18n/cs/main.js.map +1 -1
- package/lib/i18n/en/main.d.ts +26 -0
- package/lib/i18n/en/main.d.ts.map +1 -1
- package/lib/i18n/en/main.js +26 -0
- package/lib/i18n/en/main.js.map +1 -1
- package/lib/i18n/tr/main.d.ts +26 -0
- package/lib/i18n/tr/main.d.ts.map +1 -1
- package/lib/i18n/tr/main.js +26 -0
- package/lib/i18n/tr/main.js.map +1 -1
- package/lib/i18n/zh/main.d.ts +26 -0
- package/lib/i18n/zh/main.d.ts.map +1 -1
- package/lib/i18n/zh/main.js +26 -0
- package/lib/i18n/zh/main.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +29 -7
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +77 -38
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
- package/lib/ui/AcUiFileOpenPanel.d.ts +156 -0
- package/lib/ui/AcUiFileOpenPanel.d.ts.map +1 -0
- package/lib/ui/AcUiFileOpenPanel.js +695 -0
- package/lib/ui/AcUiFileOpenPanel.js.map +1 -0
- package/lib/ui/icons.d.ts +2 -0
- package/lib/ui/icons.d.ts.map +1 -1
- package/lib/ui/icons.js +2 -0
- package/lib/ui/icons.js.map +1 -1
- package/lib/ui/index.d.ts +1 -0
- package/lib/ui/index.d.ts.map +1 -1
- package/lib/ui/index.js +1 -0
- package/lib/ui/index.js.map +1 -1
- package/lib/util/AcApTextStyleFontPreload.d.ts +42 -0
- package/lib/util/AcApTextStyleFontPreload.d.ts.map +1 -0
- package/lib/util/AcApTextStyleFontPreload.js +149 -0
- package/lib/util/AcApTextStyleFontPreload.js.map +1 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/view/AcTrConvertQueue.d.ts +78 -0
- package/lib/view/AcTrConvertQueue.d.ts.map +1 -0
- package/lib/view/AcTrConvertQueue.js +143 -0
- package/lib/view/AcTrConvertQueue.js.map +1 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts +9 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
- package/lib/view/AcTrGroupWcsBboxAssert.js +12 -0
- package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
- package/lib/view/AcTrLayer.d.ts.map +1 -1
- package/lib/view/AcTrLayer.js +5 -1
- package/lib/view/AcTrLayer.js.map +1 -1
- package/lib/view/AcTrLayout.d.ts +5 -0
- package/lib/view/AcTrLayout.d.ts.map +1 -1
- package/lib/view/AcTrLayout.js +26 -0
- package/lib/view/AcTrLayout.js.map +1 -1
- package/lib/view/AcTrLayoutView.d.ts.map +1 -1
- package/lib/view/AcTrLayoutView.js +3 -1
- package/lib/view/AcTrLayoutView.js.map +1 -1
- package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -0
- package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
- package/lib/view/AcTrProgressiveOpenFitController.js +2 -1
- package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
- package/lib/view/AcTrScene.d.ts +7 -0
- package/lib/view/AcTrScene.d.ts.map +1 -1
- package/lib/view/AcTrScene.js +78 -48
- package/lib/view/AcTrScene.js.map +1 -1
- package/lib/view/AcTrView2d.d.ts +234 -18
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +1017 -296
- package/lib/view/AcTrView2d.js.map +1 -1
- package/package.json +17 -10
- package/src/find/AcApFindNavigator.ts +190 -0
- package/src/find/findDrawing.ts +211 -0
- package/src/find/findText.ts +595 -0
- package/src/find/index.ts +2 -0
- package/src/ui/icons.ts +4 -0
package/find.ts
ADDED
|
@@ -9,6 +9,7 @@ import { AcApDocSession } from './AcApDocSession';
|
|
|
9
9
|
import { AcApDocument } from './AcApDocument';
|
|
10
10
|
import { AcApOpenDatabaseOptions } from './AcApOpenDatabaseOptions';
|
|
11
11
|
import { type AcApOpenDocumentDefaultsResolver } from './AcApOpenFileDialog';
|
|
12
|
+
import { AcApDataSourceManager } from './dataSource';
|
|
12
13
|
import { type AcUiNotificationBellPlacement } from './notification';
|
|
13
14
|
/**
|
|
14
15
|
* Event arguments for document-related events.
|
|
@@ -266,6 +267,8 @@ export declare class AcApDocManager {
|
|
|
266
267
|
private _commandManager;
|
|
267
268
|
/** Plugin manager */
|
|
268
269
|
private _pluginManager;
|
|
270
|
+
/** Data source manager (local, URL, cloud plugins) */
|
|
271
|
+
private _dataSourceManager;
|
|
269
272
|
/**
|
|
270
273
|
* Alias overrides provided by caller options.
|
|
271
274
|
*
|
|
@@ -291,6 +294,13 @@ export declare class AcApDocManager {
|
|
|
291
294
|
private _workersReadyCheckPromise?;
|
|
292
295
|
/** Monotonically increasing counter used to generate overlay ids */
|
|
293
296
|
private _nextOverlayId;
|
|
297
|
+
/**
|
|
298
|
+
* In-flight / completed preset (default+symbol) font load started at open.
|
|
299
|
+
* Reused across opens so IndexedDB/mesh parse is not repeated.
|
|
300
|
+
*/
|
|
301
|
+
private _presetFontsForOpenPromise;
|
|
302
|
+
/** Names last requested by {@link ensurePresetFontsForOpen} (OPENPROF). */
|
|
303
|
+
private _lastPresetFontsForOpen;
|
|
294
304
|
/** Events fired during document lifecycle */
|
|
295
305
|
readonly events: {
|
|
296
306
|
/** Fired before a document starts opening */
|
|
@@ -486,6 +496,12 @@ export declare class AcApDocManager {
|
|
|
486
496
|
* @returns The plugin manager
|
|
487
497
|
*/
|
|
488
498
|
get pluginManager(): AcApPluginManager;
|
|
499
|
+
/**
|
|
500
|
+
* Gets data source manager for opening drawings from local, URL, or cloud.
|
|
501
|
+
*
|
|
502
|
+
* @returns The data source manager
|
|
503
|
+
*/
|
|
504
|
+
get dataSourceManager(): AcApDataSourceManager;
|
|
489
505
|
/**
|
|
490
506
|
* Color / font-size session accessory for measurement and markup drawing.
|
|
491
507
|
*/
|
|
@@ -580,6 +596,33 @@ export declare class AcApDocManager {
|
|
|
580
596
|
* @see {@link createExampleDoc} - Method that uses this for example document creation
|
|
581
597
|
*/
|
|
582
598
|
loadDefaultFonts(fonts?: string[]): Promise<void>;
|
|
599
|
+
/**
|
|
600
|
+
* Starts loading the active default/symbol preset chain
|
|
601
|
+
* ({@link FontManager.getFontsToLoad}) so it overlaps DWG/DXF parse.
|
|
602
|
+
*
|
|
603
|
+
* Preset faces are drawing-independent. Callers must not await this from
|
|
604
|
+
* the open hot path — linework convert continues; glyph finalize awaits
|
|
605
|
+
* {@link awaitPresetFontsReady} instead.
|
|
606
|
+
*
|
|
607
|
+
* - Worker mode: {@link AcTrMTextRenderer.loadFonts} with `scope: 'all'` so
|
|
608
|
+
* every isolate has fallbacks before glyph bake (no main-thread dual parse).
|
|
609
|
+
* - Main mode: {@link FontManager.requestFonts} (full await, including mesh).
|
|
610
|
+
*
|
|
611
|
+
* The promise is reused for the process lifetime. A 30s deadline matches
|
|
612
|
+
* {@link installFontFileLoadTimeout} so a stalled CDN cannot pin the open
|
|
613
|
+
* overlay; on timeout glyph draw still falls back to `'?'`.
|
|
614
|
+
*/
|
|
615
|
+
ensurePresetFontsForOpen(): Promise<void>;
|
|
616
|
+
/**
|
|
617
|
+
* Waits until {@link ensurePresetFontsForOpen} has finished (starting it if
|
|
618
|
+
* open never kicked it off). Used by deferred glyph finalize.
|
|
619
|
+
*/
|
|
620
|
+
awaitPresetFontsReady(): Promise<void>;
|
|
621
|
+
/**
|
|
622
|
+
* Preset face names from the last {@link ensurePresetFontsForOpen} call.
|
|
623
|
+
* Empty until the first open starts preset preload.
|
|
624
|
+
*/
|
|
625
|
+
get lastPresetFontsForOpen(): readonly string[];
|
|
583
626
|
/**
|
|
584
627
|
* Opens a CAD document from a URL.
|
|
585
628
|
*
|
|
@@ -777,7 +820,7 @@ export declare class AcApDocManager {
|
|
|
777
820
|
* including when MTEXT geometry itself is drawn in workers. A stalled CDN
|
|
778
821
|
* therefore keeps `_pendingGeometryJobs` nonzero and the open overlay up.
|
|
779
822
|
*
|
|
780
|
-
* Worker isolates also load fonts, but {@link
|
|
823
|
+
* Worker isolates also load fonts, but {@link AcApDocManager.ensurePresetFontsForOpen}
|
|
781
824
|
* races that path with the same deadline; in-worker render requests still
|
|
782
825
|
* fall back to WebWorkerRenderer's request timeout.
|
|
783
826
|
*/
|
|
@@ -941,6 +984,11 @@ export declare class AcApDocManager {
|
|
|
941
984
|
*
|
|
942
985
|
* Sets up the active layout block table record ID and model space block table
|
|
943
986
|
* record ID based on the current document's space configuration.
|
|
987
|
+
*
|
|
988
|
+
* Does **not** re-apply `$TILEMODE`: layout tab switches update
|
|
989
|
+
* `currentSpaceId` without flipping `tilemode`, so syncing here would yank
|
|
990
|
+
* the user back to paper when reactivating a session left on Model.
|
|
991
|
+
* Open-time sync lives in {@link onAfterOpenDocument}.
|
|
944
992
|
*/
|
|
945
993
|
setActiveLayout(view?: AcTrView2d, database?: AcDbDatabase): void;
|
|
946
994
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcApDocManager.d.ts","sourceRoot":"","sources":["../../src/app/AcApDocManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EAGZ,uBAAuB,EAGxB,MAAM,uBAAuB,CAAA;AA2E9B,OAAO,EAEL,WAAW,EACX,gBAAgB,EAChB,YAAY,EAEb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EACL,uBAAuB,EAExB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,gCAAgC,EAGtC,MAAM,sBAAsB,CAAA;AAS7B,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcApDocManager.d.ts","sourceRoot":"","sources":["../../src/app/AcApDocManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EAGZ,uBAAuB,EAGxB,MAAM,uBAAuB,CAAA;AA2E9B,OAAO,EAEL,WAAW,EACX,gBAAgB,EAChB,YAAY,EAEb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EACL,uBAAuB,EAExB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,gCAAgC,EAGtC,MAAM,sBAAsB,CAAA;AAS7B,OAAO,EACL,qBAAqB,EAGtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,gBAAgB,CAAA;AA0DvB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yCAAyC;IACzC,GAAG,EAAE,YAAY,CAAA;IACjB,2DAA2D;IAC3D,IAAI,EAAE,YAAY,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IAExB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAC3B;AAKD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IAEtC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAA;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,UAAU,CAAC,EAAE,KAAK,CACd,OAAO,sBAAsB,EAAE,UAAU,GACzC,CAAC,MAAM,OAAO,sBAAsB,EAAE,UAAU,CAAC,CACpD,CAAA;QACD;;WAEG;QACH,UAAU,CAAC,EAAE;YACX,iDAAiD;YACjD,UAAU,EAAE,MAAM,CAAA;YAClB,wCAAwC;YACxC,UAAU,EAAE,MAAM,EAAE,CAAA;YACpB,mEAAmE;YACnE,eAAe,CAAC,EAAE,OAAO,CAAA;SAC1B,CAAA;KACF,CAAA;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAElD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;IAEvD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EACf,OAAO,GACP;QACE;;;WAGG;QACH,IAAI,CAAC,EAAE,WAAW,CAAA;QAClB,0DAA0D;QAC1D,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB;;;;;WAKG;QACH,SAAS,CAAC,EAAE,6BAA6B,CAAA;KAC1C,CAAA;CACN;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,kFAAkF;IAClF,OAAO,CAAC,SAAS,CAAuB;IACxC,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAAiB;IACvC,kEAAkE;IAClE,OAAO,CAAC,SAAS,CAAa;IAC9B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,iEAAiE;IACjE,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAAI;IAC1B,8CAA8C;IAC9C,OAAO,CAAC,WAAW,CAAgB;IACnC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAQ;IACxB,oEAAoE;IACpE,OAAO,CAAC,kBAAkB,CAAa;IACvC,uDAAuD;IACvD,OAAO,CAAC,cAAc,CAAmB;IACzC,yDAAyD;IACzD,OAAO,CAAC,iBAAiB,CAAgC;IACzD,iEAAiE;IACjE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,sBAAsB;IACtB,OAAO,CAAC,eAAe,CAAkB;IACzC,qBAAqB;IACrB,OAAO,CAAC,cAAc,CAAmB;IACzC,sDAAsD;IACtD,OAAO,CAAC,kBAAkB,CAAuB;IACjD;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB,CAAuB;IACrD,wDAAwD;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAAkC;IAChE,+EAA+E;IAC/E,OAAO,CAAC,cAAc,CAAS;IAC/B,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAgB;IACzC,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,sEAAsE;IACtE,OAAO,CAAC,aAAa,CAAuB;IAC5C,uCAAuC;IACvC,OAAO,CAAC,yBAAyB,CAAC,CAAkB;IACpD,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAI;IAC1B;;;OAGG;IACH,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,2EAA2E;IAC3E,OAAO,CAAC,uBAAuB,CAAe;IAE9C,6CAA6C;IAC7C,SAAgB,MAAM;QACpB,6CAA6C;;QAE7C,2CAA2C;;QAE3C,2CAA2C;;QAE3C,2CAA2C;;QAE3C,sDAAsD;;QAEtD,6CAA6C;;QAE7C,oDAAoD;;mBACR,OAAO;;MACpD;IAED;;;;;;;;OAQG;IACH,OAAO;IAgJP;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,GAAE,qBAA0B;IAOzD;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAC5B,iBAAiB,CAAC,EAAE,kBAAkB,GACrC,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;OAKG;IACH,MAAM,KAAK,QAAQ,mBAKlB;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,cAAc,GAAG,SAAS;IAInD;;OAEG;IACG,OAAO;IAoBb;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,GAAG,IAAI,CAEjC;IAED;;;;;;;OAOG;IACH,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BnC;;;;;;OAMG;IACH,IAAI,OAAO,gBAEV;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,YAAY,EAAE,CAE9B;IAED;;OAEG;IACH,IAAI,aAAa,WAEhB;IAED;;OAEG;IACH,IAAI,eAAe,WAElB;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS;IAIzD;;;;;;OAMG;IACH,IAAI,WAAW,iBAEd;IAED;;;;OAIG;IACH,IAAI,iBAAiB,iBAEpB;IAED;;;;;;;;;OASG;IACG,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAqD3D;;OAEG;IACH,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,UAAU,GAAG,SAAS,CAEtC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,UAAU;IAenD;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO;IAKzE;;OAEG;IACH,mBAAmB;IAInB;;OAEG;IACH,IAAI,iBAAiB,IAAI,YAAY,GAAG,SAAS,CAOhD;IAED;;;;;;;OAOG;IACG,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IA6DzD;;;;OAIG;IACH,IAAI,OAAO,IACmB,UAAU,CACvC;IAED;;;;OAIG;IACH,IAAI,MAAM,iCAET;IAED;;;;OAIG;IACH,IAAI,cAAc,qBAEjB;IAED;;;;OAIG;IACH,IAAI,aAAa,sBAEhB;IAED;;;;OAIG;IACH,IAAI,iBAAiB,0BAEpB;IAED;;OAEG;IACH,IAAI,yBAAyB,2DAE5B;IAED;;OAEG;IACH,IAAI,OAAO,WAEV;IAED;;;OAGG;IACH,IAAI,aAAa,YAEhB;IAED;;;;;;OAMG;IACH,aAAa,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAgB5D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;;;;;;;OAQG;IACH,IAAI,aAAa,mDAEhB;IAED;;;;OAIG;IACG,gBAAgB;IAWtB;;;;;;;;;;OAUG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;IAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;IAQvC;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCzC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;OAGG;IACH,IAAI,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAE9C;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAsB5D;;;;;;;;;;;;;;;;;;OAkBG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,uBAAuB,EAChC,IAAI,CAAC,EAAE,UAAU;IA2BnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,uBAAuB,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAO,GAClE,OAAO,CAAC,MAAM,CAAC;IAclB;;;;;;;;;OASG;IACG,uBAAuB,CAC3B,EAAE,EAAE,YAAY,EAChB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,GACpC,OAAO,CAAC,MAAM,CAAC;IAYlB;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgBzC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAW/D;;;;OAIG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAWtC;;;;OAIG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE;IAQ1C,gDAAgD;IAChD,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED;;;;;;;OAOG;IACH,iBAAiB,CACf,OAAO,EAAE,yBAAyB,EAClC,IAAI,CAAC,EAAE,UAAU,GAChB,IAAI;IAKP;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO;IAKhD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAKzD;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAK1C;;;;;;;OAOG;IACH,wBAAwB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,yBAAyB,EAClC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO;IAcV;;;;;OAKG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAQ3D;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,uBAAuB;IAwBnD;;OAEG;IACH,uBAAuB,CAAC,QAAQ,CAAC,EAAE,gCAAgC;IAQnE;;OAEG;IACH,2BAA2B,IACvB,uBAAuB,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAWpC;;;OAGG;IACH,KAAK;IAKL;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAiClC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM;IAO9B;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM;IAO/B;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAOrC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAqHxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,2BAA2B;IA2BnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAQlC;;;;;;;;;;;OAWG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAYzC;;;;;;;;;OASG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM;IAkB9B;;;;;;OAMG;YACW,mBAAmB;IAiDjC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAcpC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;;;;;;;;;OAUG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,YAAY;IAO1D;;;;;;;OAOG;IACH,SAAS,CAAC,oBAAoB,CAC5B,OAAO,CAAC,EAAE,uBAAuB,EACjC,cAAc,UAAO;IA2CvB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,mBAAmB,CAC3B,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,uBAAuB;IA6InC;;;;;;OAMG;IACH,SAAS,CAAC,4BAA4B,IAAI,OAAO;IAajD;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU;IAmBlB;;;;;;;OAOG;IACH,OAAO,CAAC,kCAAkC;IAW1C;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAwBpC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAK7C;;;OAGG;IACH,OAAO,KAAK,gBAAgB,GAE3B;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;;OAIG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;OAKG;IACG,iBAAiB,CAAC,CAAC,EACvB,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;;OAQG;YACW,WAAW;IAyDzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;;;;;OASG;YACW,iBAAiB;IAuC/B;;OAEG;YACW,sBAAsB;IAOpC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IA0BpC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAKxB"}
|
|
@@ -117,7 +117,9 @@ import { AcApOpenFileProfiler } from './AcApOpenFileProfiler';
|
|
|
117
117
|
import { AcApOpenFileProgressController } from './AcApOpenFileProgressController';
|
|
118
118
|
import { checkWebworkerReadiness, DEFAULT_WEBWORKER_FILE_URLS, resetWebworkerReadinessCache } from './AcApWebworkerReadiness';
|
|
119
119
|
import { AcApXrefManager } from './AcApXrefManager';
|
|
120
|
+
import { AcApDataSourceManager, AcApLocalDataSource, AcApUrlDataSource } from './dataSource';
|
|
120
121
|
import { acapDisposeNotificationService, acapInstallNotificationService } from './notification';
|
|
122
|
+
import { syncCurrentSpaceFromTileMode } from './syncCurrentSpaceFromTileMode';
|
|
121
123
|
var DEFAULT_BASE_URL = 'https://cdn.jsdelivr.net/gh/mlightcad/cad-data';
|
|
122
124
|
/** Default ISO drawing template loaded by {@link AcApDocManager.newDocument}. */
|
|
123
125
|
var DEFAULT_NEW_DRAWING_TEMPLATE = 'templates/acadiso.dxf';
|
|
@@ -210,6 +212,13 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
210
212
|
this._workersReady = null;
|
|
211
213
|
/** Monotonically increasing counter used to generate overlay ids */
|
|
212
214
|
this._nextOverlayId = 1;
|
|
215
|
+
/**
|
|
216
|
+
* In-flight / completed preset (default+symbol) font load started at open.
|
|
217
|
+
* Reused across opens so IndexedDB/mesh parse is not repeated.
|
|
218
|
+
*/
|
|
219
|
+
this._presetFontsForOpenPromise = null;
|
|
220
|
+
/** Names last requested by {@link ensurePresetFontsForOpen} (OPENPROF). */
|
|
221
|
+
this._lastPresetFontsForOpen = [];
|
|
213
222
|
/** Events fired during document lifecycle */
|
|
214
223
|
this.events = {
|
|
215
224
|
/** Fired before a document starts opening */
|
|
@@ -296,17 +305,18 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
296
305
|
this._commandManager = new AcEdCommandStack();
|
|
297
306
|
this.registerCommands();
|
|
298
307
|
this._pluginManager = new AcApPluginManager(this.context, this._commandManager);
|
|
308
|
+
this._dataSourceManager = new AcApDataSourceManager();
|
|
309
|
+
this._dataSourceManager.register(new AcApLocalDataSource());
|
|
310
|
+
this._dataSourceManager.register(new AcApUrlDataSource());
|
|
299
311
|
var busyHost = (_e = options.busyIndicatorHost) !== null && _e !== void 0 ? _e : view.container;
|
|
300
312
|
this._busyIndicatorHost = busyHost;
|
|
301
313
|
this._openFileProgress = new AcApOpenFileProgressController(busyHost);
|
|
302
314
|
this._openFileProgress.setSceneBusyGate(function () {
|
|
303
315
|
var view = _this.openProgressView;
|
|
304
|
-
// Progressive open hides
|
|
305
|
-
//
|
|
306
|
-
//
|
|
307
|
-
return view.
|
|
308
|
-
? view.isConvertingEntities
|
|
309
|
-
: view.isProcessingEntities;
|
|
316
|
+
// Progressive open hides at CONVERSION END (see-through path) and does
|
|
317
|
+
// not use this gate. Default open keeps "Rendering drawing ..." until
|
|
318
|
+
// entity convert and deferred glyph jobs both finish.
|
|
319
|
+
return view.isProcessingEntities;
|
|
310
320
|
});
|
|
311
321
|
this._openFileProgress.setOnHidden(function () { return _this.onOpenProgressHidden(); });
|
|
312
322
|
this._busyIndicator = new AcApBusyIndicator(busyHost);
|
|
@@ -628,12 +638,14 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
628
638
|
acdbHostApplicationServices().workingDatabase = doc.database;
|
|
629
639
|
this._pluginManager.setContext(session.context);
|
|
630
640
|
this.curView.bindDrawDatabase(doc.database);
|
|
641
|
+
// Bind the view to the session's currentSpaceId before documentActivated
|
|
642
|
+
// so layout tabs snapshot the correct active layout.
|
|
643
|
+
this.setActiveLayout();
|
|
644
|
+
this.curView.syncDisplaySysVars(doc.database);
|
|
631
645
|
this.events.documentActivated.dispatch({
|
|
632
646
|
doc: doc,
|
|
633
647
|
mode: doc.openMode
|
|
634
648
|
});
|
|
635
|
-
this.setActiveLayout();
|
|
636
|
-
this.curView.syncDisplaySysVars(doc.database);
|
|
637
649
|
if (!this._openingSession) {
|
|
638
650
|
this.syncProgressOverlayHost();
|
|
639
651
|
}
|
|
@@ -839,6 +851,18 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
839
851
|
enumerable: false,
|
|
840
852
|
configurable: true
|
|
841
853
|
});
|
|
854
|
+
Object.defineProperty(AcApDocManager.prototype, "dataSourceManager", {
|
|
855
|
+
/**
|
|
856
|
+
* Gets data source manager for opening drawings from local, URL, or cloud.
|
|
857
|
+
*
|
|
858
|
+
* @returns The data source manager
|
|
859
|
+
*/
|
|
860
|
+
get: function () {
|
|
861
|
+
return this._dataSourceManager;
|
|
862
|
+
},
|
|
863
|
+
enumerable: false,
|
|
864
|
+
configurable: true
|
|
865
|
+
});
|
|
842
866
|
Object.defineProperty(AcApDocManager.prototype, "drawStyleSessionAccessory", {
|
|
843
867
|
/**
|
|
844
868
|
* Color / font-size session accessory for measurement and markup drawing.
|
|
@@ -1026,6 +1050,81 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
1026
1050
|
});
|
|
1027
1051
|
});
|
|
1028
1052
|
};
|
|
1053
|
+
/**
|
|
1054
|
+
* Starts loading the active default/symbol preset chain
|
|
1055
|
+
* ({@link FontManager.getFontsToLoad}) so it overlaps DWG/DXF parse.
|
|
1056
|
+
*
|
|
1057
|
+
* Preset faces are drawing-independent. Callers must not await this from
|
|
1058
|
+
* the open hot path — linework convert continues; glyph finalize awaits
|
|
1059
|
+
* {@link awaitPresetFontsReady} instead.
|
|
1060
|
+
*
|
|
1061
|
+
* - Worker mode: {@link AcTrMTextRenderer.loadFonts} with `scope: 'all'` so
|
|
1062
|
+
* every isolate has fallbacks before glyph bake (no main-thread dual parse).
|
|
1063
|
+
* - Main mode: {@link FontManager.requestFonts} (full await, including mesh).
|
|
1064
|
+
*
|
|
1065
|
+
* The promise is reused for the process lifetime. A 30s deadline matches
|
|
1066
|
+
* {@link installFontFileLoadTimeout} so a stalled CDN cannot pin the open
|
|
1067
|
+
* overlay; on timeout glyph draw still falls back to `'?'`.
|
|
1068
|
+
*/
|
|
1069
|
+
AcApDocManager.prototype.ensurePresetFontsForOpen = function () {
|
|
1070
|
+
if (this._presetFontsForOpenPromise) {
|
|
1071
|
+
return this._presetFontsForOpenPromise;
|
|
1072
|
+
}
|
|
1073
|
+
var names = __spreadArray([], __read(FontManager.instance.getFontsToLoad()), false);
|
|
1074
|
+
this._lastPresetFontsForOpen = names;
|
|
1075
|
+
if (names.length === 0) {
|
|
1076
|
+
this._presetFontsForOpenPromise = Promise.resolve();
|
|
1077
|
+
return this._presetFontsForOpenPromise;
|
|
1078
|
+
}
|
|
1079
|
+
var mtextRenderer = AcTrMTextRenderer.getInstance();
|
|
1080
|
+
var parseSite = mtextRenderer.getRenderMode() === 'worker' ? 'worker' : 'main';
|
|
1081
|
+
// Keep in sync with installFontFileLoadTimeout / text-style preload race.
|
|
1082
|
+
var timeoutMs = 30000;
|
|
1083
|
+
var load = parseSite === 'worker'
|
|
1084
|
+
? mtextRenderer.loadFonts(names, { scope: 'all' }).then(function () { return undefined; })
|
|
1085
|
+
: FontManager.instance.requestFonts(names).then(function () { return undefined; });
|
|
1086
|
+
this._presetFontsForOpenPromise = new Promise(function (resolve) {
|
|
1087
|
+
var timer = setTimeout(function () {
|
|
1088
|
+
// Glyph draw still falls back via FontManager defaults / '?'.
|
|
1089
|
+
resolve();
|
|
1090
|
+
}, timeoutMs);
|
|
1091
|
+
load.then(function () {
|
|
1092
|
+
clearTimeout(timer);
|
|
1093
|
+
resolve();
|
|
1094
|
+
}, function () {
|
|
1095
|
+
clearTimeout(timer);
|
|
1096
|
+
resolve();
|
|
1097
|
+
});
|
|
1098
|
+
});
|
|
1099
|
+
return this._presetFontsForOpenPromise;
|
|
1100
|
+
};
|
|
1101
|
+
/**
|
|
1102
|
+
* Waits until {@link ensurePresetFontsForOpen} has finished (starting it if
|
|
1103
|
+
* open never kicked it off). Used by deferred glyph finalize.
|
|
1104
|
+
*/
|
|
1105
|
+
AcApDocManager.prototype.awaitPresetFontsReady = function () {
|
|
1106
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1107
|
+
return __generator(this, function (_a) {
|
|
1108
|
+
switch (_a.label) {
|
|
1109
|
+
case 0: return [4 /*yield*/, this.ensurePresetFontsForOpen()];
|
|
1110
|
+
case 1:
|
|
1111
|
+
_a.sent();
|
|
1112
|
+
return [2 /*return*/];
|
|
1113
|
+
}
|
|
1114
|
+
});
|
|
1115
|
+
});
|
|
1116
|
+
};
|
|
1117
|
+
Object.defineProperty(AcApDocManager.prototype, "lastPresetFontsForOpen", {
|
|
1118
|
+
/**
|
|
1119
|
+
* Preset face names from the last {@link ensurePresetFontsForOpen} call.
|
|
1120
|
+
* Empty until the first open starts preset preload.
|
|
1121
|
+
*/
|
|
1122
|
+
get: function () {
|
|
1123
|
+
return this._lastPresetFontsForOpen;
|
|
1124
|
+
},
|
|
1125
|
+
enumerable: false,
|
|
1126
|
+
configurable: true
|
|
1127
|
+
});
|
|
1029
1128
|
/**
|
|
1030
1129
|
* Opens a CAD document from a URL.
|
|
1031
1130
|
*
|
|
@@ -1544,7 +1643,7 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
1544
1643
|
* including when MTEXT geometry itself is drawn in workers. A stalled CDN
|
|
1545
1644
|
* therefore keeps `_pendingGeometryJobs` nonzero and the open overlay up.
|
|
1546
1645
|
*
|
|
1547
|
-
* Worker isolates also load fonts, but {@link
|
|
1646
|
+
* Worker isolates also load fonts, but {@link AcApDocManager.ensurePresetFontsForOpen}
|
|
1548
1647
|
* races that path with the same deadline; in-worker render requests still
|
|
1549
1648
|
* fall back to WebWorkerRenderer's request timeout.
|
|
1550
1649
|
*/
|
|
@@ -2025,6 +2124,11 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
2025
2124
|
*
|
|
2026
2125
|
* Sets up the active layout block table record ID and model space block table
|
|
2027
2126
|
* record ID based on the current document's space configuration.
|
|
2127
|
+
*
|
|
2128
|
+
* Does **not** re-apply `$TILEMODE`: layout tab switches update
|
|
2129
|
+
* `currentSpaceId` without flipping `tilemode`, so syncing here would yank
|
|
2130
|
+
* the user back to paper when reactivating a session left on Model.
|
|
2131
|
+
* Open-time sync lives in {@link onAfterOpenDocument}.
|
|
2028
2132
|
*/
|
|
2029
2133
|
AcApDocManager.prototype.setActiveLayout = function (view, database) {
|
|
2030
2134
|
var currentView = view !== null && view !== void 0 ? view : this.curView;
|
|
@@ -2065,6 +2169,19 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
2065
2169
|
this.openProgressView.progressiveRendering =
|
|
2066
2170
|
(_a = options === null || options === void 0 ? void 0 : options.progressiveRendering) !== null && _a !== void 0 ? _a : false;
|
|
2067
2171
|
this._openFileProgress.setSeeThroughOverlay((_b = options === null || options === void 0 ? void 0 : options.progressiveRendering) !== null && _b !== void 0 ? _b : false);
|
|
2172
|
+
// Headless HTML export: convert off layers once, skip pick indexes, and
|
|
2173
|
+
// optionally skip cooperative yields that only matter for an interactive UI.
|
|
2174
|
+
this.openProgressView.convertInvisibleLayers =
|
|
2175
|
+
(options === null || options === void 0 ? void 0 : options.convertInvisibleLayers) === true;
|
|
2176
|
+
this.openProgressView.cooperativeYield = (options === null || options === void 0 ? void 0 : options.cooperativeYield) !== false;
|
|
2177
|
+
var openCadScene = this.openProgressView.cadScene;
|
|
2178
|
+
if (openCadScene) {
|
|
2179
|
+
openCadScene.skipSpatialIndex = (options === null || options === void 0 ? void 0 : options.skipSpatialIndex) === true;
|
|
2180
|
+
}
|
|
2181
|
+
// Preset fonts are drawing-independent — start immediately so download /
|
|
2182
|
+
// mesh parse overlaps db.read. Glyph finalize awaits the promise; linework
|
|
2183
|
+
// convert does not.
|
|
2184
|
+
void this.ensurePresetFontsForOpen();
|
|
2068
2185
|
// OPENPROF: start stage timings before db.read / entity flush.
|
|
2069
2186
|
this._openFileProfiler.begin(this.context.doc.database);
|
|
2070
2187
|
};
|
|
@@ -2093,13 +2210,18 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
2093
2210
|
var view = session.context.view;
|
|
2094
2211
|
session.doc.destroy();
|
|
2095
2212
|
var doc = session.doc;
|
|
2213
|
+
var db = doc.database;
|
|
2214
|
+
// Header parsing stores `$TILEMODE` but leaves currentSpaceId on model.
|
|
2215
|
+
// Sync once at open (not in setActiveLayout) so later Model-tab visits
|
|
2216
|
+
// survive session reactivation. Do this before documentActivated so
|
|
2217
|
+
// layout tabs snapshot the correct active layout.
|
|
2218
|
+
syncCurrentSpaceFromTileMode(db);
|
|
2219
|
+
this.setActiveLayout(view, db);
|
|
2220
|
+
view.syncDisplaySysVars(db);
|
|
2096
2221
|
this.events.documentActivated.dispatch({
|
|
2097
2222
|
doc: doc,
|
|
2098
2223
|
mode: this.getDocumentEventMode(options)
|
|
2099
2224
|
});
|
|
2100
|
-
this.setActiveLayout(view, doc.database);
|
|
2101
|
-
view.syncDisplaySysVars(doc.database);
|
|
2102
|
-
var db = doc.database;
|
|
2103
2225
|
// View framing at document open time (see `openViewMode`):
|
|
2104
2226
|
//
|
|
2105
2227
|
// 1. **Paper space + has LIMMIN/LIMMAX**: frame the authoritative
|
|
@@ -2190,6 +2312,22 @@ var AcApDocManager = /** @class */ (function () {
|
|
|
2190
2312
|
if (framedSynchronously) {
|
|
2191
2313
|
AcApZoomCmd.rememberOriginalView(view, db.currentSpaceId);
|
|
2192
2314
|
}
|
|
2315
|
+
// Headless multi-layout export: convert paper tabs the open stream did
|
|
2316
|
+
// not already claim. `ensureEntitiesConvertedForExport` waits for the
|
|
2317
|
+
// open drain first, so this must not be a second full pass over
|
|
2318
|
+
// in-flight model-space entities (that pass is serial and duplicates
|
|
2319
|
+
// geometry). Fire-and-forget: onAfterOpenDocument is sync;
|
|
2320
|
+
// waitUntilIdle / CLI waitForSceneIdle observe the work this starts.
|
|
2321
|
+
if (options === null || options === void 0 ? void 0 : options.convertAllLayouts) {
|
|
2322
|
+
void view
|
|
2323
|
+
.ensureEntitiesConvertedForExport({
|
|
2324
|
+
includeInvisibleLayers: options.convertInvisibleLayers !== false,
|
|
2325
|
+
includeLayouts: true
|
|
2326
|
+
})
|
|
2327
|
+
.catch(function (error) {
|
|
2328
|
+
log.error('[AcApDocManager] convertAllLayouts export convert failed', error);
|
|
2329
|
+
});
|
|
2330
|
+
}
|
|
2193
2331
|
// OPENPROF: db.read is done; wait for batchConvert to drain, then print.
|
|
2194
2332
|
this._openFileProfiler.markReadCompleteAndScheduleReport(view);
|
|
2195
2333
|
}
|