@mlightcad/data-model 1.12.3 → 1.12.4

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 (50) hide show
  1. package/README.md +4 -9
  2. package/dist/data-model.cjs +13 -13
  3. package/lib/converter/AcDbRegenerator.d.ts +0 -6
  4. package/lib/converter/AcDbRegenerator.d.ts.map +1 -1
  5. package/lib/converter/AcDbRegenerator.js +0 -8
  6. package/lib/converter/AcDbRegenerator.js.map +1 -1
  7. package/lib/converter/index.d.ts +0 -2
  8. package/lib/converter/index.d.ts.map +1 -1
  9. package/lib/converter/index.js +0 -1
  10. package/lib/converter/index.js.map +1 -1
  11. package/lib/database/AcDbDatabase.d.ts +1 -78
  12. package/lib/database/AcDbDatabase.d.ts.map +1 -1
  13. package/lib/database/AcDbDatabase.js +30 -111
  14. package/lib/database/AcDbDatabase.js.map +1 -1
  15. package/lib/database/AcDbDatabaseConverter.d.ts +32 -16
  16. package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -1
  17. package/lib/database/AcDbDatabaseConverter.js +10 -26
  18. package/lib/database/AcDbDatabaseConverter.js.map +1 -1
  19. package/lib/database/AcDbDatabaseConverterManager.d.ts +2 -2
  20. package/lib/database/AcDbDatabaseConverterManager.js +2 -2
  21. package/lib/database/AcDbSystemVariables.d.ts +1 -1
  22. package/lib/database/AcDbSystemVariables.js +1 -1
  23. package/lib/database/AcDbTextStyleTable.d.ts +7 -0
  24. package/lib/database/AcDbTextStyleTable.d.ts.map +1 -1
  25. package/lib/database/AcDbTextStyleTable.js +18 -3
  26. package/lib/database/AcDbTextStyleTable.js.map +1 -1
  27. package/lib/database/index.d.ts +2 -2
  28. package/lib/database/index.d.ts.map +1 -1
  29. package/lib/database/index.js.map +1 -1
  30. package/lib/dxf/AcDbDxfDocumentReader.d.ts +1 -18
  31. package/lib/dxf/AcDbDxfDocumentReader.d.ts.map +1 -1
  32. package/lib/dxf/AcDbDxfDocumentReader.js +13 -102
  33. package/lib/dxf/AcDbDxfDocumentReader.js.map +1 -1
  34. package/lib/dxf/AcDbNativeDxfConverter.d.ts +6 -8
  35. package/lib/dxf/AcDbNativeDxfConverter.d.ts.map +1 -1
  36. package/lib/dxf/AcDbNativeDxfConverter.js +45 -57
  37. package/lib/dxf/AcDbNativeDxfConverter.js.map +1 -1
  38. package/lib/index.d.ts +3 -3
  39. package/lib/index.d.ts.map +1 -1
  40. package/lib/index.js +1 -1
  41. package/lib/index.js.map +1 -1
  42. package/lib/misc/AcDbRenderingCache.d.ts +22 -6
  43. package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
  44. package/lib/misc/AcDbRenderingCache.js +138 -42
  45. package/lib/misc/AcDbRenderingCache.js.map +1 -1
  46. package/package.json +4 -4
  47. package/lib/converter/AcDbFontNameCollector.d.ts +0 -88
  48. package/lib/converter/AcDbFontNameCollector.d.ts.map +0 -1
  49. package/lib/converter/AcDbFontNameCollector.js +0 -339
  50. package/lib/converter/AcDbFontNameCollector.js.map +0 -1
