@bldrs-ai/conway 1.429.1291 → 1.431.1296

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 (27) hide show
  1. package/compiled/examples/browser-bundled.cjs +21 -2
  2. package/compiled/examples/cli-bundled.cjs +37 -3
  3. package/compiled/examples/cli-step-bundled.cjs +61 -21
  4. package/compiled/examples/validator-bundled.cjs +21 -2
  5. package/compiled/src/AP214E3_2010/ap214_geometry_extraction.d.ts.map +1 -1
  6. package/compiled/src/AP214E3_2010/ap214_geometry_extraction.js +83 -24
  7. package/compiled/src/compat/web-ifc/ifc_api.d.ts +10 -0
  8. package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
  9. package/compiled/src/compat/web-ifc/ifc_api.js +12 -0
  10. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +2 -0
  11. package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
  12. package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.js +104 -0
  13. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
  14. package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +9 -1
  15. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
  16. package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +9 -1
  17. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +47 -0
  18. package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -1
  19. package/compiled/src/compat/web-ifc/streamed_preview_channel.js +144 -16
  20. package/compiled/src/ifc/ifc_geometry_extraction.d.ts +9 -1
  21. package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
  22. package/compiled/src/ifc/ifc_geometry_extraction.js +16 -1
  23. package/compiled/src/step/parsing/columnar_index.d.ts.map +1 -1
  24. package/compiled/src/step/parsing/columnar_index.js +40 -1
  25. package/compiled/src/version/version.js +1 -1
  26. package/compiled/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +1 -1
@@ -30,7 +30,7 @@ var import_node_process = require("node:process");
30
30
  var readline = __toESM(require("node:readline"), 1);
31
31
 
32
32
  // compiled/src/version/version.js
33
- var versionString = "Conway v1.429.1291";
33
+ var versionString = "Conway v1.431.1296";
34
34
 
35
35
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
36
36
  var wasmType = "";
@@ -71065,7 +71065,7 @@ var ColumnarIndexSink = class {
71065
71065
  let complexEntries;
71066
71066
  for (const [localID, entry] of this.retained_) {
71067
71067
  if (entry.multiMapping !== void 0) {
71068
- (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, entry);
71068
+ (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, cloneIndexEntry(entry));
71069
71069
  }
71070
71070
  }
71071
71071
  return {
@@ -71080,6 +71080,25 @@ var ColumnarIndexSink = class {
71080
71080
  };
71081
71081
  }
71082
71082
  };
71083
+ function cloneIndexEntry(entry) {
71084
+ const clone = {
71085
+ address: entry.address,
71086
+ length: entry.length
71087
+ };
71088
+ if (entry.typeID !== void 0) {
71089
+ clone.typeID = entry.typeID;
71090
+ }
71091
+ if (entry.expressID !== void 0) {
71092
+ clone.expressID = entry.expressID;
71093
+ }
71094
+ if (entry.inlineEntities !== void 0) {
71095
+ clone.inlineEntities = entry.inlineEntities;
71096
+ }
71097
+ if (entry.multiMapping !== void 0) {
71098
+ clone.multiMapping = entry.multiMapping.map(cloneIndexEntry);
71099
+ }
71100
+ return clone;
71101
+ }
71083
71102
  function concatColumn(segments, column, rows, finalLength) {
71084
71103
  const result = new Uint32Array(finalLength);
71085
71104
  for (let segment = 0; segment * SEGMENT_ROWS < rows; ++segment) {
@@ -14965,7 +14965,7 @@ ${t5.join("\n")}` : "";
14965
14965
  var import_process = require("process");
14966
14966
 
14967
14967
  // compiled/src/version/version.js
14968
- var versionString = "Conway v1.429.1291";
14968
+ var versionString = "Conway v1.431.1296";
14969
14969
 
14970
14970
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
14971
14971
  function pThreadsAllowed() {
@@ -86910,7 +86910,7 @@ var ColumnarIndexSink = class {
86910
86910
  let complexEntries;
86911
86911
  for (const [localID, entry] of this.retained_) {
86912
86912
  if (entry.multiMapping !== void 0) {
86913
- (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, entry);
86913
+ (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, cloneIndexEntry(entry));
86914
86914
  }
86915
86915
  }
86916
86916
  return {
@@ -86925,6 +86925,25 @@ var ColumnarIndexSink = class {
86925
86925
  };
86926
86926
  }
86927
86927
  };
86928
+ function cloneIndexEntry(entry) {
86929
+ const clone = {
86930
+ address: entry.address,
86931
+ length: entry.length
86932
+ };
86933
+ if (entry.typeID !== void 0) {
86934
+ clone.typeID = entry.typeID;
86935
+ }
86936
+ if (entry.expressID !== void 0) {
86937
+ clone.expressID = entry.expressID;
86938
+ }
86939
+ if (entry.inlineEntities !== void 0) {
86940
+ clone.inlineEntities = entry.inlineEntities;
86941
+ }
86942
+ if (entry.multiMapping !== void 0) {
86943
+ clone.multiMapping = entry.multiMapping.map(cloneIndexEntry);
86944
+ }
86945
+ return clone;
86946
+ }
86928
86947
  function concatColumn(segments, column, rows, finalLength) {
86929
86948
  const result = new Uint32Array(finalLength);
86930
86949
  for (let segment = 0; segment * SEGMENT_ROWS < rows; ++segment) {
@@ -91551,8 +91570,23 @@ var IfcGeometryExtraction = class _IfcGeometryExtraction {
91551
91570
  * whole-model walk: populates the shared extraction maps so
91552
91571
  * {@link extractProductGeometryByLocalID} can extract any single product.
91553
91572
  * Idempotent; the whole-model walk shares the same preparation.
91573
+ *
91574
+ * @param lightweightPreview Preview-only preparation (parse-time
91575
+ * preview generations): skips the relationship sweeps
91576
+ * (rel-materials, rel-voids) whose entity materialization dominates
91577
+ * preparation cost on large models — extracted products then miss
91578
+ * openings and rel-bound materials, which preview consumers accept
91579
+ * by contract. Styled-item and material-definition maps are kept
91580
+ * (colors), as is the linear scaling factor.
91554
91581
  */
91555
- prepareDemandExtraction() {
91582
+ prepareDemandExtraction(lightweightPreview = false) {
91583
+ if (lightweightPreview && !this.extractionMapsPrepared_) {
91584
+ this.extractionMapsPrepared_ = true;
91585
+ this.extractLinearScalingFactor();
91586
+ this.populateMaterialDefinitionsMap();
91587
+ this.populateStyledItemsMap();
91588
+ return;
91589
+ }
91556
91590
  this.prepareExtractionMaps_();
91557
91591
  }
91558
91592
  /**
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
15943
15943
  };
15944
15944
 
15945
15945
  // compiled/src/version/version.js
15946
- var versionString = "Conway v1.429.1291";
15946
+ var versionString = "Conway v1.431.1296";
15947
15947
 
15948
15948
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
15949
15949
  function pThreadsAllowed() {
@@ -84133,12 +84133,24 @@ ${error.stack} - expressID: #${face_.expressID}`);
84133
84133
  }
