@mlightcad/cad-simple-viewer 1.7.5 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/cad-simple-viewer.js +9270 -8077
  2. package/dist/cad-simple-viewer.umd.cjs +83 -83
  3. package/dist/mtext-renderer-worker.js +2987 -2815
  4. package/find.ts +7 -0
  5. package/lib/app/AcApDocManager.d.ts +5 -0
  6. package/lib/app/AcApDocManager.d.ts.map +1 -1
  7. package/lib/app/AcApDocManager.js +39 -21
  8. package/lib/app/AcApDocManager.js.map +1 -1
  9. package/lib/app/AcApOpenDatabaseOptions.d.ts +8 -6
  10. package/lib/app/AcApOpenDatabaseOptions.d.ts.map +1 -1
  11. package/lib/app/AcApOpenFileProgressController.d.ts +17 -9
  12. package/lib/app/AcApOpenFileProgressController.d.ts.map +1 -1
  13. package/lib/app/AcApOpenFileProgressController.js +41 -20
  14. package/lib/app/AcApOpenFileProgressController.js.map +1 -1
  15. package/lib/app/AcApProgress.d.ts +5 -0
  16. package/lib/app/AcApProgress.d.ts.map +1 -1
  17. package/lib/app/AcApProgress.js +10 -0
  18. package/lib/app/AcApProgress.js.map +1 -1
  19. package/lib/app/openFileProgress.d.ts +8 -1
  20. package/lib/app/openFileProgress.d.ts.map +1 -1
  21. package/lib/app/openFileProgress.js +13 -2
  22. package/lib/app/openFileProgress.js.map +1 -1
  23. package/lib/app/syncCurrentSpaceFromTileMode.d.ts +25 -0
  24. package/lib/app/syncCurrentSpaceFromTileMode.d.ts.map +1 -0
  25. package/lib/app/syncCurrentSpaceFromTileMode.js +85 -0
  26. package/lib/app/syncCurrentSpaceFromTileMode.js.map +1 -0
  27. package/lib/editor/input/AcEdOsnapCenterMarks.d.ts +15 -2
  28. package/lib/editor/input/AcEdOsnapCenterMarks.d.ts.map +1 -1
  29. package/lib/editor/input/AcEdOsnapCenterMarks.js +63 -13
  30. package/lib/editor/input/AcEdOsnapCenterMarks.js.map +1 -1
  31. package/lib/editor/input/AcEdOsnapResolver.d.ts +14 -0
  32. package/lib/editor/input/AcEdOsnapResolver.d.ts.map +1 -1
  33. package/lib/editor/input/AcEdOsnapResolver.js +246 -32
  34. package/lib/editor/input/AcEdOsnapResolver.js.map +1 -1
  35. package/lib/editor/input/AcEdSelectionFilter.d.ts +6 -0
  36. package/lib/editor/input/AcEdSelectionFilter.d.ts.map +1 -1
  37. package/lib/editor/input/AcEdSelectionFilter.js +19 -2
  38. package/lib/editor/input/AcEdSelectionFilter.js.map +1 -1
  39. package/lib/editor/input/AcEditor.d.ts +6 -0
  40. package/lib/editor/input/AcEditor.d.ts.map +1 -1
  41. package/lib/editor/input/AcEditor.js +9 -0
  42. package/lib/editor/input/AcEditor.js.map +1 -1
  43. package/lib/editor/input/ui/AcEdCommandLine.d.ts +12 -0
  44. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  45. package/lib/editor/input/ui/AcEdCommandLine.js +54 -16
  46. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  47. package/lib/editor/input/ui/AcEdInputManager.d.ts +15 -0
  48. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  49. package/lib/editor/input/ui/AcEdInputManager.js +41 -10
  50. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  51. package/lib/editor/view/AcEdBaseView.d.ts +34 -0
  52. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  53. package/lib/editor/view/AcEdBaseView.js +35 -44
  54. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  55. package/lib/editor/view/AcEdSpatialQueryResult.d.ts +7 -0
  56. package/lib/editor/view/AcEdSpatialQueryResult.d.ts.map +1 -1
  57. package/lib/editor/view/AcEdSpatialQueryResult.js.map +1 -1
  58. package/lib/find/AcApFindNavigator.d.ts +59 -0
  59. package/lib/find/AcApFindNavigator.d.ts.map +1 -0
  60. package/lib/find/AcApFindNavigator.js +145 -0
  61. package/lib/find/AcApFindNavigator.js.map +1 -0
  62. package/lib/find/findDrawing.d.ts +100 -0
  63. package/lib/find/findDrawing.d.ts.map +1 -0
  64. package/lib/find/findDrawing.js +183 -0
  65. package/lib/find/findDrawing.js.map +1 -0
  66. package/lib/find/findText.d.ts +147 -0
  67. package/lib/find/findText.d.ts.map +1 -0
  68. package/lib/find/findText.js +561 -0
  69. package/lib/find/findText.js.map +1 -0
  70. package/lib/find/index.d.ts +3 -0
  71. package/lib/find/index.d.ts.map +1 -0
  72. package/lib/find/index.js +3 -0
  73. package/lib/find/index.js.map +1 -0
  74. package/lib/i18n/ar/jig.d.ts +2 -0
  75. package/lib/i18n/ar/jig.d.ts.map +1 -1
  76. package/lib/i18n/ar/jig.js +1 -1
  77. package/lib/i18n/ar/jig.js.map +1 -1
  78. package/lib/i18n/cs/jig.d.ts +2 -0
  79. package/lib/i18n/cs/jig.d.ts.map +1 -1
  80. package/lib/i18n/cs/jig.js +2 -0
  81. package/lib/i18n/cs/jig.js.map +1 -1
  82. package/lib/i18n/en/jig.d.ts +2 -0
  83. package/lib/i18n/en/jig.d.ts.map +1 -1
  84. package/lib/i18n/en/jig.js +2 -0
  85. package/lib/i18n/en/jig.js.map +1 -1
  86. package/lib/i18n/tr/jig.d.ts +2 -0
  87. package/lib/i18n/tr/jig.d.ts.map +1 -1
  88. package/lib/i18n/tr/jig.js +2 -0
  89. package/lib/i18n/tr/jig.js.map +1 -1
  90. package/lib/i18n/zh/jig.d.ts +2 -0
  91. package/lib/i18n/zh/jig.d.ts.map +1 -1
  92. package/lib/i18n/zh/jig.js +2 -0
  93. package/lib/i18n/zh/jig.js.map +1 -1
  94. package/lib/index.d.ts +2 -0
  95. package/lib/index.d.ts.map +1 -1
  96. package/lib/index.js +2 -0
  97. package/lib/index.js.map +1 -1
  98. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +29 -7
  99. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  100. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +77 -38
  101. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  102. package/lib/view/AcTrConvertQueue.d.ts +78 -0
  103. package/lib/view/AcTrConvertQueue.d.ts.map +1 -0
  104. package/lib/view/AcTrConvertQueue.js +143 -0
  105. package/lib/view/AcTrConvertQueue.js.map +1 -0
  106. package/lib/view/AcTrGroupWcsBboxAssert.d.ts +9 -0
  107. package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
  108. package/lib/view/AcTrGroupWcsBboxAssert.js +12 -0
  109. package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
  110. package/lib/view/AcTrLayer.d.ts.map +1 -1
  111. package/lib/view/AcTrLayer.js +5 -1
  112. package/lib/view/AcTrLayer.js.map +1 -1
  113. package/lib/view/AcTrLayout.d.ts.map +1 -1
  114. package/lib/view/AcTrLayout.js +15 -0
  115. package/lib/view/AcTrLayout.js.map +1 -1
  116. package/lib/view/AcTrLayoutView.d.ts.map +1 -1
  117. package/lib/view/AcTrLayoutView.js +3 -1
  118. package/lib/view/AcTrLayoutView.js.map +1 -1
  119. package/lib/view/AcTrProgressiveOpenFitController.d.ts +1 -0
  120. package/lib/view/AcTrProgressiveOpenFitController.d.ts.map +1 -1
  121. package/lib/view/AcTrProgressiveOpenFitController.js +2 -1
  122. package/lib/view/AcTrProgressiveOpenFitController.js.map +1 -1
  123. package/lib/view/AcTrView2d.d.ts +210 -20
  124. package/lib/view/AcTrView2d.d.ts.map +1 -1
  125. package/lib/view/AcTrView2d.js +962 -273
  126. package/lib/view/AcTrView2d.js.map +1 -1
  127. package/package.json +17 -10
  128. package/src/find/AcApFindNavigator.ts +190 -0
  129. package/src/find/findDrawing.ts +211 -0
  130. package/src/find/findText.ts +624 -0
  131. package/src/find/index.ts +2 -0
