@itwin/rpcinterface-full-stack-tests 4.9.0-dev.22 → 4.9.0-dev.24

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.
@@ -4778,41 +4778,6 @@ class MultiLevelSelectablesContainer {
4778
4778
  }
4779
4779
 
4780
4780
 
4781
- /***/ }),
4782
-
4783
- /***/ "../../common/temp/node_modules/.pnpm/almost-equal@1.1.0/node_modules/almost-equal/almost_equal.js":
4784
- /*!*********************************************************************************************************!*\
4785
- !*** ../../common/temp/node_modules/.pnpm/almost-equal@1.1.0/node_modules/almost-equal/almost_equal.js ***!
4786
- \*********************************************************************************************************/
4787
- /***/ ((module) => {
4788
-
4789
- "use strict";
4790
-
4791
-
4792
- var abs = Math.abs
4793
- , min = Math.min
4794
-
4795
- function almostEqual(a, b, absoluteError, relativeError) {
4796
- var d = abs(a - b)
4797
-
4798
- if (absoluteError == null) absoluteError = almostEqual.DBL_EPSILON;
4799
- if (relativeError == null) relativeError = absoluteError;
4800
-
4801
- if(d <= absoluteError) {
4802
- return true
4803
- }
4804
- if(d <= relativeError * min(abs(a), abs(b))) {
4805
- return true
4806
- }
4807
- return a === b
4808
- }
4809
-
4810
- almostEqual.FLT_EPSILON = 1.19209290e-7
4811
- almostEqual.DBL_EPSILON = 2.2204460492503131e-16
4812
-
4813
- module.exports = almostEqual
4814
-
4815
-
4816
4781
  /***/ }),
4817
4782
 
4818
4783
  /***/ "../../common/temp/node_modules/.pnpm/assertion-error@1.1.0/node_modules/assertion-error/index.js":
@@ -30742,6 +30707,12 @@ class Logger {
30742
30707
  Logger._logError(category, message, metaData);
30743
30708
  }
30744
30709
  static getExceptionMessage(err) {
30710
+ if (err === undefined) {
30711
+ return "Error: err is undefined.";
30712
+ }
30713
+ if (err === null) {
30714
+ return "Error: err is null.";
30715
+ }
30745
30716
  const stack = Logger.logExceptionCallstacks ? `\n${_BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorStack(err)}` : "";
30746
30717
  return _BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMessage(err) + stack;
30747
30718
  }
@@ -30752,7 +30723,7 @@ class Logger {
30752
30723
  */
30753
30724
  static logException(category, err, log = (_category, message, metaData) => Logger.logError(_category, message, metaData)) {
30754
30725
  log(category, Logger.getExceptionMessage(err), () => {
30755
- return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMetadata(err), exceptionType: err.constructor.name };
30726
+ return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMetadata(err), exceptionType: err?.constructor?.name ?? "<Unknown>" };
30756
30727
  });
30757
30728
  }
30758
30729
  /** Log the specified message to the **warning** stream.
@@ -75893,13 +75864,8 @@ __webpack_require__.r(__webpack_exports__);
75893
75864
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
75894
75865
  /* harmony export */ "UnitConversion": () => (/* binding */ UnitConversion)
75895
75866
  /* harmony export */ });
75896
- /* harmony import */ var almost_equal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! almost-equal */ "../../common/temp/node_modules/.pnpm/almost-equal@1.1.0/node_modules/almost-equal/almost_equal.js");
75897
- /* harmony import */ var almost_equal__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(almost_equal__WEBPACK_IMPORTED_MODULE_0__);
75898
- /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
75899
- /*---------------------------------------------------------------------------------------------
75900
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
75901
- * See LICENSE.md in the project root for license terms and full copyright notice.
75902
- *--------------------------------------------------------------------------------------------*/
75867
+ /* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
75868
+ /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
75903
75869
 
75904
75870
 
75905
75871
  /**
@@ -75940,7 +75906,7 @@ class UnitConversion {
75940
75906
  * @internal
75941
75907
  */
75942
75908
  multiply(conversion) {
75943
- if (almost_equal__WEBPACK_IMPORTED_MODULE_0__(conversion.offset, 0.0) && almost_equal__WEBPACK_IMPORTED_MODULE_0__(this.offset, 0.0))
75909
+ if ((0,_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.almostEqual)(conversion.offset, 0.0) && (0,_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.almostEqual)(this.offset, 0.0))
75944
75910
  return new UnitConversion(this.factor * conversion.factor, 0.0);
75945
75911
  throw new Error("Cannot multiply two maps with non-zero offsets");
75946
75912
  }