@@ -1,339 +0,0 @@
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
- var __read = (this && this.__read) || function (o, n) {
13
- var m = typeof Symbol === "function" && o[Symbol.iterator];
14
- if (!m) return o;
15
- var i = m.call(o), r, ar = [], e;
16
- try {
17
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
- }
19
- catch (error) { e = { error: error }; }
20
- finally {
21
- try {
22
- if (r && !r.done && (m = i["return"])) m.call(i);
23
- }
24
- finally { if (e) throw e.error; }
25
- }
26
- return ar;
27
- };
28
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
- if (ar || !(i in from)) {
31
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
- ar[i] = from[i];
33
- }
34
- }
35
- return to.concat(ar || Array.prototype.slice.call(from));
36
- };
37
- import { DEFAULT_TEXT_STYLE } from '../misc/AcDbConstants';
38
- /** `\Ffont|b0|i0;...` extended inline font override. */
39
- var MTEXT_INLINE_FONT_PIPE_PATTERN = /\\[fF](.*?)\|/g;
40
- /** `\Ffont;...` short inline font override (e.g. tolerance `{\Fgdt;r}`). */
41
- var MTEXT_INLINE_FONT_SEMICOLON_PATTERN = /\\[fF]([^|;]+);/g;
42
- /**
43
- * Collects normalized font names from parsed drawing data before conversion.
44
- *
45
- * Host converters supply STYLE table entries plus an adapter that describes
46
- * each entity's font usage and nested block structure.
47
- */
48
- var AcDbFontNameCollector = /** @class */ (function () {
49
- function AcDbFontNameCollector(options) {
50
- var _a, _b;
51
- this.styles = options.styles;
52
- this.styleMap = AcDbFontNameCollector.buildStyleFontMap(this.styles);
53
- this.textStyleVar = (_a = options.textStyleVar) !== null && _a !== void 0 ? _a : DEFAULT_TEXT_STYLE;
54
- this.includeAllNamedStyleFonts = (_b = options.includeAllNamedStyleFonts) !== null && _b !== void 0 ? _b : true;
55
- }
56
- /**
57
- * Walks entities and returns all normalized font names referenced by the drawing.
58
- *
59
- * @param entities - Entity array, or a handle→entity map (`Map` values are walked).
60
- */
61
- AcDbFontNameCollector.prototype.collect = function (entities, adapter) {
62
- var e_1, _a, e_2, _b;
63
- var fonts = new Set();
64
- try {
65
- for (var _c = __values(AcDbFontNameCollector.collectShapeDefinitionFonts(this.styles)), _d = _c.next(); !_d.done; _d = _c.next()) {
66
- var fontName = _d.value;
67
- fonts.add(fontName);
68
- }
69
- }
70
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
71
- finally {
72
- try {
73
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
74
- }
75
- finally { if (e_1) throw e_1.error; }
76
- }
77
- if (this.includeAllNamedStyleFonts) {
78
- try {
79
- for (var _e = __values(AcDbFontNameCollector.collectNamedStyleTableFonts(this.styles)), _f = _e.next(); !_f.done; _f = _e.next()) {
80
- var fontName = _f.value;
81
- fonts.add(fontName);
82
- }
83
- }
84
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
85
- finally {
86
- try {
87
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
88
- }
89
- finally { if (e_2) throw e_2.error; }
90
- }
91
- }
92
- this.collectFromEntities(entities, adapter, fonts);
93
- return Array.from(fonts);
94
- };
95
- /**
96
- * Normalizes a font file name for font loading: strips the extension and lowercases.
97
- */
98
- AcDbFontNameCollector.normalizeFontFileName = function (fontFileName) {
99
- if (!fontFileName) {
100
- return undefined;
101
- }
102
- var lastDotIndex = fontFileName.lastIndexOf('.');
103
- if (lastDotIndex >= 0) {
104
- return fontFileName.substring(0, lastDotIndex).toLowerCase();
105
- }
106
- return fontFileName.toLowerCase();
107
- };
108
- AcDbFontNameCollector.prototype.collectFromEntities = function (entities, adapter, fonts) {
109
- var e_3, _a, e_4, _b;
110
- try {
111
- for (var _c = __values(AcDbFontNameCollector.iterateEntities(entities)), _d = _c.next(); !_d.done; _d = _c.next()) {
112
- var entity = _d.value;
113
- var info = adapter.getEntityFontInfo(entity);
114
- if (!info) {
115
- continue;
116
- }
117
- if (info.formattedText) {
118
- try {
119
- for (var _e = (e_4 = void 0, __values(AcDbFontNameCollector.extractInlineMTextFonts(info.formattedText))), _f = _e.next(); !_f.done; _f = _e.next()) {
120
- var fontName = _f.value;
121
- fonts.add(fontName);
122
- }
123
- }
124
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
125
- finally {
126
- try {
127
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
128
- }
129
- finally { if (e_4) throw e_4.error; }
130
- }
131
- }
132
- if (info.resolveStyle) {
133
- this.addResolvedStyleFonts(info.styleName, fonts);
134
- }
135
- if (info.blockName && adapter.getBlockEntities) {
136
- var blockEntities = adapter.getBlockEntities(info.blockName);
137
- if (blockEntities) {
138
- this.collectFromEntities(blockEntities, adapter, fonts);
139
- }
140
- }
141
- }
142
- }
143
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
144
- finally {
145
- try {
146
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
147
- }
148
- finally { if (e_3) throw e_3.error; }
149
- }
150
- };
151
- AcDbFontNameCollector.iterateEntities = function (entities) {
152
- return entities instanceof Map
153
- ? entities.values()
154
- : entities[Symbol.iterator]();
155
- };
156
- /**
157
- * Resolves font names for a text entity style using the same fallbacks as
158
- * {@link AcDbTextStyleTable.resolveAt}.
159
- */
160
- AcDbFontNameCollector.prototype.resolveStyleFontNames = function (styleName) {
161
- var e_5, _a, e_6, _b;
162
- var candidates = [];
163
- var addCandidate = function (value) {
164
- var trimmed = value === null || value === void 0 ? void 0 : value.trim();
165
- if (trimmed && !candidates.includes(trimmed)) {
166
- candidates.push(trimmed);
167
- }
168
- };
169
- addCandidate(styleName);
170
- addCandidate(this.textStyleVar);
171
- addCandidate(DEFAULT_TEXT_STYLE);
172
- addCandidate('STANDARD');
173
- try {
174
- for (var candidates_1 = __values(candidates), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {
175
- var candidate = candidates_1_1.value;
176
- var exact = this.styleMap.get(candidate);
177
- if (exact) {
178
- return exact;
179
- }
180
- var normalizedCandidate = candidate.toUpperCase();
181
- try {
182
- for (var _c = (e_6 = void 0, __values(this.styleMap)), _d = _c.next(); !_d.done; _d = _c.next()) {
183
- var _e = __read(_d.value, 2), key = _e[0], fontNames = _e[1];
184
- if (key.toUpperCase() === normalizedCandidate) {
185
- return fontNames;
186
- }
187
- }
188
- }
189
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
190
- finally {
191
- try {
192
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
193
- }
194
- finally { if (e_6) throw e_6.error; }
195
- }
196
- }
197
- }
198
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
199
- finally {
200
- try {
201
- if (candidates_1_1 && !candidates_1_1.done && (_a = candidates_1.return)) _a.call(candidates_1);
202
- }
203
- finally { if (e_5) throw e_5.error; }
204
- }
205
- return this.styleMap.values().next().value;
206
- };
207
- AcDbFontNameCollector.prototype.addResolvedStyleFonts = function (styleName, fonts) {
208
- var fontNames = this.resolveStyleFontNames(styleName);
209
- fontNames === null || fontNames === void 0 ? void 0 : fontNames.forEach(function (name) { return fonts.add(name); });
210
- };
211
- AcDbFontNameCollector.buildStyleFontMap = function (styles) {
212
- var e_7, _a;
213
- var styleMap = new Map();
214
- try {
215
- for (var styles_1 = __values(styles), styles_1_1 = styles_1.next(); !styles_1_1.done; styles_1_1 = styles_1.next()) {
216
- var style = styles_1_1.value;
217
- styleMap.set(style.name, AcDbFontNameCollector.collectStyleEntryFontNames(style));
218
- }
219
- }
220
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
221
- finally {
222
- try {
223
- if (styles_1_1 && !styles_1_1.done && (_a = styles_1.return)) _a.call(styles_1);
224
- }
225
- finally { if (e_7) throw e_7.error; }
226
- }
227
- return styleMap;
228
- };
229
- AcDbFontNameCollector.collectStyleEntryFontNames = function (style) {
230
- var e_8, _a;
231
- var fontNames = [];
232
- try {
233
- for (var _b = __values([style.font, style.bigFont, style.extendedFont]), _c = _b.next(); !_c.done; _c = _b.next()) {
234
- var fileName = _c.value;
235
- var normalized = AcDbFontNameCollector.normalizeFontFileName(fileName);
236
- if (normalized) {
237
- fontNames.push(normalized);
238
- }
239
- }
240
- }
241
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
242
- finally {
243
- try {
244
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
245
- }
246
- finally { if (e_8) throw e_8.error; }
247
- }
248
- return fontNames;
249
- };
250
- /**
251
- * Collects primary, big, and extended fonts from every named STYLE entry.
252
- * Ensures fonts referenced only in the style table (or in blocks not reached
253
- * from model space) are still preloaded when opening a drawing.
254
- */
255
- AcDbFontNameCollector.collectNamedStyleTableFonts = function (styles) {
256
- var e_9, _a;
257
- var fonts = [];
258
- try {
259
- for (var styles_2 = __values(styles), styles_2_1 = styles_2.next(); !styles_2_1.done; styles_2_1 = styles_2.next()) {
260
- var style = styles_2_1.value;
261
- if (style.standardFlag && style.standardFlag & 1) {
262
- continue;
263
- }
264
- fonts.push.apply(fonts, __spreadArray([], __read(AcDbFontNameCollector.collectStyleEntryFontNames(style)), false));
265
- }
266
- }
267
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
268
- finally {
269
- try {
270
- if (styles_2_1 && !styles_2_1.done && (_a = styles_2.return)) _a.call(styles_2);
271
- }
272
- finally { if (e_9) throw e_9.error; }
273
- }
274
- return fonts;
275
- };
276
- AcDbFontNameCollector.collectShapeDefinitionFonts = function (styles) {
277
- var e_10, _a;
278
- var fonts = [];
279
- try {
280
- for (var styles_3 = __values(styles), styles_3_1 = styles_3.next(); !styles_3_1.done; styles_3_1 = styles_3.next()) {
281
- var style = styles_3_1.value;
282
- if (style.standardFlag && style.standardFlag & 1) {
283
- var normalized = AcDbFontNameCollector.normalizeFontFileName(style.font);
284
- if (normalized) {
285
- fonts.push(normalized);
286
- }
287
- }
288
- }
289
- }
290
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
291
- finally {
292
- try {
293
- if (styles_3_1 && !styles_3_1.done && (_a = styles_3.return)) _a.call(styles_3);
294
- }
295
- finally { if (e_10) throw e_10.error; }
296
- }
297
- return fonts;
298
- };
299
- AcDbFontNameCollector.extractInlineMTextFonts = function (text) {
300
- var e_11, _a, e_12, _b;
301
- var fonts = new Set();
302
- try {
303
- for (var _c = __values(text.matchAll(MTEXT_INLINE_FONT_PIPE_PATTERN)), _d = _c.next(); !_d.done; _d = _c.next()) {
304
- var match = _d.value;
305
- fonts.add(match[1].toLowerCase());
306
- }
307
- }
308
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
309
- finally {
310
- try {
311
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
312
- }
313
- finally { if (e_11) throw e_11.error; }
314
- }
315
- try {
316
- for (var _e = __values(text.matchAll(MTEXT_INLINE_FONT_SEMICOLON_PATTERN)), _f = _e.next(); !_f.done; _f = _e.next()) {
317
- var match = _f.value;
318
- fonts.add(match[1].toLowerCase());
319
- }
320
- }
321
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
322
- finally {
323
- try {
324
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
325
- }
326
- finally { if (e_12) throw e_12.error; }
327
- }
328
- return Array.from(fonts);
329
- };
330
- /**
331
- * Extracts normalized font names from MTEXT inline overrides (`\f…|` / `\F…;`).
332
- */
333
- AcDbFontNameCollector.collectInlineMTextFonts = function (text) {
334
- return AcDbFontNameCollector.extractInlineMTextFonts(text);
335
- };
336
- return AcDbFontNameCollector;
337
- }());
338
- export { AcDbFontNameCollector };
339
- //# sourceMappingURL=AcDbFontNameCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AcDbFontNameCollector.js","sourceRoot":"","sources":["../../src/converter/AcDbFontNameCollector.ts"],"names":[],"mappings":"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"}