@itwin/rpcinterface-full-stack-tests 3.4.0-dev.33 → 3.4.0-dev.36

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.
@@ -21,9 +21,9 @@
21
21
 
22
22
  /***/ }),
23
23
 
24
- /***/ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.0/node_modules/@itwin/certa/lib/utils/CallbackUtils.js":
24
+ /***/ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.3/node_modules/@itwin/certa/lib/utils/CallbackUtils.js":
25
25
  /*!********************************************************************************************************************!*\
26
- !*** ../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.0/node_modules/@itwin/certa/lib/utils/CallbackUtils.js ***!
26
+ !*** ../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.3/node_modules/@itwin/certa/lib/utils/CallbackUtils.js ***!
27
27
  \********************************************************************************************************************/
28
28
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
29
29
 
@@ -2296,7 +2296,7 @@ exports.getAccessTokenFromBackend = exports.getTokenCallbackName = void 0;
2296
2296
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
2297
2297
  * See LICENSE.md in the project root for license terms and full copyright notice.
2298
2298
  *--------------------------------------------------------------------------------------------*/
2299
- const CallbackUtils_1 = __webpack_require__(/*! @itwin/certa/lib/utils/CallbackUtils */ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.0/node_modules/@itwin/certa/lib/utils/CallbackUtils.js");
2299
+ const CallbackUtils_1 = __webpack_require__(/*! @itwin/certa/lib/utils/CallbackUtils */ "../../common/temp/node_modules/.pnpm/@itwin+certa@3.3.3/node_modules/@itwin/certa/lib/utils/CallbackUtils.js");
2300
2300
  // Shared by both the frontend and backend side of the tests
2301
2301
  exports.getTokenCallbackName = "getToken";
2302
2302
  async function getAccessTokenFromBackend(user, oidcConfig) {
@@ -21247,8 +21247,8 @@ __webpack_require__.r(__webpack_exports__);
21247
21247
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21248
21248
  /* harmony export */ "default": () => (/* binding */ Browser)
21249
21249
  /* harmony export */ });
21250
- /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
21251
- /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/createClass.js");
21250
+ /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
21251
+ /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/createClass.js");
21252
21252
 
21253
21253
 
21254
21254
 
@@ -21679,10 +21679,10 @@ __webpack_require__.r(__webpack_exports__);
21679
21679
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21680
21680
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
21681
21681
  /* harmony export */ });
21682
- /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
21683
- /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/createClass.js");
21684
- /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
21685
- /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/typeof.js");
21682
+ /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
21683
+ /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/createClass.js");
21684
+ /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
21685
+ /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/typeof.js");
21686
21686
 
21687
21687
 
21688
21688
 
@@ -96099,37 +96099,23 @@ class AccuSnap {
96099
96099
  const parsed = undefined !== json ? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.IModelJson.Reader.parse(json) : undefined;
96100
96100
  return parsed instanceof _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.GeometryQuery && "curvePrimitive" === parsed.geometryCategory ? parsed : undefined;
96101
96101
  };
96102
- // If this hit is from a plan projection model, apply the model's elevation to the snap point for display.
96103
- // Likewise, if it is a hit on a model with a display transform, apply the model's transform to the snap point.
96104
- let snapPoint = result.snapPoint;
96105
- const elevation = undefined !== thisHit.modelId ? thisHit.viewport.view.getModelElevation(thisHit.modelId) : 0;
96106
- if (0 !== elevation || undefined !== thisHit.viewport.view.modelDisplayTransformProvider) {
96107
- const adjustedSnapPoint = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(snapPoint);
96108
- thisHit.viewport.view.transformPointByModelDisplayTransform(thisHit.modelId, adjustedSnapPoint, false);
96109
- adjustedSnapPoint.z += elevation;
96110
- snapPoint = adjustedSnapPoint;
96111
- }
96102
+ const snapPoint = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(result.snapPoint);
96103
+ const displayTransform = undefined !== thisHit.modelId ? thisHit.viewport.view.computeDisplayTransform({ modelId: thisHit.modelId, elementId: thisHit.sourceId }) : undefined;
96104
+ displayTransform === null || displayTransform === void 0 ? void 0 : displayTransform.multiplyPoint3d(snapPoint, snapPoint);
96112
96105
  const snap = new _HitDetail__WEBPACK_IMPORTED_MODULE_3__.SnapDetail(thisHit, result.snapMode, result.heat, snapPoint);
96113
- // Apply model's elevation and display transform to curve for display.
96114
- let transform;
96115
- if (undefined !== thisHit.modelId && undefined !== thisHit.viewport.view.modelDisplayTransformProvider) {
96116
- transform = thisHit.viewport.view.getModelDisplayTransform(thisHit.modelId, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity());
96117
- if (0 !== elevation)
96118
- transform.origin.set(0, 0, elevation);
96119
- }
96120
- else if (0 !== elevation) {
96121
- transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createTranslationXYZ(0, 0, elevation);
96122
- }
96123
- snap.setCurvePrimitive(parseCurve(result.curve), transform, result.geomType);
96106
+ snap.setCurvePrimitive(parseCurve(result.curve), displayTransform, result.geomType);
96124
96107
  if (undefined !== result.parentGeomType)
96125
96108
  snap.parentGeomType = result.parentGeomType;
96109
+ // Update hitPoint from readPixels with exact point location corrected to surface/edge geometry.
96126
96110
  if (undefined !== result.hitPoint) {
96127
- snap.hitPoint.setFromJSON(result.hitPoint); // Update hitPoint from readPixels with exact point location corrected to surface/edge geometry...
96128
- thisHit.viewport.view.transformPointByModelDisplayTransform(thisHit.modelId, snap.hitPoint, false);
96111
+ snap.hitPoint.setFromJSON(result.hitPoint);
96112
+ displayTransform === null || displayTransform === void 0 ? void 0 : displayTransform.multiplyPoint3d(snap.hitPoint, snap.hitPoint);
96129
96113
  }
96114
+ // Apply display transform to normal.
96130
96115
  if (undefined !== result.normal) {
96131
96116
  snap.normal = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.fromJSON(result.normal);
96132
- thisHit.viewport.view.transformNormalByModelDisplayTransform(thisHit.modelId, snap.normal);
96117
+ displayTransform === null || displayTransform === void 0 ? void 0 : displayTransform.matrix.multiplyVector(snap.normal, snap.normal);
96118
+ snap.normal.normalizeInPlace();
96133
96119
  }
96134
96120
  if (_HitDetail__WEBPACK_IMPORTED_MODULE_3__.SnapMode.Intersection !== snap.snapMode)
96135
96121
  return snap;
@@ -112863,8 +112849,9 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
112863
112849
  * @internal
112864
112850
  */
112865
112851
  getModelElevation(_modelId) { return 0; }
112866
- /** Specify a provider of per-model display transforms. Intended chiefly for use by model alignment tools.
112867
- * @note The transform supplied is used for display purposes **only**. Do not expect operations like snapping to account for the display transform.
112852
+ /** An object that can provide per-model transforms to be applied at display time.
112853
+ * @note The transform is used for display purposes only. Operations upon geometry within the model may not take the display transform into account.
112854
+ * @see [[computeDisplayTransform]] to compute a full display transform for a model or an element within it, which may include a transform supplied by this provider.
112868
112855
  * @beta
112869
112856
  */
112870
112857
  get modelDisplayTransformProvider() {
@@ -112877,31 +112864,37 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
112877
112864
  this.onModelDisplayTransformProviderChanged.raiseEvent(provider);
112878
112865
  this._modelDisplayTransformProvider = provider;
112879
112866
  }
112880
- /** Obtain the transform with which the specified model will be displayed, accounting for this view's [[ModelDisplayTransformProvider]].
112867
+ /** Compute the transform applied to a model or element at display time, if any.
112868
+ * The display transform may be constructed from any combination of the following:
112869
+ * - [PlanProjectionSettings.elevation]($common) applied to plan projection models by [DisplayStyle3dSettings.planProjectionSettings]($common);
112870
+ * - A per-model transform supplied by this view's [[modelDisplayTransformProvider]]; and/or
112871
+ * - A transform applied to an element by an [RenderSchedule.ElementTimeline]($common) defined by this view's [[scheduleScript]].
112872
+ * @param args A description of how to compute the transform.
112873
+ * @returns The computed transform, or `undefined` if no display transform is to be applied.
112881
112874
  * @beta
112882
112875
  */
112883
- getModelDisplayTransform(modelId, baseTransform) {
112884
- return this.modelDisplayTransformProvider ? this.modelDisplayTransformProvider.getModelDisplayTransform(modelId, baseTransform) : baseTransform;
112885
- }
112886
- /** @internal */
112887
- transformPointByModelDisplayTransform(modelId, pnt, inverse) {
112888
- if (undefined !== modelId && undefined !== this.modelDisplayTransformProvider) {
112889
- const transform = this.modelDisplayTransformProvider.getModelDisplayTransform(modelId, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity());
112890
- const newPnt = inverse ? transform.multiplyInversePoint3d(pnt) : transform.multiplyPoint3d(pnt);
112891
- if (undefined !== newPnt)
112892
- pnt.set(newPnt.x, newPnt.y, newPnt.z);
112893
- }
112894
- }
112895
- /** @internal */
112896
- transformNormalByModelDisplayTransform(modelId, normal) {
112897
- if (undefined !== modelId && undefined !== this.modelDisplayTransformProvider) {
112898
- const transform = this.modelDisplayTransformProvider.getModelDisplayTransform(modelId, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity());
112899
- const newVec = transform.matrix.multiplyInverse(normal);
112900
- if (undefined !== newVec) {
112901
- newVec.normalizeInPlace();
112902
- normal.set(newVec.x, newVec.y, newVec.z);
112903
- }
112904
- }
112876
+ computeDisplayTransform(args) {
112877
+ var _a, _b, _c;
112878
+ const elevation = this.getModelElevation(args.modelId);
112879
+ const modelTransform = (_a = this.modelDisplayTransformProvider) === null || _a === void 0 ? void 0 : _a.getModelDisplayTransform(args.modelId);
112880
+ // NB: A ModelTimeline can apply a transform to all elements in the model, but no code exists which actually applies that at display time.
112881
+ // So for now we continue to only consider the ElementTimeline transform.
112882
+ let scriptTransform;
112883
+ if (this.scheduleScript && args.elementId) {
112884
+ const idPair = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.getUint32Pair(args.elementId);
112885
+ const modelTimeline = this.scheduleScript.find(args.modelId);
112886
+ const elementTimeline = modelTimeline === null || modelTimeline === void 0 ? void 0 : modelTimeline.getTimelineForElement(idPair.lower, idPair.upper);
112887
+ scriptTransform = elementTimeline === null || elementTimeline === void 0 ? void 0 : elementTimeline.getAnimationTransform((_c = (_b = args.timePoint) !== null && _b !== void 0 ? _b : this.displayStyle.settings.timePoint) !== null && _c !== void 0 ? _c : 0);
112888
+ }
112889
+ if (0 === elevation && !modelTransform && !scriptTransform)
112890
+ return undefined;
112891
+ const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(args.output);
112892
+ transform.origin.z = elevation;
112893
+ if (modelTransform)
112894
+ transform.multiplyTransformTransform(modelTransform, transform);
112895
+ if (scriptTransform)
112896
+ transform.multiplyTransformTransform(scriptTransform, transform);
112897
+ return transform;
112905
112898
  }
112906
112899
  /** Invoked when this view becomes the view displayed by the specified [[Viewport]].
112907
112900
  * A ViewState can be attached to at most **one** Viewport.
@@ -116348,7 +116341,7 @@ class Viewport {
116348
116341
  * @see [[getPixelDataNpcPoint]] to obtain the point in [[CoordSystem.Npc]].
116349
116342
  */
116350
116343
  getPixelDataWorldPoint(args) {
116351
- var _a;
116344
+ var _a, _b;
116352
116345
  const { pixels, x, y, out, preserveModelDisplayTransforms } = args;
116353
116346
  const npc = this.getPixelDataNpcPoint(pixels, x, y, out);
116354
116347
  if (undefined !== npc) {
@@ -116356,10 +116349,11 @@ class Viewport {
116356
116349
  // If this is a plan projection model, invert the elevation applied to its display transform.
116357
116350
  // Likewise, if it is a hit on a model with a display transform, reverse the display transform.
116358
116351
  if (!preserveModelDisplayTransforms) {
116359
- const modelId = (_a = pixels.getPixel(x, y).featureTable) === null || _a === void 0 ? void 0 : _a.modelId;
116352
+ const pixel = pixels.getPixel(x, y);
116353
+ const modelId = (_a = pixel.featureTable) === null || _a === void 0 ? void 0 : _a.modelId;
116360
116354
  if (undefined !== modelId) {
116361
- npc.z -= this.view.getModelElevation(modelId);
116362
- this.view.transformPointByModelDisplayTransform(modelId, npc, true);
116355
+ const transform = this.view.computeDisplayTransform({ modelId, elementId: (_b = pixel.feature) === null || _b === void 0 ? void 0 : _b.elementId });
116356
+ transform === null || transform === void 0 ? void 0 : transform.multiplyInversePoint3d(npc, npc);
116363
116357
  }
116364
116358
  }
116365
116359
  }
@@ -157829,7 +157823,7 @@ class GltfReader {
157829
157823
  if (dracoMeshes.length === 0)
157830
157824
  return;
157831
157825
  try {
157832
- const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_2_7_node_modules_loaders_gl_draco_di-a586d9"), __webpack_require__.e("_c5fe")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.2.7/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
157826
+ const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_2_9_node_modules_loaders_gl_draco_di-01256f"), __webpack_require__.e("_fc1f")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.2.9/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
157833
157827
  await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
157834
157828
  }
157835
157829
  catch (err) {
@@ -160956,7 +160950,7 @@ function readPnts(stream, dataOffset, pnts) {
160956
160950
  async function decodeDracoPointCloud(buf) {
160957
160951
  var _a, _b, _c, _d, _e, _f;
160958
160952
  try {
160959
- const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_2_7_node_modules_loaders_gl_draco_di-a586d9"), __webpack_require__.e("_c5fe")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.2.7/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
160953
+ const dracoLoader = (await Promise.all(/*! import() */[__webpack_require__.e("vendors-common_temp_node_modules_pnpm_loaders_gl_draco_3_2_9_node_modules_loaders_gl_draco_di-01256f"), __webpack_require__.e("_fc1f")]).then(__webpack_require__.bind(__webpack_require__, /*! @loaders.gl/draco */ "../../common/temp/node_modules/.pnpm/@loaders.gl+draco@3.2.9/node_modules/@loaders.gl/draco/dist/esm/index.js"))).DracoLoader;
160960
160954
  const mesh = await dracoLoader.parse(buf, {});
160961
160955
  if (mesh.topology !== "point-list")
160962
160956
  return undefined;
@@ -161216,16 +161210,17 @@ class PrimaryTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_5__.TileTr
161216
161210
  this._owner = primaryTreeSupplier.getOwner(this._id, model.iModel);
161217
161211
  }
161218
161212
  checkForceNoInstancing(provider) {
161219
- this._forceNoInstancing = false;
161213
+ var _a;
161220
161214
  // If this model has a display transform with a non-uniform scale then instancing needs to be forced off when using WebGL1.
161221
- if (undefined !== provider) {
161222
- const tf = provider.getModelDisplayTransform(this.model.id, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Transform.createIdentity());
161223
- const sx = tf.matrix.getColumn(0).magnitudeSquared();
161224
- const sy = tf.matrix.getColumn(1).magnitudeSquared();
161225
- const sz = tf.matrix.getColumn(2).magnitudeSquared();
161226
- if (Math.abs(sx - sy) > _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance || Math.abs(sx - sz) > _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance)
161227
- this._forceNoInstancing = true;
161228
- }
161215
+ this._forceNoInstancing = false;
161216
+ const mat = (_a = provider === null || provider === void 0 ? void 0 : provider.getModelDisplayTransform(this.model.id)) === null || _a === void 0 ? void 0 : _a.matrix;
161217
+ if (!mat)
161218
+ return;
161219
+ const epsilon = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance;
161220
+ const sx = mat.getColumn(0).magnitudeSquared();
161221
+ const sy = mat.getColumn(1).magnitudeSquared();
161222
+ if (Math.abs(sx - sy) > epsilon || Math.abs(sx - mat.getColumn(2).magnitudeSquared()) > epsilon)
161223
+ this._forceNoInstancing = true;
161229
161224
  }
161230
161225
  getAnimationTransformNodeId() {
161231
161226
  var _a;
@@ -161301,8 +161296,10 @@ class PrimaryTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_5__.TileTr
161301
161296
  return super.computeTransform(tree);
161302
161297
  }
161303
161298
  computeTransform(tree) {
161304
- const tf = this.computeBaseTransform(tree);
161305
- return this.view.getModelDisplayTransform(this.model.id, tf);
161299
+ var _a;
161300
+ const baseTf = this.computeBaseTransform(tree);
161301
+ const displayTf = (_a = this.view.modelDisplayTransformProvider) === null || _a === void 0 ? void 0 : _a.getModelDisplayTransform(this.model.id);
161302
+ return displayTf ? baseTf.multiplyTransformTransform(displayTf, displayTf) : baseTf;
161306
161303
  }
161307
161304
  }
161308
161305
  /** @internal */
@@ -165033,33 +165030,27 @@ class TileDrawArgs {
165033
165030
  return this.viewingSpace.worldToViewMap;
165034
165031
  }
165035
165032
  computePixelSizeScaleFactor() {
165033
+ var _a, _b;
165036
165034
  // Check to see if a model display transform with non-uniform scaling is being used.
165037
- const tf = this.context.viewport.view.getModelDisplayTransform(this.tree.modelId, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createIdentity());
165038
- const scale = [];
165039
- scale[0] = tf.matrix.getColumn(0).magnitude();
165040
- scale[1] = tf.matrix.getColumn(1).magnitude();
165041
- scale[2] = tf.matrix.getColumn(2).magnitude();
165035
+ const mat = (_b = (_a = this.context.viewport.view.modelDisplayTransformProvider) === null || _a === void 0 ? void 0 : _a.getModelDisplayTransform(this.tree.modelId)) === null || _b === void 0 ? void 0 : _b.matrix;
165036
+ if (!mat)
165037
+ return 1;
165038
+ const scale = [0, 1, 2].map((x) => mat.getColumn(x).magnitude());
165042
165039
  if (Math.abs(scale[0] - scale[1]) <= _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance && Math.abs(scale[0] - scale[2]) <= _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance)
165043
165040
  return 1;
165044
165041
  // If the component with the largest scale is not the same as the component with the largest tile range use it to adjust the pixel size.
165045
165042
  const rangeDiag = this.tree.range.diagonal();
165046
165043
  let maxS = 0;
165047
165044
  let maxR = 0;
165048
- if (scale[0] > scale[1]) {
165045
+ if (scale[0] > scale[1])
165049
165046
  maxS = (scale[0] > scale[2] ? 0 : 2);
165050
- }
165051
- else {
165047
+ else
165052
165048
  maxS = (scale[1] > scale[2] ? 1 : 2);
165053
- }
165054
- if (rangeDiag.x > rangeDiag.y) {
165049
+ if (rangeDiag.x > rangeDiag.y)
165055
165050
  maxR = (rangeDiag.x > rangeDiag.z ? 0 : 2);
165056
- }
165057
- else {
165051
+ else
165058
165052
  maxR = (rangeDiag.y > rangeDiag.z ? 1 : 2);
165059
- }
165060
- if (maxS !== maxR)
165061
- return scale[maxS];
165062
- return 1;
165053
+ return maxS !== maxR ? scale[maxS] : 1;
165063
165054
  }
165064
165055
  /** A multiplier applied to a [[Tile]]'s `maximumSize` property to adjust level of detail.
165065
165056
  * @see [[Viewport.tileSizeModifier]].
@@ -175329,21 +175320,25 @@ class ViewClipByElementTool extends ViewClipTool {
175329
175320
  await this.exitTool();
175330
175321
  return false;
175331
175322
  }
175332
- async doClipToElements(viewport, ids, alwaysUseRange = false) {
175323
+ async doClipToElements(viewport, ids, alwaysUseRange = false, modelId) {
175333
175324
  try {
175334
175325
  const placements = await viewport.iModel.elements.getPlacements(ids, { type: viewport.view.is3d() ? "3d" : "2d" });
175335
175326
  if (0 === placements.length)
175336
175327
  return false;
175328
+ const displayTransform = modelId && 1 === placements.length ? viewport.view.computeDisplayTransform({ modelId, elementId: placements[0].elementId }) : undefined;
175337
175329
  const range = new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d();
175338
175330
  const transform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity();
175339
175331
  if (!alwaysUseRange && 1 === placements.length) {
175340
175332
  const placement = placements[0];
175341
175333
  range.setFrom(placement instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Placement2d ? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createRange2d(placement.bbox, 0) : placement.bbox);
175342
175334
  transform.setFrom(placement.transform); // Use ElementAlignedBox for single selection...
175335
+ displayTransform === null || displayTransform === void 0 ? void 0 : displayTransform.multiplyTransformTransform(transform, transform);
175343
175336
  }
175344
175337
  else {
175345
175338
  for (const placement of placements)
175346
175339
  range.extendRange(placement.calculateRange());
175340
+ if (displayTransform)
175341
+ transform.setFrom(displayTransform);
175347
175342
  }
175348
175343
  if (range.isNull)
175349
175344
  return false;
@@ -175393,7 +175388,7 @@ class ViewClipByElementTool extends ViewClipTool {
175393
175388
  const hit = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.locateManager.doLocate(new _ElementLocateManager__WEBPACK_IMPORTED_MODULE_5__.LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);
175394
175389
  if (undefined === hit || !hit.isElementHit)
175395
175390
  return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
175396
- return await this.doClipToElements(this.targetView, hit.sourceId, this._alwaysUseRange) ? _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes : _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
175391
+ return await this.doClipToElements(this.targetView, hit.sourceId, this._alwaysUseRange, hit.modelId) ? _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes : _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
175397
175392
  }
175398
175393
  }
175399
175394
  ViewClipByElementTool.toolId = "ViewClip.ByElement";
@@ -177760,33 +177755,28 @@ class MeasureMarker extends _Marker__WEBPACK_IMPORTED_MODULE_7__.Marker {
177760
177755
  }
177761
177756
  /** @internal */
177762
177757
  function adjustPoint(ev, segments, locations) {
177763
- // If the point was from a hit we must transform it by the model display transform of what got hit.
177764
- if (undefined === ev.viewport || undefined === ev.viewport.view.modelDisplayTransformProvider)
177758
+ var _a;
177759
+ // If the point was from a hit we must transform it by the display transform of what got hit.
177760
+ const hit = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuSnap.currHit;
177761
+ if (!hit || !ev.viewport || !hit.modelId)
177765
177762
  return ev.point;
177766
- if (undefined !== _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuSnap.currHit && undefined !== _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuSnap.currHit.modelId) {
177767
- if ("0" !== _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuSnap.currHit.modelId) {
177768
- const newPoint = ev.point.clone();
177769
- ev.viewport.view.transformPointByModelDisplayTransform(_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuSnap.currHit.modelId, newPoint, true);
177770
- return newPoint;
177771
- }
177772
- else {
177773
- // Must have snapped to a decoration, so look through previous any segments & locations for a match to get an adjusted point.
177774
- if (undefined !== segments) {
177775
- for (const seg of segments) {
177776
- if (seg.start.isExactEqual(ev.point))
177777
- return seg.adjustedStart.clone();
177778
- if (seg.end.isExactEqual(ev.point))
177779
- return seg.adjustedEnd.clone();
177780
- }
177781
- }
177782
- if (undefined !== locations) {
177783
- for (const loc of locations) {
177784
- if (loc.point.isExactEqual(ev.point))
177785
- return loc.adjustedPoint.clone();
177786
- }
177787
- }
177788
- }
177789
- }
177763
+ if ("0" !== hit.modelId) {
177764
+ const transform = ev.viewport.view.computeDisplayTransform({ modelId: hit.modelId, elementId: hit.sourceId });
177765
+ return (_a = transform === null || transform === void 0 ? void 0 : transform.multiplyInversePoint3d(ev.point)) !== null && _a !== void 0 ? _a : ev.point;
177766
+ }
177767
+ // Must have snapped to a decoration, so look through previous any segments & locations for a match to get an adjusted point.
177768
+ if (segments) {
177769
+ for (const seg of segments) {
177770
+ if (seg.start.isExactEqual(ev.point))
177771
+ return seg.adjustedStart.clone();
177772
+ if (seg.end.isExactEqual(ev.point))
177773
+ return seg.adjustedEnd.clone();
177774
+ }
177775
+ }
177776
+ if (locations)
177777
+ for (const loc of locations)
177778
+ if (loc.point.isExactEqual(ev.point))
177779
+ return loc.adjustedPoint.clone();
177790
177780
  return ev.point;
177791
177781
  }
177792
177782
  /** Report distance between 2 points using current quantity formatter for length.
@@ -197841,7 +197831,7 @@ __webpack_require__.r(__webpack_exports__);
197841
197831
  /* harmony export */ "BSplineWrapMode": () => (/* reexport safe */ _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_108__.BSplineWrapMode),
197842
197832
  /* harmony export */ "BagOfCurves": () => (/* reexport safe */ _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_63__.BagOfCurves),
197843
197833
  /* harmony export */ "BarycentricTriangle": () => (/* reexport safe */ _geometry3d_BarycentricTriangle__WEBPACK_IMPORTED_MODULE_3__.BarycentricTriangle),
197844
- /* harmony export */ "BentleyGeometryFlatBuffer": () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_124__.BentleyGeometryFlatBuffer),
197834
+ /* harmony export */ "BentleyGeometryFlatBuffer": () => (/* reexport safe */ _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_125__.BentleyGeometryFlatBuffer),
197845
197835
  /* harmony export */ "Bezier1dNd": () => (/* reexport safe */ _bspline_Bezier1dNd__WEBPACK_IMPORTED_MODULE_98__.Bezier1dNd),
197846
197836
  /* harmony export */ "BezierBezierIntersectionXYRRToRRD": () => (/* reexport safe */ _curve_CurveCurveIntersectXY__WEBPACK_IMPORTED_MODULE_65__.BezierBezierIntersectionXYRRToRRD),
197847
197837
  /* harmony export */ "BezierCoffs": () => (/* reexport safe */ _numerics_BezierPolynomials__WEBPACK_IMPORTED_MODULE_49__.BezierCoffs),
@@ -197892,7 +197882,7 @@ __webpack_require__.r(__webpack_exports__);
197892
197882
  /* harmony export */ "CurveSearchStatus": () => (/* reexport safe */ _curve_CurveLocationDetail__WEBPACK_IMPORTED_MODULE_67__.CurveSearchStatus),
197893
197883
  /* harmony export */ "CutLoop": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_26__.CutLoop),
197894
197884
  /* harmony export */ "CutLoopMergeContext": () => (/* reexport safe */ _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_26__.CutLoopMergeContext),
197895
- /* harmony export */ "DeepCompare": () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_122__.DeepCompare),
197885
+ /* harmony export */ "DeepCompare": () => (/* reexport safe */ _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_123__.DeepCompare),
197896
197886
  /* harmony export */ "Degree2PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.Degree2PowerPolynomial),
197897
197887
  /* harmony export */ "Degree3PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.Degree3PowerPolynomial),
197898
197888
  /* harmony export */ "Degree4PowerPolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.Degree4PowerPolynomial),
@@ -197915,7 +197905,7 @@ __webpack_require__.r(__webpack_exports__);
197915
197905
  /* harmony export */ "HalfEdge": () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_119__.HalfEdge),
197916
197906
  /* harmony export */ "HalfEdgeGraph": () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_119__.HalfEdgeGraph),
197917
197907
  /* harmony export */ "HalfEdgeMask": () => (/* reexport safe */ _topology_Graph__WEBPACK_IMPORTED_MODULE_119__.HalfEdgeMask),
197918
- /* harmony export */ "IModelJson": () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_121__.IModelJson),
197908
+ /* harmony export */ "IModelJson": () => (/* reexport safe */ _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_122__.IModelJson),
197919
197909
  /* harmony export */ "ImplicitLineXY": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.ImplicitLineXY),