@@ -75949,11 +75915,11 @@ class UnitConversion {
75949
75915
  * @internal
75950
75916
  */
75951
75917
  raise(power) {
75952
- if (almost_equal__WEBPACK_IMPORTED_MODULE_0__(power, 1.0))
75918
+ if ((0,_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.almostEqual)(power, 1.0))
75953
75919
  return new UnitConversion(this.factor, this.offset);
75954
- else if (almost_equal__WEBPACK_IMPORTED_MODULE_0__(power, 0.0))
75920
+ else if ((0,_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.almostEqual)(power, 0.0))
75955
75921
  return new UnitConversion(1.0, 0.0);
75956
- if (almost_equal__WEBPACK_IMPORTED_MODULE_0__(this.offset, 0.0))
75922
+ if ((0,_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.almostEqual)(this.offset, 0.0))
75957
75923
  return new UnitConversion(this.factor ** power, 0.0);
75958
75924
  throw new Error("Cannot raise map with non-zero offset");
75959
75925
  }
@@ -75962,7 +75928,7 @@ class UnitConversion {
75962
75928
  * @internal
75963
75929
  */
75964
75930
  static from(unit) {
75965
- if (unit.schemaItemType === _ECObjects__WEBPACK_IMPORTED_MODULE_1__.SchemaItemType.Unit)
75931
+ if (unit.schemaItemType === _ECObjects__WEBPACK_IMPORTED_MODULE_0__.SchemaItemType.Unit)
75966
75932
  return new UnitConversion(unit.denominator / unit.numerator, -unit.offset);
75967
75933
  return new UnitConversion(unit.denominator / unit.numerator, 0.0);
75968
75934
  }
@@ -91692,15 +91658,15 @@ class PlanarClipMaskState {
91692
91658
  this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
91693
91659
  }
91694
91660
  // Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask, and extend the maskRange if needed.
91695
- getTileTrees(view, classifiedModelId, maskRange) {
91661
+ getTileTrees(context, classifiedModelId, maskRange) {
91696
91662
  if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
91697
91663
  // For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
91698
91664
  // For this case, we don't need a maskRange so leave it as null.
91699
91665
  const viewTrees = new Array();
91700
91666
  const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
91701
- view.forEachTileTreeRef((ref) => {
91667
+ context.viewport.forEachTileTreeRef((ref) => {
91702
91668
  const tree = ref.treeOwner.load();
91703
- if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)
91669
+ if (tree && tree.modelId !== classifiedModelId && ref.planarClipMaskPriority > thisPriority)
91704
91670
  viewTrees.push(ref);
91705
91671
  });
91706
91672
  return viewTrees;
@@ -91710,8 +91676,8 @@ class PlanarClipMaskState {
91710
91676
  // Keep calling this until loaded so that the range is valid.
91711
91677
  if (!this._allLoaded) {
91712
91678
  this._tileTreeRefs = new Array();
91713
- if (this.settings.modelIds) {
91714
- view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs, maskRange);
91679
+ if (this.settings.modelIds && context.viewport.view.isSpatialView()) {
91680
+ context.viewport.view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs, maskRange);
91715
91681
  }
91716
91682
  this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
91717
91683
  maskRange.clone(this._maskRange);
@@ -91721,10 +91687,10 @@ class PlanarClipMaskState {
91721
91687
  return this._allLoaded ? this._tileTreeRefs : undefined;
91722
91688
  }
91723
91689
  // Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
91724
- getPlanarClipMaskSymbologyOverrides(view, context, featureSymbologySource) {
91690
+ getPlanarClipMaskSymbologyOverrides(context, featureSymbologySource) {
91725
91691
  this._usingViewportOverrides = false;
91726
91692
  // First obtain a list of models that will need to be turned off for drawing the planar clip mask (only used for batched tile trees).
91727
- const overrideModels = view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode);
91693
+ const overrideModels = context.viewport.view.isSpatialView() ? context.viewport.view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode) : undefined;
91728
91694
  const noSubCategoryOrElementIds = !this.settings.subCategoryOrElementIds;
91729
91695
  if (noSubCategoryOrElementIds && !overrideModels)
91730
91696
  return undefined;
@@ -124452,7 +124418,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
124452
124418
  this._width = requiredWidth;
124453
124419
  this._height = requiredHeight;
124454
124420
  const maskRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.createNull();
124455
- const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId, maskRange);
124421
+ const maskTrees = this._planarClipMask?.getTileTrees(context, target.modelId, maskRange);
124456
124422
  if (!maskTrees && !this._classifierTreeRef)
124457
124423
  return;
124458
124424
  const allTrees = maskTrees ? maskTrees.slice() : new Array();
@@ -124464,14 +124430,14 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
124464
124430
  this._projectionMatrix = projection.projectionMatrix;
124465
124431
  this._frustum = projection.textureFrustum;
124466
124432
  this._debugFrustum = projection.debugFrustum;
124467
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
124433
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);
124468
124434
  if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {
124469
124435
  this._removeMe();
124470
124436
  this._removeMe = undefined;
124471
124437
  }
124472
124438
  else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {
124473
124439
  this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {
124474
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
124440
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);
124475
124441
  context.viewport.requestRedraw();
124476
124442
  });
124477
124443
  }
@@ -141388,7 +141354,7 @@ const applyPlanarClassificationColorForThematic = applyPlanarClassificationPrelu
141388
141354
  return classColor;
141389
141355
  `;
141390
141356
  const overrideFeatureId = `
141391
- if (u_pClassColorParams.x > kClassifierDisplay_Element) return currentId;
141357
+ if (u_pClassColorParams.x != kClassifierDisplay_Element) return currentId;
141392
141358
  vec2 classPos = v_pClassPos / v_pClassPosW;
141393
141359
  vec4 featureTexel = TEXTURE(s_pClassSampler, vec2(classPos.x, (1.0 + classPos.y) / u_pClassColorParams.z));
141394
141360
  return (featureTexel == vec4(0)) ? currentId : addUInt32s(u_batchBase, featureTexel * 255.0) / 255.0;
@@ -153700,8 +153666,10 @@ class GraphicRef extends _internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeReferenc
153700
153666
  this._owner = args.iModel.tiles.getTileTreeOwner(args, supplier);
153701
153667
  this._modelId = args.modelId;
153702
153668
  this._getToolTip = args.getToolTip;
153669
+ this._planarClipMaskPriority = args.planarClipMaskPriority;
153703
153670
  }
153704
153671
  get treeOwner() { return this._owner; }
153672
+ get planarClipMaskPriority() { return this._planarClipMaskPriority ?? super.planarClipMaskPriority; }
153705
153673
  canSupplyToolTip(hit) {
153706
153674
  return undefined !== this._getToolTip && this._modelId === hit.modelId;
153707
153675
  }
@@ -156845,11 +156813,11 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
156845
156813
  }
156846
156814
  /** Return whether this reference has global coverage. Mapping data is global and some non-primary models such as the OSM building layer have global coverage */
156847
156815
  get isGlobal() { return false; }
156848
- /** Return the clip mask priority for this model - models will be clipped by any other viewed model with a higher proirity.
156849
- * BIM models have highest prioirty and are never clipped.
156850
- * @alpha
156816
+ /** The [PlanarClipMaskPriority]($common) of this tile tree used to determine which tile trees contribute to a clip mask when
156817
+ * using [PlanarClipMaskMode.Priority]($common).
156818
+ * @beta
156851
156819
  */
156852
- get planarclipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.PlanarClipMaskPriority.DesignModel; }
156820
+ get planarClipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.PlanarClipMaskPriority.DesignModel; }
156853
156821
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */
156854
156822
  addLogoCards(_cards, _vp) { }
156855
156823
  /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].
@@ -156886,10 +156854,18 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
156886
156854
  return this._createGeometryTreeReference();
156887
156855
  }
156888
156856
  /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].
156889
- * The reference can be used by a [[TiledGraphicsProvider]] or as a [[DynamicSpatialClassifier]]. For example:
156857
+ * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:
156890
156858
  * ```ts
156891
156859
  * [[include:TileTreeReference_createFromRenderGraphic]]
156892
156860
  *```
156861
+ * Or, it can be used as a [[DynamicSpatialClassifier]] to contextualize a reality model, like so:
156862
+ * ```ts
156863
+ * [[include:TileTreeReference_DynamicClassifier]]
156864
+ * ```
156865
+ * It can also be used to mask out portions of the background map or terrain via [PlanarClipMaskSettings]($common), as shown below:
156866
+ * ```ts
156867
+ * [[include:TileTreeReference_DynamicClipMask]]
156868
+ * ```
156893
156869
  * @beta
156894
156870
  */
156895
156871
  static createFromRenderGraphic(args) {
@@ -161669,7 +161645,11 @@ var MapLayerImageryProviderStatus;
161669
161645
  class MapLayerImageryProvider {
161670
161646
  /** @internal */
161671
161647
  get status() { return this._status; }
161672
- /** @alpha */
161648
+ /** Determine if this provider supports map feature info.
161649
+ * For example, this can be used to show the map feature info tool only when a provider is registered to support it.
161650
+ * @returns true if provider supports map feature info else return false.
161651
+ * @public
161652
+ */
161673
161653
  get supportsMapFeatureInfo() { return false; }
161674
161654
  resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }
161675
161655
  /** @internal */
@@ -164074,7 +164054,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
164074
164054
  }
164075
164055
  get isGlobal() { return true; }
164076
164056
  get baseColor() { return this._baseColor; }