@@ -0,0 +1,561 @@
1
+ /**
2
+ * Text search over the entities of one layout (FIND).
3
+ *
4
+ * Shared by every UI (cad-simple-ui-plugin, the full Vue cad-viewer) so that
5
+ * both behave identically. Pure TypeScript with no runtime imports, published
6
+ * as the `@mlightcad/cad-simple-viewer/find` subpath.
7
+ *
8
+ * Searched fields:
9
+ * - `TEXT` — `textString`
10
+ * - `MTEXT` — `contents` with MTEXT formatting codes removed
11
+ * - `ATTRIB` — attribute value (`textString`) of every `INSERT` in the layout
12
+ * (the tag is reported for display but is not searched)
13
+ * - `TEXT` / `MTEXT` / `ATTRIB` inside the block definition of every `INSERT`
14
+ * (nested blocks included, anonymous/dynamic blocks too): title blocks,
15
+ * legends and labels are usually drawn this way
16
+ * - constant `ATTDEF` values inside block definitions (the only ATTDEFs that
17
+ * are drawn inside a block; templates get their value from an `ATTRIB`)
18
+ * - `DIMENSION` — the text of its dimension block when that block has a
19
+ * match, otherwise the override text (`dimensionText`)
20
+ * - `MULTILEADER` — its MTEXT contents
21
+ * - `ACAD_TABLE` — the cell text (from the table block when present,
22
+ * otherwise the cell strings)
23
+ *
24
+ * Every layout is visited in one synchronous pass per search. A hit inside a
25
+ * block, dimension or table selects the top-level entity of the layout that
26
+ * contains it, and carries the WCS extents of the matched text so the view
27
+ * can zoom to the text itself instead of to the whole block. Xrefs are not
28
+ * searched.
29
+ *
30
+ * The module is structural (no `instanceof`) so it can be unit tested with
31
+ * plain objects.
32
+ */
33
+ var __assign = (this && this.__assign) || function () {
34
+ __assign = Object.assign || function(t) {
35
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
36
+ s = arguments[i];
37
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
38
+ t[p] = s[p];
39
+ }
40
+ return t;
41
+ };
42
+ return __assign.apply(this, arguments);
43
+ };
44
+ var __read = (this && this.__read) || function (o, n) {
45
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
46
+ if (!m) return o;
47
+ var i = m.call(o), r, ar = [], e;
48
+ try {
49
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
50
+ }
51
+ catch (error) { e = { error: error }; }
52
+ finally {
53
+ try {
54
+ if (r && !r.done && (m = i["return"])) m.call(i);
55
+ }
56
+ finally { if (e) throw e.error; }
57
+ }
58
+ return ar;
59
+ };
60
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
61
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62
+ if (ar || !(i in from)) {
63
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
64
+ ar[i] = from[i];
65
+ }
66
+ }
67
+ return to.concat(ar || Array.prototype.slice.call(from));
68
+ };
69
+ var __values = (this && this.__values) || function(o) {
70
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
71
+ if (m) return m.call(o);
72
+ if (o && typeof o.length === "number") return {
73
+ next: function () {
74
+ if (o && i >= o.length) o = void 0;
75
+ return { value: o && o[i++], done: !o };
76
+ }
77
+ };
78
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
79
+ };
80
+ /** Maximum number of hits returned by one search. */
81
+ export var ACAP_FIND_MAX_RESULTS = 500;
82
+ var DIACRITICS = /[̀-ͯ]/g;
83
+ var WHITESPACE = /\s+/g;
84
+ /**
85
+ * Normalizes text or a query for comparison.
86
+ *
87
+ * - always: NFKC, whitespace runs → one space, trimmed
88
+ * - unless `matchCase`: accents removed, lower-cased
89
+ */
90
+ export function acapNormalizeFindText(value, matchCase) {
91
+ if (matchCase === void 0) { matchCase = false; }
92
+ var result = value.normalize('NFKC').replace(WHITESPACE, ' ').trim();
93
+ if (!matchCase) {
94
+ result = result.normalize('NFD').replace(DIACRITICS, '').toLowerCase();
95
+ }
96
+ return result;
97
+ }
98
+ /**
99
+ * Converts MTEXT contents to plain text: removes formatting codes
100
+ * (`\f…;`, `\H…;`, `\C…;`, `\L \l \O \o \K \k`, braces), turns `\P` into a
101
+ * space, decodes `\~`, `\U+XXXX`, stacked fractions and `%%c %%d %%p`.
102
+ */
103
+ export function acapMTextToPlainText(contents) {
104
+ // Match only fixed-length introducers. Searching for a missing semicolon
105
+ // inside a global regex would rescan the suffix at every formatting code.
106
+ var codes = /\\(U\+[0-9a-fA-F]{4}|[PX~SfFHWTQCcAaRrpLlOoKk\\{}])|[{}]/g;
107
+ var parts = [];
108
+ var lastIndex = 0;
109
+ var noSemicolon = false;
110
+ var match;
111
+ while ((match = codes.exec(contents))) {
112
+ parts.push(contents.slice(lastIndex, match.index));
113
+ var code = match[1];
114
+ var replacement = '';
115
+ if (code === null || code === void 0 ? void 0 : code.startsWith('U+')) {
116
+ replacement = String.fromCharCode(parseInt(code.slice(2), 16));
117
+ }
118
+ else if (code === 'P' || code === 'X' || code === '~') {
119
+ replacement = ' ';
120
+ }
121
+ else if (code === '\\' || code === '{' || code === '}') {
122
+ replacement = code;
123
+ }
124
+ else if (code && /[SfFHWTQCcAaRrp]/.test(code)) {
125
+ var end = noSemicolon ? -1 : contents.indexOf(';', codes.lastIndex);
126
+ if (end === -1) {
127
+ // All later positions also lack a terminator. Keep incomplete codes
128
+ // literal, without searching the same suffix again.
129
+ noSemicolon = true;
130
+ replacement = match[0];
131
+ }
132
+ else {
133
+ if (code === 'S') {
134
+ var stack = contents.slice(codes.lastIndex, end);
135
+ var separator = stack.search(/[\^#/]/);
136
+ if (separator === -1) {
137
+ replacement = stack;
138
+ }
139
+ else {
140
+ var denominator = stack.slice(separator + 1);
141
+ replacement =
142
+ stack.slice(0, separator) + (denominator ? "/".concat(denominator) : '');
143
+ }
144
+ }
145
+ // Consume the complete formatting code, including any nested escapes.
146
+ codes.lastIndex = end + 1;
147
+ }
148
+ }
149
+ parts.push(replacement);
150
+ lastIndex = codes.lastIndex;
151
+ }
152
+ parts.push(contents.slice(lastIndex));
153
+ return decodeControlCodes(parts.join('')).replace(WHITESPACE, ' ').trim();
154
+ }
155
+ /** Decodes `%%c`, `%%d`, `%%p` special-character codes. */
156
+ function decodeControlCodes(value) {
157
+ return value
158
+ .replace(/%%[cC]/g, 'Ø')
159
+ .replace(/%%[dD]/g, '°')
160
+ .replace(/%%[pP]/g, '±');
161
+ }
162
+ function plainText(value) {
163
+ return typeof value === 'string'
164
+ ? decodeControlCodes(value)
165
+ .normalize('NFKC')
166
+ .replace(WHITESPACE, ' ')
167
+ .trim()
168
+ : '';
169
+ }
170
+ function isLayerSearchable(db, layerName, cache) {
171
+ var _a;
172
+ var cached = cache.get(layerName);
173
+ if (cached !== undefined)
174
+ return cached;
175
+ var layer = (_a = db.tables.layerTable) === null || _a === void 0 ? void 0 : _a.getAt(layerName);
176
+ var searchable = !((layer === null || layer === void 0 ? void 0 : layer.isOff) || (layer === null || layer === void 0 ? void 0 : layer.isFrozen));
177
+ cache.set(layerName, searchable);
178
+ return searchable;
179
+ }
180
+ function pointOf(entity) {
181
+ var _a, _b, _c, _d;
182
+ var p = (_d = (_c = (_b = (_a = entity.position) !== null && _a !== void 0 ? _a : entity.location) !== null && _b !== void 0 ? _b : entity.textLocation) !== null && _c !== void 0 ? _c : entity.textPosition) !== null && _d !== void 0 ? _d : { x: 0, y: 0 };
183
+ return { x: Number(p.x) || 0, y: Number(p.y) || 0 };
184
+ }
185
+ /** `a × b` for column-major 4x4 matrices. */
186
+ function multiply(a, b) {
187
+ var out = new Array(16);
188
+ for (var col = 0; col < 4; col++) {
189
+ for (var row = 0; row < 4; row++) {
190
+ var sum = 0;
191
+ for (var k = 0; k < 4; k++)
192
+ sum += a[k * 4 + row] * b[col * 4 + k];
193
+ out[col * 4 + row] = sum;
194
+ }
195
+ }
196
+ return out;
197
+ }
198
+ function transformPoint(m, p) {
199
+ if (!m)
200
+ return { x: p.x, y: p.y };
201
+ var z = Number(p.z) || 0;
202
+ return {
203
+ x: m[0] * p.x + m[4] * p.y + m[8] * z + m[12],
204
+ y: m[1] * p.x + m[5] * p.y + m[9] * z + m[13]
205
+ };
206
+ }
207
+ function matrixOf(entity) {
208
+ var _a;
209
+ try {
210
+ var elements = (_a = entity.blockTransform) === null || _a === void 0 ? void 0 : _a.elements;
211
+ return Array.isArray(elements) && elements.length === 16
212
+ ? elements
213
+ : undefined;
214
+ }
215
+ catch (_b) {
216
+ return undefined;
217
+ }
218
+ }
219
+ /** WCS box of a (possibly nested) entity, or undefined when unknown. */
220
+ function extentsOf(entity, m) {
221
+ var _a, _b;
222
+ var box;
223
+ try {
224
+ box = entity.geometricExtents;
225
+ }
226
+ catch (_c) {
227
+ return undefined;
228
+ }
229
+ if (!box || !isFinite((_a = box.min) === null || _a === void 0 ? void 0 : _a.x) || !isFinite((_b = box.max) === null || _b === void 0 ? void 0 : _b.x))
230
+ return undefined;
231
+ if (!m)
232
+ return { min: __assign({}, box.min), max: __assign({}, box.max) };
233
+ var corners = [
234
+ { x: box.min.x, y: box.min.y },
235
+ { x: box.max.x, y: box.min.y },
236
+ { x: box.min.x, y: box.max.y },
237
+ { x: box.max.x, y: box.max.y }
238
+ ].map(function (p) { return transformPoint(m, p); });
239
+ return {
240
+ min: {
241
+ x: Math.min.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.x; })), false)),
242
+ y: Math.min.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.y; })), false))
243
+ },
244
+ max: {
245
+ x: Math.max.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.x; })), false)),
246
+ y: Math.max.apply(Math, __spreadArray([], __read(corners.map(function (p) { return p.y; })), false))
247
+ }
248
+ };
249
+ }
250
+ /** Maximum nesting of blocks inside blocks that is searched. */
251
+ var MAX_BLOCK_DEPTH = 8;
252
+ /**
253
+ * Finds text in the entities of one block table record (a layout).
254
+ *
255
+ * Entities that are invisible or sit on an off/frozen layer are skipped so
256
+ * that results always correspond to something the user can see.
257
+ *
258
+ * @param db - Database owning the layout.
259
+ * @param layoutBtrId - Block table record id of the layout (model/paper space).
260
+ * @param query - User query; blank queries return no hits.
261
+ */
262
+ export function acapFindTextInLayout(db, layoutBtrId, query, options) {
263
+ var e_1, _a, e_2, _b, e_3, _c;
264
+ var _d, _e, _f, _g, _h, _j, _k, _l, _m;
265
+ if (options === void 0) { options = {}; }
266
+ var matchCase = options.matchCase === true;
267
+ var max = (_d = options.maxResults) !== null && _d !== void 0 ? _d : ACAP_FIND_MAX_RESULTS;
268
+ var needle = acapNormalizeFindText(query, matchCase);
269
+ var result = { hits: [], truncated: false };
270
+ if (!needle)
271
+ return result;
272
+ var btr = db.tables.blockTable.getIdAt(layoutBtrId);
273
+ if (!btr)
274
+ return result;
275
+ var layers = new Map();
276
+ var matches = function (text) {
277
+ return text !== '' && acapNormalizeFindText(text, matchCase).includes(needle);
278
+ };
279
+ /** Set once the result cap is exceeded; stops every loop. */
280
+ var full = false;
281
+ var push = function (hit) {
282
+ if (result.hits.length >= max) {
283
+ result.truncated = true;
284
+ full = true;
285
+ return;
286
+ }
287
+ result.hits.push(hit);
288
+ };
289
+ /**
290
+ * Hit for text nested in `owner` (block, dimension or table). `path` keeps
291
+ * the key unique when the same block is inserted several times.
292
+ */
293
+ var pushNested = function (owner, path, entity, kind, text, m, extra) {
294
+ if (extra === void 0) { extra = {}; }
295
+ var extents = extentsOf(entity, m);
296
+ push(__assign(__assign({ entityId: owner.entity.objectId, textEntityId: "".concat(path, "/").concat(entity.objectId), kind: kind, text: text, layer: owner.layer, position: transformPoint(m, pointOf(entity)) }, (extents ? { extents: extents } : {})), extra));
297
+ };
298
+ /** Searches the entities of a block definition drawn by `owner`. */
299
+ var visitBlock = function (entities, owner, m, path, depth, stack) {
300
+ var e_4, _a, e_5, _b;
301
+ var _c, _d, _e, _f, _g;
302
+ try {
303
+ for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
304
+ var entity = entities_1_1.value;
305
+ if (full)
306
+ return;
307
+ var type = entity.dxfTypeName;
308
+ if (type !== 'TEXT' &&
309
+ type !== 'MTEXT' &&
310
+ type !== 'INSERT' &&
311
+ type !== 'ATTRIB' &&
312
+ type !== 'ATTDEF') {
313
+ continue;
314
+ }
315
+ if (entity.visibility === false)
316
+ continue;
317
+ // Only constant ATTDEFs are drawn inside a block (their default value
318
+ // is geometry); the others get their value from an ATTRIB of the INSERT.
319
+ if (type === 'ATTDEF' &&
320
+ (entity.isInvisible ||
321
+ !(entity.isConst || entity.isConstMTextAttribute))) {
322
+ continue;
323
+ }
324
+ // Layer 0 inside a block inherits the owner's layer (already checked).
325
+ if (entity.layer &&
326
+ entity.layer !== '0' &&
327
+ !isLayerSearchable(db, entity.layer, layers)) {
328
+ continue;
329
+ }
330
+ if (type === 'INSERT') {
331
+ if (depth >= MAX_BLOCK_DEPTH)
332
+ continue;
333
+ var inner = matrixOf(entity);
334
+ var nested = m && inner ? multiply(m, inner) : (inner !== null && inner !== void 0 ? inner : m);
335
+ var nestedPath = "".concat(path, "/").concat(entity.objectId);
336
+ try {
337
+ for (var _h = (e_5 = void 0, __values((_d = (_c = entity.attributeIterator) === null || _c === void 0 ? void 0 : _c.call(entity)) !== null && _d !== void 0 ? _d : [])), _j = _h.next(); !_j.done; _j = _h.next()) {
338
+ var attribute = _j.value;
339
+ if (full)
340
+ return;
341
+ if (attribute.visibility === false || attribute.isInvisible)
342
+ continue;
343
+ var text_1 = plainText(attribute.textString);
344
+ if (!matches(text_1))
345
+ continue;
346
+ // Attributes are stored in the coordinates of the block that holds
347
+ // the nested INSERT, like the INSERT itself.
348
+ pushNested(owner, nestedPath, attribute, 'block', text_1, m, {
349
+ tag: attribute.tag,
350
+ blockName: entity.blockName
351
+ });
352
+ }
353
+ }
354
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
355
+ finally {
356
+ try {
357
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
358
+ }
359
+ finally { if (e_5) throw e_5.error; }
360
+ }
361
+ var name_1 = entity.blockName;
362
+ if (!name_1 || stack.has(name_1))
363
+ continue;
364
+ var def = (_f = (_e = db.tables.blockTable).getAt) === null || _f === void 0 ? void 0 : _f.call(_e, name_1);
365
+ if (!def)
366
+ continue;
367
+ stack.add(name_1);
368
+ visitBlock(def.newIterator(), owner, nested, nestedPath, depth + 1, stack);
369
+ stack.delete(name_1);
370
+ continue;
371
+ }
372
+ var isMText = type === 'MTEXT' ||
373
+ (type === 'ATTDEF' && entity.isConstMTextAttribute && entity.mtext);
374
+ var text = isMText
375
+ ? acapMTextToPlainText(String((_g = (type === 'MTEXT' ? entity : entity.mtext).contents) !== null && _g !== void 0 ? _g : ''))
376
+ : plainText(entity.textString);
377
+ if (!matches(text))
378
+ continue;
379
+ pushNested(owner, path, entity, owner.kind, text, m, type === 'ATTDEF' ? { tag: entity.tag } : {});
380
+ }
381
+ }
382
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
383
+ finally {
384
+ try {
385
+ if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
386
+ }
387
+ finally { if (e_4) throw e_4.error; }
388
+ }
389
+ };
390
+ /** Block definition drawn by a DIMENSION / ACAD_TABLE, when present. */
391
+ var ownBlock = function (entity) {
392
+ var _a, _b;
393
+ try {
394
+ // ACAD_TABLE resolves its anonymous block itself.
395
+ var table = entity.blockTableRecord;
396
+ if (table === null || table === void 0 ? void 0 : table.newIterator)
397
+ return table;
398
+ var id = entity.dimBlockId;
399
+ var byId = id ? db.tables.blockTable.getIdAt(id) : undefined;
400
+ if (byId)
401
+ return byId;
402
+ var name_2 = entity.blockName;
403
+ return name_2 ? (_b = (_a = db.tables.blockTable).getAt) === null || _b === void 0 ? void 0 : _b.call(_a, name_2) : undefined;
404
+ }
405
+ catch (_c) {
406
+ return undefined;
407
+ }
408
+ };
409
+ try {
410
+ for (var _o = __values(btr.newIterator()), _p = _o.next(); !_p.done; _p = _o.next()) {
411
+ var entity = _p.value;
412
+ if (full)
413
+ break;
414
+ var type = entity.dxfTypeName;
415
+ if (type !== 'TEXT' &&
416
+ type !== 'MTEXT' &&
417
+ type !== 'INSERT' &&
418
+ type !== 'DIMENSION' &&
419
+ type !== 'MULTILEADER' &&
420
+ type !== 'ACAD_TABLE') {
421
+ continue;
422
+ }
423
+ if (entity.visibility === false)
424
+ continue;
425
+ if (!isLayerSearchable(db, entity.layer, layers))
426
+ continue;
427
+ if (type === 'INSERT') {
428
+ try {
429
+ for (var _q = (e_2 = void 0, __values((_f = (_e = entity.attributeIterator) === null || _e === void 0 ? void 0 : _e.call(entity)) !== null && _f !== void 0 ? _f : [])), _r = _q.next(); !_r.done; _r = _q.next()) {
430
+ var attribute = _r.value;
431
+ if (full)
432
+ break;
433
+ if (attribute.visibility === false || attribute.isInvisible)
434
+ continue;
435
+ var text_2 = plainText(attribute.textString);
436
+ if (!matches(text_2))
437
+ continue;
438
+ push({
439
+ entityId: entity.objectId,
440
+ textEntityId: attribute.objectId,
441
+ kind: 'attribute',
442
+ text: text_2,
443
+ tag: attribute.tag,
444
+ blockName: entity.blockName,
445
+ layer: entity.layer,
446
+ position: pointOf(attribute)
447
+ });
448
+ }
449
+ }
450
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
451
+ finally {
452
+ try {
453
+ if (_r && !_r.done && (_b = _q.return)) _b.call(_q);
454
+ }
455
+ finally { if (e_2) throw e_2.error; }
456
+ }
457
+ var name_3 = entity.blockName;
458
+ var def = name_3 ? (_h = (_g = db.tables.blockTable).getAt) === null || _h === void 0 ? void 0 : _h.call(_g, name_3) : undefined;
459
+ if (def && !full) {
460
+ visitBlock(def.newIterator(), { entity: entity, kind: 'block', layer: entity.layer }, matrixOf(entity), String(entity.objectId), 1, new Set([name_3]));
461
+ }
462
+ continue;
463
+ }
464
+ if (type === 'DIMENSION' || type === 'ACAD_TABLE') {
465
+ var kind = type === 'DIMENSION' ? 'dimension' : 'table';
466
+ var owner = { entity: entity, kind: kind, layer: entity.layer };
467
+ var block = ownBlock(entity);
468
+ var before = result.hits.length;
469
+ if (block) {
470
+ // Dimension / table blocks are already in WCS.
471
+ visitBlock(block.newIterator(), owner, undefined, String(entity.objectId), 1, new Set());
472
+ }
473
+ if (block && result.hits.length > before)
474
+ continue;
475
+ // No block, or a block without a matching text: use the stored strings
476
+ // (a dimension override can differ from what the block text shows).
477
+ var texts = [];
478
+ if (type === 'DIMENSION') {
479
+ var override = String((_j = entity.dimensionText) !== null && _j !== void 0 ? _j : '');
480
+ if (override && override !== '<>' && override !== ' ') {
481
+ texts.push(acapMTextToPlainText(override.replace('<>', '')));
482
+ }
483
+ }
484
+ else {
485
+ var rows = Number(entity.numRows) || 0;
486
+ var cols = Number(entity.numColumns) || 0;
487
+ for (var r = 0; r < rows; r++) {
488
+ for (var c = 0; c < cols; c++) {
489
+ try {
490
+ texts.push(acapMTextToPlainText(String((_l = (_k = entity.textString) === null || _k === void 0 ? void 0 : _k.call(entity, r, c)) !== null && _l !== void 0 ? _l : '')));
491
+ }
492
+ catch (_s) {
493
+ // Cell without text content.
494
+ }
495
+ }
496
+ }
497
+ }
498
+ try {
499
+ for (var texts_1 = (e_3 = void 0, __values(texts)), texts_1_1 = texts_1.next(); !texts_1_1.done; texts_1_1 = texts_1.next()) {
500
+ var text_3 = texts_1_1.value;
501
+ if (full)
502
+ break;
503
+ if (!matches(text_3))
504
+ continue;
505
+ push({
506
+ entityId: entity.objectId,
507
+ textEntityId: "".concat(entity.objectId, "/").concat(result.hits.length),
508
+ kind: kind,
509
+ text: text_3,
510
+ layer: entity.layer,
511
+ position: pointOf(entity)
512
+ });
513
+ }
514
+ }
515
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
516
+ finally {
517
+ try {
518
+ if (texts_1_1 && !texts_1_1.done && (_c = texts_1.return)) _c.call(texts_1);
519
+ }
520
+ finally { if (e_3) throw e_3.error; }
521
+ }
522
+ continue;
523
+ }
524
+ var text = type === 'MTEXT' || type === 'MULTILEADER'
525
+ ? acapMTextToPlainText(String((_m = entity.contents) !== null && _m !== void 0 ? _m : ''))
526
+ : plainText(entity.textString);
527
+ if (!matches(text))
528
+ continue;
529
+ push({
530
+ entityId: entity.objectId,
531
+ textEntityId: entity.objectId,
532
+ kind: type === 'MTEXT' ? 'mtext' : type === 'MULTILEADER' ? 'leader' : 'text',
533
+ text: text,
534
+ layer: entity.layer,
535
+ position: pointOf(entity)
536
+ });
537
+ }
538
+ }
539
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
540
+ finally {
541
+ try {
542
+ if (_p && !_p.done && (_a = _o.return)) _a.call(_o);
543
+ }
544
+ finally { if (e_1) throw e_1.error; }
545
+ }
546
+ return result;
547
+ }
548
+ /** Returns a short excerpt of `text` centred on the first match of `query`. */
549
+ export function acapFindExcerpt(text, query, matchCase, width) {
550
+ if (matchCase === void 0) { matchCase = false; }
551
+ if (width === void 0) { width = 60; }
552
+ if (text.length <= width)
553
+ return text;
554
+ var needle = acapNormalizeFindText(query, matchCase);
555
+ // Normalization may change length (accents, NFKC); fall back to the head.
556
+ var index = acapNormalizeFindText(text, matchCase).indexOf(needle);
557
+ var start = Math.max(0, Math.min(index - 15, text.length - width));
558
+ var slice = text.slice(start, start + width);
559
+ return "".concat(start > 0 ? '…' : '').concat(slice).concat(start + width < text.length ? '…' : '');
560
+ }
561
+ //# sourceMappingURL=findText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findText.js","sourceRoot":"","sources":["../../src/find/findText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './findDrawing';
2
+ export * from './findText';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/find/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './findDrawing';
2
+ export * from './findText';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/find/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
@@ -1223,6 +1223,8 @@ declare const _default: {
1223
1223
  exportLayouts: string;
1224
1224
  initialView: string;
1225
1225
  viewerMode: string;
1226
+ chunkSizeMiB: string;
1227
+ compressChunks: string;
1226
1228
  keywords: {
1227
1229
  single: {
1228
1230
  display: string;
@@ -1 +1 @@
1
- {"version":3,"file":"jig.d.ts","sourceRoot":"","sources":["../../../src/i18n/ar/jig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAijEC"}
1
+ {"version":3,"file":"jig.d.ts","sourceRoot":"","sources":["../../../src/i18n/ar/jig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAujEC"}
@@ -578,7 +578,7 @@ export default __assign(__assign({}, enJig), { arc: __assign(__assign({}, enJig.
578
578
  display: 'منحنى سبلاين(S)',
579
579
  local: 'منحنى سبلاين',
580
580
  global: 'Spline'
581
- } }) }), sysvar: __assign(__assign({}, enJig.sysvar), { prompt: 'أدخل القيمة الجديدة' }), chtml: __assign(__assign({}, enJig.chtml), { exportFormat: 'تنسيق التصدير', exportInvisibleLayers: 'تصدير الطبقات غير المرئية', exportLayouts: 'تصدير المخططات', initialView: 'العرض الأولي عند فتح HTML', viewerMode: 'وضع العارض دون اتصال', keywords: __assign(__assign({}, enJig.chtml.keywords), { single: {
581
+ } }) }), sysvar: __assign(__assign({}, enJig.sysvar), { prompt: 'أدخل القيمة الجديدة' }), chtml: __assign(__assign({}, enJig.chtml), { exportFormat: 'تنسيق التصدير', exportInvisibleLayers: 'تصدير الطبقات غير المرئية', exportLayouts: 'تصدير المخططات', initialView: 'العرض الأولي عند فتح HTML', viewerMode: 'وضع العارض دون اتصال', chunkSizeMiB: 'حجم الجزء بالميبيبايت (حزمة متعددة الملفات)', compressChunks: 'ضغط الأجزاء (حزمة متعددة الملفات)', keywords: __assign(__assign({}, enJig.chtml.keywords), { single: {
582
582
  display: 'ملف واحد(S)',
583
583
  local: 'ملف واحد',
584
584
  global: 'Single'