197920
197910
  /* harmony export */ "IndexedCollectionInterval": () => (/* reexport safe */ _geometry3d_IndexedCollectionInterval__WEBPACK_IMPORTED_MODULE_13__.IndexedCollectionInterval),
197921
197911
  /* harmony export */ "IndexedPolyface": () => (/* reexport safe */ _polyface_Polyface__WEBPACK_IMPORTED_MODULE_112__.IndexedPolyface),
@@ -198001,17 +197991,18 @@ __webpack_require__.r(__webpack_exports__);
198001
197991
  /* harmony export */ "RegionOps": () => (/* reexport safe */ _curve_RegionOps__WEBPACK_IMPORTED_MODULE_78__.RegionOps),
198002
197992
  /* harmony export */ "RotationalSweep": () => (/* reexport safe */ _solid_RotationalSweep__WEBPACK_IMPORTED_MODULE_91__.RotationalSweep),
198003
197993
  /* harmony export */ "RuledSweep": () => (/* reexport safe */ _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_92__.RuledSweep),
198004
- /* harmony export */ "Sample": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_123__.Sample),
197994
+ /* harmony export */ "Sample": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_124__.Sample),
198005
197995
  /* harmony export */ "Segment1d": () => (/* reexport safe */ _geometry3d_Segment1d__WEBPACK_IMPORTED_MODULE_29__.Segment1d),
198006
197996
  /* harmony export */ "SimpleNewton": () => (/* reexport safe */ _numerics_Newton__WEBPACK_IMPORTED_MODULE_51__.SimpleNewton),
198007
197997
  /* harmony export */ "SineCosinePolynomial": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.SineCosinePolynomial),
198008
197998
  /* harmony export */ "SmallSystem": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.SmallSystem),
198009
197999
  /* harmony export */ "SmoothTransformBetweenFrusta": () => (/* reexport safe */ _geometry3d_FrustumAnimation__WEBPACK_IMPORTED_MODULE_7__.SmoothTransformBetweenFrusta),
198010
198000
  /* harmony export */ "SolidPrimitive": () => (/* reexport safe */ _solid_SolidPrimitive__WEBPACK_IMPORTED_MODULE_93__.SolidPrimitive),
198001
+ /* harmony export */ "SpacePolygonTriangulation": () => (/* reexport safe */ _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_121__.SpacePolygonTriangulation),
198011
198002
  /* harmony export */ "Sphere": () => (/* reexport safe */ _solid_Sphere__WEBPACK_IMPORTED_MODULE_94__.Sphere),
198012
198003
  /* harmony export */ "SphereImplicit": () => (/* reexport safe */ _numerics_Polynomials__WEBPACK_IMPORTED_MODULE_54__.SphereImplicit),
198013
198004
  /* harmony export */ "StandardViewIndex": () => (/* reexport safe */ _Geometry__WEBPACK_IMPORTED_MODULE_34__.StandardViewIndex),
198014
- /* harmony export */ "SteppedIndexFunctionFactory": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_123__.SteppedIndexFunctionFactory),
198005
+ /* harmony export */ "SteppedIndexFunctionFactory": () => (/* reexport safe */ _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_124__.SteppedIndexFunctionFactory),
198015
198006
  /* harmony export */ "StringifiedClipVector": () => (/* reexport safe */ _clipping_ClipVector__WEBPACK_IMPORTED_MODULE_41__.StringifiedClipVector),
198016
198007
  /* harmony export */ "StrokeCountMap": () => (/* reexport safe */ _curve_Query_StrokeCountMap__WEBPACK_IMPORTED_MODULE_87__.StrokeCountMap),
198017
198008
  /* harmony export */ "StrokeOptions": () => (/* reexport safe */ _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_82__.StrokeOptions),
@@ -198162,10 +198153,11 @@ __webpack_require__.r(__webpack_exports__);
198162
198153
  /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
198163
198154
  /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
198164
198155
  /* harmony import */ var _topology_Triangulation__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./topology/Triangulation */ "../../core/geometry/lib/esm/topology/Triangulation.js");
198165
- /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
198166
- /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
198167
- /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
198168
- /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
198156
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
198157
+ /* harmony import */ var _serialization_IModelJsonSchema__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./serialization/IModelJsonSchema */ "../../core/geometry/lib/esm/serialization/IModelJsonSchema.js");
198158
+ /* harmony import */ var _serialization_DeepCompare__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./serialization/DeepCompare */ "../../core/geometry/lib/esm/serialization/DeepCompare.js");
198159
+ /* harmony import */ var _serialization_GeometrySamples__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./serialization/GeometrySamples */ "../../core/geometry/lib/esm/serialization/GeometrySamples.js");
198160
+ /* harmony import */ var _serialization_BentleyGeometryFlatBuffer__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./serialization/BentleyGeometryFlatBuffer */ "../../core/geometry/lib/esm/serialization/BentleyGeometryFlatBuffer.js");
198169
198161
  /*---------------------------------------------------------------------------------------------
198170
198162
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
198171
198163
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -198410,6 +198402,7 @@ __webpack_require__.r(__webpack_exports__);
198410
198402
 
198411
198403
 
198412
198404
 
198405
+
198413
198406
 
198414
198407
 
198415
198408
 
@@ -206859,6 +206852,30 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
206859
206852
  this.addFraction(fraction);
206860
206853
  }
206861
206854
  }
206855
+ /** Compress out duplicate points (according to point.isAlmostEqual)
206856
+ */
206857
+ removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
206858
+ const n = this._points.length;
206859
+ if (n < 2)
206860
+ return;
206861
+ let n1 = 1;
206862
+ for (let i = 1; i < n; i++) {
206863
+ const q = this._points.distanceIndexIndex(i, n1 - 1);
206864
+ if (q !== undefined && q > tolerance) {
206865
+ this._points.moveIndexToIndex(i, n1);
206866
+ if (this._fractions !== undefined)
206867
+ this._fractions.setAtUncheckedIndex(n1, this._fractions.atUncheckedIndex(i));
206868
+ if (this._derivatives)
206869
+ this._derivatives.moveIndexToIndex(i, n1);
206870
+ n1++;
206871
+ }
206872
+ }
206873
+ this._points.resize(n1);
206874
+ if (this._fractions)
206875
+ this._fractions.resize(n1);
206876
+ if (this._derivatives)
206877
+ this._derivatives.resize(n1);
206878
+ }
206862
206879
  /** Append a suitable evaluation of a curve ..
206863
206880
  * * always append the curve point
206864
206881
  * * if fraction array is present, append the fraction
@@ -211575,15 +211592,15 @@ __webpack_require__.r(__webpack_exports__);
211575
211592
  /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
211576
211593
  /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
211577
211594
  /* harmony import */ var _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../curve/CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
211578
- /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
211579
- /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
211580
- /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
211595
+ /* harmony import */ var _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../curve/GeometryQuery */ "../../core/geometry/lib/esm/curve/GeometryQuery.js");
211596
+ /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
211597
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
211581
211598
  /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
211582
211599
  /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
211583
211600
  /* harmony import */ var _curve_RegionOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../curve/RegionOps */ "../../core/geometry/lib/esm/curve/RegionOps.js");
211584
211601
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
211585
211602
  /* harmony import */ var _curve_CurveCurve__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../curve/CurveCurve */ "../../core/geometry/lib/esm/curve/CurveCurve.js");
211586
- /* harmony import */ var _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
211603
+ /* harmony import */ var _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PolygonOffsetContext */ "../../core/geometry/lib/esm/curve/internalContexts/PolygonOffsetContext.js");
211587
211604
  /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
211588
211605
  /*---------------------------------------------------------------------------------------------
211589
211606
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
@@ -211820,6 +211837,16 @@ class MultiChainCollector {
211820
211837
  return curves[0];
211821
211838
  return _curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.createArray(curves);
211822
211839
  }
211840
+ chainToLineString3d(curves) {
211841
+ if (curves.length === 0)
211842
+ return undefined;
211843
+ const linestring = _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d.create();
211844
+ for (const curve of curves) {
211845
+ curve.emitStrokes(linestring);
211846
+ linestring.removeDuplicatePoints();
211847
+ }
211848
+ return linestring;
211849
+ }
211823
211850
  /** Return the collected results, structured as the simplest possible type. */
211824
211851
  grabResult(makeLoopIfClosed = false) {
211825
211852
  const chains = this._chains;
@@ -211834,6 +211861,22 @@ class MultiChainCollector {
211834
211861
  }
211835
211862
  return bag;
211836
211863
  }
211864
+ /** Return chains as individual calls to announceChain. */
211865
+ announceChainsAsLineString3d(announceChain) {
211866
+ const chains = this._chains;
211867
+ if (chains.length === 1) {
211868
+ const ls = this.chainToLineString3d(chains[0]);
211869
+ if (ls)
211870
+ announceChain(ls);
211871
+ }
211872
+ else if (chains.length > 1) {
211873
+ for (const chain of chains) {
211874
+ const ls = this.chainToLineString3d(chain);
211875
+ if (ls)
211876
+ announceChain(ls);
211877
+ }
211878
+ }
211879
+ }
211837
211880
  }
211838
211881
  // static methods to assist offset sequences ....