164077
- get planarclipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.BackgroundMap; }
164057
+ get planarClipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.BackgroundMap; }
164078
164058
  _createGeometryTreeReference() {
164079
164059
  if (!this._settings.applyTerrain || this._isDrape)
164080
164060
  return undefined; // Don't bother generating non-terrain (flat) geometry.
@@ -192630,7 +192610,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
192630
192610
  * @param center arc center
192631
192611
  * @param vector0 vector to 0 degrees (commonly major axis)
192632
192612
  * @param vector90 vector to 90 degree point (commonly minor axis)
192633
- * @param sweep sweep limits
192613
+ * @param sweep sweep limits (default full sweep)
192634
192614
  * @param result optional preallocated result
192635
192615
  */
192636
192616
  static create(center, vector0, vector90, sweep, result) {
@@ -192639,12 +192619,12 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
192639
192619
  return Arc3d.createRefs(center !== undefined ? center.clone() : _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360(), result);
192640
192620
  }
192641
192621
  /**
192642
- * Create an arc from three points on the ellipse: two points on an axis and one in between.
192622
+ * Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
192643
192623
  * @param point0 start of arc, on an axis
192644
192624
  * @param point1 point on arc somewhere between `point0` and `point2`
192645
192625
  * @param point2 point on arc directly opposite `point0`
192646
192626
  * @param sweep angular sweep, measured from `point0` in the direction of `point1`.
192647
- * For a semicircle from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
192627
+ * For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
192648
192628
  * Default value is full sweep to create the entire ellipse.
192649
192629
  * @param result optional preallocated result
192650
192630
  * @returns elliptical arc, or undefined if construction impossible.
@@ -192668,9 +192648,9 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
192668
192648
  return Arc3d.create(center, vector0, vector90, sweep, result);
192669
192649
  }
192670
192650
  /**
192671
- * Create a circular arc defined by start point, tangent at start point, and end point.
192672
- * If tangent is parallel to line segment from start to end, return the line segment.
192673
- */
192651
+ * Create a circular arc defined by start point, tangent at start point, and end point.
192652
+ * If tangent is parallel to line segment from start to end, return the line segment.
192653
+ */
192674
192654
  static createCircularStartTangentEnd(start, tangentAtStart, end, result) {
192675
192655
  // To find the circle passing through start and end with tangentAtStart at start:
192676
192656
  // - find line 1: the perpendicular bisector of the line from start to end.
@@ -192696,6 +192676,39 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
192696
192676
  }
192697
192677
  return _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d.create(start, end);
192698
192678
  }
192679
+ /**
192680
+ * Create a circular arc defined by start and end points and radius.
192681
+ * @param start start point of the arc
192682
+ * @param end end point of the arc
192683
+ * @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
192684
+ * @returns the constructed arc, or undefined if desired arc cannot be constructed
192685
+ */
192686
+ static createCircularStartEndRadius(start, end, radius, helper) {
192687
+ // Construct a line segment from start to end. It is a chord of the circle,
192688
+ // so the circle center is on its perpendicular bisector.
192689
+ const semiChordLen2 = 0.25 * start.distanceSquared(end);
192690
+ const radius2 = radius * radius;
192691
+ if (radius2 < semiChordLen2)
192692
+ return undefined;
192693
+ const height = Math.sqrt(radius2 - semiChordLen2); // Pythagoras gives us distance from chord to center
192694
+ const normal = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createZero(this._workVectorU);
192695
+ const vecToCenter = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createZero(this._workVectorV);
192696
+ // the helper gives us the circle normal
192697
+ if (helper instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d)
192698
+ start.crossProductToPoints(helper, end, normal);
192699
+ else
192700
+ normal.setFrom(helper);
192701
+ // the normal and chord direction give us the side of the chord on which the center resides
192702
+ if (!normal.normalizeInPlace() || !normal.crossProductStartEnd(start, end, vecToCenter).scaleToLength(height, vecToCenter))
192703
+ return undefined;
192704
+ const center = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.createZero();
192705
+ start.interpolate(0.5, end, center).addInPlace(vecToCenter);
192706
+ const vector0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createStartEnd(center, start, this._workVectorW);
192707
+ const endVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createStartEnd(center, end, this._workVectorV); // reuse static
192708
+ const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create(vector0.signedAngleTo(endVector, normal));
192709
+ const vector90 = normal.crossProduct(vector0, this._workVectorV); // has length radius (reuse static)
192710
+ return Arc3d.createRefs(center, _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createColumns(vector0, vector90, normal), sweep);
192711
+ }
192699
192712
  /**
192700
192713
  * Return a clone of this arc, projected to given z value.
192701
192714
  * * If `z` is omitted, the clone is at the z of the center.
@@ -193171,7 +193184,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193171
193184
  result.set(plane.altitude(this._center), plane.velocityXYZ(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[6]), plane.velocityXYZ(this._matrix.coffs[1], this._matrix.coffs[4], this._matrix.coffs[7]));
193172
193185
  return result;
193173
193186
  }
193174
- /** Create a new arc which is a unit circle centered at the origin. */
193187
+ /** Create a new arc which is a unit circle in the xy-plane centered at the origin. */
193175
193188
  static createUnitCircle() {
193176
193189
  return Arc3d.createRefs(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create(0, 0, 0), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createIdentity(), _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360());
193177
193190
  }
@@ -193182,7 +193195,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193182
193195
  * @param sweep sweep limits. defaults to full circle.
193183
193196
  */
193184
193197
  static createXY(center, radius, sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360()) {
193185
- return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radius, radius, 1.0), sweep);
193198
+ return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radius, radius, 1.0), sweep.clone());
193186
193199
  }
193187
193200
  /**
193188
193201
  * Create a new arc which is parallel to the xy plane, with given center and x,y radii, and optional angle sweep
@@ -193192,7 +193205,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193192
193205
  * @param sweep angle sweep
193193
193206
  */
193194
193207
  static createXYEllipse(center, radiusA, radiusB, sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360()) {
193195
- return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep);
193208
+ return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep.clone());
193196
193209
  }
193197
193210
  /**
193198
193211
  * Replace the arc's 0 and 90 degree vectors.
@@ -193209,7 +193222,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193209
193222
  const vector90A = this._matrix.multiplyXY(-angleData.s, angleData.c);
193210
193223
  const axes = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createRigidFromColumns(vector0A, vector90A, _Geometry__WEBPACK_IMPORTED_MODULE_5__.AxisOrder.XYZ);
193211
193224
  return {
193212
- center: this._center,
193225
+ center: this._center.clone(),
193213
193226
  axes: (axes ? axes : _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createIdentity()),
193214
193227
  r0: vector0A.magnitude(),
193215
193228
  r90: vector90A.magnitude(),
@@ -193219,10 +193232,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193219
193232
  /** Return the arc definition with center, two vectors, and angle sweep; */
193220
193233
  toVectors() {
193221
193234
  return {
193222
- center: this.center,
193235
+ center: this.center.clone(),
193223
193236
  vector0: this._matrix.columnX(),
193224
193237
  vector90: this._matrix.columnY(),
193225
- sweep: this.sweep,
193238
+ sweep: this.sweep.clone(),
193226
193239
  };
193227
193240
  }