84134
84134
  }
84135
84135
  for (const contextDependentShapeRepresentation of contextDependentShapeRepresentations) {
84136
- const assembly = contextDependentShapeRepresentation.represented_product_relation;
84136
+ let assembly;
84137
+ let shapeRelationship;
84138
+ try {
84139
+ assembly = contextDependentShapeRepresentation.represented_product_relation;
84140
+ shapeRelationship = contextDependentShapeRepresentation.representation_relation;
84141
+ } catch {
84142
+ continue;
84143
+ }
84137
84144
  const owningLocalID = assembly.localID;
84138
- const shapeRelationship = contextDependentShapeRepresentation.representation_relation;
84139
84145
  shapeRepresentationRelationshipsSeen.add(shapeRelationship.localID);
84140
- let sourceShape = shapeRelationship.rep_1;
84141
- let targetShape = shapeRelationship.rep_2;
84146
+ let sourceShape;
84147
+ let targetShape;
84148
+ try {
84149
+ sourceShape = shapeRelationship.rep_1;
84150
+ targetShape = shapeRelationship.rep_2;
84151
+ } catch {
84152
+ continue;
84153
+ }
84142
84154
  let orientationFlipped = false;
84143
84155
  try {
84144
84156
  const nauo = assembly.definition;
@@ -84155,7 +84167,13 @@ ${error.stack} - expressID: #${face_.expressID}`);
84155
84167
  }
84156
84168
  } catch {
84157
84169
  }
84158
- const [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID, orientationFlipped);
84170
+ let transform;
84171
+ let isContinue;
84172
+ try {
84173
+ [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID, orientationFlipped);
84174
+ } catch {
84175
+ continue;
84176
+ }
84159
84177
  if (isContinue) {
84160
84178
  continue;
84161
84179
  }
@@ -84188,9 +84206,17 @@ ${error.stack} - expressID: #${face_.expressID}`);
84188
84206
  }
84189
84207
  const owningLocalID = shapeRelationship.localID;
84190
84208
  shapeRepresentationRelationshipsSeen.add(owningLocalID);
84191
- const sourceShape = shapeRelationship.rep_2;
84192
- const targetShape = shapeRelationship.rep_1;
84193
- const [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID);
84209
+ let sourceShape;
84210
+ let targetShape;
84211
+ let transform;
84212
+ let isContinue;
84213
+ try {
84214
+ sourceShape = shapeRelationship.rep_2;
84215
+ targetShape = shapeRelationship.rep_1;
84216
+ [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID);
84217
+ } catch {
84218
+ continue;
84219
+ }
84194
84220
  if (isContinue) {
84195
84221
  continue;
84196
84222
  }
@@ -84218,11 +84244,17 @@ ${error.stack} - expressID: #${face_.expressID}`);
84218
84244
  }
84219
84245
  const shapeDefinitions = model.types(shape_definition_representation);