211839
211882
  class OffsetHelpers {
@@ -211854,7 +211897,7 @@ class OffsetHelpers {
211854
211897
  }
211855
211898
  // recursively sum lengths, allowing CurvePrimitive, CurveCollection, or array of such at any level.
211856
211899
  static extendRange(range, data) {
211857
- if (data instanceof _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_7__.GeometryQuery) {
211900
+ if (data instanceof _curve_GeometryQuery__WEBPACK_IMPORTED_MODULE_8__.GeometryQuery) {
211858
211901
  data.extendRange(range);
211859
211902
  }
211860
211903
  else if (Array.isArray(data)) {
@@ -211869,7 +211912,7 @@ class OffsetHelpers {
211869
211912
  static appendOffsets(data, offset, result, skipOffsetOfLoop) {
211870
211913
  let summedLengths = 0;
211871
211914
  if (data instanceof _curve_CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive) {
211872
- const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_8__.CurveChainWireOffsetContext.constructCurveXYOffset(_curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.create(data), offset);
211915
+ const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(_curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path.create(data), offset);
211873
211916
  if (resultA) {
211874
211917
  summedLengths += this.sumLengths(resultA);
211875
211918
  result.push(resultA);
@@ -211878,7 +211921,7 @@ class OffsetHelpers {
211878
211921
  else if (data instanceof _curve_Loop__WEBPACK_IMPORTED_MODULE_5__.Loop || data instanceof _curve_Path__WEBPACK_IMPORTED_MODULE_6__.Path) {
211879
211922
  if (false) {}
211880
211923
  else {
211881
- const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_8__.CurveChainWireOffsetContext.constructCurveXYOffset(data, offset);
211924
+ const resultA = _PolygonOffsetContext__WEBPACK_IMPORTED_MODULE_9__.CurveChainWireOffsetContext.constructCurveXYOffset(data, offset);
211882
211925
  if (resultA) {
211883
211926
  summedLengths += this.sumLengths(resultA);
211884
211927
  result.push(resultA);
@@ -211921,7 +211964,6 @@ class OffsetHelpers {
211921
211964
  }
211922
211965
  /**
211923
211966
  * * Restructure curve fragments as chains and offsets
211924
- * * Return object with named chains, insideOffsets, outsideOffsets
211925
211967
  * * BEWARE that if the input is not a loop the classification of outputs is suspect.
211926
211968
  * @param fragments fragments to be chained
211927
211969
  * @param gapTolerance distance to be treated as "effectively zero" when joining head-to-tail.
@@ -211937,7 +211979,7 @@ class OffsetHelpers {
211937
211979
  *
211938
211980
  */
211939
211981
  static simpleEndPointMove(g, atEnd, to) {
211940
- if (g instanceof (_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_9__.LineSegment3d)) {
211982
+ if (g instanceof (_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d)) {
211941
211983
  if (atEnd) {
211942
211984
  g.point1Ref.setFrom(to);
211943
211985
  }
@@ -211946,7 +211988,7 @@ class OffsetHelpers {
211946
211988
  }
211947
211989
  return true;
211948
211990
  }
211949
- else if (g instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_10__.LineString3d && g.numPoints() > 0) {
211991
+ else if (g instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_7__.LineString3d && g.numPoints() > 0) {
211950
211992
  const i = atEnd ? g.numPoints() - 1 : 0;
211951
211993
  g.packedPoints.setAtCheckedPointIndex(i, to);
211952
211994
  return true;
@@ -226292,6 +226334,20 @@ __webpack_require__.r(__webpack_exports__);
226292
226334
 
226293
226335
 
226294
226336
 
226337
+ /**
226338
+ *
226339
+ * @param numA first candidate -- presumed 0 or positive
226340
+ * @param numB second candidate -- may be undefined, invalid if outside closed interval 0..numA
226341
+ * @param multiplyBy second candidate multiplier (applied only if candidate is defined)
226342
+ */
226343
+ function selectOptionalClampedMin(numA, numB, multiplyBy) {
226344
+ if (numB !== undefined) {
226345
+ const numC = numB * multiplyBy;
226346
+ if (numC >= 0 && numC <= numA)
226347
+ return numC;
226348
+ }
226349
+ return numA;
226350
+ }
226295
226351
  /**
226296
226352
  * The `NumberArray` class contains static methods that act on arrays of numbers.
226297
226353
  * @public
@@ -226941,17 +226997,17 @@ class Point3dArray {
226941
226997
  * Sum lengths of edges.
226942
226998
  * @param data points.
226943
226999
  */
226944
- static sumEdgeLengths(data, addClosureEdge = false) {
227000
+ static sumEdgeLengths(data, addClosureEdge = false, maxPointsToUse) {
226945
227001
  let sum = 0.0;
226946
227002
  if (Array.isArray(data)) {
226947
- const n = data.length - 1;
227003
+ const n = selectOptionalClampedMin(data.length, maxPointsToUse, 1) - 1;
226948
227004
  for (let i = 0; i < n; i++)
226949
227005
  sum += data[i].distance(data[i + 1]);
226950
227006
  if (addClosureEdge && n > 0)
226951
227007
  sum += data[0].distance(data[n]);
226952
227008
  }
226953
227009
  else if (data instanceof Float64Array) {
226954
- const numXYZ = data.length;
227010
+ const numXYZ = selectOptionalClampedMin(data.length, maxPointsToUse, 3);
226955
227011
  let i = 0;
226956
227012
  for (; i + 5 < numXYZ; i += 3) { // final i points at final point x
226957
227013
  sum += _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.hypotenuseXYZ(data[i + 3] - data[i], data[i + 4] - data[i + 1], data[i + 5] - data[i + 2]);
@@ -226962,6 +227018,26 @@ class Point3dArray {
226962
227018
  }
226963
227019
  return sum;
226964
227020
  }
227021
+ /**
227022
+ * Count the number of points, but ...
227023
+ * * ignore trailing duplicates of point 0.
227024
+ * * return 0 if there are any duplicates within the remaining points.
227025
+ * @param points points to examine.
227026
+ */
227027
+ static countNonDuplicates(points, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
227028
+ let n = points.length;
227029
+ // strip of (allow) trailing duplicates ...
227030
+ while (n > 1) {
227031
+ if (points[0].isAlmostEqual(points[n - 1], tolerance))
227032
+ n--;
227033
+ else
227034
+ break;
227035
+ }
227036
+ for (let i = 0; i + 1 < n; i++)
227037
+ if (points[i].isAlmostEqual(points[i + 1], tolerance))
227038
+ return 0;
227039
+ return n;
227040
+ }
226965
227041
  /**
226966
227042
  * Return an array containing clones of the Point3d data[]
226967
227043
  * @param data source data
@@ -227396,15 +227472,15 @@ __webpack_require__.r(__webpack_exports__);
227396
227472
  /* harmony export */ "Point3dArrayPolygonOps": () => (/* binding */ Point3dArrayPolygonOps),
227397
227473
  /* harmony export */ "PolygonOps": () => (/* binding */ PolygonOps)
227398
227474
  /* harmony export */ });
227399
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
227475
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
227400
227476
  /* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
227401
227477
  /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
227402
227478
  /* harmony import */ var _topology_XYParitySearchContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../topology/XYParitySearchContext */ "../../core/geometry/lib/esm/topology/XYParitySearchContext.js");
227403
227479
  /* harmony import */ var _FrameBuilder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
227404
227480
  /* harmony import */ var _GrowableXYZArray__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
227405
- /* harmony import */ var _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
227481
+ /* harmony import */ var _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
227406
227482
  /* harmony import */ var _Point2dVector2d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Point2dVector2d */ "../../core/geometry/lib/esm/geometry3d/Point2dVector2d.js");
227407
- /* harmony import */ var _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
227483
+ /* harmony import */ var _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Point3dArrayCarrier */ "../../core/geometry/lib/esm/geometry3d/Point3dArrayCarrier.js");
227408
227484
  /* harmony import */ var _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
227409
227485
  /* harmony import */ var _Ray3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Ray3d */ "../../core/geometry/lib/esm/geometry3d/Ray3d.js");
227410
227486
  /* harmony import */ var _SortablePolygon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SortablePolygon */ "../../core/geometry/lib/esm/geometry3d/SortablePolygon.js");
@@ -227638,6 +227714,41 @@ class PolygonOps {
227638
227714
  }
227639
227715
  return s * 0.5;
227640
227716
  }
227717
+ /** Sum areas of triangles from points[0] to each far edge, as viewed with upVector pointing up.
227718
+ * * Consider triangles from points[0] to each edge.
227719
+ * * Sum the areas perpendicular to the upVector.
227720
+ * * If the upVector is near-zero length, a simple z vector is used.
227721
+ * @returns sum of triangle areas.
227722
+ */
227723
+ static sumTriangleAreasPerpendicularToUpVector(points, upVector) {
227724
+ let scale = upVector.magnitude();
227725
+ if (scale < _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
227726
+ upVector = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(0, 0, 1);
227727
+ scale = 1.0;
227728
+ }
227729
+ let s = 0;
227730
+ const n = points.length;
227731
+ if (Array.isArray(points)) {
227732
+ if (n >= 3) {
227733
+ const origin = points[0];
227734
+ const vector0 = origin.vectorTo(points[1]);
227735
+ let vector1 = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
227736
+ // This will work with or without closure edge. If closure is given, the last vector is 000.
227737
+ for (let i = 2; i < n; i++) {
227738
+ vector1 = origin.vectorTo(points[i], vector1);
227739
+ s += vector0.tripleProduct(vector1, upVector);
227740
+ vector0.setFrom(vector1);
227741
+ }
227742
+ }
227743
+ return s * 0.5 / scale;
227744
+ }
227745
+ const crossVector = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
227746
+ for (let i = 2; i < n; i++) {
227747
+ points.crossProductIndexIndexIndex(0, i - 1, i, crossVector);
227748
+ s += crossVector.dotProduct(upVector);
227749
+ }
227750
+ return s * 0.5 / scale;
227751
+ }
227641
227752
  /** Sum areas of triangles from points[0] to each far edge.
227642
227753
  * * Consider triangles from points[0] to each edge.
227643
227754
  * * Sum the areas(absolute, without regard to orientation) all these triangles.
@@ -227685,7 +227796,7 @@ class PolygonOps {
227685
227796
  static areaNormal(points, result) {
227686
227797
  if (!result)
227687
227798
  result = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
227688
- PolygonOps.areaNormalGo(new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__.Point3dArrayCarrier(points), result);
227799
+ PolygonOps.areaNormalGo(new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(points), result);
227689
227800
  return result;
227690
227801
  }
227691
227802
  /** return the area of the polygon.
@@ -227698,7 +227809,7 @@ class PolygonOps {
227698
227809
  /** return the projected XY area of the polygon. */
227699
227810
  static areaXY(points) {
227700
227811
  let area = 0.0;
227701
- if (points instanceof _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_3__.IndexedXYZCollection) {
227812
+ if (points instanceof _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_4__.IndexedXYZCollection) {
227702
227813
  if (points.length > 2) {
227703
227814
  const x0 = points.getXAtUncheckedPointIndex(0);
227704
227815
  const y0 = points.getYAtUncheckedPointIndex(0);
@@ -227708,7 +227819,7 @@ class PolygonOps {
227708
227819
  for (let i = 1; i + 1 < points.length; i++, u1 = u2, v1 = v2) {
227709
227820
  u2 = points.getXAtUncheckedPointIndex(i) - x0;
227710
227821
  v2 = points.getYAtUncheckedPointIndex(i) - y0;
227711
- area += _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.crossProductXYXY(u1, v1, u2, v2);
227822
+ area += _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.crossProductXYXY(u1, v1, u2, v2);
227712
227823
  }
227713
227824
  }
227714
227825
  }
@@ -227734,7 +227845,7 @@ class PolygonOps {
227734
227845
  */
227735
227846
  static centroidAreaNormal(points) {
227736
227847
  if (Array.isArray(points)) {
227737
- const carrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__.Point3dArrayCarrier(points);
227848
+ const carrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(points);
227738
227849
  return this.centroidAreaNormal(carrier);
227739
227850
  }
227740
227851
  const n = points.length;
@@ -227776,7 +227887,7 @@ class PolygonOps {
227776
227887
  vector0.setFrom(vector1);
227777
227888
  }
227778
227889
  const area = 0.5 * normalSum.magnitude();
227779
- const inverseArea = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.conditionalDivideFraction(1, area);
227890
+ const inverseArea = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.conditionalDivideFraction(1, area);
227780
227891
  if (inverseArea !== undefined) {
227781
227892
  const result = _Ray3d__WEBPACK_IMPORTED_MODULE_0__.Ray3d.createCapture(origin.plusScaled(centroidSum, inverseArea), normalSum);
227782
227893
  result.tryNormalizeInPlaceWithAreaWeight(area);
@@ -227807,7 +227918,7 @@ class PolygonOps {
227807
227918
  areaSum += tempArea;
227808
227919
  }
227809
227920
  area = areaSum * 0.5;
227810
- const a = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.conditionalDivideFraction(1.0, 6.0 * area);
227921
+ const a = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.conditionalDivideFraction(1.0, 6.0 * area);
227811
227922
  if (a === undefined) {
227812
227923
  centroid.setFrom(origin);
227813
227924
  return undefined;
@@ -228015,7 +228126,7 @@ class PolygonOps {
228015
228126
  * @return the number of loops reversed.
228016
228127
  */
228017
228128
  static orientLoopsCCWForOutwardNormalInPlace(loops, outwardNormal) {
228018
- if (loops instanceof _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_3__.IndexedXYZCollection)
228129
+ if (loops instanceof _IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_4__.IndexedXYZCollection)
228019
228130
  return this.orientLoopsCCWForOutwardNormalInPlace([loops], outwardNormal);
228020
228131
  const orientations = [];
228021
228132
  const unitNormal = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create();
@@ -228177,7 +228288,7 @@ class IndexedXYZCollectionPolygonOps {
228177
228288
  * @param tolerance tolerance for "on plane" decision.
228178
228289
  * @return the number of crossings. If this is larger than 2, the result is "correct" in a parity sense but may have overlapping (hence cancelling) parts.
228179
228290
  */
228180
- static clipConvexPolygonInPlace(plane, xyz, work, keepPositive = true, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
228291
+ static clipConvexPolygonInPlace(plane, xyz, work, keepPositive = true, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
228181
228292
  work.clear();
228182
228293
  const s = keepPositive ? 1.0 : -1.0;
228183
228294
  const n = xyz.length;
@@ -228239,7 +228350,7 @@ class IndexedXYZCollectionPolygonOps {
228239
228350
  * * `minChainLength` indicates the shortest chain to be returned.
228240
228351
  * @internal
228241
228352
  */
228242
- static gatherCutLoopsFromPlaneClip(plane, xyz, minChainLength = 3, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
228353
+ static gatherCutLoopsFromPlaneClip(plane, xyz, minChainLength = 3, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
228243
228354
  const result = new CutLoopMergeContext();
228244
228355
  // find the first on-plane point
228245
228356
  let firstOnPlaneIndex = 0;
@@ -228359,9 +228470,9 @@ class Point3dArrayPolygonOps {
228359
228470
  * @param altitudeRange min and max altitudes encountered.
228360
228471
  */
228361
228472
  static convexPolygonSplitInsideOutsidePlane(plane, xyz, xyzIn, xyzOut, altitudeRange) {
228362
- const xyzCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__.Point3dArrayCarrier(xyz);
228363
- const xyzInCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__.Point3dArrayCarrier(xyzIn);
228364
- const xyzOutCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_2__.Point3dArrayCarrier(xyzOut);
228473
+ const xyzCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(xyz);
228474
+ const xyzInCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(xyzIn);
228475
+ const xyzOutCarrier = new _Point3dArrayCarrier__WEBPACK_IMPORTED_MODULE_3__.Point3dArrayCarrier(xyzOut);
228365
228476
  IndexedXYZCollectionPolygonOps.splitConvexPolygonInsideOutsidePlane(plane, xyzCarrier, xyzInCarrier, xyzOutCarrier, altitudeRange);
228366
228477
  }
228367
228478
  /** Return an array containing
@@ -228395,7 +228506,7 @@ class Point3dArrayPolygonOps {
228395
228506
  * @param work scratch object
228396
228507
  * @param tolerance tolerance for on-plane decision.
228397
228508
  */
228398
- static convexPolygonClipInPlace(plane, xyz, work, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_4__.Geometry.smallMetricDistance) {
228509
+ static convexPolygonClipInPlace(plane, xyz, work, tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
228399
228510
  if (work === undefined)
228400
228511
  work = [];
228401
228512
  work.length = 0;
@@ -228942,6 +229053,26 @@ class PolylineOps {
228942
229053
  data.push(q0.clone());
228943
229054
  }
228944
229055
  }
229056
+ /**
229057
+ * Remove closure points a polyline or array of polylines
229058
+ * @param data points.
229059
+ */
229060
+ static removeClosurePoint(data) {
229061
+ if (data.length === 0)
229062
+ return;
229063
+ const q0 = data[0];
229064
+ if (Array.isArray(q0)) {
229065
+ for (const child of data) {
229066
+ if (Array.isArray(child))
229067
+ this.removeClosurePoint(child);
229068
+ }
229069
+ return;
229070
+ }
229071
+ const q1 = data[data.length - 1];
229072
+ if (q0 instanceof _Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d && q1 instanceof _Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d && q0.isAlmostEqual(q1)) {
229073
+ data.pop();
229074
+ }
229075
+ }
228945
229076
  }
228946
229077
 
228947
229078
 
@@ -243409,7 +243540,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243409
243540
  * @param normals array of points. This may contain extra points not to be used in the polygon
243410
243541
  * @param numPointsToUse number of points to use.
243411
243542
  */
243412
- addFacetFromGrowableArrays(points, normals, params, colors) {
243543
+ addFacetFromGrowableArrays(points, normals, params, colors, edgeVisible) {
243413
243544
  // don't use trailing points that match start point.
243414
243545
  let numPointsToUse = points.length;
243415
243546
  while (numPointsToUse > 1 && _Geometry__WEBPACK_IMPORTED_MODULE_8__.Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, numPointsToUse - 1)))
@@ -243421,10 +243552,12 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243421
243552
  params = undefined;
243422
243553
  if (colors && colors.length < numPointsToUse)
243423
243554
  colors = undefined;
243555
+ if (edgeVisible && edgeVisible.length < numPointsToUse)
243556
+ edgeVisible = undefined;
243424
243557
  if (!this._reversed) {
243425
243558
  for (let i = 0; i < numPointsToUse; i++) {
243426
243559
  index = this.findOrAddPointInGrowableXYZArray(points, i);
243427
- this._polyface.addPointIndex(index);
243560
+ this._polyface.addPointIndex(index, edgeVisible ? edgeVisible[i] : true);
243428
243561
  if (normals) {
243429
243562
  index = this.findOrAddNormalInGrowableXYZArray(normals, i);
243430
243563
  this._polyface.addNormalIndex(index);
@@ -243463,7 +243596,7 @@ class PolyfaceBuilder extends _geometry3d_GeometryHandler__WEBPACK_IMPORTED_MODU
243463
243596
  * * indices are added (in reverse order if indicated by the builder state)
243464
243597
  */
243465
243598
  addFacetFromVisitor(visitor) {
243466
- this.addFacetFromGrowableArrays(visitor.point, visitor.normal, visitor.param, visitor.color);
243599
+ this.addFacetFromGrowableArrays(visitor.point, visitor.normal, visitor.param, visitor.color, visitor.edgeVisible);
243467
243600
  }
243468
243601
  /** Add a polyface, with optional reverse and transform. */
243469
243602
  addIndexedPolyface(source, reversed, transform) {
@@ -245065,29 +245198,36 @@ __webpack_require__.r(__webpack_exports__);
245065
245198
  /* harmony export */ "DuplicateFacetClusterSelector": () => (/* binding */ DuplicateFacetClusterSelector),
245066
245199
  /* harmony export */ "PolyfaceQuery": () => (/* binding */ PolyfaceQuery)
245067
245200
  /* harmony export */ });
245201
+ /* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
245068
245202
  /* harmony import */ var _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../curve/CurveCollection */ "../../core/geometry/lib/esm/curve/CurveCollection.js");
245203
+ /* harmony import */ var _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/internalContexts/MultiChainCollector */ "../../core/geometry/lib/esm/curve/internalContexts/MultiChainCollector.js");
245069
245204
  /* harmony import */ var _curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
245070
245205
  /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
245071
245206
  /* harmony import */ var _curve_Loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../curve/Loop */ "../../core/geometry/lib/esm/curve/Loop.js");
245072
- /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
245207
+ /* harmony import */ var _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../curve/StrokeOptions */ "../../core/geometry/lib/esm/curve/StrokeOptions.js");
245073
245208
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
245074
245209
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
245210
+ /* harmony import */ var _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry3d/FrameBuilder */ "../../core/geometry/lib/esm/geometry3d/FrameBuilder.js");
245075
245211
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
245076
245212
  /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
245077
- /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
245213
+ /* harmony import */ var _geometry3d_Range__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../geometry3d/Range */ "../../core/geometry/lib/esm/geometry3d/Range.js");
245078
245214
  /* harmony import */ var _geometry4d_Matrix4d__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry4d/Matrix4d */ "../../core/geometry/lib/esm/geometry4d/Matrix4d.js");
245079
245215
  /* harmony import */ var _geometry4d_MomentData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry4d/MomentData */ "../../core/geometry/lib/esm/geometry4d/MomentData.js");
245080
245216
  /* harmony import */ var _numerics_UnionFind__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../numerics/UnionFind */ "../../core/geometry/lib/esm/numerics/UnionFind.js");
245081
- /* harmony import */ var _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../topology/ChainMerge */ "../../core/geometry/lib/esm/topology/ChainMerge.js");
245082
- /* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
245217
+ /* harmony import */ var _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../topology/ChainMerge */ "../../core/geometry/lib/esm/topology/ChainMerge.js");
245218
+ /* harmony import */ var _topology_Graph__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../topology/Graph */ "../../core/geometry/lib/esm/topology/Graph.js");
245219
+ /* harmony import */ var _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../topology/HalfEdgeGraphSearch */ "../../core/geometry/lib/esm/topology/HalfEdgeGraphSearch.js");
245220
+ /* harmony import */ var _topology_Merging__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../topology/Merging */ "../../core/geometry/lib/esm/topology/Merging.js");
245221
+ /* harmony import */ var _FacetOrientation__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./FacetOrientation */ "../../core/geometry/lib/esm/polyface/FacetOrientation.js");
245083
245222
  /* harmony import */ var _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./IndexedEdgeMatcher */ "../../core/geometry/lib/esm/polyface/IndexedEdgeMatcher.js");
245084
245223
  /* harmony import */ var _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./IndexedPolyfaceVisitor */ "../../core/geometry/lib/esm/polyface/IndexedPolyfaceVisitor.js");
245085
- /* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
245224
+ /* harmony import */ var _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./multiclip/BuildAverageNormalsContext */ "../../core/geometry/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js");
245086
245225
  /* harmony import */ var _multiclip_SweepLineStringToFacetContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./multiclip/SweepLineStringToFacetContext */ "../../core/geometry/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js");
245087
- /* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
245226
+ /* harmony import */ var _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./multiclip/XYPointBuckets */ "../../core/geometry/lib/esm/polyface/multiclip/XYPointBuckets.js");
245088
245227
  /* harmony import */ var _Polyface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
245089
245228
  /* harmony import */ var _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./PolyfaceBuilder */ "../../core/geometry/lib/esm/polyface/PolyfaceBuilder.js");
245090
- /* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
245229
+ /* harmony import */ var _RangeLengthData__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./RangeLengthData */ "../../core/geometry/lib/esm/polyface/RangeLengthData.js");
245230
+ /* harmony import */ var _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../topology/SpaceTriangulation */ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js");
245091
245231
  /*---------------------------------------------------------------------------------------------
245092
245232
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
245093
245233
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -245112,6 +245252,13 @@ __webpack_require__.r(__webpack_exports__);
245112
245252
 
245113
245253
 
245114
245254
 
245255
+
245256
+
245257
+
245258
+
245259
+
245260
+
245261
+
245115
245262
 
245116
245263
 
245117
245264
 
@@ -245346,15 +245493,39 @@ class PolyfaceQuery {
245346
245493
  return badClusters.length === 0;
245347
245494
  }
245348
245495
  /**
245349
- * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.
245350
- * If not, extract the boundary edges as lines.
245351
- * @param source
245352
- */
245496
+ * construct a CurveCollection containing boundary edges.
245497
+ * * each edge is a LineSegment3d
245498
+ * @param source polyface or visitor
245499
+ * @param includeDanglers true to in include typical boundary edges with a single incident facet
245500
+ * @param includeMismatch true to include edges with more than 2 incident facets
245501
+ * @param includeNull true to include edges with identical start and end vertex indices.
245502
+ * @returns
245503
+ */
245353
245504
  static boundaryEdges(source, includeDanglers = true, includeMismatch = true, includeNull = true) {
245505
+ const result = new _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves();
245506
+ const announceEdge = (pointA, pointB, _indexA, _indexB, _readIndex) => {
245507
+ result.tryAddChild(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d.create(pointA, pointB));
245508
+ };
245509
+ PolyfaceQuery.announceBoundaryEdges(source, announceEdge, includeDanglers, includeMismatch, includeNull);
245510
+ if (result.children.length === 0)
245511
+ return undefined;
245512
+ return result;
245513
+ }
245514
+ /**
245515
+ * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.
245516
+ * If not, extract the boundary edges as lines.
245517
+ * @param source polyface or visitor
245518
+ * @param announceEdge function to be called with each boundary edge. The announcement is start and end points, start and end indices, and facet index.
245519
+ * @param includeDanglers true to in include typical boundary edges with a single incident facet
245520
+ * @param includeMismatch true to include edges with more than 2 incident facets
245521
+ * @param includeNull true to include edges with identical start and end vertex indices.
245522
+ */
245523
+ static announceBoundaryEdges(source, announceEdge, includeDanglers = true, includeMismatch = true, includeNull = true) {
245354
245524
  if (source === undefined)
245355
245525
  return undefined;
245356
245526
  const edges = new _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_9__.IndexedEdgeMatcher();
245357
245527
  const visitor = source instanceof _Polyface__WEBPACK_IMPORTED_MODULE_3__.Polyface ? source.createVisitor(1) : source;
245528
+ visitor.setNumWrap(1);
245358
245529
  visitor.reset();
245359
245530
  while (visitor.moveToNextFacet()) {
245360
245531
  const numEdges = visitor.pointCount - 1;
@@ -245376,7 +245547,6 @@ class PolyfaceQuery {
245376
245547
  if (badList.length === 0)
245377
245548
  return undefined;
245378
245549
  const sourcePolyface = visitor.clientPolyface();
245379
- const result = new _curve_CurveCollection__WEBPACK_IMPORTED_MODULE_2__.BagOfCurves();
245380
245550
  for (const list of badList) {
245381
245551
  for (const e of list) {
245382
245552
  const e1 = e instanceof _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_9__.SortableEdge ? e : e[0];
@@ -245385,10 +245555,9 @@ class PolyfaceQuery {
245385
245555
  const pointA = sourcePolyface.data.getPoint(indexA);
245386
245556
  const pointB = sourcePolyface.data.getPoint(indexB);
245387
245557
  if (pointA && pointB)
245388
- result.tryAddChild(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d.create(pointA, pointB));
245558
+ announceEdge(pointA, pointB, indexA, indexB, visitor.currentReadIndex());
245389
245559
  }
245390
245560
  }
245391
- return result;
245392
245561
  }
245393
245562
  /** Find segments (within the linestring) which project to facets.
245394
245563
  * * Announce each pair of linestring segment and on-facet segment through a callback.
@@ -245531,16 +245700,131 @@ class PolyfaceQuery {
245531
245700
  const visitor = _IndexedPolyfaceVisitor__WEBPACK_IMPORTED_MODULE_14__.IndexedPolyfaceSubsetVisitor.createSubsetVisitor(polyface, partitionedIndices[visibilitySelect], 1);
245532
245701
  return this.boundaryEdges(visitor, true, false, false);
245533
245702
  }
245534
- /** Clone the facets in each partition to a separate polyface.
245535
- *
245703
+ /**
245704
+ * Search for edges with only 1 incident facet.
245705
+ * * chain them into loops
245706
+ * * emit the loops to the announceLoop function
245707
+ * @param mesh
245708
+ */
245709
+ static announceBoundaryChainsAsLineString3d(mesh, announceLoop) {
245710
+ const collector = new _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__.MultiChainCollector(_Geometry__WEBPACK_IMPORTED_MODULE_5__.Geometry.smallMetricDistance, 1000);
245711
+ PolyfaceQuery.announceBoundaryEdges(mesh, (pointA, pointB, _indexA, _indexB) => collector.captureCurve(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d.create(pointA, pointB)), true, false, false);
245712
+ collector.announceChainsAsLineString3d(announceLoop);
245713
+ }
245714
+ /**
245715
+ * Return a mesh with
245716
+ * * clusters of adjacent, coplanar facets merged into larger facets.
245717
+ * * other facets included unchanged.
245718
+ * @param mesh existing mesh
245719
+ * @returns
245720
+ */
245721
+ static cloneWithMaximalPlanarFacets(mesh) {
245722
+ PolyfaceQuery.markPairedEdgesInvisible(mesh, _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_13__.Angle.createRadians(_Geometry__WEBPACK_IMPORTED_MODULE_5__.Geometry.smallAngleRadians));
245723
+ const partitions = PolyfaceQuery.partitionFacetIndicesByEdgeConnectedComponent(mesh, true);
245724
+ const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
245725
+ const visitor = mesh.createVisitor(0);
245726
+ const planarPartitions = [];
245727
+ for (const partition of partitions) {
245728
+ if (partition.length === 1) {
245729
+ if (visitor.moveToReadIndex(partition[0]))
245730
+ builder.addFacetFromVisitor(visitor);
245731
+ }
245732
+ else {
245733
+ // This is a non-trivial set of contiguous coplanar facets
245734
+ planarPartitions.push(partition);
245735
+ }
245736
+ }
245737
+ const fragmentPolyfaces = PolyfaceQuery.clonePartitions(mesh, planarPartitions);
245738
+ const gapTolerance = 1.0e-4;
245739
+ const planarityTolerance = 1.0e-4;
245740
+ for (const fragment of fragmentPolyfaces) {
245741
+ const edges = [];
245742
+ const edgeStrings = [];
245743
+ PolyfaceQuery.announceBoundaryEdges(fragment, (pointA, pointB, _indexA, _indexB) => {
245744
+ edges.push(_curve_LineSegment3d__WEBPACK_IMPORTED_MODULE_10__.LineSegment3d.create(pointA, pointB));
245745
+ edgeStrings.push([pointA.clone(), pointB.clone()]);
245746
+ });
245747
+ const chains = _curve_internalContexts_MultiChainCollector__WEBPACK_IMPORTED_MODULE_15__.OffsetHelpers.collectChains(edges, gapTolerance, planarityTolerance);
245748
+ if (chains) {
245749
+ const frameBuilder = new _geometry3d_FrameBuilder__WEBPACK_IMPORTED_MODULE_17__.FrameBuilder();
245750
+ frameBuilder.announce(chains);
245751
+ const frame = frameBuilder.getValidatedFrame(false);
245752
+ if (frame !== undefined) {
245753
+ const inverseFrame = frame.inverse();
245754
+ if (inverseFrame !== undefined) {
245755
+ inverseFrame.multiplyPoint3dArrayArrayInPlace(edgeStrings);
245756
+ const graph = _topology_Merging__WEBPACK_IMPORTED_MODULE_18__.HalfEdgeGraphMerge.formGraphFromChains(edgeStrings, true, _topology_Graph__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeMask.BOUNDARY_EDGE);
245757
+ if (graph) {
245758
+ _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeGraphSearch.collectConnectedComponentsWithExteriorParityMasks(graph, new _topology_HalfEdgeGraphSearch__WEBPACK_IMPORTED_MODULE_20__.HalfEdgeMaskTester(_topology_Graph__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeMask.BOUNDARY_EDGE), _topology_Graph__WEBPACK_IMPORTED_MODULE_19__.HalfEdgeMask.EXTERIOR);
245759
+ // this.purgeNullFaces(HalfEdgeMask.EXTERIOR);
245760
+ const polyface1 = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.graphToPolyface(graph);
245761
+ builder.addIndexedPolyface(polyface1, false, frame);
245762
+ }
245763
+ }
245764
+ }
245765
+ }
245766
+ }
245767
+ return builder.claimPolyface(true);
245768
+ }
245769
+ /**
245770
+ * Return a mesh with "some" holes filled in with new facets.
245771
+ * * The candidates to be filled are all loops returned by boundaryChainsAsLineString3d
245772
+ * * unclosed chains are rejected.
245773
+ * * optionally also copy the original mesh, so the composite is a clone with holes filled.
245774
+ * * The options structure enforces restrictions on how complicated the hole filling can be:
245775
+ * * maxEdgesAroundHole -- holes with more edges are skipped
245776
+ * * maxPerimeter -- holes with larger summed edge lengths are skipped.
245777
+ * * upVector -- holes that do not have positive area along this view are skipped.
245778
+ * * includeOriginalMesh -- includes the original mesh in the output mesh.
245779
+ * @param mesh existing mesh
245780
+ * @param options options controlling the hole fill.
245781
+ * @param unfilledChains optional array to receive the points around holes that were not filled.
245782
+ * @returns
245536
245783
  */
245784
+ static fillSimpleHoles(mesh, options, unfilledChains) {
245785
+ if (mesh instanceof _Polyface__WEBPACK_IMPORTED_MODULE_3__.IndexedPolyface)
245786
+ return this.fillSimpleHoles(mesh.createVisitor(0), options, unfilledChains);
245787
+ const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
245788
+ const chains = [];
245789
+ PolyfaceQuery.announceBoundaryChainsAsLineString3d(mesh, (ls) => { ls.reverseInPlace(); chains.push(ls); });
245790
+ for (const c of chains) {
245791
+ const points = c.points;
245792
+ let rejected = false;
245793
+ if (!c.isPhysicallyClosed)
245794
+ rejected = true;
245795
+ else if (options.maxEdgesAroundHole !== undefined && points.length > options.maxEdgesAroundHole)
245796
+ rejected = true;
245797
+ else if (options.maxPerimeter !== undefined && _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_21__.Point3dArray.sumEdgeLengths(points, false) > options.maxPerimeter)
245798
+ rejected = true;
245799
+ else if (options.upVector !== undefined && _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_4__.PolygonOps.sumTriangleAreasPerpendicularToUpVector(points, options.upVector) <= 0.0)
245800
+ rejected = true;
245801
+ if (!rejected && _topology_SpaceTriangulation__WEBPACK_IMPORTED_MODULE_22__.SpacePolygonTriangulation.triangulateSimplestSpaceLoop(points, (_loop, triangles) => {
245802
+ for (const t of triangles)
245803
+ builder.addPolygon(t);
245804
+ })) {
245805
+ }
245806
+ else {
245807
+ rejected = true;
245808
+ }
245809
+ if (rejected && unfilledChains !== undefined)
245810
+ unfilledChains.push(c); // yes, capture it -- this scope owns the chains and has no further use for it.
245811
+ }
245812
+ if (options.includeOriginalMesh !== undefined && options.includeOriginalMesh) {
245813
+ for (mesh.reset(); mesh.moveToNextFacet();)
245814
+ builder.addFacetFromVisitor(mesh);
245815
+ }
245816
+ return builder.claimPolyface(true);
245817
+ }
245818
+ /** Clone the facets in each partition to a separate polyface.
245819
+ *
245820
+ */
245537
245821
  static clonePartitions(polyface, partitions) {
245538
245822
  if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_3__.Polyface) {
245539
245823
  return this.clonePartitions(polyface.createVisitor(0), partitions);
245540
245824
  }
245541
245825
  polyface.setNumWrap(0);
245542
245826
  const polyfaces = [];
245543
- const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_15__.StrokeOptions.createForFacets();
245827
+ const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_23__.StrokeOptions.createForFacets();
245544
245828
  options.needNormals = polyface.normal !== undefined;
245545
245829
  options.needParams = polyface.param !== undefined;
245546
245830
  options.needColors = polyface.color !== undefined;
@@ -245563,7 +245847,7 @@ class PolyfaceQuery {
245563
245847
  return this.cloneFiltered(source.createVisitor(0), filter);
245564
245848
  }
245565
245849
  source.setNumWrap(0);
245566
- const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_15__.StrokeOptions.createForFacets();
245850
+ const options = _curve_StrokeOptions__WEBPACK_IMPORTED_MODULE_23__.StrokeOptions.createForFacets();
245567
245851
  options.needNormals = source.normal !== undefined;
245568
245852
  options.needParams = source.param !== undefined;
245569
245853
  options.needColors = source.color !== undefined;
@@ -245595,9 +245879,9 @@ class PolyfaceQuery {
245595
245879
  /** Search the facets for facet subsets that are connected with at least edge contact.
245596
245880
  * * Return array of arrays of facet indices.
245597
245881
  */
245598
- static partitionFacetIndicesByEdgeConnectedComponent(polyface) {
245882
+ static partitionFacetIndicesByEdgeConnectedComponent(polyface, stopAtVisibleEdges = false) {
245599
245883
  if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_3__.Polyface) {
245600
- return this.partitionFacetIndicesByEdgeConnectedComponent(polyface.createVisitor(0));
245884
+ return this.partitionFacetIndicesByEdgeConnectedComponent(polyface.createVisitor(0), stopAtVisibleEdges);
245601
245885
  }
245602
245886
  polyface.setNumWrap(1);
245603
245887
  const matcher = new _IndexedEdgeMatcher__WEBPACK_IMPORTED_MODULE_9__.IndexedEdgeMatcher();
@@ -245607,7 +245891,11 @@ class PolyfaceQuery {
245607
245891
  const numEdges = polyface.pointCount - 1;
245608
245892
  numFacets++;
245609
245893
  for (let i = 0; i < numEdges; i++) {
245610
- matcher.addEdge(polyface.clientPointIndex(i), polyface.clientPointIndex(i + 1), polyface.currentReadIndex());
245894
+ if (stopAtVisibleEdges && polyface.edgeVisible[i]) {
245895
+ }
245896
+ else {
245897
+ matcher.addEdge(polyface.clientPointIndex(i), polyface.clientPointIndex(i + 1), polyface.currentReadIndex());
245898
+ }
245611
245899
  }
245612
245900
  }
245613
245901
  const allEdges = [];
@@ -245668,7 +245956,7 @@ class PolyfaceQuery {
245668
245956
  * * Return chains.
245669
245957
  */
245670
245958
  static sweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
245671
- const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_17__.ChainMergeContext.create();
245959
+ const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_24__.ChainMergeContext.create();
245672
245960
  this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
245673
245961
  chainContext.addSegment(points[indexA], points[indexB]);
245674
245962
  });
@@ -245682,7 +245970,7 @@ class PolyfaceQuery {
245682
245970
  * * Return chains.
245683
245971
  */
245684
245972
  static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
245685
- const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_17__.ChainMergeContext.create();
245973
+ const chainContext = _topology_ChainMerge__WEBPACK_IMPORTED_MODULE_24__.ChainMergeContext.create();
245686
245974
  await Promise.resolve(this.asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
245687
245975
  chainContext.addSegment(points[indexA], points[indexB]);
245688
245976
  }));
@@ -245698,7 +245986,7 @@ class PolyfaceQuery {
245698
245986
  if (polyface instanceof _Polyface__WEBPACK_IMPORTED_MODULE_3__.Polyface) {
245699
245987
  return this.collectRangeLengthData(polyface.createVisitor(0));
245700
245988
  }
245701
- const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_18__.RangeLengthData();
245989
+ const rangeData = new _RangeLengthData__WEBPACK_IMPORTED_MODULE_25__.RangeLengthData();
245702
245990
  // polyface is a visitor ...
245703
245991
  for (polyface.reset(); polyface.moveToNextFacet();)
245704
245992
  rangeData.accumulateGrowableXYZArrayRange(polyface.point);
@@ -245710,9 +245998,9 @@ class PolyfaceQuery {
245710
245998
  static cloneWithTVertexFixup(polyface) {
245711
245999
  const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.
245712
246000
  const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.
245713
- const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_19__.XYPointBuckets.create(polyface.data.point, 30);
246001
+ const rangeSearcher = _multiclip_XYPointBuckets__WEBPACK_IMPORTED_MODULE_26__.XYPointBuckets.create(polyface.data.point, 30);
245714
246002
  const builder = _PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_16__.PolyfaceBuilder.create();
245715
- const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_20__.Range3d.createNull();
246003
+ const edgeRange = _geometry3d_Range__WEBPACK_IMPORTED_MODULE_27__.Range3d.createNull();
245716
246004
  const point0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
245717
246005
  const point1 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
245718
246006
  const spacePoint = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__.Point3d.create();
@@ -245751,7 +246039,7 @@ class PolyfaceQuery {
245751
246039
  }
245752
246040
  }
245753
246041
  }
245754
- builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color);
246042
+ builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color, newFacetVisitor.edgeVisible);
245755
246043
  }
245756
246044
  return builder.claimPolyface();
245757
246045
  }
@@ -245906,7 +246194,7 @@ class PolyfaceQuery {
245906
246194
  }
245907
246195
  }
245908
246196
  if (newFacetVisitor.point.length > 2)
245909
- builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color);
246197
+ builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color, newFacetVisitor.edgeVisible);
245910
246198
  }
245911
246199
  return builder.claimPolyface();
245912
246200
  }
@@ -246022,14 +246310,14 @@ class PolyfaceQuery {
246022
246310
  * @param mesh
246023
246311
  */
246024
246312
  static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh) {
246025
- return _FacetOrientation__WEBPACK_IMPORTED_MODULE_21__.FacetOrientationFixup.doFixup(mesh);
246313
+ return _FacetOrientation__WEBPACK_IMPORTED_MODULE_28__.FacetOrientationFixup.doFixup(mesh);
246026
246314
  }
246027
246315
  /**
246028
246316
  * Set up indexed normals with one normal in the plane of each facet of the mesh.
246029
246317
  * @param polyface
246030
246318
  */
246031
246319
  static buildPerFaceNormals(polyface) {
246032
- _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_22__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
246320
+ _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_29__.BuildAverageNormalsContext.buildPerFaceNormals(polyface);
246033
246321
  }
246034
246322
  /**
246035
246323
  * * At each vertex of the mesh
@@ -246042,7 +246330,7 @@ class PolyfaceQuery {
246042
246330
  * @param toleranceAngle averaging is done between normals up to this angle.
246043
246331
  */
246044
246332
  static buildAverageNormals(polyface, toleranceAngle = _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_13__.Angle.createDegrees(31.0)) {
246045
- _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_22__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
246333
+ _multiclip_BuildAverageNormalsContext__WEBPACK_IMPORTED_MODULE_29__.BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);
246046
246334
  }
246047
246335
  }