193228
193241
  /** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
@@ -193231,13 +193244,13 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193231
193244
  center: transform.multiplyPoint3d(this._center),
193232
193245
  vector0: transform.multiplyVector(this._matrix.columnX()),
193233
193246
  vector90: transform.multiplyVector(this._matrix.columnY()),
193234
- sweep: this.sweep,
193247
+ sweep: this.sweep.clone(),
193235
193248
  }
193236
193249
  : {
193237
193250
  center: this._center.clone(),
193238
193251
  vector0: this._matrix.columnX(),
193239
193252
  vector90: this._matrix.columnY(),
193240
- sweep: this.sweep,
193253
+ sweep: this.sweep.clone(),
193241
193254
  };
193242
193255
  }
193243
193256
  /** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
@@ -193246,7 +193259,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
193246
193259
  center: matrix.multiplyPoint3d(this._center, 1.0),
193247
193260
  vector0: matrix.multiplyPoint3d(this._matrix.columnX(), 0.0),
193248
193261
  vector90: matrix.multiplyPoint3d(this._matrix.columnY(), 0.0),
193249
- sweep: this.sweep,
193262
+ sweep: this.sweep.clone(),
193250
193263
  };
193251
193264
  }
193252
193265
  /**
@@ -193506,6 +193519,7 @@ Arc3d._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Poi
193506
193519
  Arc3d._workPointC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create();
193507
193520
  Arc3d._workVectorU = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
193508
193521
  Arc3d._workVectorV = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
193522
+ Arc3d._workVectorW = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
193509
193523
  // !! misspelled Gauss in the published static !! Declare it ok.
193510
193524
  // cspell::word Guass
193511
193525
  /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
@@ -225309,9 +225323,10 @@ class Vector3d extends XYZ {
225309
225323
  return result;
225310
225324
  }
225311
225325
  /**
225312
- * Return a (optionally new or reused) vector in the direction of `this` but with specified length.
225326
+ * Return a vector in the direction of `this` but with specified length.
225313
225327
  * @param length desired length of vector
225314
- * @param result optional preallocated result
225328
+ * @param result optional preallocated result to populate and return
225329
+ * @returns scaled instance vector, or undefined if the instance magnitude is too small
225315
225330
  */
225316
225331
  scaleToLength(length, result) {
225317
225332
  const mag = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.correctSmallFraction(this.magnitude());
@@ -292911,7 +292926,8 @@ class ParserSpec {
292911
292926
  "use strict";
292912
292927
  __webpack_require__.r(__webpack_exports__);
292913
292928
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
292914
- /* harmony export */ "Quantity": () => (/* binding */ Quantity)
292929
+ /* harmony export */ "Quantity": () => (/* binding */ Quantity),
292930
+ /* harmony export */ "almostEqual": () => (/* binding */ almostEqual)
292915
292931
  /* harmony export */ });
292916
292932
  /*---------------------------------------------------------------------------------------------
292917
292933
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -292920,6 +292936,19 @@ __webpack_require__.r(__webpack_exports__);
292920
292936
  /** @packageDocumentation
292921
292937
  * @module Quantity
292922
292938
  */
292939
+ /**
292940
+ * Checks if two numbers are approximately equal within given relative tolerance.
292941
+ * @param a - The first number to compare.
292942
+ * @param b - The second number to compare.
292943
+ * @param tolerance - Tolerance, scales based on the input number values (multiplied by 1, abs(a) or abs(b), whichever is biggest).
292944
+ * @returns True if the numbers are approximately equal, false otherwise.
292945
+ * @internal
292946
+ */
292947
+ function almostEqual(a, b, tolerance = 2.2204460492503131e-16) {
292948
+ const absDiff = Math.abs(a - b);
292949
+ const scaledTolerance = Math.max(1, Math.abs(a), Math.abs(b)) * tolerance;
292950
+ return absDiff <= scaledTolerance;
292951
+ }
292923
292952
  /** The Quantity class is convenient container to specify both the magnitude and unit of a quantity. This class is commonly
292924
292953
  * returned as the result of parsing a string that represents a quantity.
292925
292954
  * @beta
@@ -293042,6 +293071,7 @@ __webpack_require__.r(__webpack_exports__);
293042
293071
  /* harmony export */ "QuantityStatus": () => (/* reexport safe */ _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus),
293043
293072
  /* harmony export */ "ScientificType": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ScientificType),
293044
293073
  /* harmony export */ "ShowSignOption": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.ShowSignOption),
293074
+ /* harmony export */ "almostEqual": () => (/* reexport safe */ _Quantity__WEBPACK_IMPORTED_MODULE_5__.almostEqual),
293045
293075
  /* harmony export */ "formatStringRgx": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatStringRgx),
293046
293076
  /* harmony export */ "formatTraitsToArray": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTraitsToArray),
293047
293077
  /* harmony export */ "formatTypeToString": () => (/* reexport safe */ _Formatter_FormatEnums__WEBPACK_IMPORTED_MODULE_9__.formatTypeToString),
@@ -294133,7 +294163,7 @@ class TestContext {
294133
294163
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
294134
294164
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
294135
294165
  await core_frontend_1.NoRenderApp.startup({
294136
- applicationVersion: "4.9.0-dev.22",
294166
+ applicationVersion: "4.9.0-dev.24",
294137
294167
  applicationId: this.settings.gprid,
294138
294168
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
294139
294169
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -294160,32 +294190,32 @@ TestContext._instance = undefined;
294160
294190
  "use strict";
294161
294191
  __webpack_require__.r(__webpack_exports__);
294162
294192
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
294163
- /* harmony export */ "ArrayPropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.ArrayPropertiesField),
294193
+ /* harmony export */ "ArrayPropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.ArrayPropertiesField),
294164
294194
  /* harmony export */ "AsyncTasksTracker": () => (/* reexport safe */ _presentation_common_AsyncTasks__WEBPACK_IMPORTED_MODULE_0__.AsyncTasksTracker),
294165
- /* harmony export */ "CategoryDescription": () => (/* reexport safe */ _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_20__.CategoryDescription),
294195
+ /* harmony export */ "CategoryDescription": () => (/* reexport safe */ _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_19__.CategoryDescription),
294166
294196
  /* harmony export */ "ChildNodeSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_ChildNodeSpecification__WEBPACK_IMPORTED_MODULE_38__.ChildNodeSpecificationTypes),
294167
294197
  /* harmony export */ "ClassInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.ClassInfo),
294168
- /* harmony export */ "Content": () => (/* reexport safe */ _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_21__.Content),
294169
- /* harmony export */ "ContentFlags": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_22__.ContentFlags),
294170
- /* harmony export */ "ContentFormatter": () => (/* reexport safe */ _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_32__.ContentFormatter),
294171
- /* harmony export */ "ContentPropertyValueFormatter": () => (/* reexport safe */ _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_32__.ContentPropertyValueFormatter),
294198
+ /* harmony export */ "Content": () => (/* reexport safe */ _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_20__.Content),
294199
+ /* harmony export */ "ContentFlags": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_21__.ContentFlags),
294200
+ /* harmony export */ "ContentFormatter": () => (/* reexport safe */ _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_31__.ContentFormatter),
294201
+ /* harmony export */ "ContentPropertyValueFormatter": () => (/* reexport safe */ _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_31__.ContentPropertyValueFormatter),
294172
294202
  /* harmony export */ "ContentSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_content_ContentSpecification__WEBPACK_IMPORTED_MODULE_59__.ContentSpecificationTypes),
294173
294203
  /* harmony export */ "DEFAULT_KEYS_BATCH_SIZE": () => (/* reexport safe */ _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__.DEFAULT_KEYS_BATCH_SIZE),
294174
- /* harmony export */ "DefaultContentDisplayTypes": () => (/* reexport safe */ _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_23__.DefaultContentDisplayTypes),
294175
- /* harmony export */ "Descriptor": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_22__.Descriptor),
294204
+ /* harmony export */ "DefaultContentDisplayTypes": () => (/* reexport safe */ _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_22__.DefaultContentDisplayTypes),
294205
+ /* harmony export */ "Descriptor": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_21__.Descriptor),
294176
294206
  /* harmony export */ "DiagnosticsLogEntry": () => (/* reexport safe */ _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__.DiagnosticsLogEntry),