84220
84246
  for (const shapeDefinitionRepresentation of shapeDefinitions) {
84221
- const shapeRepresentation = shapeDefinitionRepresentation.used_representation;
84222
- if (!(shapeRepresentation instanceof shape_representation)) {
84247
+ let shapeRepresentation;
84248
+ let definition;
84249
+ try {
84250
+ shapeRepresentation = shapeDefinitionRepresentation.used_representation;
84251
+ if (!(shapeRepresentation instanceof shape_representation)) {
84252
+ continue;
84253
+ }
84254
+ definition = shapeDefinitionRepresentation.definition;
84255
+ } catch {
84223
84256
  continue;
84224
84257
  }
84225
- const definition = shapeDefinitionRepresentation.definition;
84226
84258
  const owningElementLocalID = definition.localID;
84227
84259
  let treeNode = treeMap.get(shapeRepresentation.localID);
84228
84260
  const hasMappedNode = treeNode !== void 0;
@@ -84239,11 +84271,15 @@ ${error.stack} - expressID: #${face_.expressID}`);
84239
84271
  mappedTreeNode.owningLocalID = owningElementLocalID;
84240
84272
  if (!hasMappedNode) {
84241
84273
  mappedTreeNode.processed = true;
84242
- const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.find((unit) => unit.findVariant(length_unit))?.findVariant(length_unit);
84243
84274
  let scaleTransform = void 0;
84244
- if (sourceShapeContext !== void 0) {
84245
- const sourceUnitInM = this.convertToMetres(sourceShapeContext) ?? 1;
84246
- scaleTransform = this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
84275
+ try {
84276
+ const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.find((unit) => unit.findVariant(length_unit))?.findVariant(length_unit);
84277
+ if (sourceShapeContext !== void 0) {
84278
+ const sourceUnitInM = this.convertToMetres(sourceShapeContext) ?? 1;
84279
+ scaleTransform = this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
84280
+ }
84281
+ } catch {
84282
+ scaleTransform = void 0;
84247
84283
  }
84248
84284
  pendingRoots.push({
84249
84285
  node: mappedTreeNode,
@@ -84270,12 +84306,16 @@ ${error.stack} - expressID: #${face_.expressID}`);
84270
84306
  }
84271
84307
  for (const [sourceID, mappedNode] of treeMap.entries()) {
84272
84308
  if ((mappedNode.parents ?? 0) === 0 && mappedNode.thunk !== void 0 && mappedNode.processed !== true) {
84273
- const shapeRepresentation = this.model.getTypedElementByLocalID(sourceID, shape_representation);
84274
- const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.find((unit) => unit.findVariant(length_unit))?.findVariant(length_unit);
84275
84309
  let scaleTransform = void 0;
84276
- if (sourceShapeContext !== void 0) {
84277
- const sourceUnitInM = this.convertToMetres(sourceShapeContext) ?? 1;
84278
- scaleTransform = this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
84310
+ try {
84311
+ const shapeRepresentation = this.model.getTypedElementByLocalID(sourceID, shape_representation);
84312
+ const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.find((unit) => unit.findVariant(length_unit))?.findVariant(length_unit);
84313
+ if (sourceShapeContext !== void 0) {
84314
+ const sourceUnitInM = this.convertToMetres(sourceShapeContext) ?? 1;
84315
+ scaleTransform = this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
84316
+ }
84317
+ } catch {
84318
+ scaleTransform = void 0;
84279
84319
  }
84280
84320
  pendingRoots.push({ node: mappedNode, scaleTransform });
84281
84321
  }
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
944
944
  var entity_types_ifc_gen_default = EntityTypesIfc;
945
945
 
946
946
  // compiled/src/version/version.js
947
- var versionString = "Conway v1.429.1291";
947
+ var versionString = "Conway v1.431.1296";
948
948
 
949
949
  // compiled/dependencies/conway-geom/interface/conway_geometry.js
950
950
  var wasmType = "";
@@ -71063,7 +71063,7 @@ var ColumnarIndexSink = class {
71063
71063
  let complexEntries;
71064
71064
  for (const [localID, entry] of this.retained_) {
71065
71065
  if (entry.multiMapping !== void 0) {
71066
- (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, entry);
71066
+ (complexEntries ??= /* @__PURE__ */ new Map()).set(localID, cloneIndexEntry(entry));
71067
71067
  }
71068
71068
  }
71069
71069
  return {
@@ -71078,6 +71078,25 @@ var ColumnarIndexSink = class {
71078
71078
  };
71079
71079
  }
71080
71080
  };
71081
+ function cloneIndexEntry(entry) {
71082
+ const clone = {
71083
+ address: entry.address,
71084
+ length: entry.length
71085
+ };
71086
+ if (entry.typeID !== void 0) {
71087
+ clone.typeID = entry.typeID;
71088
+ }
71089
+ if (entry.expressID !== void 0) {
71090
+ clone.expressID = entry.expressID;
71091
+ }
71092
+ if (entry.inlineEntities !== void 0) {
71093
+ clone.inlineEntities = entry.inlineEntities;
71094
+ }
71095
+ if (entry.multiMapping !== void 0) {
71096
+ clone.multiMapping = entry.multiMapping.map(cloneIndexEntry);
71097
+ }
71098
+ return clone;
71099
+ }
71081
71100
  function concatColumn(segments, column, rows, finalLength) {
71082
71101
  const result = new Uint32Array(finalLength);
71083
71102
  for (let segment = 0; segment * SEGMENT_ROWS < rows; ++segment) {
@@ -1 +1 @@
1
- {"version":3,"file":"ap214_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/AP214E3_2010/ap214_geometry_extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,sBAAsB,EAEtB,OAAO,EACP,WAAW,EAOX,wBAAwB,EAMxB,aAAa,EACb,SAAS,EACT,sBAAsB,EAEtB,cAAc,EACd,iBAAiB,EAOjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EAItB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAqB,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EAEnB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACX,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAEL,aAAa,EAEb,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAEhB,cAAc,EACd,eAAe,EACf,oCAAoC,EACpC,oCAAoC,EACpC,MAAM,EACN,UAAU,EACV,eAAe,EAEf,eAAe,EACf,kBAAkB,EAGlB,KAAK,EACL,mBAAmB,EACnB,SAAS,EAIT,OAAO,EACP,mBAAmB,EACnB,IAAI,EACJ,wBAAwB,EACxB,YAAY,EAMZ,gBAAgB,EAGhB,WAAW,EACX,IAAI,EACJ,mBAAmB,EACnB,WAAW,EAMX,MAAM,EACN,SAAS,EAAE,KAAK,EAEhB,QAAQ,EAMR,aAAa,EACb,uBAAuB,EAEvB,mBAAmB,EAInB,oBAAoB,EACpB,iCAAiC,EACjC,yBAAyB,EACzB,SAAS,EAET,iBAAiB,EACjB,WAAW,EACX,OAAO,EAEP,2BAA2B,EAC3B,qBAAqB,EAIrB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EAKd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAK/C;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAG9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,UAAU,GAAG,aAAa,EAChC,YAAY,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAezD;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAyDhC,OAAO,CAAC,QAAQ,CAAC,WAAW;aACZ,KAAK,EAAE,cAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IA3DhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAY;IAE7C,OAAO,CAAC,UAAU,CAAY;IAE9B,SAAgB,KAAK,EAAE,iBAAiB,CAAA;IAExC,SAAgB,SAAS,EAAE,kBAAkB,CAAA;IAE7C,SAAgB,eAAe,EAAE,oBAAoB,CAAA;IAIrD,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,cAAc,CAAa;IAEnC,OAAO,CAAC,0BAA0B,CAAgD;IAClF,OAAO,CAAC,0BAA0B,CAAgD;IAClF,OAAO,CAAC,gCAAgC,CACoB;IAE5D,OAAO,CAAC,sBAAsB,CAA2C;IAElE,WAAW,EAAE,qBAAqB,GAAG,IAAI,CAAO;IAEvD,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,sBAAsB,CAAoB;IAElD,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAY;IAE5B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,SAAgB,MAAM,EAAE,gBAAgB,CAAA;IAExC,SAAgB,aAAa,EAAE,cAAc,CAAA;IAE7C;;;;;;;;;OASG;gBAEgB,WAAW,EAAE,cAAc,EAC5B,KAAK,EAAE,cAAc,EACpB,aAAa,GAAE,OAAc,EAC7B,aAAa,GAAE,MAAW,EAC1B,aAAa,GAAE,OAAe;IAoCjD;;;;;;;;OAQG;IACH,mBAAmB,IAAI,IAAI;IAO3B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAWtB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;OAIG;IACH,mBAAmB,IAAI,MAAM;IAa7B;;OAEG;IACH,qBAAqB;IAOrB;;OAEG;IACH,4BAA4B;IAY5B;;OAEG;IACH,sCAAsC;IAYtC;;OAEG;IACH,gCAAgC;IAUhC;;OAEG;IACH,gCAAgC;IAWhC;;;OAGG;IACH,sBAAsB,IAAI,MAAM;IAKhC;;;OAGG;IACH,aAAa,IAAI,UAAU;IAK3B;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC;IAcrE;;;;;OAKG;IACH,8BAA8B,IAAI,8BAA8B;IAQhE;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY9D;;;;;OAKG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa9D,WAAW,IAAI,WAAW;IAK1B;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;IAa/D;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa9D;;;OAGG;IACH,0BAA0B,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAQ5D;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAc/D;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa/D;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAWxD;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAW1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyC;IAEnF;;OAEG;IACH,uCAAuC,IAAI,IAAI;IAQ/C;;;;OAIG;IACH,oCAAoC,CAChC,gCAAgC,EAAE,gCAAgC,GAAG,IAAI;IAK7E;;;;;OAKG;IACH,gCAAgC,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gCAAgC;IAwBxF;;;;;OAKG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY7D;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAa7D;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAQxB;;;;OAIG;IACH,OAAO,CAAC,OAAO,GAAE,MAAU;IAO3B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAYtC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAavC;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAC,YAAY,GAAG,WAAW,GAAG,GAAG;IAatD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAC,YAAY,GAAG,WAAW,GAAG,UAAU;IAe/D;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS;IAapE;;;;;OAKG;IACH,mCAAmC,CAAC,IAAI,EAAE,oCAAoC;IAkC9E;;;;OAIG;IACH,oBAAoB,CAAE,OAAO,EAAE,MAAM;IAOrC;;;;OAIG;IACH,oBAAoB,CAAE,IAAI,EAAE,cAAc;IAkG1C;;;;;OAKG;IACH,qBAAqB,CAAE,IAAI,EACzB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,YAAY;IA+Gd;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,EAAE,mBAAmB;IAiG7C;;;;OAIG;IACH,iBAAiB,CACb,IAAI,EAAE,WAAW,EACjB,kBAAkB,CAAC,EAAE,mBAAmB,GAAI,MAAM,GAAG,SAAS;IAiClE,+BAA+B,CAC3B,IAAI,EAAE,WAAW,EACjB,oBAAoB,CAAC,EAAE,MAAM,GAAI,IAAI;IAoCzC;;;OAGG;IACH,qBAAqB,CACjB,IAAI,EAAE,gBAAgB,EACtB,SAAS,GAAE,OAAe;IAkC9B;;;;OAIG;IAeH;;;OAGG;IACH,wBAAwB,CACpB,IAAI,EAAE,mBAAmB,EACzB,SAAS,GAAE,OAAe;IA6C9B;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,gBAAgB,GAAG,SAAS;IAuBzD;;;;;;;OAOG;IACH,YAAY,CACR,IAAI,EAAE,KAAK,GACX,aAAa,GACb,QAAQ,GACR,MAAM,GACN,cAAc,GACd,yBAAyB,GACzB,uBAAuB,GACvB,IAAI,EACJ,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,EACtB,iBAAiB,GAAE,iBAAiB,GAAG,SAAkB,GAC3D,WAAW,GAAG,SAAS;IAoJzB;;;;;;OAMG;IACH,qBAAqB,CAAC,IAAI,EAAE,eAAe,EACvC,WAAW,GAAC,OAAc,EAC1B,KAAK,GAAC,OAAe,GACtB,WAAW,GAAG,SAAS;IA2C1B;;;;OAIG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAI,WAAW,GAAG,SAAS;IAgDxD;;;;;;;;;OASG;IACH,WAAW,CACP,IAAI,EAAE,IAAI,EACV,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,EACtB,sBAAsB,CAAC,EAAE,wBAAwB,GAAI,WAAW,GAAG,SAAS;IAmEhF;;;;;;;;OAQG;IACH,mBAAmB,CACjB,IAAI,EAAE,cAAc,EACpB,WAAW,GAAE,OAAc,EAC3B,MAAM,GAAE,OAAe,EACvB,sBAAsB,GAAE,wBAWzB,GAAI,WAAW;IA6HhB;;;;;;;OAOG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAe,EACvB,WAAW,GAAC,OAAc,EAC1B,sBAAsB,GAAE,wBAWzB,GAAG,WAAW,GAAG,SAAS;IA4C3B;;;;;;;OAOG;IACH,mBAAmB,CACjB,IAAI,EAAE,OAAO,EACb,MAAM,GAAE,OAAe,EACvB,WAAW,GAAC,OAAc,EAC1B,sBAAsB,GAAE,wBAWzB,GAAG,WAAW,GAAG,SAAS;IA2C3B;;;;;;OAMG;IACH,wBAAwB,CACtB,IAAI,EAAE,aAAa,EACnB,WAAW,GAAC,OAAc,EAC1B,MAAM,GAAC,OAAe,GAAI,WAAW,GAAG,SAAS;IAgInD;;;;;;OAMG;IACH,2BAA2B,CAAE,MAAM,EAAE,eAAe,EAAE,EAAE,UAAU,EAAC,MAAM,GAAI,YAAY;IAgBzF;;;;;;OAMG;IACH,eAAe,CACb,IAAI,EAAE,QAAQ,EACd,WAAW,GAAE,OAAc,EAC3B,MAAM,GAAE,OAAe,GAAI,WAAW,GAAG,SAAS;IA+BpD;;;;;;OAMG;IACH,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS;IAoClE;;;;;;OAMG;IACH,iBAAiB,CACb,IAAI,EAAE,WAAW,EACjB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,OAAO,GAAE,WAAW,EAAE,GAAG,SAAkB;IA0I/C;;;;OAIG;IACH,SAAgB,kBAAkB,sBAA4B;IAE9D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;;;OASG;IACH,yBAAyB,CACrB,IAAI,EAAE,mBAAmB,EACzB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,YAAY,GAAE,OAAe;IAsFjC;;;;OAIG;IACH,wBAAwB,CAAC,IAAI,EAAE,mBAAmB;IAOlD;;;;OAIG;IACH,wBAAwB,CACpB,IAAI,EAAE,kBAAkB,EAAE,EAC1B,aAAa,EAAE,MAAM;IAsBzB;;;OAGG;IACH,iCAAiC,CAAC,IAAI,EAAE,wBAAwB;IAMhE;;;;OAIG;IACH,uBAAuB,CACnB,IAAI,EAAE,YAAY,EAClB,SAAS,GAAE,OAAe;IAQ9B;;;;OAIG;IACH,kCAAkC,CAC9B,IAAI,EAAE,yBAAyB;IAsBnC;;;;;;;OAOG;IACH,YAAY,CACR,IAAI,EAAE,IAAI,EAAE,EACZ,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,GAAE,OAAe,GAAG,cAAc;IAkD/C;;;;;OAKG;IACH,YAAY,CAAE,IAAI,EAAE,KAAK,GAAI,kBAAkB;IAU/C;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAE,eAAe,CAAE,GAAG,SAAS,CAAE,OAAO,CAAE;IAkBxE;;;;;;OAMG;IACH,sBAAsB,CAClB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAE,eAAe,CAAE,CAAC,EACrC,EAAE,EAAE,SAAS,CAAC,SAAS,CAAE,OAAO,CAAE,CAAC,GAAG,IAAI;IAO9C;;;;;;;OAOG;IACH,qBAAqB,CACjB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EACrB,KAAK,SAAI,EACT,GAAG,SAAc,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,2BAA2B,CACvB,IAAI,EAAE,KAAK,CAAE,KAAK,CAAG,MAAM,CAAE,CAAE,EAC/B,EAAE,EAAE,SAAS,CAAE,SAAS,CAAE,MAAM,CAAE,CAAE,GAAG,IAAI;IAoB/C;;;;;OAKG;IACH,qBAAqB,CACjB,IAAI,EAAE,gBAAgB,GAAI,cAAc;IAoC5C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAW7D;;;;;;OAMG;IACH,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM;IA0SzF;;;;;OAKG;IACH,cAAc,CAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAC,aAAa;IAqE1D;;;;;OAKG;IACH,+BAA+B,CAAC,IAAI,EAAE,2BAA2B,EAAE,aAAa,EAAE,aAAa;IA0B/F;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa;IA+BpF;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa;IAWjF;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa;IAY7E;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa;IAWzE;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa;IAe3E;;;;;;;;;OASG;IACH,oCAAoC,CAChC,MAAM,EAAE,eAAe,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,qBAAqB;IAqDxB;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc;IAgEhD;;;;;OAKG;IACH,uBAAuB,CAAE,IAAI,EAAE,kBAAkB,GAAI,kBAAkB;IA0CvE;;;;;;;OAOG;IACH,mCAAmC,CAAE,IAAI,EAAE,oCAAoC,GAC7E,kBAAkB;IAqCpB;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAC3E;;;;;;;OAOG;IAEH,uBAAuB,CACrB,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,IAAI,GAAG,sBAAsB;IA4D5C;;;;;;OAMG;IACH,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,mBAAmB;IACvI;;;;;;;OAOG;IAEH,uBAAuB,CACrB,IAAI,EAAE,kBAAkB,EACxB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,IAAI,EACjB,UAAU,CAAC,EAAE,OAAO,GAAG,sBAAsB;IA6E/C;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,GAAE,OAAe,GAAI,mBAAmB,GAAG,SAAS;IAkBhG,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAI,kBAAkB,GAAG,SAAS;IAQrE;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,sBAAsB;IAiCtB;;;;OAIG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM;IAyChD,eAAe,CAAE,QAAQ,EAAE,WAAW,GAAI,MAAM,GAAG,SAAS;IAmC5D,yBAAyB,CAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAI,MAAM,GAAG,SAAS;IAe3F;;;;;;OAMG;IACH;;;;;;;;;;;;OAYG;IAEI,uBAAuB,IAAI,IAAI;IAmdtC,OAAO,CAAC,YAAY,CAAC,CAAkB;IACvC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAE3C;;;;OAIG;IACH,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;;;;OAMG;IACI,eAAe,CAAE,KAAK,EAAE,MAAM,GAAI,IAAI;IAW7C;;;;;;;;OAQG;IACI,sBAAsB,CAAE,KAAK,EAAE,MAAM,GAAI,MAAM;IA8BtD;;;;;;;OAOG;IACI,sBAAsB,IAC3B;QAAC,aAAa;QAAE,iBAAiB;QAAE,oBAAoB;KAAC;IAqB1D;;;;;;;;OAQG;IAEH,wBAAwB,CAAC,OAAO,GAAE,OAAe,GAC/C;QAAC,aAAa;QAAE,iBAAiB;QAAE,oBAAoB;KAAC;IA0B1D;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,iBAAiB,EAAE,iCAAiC,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,GAAE,OAAe,GAAG,CAAC,kBAAkB,GAAG,SAAS,EAAE,OAAO,CAAC;CA2DhP"}
1
+ {"version":3,"file":"ap214_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/AP214E3_2010/ap214_geometry_extraction.ts"],"names":[],"mappings":"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"}
@@ -3065,9 +3065,21 @@ export class AP214GeometryExtraction {
3065
3065
  }
3066
3066
  }
3067
3067
  for (const contextDependentShapeRepresentation of contextDependentShapeRepresentations) {
3068
- const assembly = contextDependentShapeRepresentation.represented_product_relation;
3068
+ // Per-record containment: reference getters throw on
3069
+ // malformed/dangling records (a mid-parse PREFIX model — the
3070
+ // preview channel's snapshots — always has a truncated tail).
3071
+ // One bad edge record skips, it must not abort the whole
3072
+ // preparation.
3073
+ let assembly;
3074
+ let shapeRelationship;
3075
+ try {
3076
+ assembly = contextDependentShapeRepresentation.represented_product_relation;
3077
+ shapeRelationship = contextDependentShapeRepresentation.representation_relation;
3078
+ }
3079
+ catch {
3080
+ continue;
3081
+ }
3069
3082
  const owningLocalID = assembly.localID;
3070
- const shapeRelationship = contextDependentShapeRepresentation.representation_relation;
3071
3083
  shapeRepresentationRelationshipsSeen.add(shapeRelationship.localID);
3072
3084
  /* Exporters disagree on the rep_1/rep_2 order of an assembly
3073
3085
  * placement relationship: as1-style files write (child, parent),
@@ -3081,8 +3093,15 @@ export class AP214GeometryExtraction {
3081
3093
  * SDR-bound product definition against them, and keep the legacy
3082
3094
  * (child, parent) reading when the match is ambiguous/unresolvable.
3083
3095
  */
3084
- let sourceShape = shapeRelationship.rep_1;
3085
- let targetShape = shapeRelationship.rep_2;
3096
+ let sourceShape;
3097
+ let targetShape;
3098
+ try {
3099
+ sourceShape = shapeRelationship.rep_1;
3100
+ targetShape = shapeRelationship.rep_2;
3101
+ }
3102
+ catch {
3103
+ continue;
3104
+ }
3086
3105
  let orientationFlipped = false;
3087
3106
  try {
3088
3107
  const nauo = assembly.definition;
@@ -3103,7 +3122,15 @@ export class AP214GeometryExtraction {
3103
3122
  catch {
3104
3123
  // Malformed NAUO/PDS reference — keep the legacy orientation.
3105
3124
  }
3106
- const [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID, orientationFlipped);
3125
+ let transform;
3126
+ let isContinue;
3127
+ try {
3128
+ [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID, orientationFlipped);
3129
+ }
3130
+ catch {
3131
+ // Malformed transform record (prefix truncation) — skip the edge.
3132
+ continue;
3133
+ }
3107
3134
  if (isContinue) {
3108
3135
  continue;
3109
3136
  }
@@ -3144,9 +3171,21 @@ export class AP214GeometryExtraction {
3144
3171
  * source and rep_2 is the target, whereas in
3145
3172
  * context_dependent_shape_representation, the relationship is inverted.
3146
3173
  */
3147
- const sourceShape = shapeRelationship.rep_2;
3148
- const targetShape = shapeRelationship.rep_1;
3149
- const [transform, isContinue] = this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID);
3174
+ let sourceShape;
3175
+ let targetShape;
3176
+ let transform;
3177
+ let isContinue;
3178
+ try {
3179
+ sourceShape = shapeRelationship.rep_2;
3180
+ targetShape = shapeRelationship.rep_1;
3181
+ [transform, isContinue] =
3182
+ this.doTransforms(shapeRelationship, sourceShape, targetShape, owningLocalID);
3183
+ }
3184
+ catch {
3185
+ // Malformed relationship/transform record (prefix truncation)
3186
+ // — skip the edge.
3187
+ continue;
3188
+ }
3150
3189
  if (isContinue) {
3151
3190
  continue;
3152
3191
  }
@@ -3176,12 +3215,20 @@ export class AP214GeometryExtraction {
3176
3215
  }
3177
3216
  const shapeDefinitions = model.types(shape_definition_representation);
3178
3217
  for (const shapeDefinitionRepresentation of shapeDefinitions) {
3179
- const shapeRepresentation = shapeDefinitionRepresentation.used_representation;
3180
- if (!(shapeRepresentation instanceof shape_representation)) {
3218
+ let shapeRepresentation;
3219
+ let definition;
3220
+ try {
3221
+ shapeRepresentation = shapeDefinitionRepresentation.used_representation;
3222
+ if (!(shapeRepresentation instanceof shape_representation)) {
3223
+ continue;
3224
+ }
3225
+ definition = shapeDefinitionRepresentation.definition;
3226
+ }
3227
+ catch {
3228
+ // Malformed SDR record (prefix truncation) — skip it.
3181
3229
  continue;
3182
3230
  }
3183
3231
  //this.scene.clearParentStack()
3184
- const definition = shapeDefinitionRepresentation.definition;
3185
3232
  const owningElementLocalID = definition.localID;
3186
3233
  let treeNode = treeMap.get(shapeRepresentation.localID);
3187
3234
  const hasMappedNode = treeNode !== void 0;
@@ -3199,13 +3246,19 @@ export class AP214GeometryExtraction {
3199
3246
  mappedTreeNode.owningLocalID = owningElementLocalID;
3200
3247
  if (!hasMappedNode) {
3201
3248
  mappedTreeNode.processed = true;
3202
- const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.
3203
- find(unit => unit.findVariant(length_unit))?.findVariant(length_unit);
3204
3249
  let scaleTransform = void 0;
3205
- if (sourceShapeContext !== void 0) {
3206
- const sourceUnitInM = (this.convertToMetres(sourceShapeContext) ?? 1);
3207
- scaleTransform =
3208
- this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
3250
+ try {
3251
+ const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.
3252
+ find(unit => unit.findVariant(length_unit))?.findVariant(length_unit);
3253
+ if (sourceShapeContext !== void 0) {
3254
+ const sourceUnitInM = (this.convertToMetres(sourceShapeContext) ?? 1);
3255
+ scaleTransform =
3256
+ this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
3257
+ }
3258
+ }
3259
+ catch {
3260
+ // Malformed unit context (prefix truncation) — no unit scale.
3261
+ scaleTransform = void 0;
3209
3262
  }
3210
3263
  // not an assembly mapped item — capture as a pending root
3211
3264
  // instead of executing inline (these nodes are childless by
@@ -3240,14 +3293,20 @@ export class AP214GeometryExtraction {
3240
3293
  // them.
3241
3294
  for (const [sourceID, mappedNode] of treeMap.entries()) {
3242
3295
  if ((mappedNode.parents ?? 0) === 0 && mappedNode.thunk !== void 0 && mappedNode.processed !== true) {
3243
- const shapeRepresentation = this.model.getTypedElementByLocalID(sourceID, shape_representation);
3244
- const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.
3245
- find(unit => unit.findVariant(length_unit))?.findVariant(length_unit);
3246
3296
  let scaleTransform = void 0;
3247
- if (sourceShapeContext !== void 0) {
3248
- const sourceUnitInM = (this.convertToMetres(sourceShapeContext) ?? 1);
3249
- scaleTransform =
3250
- this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
3297
+ try {
3298
+ const shapeRepresentation = this.model.getTypedElementByLocalID(sourceID, shape_representation);
3299
+ const sourceShapeContext = shapeRepresentation.context_of_items.findVariant(global_unit_assigned_context)?.units?.
3300
+ find(unit => unit.findVariant(length_unit))?.findVariant(length_unit);
3301
+ if (sourceShapeContext !== void 0) {
3302
+ const sourceUnitInM = (this.convertToMetres(sourceShapeContext) ?? 1);
3303
+ scaleTransform =
3304
+ this.uniformScaleAffine(this.identity3DNativeMatrix, 1 / sourceUnitInM);
3305
+ }
3306
+ }
3307
+ catch {
3308
+ // Malformed unit context (prefix truncation) — no unit scale.
3309
+ scaleTransform = void 0;
3251
3310
  }
3252
3311
  pendingRoots.push({ node: mappedNode, scaleTransform });
3253
3312
  }
@@ -406,6 +406,16 @@ export declare class IfcAPI {
406
406
  * @param modelID handle retrieved by OpenModel/OpenModelStreamed
407
407
  * @return {boolean} True when geometry was released.
408
408
  */
409
+ /**
410
+ * Conway extension: the model's linear scaling factor to metres
411
+ * (1 = metres, 0.001 = millimetres, 0.0254 = inches), derived from
412
+ * the model's unit assignment during extraction. Feature-detect with
413
+ * `typeof`. Returns 1 for unknown models.
414
+ *
415
+ * @param modelID handle retrieved by OpenModel/OpenModelStreamed
416
+ * @return {number} metres per model unit.
417
+ */
418
+ GetLinearScalingFactor(modelID: number): number;
409
419
  ReleaseModelGeometry(modelID: number): boolean;
410
420
  /**
411
421
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,IAAI,mBAAmB,EAEjE,MAAM,aAAa,CAAA;AAGrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAGpE,cAAc,UAAU,CAAA;AAGxB,eAAO,MAAM,OAAO,IAAI,CAAA;AACxB,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,eAAO,MAAM,KAAK,IAAI,CAAA;AACtB,eAAO,MAAM,IAAI,IAAI,CAAA;AACrB,eAAO,MAAM,IAAI,IAAI,CAAA;AACrB,eAAO,MAAM,GAAG,IAAI,CAAA;AACpB,eAAO,MAAM,KAAK,IAAI,CAAA;AACtB,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,OAAO,IAAI,CAAA;AACxB,eAAO,MAAM,QAAQ,IAAI,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAE9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAE,IAAI,EAAE,SAAS,KAAM,IAAI,CAAA;IAE3C;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAE,IAAI,EAAE,kBAAkB,KAAM,IAAI,CAAA;CACvD;AAED;;;;GAIG;AACH,oBAAY,QAAQ;IAClB,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,cAAc,IAAI;IAClB,eAAe,IAAI;IACnB,aAAa,IAAI;CAClB;AAeD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAerE;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAA;IACrB,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAA;IACxB,IAAI,IAAI,MAAM,CAAA;CACf;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAOjC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,GAAG,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,IAAI,MAAM,CAAA;IACvB,iBAAiB,IAAI,MAAM,CAAA;IAC3B,YAAY,IAAI,MAAM,CAAA;IACtB,gBAAgB,IAAI,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,wBAAgB,EAAE,IAAI,MAAM,CAE3B;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AAErD;;GAEG;AACH,qBAAa,MAAM;IACjB,UAAU,EAAE,SAAS,GAAG,GAAG,CAAY;IACvC,EAAE,EAAE,SAAS,GAAG,GAAG,CAAY;IAC/B,QAAQ,EAAE,MAAM,CAAK;IACrB,kBAAkB,UAAQ;IAC1B,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,oBAAoB,SAAI;IACxB,MAAM,sCAA4C;IAClD,UAAU,iBAAuB;IACjC,cAAc,EAAE,OAAO,CAAQ;IAC/B,mBAAmB,EAAE,MAAM,CAAI;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAmD;IAGrE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAK1B;IAED,UAAU,aAAuB;IAEjC;;;;;OAKG;IACI,cAAc,CAAE,OAAO,EAAE,MAAM,GAAI,sBAAsB,GAAG,SAAS;IAI5E;;;;;OAKG;IACG,IAAI,CAAC,uBAAuB,CAAC,EAAE,mBAAmB;IA4CxD;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM;IAsB9D;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBlF;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBrF;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAYlC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM;IAM9C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAO5C;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,WAAW;IAmBpE;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAapE;;;;;;;;;OASG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAazC;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,OAAO;IAkBzC;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS;IAarE;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;IAoBvD;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG;IAI1C;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAYtC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;IAoB/D;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IA+BjE;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAgC5C;;;;OAIG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC;IAU9E;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAcrD;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY;IAIvD;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAIrD;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/E,YAAY,GAAG,WAAW;IAK5B;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM;IAW1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,oBAAoB,CAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAI;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;IAWrF;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAW9C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAc9E;;;;;OAKG;IACH,wBAAwB,CAAC,OAAO,EAAE,MAAM,EACpC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IASjD;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQrC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;IAsElD;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ;IA6CzD;;;;;OAKG;IACH,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAyBtD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAM1C,sDAAsD;IACtD,gBAAgB,IAAI,MAAM;IAI1B,2FAA2F;IAC3F,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;CAGpC"}
1
+ {"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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"}
@@ -592,6 +592,18 @@ export class IfcAPI {
592
592
  * @param modelID handle retrieved by OpenModel/OpenModelStreamed
593
593
  * @return {boolean} True when geometry was released.
594
594
  */
595
+ /**
596
+ * Conway extension: the model's linear scaling factor to metres
597
+ * (1 = metres, 0.001 = millimetres, 0.0254 = inches), derived from
598
+ * the model's unit assignment during extraction. Feature-detect with
599
+ * `typeof`. Returns 1 for unknown models.
600
+ *
601
+ * @param modelID handle retrieved by OpenModel/OpenModelStreamed
602
+ * @return {number} metres per model unit.
603
+ */
604
+ GetLinearScalingFactor(modelID) {
605
+ return this.models.get(modelID)?.linearScalingFactor ?? 1;
606
+ }
595
607
  ReleaseModelGeometry(modelID) {
596
608
  const result = this.models.get(modelID);
597
609
  if (result?.releaseGeometry === void 0) {
@@ -14,6 +14,8 @@ export interface IfcApiModelPassthrough {
14
14
  /** Free the model's native geometry after the consumer's scene build
15
15
  * (conway extension) — see the proxies' releaseGeometry. */
16
16
  releaseGeometry?(): boolean;
17
+ /** Metres per model unit (see IfcAPI.GetLinearScalingFactor). */
18
+ linearScalingFactor?: number;
17
19
  extractGeometryBatch?(batchSize: number, meshCallback?: (mesh: FlatMesh) => void): {
18
20
  extracted: number;
19
21
  remaining: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ifc_api_model_passthrough.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE,qBAAqB,CAAA;IAEjC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IACxC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IACvF,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7D;;;OAGG;IACH;gEAC4D;IAC5D,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B,oBAAoB,CAAC,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IAClF,qBAAqB,IAAI,MAAM,EAAE,CAAA;IACjC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;IAC5B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5D,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAA;IAEnD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,IAAI,CAAA;IAE3B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IACH,0BAA0B,CAAC,CACzB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI,CAAA;IAEpC;;;OAGG;IACH,kBAAkB,CAAC,CAAE,SAAS,EAAE,MAAM,GAAI,OAAO,CAAE,IAAI,CAAE,CAAA;IAEzD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAA;CAC9C"}
1
+ {"version":3,"file":"ifc_api_model_passthrough.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE,qBAAqB,CAAA;IAEjC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IACxC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IACvF,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7D;;;OAGG;IACH;gEAC4D;IAC5D,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,oBAAoB,CAAC,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IAClF,qBAAqB,IAAI,MAAM,EAAE,CAAA;IACjC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;IAC5B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5D,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAA;IAEnD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,IAAI,CAAA;IAE3B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IACH,0BAA0B,CAAC,CACzB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI,CAAA;IAEpC;;;OAGG;IACH,kBAAkB,CAAC,CAAE,SAAS,EAAE,MAAM,GAAI,OAAO,CAAE,IAAI,CAAE,CAAA;IAEzD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAA;CAC9C"}