246048
246336
  // amount of computation to do per step of async methods.
@@ -256617,6 +256905,37 @@ class Sample {
256617
256905
  point0.push(point0[0].clone());
256618
256906
  return point0;
256619
256907
  }
256908
+ /**
256909
+ * Create a mesh with
256910
+ * * xy facets are 1x1 quads starting at origin
256911
+ * * acceptFunction is called to accept or reject each quad's lower left xy coordinates
256912
+ * @param xzPoints array of points in the xz plane. Expected to have increasing x and all integer coordinates.
256913
+ * @param ySweep distance to sweep in y direction
256914
+ * @param acceptFunction (x0: number, y0: number)=> boolean
256915
+ */
256916
+ static sweepXZLineStringToMeshWithHoles(xzPoints, ySweep, acceptFunction) {
256917
+ const builder = _polyface_PolyfaceBuilder__WEBPACK_IMPORTED_MODULE_48__.PolyfaceBuilder.create();
256918
+ for (let i0 = 0; i0 + 1 < xzPoints.length; i0++) {
256919
+ const x0 = xzPoints[i0][0];
256920
+ const z0 = xzPoints[i0][1];
256921
+ const i1 = i0 + 1;
256922
+ const x1 = xzPoints[i1][0];
256923
+ const z1 = xzPoints[i1][1];
256924
+ for (let xA = x0; xA + 1 <= x1; xA++) {
256925
+ const xB = xA + 1;
256926
+ const sA = (xA - x0) / (x1 - x0);
256927
+ const sB = (xB - x0) / (x1 - x0);
256928
+ const zA = _Geometry__WEBPACK_IMPORTED_MODULE_5__.Geometry.interpolate(z0, sA, z1);
256929
+ const zB = _Geometry__WEBPACK_IMPORTED_MODULE_5__.Geometry.interpolate(z0, sB, z1);
256930
+ for (let yC = 0; yC + 1 <= ySweep; yC++) {
256931
+ const yD = yC + 1;
256932
+ if (acceptFunction(xA, yC))
256933
+ builder.addPolygon([_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xA, yC, zA), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xB, yC, zB), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xB, yD, zB), _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(xA, yD, zA)]);
256934
+ }
256935
+ }
256936
+ }
256937
+ return builder.claimPolyface(true);
256938
+ }
256620
256939
  }