294177
- /* harmony export */ "DisplayValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_30__.DisplayValue),
294178
- /* harmony export */ "DisplayValueGroup": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_30__.DisplayValueGroup),
294179
- /* harmony export */ "FIELD_NAMES_SEPARATOR": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.FIELD_NAMES_SEPARATOR),
294180
- /* harmony export */ "Field": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.Field),
294181
- /* harmony export */ "FieldDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.FieldDescriptor),
294182
- /* harmony export */ "FieldDescriptorType": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.FieldDescriptorType),
294207
+ /* harmony export */ "DisplayValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_29__.DisplayValue),
294208
+ /* harmony export */ "DisplayValueGroup": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_29__.DisplayValueGroup),
294209
+ /* harmony export */ "FIELD_NAMES_SEPARATOR": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.FIELD_NAMES_SEPARATOR),
294210
+ /* harmony export */ "Field": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.Field),
294211
+ /* harmony export */ "FieldDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.FieldDescriptor),
294212
+ /* harmony export */ "FieldDescriptorType": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.FieldDescriptorType),
294183
294213
  /* harmony export */ "GroupingSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_50__.GroupingSpecificationTypes),
294184
294214
  /* harmony export */ "HierarchyCompareInfo": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.HierarchyCompareInfo),
294185
294215
  /* harmony export */ "HierarchyLevel": () => (/* reexport safe */ _presentation_common_hierarchy_HierarchyLevel__WEBPACK_IMPORTED_MODULE_33__.HierarchyLevel),
294186
294216
  /* harmony export */ "InstanceKey": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.InstanceKey),
294187
294217
  /* harmony export */ "InstanceLabelOverrideValueSpecificationType": () => (/* reexport safe */ _presentation_common_rules_customization_InstanceLabelOverride__WEBPACK_IMPORTED_MODULE_52__.InstanceLabelOverrideValueSpecificationType),
294188
- /* harmony export */ "Item": () => (/* reexport safe */ _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_26__.Item),
294218
+ /* harmony export */ "Item": () => (/* reexport safe */ _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_25__.Item),
294189
294219
  /* harmony export */ "Key": () => (/* reexport safe */ _presentation_common_KeySet__WEBPACK_IMPORTED_MODULE_4__.Key),
294190
294220
  /* harmony export */ "KeySet": () => (/* reexport safe */ _presentation_common_KeySet__WEBPACK_IMPORTED_MODULE_4__.KeySet),
294191
294221
  /* harmony export */ "KoqPropertyValueFormatter": () => (/* reexport safe */ _presentation_common_KoqPropertyValueFormatter__WEBPACK_IMPORTED_MODULE_15__.KoqPropertyValueFormatter),
@@ -294193,8 +294223,8 @@ __webpack_require__.r(__webpack_exports__);
294193
294223
  /* harmony export */ "LabelDefinition": () => (/* reexport safe */ _presentation_common_LabelDefinition__WEBPACK_IMPORTED_MODULE_5__.LabelDefinition),
294194
294224
  /* harmony export */ "LocalizationHelper": () => (/* reexport safe */ _presentation_common_LocalizationHelper__WEBPACK_IMPORTED_MODULE_13__.LocalizationHelper),
294195
294225
  /* harmony export */ "NavigationPropertyInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.NavigationPropertyInfo),
294196
- /* harmony export */ "NestedContentField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.NestedContentField),
294197
- /* harmony export */ "NestedContentValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_30__.NestedContentValue),
294226
+ /* harmony export */ "NestedContentField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.NestedContentField),
294227
+ /* harmony export */ "NestedContentValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_29__.NestedContentValue),
294198
294228
  /* harmony export */ "Node": () => (/* reexport safe */ _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_35__.Node),
294199
294229
  /* harmony export */ "NodeKey": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_34__.NodeKey),
294200
294230
  /* harmony export */ "NodePathElement": () => (/* reexport safe */ _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_36__.NodePathElement),
@@ -294205,12 +294235,12 @@ __webpack_require__.r(__webpack_exports__);
294205
294235
  /* harmony export */ "PresentationIpcEvents": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_16__.PresentationIpcEvents),
294206
294236
  /* harmony export */ "PresentationRpcInterface": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_16__.PresentationRpcInterface),
294207
294237
  /* harmony export */ "PresentationStatus": () => (/* reexport safe */ _presentation_common_Error__WEBPACK_IMPORTED_MODULE_3__.PresentationStatus),
294208
- /* harmony export */ "PropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.PropertiesField),
294209
- /* harmony export */ "Property": () => (/* reexport safe */ _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_27__.Property),
294238
+ /* harmony export */ "PropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.PropertiesField),
294239
+ /* harmony export */ "Property": () => (/* reexport safe */ _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_26__.Property),
294210
294240
  /* harmony export */ "PropertyEditorParameterTypes": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_PropertyEditorsSpecification__WEBPACK_IMPORTED_MODULE_66__.PropertyEditorParameterTypes),
294211
294241
  /* harmony export */ "PropertyGroupingValue": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_50__.PropertyGroupingValue),
294212
294242
  /* harmony export */ "PropertyInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.PropertyInfo),
294213
- /* harmony export */ "PropertyValueFormat": () => (/* reexport safe */ _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_29__.PropertyValueFormat),
294243
+ /* harmony export */ "PropertyValueFormat": () => (/* reexport safe */ _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_28__.PropertyValueFormat),
294214
294244
  /* harmony export */ "QuerySpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_CustomQueryInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_40__.QuerySpecificationTypes),
294215
294245
  /* harmony export */ "RegisteredRuleset": () => (/* reexport safe */ _presentation_common_RegisteredRuleset__WEBPACK_IMPORTED_MODULE_7__.RegisteredRuleset),
294216
294246
  /* harmony export */ "RelatedClassInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.RelatedClassInfo),
@@ -294224,28 +294254,29 @@ __webpack_require__.r(__webpack_exports__);
294224
294254
  /* harmony export */ "RulesetVariable": () => (/* reexport safe */ _presentation_common_RulesetVariables__WEBPACK_IMPORTED_MODULE_8__.RulesetVariable),
294225
294255
  /* harmony export */ "RulesetsFactory": () => (/* reexport safe */ _presentation_common_RulesetsFactory__WEBPACK_IMPORTED_MODULE_9__.RulesetsFactory),
294226
294256
  /* harmony export */ "SameLabelInstanceGroupApplicationStage": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_50__.SameLabelInstanceGroupApplicationStage),
