@mlightcad/libdxfrw-converter 3.1.3 → 3.1.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.
@@ -0,0 +1,476 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ 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;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ import { AcCmColor, AcDbBatchProcessing, AcDbBlockTableRecord, AcDbDatabaseConverter, AcDbDimStyleTableRecord, AcDbLayerTableRecord, AcDbLinetypeTableRecord, AcDbTextStyleTableRecord, AcDbViewportTableRecord } from '@mlightcad/data-model';
53
+ import { AcDbEntityConverter } from './AcDbEntitiyConverter';
54
+ import { AcDbObjectConverter } from './AcDbObjectConverter';
55
+ /**
56
+ * Database converter for DWG files based on [libdxfrw-web](https://github.com/mlight-lee/libdxfrw).
57
+ * @internal
58
+ */
59
+ var AcDbLibdxfrwConverter = /** @class */ (function (_super) {
60
+ __extends(AcDbLibdxfrwConverter, _super);
61
+ function AcDbLibdxfrwConverter(instance) {
62
+ var _this = _super.call(this) || this;
63
+ _this.librefrw = instance;
64
+ return _this;
65
+ }
66
+ AcDbLibdxfrwConverter.prototype.onFinished = function () {
67
+ _super.prototype.onFinished.call(this);
68
+ if (this.dwg) {
69
+ this.dwg.delete();
70
+ this.dwg = undefined;
71
+ }
72
+ if (this.database) {
73
+ this.database.delete();
74
+ this.database = undefined;
75
+ }
76
+ if (this.fileHandler) {
77
+ this.fileHandler.delete();
78
+ this.fileHandler = undefined;
79
+ }
80
+ };
81
+ AcDbLibdxfrwConverter.prototype.parse = function (data) {
82
+ return __awaiter(this, void 0, void 0, function () {
83
+ var libdxfrw;
84
+ return __generator(this, function (_a) {
85
+ if (this.librefrw == null) {
86
+ throw new Error('librefrw is not loaded!');
87
+ }
88
+ libdxfrw = this.librefrw;
89
+ this.database = new libdxfrw.DRW_Database();
90
+ this.fileHandler = new libdxfrw.DRW_FileHandler();
91
+ this.fileHandler.database = this.database;
92
+ this.dwg = new libdxfrw.DRW_DwgR(data);
93
+ // Uncomment out the following line if you want to show debug info
94
+ // this.dwg.setDebug(libdxfrw.DRW_dbg_Level.Debug);
95
+ this.dwg.read(this.fileHandler, false);
96
+ return [2 /*return*/, {
97
+ model: this.database,
98
+ data: {
99
+ unknownEntityCount: 0
100
+ }
101
+ }];
102
+ });
103
+ });
104
+ };
105
+ AcDbLibdxfrwConverter.prototype.processLineTypes = function (model, db) {
106
+ var lineTypes = model.lineTypes;
107
+ for (var index = 0, size = lineTypes.size(); index < size; ++index) {
108
+ var item = lineTypes.get(index);
109
+ if (item != null) {
110
+ var lineType = {
111
+ name: item.name,
112
+ description: item.desc,
113
+ standardFlag: item.flags,
114
+ totalPatternLength: item.length,
115
+ pattern: this.convertLineTypePattern(item.path)
116
+ };
117
+ var record = new AcDbLinetypeTableRecord(lineType);
118
+ this.processCommonTableEntryAttrs(item, record);
119
+ record.name = item.name;
120
+ db.tables.linetypeTable.add(record);
121
+ }
122
+ }
123
+ };
124
+ AcDbLibdxfrwConverter.prototype.convertLineTypePattern = function (path) {
125
+ var pattern = [];
126
+ for (var index = 0, size = path.size(); index < size; ++index) {
127
+ // libdxfrw doesn't support complex line type and always convert complex line type to simple line type
128
+ pattern.push({
129
+ elementLength: path.get(index) || 0,
130
+ elementTypeFlag: 0
131
+ });
132
+ }
133
+ return pattern;
134
+ };
135
+ AcDbLibdxfrwConverter.prototype.processTextStyles = function (model, db) {
136
+ var textStyles = model.textStyles;
137
+ for (var index = 0, size = textStyles.size(); index < size; ++index) {
138
+ var item = textStyles.get(index);
139
+ if (item != null) {
140
+ var textStyle = {
141
+ name: item.name,
142
+ standardFlag: item.flags,
143
+ fixedTextHeight: item.height,
144
+ widthFactor: item.width,
145
+ obliqueAngle: item.oblique,
146
+ textGenerationFlag: item.genFlag,
147
+ lastHeight: item.lastHeight,
148
+ font: item.font,
149
+ bigFont: item.bigFont
150
+ };
151
+ var record = new AcDbTextStyleTableRecord(textStyle);
152
+ this.processCommonTableEntryAttrs(item, record);
153
+ db.tables.textStyleTable.add(record);
154
+ }
155
+ }
156
+ };
157
+ AcDbLibdxfrwConverter.prototype.processDimStyles = function (model, db) {
158
+ var dimStyles = model.dimStyles;
159
+ for (var index = 0, size = dimStyles.size(); index < size; ++index) {
160
+ var item = dimStyles.get(index);
161
+ if (item != null) {
162
+ var attrs = {
163
+ name: item.name,
164
+ ownerId: item.parentHandle.toString(),
165
+ dimpost: item.dimpost || '',
166
+ dimapost: item.dimapost || '',
167
+ dimscale: item.dimscale,
168
+ dimasz: item.dimasz,
169
+ dimexo: item.dimexo,
170
+ dimdli: item.dimdli,
171
+ dimexe: item.dimexe,
172
+ dimrnd: item.dimrnd,
173
+ dimdle: item.dimdle,
174
+ dimtp: item.dimtp,
175
+ dimtm: item.dimtm,
176
+ dimtxt: item.dimtxt,
177
+ dimcen: item.dimcen,
178
+ dimtsz: item.dimtsz,
179
+ dimaltf: item.dimaltf,
180
+ dimlfac: item.dimlfac,
181
+ dimtvp: item.dimtvp,
182
+ dimtfac: item.dimtfac,
183
+ dimgap: item.dimgap,
184
+ dimaltrnd: item.dimaltrnd,
185
+ dimtol: item.dimtol == null || item.dimtol == 0 ? 0 : 1,
186
+ dimlim: item.dimlim == null || item.dimlim == 0 ? 0 : 1,
187
+ dimtih: item.dimtih == null || item.dimtih == 0 ? 0 : 1,
188
+ dimtoh: item.dimtoh == null || item.dimtoh == 0 ? 0 : 1,
189
+ dimse1: item.dimse1 == null || item.dimse1 == 0 ? 0 : 1,
190
+ dimse2: item.dimse2 == null || item.dimse2 == 0 ? 0 : 1,
191
+ dimtad: item.dimtad,
192
+ dimzin: item.dimzin,
193
+ dimazin: item.dimazin,
194
+ dimalt: item.dimalt,
195
+ dimaltd: item.dimaltd,
196
+ dimtofl: item.dimtofl,
197
+ dimsah: item.dimsah,
198
+ dimtix: item.dimtix,
199
+ dimsoxd: item.dimsoxd,
200
+ dimclrd: item.dimclrd,
201
+ dimclre: item.dimclre,
202
+ dimclrt: item.dimclrt,
203
+ dimadec: item.dimadec || 0,
204
+ dimunit: item.dimunit || 2,
205
+ dimdec: item.dimdec,
206
+ dimtdec: item.dimtdec,
207
+ dimaltu: item.dimaltu,
208
+ dimalttd: item.dimalttd,
209
+ dimaunit: item.dimaunit,
210
+ dimfrac: item.dimfrac,
211
+ dimlunit: item.dimlunit,
212
+ dimdsep: item.dimdsep.toString(),
213
+ dimtmove: item.dimtmove || 0,
214
+ dimjust: item.dimjust,
215
+ dimsd1: item.dimsd1,
216
+ dimsd2: item.dimsd2,
217
+ dimtolj: item.dimtolj,
218
+ dimtzin: item.dimtzin,
219
+ dimaltz: item.dimaltz,
220
+ dimalttz: item.dimaltttz,
221
+ dimfit: item.dimfit || 0,
222
+ dimupt: item.dimupt,
223
+ dimatfit: item.dimatfit,
224
+ dimtxsty: item.dimtxsty || 'Standard',
225
+ dimldrblk: item.dimldrblk || '',
226
+ dimblk: item.dimblk || '',
227
+ dimblk1: item.dimblk1 || '',
228
+ dimblk2: item.dimblk2 || '',
229
+ dimlwd: item.dimlwd,
230
+ dimlwe: item.dimlwe
231
+ };
232
+ var record = new AcDbDimStyleTableRecord(attrs);
233
+ this.processCommonTableEntryAttrs(item, record);
234
+ db.tables.dimStyleTable.add(record);
235
+ }
236
+ }
237
+ };
238
+ AcDbLibdxfrwConverter.prototype.processLayers = function (model, db) {
239
+ var layers = model.layers;
240
+ for (var index = 0, size = layers.size(); index < size; ++index) {
241
+ var item = layers.get(index);
242
+ if (item != null) {
243
+ var color = new AcCmColor();
244
+ color.colorIndex = item.color;
245
+ var record = new AcDbLayerTableRecord({
246
+ name: item.name,
247
+ standardFlags: item.flags,
248
+ linetype: item.lineType,
249
+ lineWeight: item.lWeight,
250
+ isOff: item.color < 0,
251
+ color: color,
252
+ isPlottable: item.plotF,
253
+ materialId: item.handleMaterialS
254
+ });
255
+ this.processCommonTableEntryAttrs(item, record);
256
+ db.tables.layerTable.add(record);
257
+ }
258
+ }
259
+ };
260
+ AcDbLibdxfrwConverter.prototype.processViewports = function (model, db) {
261
+ var viewports = model.viewports;
262
+ for (var index = 0, size = viewports.size(); index < size; ++index) {
263
+ var item = viewports.get(index);
264
+ if (item != null) {
265
+ var record = new AcDbViewportTableRecord();
266
+ this.processCommonTableEntryAttrs(item, record);
267
+ if (item.circleZoom) {
268
+ record.circleSides = item.circleZoom;
269
+ }
270
+ record.standardFlag = item.flags;
271
+ record.center.copy(item.center);
272
+ record.lowerLeftCorner.copy(item.lowerLeft);
273
+ record.upperRightCorner.copy(item.upperRight);
274
+ if (item.snapBase) {
275
+ record.snapBase.copy(item.snapBase);
276
+ }
277
+ if (item.snapAngle) {
278
+ record.snapAngle = item.snapAngle;
279
+ }
280
+ if (record.snapIncrements) {
281
+ record.snapIncrements.copy(item.snapSpacing);
282
+ }
283
+ if (item.gridSpacing) {
284
+ record.gridIncrements.copy(item.gridSpacing);
285
+ }
286
+ record.gsView.center.copy(item.center);
287
+ record.gsView.viewDirectionFromTarget.copy(item.viewDir);
288
+ record.gsView.viewTarget.copy(item.viewTarget);
289
+ if (item.lensHeight) {
290
+ record.gsView.lensLength = item.lensHeight;
291
+ }
292
+ if (item.height) {
293
+ record.gsView.viewHeight = item.height;
294
+ }
295
+ if (item.twistAngle) {
296
+ record.gsView.viewTwistAngle = item.twistAngle;
297
+ }
298
+ if (item.viewMode) {
299
+ record.gsView.viewMode = item.viewMode;
300
+ }
301
+ if (item.ucsIcon) {
302
+ record.gsView.ucsIconSetting = item.ucsIcon;
303
+ }
304
+ db.tables.viewportTable.add(record);
305
+ }
306
+ }
307
+ };
308
+ AcDbLibdxfrwConverter.prototype.processBlockTables = function (model, db) {
309
+ var blocks = model.blocks;
310
+ for (var index = 0, size = blocks.size(); index < size; ++index) {
311
+ var block = blocks.get(index);
312
+ if (block != null) {
313
+ var dbBlock = new AcDbBlockTableRecord();
314
+ dbBlock.objectId = block.handle.toString();
315
+ dbBlock.name = block.name.toUpperCase();
316
+ // TODO: Add logic to set the associated layout id
317
+ db.tables.blockTable.add(dbBlock);
318
+ if (block.entities) {
319
+ this.processEntitiesInBlock(block.entities, dbBlock);
320
+ }
321
+ }
322
+ }
323
+ };
324
+ AcDbLibdxfrwConverter.prototype.processCommonTableEntryAttrs = function (entry, dbEntry) {
325
+ dbEntry.name = entry.name;
326
+ dbEntry.objectId = entry.handle.toString();
327
+ dbEntry.ownerId = entry.parentHandle.toString();
328
+ };
329
+ AcDbLibdxfrwConverter.prototype.processHeader = function (model, db) {
330
+ var header = model.header;
331
+ // TODO: Check not supported versions
332
+ var variant = header.getVar('$CECOLOR');
333
+ // Initial value: ByLayer, Color index 256 is 'ByLayer'
334
+ db.cecolor.colorIndex = variant ? variant.getInt() : 256;
335
+ variant = header.getVar('$ANGDIR');
336
+ // Initial value: 0
337
+ db.angDir = variant ? variant.getInt() : 0;
338
+ variant = header.getVar('$AUNITS');
339
+ // Initial value: 0
340
+ db.aunits = variant ? variant.getInt() : 0;
341
+ variant = header.getVar('$INSUNITS');
342
+ // Initial value: 1 (imperial) or 4 (metric)
343
+ db.insunits = variant ? variant.getInt() : 1;
344
+ variant = header.getVar('$PDMODE');
345
+ // Initial value: 0
346
+ db.pdmode = variant ? variant.getInt() : 0;
347
+ variant = header.getVar('$PDSIZE');
348
+ // Initial value: 0
349
+ db.pdsize = variant ? variant.getDouble() : 0.0;
350
+ };
351
+ AcDbLibdxfrwConverter.prototype.processObjects = function (model, db) {
352
+ this.processImageDefs(model.images, db);
353
+ };
354
+ AcDbLibdxfrwConverter.prototype.processImageDefs = function (imageDefs, db) {
355
+ var objectConverter = new AcDbObjectConverter();
356
+ var imageDefDict = db.dictionaries.imageDefs;
357
+ for (var index = 0, size = imageDefs.size(); index < size; ++index) {
358
+ var item = imageDefs.get(index);
359
+ if (item != null) {
360
+ var dbImageDef = objectConverter.convertImageDef(item);
361
+ imageDefDict.setAt(dbImageDef.objectId, dbImageDef);
362
+ }
363
+ }
364
+ };
365
+ AcDbLibdxfrwConverter.prototype.processEntitiesInBlock = function (entities, blockTableRecord) {
366
+ return __awaiter(this, void 0, void 0, function () {
367
+ var converter, dbEntities, index, size, entity, dbEntity;
368
+ return __generator(this, function (_a) {
369
+ converter = new AcDbEntityConverter();
370
+ dbEntities = [];
371
+ for (index = 0, size = entities.size(); index < size; ++index) {
372
+ entity = entities.get(index);
373
+ if (entity != null) {
374
+ dbEntity = converter.convert(entity);
375
+ if (dbEntity) {
376
+ dbEntities.push(dbEntity);
377
+ }
378
+ }
379
+ }
380
+ // Use batch append to improve performance
381
+ blockTableRecord.appendEntity(dbEntities);
382
+ return [2 /*return*/];
383
+ });
384
+ });
385
+ };
386
+ AcDbLibdxfrwConverter.prototype.processEntities = function (model, db, minimumChunkSize, startPercentage, progress) {
387
+ return __awaiter(this, void 0, void 0, function () {
388
+ var converter_1, entities_1, entityList, entityCount_1, i, entity, batchProcessor, blockTableRecord_1;
389
+ var _this = this;
390
+ return __generator(this, function (_a) {
391
+ switch (_a.label) {
392
+ case 0:
393
+ if (!model.mBlock) return [3 /*break*/, 2];
394
+ converter_1 = new AcDbEntityConverter();
395
+ entities_1 = [];
396
+ entityList = model.mBlock.entities;
397
+ entityCount_1 = entityList.size();
398
+ for (i = 0; i < entityCount_1; i++) {
399
+ entity = entityList.get(i);
400
+ if (entity)
401
+ entities_1.push(entity);
402
+ }
403
+ batchProcessor = new AcDbBatchProcessing(entities_1.length, 100 - startPercentage.value, minimumChunkSize);
404
+ // Groups entities by their `type` property and flattens the result into a single array.
405
+ if (this.config.convertByEntityType) {
406
+ entities_1 = this.groupAndFlattenByType(entities_1);
407
+ }
408
+ blockTableRecord_1 = db.tables.blockTable.modelSpace;
409
+ return [4 /*yield*/, batchProcessor.processChunk(function (start, end) { return __awaiter(_this, void 0, void 0, function () {
410
+ var dbEntities, i, entity, dbEntity, percentage;
411
+ return __generator(this, function (_a) {
412
+ switch (_a.label) {
413
+ case 0:
414
+ dbEntities = [];
415
+ for (i = start; i < end; i++) {
416
+ entity = entities_1[i];
417
+ dbEntity = converter_1.convert(entity);
418
+ if (dbEntity) {
419
+ dbEntities.push(dbEntity);
420
+ }
421
+ }
422
+ // Use batch append to improve performance
423
+ blockTableRecord_1.appendEntity(dbEntities);
424
+ if (!progress) return [3 /*break*/, 2];
425
+ percentage = startPercentage.value +
426
+ (end / entityCount_1) * (100 - startPercentage.value);
427
+ if (percentage > 100)
428
+ percentage = 100;
429
+ return [4 /*yield*/, progress(percentage, 'ENTITY', 'IN-PROGRESS')];
430
+ case 1:
431
+ _a.sent();
432
+ _a.label = 2;
433
+ case 2: return [2 /*return*/];
434
+ }
435
+ });
436
+ }); })];
437
+ case 1:
438
+ _a.sent();
439
+ _a.label = 2;
440
+ case 2: return [2 /*return*/];
441
+ }
442
+ });
443
+ });
444
+ };
445
+ /**
446
+ * Groups entities by their `type` property and flattens the result into a single array.
447
+ *
448
+ * The order of `type` groups follows the order in which they first appear in the input array.
449
+ * Items within each group preserve their original order.
450
+ *
451
+ * This runs in O(n) time, which is generally faster than sorting when you
452
+ * don't care about alphabetical order of types.
453
+ *
454
+ * @param entities - The array of entities to group and flatten.
455
+ *
456
+ * @returns A new array of entities grouped by their `type` property.
457
+ */
458
+ AcDbLibdxfrwConverter.prototype.groupAndFlattenByType = function (entities) {
459
+ var groups = {};
460
+ var order = [];
461
+ var length = entities.length;
462
+ for (var i = 0; i < length; i++) {
463
+ var entity = entities[i];
464
+ var entityType = entity.eType.value;
465
+ if (!groups[entityType]) {
466
+ groups[entityType] = [];
467
+ order.push(entityType);
468
+ }
469
+ groups[entityType].push(entity);
470
+ }
471
+ return order.flatMap(function (type) { return groups[type]; });
472
+ };
473
+ return AcDbLibdxfrwConverter;
474
+ }(AcDbDatabaseConverter));
475
+ export { AcDbLibdxfrwConverter };
476
+ //# sourceMappingURL=AcDbLibdxfrwConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbLibdxfrwConverter.js","sourceRoot":"","sources":["../src/AcDbLibdxfrwConverter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EAGpB,qBAAqB,EACrB,uBAAuB,EAQvB,oBAAoB,EACpB,uBAAuB,EAEvB,wBAAwB,EACxB,uBAAuB,EAIxB,MAAM,uBAAuB,CAAA;AAa9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D;;;GAGG;AACH;IAA2C,yCAAmC;IAM5E,+BAAY,QAAoB;QAC9B,YAAA,MAAK,WAAE,SAAA;QACP,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;;IAC1B,CAAC;IAES,0CAAU,GAApB;QACE,gBAAK,CAAC,UAAU,WAAE,CAAA;QAClB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;YACjB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACtB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;YACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9B,CAAC;IACH,CAAC;IAEe,qCAAK,GAArB,UAAsB,IAA0B;;;;gBAC9C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;gBAC5C,CAAC;gBAEK,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAA;gBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAA;gBACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAEzC,IAAI,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAEtC,kEAAkE;gBAClE,mDAAmD;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;gBAEtC,sBAAO;wBACL,KAAK,EAAE,IAAI,CAAC,QAAQ;wBACpB,IAAI,EAAE;4BACJ,kBAAkB,EAAE,CAAC;yBACtB;qBACF,EAAA;;;KACF;IAES,gDAAgB,GAA1B,UAA2B,KAAmB,EAAE,EAAgB;QAC9D,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACnE,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,QAAQ,GAAsB;oBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,IAAI;oBACtB,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;iBAChD,CAAA;gBACD,IAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAA;gBACpD,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACvB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sDAAsB,GAA9B,UAA+B,IAAoB;QACjD,IAAM,OAAO,GAAiC,EAAE,CAAA;QAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YAC9D,sGAAsG;YACtG,OAAO,CAAC,IAAI,CAAC;gBACX,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,eAAe,EAAE,CAAC;aACnB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAES,iDAAiB,GAA3B,UAA4B,KAAmB,EAAE,EAAgB;QAC/D,IAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACpE,IAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,SAAS,GAAsB;oBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,eAAe,EAAE,IAAI,CAAC,MAAM;oBAC5B,WAAW,EAAE,IAAI,CAAC,KAAK;oBACvB,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,kBAAkB,EAAE,IAAI,CAAC,OAAO;oBAChC,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAA;gBACD,IAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAA;gBACtD,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/C,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAES,gDAAgB,GAA1B,UAA2B,KAAmB,EAAE,EAAgB;QAC9D,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACnE,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,KAAK,GAAiC;oBAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;oBACrC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;oBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,IAAI,CAAC,MAA+C;oBAC5D,MAAM,EAAE,IAAI,CAAC,MAAgD;oBAC7D,OAAO,EACL,IAAI,CAAC,OAAwD;oBAC/D,MAAM,EAAE,IAAI,CAAC,MAAe;oBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAgB;oBAC9B,MAAM,EAAE,IAAI,CAAC,MAAe;oBAC5B,MAAM,EAAE,IAAI,CAAC,MAAe;oBAC5B,OAAO,EAAE,IAAI,CAAC,OAAgB;oBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;oBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;oBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;oBAC5B,OAAO,EAAE,IAAI,CAAC,OAAkD;oBAChE,MAAM,EAAE,IAAI,CAAC,MAAe;oBAC5B,MAAM,EAAE,IAAI,CAAC,MAAe;oBAC5B,OAAO,EACL,IAAI,CAAC,OAAyD;oBAChE,OAAO,EAAE,IAAI,CAAC,OAAiD;oBAC/D,OAAO,EAAE,IAAI,CAAC,OAAiD;oBAC/D,QAAQ,EAAE,IAAI,CAAC,SAAmD;oBAClE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;oBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,UAAU;oBACrC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;oBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAA;gBACD,IAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAA;gBACjD,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/C,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAES,6CAAa,GAAvB,UAAwB,KAAmB,EAAE,EAAgB;QAC3D,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YAChE,IAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;gBAC7B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;gBAC7B,IAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC;oBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,aAAa,EAAE,IAAI,CAAC,KAAK;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,OAA4B;oBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;oBACrB,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,IAAI,CAAC,KAAK;oBACvB,UAAU,EAAE,IAAI,CAAC,eAAe;iBACjC,CAAC,CAAA;gBACF,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAES,gDAAgB,GAA1B,UAA2B,KAAmB,EAAE,EAAgB;QAC9D,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACnE,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAA;gBAC5C,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAC/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;gBACtC,CAAC;gBACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;gBAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC/B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAC3C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACrC,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;gBACnC,CAAC;gBACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC1B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC9C,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC9C,CAAC;gBAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACxD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC9C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;gBAC5C,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;gBACxC,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAA;gBAChD,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBACxC,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAA;gBAC7C,CAAC;gBACD,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAES,kDAAkB,GAA5B,UAA6B,KAAmB,EAAE,EAAgB;QAChE,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YAChE,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAA;gBAC1C,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC1C,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACvC,kDAAkD;gBAClD,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAEjC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,4DAA4B,GAApC,UACE,KAAqB,EACrB,OAA8B;QAE9B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACzB,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC1C,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC;IAES,6CAAa,GAAvB,UAAwB,KAAmB,EAAE,EAAgB;QAC3D,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,qCAAqC;QAErC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACvC,uDAAuD;QACvD,EAAE,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAExD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,mBAAmB;QACnB,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,mBAAmB;QACnB,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACpC,4CAA4C;QAC5C,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,mBAAmB;QACnB,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,mBAAmB;QACnB,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACjD,CAAC;IAES,8CAAc,GAAxB,UAAyB,KAAmB,EAAE,EAAgB;QAC5D,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAEO,gDAAgB,GAAxB,UAAyB,SAAwB,EAAE,EAAgB;QACjE,IAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAA;QACjD,IAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAA;QAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;YACnE,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;gBACxD,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAEa,sDAAsB,GAApC,UACE,QAAwB,EACxB,gBAAsC;;;;gBAEhC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAA;gBACrC,UAAU,GAAiB,EAAE,CAAA;gBACnC,KAAS,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC;oBAC5D,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBAClC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACb,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;wBAC1C,IAAI,QAAQ,EAAE,CAAC;4BACb,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,0CAA0C;gBAC1C,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;;;;KAC1C;IAEe,+CAAe,GAA/B,UACE,KAAmB,EACnB,EAAgB,EAChB,gBAAwB,EACxB,eAAkC,EAClC,QAAyC;;;;;;;6BAErC,KAAK,CAAC,MAAM,EAAZ,wBAAY;wBACR,cAAY,IAAI,mBAAmB,EAAE,CAAA;wBAEvC,aAAyB,EAAE,CAAA;wBACzB,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;wBAClC,gBAAc,UAAU,CAAC,IAAI,EAAE,CAAA;wBACrC,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAW,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;4BAChC,IAAI,MAAM;gCAAE,UAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBACnC,CAAC;wBAGK,cAAc,GAAG,IAAI,mBAAmB,CAC5C,UAAQ,CAAC,MAAM,EACf,GAAG,GAAG,eAAe,CAAC,KAAK,EAC3B,gBAAgB,CACjB,CAAA;wBACD,wFAAwF;wBACxF,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;4BACpC,UAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAQ,CAAC,CAAA;wBACjD,CAAC;wBAGK,qBAAmB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAA;wBACxD,qBAAM,cAAc,CAAC,YAAY,CAAC,UAAO,KAAK,EAAE,GAAG;;;;;4CAE3C,UAAU,GAAiB,EAAE,CAAA;4CACnC,KAAS,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gDAC3B,MAAM,GAAG,UAAQ,CAAC,CAAC,CAAC,CAAA;gDACpB,QAAQ,GAAG,WAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gDAC1C,IAAI,QAAQ,EAAE,CAAC;oDACb,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gDAC3B,CAAC;4CACH,CAAC;4CACD,0CAA0C;4CAC1C,kBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;iDAGrC,QAAQ,EAAR,wBAAQ;4CACN,UAAU,GACZ,eAAe,CAAC,KAAK;gDACrB,CAAC,GAAG,GAAG,aAAW,CAAC,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;4CACrD,IAAI,UAAU,GAAG,GAAG;gDAAE,UAAU,GAAG,GAAG,CAAA;4CACtC,qBAAM,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAA;;4CAAnD,SAAmD,CAAA;;;;;iCAEtD,CAAC,EAAA;;wBArBF,SAqBE,CAAA;;;;;;KAEL;IAED;;;;;;;;;;;;OAYG;IACK,qDAAqB,GAA7B,UAA8B,QAAsB;QAClD,IAAM,MAAM,GAAiC,EAAE,CAAA;QAC/C,IAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAA;YACrC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;gBACvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxB,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC,EAAZ,CAAY,CAAC,CAAA;IAC5C,CAAC;IACH,4BAAC;AAAD,CAAC,AAxbD,CAA2C,qBAAqB,GAwb/D"}
@@ -0,0 +1,6 @@
1
+ import { AcDbRasterImageDef } from '@mlightcad/data-model';
2
+ import { DRW_ImageEx } from '@mlightcad/libdxfrw-web';
3
+ export declare class AcDbObjectConverter {
4
+ convertImageDef(imageDef: DRW_ImageEx): AcDbRasterImageDef;
5
+ }
6
+ //# sourceMappingURL=AcDbObjectConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbObjectConverter.d.ts","sourceRoot":"","sources":["../src/AcDbObjectConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,qBAAa,mBAAmB;IAC9B,eAAe,CAAC,QAAQ,EAAE,WAAW;CAOtC"}
@@ -0,0 +1,15 @@
1
+ import { AcDbRasterImageDef } from '@mlightcad/data-model';
2
+ var AcDbObjectConverter = /** @class */ (function () {
3
+ function AcDbObjectConverter() {
4
+ }
5
+ AcDbObjectConverter.prototype.convertImageDef = function (imageDef) {
6
+ var dbObject = new AcDbRasterImageDef();
7
+ dbObject.sourceFileName = imageDef.path;
8
+ dbObject.objectId = imageDef.handle.toString();
9
+ dbObject.ownerId = imageDef.parentHandle.toString();
10
+ return dbObject;
11
+ };
12
+ return AcDbObjectConverter;
13
+ }());
14
+ export { AcDbObjectConverter };
15
+ //# sourceMappingURL=AcDbObjectConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbObjectConverter.js","sourceRoot":"","sources":["../src/AcDbObjectConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG1D;IAAA;IAQA,CAAC;IAPC,6CAAe,GAAf,UAAgB,QAAqB;QACnC,IAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAA;QACzC,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAA;QACvC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QAC9C,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA;QACnD,OAAO,QAAQ,CAAA;IACjB,CAAC;IACH,0BAAC;AAAD,CAAC,AARD,IAQC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './AcDbLibdxfrwConverter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './AcDbLibdxfrwConverter';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/libdxfrw-converter",
3
- "version": "3.1.3",
3
+ "version": "3.1.4",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "devDependencies": {},
37
37
  "peerDependencies": {
38
38
  "@mlightcad/libdxfrw-web": "0.0.9",
39
- "@mlightcad/data-model": "1.3.3"
39
+ "@mlightcad/data-model": "1.3.4"
40
40
  },
41
41
  "scripts": {
42
42
  "clean": "rimraf dist lib tsconfig.tsbuildinfo",