256621
256940
  /** Array with assorted Point2d samples */
256622
256941
  Sample.point2d = [
@@ -264676,6 +264995,156 @@ class SignedDataSummary {
264676
264995
  }
264677
264996
 
264678
264997
 
264998
+ /***/ }),
264999
+
265000
+ /***/ "../../core/geometry/lib/esm/topology/SpaceTriangulation.js":
265001
+ /*!******************************************************************!*\
265002
+ !*** ../../core/geometry/lib/esm/topology/SpaceTriangulation.js ***!
265003
+ \******************************************************************/
265004
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
265005
+
265006
+ "use strict";
265007
+ __webpack_require__.r(__webpack_exports__);
265008
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
265009
+ /* harmony export */ "SpacePolygonTriangulation": () => (/* binding */ SpacePolygonTriangulation)
265010
+ /* harmony export */ });
265011
+ /* harmony import */ var _curve_LineString3d__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../curve/LineString3d */ "../../core/geometry/lib/esm/curve/LineString3d.js");
265012
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
265013
+ /* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
265014
+ /* harmony import */ var _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/PolygonOps */ "../../core/geometry/lib/esm/geometry3d/PolygonOps.js");
265015
+ /* harmony import */ var _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/PolylineOps */ "../../core/geometry/lib/esm/geometry3d/PolylineOps.js");
265016
+ /*---------------------------------------------------------------------------------------------
265017
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
265018
+ * See LICENSE.md in the project root for license terms and full copyright notice.
265019
+ *--------------------------------------------------------------------------------------------*/
265020
+ /** @packageDocumentation
265021
+ * @module Topology
265022
+ */
265023
+
265024
+
265025
+
265026
+
265027
+
265028
+ /**
265029
+ * Class with static methods to triangulate various forms of possibly non-planar polygons.
265030
+ * @public
265031
+ */
265032
+ class SpacePolygonTriangulation {
265033
+ /**
265034
+ * * Return a number which is:
265035
+ * * 0 for collapsed (zero area) triangle
265036
+ * * positive for non-zero area
265037
+ * * larger is "better"
265038
+ * * Specifically, return (if well defined) the area divided by summed squares of edge lengths.
265039
+ * @param point0
265040
+ * @param point1
265041
+ * @param point2
265042
+ */
265043
+ static spaceTriangleAspectRatio(point0, point1, point2) {
265044
+ const crossProduct = point0.crossProductToPoints(point1, point2);
265045
+ const area = 0.5 * crossProduct.magnitude();
265046
+ const summedEdgeSquares = point0.distanceSquared(point1) + point1.distanceSquared(point2) + point2.distanceSquared(point0);
265047
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(area, summedEdgeSquares, 0.0);
265048
+ }
265049
+ /**
265050
+ * * Treat a space quad as two triangles with interior diagonal from point0 to point2
265051
+ * * Return the smaller of the aspect ratios of the two triangles.
265052
+ * * The quad edges proceed in the order [point0, point1, point2, point3]
265053
+ * @param point0 first point of quad
265054
+ * @param point1 second point of quad (diagonally opposite of point3)
265055
+ * @param point2 third point (diagonally opposite point0)
265056
+ * @param point3 fourth point
265057
+ */
265058
+ static spaceQuadDiagonalAspectRatio(point0, point1, point2, point3) {
265059
+ const q012 = this.spaceTriangleAspectRatio(point0, point1, point2);
265060
+ const q023 = this.spaceTriangleAspectRatio(point0, point2, point3);
265061
+ return Math.max(q012, q023);
265062
+ }
265063
+ /** "Triangulate" by cutting of the ear with best aspect ratio. Reject if successive normals have negative dot product with PolygonOps.AreaNormal */
265064
+ static triangulateGreedyEarCut(points, announceLoopAndTriangles) {
265065
+ const normalA = _geometry3d_PolygonOps__WEBPACK_IMPORTED_MODULE_1__.PolygonOps.areaNormal(points);
265066
+ const triangles = [];
265067
+ const myPoints = points.slice();
265068
+ _geometry3d_PolylineOps__WEBPACK_IMPORTED_MODULE_2__.PolylineOps.removeClosurePoint(myPoints);
265069
+ // first pass deals with entire array.
265070
+ // each pass lops off one point.
265071
+ for (; myPoints.length > 2;) {
265072
+ // Find the ear candidate whose cross product vector has largest dot product (large area, best alignment with overall).
265073
+ let bestRatio = -1.0;
265074
+ let bestRatioIndex0 = 0;
265075
+ let i0 = myPoints.length - 2;
265076
+ let i1 = myPoints.length - 1;
265077
+ let i2;
265078
+ for (i2 = 0; i2 < myPoints.length; i0 = i1, i1 = i2, i2++) {
265079
+ const ratio = this.spaceTriangleAspectRatio(myPoints[i0], myPoints[i1], myPoints[i2]);
265080
+ const normalB = myPoints[i0].crossProductToPoints(myPoints[i1], myPoints[i2]);
265081
+ if (normalB.dotProduct(normalA) > 0 && ratio > bestRatio) {
265082
+ bestRatio = ratio;
265083
+ bestRatioIndex0 = i0;
265084
+ }
265085
+ }
265086
+ if (bestRatio <= 0.0)
265087
+ return false;
265088
+ // add the ear to the result
265089
+ i0 = bestRatioIndex0;
265090
+ i1 = (i0 + 1) % myPoints.length;
265091
+ i2 = (i1 + 1) % myPoints.length;
265092
+ const t = [];
265093
+ t.push(myPoints[i0], myPoints[i1], myPoints[i2]);
265094
+ // remove the middle point
265095
+ myPoints.splice(i1, 1);
265096
+ triangles.push(t);
265097
+ }
265098
+ announceLoopAndTriangles(points, triangles);
265099
+ return true;
265100
+ }
265101
+ static triangulateSimplestSpaceLoopGo(points, announceLoopAndTriangles, maxPerimeter) {
265102
+ const n = _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_3__.Point3dArray.countNonDuplicates(points);
265103
+ if (maxPerimeter !== undefined && _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_3__.Point3dArray.sumEdgeLengths(points, true, n) > maxPerimeter)
265104
+ return false;
265105
+ if (n < 3)
265106
+ return false;
265107
+ if (n === 3) {
265108
+ if (this.spaceTriangleAspectRatio(points[0], points[1], points[2]) === 0)
265109
+ return false;
265110
+ // already a triangle . . .
265111
+ announceLoopAndTriangles(points, [points.slice()]);
265112
+ return true;
265113
+ }
265114
+ if (n === 4) {
265115
+ const d02 = this.spaceQuadDiagonalAspectRatio(points[0], points[1], points[2], points[3]);
265116
+ const d13 = this.spaceQuadDiagonalAspectRatio(points[1], points[2], points[3], points[0]);
265117
+ if (d02 === 0.0 && d13 === 0.0)
265118
+ return false;
265119
+ // announce the two triangles with better aspect ratios ....
265120
+ if (d02 > d13) {
265121
+ announceLoopAndTriangles(points, [[points[0], points[1], points[2]], [points[2], points[3], points[0]]]);
265122
+ return true;
265123
+ }
265124
+ else {
265125
+ announceLoopAndTriangles(points, [[points[0], points[1], points[3]], [points[3], points[1], points[2]]]);
265126
+ return true;
265127
+ }
265128
+ }
265129
+ return this.triangulateGreedyEarCut(points, announceLoopAndTriangles);
265130
+ }
265131
+ /**
265132
+ * * Emit triangles for a (possibly non-planar) loop for various simple cases:
265133
+ * * only 3 points: just emit that triangle.
265134
+ * * only 4 points: split across a diagonal, choosing the one with better aspect ratios of its two triangles.
265135
+ * * BUT
265136
+ * * do not complete the triangulation if perimeter is larger than maxPerimeter (i.e. only consider small areas)
265137
+ * * Hence it is expected that the caller will use this as the first attempt, possibly followed by calls to other more adventurous methods.
265138
+ */
265139
+ static triangulateSimplestSpaceLoop(loop, announceLoopAndTriangles, maxPerimeter) {
265140
+ if (loop instanceof _curve_LineString3d__WEBPACK_IMPORTED_MODULE_4__.LineString3d)
265141
+ return this.triangulateSimplestSpaceLoopGo(loop.points, announceLoopAndTriangles, maxPerimeter);
265142
+ // (array case by exhaustion)
265143
+ return this.triangulateSimplestSpaceLoopGo(loop, announceLoopAndTriangles, maxPerimeter);
265144
+ }
265145
+ }
265146
+
265147
+
264679
265148
  /***/ }),
264680
265149
 
264681
265150
  /***/ "../../core/geometry/lib/esm/topology/Triangulation.js":