294227
- /* harmony export */ "SelectClassInfo": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_22__.SelectClassInfo),
294228
- /* harmony export */ "SortDirection": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_22__.SortDirection),
294257
+ /* harmony export */ "SelectClassInfo": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_21__.SelectClassInfo),
294258
+ /* harmony export */ "SortDirection": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_21__.SortDirection),
294229
294259
  /* harmony export */ "StandardNodeTypes": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_34__.StandardNodeTypes),
294230
- /* harmony export */ "StructPropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.StructPropertiesField),
294260
+ /* harmony export */ "StructPropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.StructPropertiesField),
294231
294261
  /* harmony export */ "UPDATE_FULL": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.UPDATE_FULL),
294232
- /* harmony export */ "Value": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_30__.Value),
294262
+ /* harmony export */ "Value": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_29__.Value),
294233
294263
  /* harmony export */ "VariableValueType": () => (/* reexport safe */ _presentation_common_rules_Variables__WEBPACK_IMPORTED_MODULE_76__.VariableValueType),
294234
294264
  /* harmony export */ "VariableValueTypes": () => (/* reexport safe */ _presentation_common_RulesetVariables__WEBPACK_IMPORTED_MODULE_8__.VariableValueTypes),
294235
- /* harmony export */ "addFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.addFieldHierarchy),
294265
+ /* harmony export */ "addFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.addFieldHierarchy),
294266
+ /* harmony export */ "buildElementProperties": () => (/* reexport safe */ _presentation_common_ElementProperties__WEBPACK_IMPORTED_MODULE_32__.buildElementProperties),
294236
294267
  /* harmony export */ "combineDiagnosticsSeverities": () => (/* reexport safe */ _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__.combineDiagnosticsSeverities),
294237
- /* harmony export */ "combineFieldNames": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.combineFieldNames),
294268
+ /* harmony export */ "combineFieldNames": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.combineFieldNames),
294238
294269
  /* harmony export */ "compareDiagnosticsSeverities": () => (/* reexport safe */ _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__.compareDiagnosticsSeverities),
294239
- /* harmony export */ "createFieldHierarchies": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.createFieldHierarchies),
294240
- /* harmony export */ "getFieldByDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.getFieldByDescriptor),
294241
- /* harmony export */ "getFieldByName": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__.getFieldByName),
294270
+ /* harmony export */ "createFieldHierarchies": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.createFieldHierarchies),
294271
+ /* harmony export */ "getFieldByDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.getFieldByDescriptor),
294272
+ /* harmony export */ "getFieldByName": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__.getFieldByName),
294242
294273
  /* harmony export */ "getInstancesCount": () => (/* reexport safe */ _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__.getInstancesCount),
294243
294274
  /* harmony export */ "isComputeSelectionRequestOptions": () => (/* reexport safe */ _presentation_common_PresentationManagerOptions__WEBPACK_IMPORTED_MODULE_6__.isComputeSelectionRequestOptions),
294244
294275
  /* harmony export */ "isSingleElementPropertiesRequestOptions": () => (/* reexport safe */ _presentation_common_PresentationManagerOptions__WEBPACK_IMPORTED_MODULE_6__.isSingleElementPropertiesRequestOptions),
294245
- /* harmony export */ "parseCombinedFieldNames": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.parseCombinedFieldNames),
294246
- /* harmony export */ "traverseContent": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.traverseContent),
294247
- /* harmony export */ "traverseContentItem": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.traverseContentItem),
294248
- /* harmony export */ "traverseFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__.traverseFieldHierarchy)
294276
+ /* harmony export */ "parseCombinedFieldNames": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.parseCombinedFieldNames),
294277
+ /* harmony export */ "traverseContent": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.traverseContent),
294278
+ /* harmony export */ "traverseContentItem": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.traverseContentItem),
294279
+ /* harmony export */ "traverseFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__.traverseFieldHierarchy)
294249
294280
  /* harmony export */ });
294250
294281
  /* harmony import */ var _presentation_common_AsyncTasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./presentation-common/AsyncTasks */ "../../presentation/common/lib/esm/presentation-common/AsyncTasks.js");
294251
294282
  /* harmony import */ var _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./presentation-common/Diagnostics */ "../../presentation/common/lib/esm/presentation-common/Diagnostics.js");
@@ -294265,21 +294296,21 @@ __webpack_require__.r(__webpack_exports__);
294265
294296
  /* harmony import */ var _presentation_common_KoqPropertyValueFormatter__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./presentation-common/KoqPropertyValueFormatter */ "../../presentation/common/lib/esm/presentation-common/KoqPropertyValueFormatter.js");
294266
294297
  /* harmony import */ var _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./presentation-common/PresentationRpcInterface */ "../../presentation/common/lib/esm/presentation-common/PresentationRpcInterface.js");
294267
294298
  /* harmony import */ var _presentation_common_RpcRequestsHandler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./presentation-common/RpcRequestsHandler */ "../../presentation/common/lib/esm/presentation-common/RpcRequestsHandler.js");
