@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
|
@@ -86,36 +86,6 @@ import { isFiniteSpatialBBox } from '../view/AcTrGroupWcsBboxAssert';
|
|
|
86
86
|
import { AcTrLinearSpatialIndex } from './AcTrLinearSpatialIndex';
|
|
87
87
|
import { AcTrRBushSpatialIndex } from './AcTrRBushSpatialIndex';
|
|
88
88
|
import { isSpatialBoxFullyInside } from './AcTrSpatialIndex';
|
|
89
|
-
/**
|
|
90
|
-
* A two-level (hierarchical) spatial index designed for complex CAD
|
|
91
|
-
* scene structures such as blocks, groups, layers, or nested entities.
|
|
92
|
-
*
|
|
93
|
-
* The index consists of:
|
|
94
|
-
*
|
|
95
|
-
* 1. A first-level spatial index that stores coarse bounding boxes
|
|
96
|
-
* (AcEdSpatialQueryResultItem) and maps each result to an `id`.
|
|
97
|
-
*
|
|
98
|
-
* 2. A second-level map from `id` to another spatial index, which
|
|
99
|
-
* contains more detailed spatial data for that specific entity,
|
|
100
|
-
* block, or group.
|
|
101
|
-
*
|
|
102
|
-
* Spatial queries are executed in two phases:
|
|
103
|
-
* - First, the query is performed against the root spatial index to
|
|
104
|
-
* find candidate items.
|
|
105
|
-
* - Then, for each candidate, the corresponding second-level spatial
|
|
106
|
-
* index (if present) is queried for more precise results.
|
|
107
|
-
* - Results from both levels are merged into a single query result.
|
|
108
|
-
*
|
|
109
|
-
* This design allows:
|
|
110
|
-
* - Mixing different spatial index implementations (e.g. R-tree and
|
|
111
|
-
* linear scan) at different hierarchy levels
|
|
112
|
-
* - Efficient querying of large, nested CAD datasets
|
|
113
|
-
* - Lazy or selective construction of fine-grained spatial indexes
|
|
114
|
-
*
|
|
115
|
-
* This class is particularly suitable for CAD viewers and editors
|
|
116
|
-
* where entities are grouped hierarchically but still require fast
|
|
117
|
-
* spatial queries such as selection, picking, and hit-testing.
|
|
118
|
-
*/
|
|
119
89
|
var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
120
90
|
/**
|
|
121
91
|
* Creates a hierarchical spatial index instance.
|
|
@@ -128,6 +98,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
128
98
|
*/
|
|
129
99
|
function AcTrHierarchicalSpatialIndex(rootIndex) {
|
|
130
100
|
this.childIndexes = new Map();
|
|
101
|
+
this.lazyChildren = new Map();
|
|
131
102
|
this.rootIndex = rootIndex !== null && rootIndex !== void 0 ? rootIndex : new AcTrRBushSpatialIndex();
|
|
132
103
|
}
|
|
133
104
|
/**
|
|
@@ -184,6 +155,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
184
155
|
AcTrHierarchicalSpatialIndex.prototype.remove = function (item, equals) {
|
|
185
156
|
this.rootIndex.remove(item, equals);
|
|
186
157
|
this.childIndexes.delete(item.id);
|
|
158
|
+
this.lazyChildren.delete(item.id);
|
|
187
159
|
};
|
|
188
160
|
/**
|
|
189
161
|
* Removes one first-level item by id and clears its child index.
|
|
@@ -193,6 +165,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
193
165
|
AcTrHierarchicalSpatialIndex.prototype.removeById = function (id) {
|
|
194
166
|
this.rootIndex.removeById(id);
|
|
195
167
|
this.childIndexes.delete(id);
|
|
168
|
+
this.lazyChildren.delete(id);
|
|
196
169
|
};
|
|
197
170
|
/**
|
|
198
171
|
* Clears all indexed data from both hierarchy levels.
|
|
@@ -204,6 +177,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
204
177
|
this.rootIndex.clear();
|
|
205
178
|
this.childIndexes.forEach(function (i) { return i.clear(); });
|
|
206
179
|
this.childIndexes.clear();
|
|
180
|
+
this.lazyChildren.clear();
|
|
207
181
|
};
|
|
208
182
|
/**
|
|
209
183
|
* Performs a hierarchical search against the given bounding box.
|
|
@@ -232,6 +206,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
232
206
|
try {
|
|
233
207
|
for (var level1_1 = __values(level1), level1_1_1 = level1_1.next(); !level1_1_1.done; level1_1_1 = level1_1.next()) {
|
|
234
208
|
var hit = level1_1_1.value;
|
|
209
|
+
this.materializeLazyChildren(hit.id);
|
|
235
210
|
var child = this.childIndexes.get(hit.id);
|
|
236
211
|
if (!child) {
|
|
237
212
|
if ((options === null || options === void 0 ? void 0 : options.selectionMode) !== 'window' ||
|
|
@@ -279,6 +254,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
279
254
|
*
|
|
280
255
|
* A fast root-level rejection is performed first. If root-level candidates
|
|
281
256
|
* exist, each candidate is checked as follows:
|
|
257
|
+
* - deferred INSERT children are expanded first, same as {@link search};
|
|
282
258
|
* - without child index: treated as colliding immediately;
|
|
283
259
|
* - with child index: delegated to child-level `collides`.
|
|
284
260
|
*
|
|
@@ -291,6 +267,7 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
291
267
|
return false;
|
|
292
268
|
var level1 = this.rootIndex.search(bbox);
|
|
293
269
|
return level1.some(function (hit) {
|
|
270
|
+
_this.materializeLazyChildren(hit.id);
|
|
294
271
|
var child = _this.childIndexes.get(hit.id);
|
|
295
272
|
return child ? child.collides(bbox) : true;
|
|
296
273
|
});
|
|
@@ -389,7 +366,20 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
389
366
|
* @returns `true` if a child index is registered for `id`.
|
|
390
367
|
*/
|
|
391
368
|
AcTrHierarchicalSpatialIndex.prototype.hasChildIndex = function (id) {
|
|
392
|
-
return this.childIndexes.has(id);
|
|
369
|
+
return this.childIndexes.has(id) || this.lazyChildren.has(id);
|
|
370
|
+
};
|
|
371
|
+
/**
|
|
372
|
+
* Remembers block-local child boxes for one INSERT without copying them.
|
|
373
|
+
*
|
|
374
|
+
* {@link search} expands the boxes into a child index the first time a query
|
|
375
|
+
* hits this id. Extents queries that only read {@link all} stay on the root
|
|
376
|
+
* box.
|
|
377
|
+
*
|
|
378
|
+
* @param id - INSERT object id.
|
|
379
|
+
* @param source - Shared template boxes and this instance's matrix.
|
|
380
|
+
*/
|
|
381
|
+
AcTrHierarchicalSpatialIndex.prototype.setLazyChildSource = function (id, source) {
|
|
382
|
+
this.lazyChildren.set(id, source);
|
|
393
383
|
};
|
|
394
384
|
/**
|
|
395
385
|
* Returns the first-level (root) item for {@link id}, when present.
|
|
@@ -497,16 +487,36 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
497
487
|
return this.ensureChildIndex(group.objectId, group.wcsChildBoxes);
|
|
498
488
|
};
|
|
499
489
|
/**
|
|
500
|
-
*
|
|
490
|
+
* Expands a deferred INSERT into a child index.
|
|
501
491
|
*
|
|
502
|
-
*
|
|
503
|
-
*
|
|
504
|
-
* - `0 < size <= THRESHOLD`: use linear index to minimize setup overhead;
|
|
505
|
-
* - `size <= 0`: return `undefined` (no index required).
|
|
492
|
+
* No-op when the id was already expanded or has no lazy source. Does not
|
|
493
|
+
* insert another root box; the caller registered the aggregate bbox.
|
|
506
494
|
*
|
|
507
|
-
* @param
|
|
508
|
-
* @returns A child index instance or `undefined` for empty datasets.
|
|
495
|
+
* @param id - INSERT object id whose query hit needs child boxes.
|
|
509
496
|
*/
|
|
497
|
+
AcTrHierarchicalSpatialIndex.prototype.materializeLazyChildren = function (id) {
|
|
498
|
+
if (this.childIndexes.has(id))
|
|
499
|
+
return;
|
|
500
|
+
var source = this.lazyChildren.get(id);
|
|
501
|
+
if (!source)
|
|
502
|
+
return;
|
|
503
|
+
this.lazyChildren.delete(id);
|
|
504
|
+
var items = [];
|
|
505
|
+
for (var i = 0; i < source.boxes.length; i++) {
|
|
506
|
+
var box = source.boxes[i];
|
|
507
|
+
if (!box || !isFiniteSpatialBBox(box))
|
|
508
|
+
continue;
|
|
509
|
+
items.push(transformSpatialBox(box, source.matrix));
|
|
510
|
+
}
|
|
511
|
+
var finiteItems = uniquifySpatialItemIds(items);
|
|
512
|
+
if (finiteItems.length === 0)
|
|
513
|
+
return;
|
|
514
|
+
var spatialIndex = this.createIndexBySize(finiteItems.length);
|
|
515
|
+
if (!spatialIndex)
|
|
516
|
+
return;
|
|
517
|
+
spatialIndex.load(finiteItems);
|
|
518
|
+
this.setChildIndex(id, spatialIndex);
|
|
519
|
+
};
|
|
510
520
|
AcTrHierarchicalSpatialIndex.prototype.createIndexBySize = function (size) {
|
|
511
521
|
if (size > AcTrHierarchicalSpatialIndex.THRESHOLD) {
|
|
512
522
|
return new AcTrRBushSpatialIndex();
|
|
@@ -520,4 +530,33 @@ var AcTrHierarchicalSpatialIndex = /** @class */ (function () {
|
|
|
520
530
|
return AcTrHierarchicalSpatialIndex;
|
|
521
531
|
}());
|
|
522
532
|
export { AcTrHierarchicalSpatialIndex };
|
|
533
|
+
/**
|
|
534
|
+
* Maps one block-local AABB through an INSERT matrix into a WCS AABB.
|
|
535
|
+
*
|
|
536
|
+
* @param box - Axis-aligned box in block space.
|
|
537
|
+
* @param matrix - INSERT transform.
|
|
538
|
+
* @returns The transformed axis-aligned box, with the same id.
|
|
539
|
+
*/
|
|
540
|
+
function transformSpatialBox(box, matrix) {
|
|
541
|
+
var e = matrix.elements;
|
|
542
|
+
var minX = Infinity;
|
|
543
|
+
var minY = Infinity;
|
|
544
|
+
var maxX = -Infinity;
|
|
545
|
+
var maxY = -Infinity;
|
|
546
|
+
var xs = [box.minX, box.maxX];
|
|
547
|
+
var ys = [box.minY, box.maxY];
|
|
548
|
+
for (var i = 0; i < 2; i++) {
|
|
549
|
+
for (var j = 0; j < 2; j++) {
|
|
550
|
+
var x = xs[i];
|
|
551
|
+
var y = ys[j];
|
|
552
|
+
var wx = e[0] * x + e[4] * y + e[12];
|
|
553
|
+
var wy = e[1] * x + e[5] * y + e[13];
|
|
554
|
+
minX = Math.min(minX, wx);
|
|
555
|
+
minY = Math.min(minY, wy);
|
|
556
|
+
maxX = Math.max(maxX, wx);
|
|
557
|
+
maxY = Math.max(maxY, wy);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
return { minX: minX, minY: minY, maxX: maxX, maxY: maxY, id: box.id };
|
|
561
|
+
}
|
|
523
562
|
//# sourceMappingURL=AcTrHierarchicalSpatialIndex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcTrHierarchicalSpatialIndex.js","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AcTrHierarchicalSpatialIndex.js","sourceRoot":"","sources":["../../src/spatialIndex/AcTrHierarchicalSpatialIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { type AcApDataSourceMenuItem } from '../app/dataSource/acapBuildDataSourceMenu';
|
|
2
|
+
import type { AcApDataSource } from '../app/dataSource/AcApDataSource';
|
|
3
|
+
import type { AcApDataSourceAccountProfile } from '../app/dataSource/AcApDataSource';
|
|
4
|
+
import { type AcEdUiTheme } from '../editor/global/AcEdUiTheme';
|
|
5
|
+
/** Width / height of the {@link AcUiFileOpenPanel} source card. */
|
|
6
|
+
export interface AcUiFileOpenPanelCardSize {
|
|
7
|
+
/** Card width. Number values are pixels. Defaults to `100%`. */
|
|
8
|
+
width?: number | string;
|
|
9
|
+
/** Card height. Number values are pixels. Defaults to `150`. */
|
|
10
|
+
height?: number | string;
|
|
11
|
+
}
|
|
12
|
+
/** Result kinds emitted by {@link AcUiFileOpenPanel}. */
|
|
13
|
+
export type AcUiFileOpenPanelResult = {
|
|
14
|
+
kind: 'local';
|
|
15
|
+
file: File;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'url';
|
|
18
|
+
url: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'data-source';
|
|
21
|
+
item: AcApDataSourceMenuItem;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'new-drawing';
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Options for {@link AcUiFileOpenPanel}.
|
|
27
|
+
*/
|
|
28
|
+
export interface AcUiFileOpenPanelOptions {
|
|
29
|
+
/** Element that receives the panel root. */
|
|
30
|
+
host: HTMLElement;
|
|
31
|
+
/** Accepted extensions for the drop zone / file input. */
|
|
32
|
+
accept?: string;
|
|
33
|
+
/** Optional title above the actions. */
|
|
34
|
+
title?: string;
|
|
35
|
+
/** Optional subtitle under the title. */
|
|
36
|
+
subtitle?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Isolated card palette (`light` / `dark`), independent of the host app theme.
|
|
39
|
+
* When omitted, the panel follows {@link resolveUiTheme} from the host / document.
|
|
40
|
+
*/
|
|
41
|
+
theme?: AcEdUiTheme;
|
|
42
|
+
/**
|
|
43
|
+
* Card box size. Numbers are treated as CSS pixels.
|
|
44
|
+
* Defaults to width `100%` and height `150`.
|
|
45
|
+
*/
|
|
46
|
+
cardSize?: AcUiFileOpenPanelCardSize;
|
|
47
|
+
/** When true, URL is available in the source menu. Defaults to true. */
|
|
48
|
+
showUrl?: boolean;
|
|
49
|
+
/** When true, shows a New Drawing button. Defaults to false. */
|
|
50
|
+
showNewDrawing?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Extra cloud menu items when a source is not yet registered on a manager.
|
|
53
|
+
* Prefer registering real {@link AcApDataSource} instances and passing
|
|
54
|
+
* {@link getSources} so hosts stay provider-agnostic.
|
|
55
|
+
*/
|
|
56
|
+
extraMenuItems?: AcApDataSourceMenuItem[] | (() => AcApDataSourceMenuItem[]);
|
|
57
|
+
/**
|
|
58
|
+
* Optional account profile override. Prefer {@link AcApDataSource.getAccountProfile}.
|
|
59
|
+
*/
|
|
60
|
+
getAccountProfile?: (sourceId: string) => AcApDataSourceAccountProfile | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Registered / landing data sources used to build cloud entries.
|
|
63
|
+
* Built-in `local` / `url` are filtered out (handled by the panel UI).
|
|
64
|
+
* Defaults to {@link AcApDocManager.tryGetInstance}`.dataSourceManager.list()`.
|
|
65
|
+
*/
|
|
66
|
+
getSources?: () => AcApDataSource[];
|
|
67
|
+
/**
|
|
68
|
+
* Called when the user picks a local file, URL, cloud action, or new drawing.
|
|
69
|
+
*/
|
|
70
|
+
onResult?: (result: AcUiFileOpenPanelResult) => void;
|
|
71
|
+
onLocalFile?: (file: File) => void;
|
|
72
|
+
onUrl?: (url: string) => void;
|
|
73
|
+
onDataSourceAction?: (item: AcApDataSourceMenuItem) => void;
|
|
74
|
+
onNewDrawing?: () => void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Framework-free landing panel for opening CAD files.
|
|
78
|
+
*
|
|
79
|
+
* Card body swaps by source; bottom chevron opens a source menu.
|
|
80
|
+
* Pass {@link AcUiFileOpenPanelOptions.theme} for an isolated light/dark
|
|
81
|
+
* palette, and {@link AcUiFileOpenPanelOptions.cardSize} for width/height.
|
|
82
|
+
*/
|
|
83
|
+
export declare class AcUiFileOpenPanel {
|
|
84
|
+
static readonly styleId = "ml-ui-file-open-panel-styles-v3";
|
|
85
|
+
private readonly options;
|
|
86
|
+
private readonly root;
|
|
87
|
+
private readonly card;
|
|
88
|
+
private readonly contentEl;
|
|
89
|
+
private readonly footerBtn;
|
|
90
|
+
private readonly footerLabel;
|
|
91
|
+
private readonly footerChevron;
|
|
92
|
+
private readonly menuEl;
|
|
93
|
+
private readonly urlInput;
|
|
94
|
+
private readonly fileInput;
|
|
95
|
+
private readonly dropzone;
|
|
96
|
+
private readonly urlRow;
|
|
97
|
+
private readonly sourceActionsEl;
|
|
98
|
+
private activeView;
|
|
99
|
+
private menuOpen;
|
|
100
|
+
private disposed;
|
|
101
|
+
private unsubManager;
|
|
102
|
+
private unsubTheme;
|
|
103
|
+
private onDocPointerDown;
|
|
104
|
+
constructor(options: AcUiFileOpenPanelOptions);
|
|
105
|
+
/** Root element of the panel. */
|
|
106
|
+
get element(): HTMLDivElement;
|
|
107
|
+
/** Rebuilds the source menu and active body content. */
|
|
108
|
+
refreshSourceButtons(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Sets an isolated card theme, or `undefined` to follow the host app theme.
|
|
111
|
+
*
|
|
112
|
+
* @param theme - `light`, `dark`, or `undefined` to track {@link resolveUiTheme}
|
|
113
|
+
*/
|
|
114
|
+
setTheme(theme: AcEdUiTheme | undefined): void;
|
|
115
|
+
/**
|
|
116
|
+
* Updates the source card width and/or height.
|
|
117
|
+
*
|
|
118
|
+
* @param size - Partial size; omitted sides keep their current option value
|
|
119
|
+
*/
|
|
120
|
+
setCardSize(size: AcUiFileOpenPanelCardSize): void;
|
|
121
|
+
/** Removes the panel from the host and unsubscribes. */
|
|
122
|
+
dispose(): void;
|
|
123
|
+
private applyTheme;
|
|
124
|
+
private applyCardSize;
|
|
125
|
+
private syncSourceChrome;
|
|
126
|
+
private selectSource;
|
|
127
|
+
/**
|
|
128
|
+
* When switching to an auth-required cloud source, start sign-in immediately
|
|
129
|
+
* (separate from pick, so the File Picker popup is not blocked).
|
|
130
|
+
*/
|
|
131
|
+
private maybeAutoSignIn;
|
|
132
|
+
private toggleMenu;
|
|
133
|
+
private openMenu;
|
|
134
|
+
private closeMenu;
|
|
135
|
+
private resolveSourceOptions;
|
|
136
|
+
private resolveSourceLabel;
|
|
137
|
+
private renderActiveView;
|
|
138
|
+
private canPickSource;
|
|
139
|
+
private buildPickMenuItem;
|
|
140
|
+
private resolveAccountProfile;
|
|
141
|
+
private initialsFromName;
|
|
142
|
+
private renderSourceActions;
|
|
143
|
+
private resolveMenuItems;
|
|
144
|
+
private resolveSources;
|
|
145
|
+
private resolveExtraMenuItems;
|
|
146
|
+
private bindManagerEvents;
|
|
147
|
+
private submitUrl;
|
|
148
|
+
private onDrag;
|
|
149
|
+
private onDrop;
|
|
150
|
+
private isSupportedFileName;
|
|
151
|
+
private emitLocal;
|
|
152
|
+
private emit;
|
|
153
|
+
private createDivider;
|
|
154
|
+
static ensureStyles(): void;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=AcUiFileOpenPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcUiFileOpenPanel.d.ts","sourceRoot":"","sources":["../../src/ui/AcUiFileOpenPanel.ts"],"names":[],"mappings":"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"}
|