@@ -287219,7 +287688,7 @@ class TestContext {
287219
287688
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
287220
287689
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${(_a = process.env.IMJS_URL_PREFIX) !== null && _a !== void 0 ? _a : ""}api.bentley.com/imodels` } });
287221
287690
  await core_frontend_1.NoRenderApp.startup({
287222
- applicationVersion: "3.4.0-dev.33",
287691
+ applicationVersion: "3.4.0-dev.36",
287223
287692
  applicationId: this.settings.gprid,
287224
287693
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
287225
287694
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -287320,85 +287789,86 @@ describe("Basic Scenarios", async () => {
287320
287789
  __webpack_require__.r(__webpack_exports__);
287321
287790
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
287322
287791
  /* harmony export */ "AsyncTasksTracker": () => (/* reexport safe */ _presentation_common_AsyncTasks__WEBPACK_IMPORTED_MODULE_0__.AsyncTasksTracker),
287323
- /* harmony export */ "CategoryDescription": () => (/* reexport safe */ _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_17__.CategoryDescription),
287324
- /* harmony export */ "ChildNodeSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_ChildNodeSpecification__WEBPACK_IMPORTED_MODULE_33__.ChildNodeSpecificationTypes),
287792
+ /* harmony export */ "CategoryDescription": () => (/* reexport safe */ _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_18__.CategoryDescription),
287793
+ /* harmony export */ "ChildNodeSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_ChildNodeSpecification__WEBPACK_IMPORTED_MODULE_34__.ChildNodeSpecificationTypes),
287325
287794
  /* harmony export */ "ClassInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.ClassInfo),
287326
- /* harmony export */ "Content": () => (/* reexport safe */ _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_18__.Content),
287327
- /* harmony export */ "ContentFlags": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_19__.ContentFlags),
287328
- /* harmony export */ "ContentSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_content_ContentSpecification__WEBPACK_IMPORTED_MODULE_54__.ContentSpecificationTypes),
287795
+ /* harmony export */ "Content": () => (/* reexport safe */ _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_19__.Content),
287796
+ /* harmony export */ "ContentFlags": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_20__.ContentFlags),
287797
+ /* harmony export */ "ContentSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_content_ContentSpecification__WEBPACK_IMPORTED_MODULE_55__.ContentSpecificationTypes),
287329
287798
  /* harmony export */ "DEFAULT_KEYS_BATCH_SIZE": () => (/* reexport safe */ _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__.DEFAULT_KEYS_BATCH_SIZE),
287330
- /* harmony export */ "DefaultContentDisplayTypes": () => (/* reexport safe */ _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_20__.DefaultContentDisplayTypes),
287331
- /* harmony export */ "Descriptor": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_19__.Descriptor),
287799
+ /* harmony export */ "DefaultContentDisplayTypes": () => (/* reexport safe */ _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_21__.DefaultContentDisplayTypes),
287800
+ /* harmony export */ "Descriptor": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_20__.Descriptor),
287332
287801
  /* harmony export */ "DiagnosticsLogEntry": () => (/* reexport safe */ _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__.DiagnosticsLogEntry),
287333
- /* harmony export */ "DisplayValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_27__.DisplayValue),
287334
- /* harmony export */ "DisplayValueGroup": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_27__.DisplayValueGroup),
287802
+ /* harmony export */ "DisplayValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_28__.DisplayValue),
287803
+ /* harmony export */ "DisplayValueGroup": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_28__.DisplayValueGroup),
287335
287804
  /* harmony export */ "ExpandedNodeUpdateRecord": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.ExpandedNodeUpdateRecord),
287336
- /* harmony export */ "FIELD_NAMES_SEPARATOR": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.FIELD_NAMES_SEPARATOR),
287337
- /* harmony export */ "Field": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.Field),
287338
- /* harmony export */ "FieldDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.FieldDescriptor),
287339
- /* harmony export */ "FieldDescriptorType": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.FieldDescriptorType),
287340
- /* harmony export */ "GroupingSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_45__.GroupingSpecificationTypes),
287805
+ /* harmony export */ "FIELD_NAMES_SEPARATOR": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.FIELD_NAMES_SEPARATOR),
287806
+ /* harmony export */ "Field": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.Field),
287807
+ /* harmony export */ "FieldDescriptor": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.FieldDescriptor),
287808
+ /* harmony export */ "FieldDescriptorType": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.FieldDescriptorType),
287809
+ /* harmony export */ "GroupingSpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_46__.GroupingSpecificationTypes),
287341
287810
  /* harmony export */ "HierarchyCompareInfo": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.HierarchyCompareInfo),
287342
287811
  /* harmony export */ "HierarchyUpdateInfo": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.HierarchyUpdateInfo),
287343
287812
  /* harmony export */ "HierarchyUpdateRecord": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.HierarchyUpdateRecord),
287344
287813
  /* harmony export */ "InstanceKey": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.InstanceKey),
287345
- /* harmony export */ "InstanceLabelOverrideValueSpecificationType": () => (/* reexport safe */ _presentation_common_rules_customization_InstanceLabelOverride__WEBPACK_IMPORTED_MODULE_47__.InstanceLabelOverrideValueSpecificationType),
287346
- /* harmony export */ "Item": () => (/* reexport safe */ _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_23__.Item),
287814
+ /* harmony export */ "InstanceLabelOverrideValueSpecificationType": () => (/* reexport safe */ _presentation_common_rules_customization_InstanceLabelOverride__WEBPACK_IMPORTED_MODULE_48__.InstanceLabelOverrideValueSpecificationType),
287815
+ /* harmony export */ "Item": () => (/* reexport safe */ _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_24__.Item),
287347
287816
  /* harmony export */ "Key": () => (/* reexport safe */ _presentation_common_KeySet__WEBPACK_IMPORTED_MODULE_4__.Key),
287348
287817
  /* harmony export */ "KeySet": () => (/* reexport safe */ _presentation_common_KeySet__WEBPACK_IMPORTED_MODULE_4__.KeySet),
287349
287818
  /* harmony export */ "LabelCompositeValue": () => (/* reexport safe */ _presentation_common_LabelDefinition__WEBPACK_IMPORTED_MODULE_5__.LabelCompositeValue),
287350
287819
  /* harmony export */ "LabelDefinition": () => (/* reexport safe */ _presentation_common_LabelDefinition__WEBPACK_IMPORTED_MODULE_5__.LabelDefinition),
287820
+ /* harmony export */ "LocalizationHelper": () => (/* reexport safe */ _presentation_common_LocalizationHelper__WEBPACK_IMPORTED_MODULE_13__.LocalizationHelper),
287351
287821
  /* harmony export */ "NavigationPropertyInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.NavigationPropertyInfo),
287352
- /* harmony export */ "NestedContentField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.NestedContentField),
287353
- /* harmony export */ "NestedContentValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_27__.NestedContentValue),
287354
- /* harmony export */ "Node": () => (/* reexport safe */ _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_30__.Node),
287355
- /* harmony export */ "NodeKey": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_29__.NodeKey),
287356
- /* harmony export */ "NodePathElement": () => (/* reexport safe */ _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_31__.NodePathElement),
287357
- /* harmony export */ "NodePathFilteringData": () => (/* reexport safe */ _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_31__.NodePathFilteringData),
287822
+ /* harmony export */ "NestedContentField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.NestedContentField),
287823
+ /* harmony export */ "NestedContentValue": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_28__.NestedContentValue),
287824
+ /* harmony export */ "Node": () => (/* reexport safe */ _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_31__.Node),
287825
+ /* harmony export */ "NodeKey": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_30__.NodeKey),
287826
+ /* harmony export */ "NodePathElement": () => (/* reexport safe */ _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_32__.NodePathElement),
287827
+ /* harmony export */ "NodePathFilteringData": () => (/* reexport safe */ _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_32__.NodePathFilteringData),
287358
287828
  /* harmony export */ "PRESENTATION_COMMON_ROOT": () => (/* reexport safe */ _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__.PRESENTATION_COMMON_ROOT),
287359
287829
  /* harmony export */ "PRESENTATION_IPC_CHANNEL_NAME": () => (/* reexport safe */ _presentation_common_PresentationIpcInterface__WEBPACK_IMPORTED_MODULE_12__.PRESENTATION_IPC_CHANNEL_NAME),
287360
287830
  /* harmony export */ "PartialHierarchyModification": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.PartialHierarchyModification),
287361
287831
  /* harmony export */ "PresentationError": () => (/* reexport safe */ _presentation_common_Error__WEBPACK_IMPORTED_MODULE_3__.PresentationError),
287362
- /* harmony export */ "PresentationIpcEvents": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_13__.PresentationIpcEvents),
287363
- /* harmony export */ "PresentationRpcInterface": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_13__.PresentationRpcInterface),
287832
+ /* harmony export */ "PresentationIpcEvents": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_14__.PresentationIpcEvents),
287833
+ /* harmony export */ "PresentationRpcInterface": () => (/* reexport safe */ _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_14__.PresentationRpcInterface),
287364
287834
  /* harmony export */ "PresentationStatus": () => (/* reexport safe */ _presentation_common_Error__WEBPACK_IMPORTED_MODULE_3__.PresentationStatus),
287365
- /* harmony export */ "PropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.PropertiesField),
287366
- /* harmony export */ "Property": () => (/* reexport safe */ _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_24__.Property),
287367
- /* harmony export */ "PropertyEditorParameterTypes": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_PropertyEditorsSpecification__WEBPACK_IMPORTED_MODULE_61__.PropertyEditorParameterTypes),
287368
- /* harmony export */ "PropertyGroupingValue": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_45__.PropertyGroupingValue),
287835
+ /* harmony export */ "PropertiesField": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.PropertiesField),
287836
+ /* harmony export */ "Property": () => (/* reexport safe */ _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_25__.Property),
287837
+ /* harmony export */ "PropertyEditorParameterTypes": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_PropertyEditorsSpecification__WEBPACK_IMPORTED_MODULE_62__.PropertyEditorParameterTypes),
287838
+ /* harmony export */ "PropertyGroupingValue": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_46__.PropertyGroupingValue),
287369
287839
  /* harmony export */ "PropertyInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.PropertyInfo),
287370
- /* harmony export */ "PropertyValueFormat": () => (/* reexport safe */ _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_26__.PropertyValueFormat),
287371
- /* harmony export */ "QuerySpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_CustomQueryInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_35__.QuerySpecificationTypes),
287840
+ /* harmony export */ "PropertyValueFormat": () => (/* reexport safe */ _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_27__.PropertyValueFormat),
287841
+ /* harmony export */ "QuerySpecificationTypes": () => (/* reexport safe */ _presentation_common_rules_hierarchy_CustomQueryInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_36__.QuerySpecificationTypes),
287372
287842
  /* harmony export */ "RegisteredRuleset": () => (/* reexport safe */ _presentation_common_RegisteredRuleset__WEBPACK_IMPORTED_MODULE_7__.RegisteredRuleset),
287373
287843
  /* harmony export */ "RelatedClassInfo": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.RelatedClassInfo),
287374
287844
  /* harmony export */ "RelatedClassInfoWithOptionalRelationship": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.RelatedClassInfoWithOptionalRelationship),
287375
- /* harmony export */ "RelatedPropertiesSpecialValues": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_63__.RelatedPropertiesSpecialValues),
287376
- /* harmony export */ "RelationshipDirection": () => (/* reexport safe */ _presentation_common_rules_RelationshipDirection__WEBPACK_IMPORTED_MODULE_66__.RelationshipDirection),
287377
- /* harmony export */ "RelationshipMeaning": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_63__.RelationshipMeaning),
287845
+ /* harmony export */ "RelatedPropertiesSpecialValues": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_64__.RelatedPropertiesSpecialValues),
287846
+ /* harmony export */ "RelationshipDirection": () => (/* reexport safe */ _presentation_common_rules_RelationshipDirection__WEBPACK_IMPORTED_MODULE_67__.RelationshipDirection),
287847
+ /* harmony export */ "RelationshipMeaning": () => (/* reexport safe */ _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_64__.RelationshipMeaning),
287378
287848
  /* harmony export */ "RelationshipPath": () => (/* reexport safe */ _presentation_common_EC__WEBPACK_IMPORTED_MODULE_2__.RelationshipPath),
287379
- /* harmony export */ "RpcRequestsHandler": () => (/* reexport safe */ _presentation_common_RpcRequestsHandler__WEBPACK_IMPORTED_MODULE_14__.RpcRequestsHandler),
287380
- /* harmony export */ "RuleTypes": () => (/* reexport safe */ _presentation_common_rules_Rule__WEBPACK_IMPORTED_MODULE_68__.RuleTypes),
287849
+ /* harmony export */ "RpcRequestsHandler": () => (/* reexport safe */ _presentation_common_RpcRequestsHandler__WEBPACK_IMPORTED_MODULE_15__.RpcRequestsHandler),
287850
+ /* harmony export */ "RuleTypes": () => (/* reexport safe */ _presentation_common_rules_Rule__WEBPACK_IMPORTED_MODULE_69__.RuleTypes),
287381
287851
  /* harmony export */ "RulesetVariable": () => (/* reexport safe */ _presentation_common_RulesetVariables__WEBPACK_IMPORTED_MODULE_8__.RulesetVariable),
287382
287852
  /* harmony export */ "RulesetsFactory": () => (/* reexport safe */ _presentation_common_RulesetsFactory__WEBPACK_IMPORTED_MODULE_9__.RulesetsFactory),
287383
- /* harmony export */ "SameLabelInstanceGroupApplicationStage": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_45__.SameLabelInstanceGroupApplicationStage),
287384
- /* harmony export */ "SelectClassInfo": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_19__.SelectClassInfo),
287385
- /* harmony export */ "SortDirection": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_19__.SortDirection),
287386
- /* harmony export */ "StandardNodeTypes": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_29__.StandardNodeTypes),
287853
+ /* harmony export */ "SameLabelInstanceGroupApplicationStage": () => (/* reexport safe */ _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_46__.SameLabelInstanceGroupApplicationStage),
287854
+ /* harmony export */ "SelectClassInfo": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_20__.SelectClassInfo),
287855
+ /* harmony export */ "SortDirection": () => (/* reexport safe */ _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_20__.SortDirection),
287856
+ /* harmony export */ "StandardNodeTypes": () => (/* reexport safe */ _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_30__.StandardNodeTypes),
287387
287857
  /* harmony export */ "UPDATE_FULL": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.UPDATE_FULL),
287388
287858
  /* harmony export */ "UpdateInfo": () => (/* reexport safe */ _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__.UpdateInfo),
287389
- /* harmony export */ "Value": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_27__.Value),
287390
- /* harmony export */ "VariableValueType": () => (/* reexport safe */ _presentation_common_rules_Variables__WEBPACK_IMPORTED_MODULE_71__.VariableValueType),
287859
+ /* harmony export */ "Value": () => (/* reexport safe */ _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_28__.Value),
287860
+ /* harmony export */ "VariableValueType": () => (/* reexport safe */ _presentation_common_rules_Variables__WEBPACK_IMPORTED_MODULE_72__.VariableValueType),
287391
287861
  /* harmony export */ "VariableValueTypes": () => (/* reexport safe */ _presentation_common_RulesetVariables__WEBPACK_IMPORTED_MODULE_8__.VariableValueTypes),
287392
- /* harmony export */ "addFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.addFieldHierarchy),
287393
- /* harmony export */ "applyOptionalPrefix": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.applyOptionalPrefix),
287394
- /* harmony export */ "createFieldHierarchies": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.createFieldHierarchies),
287395
- /* harmony export */ "getFieldByName": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__.getFieldByName),
287862
+ /* harmony export */ "addFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.addFieldHierarchy),
287863
+ /* harmony export */ "applyOptionalPrefix": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.applyOptionalPrefix),
287864
+ /* harmony export */ "createFieldHierarchies": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.createFieldHierarchies),
287865
+ /* harmony export */ "getFieldByName": () => (/* reexport safe */ _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__.getFieldByName),
287396
287866
  /* harmony export */ "getInstancesCount": () => (/* reexport safe */ _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__.getInstancesCount),
287397
287867
  /* harmony export */ "isComputeSelectionRequestOptions": () => (/* reexport safe */ _presentation_common_PresentationManagerOptions__WEBPACK_IMPORTED_MODULE_6__.isComputeSelectionRequestOptions),
287398
287868
  /* harmony export */ "isSingleElementPropertiesRequestOptions": () => (/* reexport safe */ _presentation_common_PresentationManagerOptions__WEBPACK_IMPORTED_MODULE_6__.isSingleElementPropertiesRequestOptions),
287399
- /* harmony export */ "traverseContent": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.traverseContent),
287400
- /* harmony export */ "traverseContentItem": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.traverseContentItem),
287401
- /* harmony export */ "traverseFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__.traverseFieldHierarchy)
287869
+ /* harmony export */ "traverseContent": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.traverseContent),
287870
+ /* harmony export */ "traverseContentItem": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.traverseContentItem),
287871
+ /* harmony export */ "traverseFieldHierarchy": () => (/* reexport safe */ _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__.traverseFieldHierarchy)
287402
287872
  /* harmony export */ });
287403
287873
  /* harmony import */ var _presentation_common_AsyncTasks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./presentation-common/AsyncTasks */ "../../presentation/common/lib/esm/presentation-common/AsyncTasks.js");
287404
287874
  /* harmony import */ var _presentation_common_Diagnostics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./presentation-common/Diagnostics */ "../../presentation/common/lib/esm/presentation-common/Diagnostics.js");
@@ -287413,65 +287883,66 @@ __webpack_require__.r(__webpack_exports__);
287413
287883
  /* harmony import */ var _presentation_common_Update__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./presentation-common/Update */ "../../presentation/common/lib/esm/presentation-common/Update.js");
287414
287884
  /* harmony import */ var _presentation_common_Utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./presentation-common/Utils */ "../../presentation/common/lib/esm/presentation-common/Utils.js");
287415
287885
  /* harmony import */ var _presentation_common_PresentationIpcInterface__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./presentation-common/PresentationIpcInterface */ "../../presentation/common/lib/esm/presentation-common/PresentationIpcInterface.js");
287416
- /* harmony import */ var _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./presentation-common/PresentationRpcInterface */ "../../presentation/common/lib/esm/presentation-common/PresentationRpcInterface.js");
287417
- /* harmony import */ var _presentation_common_RpcRequestsHandler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./presentation-common/RpcRequestsHandler */ "../../presentation/common/lib/esm/presentation-common/RpcRequestsHandler.js");
287418
- /* harmony import */ var _presentation_common_ElementProperties__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./presentation-common/ElementProperties */ "../../presentation/common/lib/esm/presentation-common/ElementProperties.js");
287419
- /* harmony import */ var _presentation_common_selection_SelectionScope__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./presentation-common/selection/SelectionScope */ "../../presentation/common/lib/esm/presentation-common/selection/SelectionScope.js");
287420
- /* harmony import */ var _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./presentation-common/content/Category */ "../../presentation/common/lib/esm/presentation-common/content/Category.js");
287421
- /* harmony import */ var _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./presentation-common/content/Content */ "../../presentation/common/lib/esm/presentation-common/content/Content.js");
287422
- /* harmony import */ var _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./presentation-common/content/Descriptor */ "../../presentation/common/lib/esm/presentation-common/content/Descriptor.js");
287423
- /* harmony import */ var _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./presentation-common/content/DisplayTypes */ "../../presentation/common/lib/esm/presentation-common/content/DisplayTypes.js");
287424
- /* harmony import */ var _presentation_common_content_Editor__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./presentation-common/content/Editor */ "../../presentation/common/lib/esm/presentation-common/content/Editor.js");
287425
- /* harmony import */ var _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./presentation-common/content/Fields */ "../../presentation/common/lib/esm/presentation-common/content/Fields.js");
287426
- /* harmony import */ var _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./presentation-common/content/Item */ "../../presentation/common/lib/esm/presentation-common/content/Item.js");
287427
- /* harmony import */ var _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./presentation-common/content/Property */ "../../presentation/common/lib/esm/presentation-common/content/Property.js");
287428
- /* harmony import */ var _presentation_common_content_Renderer__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./presentation-common/content/Renderer */ "../../presentation/common/lib/esm/presentation-common/content/Renderer.js");
287429
- /* harmony import */ var _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./presentation-common/content/TypeDescription */ "../../presentation/common/lib/esm/presentation-common/content/TypeDescription.js");
287430
- /* harmony import */ var _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./presentation-common/content/Value */ "../../presentation/common/lib/esm/presentation-common/content/Value.js");
287431
- /* harmony import */ var _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./presentation-common/content/ContentTraverser */ "../../presentation/common/lib/esm/presentation-common/content/ContentTraverser.js");
287432
- /* harmony import */ var _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./presentation-common/hierarchy/Key */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Key.js");
287433
- /* harmony import */ var _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./presentation-common/hierarchy/Node */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Node.js");
287434
- /* harmony import */ var _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./presentation-common/hierarchy/NodePathElement */ "../../presentation/common/lib/esm/presentation-common/hierarchy/NodePathElement.js");
287435
- /* harmony import */ var _presentation_common_rules_hierarchy_ChildNodeRule__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/ChildNodeRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js");
287436
- /* harmony import */ var _presentation_common_rules_hierarchy_ChildNodeSpecification__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/ChildNodeSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js");
287437
- /* harmony import */ var _presentation_common_rules_hierarchy_CustomNodeSpecification__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/CustomNodeSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js");
287438
- /* harmony import */ var _presentation_common_rules_hierarchy_CustomQueryInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js");
287439
- /* harmony import */ var _presentation_common_rules_hierarchy_InstanceNodesOfSpecificClassesSpecification__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js");
287440
- /* harmony import */ var _presentation_common_rules_hierarchy_NavigationRule__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/NavigationRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js");
287441
- /* harmony import */ var _presentation_common_rules_hierarchy_NodeArtifactsRule__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/NodeArtifactsRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js");
287442
- /* harmony import */ var _presentation_common_rules_hierarchy_RelatedInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js");
287443
- /* harmony import */ var _presentation_common_rules_hierarchy_RootNodeRule__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/RootNodeRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js");
287444
- /* harmony import */ var _presentation_common_rules_hierarchy_SubCondition__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/SubCondition */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/SubCondition.js");
287445
- /* harmony import */ var _presentation_common_rules_customization_CheckBoxRule__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./presentation-common/rules/customization/CheckBoxRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/CheckBoxRule.js");
287446
- /* harmony import */ var _presentation_common_rules_customization_CustomizationRule__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./presentation-common/rules/customization/CustomizationRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/CustomizationRule.js");
287447
- /* harmony import */ var _presentation_common_rules_customization_ExtendedDataRule__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./presentation-common/rules/customization/ExtendedDataRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js");
287448
- /* harmony import */ var _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./presentation-common/rules/customization/GroupingRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/GroupingRule.js");
287449
- /* harmony import */ var _presentation_common_rules_customization_ImageIdOverride__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./presentation-common/rules/customization/ImageIdOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/ImageIdOverride.js");
287450
- /* harmony import */ var _presentation_common_rules_customization_InstanceLabelOverride__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./presentation-common/rules/customization/InstanceLabelOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js");
287451
- /* harmony import */ var _presentation_common_rules_customization_LabelOverride__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./presentation-common/rules/customization/LabelOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/LabelOverride.js");
287452
- /* harmony import */ var _presentation_common_rules_customization_SortingRule__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./presentation-common/rules/customization/SortingRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/SortingRule.js");
287453
- /* harmony import */ var _presentation_common_rules_customization_StyleOverride__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./presentation-common/rules/customization/StyleOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/StyleOverride.js");
287454
- /* harmony import */ var _presentation_common_rules_content_ContentInstancesOfSpecificClassesSpecification__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js");
287455
- /* harmony import */ var _presentation_common_rules_content_ContentRelatedInstancesSpecification__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentRelatedInstancesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js");
287456
- /* harmony import */ var _presentation_common_rules_content_ContentRule__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentRule */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentRule.js");
287457
- /* harmony import */ var _presentation_common_rules_content_ContentSpecification__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentSpecification.js");
287458
- /* harmony import */ var _presentation_common_rules_content_PropertySpecification__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./presentation-common/rules/content/PropertySpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/PropertySpecification.js");
287459
- /* harmony import */ var _presentation_common_rules_content_SelectedNodeInstancesSpecification__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./presentation-common/rules/content/SelectedNodeInstancesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js");
287460
- /* harmony import */ var _presentation_common_rules_content_DefaultPropertyCategoryOverride__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./presentation-common/rules/content/DefaultPropertyCategoryOverride */ "../../presentation/common/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js");
287461
- /* harmony import */ var _presentation_common_rules_content_modifiers_CalculatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js");
287462
- /* harmony import */ var _presentation_common_rules_content_modifiers_ContentModifier__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/ContentModifier */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js");
287463
- /* harmony import */ var _presentation_common_rules_content_modifiers_PropertyCategorySpecification__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/PropertyCategorySpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js");
287464
- /* harmony import */ var _presentation_common_rules_content_modifiers_PropertyEditorsSpecification__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/PropertyEditorsSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js");
287465
- /* harmony import */ var _presentation_common_rules_content_modifiers_CustomRendererSpecification__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/CustomRendererSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js");
287466
- /* harmony import */ var _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/RelatedPropertiesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js");
287467
- /* harmony import */ var _presentation_common_rules_ClassSpecifications__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./presentation-common/rules/ClassSpecifications */ "../../presentation/common/lib/esm/presentation-common/rules/ClassSpecifications.js");
287468
- /* harmony import */ var _presentation_common_rules_RelatedInstanceSpecification__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./presentation-common/rules/RelatedInstanceSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js");
287469
- /* harmony import */ var _presentation_common_rules_RelationshipDirection__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./presentation-common/rules/RelationshipDirection */ "../../presentation/common/lib/esm/presentation-common/rules/RelationshipDirection.js");
287470
- /* harmony import */ var _presentation_common_rules_RelationshipPathSpecification__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./presentation-common/rules/RelationshipPathSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/RelationshipPathSpecification.js");
287471
- /* harmony import */ var _presentation_common_rules_Rule__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./presentation-common/rules/Rule */ "../../presentation/common/lib/esm/presentation-common/rules/Rule.js");
287472
- /* harmony import */ var _presentation_common_rules_Ruleset__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./presentation-common/rules/Ruleset */ "../../presentation/common/lib/esm/presentation-common/rules/Ruleset.js");
287473
- /* harmony import */ var _presentation_common_rules_SchemasSpecification__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./presentation-common/rules/SchemasSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/SchemasSpecification.js");
287474
- /* harmony import */ var _presentation_common_rules_Variables__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./presentation-common/rules/Variables */ "../../presentation/common/lib/esm/presentation-common/rules/Variables.js");
287886
+ /* harmony import */ var _presentation_common_LocalizationHelper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./presentation-common/LocalizationHelper */ "../../presentation/common/lib/esm/presentation-common/LocalizationHelper.js");
287887
+ /* harmony import */ var _presentation_common_PresentationRpcInterface__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./presentation-common/PresentationRpcInterface */ "../../presentation/common/lib/esm/presentation-common/PresentationRpcInterface.js");
287888
+ /* harmony import */ var _presentation_common_RpcRequestsHandler__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./presentation-common/RpcRequestsHandler */ "../../presentation/common/lib/esm/presentation-common/RpcRequestsHandler.js");
287889
+ /* harmony import */ var _presentation_common_ElementProperties__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./presentation-common/ElementProperties */ "../../presentation/common/lib/esm/presentation-common/ElementProperties.js");
287890
+ /* harmony import */ var _presentation_common_selection_SelectionScope__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./presentation-common/selection/SelectionScope */ "../../presentation/common/lib/esm/presentation-common/selection/SelectionScope.js");
287891
+ /* harmony import */ var _presentation_common_content_Category__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./presentation-common/content/Category */ "../../presentation/common/lib/esm/presentation-common/content/Category.js");
287892
+ /* harmony import */ var _presentation_common_content_Content__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./presentation-common/content/Content */ "../../presentation/common/lib/esm/presentation-common/content/Content.js");
287893
+ /* harmony import */ var _presentation_common_content_Descriptor__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./presentation-common/content/Descriptor */ "../../presentation/common/lib/esm/presentation-common/content/Descriptor.js");
287894
+ /* harmony import */ var _presentation_common_content_DisplayTypes__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./presentation-common/content/DisplayTypes */ "../../presentation/common/lib/esm/presentation-common/content/DisplayTypes.js");
287895
+ /* harmony import */ var _presentation_common_content_Editor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./presentation-common/content/Editor */ "../../presentation/common/lib/esm/presentation-common/content/Editor.js");
287896
+ /* harmony import */ var _presentation_common_content_Fields__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./presentation-common/content/Fields */ "../../presentation/common/lib/esm/presentation-common/content/Fields.js");
287897
+ /* harmony import */ var _presentation_common_content_Item__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./presentation-common/content/Item */ "../../presentation/common/lib/esm/presentation-common/content/Item.js");
287898
+ /* harmony import */ var _presentation_common_content_Property__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./presentation-common/content/Property */ "../../presentation/common/lib/esm/presentation-common/content/Property.js");
287899
+ /* harmony import */ var _presentation_common_content_Renderer__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./presentation-common/content/Renderer */ "../../presentation/common/lib/esm/presentation-common/content/Renderer.js");
287900
+ /* harmony import */ var _presentation_common_content_TypeDescription__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./presentation-common/content/TypeDescription */ "../../presentation/common/lib/esm/presentation-common/content/TypeDescription.js");
287901
+ /* harmony import */ var _presentation_common_content_Value__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./presentation-common/content/Value */ "../../presentation/common/lib/esm/presentation-common/content/Value.js");
287902
+ /* harmony import */ var _presentation_common_content_ContentTraverser__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./presentation-common/content/ContentTraverser */ "../../presentation/common/lib/esm/presentation-common/content/ContentTraverser.js");
287903
+ /* harmony import */ var _presentation_common_hierarchy_Key__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./presentation-common/hierarchy/Key */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Key.js");
287904
+ /* harmony import */ var _presentation_common_hierarchy_Node__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./presentation-common/hierarchy/Node */ "../../presentation/common/lib/esm/presentation-common/hierarchy/Node.js");
287905
+ /* harmony import */ var _presentation_common_hierarchy_NodePathElement__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./presentation-common/hierarchy/NodePathElement */ "../../presentation/common/lib/esm/presentation-common/hierarchy/NodePathElement.js");
287906
+ /* harmony import */ var _presentation_common_rules_hierarchy_ChildNodeRule__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/ChildNodeRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js");
287907
+ /* harmony import */ var _presentation_common_rules_hierarchy_ChildNodeSpecification__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/ChildNodeSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js");
287908
+ /* harmony import */ var _presentation_common_rules_hierarchy_CustomNodeSpecification__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/CustomNodeSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js");
287909
+ /* harmony import */ var _presentation_common_rules_hierarchy_CustomQueryInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js");
287910
+ /* harmony import */ var _presentation_common_rules_hierarchy_InstanceNodesOfSpecificClassesSpecification__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js");
287911
+ /* harmony import */ var _presentation_common_rules_hierarchy_NavigationRule__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/NavigationRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js");
287912
+ /* harmony import */ var _presentation_common_rules_hierarchy_NodeArtifactsRule__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/NodeArtifactsRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js");
287913
+ /* harmony import */ var _presentation_common_rules_hierarchy_RelatedInstanceNodesSpecification__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js");
287914
+ /* harmony import */ var _presentation_common_rules_hierarchy_RootNodeRule__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/RootNodeRule */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js");
287915
+ /* harmony import */ var _presentation_common_rules_hierarchy_SubCondition__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./presentation-common/rules/hierarchy/SubCondition */ "../../presentation/common/lib/esm/presentation-common/rules/hierarchy/SubCondition.js");
287916
+ /* harmony import */ var _presentation_common_rules_customization_CheckBoxRule__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./presentation-common/rules/customization/CheckBoxRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/CheckBoxRule.js");
287917
+ /* harmony import */ var _presentation_common_rules_customization_CustomizationRule__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./presentation-common/rules/customization/CustomizationRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/CustomizationRule.js");
287918
+ /* harmony import */ var _presentation_common_rules_customization_ExtendedDataRule__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./presentation-common/rules/customization/ExtendedDataRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js");
287919
+ /* harmony import */ var _presentation_common_rules_customization_GroupingRule__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./presentation-common/rules/customization/GroupingRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/GroupingRule.js");
287920
+ /* harmony import */ var _presentation_common_rules_customization_ImageIdOverride__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./presentation-common/rules/customization/ImageIdOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/ImageIdOverride.js");
287921
+ /* harmony import */ var _presentation_common_rules_customization_InstanceLabelOverride__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./presentation-common/rules/customization/InstanceLabelOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js");
287922
+ /* harmony import */ var _presentation_common_rules_customization_LabelOverride__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./presentation-common/rules/customization/LabelOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/LabelOverride.js");
287923
+ /* harmony import */ var _presentation_common_rules_customization_SortingRule__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./presentation-common/rules/customization/SortingRule */ "../../presentation/common/lib/esm/presentation-common/rules/customization/SortingRule.js");
287924
+ /* harmony import */ var _presentation_common_rules_customization_StyleOverride__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./presentation-common/rules/customization/StyleOverride */ "../../presentation/common/lib/esm/presentation-common/rules/customization/StyleOverride.js");
287925
+ /* harmony import */ var _presentation_common_rules_content_ContentInstancesOfSpecificClassesSpecification__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js");
287926
+ /* harmony import */ var _presentation_common_rules_content_ContentRelatedInstancesSpecification__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentRelatedInstancesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js");
287927
+ /* harmony import */ var _presentation_common_rules_content_ContentRule__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentRule */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentRule.js");
287928
+ /* harmony import */ var _presentation_common_rules_content_ContentSpecification__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./presentation-common/rules/content/ContentSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/ContentSpecification.js");
287929
+ /* harmony import */ var _presentation_common_rules_content_PropertySpecification__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./presentation-common/rules/content/PropertySpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/PropertySpecification.js");
287930
+ /* harmony import */ var _presentation_common_rules_content_SelectedNodeInstancesSpecification__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./presentation-common/rules/content/SelectedNodeInstancesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js");
287931
+ /* harmony import */ var _presentation_common_rules_content_DefaultPropertyCategoryOverride__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./presentation-common/rules/content/DefaultPropertyCategoryOverride */ "../../presentation/common/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js");
287932
+ /* harmony import */ var _presentation_common_rules_content_modifiers_CalculatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js");
287933
+ /* harmony import */ var _presentation_common_rules_content_modifiers_ContentModifier__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/ContentModifier */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js");
287934
+ /* harmony import */ var _presentation_common_rules_content_modifiers_PropertyCategorySpecification__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/PropertyCategorySpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js");
287935
+ /* harmony import */ var _presentation_common_rules_content_modifiers_PropertyEditorsSpecification__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/PropertyEditorsSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js");
287936
+ /* harmony import */ var _presentation_common_rules_content_modifiers_CustomRendererSpecification__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/CustomRendererSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js");
287937
+ /* harmony import */ var _presentation_common_rules_content_modifiers_RelatedPropertiesSpecification__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./presentation-common/rules/content/modifiers/RelatedPropertiesSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js");
287938
+ /* harmony import */ var _presentation_common_rules_ClassSpecifications__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./presentation-common/rules/ClassSpecifications */ "../../presentation/common/lib/esm/presentation-common/rules/ClassSpecifications.js");
287939
+ /* harmony import */ var _presentation_common_rules_RelatedInstanceSpecification__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./presentation-common/rules/RelatedInstanceSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js");
287940
+ /* harmony import */ var _presentation_common_rules_RelationshipDirection__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./presentation-common/rules/RelationshipDirection */ "../../presentation/common/lib/esm/presentation-common/rules/RelationshipDirection.js");
287941
+ /* harmony import */ var _presentation_common_rules_RelationshipPathSpecification__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./presentation-common/rules/RelationshipPathSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/RelationshipPathSpecification.js");
287942
+ /* harmony import */ var _presentation_common_rules_Rule__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./presentation-common/rules/Rule */ "../../presentation/common/lib/esm/presentation-common/rules/Rule.js");
287943
+ /* harmony import */ var _presentation_common_rules_Ruleset__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./presentation-common/rules/Ruleset */ "../../presentation/common/lib/esm/presentation-common/rules/Ruleset.js");
287944
+ /* harmony import */ var _presentation_common_rules_SchemasSpecification__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./presentation-common/rules/SchemasSpecification */ "../../presentation/common/lib/esm/presentation-common/rules/SchemasSpecification.js");
287945
+ /* harmony import */ var _presentation_common_rules_Variables__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./presentation-common/rules/Variables */ "../../presentation/common/lib/esm/presentation-common/rules/Variables.js");
287475
287946
  /*---------------------------------------------------------------------------------------------
287476
287947
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
287477
287948
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -287495,6 +287966,7 @@ __webpack_require__.r(__webpack_exports__);
287495
287966
 
287496
287967
 
287497
287968
 
287969
+
287498
287970
  /**
287499
287971
  * @module RPC
287500
287972
  *
@@ -288612,6 +289084,129 @@ var LabelDefinition;
288612
289084
  })(LabelDefinition || (LabelDefinition = {}));
288613
289085
 
288614
289086
 
289087
+ /***/ }),
289088
+
289089
+ /***/ "../../presentation/common/lib/esm/presentation-common/LocalizationHelper.js":
289090
+ /*!***********************************************************************************!*\
289091
+ !*** ../../presentation/common/lib/esm/presentation-common/LocalizationHelper.js ***!
289092
+ \***********************************************************************************/
289093
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
289094
+
289095
+ "use strict";
289096
+ __webpack_require__.r(__webpack_exports__);
289097
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
289098
+ /* harmony export */ "LocalizationHelper": () => (/* binding */ LocalizationHelper)
289099
+ /* harmony export */ });
289100
+ /* harmony import */ var _LabelDefinition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LabelDefinition */ "../../presentation/common/lib/esm/presentation-common/LabelDefinition.js");
289101
+ /* harmony import */ var _content_Value__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./content/Value */ "../../presentation/common/lib/esm/presentation-common/content/Value.js");
289102
+ /*---------------------------------------------------------------------------------------------
289103
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
289104
+ * See LICENSE.md in the project root for license terms and full copyright notice.
289105
+ *--------------------------------------------------------------------------------------------*/
289106
+ /** @packageDocumentation
289107
+ * @module Core
289108
+ */
289109
+
289110
+
289111
+ const KEY_PATTERN = /@[\w\d\-_]+:[\w\d\-\._]+?@/g;
289112
+ /** @internal */
289113
+ class LocalizationHelper {
289114
+ constructor(props) {
289115
+ this._getLocalizedString = props.getLocalizedString;
289116
+ }
289117
+ getLocalizedString(text) {
289118
+ return text.replace(KEY_PATTERN, (key) => this._getLocalizedString(key.replace(/^@|@$/g, "")));
289119
+ }
289120
+ getLocalizedNodes(nodes) {
289121
+ for (const node of nodes)
289122
+ this.translateNode(node);
289123
+ return nodes;
289124
+ }
289125
+ getLocalizedLabelDefinition(labelDefinition) {
289126
+ this.translateLabelDefinition(labelDefinition);
289127
+ return labelDefinition;
289128
+ }
289129
+ getLocalizedLabelDefinitions(labelDefinitions) {
289130
+ labelDefinitions.forEach((labelDefinition) => this.translateLabelDefinition(labelDefinition));
289131
+ return labelDefinitions;
289132
+ }
289133
+ getLocalizedContent(content) {
289134
+ content.contentSet.forEach((item) => this.translateContentItem(item));
289135
+ content.descriptor.fields.forEach((field) => this.translateContentDescriptorField(field));
289136
+ content.descriptor.categories.forEach((category) => this.translateContentDescriptorCategory(category));
289137
+ return content;
289138
+ }
289139
+ getLocalizedElementProperties(elem) {
289140
+ elem.label = this.getLocalizedString(elem.label);
289141
+ return elem;
289142
+ }
289143
+ translateContentItem(item) {
289144
+ for (const key in item.displayValues) {
289145
+ // istanbul ignore else
289146
+ if (key)
289147
+ item.displayValues[key] = this.translateContentItemDisplayValue(item.displayValues[key]);
289148
+ }
289149
+ for (const key in item.values) {
289150
+ // istanbul ignore else
289151
+ if (key)
289152
+ item.values[key] = this.translateContentItemValue(item.values[key]);
289153
+ }
289154
+ this.translateLabelDefinition(item.label);
289155
+ }
289156
+ translateContentItemDisplayValue(value) {
289157
+ // istanbul ignore else
289158
+ if (typeof value === "string") {
289159
+ value = this.getLocalizedString(value);
289160
+ }
289161
+ return value;
289162
+ }
289163
+ translateContentItemValue(value) {
289164
+ if (typeof value === "string") {
289165
+ value = this.getLocalizedString(value);
289166
+ }
289167
+ else if (_content_Value__WEBPACK_IMPORTED_MODULE_1__.Value.isNestedContent(value)) {
289168
+ for (const nestedValue of value) {
289169
+ for (const key in nestedValue.values) {
289170
+ // istanbul ignore else
289171
+ if (key)
289172
+ nestedValue.values[key] = this.translateContentItemValue(nestedValue.values[key]);
289173
+ }
289174
+ for (const key in nestedValue.displayValues) {
289175
+ // istanbul ignore else
289176
+ if (key)
289177
+ nestedValue.displayValues[key] = this.translateContentItemDisplayValue(nestedValue.displayValues[key]);
289178
+ }
289179
+ }
289180
+ }
289181
+ return value;
289182
+ }
289183
+ translateContentDescriptorField(field) {
289184
+ field.label = this.getLocalizedString(field.label);
289185
+ }
289186
+ translateContentDescriptorCategory(category) {
289187
+ category.label = this.getLocalizedString(category.label);
289188
+ category.description = this.getLocalizedString(category.description);
289189
+ }
289190
+ translateNode(node) {
289191
+ this.translateLabelDefinition(node.label);
289192
+ // istanbul ignore else
289193
+ if (node.description)
289194
+ node.description = this.getLocalizedString(node.description);
289195
+ }
289196
+ translateLabelDefinition(labelDefinition) {
289197
+ const translateComposite = (compositeValue) => {
289198
+ compositeValue.values.map((value) => this.translateLabelDefinition(value));
289199
+ };
289200
+ if (labelDefinition.typeName === _LabelDefinition__WEBPACK_IMPORTED_MODULE_0__.LabelDefinition.COMPOSITE_DEFINITION_TYPENAME)
289201
+ translateComposite(labelDefinition.rawValue);
289202
+ else if (labelDefinition.typeName === "string") {
289203
+ labelDefinition.rawValue = this.getLocalizedString(labelDefinition.rawValue);
289204
+ labelDefinition.displayValue = this.getLocalizedString(labelDefinition.displayValue);
289205
+ }
289206
+ }
289207
+ }
289208
+
289209
+
288615
289210
  /***/ }),
288616
289211
 
288617
289212
  /***/ "../../presentation/common/lib/esm/presentation-common/PresentationIpcInterface.js":
@@ -292970,7 +293565,7 @@ class IpcRequestsHandler {
292970
293565
  "use strict";
292971
293566
  __webpack_require__.r(__webpack_exports__);
292972
293567
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
292973
- /* harmony export */ "LocalizationHelper": () => (/* binding */ LocalizationHelper)
293568
+ /* harmony export */ "FrontendLocalizationHelper": () => (/* binding */ FrontendLocalizationHelper)
292974
293569
  /* harmony export */ });
292975
293570
  /* harmony import */ var _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/presentation-common */ "../../presentation/common/lib/esm/presentation-common.js");
292976
293571
  /* harmony import */ var _Presentation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Presentation */ "../../presentation/frontend/lib/esm/presentation-frontend/Presentation.js");
@@ -292981,9 +293576,18 @@ __webpack_require__.r(__webpack_exports__);
292981
293576
 
292982
293577
 
292983
293578
  const NAMESPACES = ["BisCore", "ECPresentation", "RulesEngine"];
292984
- const KEY_PATTERN = /@[\w\d\-_]+:[\w\d\-\._]+?@/g;
292985
293579
  /** @internal */
292986
- class LocalizationHelper {
293580
+ class FrontendLocalizationHelper extends _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_0__.LocalizationHelper {
293581
+ constructor(lang) {
293582
+ super({ getLocalizedString: (key) => _Presentation__WEBPACK_IMPORTED_MODULE_1__.Presentation.localization.getLocalizedString(key, { defaultValue: key, lng: this._lang }) });
293583
+ this._lang = lang;
293584
+ }
293585
+ get locale() {
293586
+ return this._lang;
293587
+ }
293588
+ set locale(locale) {
293589
+ this._lang = locale;
293590
+ }
292987
293591
  static async registerNamespaces() {
292988
293592
  const localizationPromises = NAMESPACES.map(async (namespace) => _Presentation__WEBPACK_IMPORTED_MODULE_1__.Presentation.localization.registerNamespace(namespace));
292989
293593
  await Promise.all(localizationPromises);
@@ -292991,41 +293595,6 @@ class LocalizationHelper {
292991
293595
  static unregisterNamespaces() {
292992
293596
  NAMESPACES.map((namespace) => _Presentation__WEBPACK_IMPORTED_MODULE_1__.Presentation.localization.unregisterNamespace(namespace));
292993
293597
  }
292994
- getLocalizedString(text) {
292995
- return text.replace(KEY_PATTERN, (key) => _Presentation__WEBPACK_IMPORTED_MODULE_1__.Presentation.localization.getLocalizedString(key.replace(/^@|@$/g, ""), { defaultValue: key }));
292996
- }
292997
- getLocalizedNodes(nodes) {
292998
- for (const node of nodes)
292999
- this.translateNode(node);
293000
- return nodes;
293001
- }
293002
- getLocalizedLabelDefinition(labelDefinition) {
293003
- this.translateLabelDefinition(labelDefinition);
293004
- return labelDefinition;
293005
- }
293006
- getLocalizedLabelDefinitions(labelDefinitions) {
293007
- labelDefinitions.forEach((labelDefinition) => this.translateLabelDefinition(labelDefinition));
293008
- return labelDefinitions;
293009
- }
293010
- getLocalizedContent(content) {
293011
- content.contentSet.forEach((item) => this.translateContentItem(item));
293012
- return content;
293013
- }
293014
- translateContentItem(item) {
293015
- this.translateLabelDefinition(item.label);
293016
- }
293017
- translateNode(node) {
293018
- this.translateLabelDefinition(node.label);
293019
- }
293020
- translateLabelDefinition(labelDefinition) {
293021
- const translateComposite = (compositeValue) => {
293022
- compositeValue.values.map((value) => this.translateLabelDefinition(value));
293023
- };
293024
- if (labelDefinition.typeName === _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_0__.LabelDefinition.COMPOSITE_DEFINITION_TYPENAME)
293025
- translateComposite(labelDefinition.rawValue);
293026
- else if (labelDefinition.typeName === "string")
293027
- labelDefinition.rawValue = this.getLocalizedString(labelDefinition.rawValue);
293028
- }
293029
293598
  }
293030
293599
 
293031
293600
 
@@ -293124,7 +293693,7 @@ class Presentation {
293124
293693
  }
293125
293694
  // eslint-disable-next-line @typescript-eslint/unbound-method
293126
293695
  presentationManager.onNewiModelConnection = favoritePropertiesManager.initializeConnection.bind(favoritePropertiesManager);
293127
- await _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.LocalizationHelper.registerNamespaces();
293696
+ await _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.FrontendLocalizationHelper.registerNamespaces();
293128
293697
  for (const handler of initializationHandlers) {
293129
293698
  const cleanup = await handler();
293130
293699
  if (cleanup)
@@ -293139,7 +293708,7 @@ class Presentation {
293139
293708
  terminationHandlers.forEach((handler) => handler());
293140
293709
  terminationHandlers.length = 0;
293141
293710
  if (localization)
293142
- _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.LocalizationHelper.unregisterNamespaces();
293711
+ _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.FrontendLocalizationHelper.unregisterNamespaces();
293143
293712
  if (presentationManager)
293144
293713
  presentationManager.dispose();
293145
293714
  presentationManager = undefined;
@@ -293274,13 +293843,12 @@ class PresentationManager {
293274
293843
  this.handleUpdateAsync(_itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.UpdateInfo.fromJSON(report));
293275
293844
  };
293276
293845
  if (props) {
293277
- this.activeLocale = props.activeLocale;
293278
293846
  this.activeUnitSystem = props.activeUnitSystem;
293279
293847
  }
293280
293848
  this._requestsHandler = (_a = props === null || props === void 0 ? void 0 : props.rpcRequestsHandler) !== null && _a !== void 0 ? _a : new _itwin_presentation_common__WEBPACK_IMPORTED_MODULE_2__.RpcRequestsHandler(props ? { clientId: props.clientId } : undefined);
293281
293849
  this._rulesetVars = new Map();
293282
293850
  this._rulesets = _RulesetManager__WEBPACK_IMPORTED_MODULE_5__.RulesetManagerImpl.create();
293283
- this._localizationHelper = new _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.LocalizationHelper();
293851
+ this._localizationHelper = new _LocalizationHelper__WEBPACK_IMPORTED_MODULE_4__.FrontendLocalizationHelper(props === null || props === void 0 ? void 0 : props.activeLocale);
293284
293852
  this._connections = new Map();
293285
293853
  if (_itwin_core_frontend__WEBPACK_IMPORTED_MODULE_1__.IpcApp.isValid) {
293286
293854
  // Ipc only works in ipc apps, so the `onUpdate` callback will only be called there.
@@ -293289,6 +293857,9 @@ class PresentationManager {
293289
293857
  this._stateTracker = (_c = props === null || props === void 0 ? void 0 : props.stateTracker) !== null && _c !== void 0 ? _c : new _StateTracker__WEBPACK_IMPORTED_MODULE_8__.StateTracker(this._ipcRequestsHandler);
293290
293858
  }
293291
293859
  }
293860
+ /** Get / set active locale used for localizing presentation data */
293861
+ get activeLocale() { return this._localizationHelper.locale; }
293862
+ set activeLocale(locale) { this._localizationHelper.locale = locale; }
293292
293863
  dispose() {
293293
293864
  this._requestsHandler.dispose();
293294
293865
  if (this._clearEventListener) {
@@ -293529,7 +294100,11 @@ class PresentationManager {
293529
294100
  */
293530
294101
  async getElementProperties(requestOptions) {
293531
294102
  await this.onConnection(requestOptions.imodel);
293532
- return this._requestsHandler.getElementProperties(this.toRpcTokenOptions(requestOptions));
294103
+ const results = await this._requestsHandler.getElementProperties(this.toRpcTokenOptions(requestOptions));
294104
+ // istanbul ignore if
294105
+ if (!results)
294106
+ return undefined;
294107
+ return this._localizationHelper.getLocalizedElementProperties(results);
293533
294108
  }
293534
294109
  /**
293535
294110
  * Retrieves content item instance keys.
@@ -302424,9 +302999,9 @@ const gBase64 = {
302424
302999
 
302425
303000
  /***/ }),
302426
303001
 
302427
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
303002
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
302428
303003
  /*!******************************************************************************************************************************!*\
302429
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
303004
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
302430
303005
  \******************************************************************************************************************************/
302431
303006
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302432
303007
 
@@ -302447,9 +303022,9 @@ function _arrayLikeToArray(arr, len) {
302447
303022
 
302448
303023
  /***/ }),
302449
303024
 
302450
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
303025
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
302451
303026
  /*!****************************************************************************************************************************!*\
302452
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
303027
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
302453
303028
  \****************************************************************************************************************************/
302454
303029
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302455
303030
 
@@ -302464,9 +303039,9 @@ function _arrayWithHoles(arr) {
302464
303039
 
302465
303040
  /***/ }),
302466
303041
 
302467
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
303042
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
302468
303043
  /*!***********************************************************************************************************************************!*\
302469
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
303044
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
302470
303045
  \***********************************************************************************************************************************/
302471
303046
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302472
303047
 
@@ -302485,9 +303060,9 @@ function _assertThisInitialized(self) {
302485
303060
 
302486
303061
  /***/ }),
302487
303062
 
302488
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
303063
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
302489
303064
  /*!****************************************************************************************************************************!*\
302490
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
303065
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
302491
303066
  \****************************************************************************************************************************/
302492
303067
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302493
303068
 
@@ -302504,9 +303079,9 @@ function _classCallCheck(instance, Constructor) {
302504
303079
 
302505
303080
  /***/ }),
302506
303081
 
302507
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/createClass.js":
303082
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/createClass.js":
302508
303083
  /*!*************************************************************************************************************************!*\
302509
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
303084
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
302510
303085
  \*************************************************************************************************************************/
302511
303086
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302512
303087
 
@@ -302536,9 +303111,9 @@ function _createClass(Constructor, protoProps, staticProps) {
302536
303111
 
302537
303112
  /***/ }),
302538
303113
 
302539
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
303114
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
302540
303115
  /*!****************************************************************************************************************************!*\
302541
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
303116
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
302542
303117
  \****************************************************************************************************************************/
302543
303118
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302544
303119
 
@@ -302564,9 +303139,9 @@ function _defineProperty(obj, key, value) {
302564
303139
 
302565
303140
  /***/ }),
302566
303141
 
302567
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
303142
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
302568
303143
  /*!****************************************************************************************************************************!*\
302569
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
303144
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
302570
303145
  \****************************************************************************************************************************/
302571
303146
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302572
303147
 
@@ -302584,9 +303159,9 @@ function _getPrototypeOf(o) {
302584
303159
 
302585
303160
  /***/ }),
302586
303161
 
302587
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/inherits.js":
303162
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/inherits.js":
302588
303163
  /*!**********************************************************************************************************************!*\
302589
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
303164
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
302590
303165
  \**********************************************************************************************************************/
302591
303166
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302592
303167
 
@@ -302595,7 +303170,7 @@ __webpack_require__.r(__webpack_exports__);
302595
303170
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
302596
303171
  /* harmony export */ "default": () => (/* binding */ _inherits)
302597
303172
  /* harmony export */ });
302598
- /* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
303173
+ /* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
302599
303174
 
302600
303175
  function _inherits(subClass, superClass) {
302601
303176
  if (typeof superClass !== "function" && superClass !== null) {
@@ -302617,9 +303192,9 @@ function _inherits(subClass, superClass) {
302617
303192
 
302618
303193
  /***/ }),
302619
303194
 
302620
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
303195
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
302621
303196
  /*!*****************************************************************************************************************************!*\
302622
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
303197
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
302623
303198
  \*****************************************************************************************************************************/
302624
303199
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302625
303200
 
@@ -302634,9 +303209,9 @@ function _iterableToArray(iter) {
302634
303209
 
302635
303210
  /***/ }),
302636
303211
 
302637
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
303212
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
302638
303213
  /*!*****************************************************************************************************************************!*\
302639
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
303214
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
302640
303215
  \*****************************************************************************************************************************/
302641
303216
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302642
303217
 
@@ -302651,9 +303226,9 @@ function _nonIterableRest() {
302651
303226
 
302652
303227
  /***/ }),
302653
303228
 
302654
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
303229
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
302655
303230
  /*!***************************************************************************************************************************************!*\
302656
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
303231
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
302657
303232
  \***************************************************************************************************************************************/
302658
303233
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302659
303234
 
@@ -302662,8 +303237,8 @@ __webpack_require__.r(__webpack_exports__);
302662
303237
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
302663
303238
  /* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn)
302664
303239
  /* harmony export */ });
302665
- /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/typeof.js");
302666
- /* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
303240
+ /* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/typeof.js");
303241
+ /* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
302667
303242
 
302668
303243
 
302669
303244
  function _possibleConstructorReturn(self, call) {
@@ -302678,9 +303253,9 @@ function _possibleConstructorReturn(self, call) {
302678
303253
 
302679
303254
  /***/ }),
302680
303255
 
302681
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
303256
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
302682
303257
  /*!****************************************************************************************************************************!*\
302683
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
303258
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
302684
303259
  \****************************************************************************************************************************/
302685
303260
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302686
303261
 
@@ -302699,9 +303274,9 @@ function _setPrototypeOf(o, p) {
302699
303274
 
302700
303275
  /***/ }),
302701
303276
 
302702
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/toArray.js":
303277
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/toArray.js":
302703
303278
  /*!*********************************************************************************************************************!*\
302704
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
303279
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/toArray.js ***!
302705
303280
  \*********************************************************************************************************************/
302706
303281
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302707
303282
 
@@ -302710,10 +303285,10 @@ __webpack_require__.r(__webpack_exports__);
302710
303285
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
302711
303286
  /* harmony export */ "default": () => (/* binding */ _toArray)
302712
303287
  /* harmony export */ });
302713
- /* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
302714
- /* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
302715
- /* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
302716
- /* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
303288
+ /* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
303289
+ /* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
303290
+ /* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
303291
+ /* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
302717
303292
 
302718
303293
 
302719
303294
 
@@ -302724,9 +303299,9 @@ function _toArray(arr) {
302724
303299
 
302725
303300
  /***/ }),
302726
303301
 
302727
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/typeof.js":
303302
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/typeof.js":
302728
303303
  /*!********************************************************************************************************************!*\
302729
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
303304
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
302730
303305
  \********************************************************************************************************************/
302731
303306
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302732
303307
 
@@ -302747,9 +303322,9 @@ function _typeof(obj) {
302747
303322
 
302748
303323
  /***/ }),
302749
303324
 
302750
- /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
303325
+ /***/ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
302751
303326
  /*!****************************************************************************************************************************************!*\
302752
- !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
303327
+ !*** ../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
302753
303328
  \****************************************************************************************************************************************/
302754
303329
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
302755
303330
 
@@ -302758,7 +303333,7 @@ __webpack_require__.r(__webpack_exports__);
302758
303333
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
302759
303334
  /* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray)
302760
303335
  /* harmony export */ });
302761
- /* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
303336
+ /* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
302762
303337
 
302763
303338
  function _unsupportedIterableToArray(o, minLen) {
302764
303339
  if (!o) return;
@@ -302795,15 +303370,15 @@ __webpack_require__.r(__webpack_exports__);
302795
303370
  /* harmony export */ "t": () => (/* binding */ t),
302796
303371
  /* harmony export */ "use": () => (/* binding */ use)
302797
303372
  /* harmony export */ });
302798
- /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/typeof.js");
302799
- /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
302800
- /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/createClass.js");
302801
- /* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
302802
- /* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/inherits.js");
302803
- /* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js");
302804
- /* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js");
302805
- /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
302806
- /* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.18.9/node_modules/@babel/runtime/helpers/esm/toArray.js");
303373
+ /* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/typeof.js");
303374
+ /* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
303375
+ /* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/createClass.js");
303376
+ /* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
303377
+ /* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/inherits.js");
303378
+ /* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js");
303379
+ /* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js");
303380
+ /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js");
303381
+ /* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ "../../common/temp/node_modules/.pnpm/@babel+runtime@7.19.0/node_modules/@babel/runtime/helpers/esm/toArray.js");
302807
303382
 
302808
303383
 
302809
303384
 
@@ -305631,7 +306206,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
305631
306206
  /***/ ((module) => {
305632
306207
 
305633
306208
  "use strict";
305634
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"3.4.0-dev.33","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","build:ci":"npm run -s build && npm run -s build:esm","build:cjs":"tsc 1>&2 --outDir lib/cjs","build:esm":"tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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-eslintrc -c \\"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\\" \\"./src/**/*.ts\\" 1>&2","lint":"eslint -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"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core/tree/master/core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^3.4.0-dev.33","@itwin/core-bentley":"workspace:^3.4.0-dev.33","@itwin/core-common":"workspace:^3.4.0-dev.33","@itwin/core-geometry":"workspace:^3.4.0-dev.33","@itwin/core-orbitgt":"workspace:^3.4.0-dev.33","@itwin/core-quantity":"workspace:^3.4.0-dev.33","@itwin/webgl-compatibility":"workspace:^3.4.0-dev.33"},"//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":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/lodash":"^4.14.0","@types/mocha":"^8.2.2","@types/node":"16.11.7","@types/qs":"^6.5.0","@types/semver":"7.3.10","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^7.11.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~4.4.0","webpack":"^5.64.4"},"//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/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","lodash":"^4.17.10","qs":"^6.5.1","semver":"^7.3.5","superagent":"7.1.3","wms-capabilities":"0.4.0","xml-js":"~1.6.11"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
306209
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"3.4.0-dev.36","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","build:ci":"npm run -s build && npm run -s build:esm","build:cjs":"tsc 1>&2 --outDir lib/cjs","build:esm":"tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/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-eslintrc -c \\"../../tools/eslint-plugin/dist/configs/extension-exports-config.js\\" \\"./src/**/*.ts\\" 1>&2","lint":"eslint -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"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core/tree/master/core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^3.4.0-dev.36","@itwin/core-bentley":"workspace:^3.4.0-dev.36","@itwin/core-common":"workspace:^3.4.0-dev.36","@itwin/core-geometry":"workspace:^3.4.0-dev.36","@itwin/core-orbitgt":"workspace:^3.4.0-dev.36","@itwin/core-quantity":"workspace:^3.4.0-dev.36","@itwin/webgl-compatibility":"workspace:^3.4.0-dev.36"},"//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":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/lodash":"^4.14.0","@types/mocha":"^8.2.2","@types/node":"16.11.7","@types/qs":"^6.5.0","@types/semver":"7.3.10","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^7.11.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~4.4.0","webpack":"^5.64.4"},"//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/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","lodash":"^4.17.10","qs":"^6.5.1","semver":"^7.3.5","superagent":"7.1.3","wms-capabilities":"0.4.0","xml-js":"~1.6.11"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
305635
306210
 
305636
306211
  /***/ }),
305637
306212