294268
- /* harmony import */ var _presentation_common_ElementProperties__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./presentation-common/ElementProperties */ "../../presentation/common/lib/esm/presentation-common/ElementProperties.js");
294269
- /* harmony import */ var _presentation_common_selection_SelectionScope__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./presentation-common/selection/SelectionScope */ "../../presentation/common/lib/esm/presentation-common/selection/SelectionScope.js");
294270
- /* harmony import */ var _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./presentation-common/content/Category */ "../../presentation/common/lib/esm/presentation-common/content/Category.js");
294271
- /* harmony import */ var _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./presentation-common/content/Content */ "../../presentation/common/lib/esm/presentation-common/content/Content.js");
294272
- /* harmony import */ var _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./presentation-common/content/Descriptor */ "../../presentation/common/lib/esm/presentation-common/content/Descriptor.js");
294273
- /* harmony import */ var _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./presentation-common/content/DisplayTypes */ "../../presentation/common/lib/esm/presentation-common/content/DisplayTypes.js");
294274
- /* harmony import */ var _presentation_common_content_Editor__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./presentation-common/content/Editor */ "../../presentation/common/lib/esm/presentation-common/content/Editor.js");
294275
- /* harmony import */ var _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./presentation-common/content/Fields */ "../../presentation/common/lib/esm/presentation-common/content/Fields.js");
294276
- /* harmony import */ var _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./presentation-common/content/Item */ "../../presentation/common/lib/esm/presentation-common/content/Item.js");
294277
- /* harmony import */ var _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./presentation-common/content/Property */ "../../presentation/common/lib/esm/presentation-common/content/Property.js");
294278
- /* harmony import */ var _presentation_common_content_Renderer__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./presentation-common/content/Renderer */ "../../presentation/common/lib/esm/presentation-common/content/Renderer.js");
294279
- /* harmony import */ var _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./presentation-common/content/TypeDescription */ "../../presentation/common/lib/esm/presentation-common/content/TypeDescription.js");
294280
- /* harmony import */ var _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./presentation-common/content/Value */ "../../presentation/common/lib/esm/presentation-common/content/Value.js");
294281
- /* harmony import */ var _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./presentation-common/content/ContentTraverser */ "../../presentation/common/lib/esm/presentation-common/content/ContentTraverser.js");
294282
- /* harmony import */ var _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./presentation-common/content/PropertyValueFormatter */ "../../presentation/common/lib/esm/presentation-common/content/PropertyValueFormatter.js");
294299
+ /* harmony import */ var _presentation_common_selection_SelectionScope__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./presentation-common/selection/SelectionScope */ "../../presentation/common/lib/esm/presentation-common/selection/SelectionScope.js");
294300
+ /* harmony import */ var _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./presentation-common/content/Category */ "../../presentation/common/lib/esm/presentation-common/content/Category.js");
294301
+ /* harmony import */ var _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./presentation-common/content/Content */ "../../presentation/common/lib/esm/presentation-common/content/Content.js");
294302
+ /* harmony import */ var _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./presentation-common/content/Descriptor */ "../../presentation/common/lib/esm/presentation-common/content/Descriptor.js");
294303
+ /* harmony import */ var _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./presentation-common/content/DisplayTypes */ "../../presentation/common/lib/esm/presentation-common/content/DisplayTypes.js");
294304
+ /* harmony import */ var _presentation_common_content_Editor__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./presentation-common/content/Editor */ "../../presentation/common/lib/esm/presentation-common/content/Editor.js");
294305
+ /* harmony import */ var _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./presentation-common/content/Fields */ "../../presentation/common/lib/esm/presentation-common/content/Fields.js");
294306
+ /* harmony import */ var _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./presentation-common/content/Item */ "../../presentation/common/lib/esm/presentation-common/content/Item.js");
294307
+ /* harmony import */ var _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./presentation-common/content/Property */ "../../presentation/common/lib/esm/presentation-common/content/Property.js");
294308
+ /* harmony import */ var _presentation_common_content_Renderer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./presentation-common/content/Renderer */ "../../presentation/common/lib/esm/presentation-common/content/Renderer.js");
294309
+ /* harmony import */ var _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./presentation-common/content/TypeDescription */ "../../presentation/common/lib/esm/presentation-common/content/TypeDescription.js");
294310
+ /* harmony import */ var _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./presentation-common/content/Value */ "../../presentation/common/lib/esm/presentation-common/content/Value.js");
294311
+ /* harmony import */ var _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./presentation-common/content/ContentTraverser */ "../../presentation/common/lib/esm/presentation-common/content/ContentTraverser.js");
294312
+ /* harmony import */ var _presentation_common_content_PropertyValueFormatter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./presentation-common/content/PropertyValueFormatter */ "../../presentation/common/lib/esm/presentation-common/content/PropertyValueFormatter.js");
294313
+ /* harmony import */ var _presentation_common_ElementProperties__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./presentation-common/ElementProperties */ "../../presentation/common/lib/esm/presentation-common/ElementProperties.js");
294283
294314
  /* harmony import */ var _presentation_common_hierarchy_HierarchyLevel__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./presentation-common/hierarchy/HierarchyLevel */ "../../presentation/common/lib/esm/presentation-common/hierarchy/HierarchyLevel.js");
294284
294315
  /* harmony import */ var _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./presentation-common/hierarchy/Key */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Key.js");
294285
294316
  /* harmony import */ var _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./presentation-common/hierarchy/Node */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Node.js");
@@ -294359,7 +294390,6 @@ __webpack_require__.r(__webpack_exports__);
294359
294390
  */
294360
294391
 
294361
294392
 
