@mlightcad/cad-simple-viewer 1.7.5 → 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/dist/cad-simple-viewer.js +8295 -7508
- package/dist/cad-simple-viewer.umd.cjs +83 -83
- package/dist/mtext-renderer-worker.js +2987 -2815
- package/find.ts +7 -0
- package/lib/app/AcApDocManager.d.ts +5 -0
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +28 -15
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApOpenDatabaseOptions.d.ts +8 -6
- package/lib/app/AcApOpenDatabaseOptions.d.ts.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/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/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/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/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.map +1 -1
- package/lib/view/AcTrLayout.js +15 -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/AcTrView2d.d.ts +167 -18
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +746 -212
- 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
|
@@ -61,13 +61,14 @@ import { isOpenFileProgressComplete } from './openFileProgress';
|
|
|
61
61
|
* `setMessage` only when the localized stage text changes. Progress events
|
|
62
62
|
* still emit on every callback so listeners see fine-grained percentages.
|
|
63
63
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* Deprecated `waitForTextGeometry` is
|
|
64
|
+
* Progressive open (`setSeeThroughOverlay(true)`): shows a pointer-blocking
|
|
65
|
+
* overlay through FETCH_FILE and the full CONVERSION pipeline (parse, header,
|
|
66
|
+
* symbol tables, blocks, entities). Hides at CONVERSION `END` so pan/zoom can
|
|
67
|
+
* run while scene geometry finishes — no "Rendering drawing ..." hold.
|
|
68
|
+
*
|
|
69
|
+
* Default open keeps "Rendering drawing ..." until {@link setSceneBusyGate}
|
|
70
|
+
* reports idle after CONVERSION `END`. Deprecated `waitForTextGeometry` is
|
|
71
|
+
* ignored.
|
|
71
72
|
*/
|
|
72
73
|
var AcApOpenFileProgressController = /** @class */ (function () {
|
|
73
74
|
/**
|
|
@@ -78,6 +79,11 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
78
79
|
this._overlayVisible = false;
|
|
79
80
|
this._lastMessage = '';
|
|
80
81
|
this._seeThrough = false;
|
|
82
|
+
/**
|
|
83
|
+
* True after CONVERSION/`END` for this open. Distinguishes the leading
|
|
84
|
+
* FETCH_FILE END (download done) from the trailing one after openUri.
|
|
85
|
+
*/
|
|
86
|
+
this._conversionEnded = false;
|
|
81
87
|
/** Consecutive idle polls while holding the overlay after CONVERSION END. */
|
|
82
88
|
this._holdIdleStreak = 0;
|
|
83
89
|
this._progress = new AcApProgress({
|
|
@@ -95,14 +101,15 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
95
101
|
this._progress.setHost(host);
|
|
96
102
|
};
|
|
97
103
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
104
|
+
* Enables progressive open overlay policy: block UI until CONVERSION ends,
|
|
105
|
+
* then hide so pan/zoom work while scene convert continues. Progress still
|
|
106
|
+
* emits on the event bus for the status bar.
|
|
100
107
|
*/
|
|
101
108
|
AcApOpenFileProgressController.prototype.setSeeThroughOverlay = function (enabled) {
|
|
102
109
|
this._seeThrough = enabled;
|
|
103
|
-
this._progress.setOverlayColor(
|
|
104
|
-
|
|
105
|
-
|
|
110
|
+
this._progress.setOverlayColor(AcApOpenFileProgressController.OVERLAY_DEFAULT);
|
|
111
|
+
// Capture pointers while visible so ribbon/canvas cannot be used mid-open.
|
|
112
|
+
this._progress.setPointerEventsBlocked(true);
|
|
106
113
|
};
|
|
107
114
|
/**
|
|
108
115
|
* Gate that returns true while the view still has entities to convert.
|
|
@@ -128,6 +135,7 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
128
135
|
this._stage = undefined;
|
|
129
136
|
this._overlayVisible = false;
|
|
130
137
|
this._lastMessage = '';
|
|
138
|
+
this._conversionEnded = false;
|
|
131
139
|
this._holdIdleStreak = 0;
|
|
132
140
|
};
|
|
133
141
|
/**
|
|
@@ -160,6 +168,11 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
160
168
|
* @returns Normalized progress payload (monotonic percentage)
|
|
161
169
|
*/
|
|
162
170
|
AcApOpenFileProgressController.prototype.handle = function (data) {
|
|
171
|
+
if (data.stage === 'CONVERSION' &&
|
|
172
|
+
data.subStage === 'END' &&
|
|
173
|
+
data.subStageStatus === 'END') {
|
|
174
|
+
this._conversionEnded = true;
|
|
175
|
+
}
|
|
163
176
|
var progress = this.normalize(data);
|
|
164
177
|
eventBus.emit('open-file-progress', progress);
|
|
165
178
|
this.updateOverlay(progress);
|
|
@@ -198,21 +211,24 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
198
211
|
};
|
|
199
212
|
AcApOpenFileProgressController.prototype.updateOverlay = function (data) {
|
|
200
213
|
var _a;
|
|
201
|
-
if (isOpenFileProgressComplete(data)) {
|
|
202
|
-
|
|
203
|
-
|
|
214
|
+
if (isOpenFileProgressComplete(data, this._conversionEnded)) {
|
|
215
|
+
// Progressive: unlock as soon as parse/conversion finishes — do not wait
|
|
216
|
+
// for scene convert ("Rendering drawing ...").
|
|
217
|
+
if (this._seeThrough || !((_a = this._sceneBusyGate) === null || _a === void 0 ? void 0 : _a.call(this))) {
|
|
218
|
+
this.hideAndReset();
|
|
204
219
|
return;
|
|
205
220
|
}
|
|
206
|
-
this.
|
|
221
|
+
this.holdUntilSceneIdle();
|
|
207
222
|
return;
|
|
208
223
|
}
|
|
209
224
|
this.clearHoldPoll();
|
|
225
|
+
this._progress.setPointerEventsBlocked(true);
|
|
226
|
+
this.showOverlayWithMessage(data);
|
|
227
|
+
};
|
|
228
|
+
AcApOpenFileProgressController.prototype.showOverlayWithMessage = function (data) {
|
|
210
229
|
if (!this._overlayVisible) {
|
|
211
230
|
this._progress.show();
|
|
212
231
|
this._overlayVisible = true;
|
|
213
|
-
if (this._seeThrough) {
|
|
214
|
-
this._progress.setOverlayColor(AcApOpenFileProgressController.OVERLAY_SEE_THROUGH);
|
|
215
|
-
}
|
|
216
232
|
}
|
|
217
233
|
var message = this.resolveMessage(data);
|
|
218
234
|
if (message != null && message !== this._lastMessage) {
|
|
@@ -258,7 +274,12 @@ var AcApOpenFileProgressController = /** @class */ (function () {
|
|
|
258
274
|
var _a;
|
|
259
275
|
this.clearHoldPoll();
|
|
260
276
|
this._progress.hide();
|
|
261
|
-
this.
|
|
277
|
+
this._overlayVisible = false;
|
|
278
|
+
this._lastMessage = '';
|
|
279
|
+
this._holdIdleStreak = 0;
|
|
280
|
+
// Keep `_conversionEnded` / `_peak` / `_stage` for this open so a trailing
|
|
281
|
+
// FETCH_FILE END after openUri still counts as complete and does not
|
|
282
|
+
// re-show the spinner. Full {@link reset} runs on the next document open.
|
|
262
283
|
(_a = this._onHidden) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
263
284
|
};
|
|
264
285
|
AcApOpenFileProgressController.prototype.clearHoldPoll = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcApOpenFileProgressController.js","sourceRoot":"","sources":["../../src/app/AcApOpenFileProgressController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,iBAAiB,EAElB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAE/D
|
|
1
|
+
{"version":3,"file":"AcApOpenFileProgressController.js","sourceRoot":"","sources":["../../src/app/AcApOpenFileProgressController.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,6 +133,11 @@ export declare class AcApProgress {
|
|
|
133
133
|
* @param color - CSS color for the dimming layer
|
|
134
134
|
*/
|
|
135
135
|
setOverlayColor(color: string): this;
|
|
136
|
+
/**
|
|
137
|
+
* When true, the overlay captures pointer events (default). When false,
|
|
138
|
+
* events pass through to the canvas underneath.
|
|
139
|
+
*/
|
|
140
|
+
setPointerEventsBlocked(blocked: boolean): this;
|
|
136
141
|
/**
|
|
137
142
|
* Moves the overlay onto another host (e.g. the focused split pane).
|
|
138
143
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcApProgress.d.ts","sourceRoot":"","sources":["../../src/app/AcApProgress.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,gBAAuB,OAAO,EAAE,MAAM,CAAyB;IAE/D;;OAEG;IACH,OAAc,cAAc,UAAQ;IAEpC;;OAEG;IACI,IAAI,EAAG,cAAc,CAAA;IAE5B;;OAEG;IACI,OAAO,EAAG,cAAc,CAAA;IAE/B;;OAEG;IACI,SAAS,EAAG,cAAc,CAAA;IAEjC;;OAEG;IACH,SAAgB,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAEtD;;;;OAIG;gBACS,OAAO,GAAE,mBAAwB;IAqB7C;;;;;OAKG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;;;;OAOG;IACI,UAAU,CAAC,IAAI,SAAK,GAAG,IAAI;IAMlC;;;;OAIG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3C;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAavC;;;OAGG;IACI,OAAO,IAAI,IAAI;IAMtB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAqEjB;;;OAGG;IACH,OAAO,CAAC,YAAY;CA4ErB"}
|
|
1
|
+
{"version":3,"file":"AcApProgress.d.ts","sourceRoot":"","sources":["../../src/app/AcApProgress.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,gBAAuB,OAAO,EAAE,MAAM,CAAyB;IAE/D;;OAEG;IACH,OAAc,cAAc,UAAQ;IAEpC;;OAEG;IACI,IAAI,EAAG,cAAc,CAAA;IAE5B;;OAEG;IACI,OAAO,EAAG,cAAc,CAAA;IAE/B;;OAEG;IACI,SAAS,EAAG,cAAc,CAAA;IAEjC;;OAEG;IACH,SAAgB,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAEtD;;;;OAIG;gBACS,OAAO,GAAE,mBAAwB;IAqB7C;;;;;OAKG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;;;;OAOG;IACI,UAAU,CAAC,IAAI,SAAK,GAAG,IAAI;IAMlC;;;;OAIG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3C;;;OAGG;IACI,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOtD;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAavC;;;OAGG;IACI,OAAO,IAAI,IAAI;IAMtB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAqEjB;;;OAGG;IACH,OAAO,CAAC,YAAY;CA4ErB"}
|
package/lib/app/AcApProgress.js
CHANGED
|
@@ -92,6 +92,16 @@ var AcApProgress = /** @class */ (function () {
|
|
|
92
92
|
}
|
|
93
93
|
return this;
|
|
94
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* When true, the overlay captures pointer events (default). When false,
|
|
97
|
+
* events pass through to the canvas underneath.
|
|
98
|
+
*/
|
|
99
|
+
AcApProgress.prototype.setPointerEventsBlocked = function (blocked) {
|
|
100
|
+
if (this.root) {
|
|
101
|
+
this.root.style.pointerEvents = blocked ? 'auto' : 'none';
|
|
102
|
+
}
|
|
103
|
+
return this;
|
|
104
|
+
};
|
|
95
105
|
/**
|
|
96
106
|
* Moves the overlay onto another host (e.g. the focused split pane).
|
|
97
107
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcApProgress.js","sourceRoot":"","sources":["../../src/app/AcApProgress.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AcApProgress.js","sourceRoot":"","sources":["../../src/app/AcApProgress.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,13 @@ import { AcDbProgressdEventArgs } from '@mlightcad/data-model';
|
|
|
5
5
|
* CONVERSION completes with subStage `END`. After `openUri` finishes parsing,
|
|
6
6
|
* data-model also emits a trailing FETCH_FILE event at 100% with
|
|
7
7
|
* subStageStatus `END` but no subStage — that must hide the overlay too.
|
|
8
|
+
*
|
|
9
|
+
* Leading FETCH_FILE END (download finished, convert about to start) must
|
|
10
|
+
* **not** be treated as complete: hiding there briefly clears the spinner and
|
|
11
|
+
* it flashes back when CONVERSION starts.
|
|
12
|
+
*
|
|
13
|
+
* @param conversionEnded - True after this open has already seen
|
|
14
|
+
* CONVERSION/`END`. Distinguishes trailing vs leading FETCH_FILE END.
|
|
8
15
|
*/
|
|
9
|
-
export declare function isOpenFileProgressComplete(data: AcDbProgressdEventArgs): boolean;
|
|
16
|
+
export declare function isOpenFileProgressComplete(data: AcDbProgressdEventArgs, conversionEnded?: boolean): boolean;
|
|
10
17
|
//# sourceMappingURL=openFileProgress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openFileProgress.d.ts","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D
|
|
1
|
+
{"version":3,"file":"openFileProgress.d.ts","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,EAC5B,eAAe,UAAQ,GACtB,OAAO,CAkBT"}
|
|
@@ -4,8 +4,16 @@
|
|
|
4
4
|
* CONVERSION completes with subStage `END`. After `openUri` finishes parsing,
|
|
5
5
|
* data-model also emits a trailing FETCH_FILE event at 100% with
|
|
6
6
|
* subStageStatus `END` but no subStage — that must hide the overlay too.
|
|
7
|
+
*
|
|
8
|
+
* Leading FETCH_FILE END (download finished, convert about to start) must
|
|
9
|
+
* **not** be treated as complete: hiding there briefly clears the spinner and
|
|
10
|
+
* it flashes back when CONVERSION starts.
|
|
11
|
+
*
|
|
12
|
+
* @param conversionEnded - True after this open has already seen
|
|
13
|
+
* CONVERSION/`END`. Distinguishes trailing vs leading FETCH_FILE END.
|
|
7
14
|
*/
|
|
8
|
-
export function isOpenFileProgressComplete(data) {
|
|
15
|
+
export function isOpenFileProgressComplete(data, conversionEnded) {
|
|
16
|
+
if (conversionEnded === void 0) { conversionEnded = false; }
|
|
9
17
|
if (data.percentage < 100) {
|
|
10
18
|
return false;
|
|
11
19
|
}
|
|
@@ -15,6 +23,9 @@ export function isOpenFileProgressComplete(data) {
|
|
|
15
23
|
if (data.subStageStatus !== 'END') {
|
|
16
24
|
return false;
|
|
17
25
|
}
|
|
18
|
-
|
|
26
|
+
if (data.stage === 'FETCH_FILE') {
|
|
27
|
+
return conversionEnded;
|
|
28
|
+
}
|
|
29
|
+
return data.subStage === 'END';
|
|
19
30
|
}
|
|
20
31
|
//# sourceMappingURL=openFileProgress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openFileProgress.js","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"openFileProgress.js","sourceRoot":"","sources":["../../src/app/openFileProgress.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA4B,EAC5B,eAAuB;IAAvB,gCAAA,EAAA,uBAAuB;IAEvB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AcDbDatabase } from '@mlightcad/data-model';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the block table record id of the active paper-space layout.
|
|
4
|
+
*
|
|
5
|
+
* AutoCAD keeps the active sheet on the `*Paper_Space` block (other sheets are
|
|
6
|
+
* `*Paper_SpaceN`). When that block is missing, fall back to a layout marked
|
|
7
|
+
* `tabSelected`, then to any paper-space layout.
|
|
8
|
+
*
|
|
9
|
+
* @param database - Drawing whose layouts have already been read.
|
|
10
|
+
* @returns Paper-space BTR id, or `undefined` when the drawing has none.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveActivePaperSpaceBtrId(database: AcDbDatabase): string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Aligns {@link AcDbDatabase.currentSpaceId} with `$TILEMODE` after a file read.
|
|
15
|
+
*
|
|
16
|
+
* The DXF/DWG header reader sets {@link AcDbDatabase.tilemode}, but
|
|
17
|
+
* `currentSpaceId` still defaults to model space. Drawings saved in paper
|
|
18
|
+
* space (`$TILEMODE = 0`) therefore opened on Model until the user switched
|
|
19
|
+
* tabs — so the sheet looked like the model, and convert prioritized the
|
|
20
|
+
* wrong layout.
|
|
21
|
+
*
|
|
22
|
+
* @param database - Database that has finished reading header and layouts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function syncCurrentSpaceFromTileMode(database: AcDbDatabase): void;
|
|
25
|
+
//# sourceMappingURL=syncCurrentSpaceFromTileMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncCurrentSpaceFromTileMode.d.ts","sourceRoot":"","sources":["../../src/app/syncCurrentSpaceFromTileMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,GACrB,MAAM,GAAG,SAAS,CAyBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAazE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 { AcDbBlockTableRecord } from '@mlightcad/data-model';
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the block table record id of the active paper-space layout.
|
|
15
|
+
*
|
|
16
|
+
* AutoCAD keeps the active sheet on the `*Paper_Space` block (other sheets are
|
|
17
|
+
* `*Paper_SpaceN`). When that block is missing, fall back to a layout marked
|
|
18
|
+
* `tabSelected`, then to any paper-space layout.
|
|
19
|
+
*
|
|
20
|
+
* @param database - Drawing whose layouts have already been read.
|
|
21
|
+
* @returns Paper-space BTR id, or `undefined` when the drawing has none.
|
|
22
|
+
*/
|
|
23
|
+
export function resolveActivePaperSpaceBtrId(database) {
|
|
24
|
+
var e_1, _a;
|
|
25
|
+
var _b;
|
|
26
|
+
var blockTable = database.tables.blockTable;
|
|
27
|
+
var activePaper = blockTable.getAt(AcDbBlockTableRecord.PAPER_SPACE_NAME_PREFIX);
|
|
28
|
+
if (activePaper) {
|
|
29
|
+
return activePaper.objectId;
|
|
30
|
+
}
|
|
31
|
+
var layoutTable = (_b = database.objects) === null || _b === void 0 ? void 0 : _b.layout;
|
|
32
|
+
if (!(layoutTable === null || layoutTable === void 0 ? void 0 : layoutTable.newIterator)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
var modelSpaceId = blockTable.modelSpace.objectId;
|
|
36
|
+
var fallback;
|
|
37
|
+
try {
|
|
38
|
+
for (var _c = __values(layoutTable.newIterator()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
39
|
+
var layout = _d.value;
|
|
40
|
+
var btrId = layout.blockTableRecordId;
|
|
41
|
+
if (!btrId || btrId === modelSpaceId)
|
|
42
|
+
continue;
|
|
43
|
+
var btr = blockTable.getIdAt(btrId);
|
|
44
|
+
if (!btr || !AcDbBlockTableRecord.isPaperSapceName(btr.name))
|
|
45
|
+
continue;
|
|
46
|
+
if (layout.tabSelected)
|
|
47
|
+
return btrId;
|
|
48
|
+
if (!fallback)
|
|
49
|
+
fallback = btrId;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
53
|
+
finally {
|
|
54
|
+
try {
|
|
55
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
56
|
+
}
|
|
57
|
+
finally { if (e_1) throw e_1.error; }
|
|
58
|
+
}
|
|
59
|
+
return fallback;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Aligns {@link AcDbDatabase.currentSpaceId} with `$TILEMODE` after a file read.
|
|
63
|
+
*
|
|
64
|
+
* The DXF/DWG header reader sets {@link AcDbDatabase.tilemode}, but
|
|
65
|
+
* `currentSpaceId` still defaults to model space. Drawings saved in paper
|
|
66
|
+
* space (`$TILEMODE = 0`) therefore opened on Model until the user switched
|
|
67
|
+
* tabs — so the sheet looked like the model, and convert prioritized the
|
|
68
|
+
* wrong layout.
|
|
69
|
+
*
|
|
70
|
+
* @param database - Database that has finished reading header and layouts.
|
|
71
|
+
*/
|
|
72
|
+
export function syncCurrentSpaceFromTileMode(database) {
|
|
73
|
+
var modelSpaceId = database.tables.blockTable.modelSpace.objectId;
|
|
74
|
+
if (database.tilemode) {
|
|
75
|
+
if (database.currentSpaceId !== modelSpaceId) {
|
|
76
|
+
database.currentSpaceId = modelSpaceId;
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
var paperBtrId = resolveActivePaperSpaceBtrId(database);
|
|
81
|
+
if (paperBtrId && paperBtrId !== database.currentSpaceId) {
|
|
82
|
+
database.currentSpaceId = paperBtrId;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=syncCurrentSpaceFromTileMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncCurrentSpaceFromTileMode.js","sourceRoot":"","sources":["../../src/app/syncCurrentSpaceFromTileMode.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,uBAAuB,CAAA;AAE1E;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAsB;;;IAEtB,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAA;IAC7C,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAClC,oBAAoB,CAAC,uBAAuB,CAC7C,CAAA;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED,IAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,CAAA;IAC5C,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,CAAA,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAA;IACnD,IAAI,QAA4B,CAAA;;QAChC,KAAqB,IAAA,KAAA,SAAA,WAAW,CAAC,WAAW,EAAE,CAAA,gBAAA,4BAAE,CAAC;YAA5C,IAAM,MAAM,WAAA;YACf,IAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAA;YACvC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY;gBAAE,SAAQ;YAC9C,IAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACtE,IAAI,MAAM,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAA;YACpC,IAAI,CAAC,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAA;QACjC,CAAC;;;;;;;;;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAsB;IACjE,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAA;IACnE,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,cAAc,KAAK,YAAY,EAAE,CAAC;YAC7C,QAAQ,CAAC,cAAc,GAAG,YAAY,CAAA;QACxC,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAM,UAAU,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IACzD,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;QACzD,QAAQ,CAAC,cAAc,GAAG,UAAU,CAAA;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AcApDocManager } from '../app/AcApDocManager';
|
|
2
|
+
import { type AcApFindLayoutHit } from './findDrawing';
|
|
3
|
+
/** Options for {@link acapNavigateToFindHit}. */
|
|
4
|
+
export interface AcApFindNavigateOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Activate the hit's layout when it is not the active one. Default `true`.
|
|
7
|
+
* When `false` a cross-layout hit is not navigated and `layout-mismatch`
|
|
8
|
+
* is returned.
|
|
9
|
+
*/
|
|
10
|
+
activateLayout?: boolean;
|
|
11
|
+
/** Margin passed to `zoomTo`. Default `1.1`. */
|
|
12
|
+
margin?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Maximum time (ms) to wait for the freshly activated layout to finish
|
|
15
|
+
* converting before zooming and selecting. Default 15000.
|
|
16
|
+
*/
|
|
17
|
+
idleTimeoutMs?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Canvas area (CSS pixels from each edge) covered by UI such as a docked
|
|
20
|
+
* palette. The hit is framed and centred in the remaining visible part of
|
|
21
|
+
* the canvas so it never ends up hidden behind the palette.
|
|
22
|
+
*/
|
|
23
|
+
insets?: AcApFindViewInsets;
|
|
24
|
+
}
|
|
25
|
+
/** Pixels of the canvas covered on each side; see {@link AcApFindNavigateOptions.insets}. */
|
|
26
|
+
export interface AcApFindViewInsets {
|
|
27
|
+
left?: number;
|
|
28
|
+
right?: number;
|
|
29
|
+
top?: number;
|
|
30
|
+
bottom?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Outcome of {@link acapNavigateToFindHit}.
|
|
34
|
+
*
|
|
35
|
+
* - `navigated`: layout (if needed) activated, view zoomed, entity selected
|
|
36
|
+
* - `layout-mismatch`: hit is in another layout and `activateLayout` is false
|
|
37
|
+
* - `layout-missing`: the hit's layout no longer exists in the drawing
|
|
38
|
+
* - `layout-switch-failed`: the layout manager refused / did not switch
|
|
39
|
+
* - `no-document`: no open drawing or view
|
|
40
|
+
* - `stale`: a newer navigation started while waiting; nothing was done
|
|
41
|
+
*/
|
|
42
|
+
export type AcApFindNavigateResult = 'navigated' | 'layout-mismatch' | 'layout-missing' | 'layout-switch-failed' | 'no-document' | 'stale';
|
|
43
|
+
/**
|
|
44
|
+
* Navigates to a FIND hit: activates its layout when needed, zooms to the text
|
|
45
|
+
* and selects the owning entity.
|
|
46
|
+
*
|
|
47
|
+
* Same-layout hits are handled synchronously (before the first `await`), so
|
|
48
|
+
* callers may ignore the returned promise in that case. For a hit in another
|
|
49
|
+
* layout the layout is activated through the document's layout manager; the
|
|
50
|
+
* first-visit auto zoom of that layout is suppressed (it would otherwise
|
|
51
|
+
* override this zoom), then the function waits for the layout's entities to
|
|
52
|
+
* be converted before selecting, because selection highlighting needs the
|
|
53
|
+
* entity to be present in the scene.
|
|
54
|
+
*
|
|
55
|
+
* @param editor - Document manager that owns the active view and drawing.
|
|
56
|
+
* @param hit - Hit returned by `acapFindText`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function acapNavigateToFindHit(editor: AcApDocManager, hit: AcApFindLayoutHit, options?: AcApFindNavigateOptions): Promise<AcApFindNavigateResult>;
|
|
59
|
+
//# sourceMappingURL=AcApFindNavigator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApFindNavigator.d.ts","sourceRoot":"","sources":["../../src/find/AcApFindNavigator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtE,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AA0ED;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAC9B,WAAW,GACX,iBAAiB,GACjB,gBAAgB,GAChB,sBAAsB,GACtB,aAAa,GACb,OAAO,CAAA;AAIX;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,iBAAiB,EACtB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAsCjC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { acdbHostApplicationServices, AcGeBox2d, AcGePoint2d } from '@mlightcad/data-model';
|
|
38
|
+
import { acapFindHitBox } from './findDrawing';
|
|
39
|
+
/**
|
|
40
|
+
* Zooms to `box` so that it fits, centred, in the part of the canvas that
|
|
41
|
+
* `insets` leaves visible. Falls back to a plain `zoomTo` when the view
|
|
42
|
+
* cannot convert coordinates or the visible part is too small to matter.
|
|
43
|
+
*/
|
|
44
|
+
function zoomToVisible(view, box, margin, insets) {
|
|
45
|
+
var _a, _b, _c, _d;
|
|
46
|
+
var width = Number(view.width) || 0;
|
|
47
|
+
var height = Number(view.height) || 0;
|
|
48
|
+
var left = Math.max(0, (_a = insets === null || insets === void 0 ? void 0 : insets.left) !== null && _a !== void 0 ? _a : 0);
|
|
49
|
+
var right = Math.max(0, (_b = insets === null || insets === void 0 ? void 0 : insets.right) !== null && _b !== void 0 ? _b : 0);
|
|
50
|
+
var top = Math.max(0, (_c = insets === null || insets === void 0 ? void 0 : insets.top) !== null && _c !== void 0 ? _c : 0);
|
|
51
|
+
var bottom = Math.max(0, (_d = insets === null || insets === void 0 ? void 0 : insets.bottom) !== null && _d !== void 0 ? _d : 0);
|
|
52
|
+
var visibleW = width - left - right;
|
|
53
|
+
var visibleH = height - top - bottom;
|
|
54
|
+
var usable = width > 0 &&
|
|
55
|
+
height > 0 &&
|
|
56
|
+
left + right + top + bottom > 0 &&
|
|
57
|
+
visibleW >= width * 0.2 &&
|
|
58
|
+
visibleH >= height * 0.2 &&
|
|
59
|
+
!!view.worldToScreen &&
|
|
60
|
+
!!view.screenToWorld;
|
|
61
|
+
if (!usable) {
|
|
62
|
+
view.zoomTo(new AcGeBox2d(new AcGePoint2d(box.min.x, box.min.y), new AcGePoint2d(box.max.x, box.max.y)), margin);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Grow the box so that, fitted to the full canvas, its original part
|
|
66
|
+
// fits the visible part.
|
|
67
|
+
var cx = (box.min.x + box.max.x) / 2;
|
|
68
|
+
var cy = (box.min.y + box.max.y) / 2;
|
|
69
|
+
var halfW = ((box.max.x - box.min.x) / 2) * (width / visibleW);
|
|
70
|
+
var halfH = ((box.max.y - box.min.y) / 2) * (height / visibleH);
|
|
71
|
+
view.zoomTo(new AcGeBox2d(new AcGePoint2d(cx - halfW, cy - halfH), new AcGePoint2d(cx + halfW, cy + halfH)), margin);
|
|
72
|
+
// Then pan so the hit sits in the middle of the visible part.
|
|
73
|
+
var hitOnScreen = view.worldToScreen({ x: cx, y: cy });
|
|
74
|
+
var targetX = left + visibleW / 2;
|
|
75
|
+
var targetY = top + visibleH / 2;
|
|
76
|
+
var newCenter = view.screenToWorld({
|
|
77
|
+
x: width / 2 + (hitOnScreen.x - targetX),
|
|
78
|
+
y: height / 2 + (hitOnScreen.y - targetY)
|
|
79
|
+
});
|
|
80
|
+
if (isFinite(newCenter.x) && isFinite(newCenter.y)) {
|
|
81
|
+
view.center = new AcGePoint2d(newCenter.x, newCenter.y);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
var navigationTokens = new WeakMap();
|
|
85
|
+
/**
|
|
86
|
+
* Navigates to a FIND hit: activates its layout when needed, zooms to the text
|
|
87
|
+
* and selects the owning entity.
|
|
88
|
+
*
|
|
89
|
+
* Same-layout hits are handled synchronously (before the first `await`), so
|
|
90
|
+
* callers may ignore the returned promise in that case. For a hit in another
|
|
91
|
+
* layout the layout is activated through the document's layout manager; the
|
|
92
|
+
* first-visit auto zoom of that layout is suppressed (it would otherwise
|
|
93
|
+
* override this zoom), then the function waits for the layout's entities to
|
|
94
|
+
* be converted before selecting, because selection highlighting needs the
|
|
95
|
+
* entity to be present in the scene.
|
|
96
|
+
*
|
|
97
|
+
* @param editor - Document manager that owns the active view and drawing.
|
|
98
|
+
* @param hit - Hit returned by `acapFindText`.
|
|
99
|
+
*/
|
|
100
|
+
export function acapNavigateToFindHit(editor_1, hit_1) {
|
|
101
|
+
return __awaiter(this, arguments, void 0, function (editor, hit, options) {
|
|
102
|
+
var view, db, token, box;
|
|
103
|
+
var _a, _b, _c, _d;
|
|
104
|
+
if (options === void 0) { options = {}; }
|
|
105
|
+
return __generator(this, function (_e) {
|
|
106
|
+
switch (_e.label) {
|
|
107
|
+
case 0:
|
|
108
|
+
view = editor.curView;
|
|
109
|
+
db = (_a = editor.curDocument) === null || _a === void 0 ? void 0 : _a.database;
|
|
110
|
+
if (!view || !db)
|
|
111
|
+
return [2 /*return*/, 'no-document'];
|
|
112
|
+
token = ((_b = navigationTokens.get(view)) !== null && _b !== void 0 ? _b : 0) + 1;
|
|
113
|
+
navigationTokens.set(view, token);
|
|
114
|
+
if (!(view.activeLayoutBtrId !== hit.layoutId)) return [3 /*break*/, 2];
|
|
115
|
+
if (options.activateLayout === false)
|
|
116
|
+
return [2 /*return*/, 'layout-mismatch'];
|
|
117
|
+
if (!db.tables.blockTable.getIdAt(hit.layoutId))
|
|
118
|
+
return [2 /*return*/, 'layout-missing'];
|
|
119
|
+
if (!view.isLayoutInitialized(hit.layoutId)) {
|
|
120
|
+
// We frame the layout ourselves; keep its first-visit auto zoom from
|
|
121
|
+
// running afterwards and overriding the zoom to the hit.
|
|
122
|
+
view.markLayoutAsInitialized(hit.layoutId);
|
|
123
|
+
}
|
|
124
|
+
acdbHostApplicationServices().layoutManager.setCurrentLayoutBtrId(hit.layoutId, db);
|
|
125
|
+
if (view.activeLayoutBtrId !== hit.layoutId)
|
|
126
|
+
return [2 /*return*/, 'layout-switch-failed'];
|
|
127
|
+
return [4 /*yield*/, view.waitUntilIdle((_c = options.idleTimeoutMs) !== null && _c !== void 0 ? _c : 15000)];
|
|
128
|
+
case 1:
|
|
129
|
+
_e.sent();
|
|
130
|
+
if (navigationTokens.get(view) !== token)
|
|
131
|
+
return [2 /*return*/, 'stale'];
|
|
132
|
+
if (view.activeLayoutBtrId !== hit.layoutId)
|
|
133
|
+
return [2 /*return*/, 'stale'];
|
|
134
|
+
_e.label = 2;
|
|
135
|
+
case 2:
|
|
136
|
+
box = acapFindHitBox(db, hit.layoutId, hit);
|
|
137
|
+
zoomToVisible(view, box, (_d = options.margin) !== null && _d !== void 0 ? _d : 1.1, options.insets);
|
|
138
|
+
view.selectionSet.clear();
|
|
139
|
+
view.selectionSet.add(hit.entityId);
|
|
140
|
+
return [2 /*return*/, 'navigated'];
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=AcApFindNavigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApFindNavigator.js","sourceRoot":"","sources":["../../src/find/AcApFindNavigator.ts"],"names":[],"mappings":"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"}
|