294362
-
294363
294393
  /**
294364
294394
  * @module UnifiedSelection
294365
294395
  *
@@ -294386,6 +294416,7 @@ __webpack_require__.r(__webpack_exports__);
294386
294416
 
294387
294417
 
294388
294418
 
294419
+
294389
294420
  /**
294390
294421
  * @module Hierarchies
294391
294422
  *
@@ -294948,6 +294979,12 @@ var RelationshipPath;
294948
294979
 
294949
294980
  "use strict";
294950
294981
  __webpack_require__.r(__webpack_exports__);
294982
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
294983
+ /* harmony export */ "buildElementProperties": () => (/* binding */ buildElementProperties)
294984
+ /* harmony export */ });
294985
+ /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
294986
+ /* harmony import */ var _content_ContentTraverser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./content/ContentTraverser */ "../../presentation/common/lib/esm/presentation-common/content/ContentTraverser.js");
294987
+ /* harmony import */ var _content_TypeDescription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./content/TypeDescription */ "../../presentation/common/lib/esm/presentation-common/content/TypeDescription.js");
294951
294988
  /*---------------------------------------------------------------------------------------------
294952
294989
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
294953
294990
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -294958,6 +294995,191 @@ __webpack_require__.r(__webpack_exports__);
294958
294995
 
294959
294996
 
294960
294997
 
294998
+ /** @internal */
294999
+ const buildElementProperties = (descriptor, item) => {
295000
+ const builder = new ElementPropertiesBuilder();
295001
+ (0,_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_1__.traverseContentItem)(builder, descriptor, item);
295002
+ return builder.items[0];
295003
+ };
295004
+ class ElementPropertiesAppender {
295005
+ constructor(_item, _onItemFinished) {
295006
+ this._item = _item;
295007
+ this._onItemFinished = _onItemFinished;
295008
+ this._propertyItems = {};
295009
+ this._categoryItemAppenders = {};
295010
+ }
295011
+ append(label, item) {
295012
+ this._propertyItems[label] = item;
295013
+ }
295014
+ finish() {
295015
+ // eslint-disable-next-line guard-for-in
295016
+ for (const categoryName in this._categoryItemAppenders) {
295017
+ const appender = this._categoryItemAppenders[categoryName];
295018
+ appender.finish();
295019
+ }
295020
+ this._onItemFinished({
295021
+ class: this._item.classInfo?.label ?? "",
295022
+ id: this._item.primaryKeys[0]?.id ?? _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.invalid,
295023
+ label: this._item.label.displayValue,
295024
+ items: this._propertyItems,
295025
+ });
295026
+ }
295027
+ getCategoryAppender(parentAppender, category) {
295028
+ let appender = this._categoryItemAppenders[category.name];
295029
+ if (!appender) {
295030
+ appender = new CategoryItemAppender(parentAppender, category);
295031
+ this._categoryItemAppenders[category.name] = appender;
295032
+ }
295033
+ return appender;
295034
+ }
295035
+ }
295036
+ class CategoryItemAppender {
295037
+ constructor(_parentAppender, _category) {
295038
+ this._parentAppender = _parentAppender;
295039
+ this._category = _category;
295040
+ this._items = {};
295041
+ }
295042
+ append(label, item) {
295043
+ this._items[label] = item;
295044
+ }
295045
+ finish() {
295046
+ if (Object.keys(this._items).length === 0) {
295047
+ return;
295048
+ }
295049
+ this._parentAppender.append(this._category.label, {
295050
+ type: "category",
295051
+ items: this._items,
295052
+ });
295053
+ }
295054
+ }
295055
+ class ArrayItemAppender {
295056
+ constructor(_parentAppender, _props) {
295057
+ this._parentAppender = _parentAppender;
295058
+ this._props = _props;
295059
+ this._items = [];
295060
+ }
295061
+ append(_label, item) {
295062
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(item.type !== "category");
295063
+ this._items.push(item);
295064
+ }
295065
+ finish() {
295066
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._props.valueType.valueFormat === _content_TypeDescription__WEBPACK_IMPORTED_MODULE_2__.PropertyValueFormat.Array);
295067
+ if (this._props.valueType.memberType.valueFormat === _content_TypeDescription__WEBPACK_IMPORTED_MODULE_2__.PropertyValueFormat.Primitive) {
295068
+ this._parentAppender.append(this._props.hierarchy.field.label, this.createPrimitivesArray());
295069
+ }
295070
+ else {
295071
+ this._parentAppender.append(this._props.hierarchy.field.label, this.createStructsArray());
295072
+ }
295073
+ }
295074
+ createPrimitivesArray() {
295075
+ return {
295076
+ type: "array",
295077
+ valueType: "primitive",
295078
+ values: this._items.map((item) => {
295079
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(item.type === "primitive");
295080
+ return item.value;
295081
+ }),
295082
+ };
295083
+ }
295084
+ createStructsArray() {
295085
+ return {
295086
+ type: "array",
295087
+ valueType: "struct",
295088
+ values: this._items.map((item) => {
295089
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(item.type === "struct");
295090
+ return item.members;
295091
+ }),
295092
+ };
295093
+ }
295094
+ }
295095
+ class StructItemAppender {
295096
+ constructor(_parentAppender, _props) {
295097
+ this._parentAppender = _parentAppender;
295098
+ this._props = _props;
295099
+ this._members = {};
295100
+ }
295101
+ append(label, item) {
295102
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(item.type !== "category");
295103
+ this._members[label] = item;
295104
+ }
295105
+ finish() {
295106
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._props.valueType.valueFormat === _content_TypeDescription__WEBPACK_IMPORTED_MODULE_2__.PropertyValueFormat.Struct);
295107
+ this._parentAppender.append(this._props.hierarchy.field.label, {
295108
+ type: "struct",
295109
+ members: this._members,
295110
+ });
295111
+ }
295112
+ }
295113
+ class ElementPropertiesBuilder {
295114
+ constructor() {
295115
+ this._appendersStack = [];
295116
+ this._items = [];
295117
+ }
295118
+ get items() {
295119
+ return this._items;
295120
+ }
295121
+ get _currentAppender() {
295122
+ const appender = this._appendersStack[this._appendersStack.length - 1];
295123
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(appender !== undefined);
295124
+ return appender;
295125
+ }
295126
+ startContent(_props) {
295127
+ return true;
295128
+ }
295129
+ finishContent() { }
295130
+ processFieldHierarchies(_props) { }
295131
+ startItem(props) {
295132
+ this._elementPropertiesAppender = new ElementPropertiesAppender(props.item, (item) => this._items.push(item));
295133
+ this._appendersStack.push(this._elementPropertiesAppender);
295134
+ return true;
295135
+ }
295136
+ finishItem() {
295137
+ this._appendersStack.pop();
295138
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._elementPropertiesAppender !== undefined);
295139
+ this._elementPropertiesAppender.finish();
295140
+ this._elementPropertiesAppender = undefined;
295141
+ }
295142
+ startCategory(props) {
295143
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(this._elementPropertiesAppender !== undefined);
295144
+ this._appendersStack.push(this._elementPropertiesAppender.getCategoryAppender(this._currentAppender, props.category));
295145
+ return true;
295146
+ }
295147
+ finishCategory() {
295148
+ this._appendersStack.pop();
295149
+ }
295150
+ startField(_props) {
295151
+ return true;
295152
+ }
295153
+ finishField() { }
295154
+ startStruct(props) {
295155
+ this._appendersStack.push(new StructItemAppender(this._currentAppender, props));
295156
+ return true;
295157
+ }
295158
+ finishStruct() {
295159
+ this._appendersStack.pop().finish();
295160
+ }
295161
+ startArray(props) {
295162
+ this._appendersStack.push(new ArrayItemAppender(this._currentAppender, props));
295163
+ return true;
295164
+ }
295165
+ finishArray() {
295166
+ this._appendersStack.pop().finish();
295167
+ }
295168
+ processMergedValue(props) {
295169
+ this._currentAppender.append(props.mergedField.label, {
295170
+ type: "primitive",
295171
+ value: "",
295172
+ });
295173
+ }
295174
+ processPrimitiveValue(props) {
295175
+ this._currentAppender.append(props.field.label, {
295176
+ type: "primitive",
295177
+ value: props.displayValue?.toString() ?? "",
295178
+ });
295179
+ }
295180
+ }
295181
+
295182
+
294961
295183
  /***/ }),
294962
295184
 
294963
295185
  /***/ "../../presentation/common/lib/esm/presentation-common/Error.js":
@@ -296339,9 +296561,6 @@ class RpcRequestsHandler {
296339
296561
  // eslint-disable-next-line deprecation/deprecation
296340
296562
  return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
296341
296563
  }
296342
- async getElementProperties(options) {
296343
- return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
296344
- }
296345
296564
  async getContentInstanceKeys(options) {
296346
296565
  return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
296347
296566
  }
@@ -301657,12 +301876,21 @@ class PresentationManager {
301657
301876
  */
301658
301877
  async getElementProperties(requestOptions) {
301659
301878
  this.startIModelInitialization(requestOptions.imodel);
301660
- const results = await this._requestsHandler.getElementProperties(this.toRpcTokenOptions(requestOptions));
301661
- // istanbul ignore if
301662
- if (!results) {
301879
+ const { elementId, contentParser, ...optionsNoElementId } = requestOptions;
301880
+ const parser = contentParser ?? _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.buildElementProperties;
301881
+ const iter = await this.getContentIterator({
301882
+ ...optionsNoElementId,
301883
+ descriptor: {
301884
+ displayType: _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.DefaultContentDisplayTypes.PropertyPane,
301885
+ contentFlags: _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.ContentFlags.ShowLabels,
301886
+ },
301887
+ rulesetOrId: "ElementProperties",
301888
+ keys: new _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.KeySet([{ className: "BisCore:Element", id: elementId }]),
301889
+ });
301890
+ if (!iter || iter.total === 0) {
301663
301891
  return undefined;
301664
301892
  }
301665
- return this._localizationHelper.getLocalizedElementProperties(results);
301893
+ return parser(iter.descriptor, (await iter.items.next()).value);
301666
301894
  }
301667
301895
  /**
301668
301896
  * Retrieves content item instance keys.
@@ -318796,7 +319024,7 @@ function __disposeResources(env) {
318796
319024
  /***/ ((module) => {
318797
319025
 
318798
319026
  "use strict";
318799
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.9.0-dev.22","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.9.0-dev.22","@itwin/core-bentley":"workspace:^4.9.0-dev.22","@itwin/core-common":"workspace:^4.9.0-dev.22","@itwin/core-geometry":"workspace:^4.9.0-dev.22","@itwin/core-orbitgt":"workspace:^4.9.0-dev.22","@itwin/core-quantity":"workspace:^4.9.0-dev.22"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.1","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
319027
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.9.0-dev.24","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.9.0-dev.24","@itwin/core-bentley":"workspace:^4.9.0-dev.24","@itwin/core-common":"workspace:^4.9.0-dev.24","@itwin/core-geometry":"workspace:^4.9.0-dev.24","@itwin/core-orbitgt":"workspace:^4.9.0-dev.24","@itwin/core-quantity":"workspace:^4.9.0-dev.24"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
318800
319028
 
318801
319029
  /***/ }),
318802
319030