@itwin/rpcinterface-full-stack-tests 4.0.0-dev.50 → 4.0.0-dev.52

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.
@@ -40051,7 +40051,9 @@ class ColorDef {
40051
40051
  static create(val) {
40052
40052
  return this.fromTbgr(this.computeTbgr(val));
40053
40053
  }
40054
- /** @internal */
40054
+ /** Compute the 0xTTBBGGRR value corresponding to the specified representation of a color.
40055
+ * @see [[fromString]] for a description of valid string representations.
40056
+ */
40055
40057
  static computeTbgr(val) {
40056
40058
  switch (typeof val) {
40057
40059
  case "number":
@@ -42184,7 +42186,7 @@ class DisplayStyleSettings {
42184
42186
  else
42185
42187
  this._json.clipStyle = style.toJSON();
42186
42188
  }
42187
- /** @internal */
42189
+ /** Convert these settings to their JSON representation. */
42188
42190
  toJSON() {
42189
42191
  return this._json;
42190
42192
  }
@@ -42363,11 +42365,11 @@ class DisplayStyle3dSettings extends DisplayStyleSettings {
42363
42365
  }
42364
42366
  }
42365
42367
  }
42366
- /** @internal */
42368
+ /** Convert these settings to their JSON representation. */
42367
42369
  toJSON() {
42368
42370
  return this._json3d;
42369
42371
  }
42370
- /** @internal */
42372
+ /** See [[DisplayStyleSettings.toOverrides]]. */
42371
42373
  toOverrides(options) {
42372
42374
  const props = super.toOverrides(options);
42373
42375
  if (options?.includeAll)
@@ -44002,9 +44004,14 @@ class FeatureOverrides {
44002
44004
  get defaultOverrides() { return this._defaultOverrides; }
44003
44005
  /** Whether or not line weights are applied. If false, all lines are drawn with a weight of 1. */
44004
44006
  get lineWeights() { return this._lineWeights; }
44005
- /** @internal */
44007
+ /** A set of elements that are always invisible.
44008
+ * @note If an element is present in both `alwaysDrawn` and [[neverDrawn]], it will not be displayed - `neverDrawn` takes precedence.
44009
+ */
44006
44010
  get neverDrawn() { return this._neverDrawn; }
44007
- /** @internal */
44011
+ /** A set of elements that are unconditionally displayed.
44012
+ * @see [[isAlwaysDrawnExclusive]] to specify that *only* elements in this set will be displayed.
44013
+ * @note If an element is present in both `alwaysDrawn` and [[neverDrawn]], it will not be displayed - `neverDrawn` takes precedence.
44014
+ */
44008
44015
  get alwaysDrawn() { return this._alwaysDrawn; }
44009
44016
  /** @internal */
44010
44017
  isNeverDrawn(elemIdLo, elemIdHi, animationNodeId) {
@@ -86213,7 +86220,7 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
86213
86220
  * @see [[overrideSubCategory]]
86214
86221
  */
86215
86222
  getSubCategoryOverride(id) { return this.settings.getSubCategoryOverride(id); }
86216
- /** @internal */
86223
+ /** Returns true if solar shadow display is enabled by this display style. */
86217
86224
  get wantShadows() {
86218
86225
  return this.is3d() && this.viewFlags.shadows && false !== _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.renderSystem.options.displaySolarShadows;
86219
86226
  }
@@ -86661,6 +86668,7 @@ class DrawingViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewStat
86661
86668
  CAST(json_extract(jsonProperties, '$.displaySpatialView') as BOOLEAN) as displaySpatialView
86662
86669
  FROM bis.SectionDrawing
86663
86670
  WHERE ECInstanceId=${this.baseModelId}`;
86671
+ // eslint-disable-next-line deprecation/deprecation
86664
86672
  for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
86665
86673
  spatialView = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.fromJSON(row.spatialView?.id);
86666
86674
  displaySpatialView = !!row.displaySpatialView;
@@ -86712,14 +86720,14 @@ class DrawingViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewStat
86712
86720
  }
86713
86721
  /** @internal */
86714
86722
  isDrawingView() { return true; }
86715
- /** @internal */
86723
+ /** See [[ViewState.getOrigin]]. */
86716
86724
  getOrigin() {
86717
86725
  const origin = super.getOrigin();
86718
86726
  if (this._attachment)
86719
86727
  origin.z = -this._attachment.zDepth;
86720
86728
  return origin;
86721
86729
  }
86722
- /** @internal */
86730
+ /** See [[ViewState.getExtents]]. */
86723
86731
  getExtents() {
86724
86732
  const extents = super.getExtents();
86725
86733
  if (this._attachment)
@@ -90525,7 +90533,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
90525
90533
  /** Allow to execute query and read results along with meta data. The result are streamed.
90526
90534
  * @param params The values to bind to the parameters (if the ECSQL has any).
90527
90535
  * @param config Allow to specify certain flags which control how query is executed.
90528
- * @returns Returns *ECSqlQueryReader* which help iterate over result set and also give access to meta data.
90536
+ * @returns Returns an [ECSqlReader]($common) which helps iterate over the result set and also give access to metadata.
90529
90537
  * @beta
90530
90538
  * */
90531
90539
  createQueryReader(ecsql, params, config) {
@@ -90559,6 +90567,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
90559
90567
  * @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
90560
90568
  * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
90561
90569
  * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
90570
+ * @deprecated in 3.7. Use [[createQueryReader]] instead; it accepts the same parameters.
90562
90571
  */
90563
90572
  async *query(ecsql, params, options) {
90564
90573
  const builder = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options);
@@ -90577,8 +90586,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
90577
90586
  * See "[iTwin.js Types used in ECSQL Parameter Bindings]($docs/learning/ECSQLParameterTypes)" for details.
90578
90587
  * @returns Return row count.
90579
90588
  * @throws [IModelError]($common) If the statement is invalid
90589
+ * @deprecated in 3.7. Count the number of results using `count(*)` where the original query is a subquery instead. E.g., `SELECT count(*) FROM (<query-whose-rows-to-count>)`.
90580
90590
  */
90581
90591
  async queryRowCount(ecsql, params) {
90592
+ // eslint-disable-next-line deprecation/deprecation
90582
90593
  for await (const row of this.query(`select count(*) from (${ecsql})`, params)) {
90583
90594
  return row[0];
90584
90595
  }
@@ -90600,8 +90611,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
90600
90611
  * @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
90601
90612
  * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
90602
90613
  * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
90614
+ * @deprecated in 3.7. Use [[createQueryReader]] instead. Pass in the restart token as part of the `config` argument; e.g., `{ restartToken: myToken }` or `new QueryOptionsBuilder().setRestartToken(myToken).getOptions()`.
90603
90615
  */
90604
90616
  async *restartQuery(token, ecsql, params, options) {
90617
+ // eslint-disable-next-line deprecation/deprecation
90605
90618
  for await (const row of this.query(ecsql, params, new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options).setRestartToken(token).getOptions())) {
90606
90619
  yield row;
90607
90620
  }
@@ -91144,6 +91157,7 @@ class SnapshotConnection extends IModelConnection {
91144
91157
  break;
91145
91158
  }
91146
91159
  const placements = new Array();
91160
+ // eslint-disable-next-line deprecation/deprecation
91147
91161
  for await (const row of this._iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
91148
91162
  const origin = [row.x, row.y, row.z];
91149
91163
  const bbox = {
@@ -95584,6 +95598,7 @@ class SheetViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_14__.ViewState2
95584
95598
  async queryAttachmentIds() {
95585
95599
  const ecsql = `SELECT ECInstanceId as attachmentId FROM bis.ViewAttachment WHERE model.Id=${this.baseModelId}`;
95586
95600
  const ids = [];
95601
+ // eslint-disable-next-line deprecation/deprecation
95587
95602
  for await (const row of this.iModel.query(ecsql))
95588
95603
  ids.push(row[0]);
95589
95604
  return ids;
@@ -97846,6 +97861,7 @@ class ViewCreator2d {
97846
97861
  */
97847
97862
  this._executeQuery = async (query) => {
97848
97863
  const rows = [];
97864
+ // eslint-disable-next-line deprecation/deprecation
97849
97865
  for await (const row of this._imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames }))
97850
97866
  rows.push(row.id);
97851
97867
  return rows;
@@ -97934,6 +97950,7 @@ class ViewCreator2d {
97934
97950
  async _addSheetViewProps(modelId, props) {
97935
97951
  let width = 0;
97936
97952
  let height = 0;
97953
+ // eslint-disable-next-line deprecation/deprecation
97937
97954
  for await (const row of this._imodel.query(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryBinder.from([modelId]), { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
97938
97955
  width = row.width;
97939
97956
  height = row.height;
@@ -98061,6 +98078,7 @@ class ViewCreator3d {
98061
98078
  */
98062
98079
  this._executeQuery = async (query) => {
98063
98080
  const rows = [];
98081
+ // eslint-disable-next-line deprecation/deprecation
98064
98082
  for await (const row of this._imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames }))
98065
98083
  rows.push(row.id);
98066
98084
  return rows;
@@ -98719,12 +98737,10 @@ class ViewManager {
98719
98737
  const msg = await hit.iModel.getToolTipMessage(hit.sourceId); // wait for the locate message(s) from the backend
98720
98738
  return _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.formatElementToolTip(msg);
98721
98739
  }
98722
- /** Add a new [[ToolTipProvider]] to customize the locate tooltip.
98723
- * @internal
98740
+ /** Register a new [[ToolTipProvider]] to customize the locate tooltip.
98724
98741
  * @param provider The new tooltip provider to add.
98725
- * @throws Error if provider is already active.
98742
+ * @throws Error if `provider` is already registered.
98726
98743
  * @returns a function that may be called to remove this provider (in lieu of calling [[dropToolTipProvider]].)
98727
- * @see [[dropToolTipProvider]]
98728
98744
  */
98729
98745
  addToolTipProvider(provider) {
98730
98746
  if (this.toolTipProviders.includes(provider))
@@ -98733,8 +98749,7 @@ class ViewManager {
98733
98749
  return () => this.dropToolTipProvider(provider);
98734
98750
  }
98735
98751
  /** Drop (remove) a [[ToolTipProvider]] so it is no longer active.
98736
- * @internal
98737
- * @param provider The tooltip to drop.
98752
+ * @param provider The tooltip provider to drop.
98738
98753
  * @note Does nothing if provider is not currently active.
98739
98754
  */
98740
98755
  dropToolTipProvider(provider) {
@@ -99464,7 +99479,6 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
99464
99479
  }
99465
99480
  /** Execute a function against each [[TileTreeReference]] associated with this view.
99466
99481
  * @note This may include tile trees not associated with any [[GeometricModelState]] - e.g., context reality data.
99467
- * @internal
99468
99482
  */
99469
99483
  forEachTileTreeRef(func) {
99470
99484
  this.forEachModelTreeRef(func);
@@ -100248,7 +100262,7 @@ class ViewState3d extends ViewState {
100248
100262
  val.camera = this.camera;
100249
100263
  return val;
100250
100264
  }
100251
- /** @internal */
100265
+ /** See [[ViewState.is3d]]. */
100252
100266
  is3d() { return true; }
100253
100267
  /** @internal */
100254
100268
  isDrawingView() { return false; }
@@ -100923,7 +100937,7 @@ class ViewState2d extends ViewState {
100923
100937
  val.baseModelId = this.baseModelId;
100924
100938
  return val;
100925
100939
  }
100926
- /** @internal */
100940
+ /** See [[ViewState.is3d]]. */
100927
100941
  is3d() { return false; }
100928
100942
  /** @internal */
100929
100943
  isSpatialView() { return false; }
@@ -101791,7 +101805,7 @@ class Viewport {
101791
101805
  this._decorationsValid = false;
101792
101806
  _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.requestNextAnimation();
101793
101807
  }
101794
- /** Mark the viewport's scene as invalid, so that the next call to [[renderFrame]] will recreate it.
101808
+ /** Mark the viewport's scene as having changed, so that the next call to [[renderFrame]] will recreate it.
101795
101809
  * This method is not typically invoked directly - the scene is automatically invalidated in response to events such as moving the viewing frustum,
101796
101810
  * changing the set of viewed models, new tiles being loaded, etc.
101797
101811
  */
@@ -101800,12 +101814,17 @@ class Viewport {
101800
101814
  this._timePointValid = false;
101801
101815
  this.invalidateDecorations();
101802
101816
  }
101803
- /** @internal */
101817
+ /** Mark the viewport's "render plan" as having changed, so that the next call to [[renderFrame]] will recreate it.
101818
+ * This method is not typically invoked directly - the render plan is automatically invalidated in response to events such as changing aspects
101819
+ * of the viewport's [[displayStyle]].
101820
+ */
101804
101821
  invalidateRenderPlan() {
101805
101822
  this._renderPlanValid = false;
101806
101823
  this.invalidateScene();
101807
101824
  }
101808
- /** @internal */
101825
+ /** Mark the viewport's [[ViewState]] as having changed, so that the next call to [[renderFrame]] will invoke [[setupFromView]] to synchronize with the view.
101826
+ * This method is not typically invoked directly - the controller is automatically invalidated in response to events such as a call to [[changeView]].
101827
+ */
101809
101828
  invalidateController() {
101810
101829
  this._controllerValid = this._analysisFractionValid = false;
101811
101830
  this.invalidateRenderPlan();
@@ -102503,10 +102522,9 @@ class Viewport {
102503
102522
  _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.requestNextAnimation();
102504
102523
  }
102505
102524
  }
102506
- /** This gives each Viewport a unique Id, which can be used for comparing and sorting Viewport objects inside collections.
102507
- * @internal
102525
+ /** A unique integer Id assigned to this Viewport upon construction.
102526
+ * It can be useful for comparing and sorting Viewport objects inside of collections like [SortedArray]($core-bentley).
102508
102527
  */
102509
- /** A unique integer Id for this viewport that can be used for comparing and sorting Viewport objects inside collections like [SortedArray]($core-bentley)s. */
102510
102528
  get viewportId() {
102511
102529
  return this._viewportId;
102512
102530
  }
@@ -102683,7 +102701,7 @@ class Viewport {
102683
102701
  if (this._mapTiledGraphicsProvider)
102684
102702
  this._mapTiledGraphicsProvider.forEachTileTreeRef(this, (ref) => func(ref));
102685
102703
  }
102686
- /** @internal */
102704
+ /** Apply a function to every [[TileTreeReference]] displayed by this viewport. */
102687
102705
  forEachTileTreeRef(func) {
102688
102706
  this.view.forEachTileTreeRef(func);
102689
102707
  this.forEachTiledGraphicsProviderTree(func);
@@ -103238,9 +103256,10 @@ class Viewport {
103238
103256
  // producing a flicker to that frustum during the first frame of animation.
103239
103257
  this.animate();
103240
103258
  }
103241
- /** Used strictly by TwoWayViewportSync to change the reactive viewport's view to a clone of the active viewport's ViewState.
103242
- * Does *not* trigger "ViewState changed" events.
103243
- * @internal
103259
+ /** Replace this viewport's [[ViewState]] **without** triggering events like [[onChangeView]].
103260
+ * This is chiefly useful when you are synchronizing the states of two or more viewports, as in [[TwoWayViewportSync]], to avoid triggering unwanted "echo"
103261
+ * events during synchronization.
103262
+ * In all other scenarios, [[changeView]] is the correct method to use.
103244
103263
  */
103245
103264
  applyViewState(val) {
103246
103265
  this.updateChangeFlags(val);
@@ -103691,7 +103710,7 @@ class Viewport {
103691
103710
  queryVisibleFeatures(options, callback) {
103692
103711
  return (0,_render_VisibleFeature__WEBPACK_IMPORTED_MODULE_29__.queryVisibleFeatures)(this, options, callback);
103693
103712
  }
103694
- /** @internal */
103713
+ /** Record graphics memory consumed by this viewport. */
103695
103714
  collectStatistics(stats) {
103696
103715
  const trees = new _tile_internal__WEBPACK_IMPORTED_MODULE_22__.DisclosedTileTreeSet();
103697
103716
  this.discloseTileTrees(trees);
@@ -104171,7 +104190,7 @@ class ScreenViewport extends Viewport {
104171
104190
  setCursor(cursor = "default") {
104172
104191
  this.canvas.style.cursor = cursor;
104173
104192
  }
104174
- /** @internal */
104193
+ /** See [[Viewport.synchWithView]]. */
104175
104194
  synchWithView(options) {
104176
104195
  options = options ?? {};
104177
104196
  if (this.view.is3d() && options?.globalAlignment)
@@ -108972,6 +108991,9 @@ __webpack_require__.r(__webpack_exports__);
108972
108991
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
108973
108992
  * See LICENSE.md in the project root for license terms and full copyright notice.
108974
108993
  *--------------------------------------------------------------------------------------------*/
108994
+ /** @packageDocumentation
108995
+ * @module Utils
108996
+ */
108975
108997
 
108976
108998
 
108977
108999
 
@@ -108989,6 +109011,7 @@ __webpack_require__.r(__webpack_exports__);
108989
109011
  * (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.
108990
109012
  * (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.
108991
109013
  * (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.
109014
+ * @note The APIs within this namespace are intended *strictly* for use with unit tests.
108992
109015
  * @internal
108993
109016
  */
108994
109017
  var MockRender;
@@ -109041,14 +109064,12 @@ var MockRender;
109041
109064
  }
109042
109065
  }
109043
109066
  MockRender.Builder = Builder;
109044
- /** @internal */
109045
109067
  class Graphic extends _RenderGraphic__WEBPACK_IMPORTED_MODULE_5__.RenderGraphic {
109046
109068
  constructor() { super(); }
109047
109069
  dispose() { }
109048
109070
  collectStatistics(_stats) { }
109049
109071
  }
109050
109072
  MockRender.Graphic = Graphic;
109051
- /** @internal */
109052
109073
  class List extends Graphic {
109053
109074
  constructor(graphics) {
109054
109075
  super();
@@ -109061,7 +109082,6 @@ var MockRender;
109061
109082
  }
109062
109083
  }
109063
109084
  MockRender.List = List;
109064
- /** @internal */
109065
109085
  class Branch extends Graphic {
109066
109086
  constructor(branch, transform, options) {
109067
109087
  super();
@@ -109072,7 +109092,6 @@ var MockRender;
109072
109092
  dispose() { this.branch.dispose(); }
109073
109093
  }
109074
109094
  MockRender.Branch = Branch;
109075
- /** @internal */
109076
109095
  class Batch extends Graphic {
109077
109096
  constructor(graphic, featureTable, range) {
109078
109097
  super();
@@ -109097,14 +109116,16 @@ var MockRender;
109097
109116
  collectStatistics() { }
109098
109117
  }
109099
109118
  MockRender.AreaPattern = AreaPattern;
109100
- /** @internal */
109101
109119
  class System extends _RenderSystem__WEBPACK_IMPORTED_MODULE_6__.RenderSystem {
109102
109120
  get isValid() { return true; }
109103
109121
  dispose() { }
109104
109122
  get maxTextureSize() { return 4096; }
109105
109123
  constructor() { super(); }
109124
+ /** @internal */
109106
109125
  doIdleWork() { return false; }
109126
+ /** @internal */
109107
109127
  createTarget(canvas) { return new OnScreenTarget(this, canvas); }
109128
+ /** @internal */
109108
109129
  createOffscreenTarget(rect) { return new OffScreenTarget(this, rect); }
109109
109130
  createGraphic(options) {
109110
109131
  return new Builder(this, options);
@@ -109112,20 +109133,26 @@ var MockRender;
109112
109133
  createGraphicList(primitives) { return new List(primitives); }
109113
109134
  createGraphicBranch(branch, transform, options) { return new Branch(branch, transform, options); }
109114
109135
  createBatch(graphic, features, range) { return new Batch(graphic, features, range); }
109136
+ /** @internal */
109115
109137
  createMesh(_params) { return new Graphic(); }
109138
+ /** @internal */
109116
109139
  createPolyline(_params) { return new Graphic(); }
109140
+ /** @internal */
109117
109141
  createPointString(_params) { return new Graphic(); }
109142
+ /** @internal */
109118
109143
  createPointCloud(_args, _imodel) { return new Graphic(); }
109119
109144
  createRenderGraphic() { return new Graphic(); }
109145
+ /** @internal */
109120
109146
  createMeshGeometry() { return new Geometry(); }
109147
+ /** @internal */
109121
109148
  createPolylineGeometry() { return new Geometry(); }
109149
+ /** @internal */
109122
109150
  createPointStringGeometry() { return new Geometry(); }
109151
+ /** @internal */
109123
109152
  createAreaPattern() { return new AreaPattern(); }
109124
109153
  }
109125
109154
  MockRender.System = System;
109126
- /** An implementation of IModelApp which uses a MockRender.System by default.
109127
- * @internal
109128
- */
109155
+ /** An implementation of IModelApp which uses a MockRender.System by default. */
109129
109156
  class App {
109130
109157
  static async startup(opts) {
109131
109158
  opts = opts ? opts : {};
@@ -109863,8 +109890,9 @@ __webpack_require__.r(__webpack_exports__);
109863
109890
  /** @packageDocumentation
109864
109891
  * @module Rendering
109865
109892
  */
109866
- /** Contains metadata about memory consumed by the render system or aspect thereof.
109867
- * @internal
109893
+ /** APIs for querying memory consumed by the [[RenderSystem]].
109894
+ * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
109895
+ * @public
109868
109896
  */
109869
109897
  var RenderMemory;
109870
109898
  (function (RenderMemory) {
@@ -109950,64 +109978,113 @@ var RenderMemory;
109950
109978
  ConsumerType[ConsumerType["ThematicTextures"] = 9] = "ThematicTextures";
109951
109979
  ConsumerType[ConsumerType["COUNT"] = 10] = "COUNT";
109952
109980
  })(ConsumerType = RenderMemory.ConsumerType || (RenderMemory.ConsumerType = {}));
109953
- /** @internal */
109981
+ /** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].
109982
+ * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
109983
+ * @see [[Statistics.create]] to instantiate an instance of this class.
109984
+ * @public
109985
+ */
109954
109986
  class Statistics {
109987
+ /** @internal */
109955
109988
  constructor() {
109956
109989
  this._totalBytes = 0;
109990
+ /** @internal */
109957
109991
  this.buffers = new Buffers();
109958
109992
  this.consumers = [];
109959
109993
  for (let i = 0; i < ConsumerType.COUNT; i++)
109960
109994
  this.consumers[i] = new Consumers();
109961
109995
  }
109996
+ /** Create a new, empty statistics object. */
109997
+ static create() {
109998
+ return new Statistics();
109999
+ }
110000
+ /** The total reported memory consumption, in bytes.
110001
+ * @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage
110002
+ * is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes
110003
+ * its own additional overhead.
110004
+ */
109962
110005
  get totalBytes() { return this._totalBytes; }
110006
+ /** @internal */
109963
110007
  get textures() { return this.consumers[ConsumerType.Textures]; }
110008
+ /** @internal */
109964
110009
  get vertexTables() { return this.consumers[ConsumerType.VertexTables]; }
110010
+ /** @internal */
109965
110011
  get edgeTables() { return this.consumers[ConsumerType.EdgeTables]; }
110012
+ /** @internal */
109966
110013
  get featureTables() { return this.consumers[ConsumerType.FeatureTables]; }
110014
+ /** @internal */
109967
110015
  get thematicTextures() { return this.consumers[ConsumerType.ThematicTextures]; }
110016
+ /** @internal */
109968
110017
  get featureOverrides() { return this.consumers[ConsumerType.FeatureOverrides]; }
110018
+ /** @internal */
109969
110019
  get clipVolumes() { return this.consumers[ConsumerType.ClipVolumes]; }
110020
+ /** @internal */
109970
110021
  get planarClassifiers() { return this.consumers[ConsumerType.PlanarClassifiers]; }
110022
+ /** @internal */
109971
110023
  get shadowMaps() { return this.consumers[ConsumerType.ShadowMaps]; }
110024
+ /** @internal */
109972
110025
  get textureAttachments() { return this.consumers[ConsumerType.TextureAttachments]; }
110026
+ /** @internal */
109973
110027
  addBuffer(type, numBytes) {
109974
110028
  this._totalBytes += numBytes;
109975
110029
  this.buffers.addBuffer(type, numBytes);
109976
110030
  }
110031
+ /** @internal */
109977
110032
  addConsumer(type, numBytes) {
109978
110033
  this._totalBytes += numBytes;
109979
110034
  this.consumers[type].addConsumer(numBytes);
109980
110035
  }
110036
+ /** @internal */
109981
110037
  clear() {
109982
110038
  this._totalBytes = 0;
109983
110039
  this.buffers.clear();
109984
110040
  for (const consumer of this.consumers)
109985
110041
  consumer.clear();
109986
110042
  }
110043
+ /** @internal */
109987
110044
  addTexture(numBytes) { this.addConsumer(ConsumerType.Textures, numBytes); }
110045
+ /** @internal */
109988
110046
  addVertexTable(numBytes) { this.addConsumer(ConsumerType.VertexTables, numBytes); }
110047
+ /** @internal */
109989
110048
  addEdgeTable(numBytes) { this.addConsumer(ConsumerType.EdgeTables, numBytes); }
110049
+ /** @internal */
109990
110050
  addFeatureTable(numBytes) { this.addConsumer(ConsumerType.FeatureTables, numBytes); }
110051
+ /** @internal */
109991
110052
  addThematicTexture(numBytes) { this.addConsumer(ConsumerType.ThematicTextures, numBytes); }
110053
+ /** @internal */
109992
110054
  addFeatureOverrides(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
110055
+ /** @internal */
109993
110056
  addClipVolume(numBytes) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }
110057
+ /** @internal */
109994
110058
  addPlanarClassifier(numBytes) { this.addConsumer(ConsumerType.PlanarClassifiers, numBytes); }
110059
+ /** @internal */
109995
110060
  addShadowMap(numBytes) { this.addConsumer(ConsumerType.ShadowMaps, numBytes); }
110061
+ /** @internal */
109996
110062
  addTextureAttachment(numBytes) { this.addConsumer(ConsumerType.TextureAttachments, numBytes); }
110063
+ /** @internal */
109997
110064
  addSurface(numBytes) { this.addBuffer(BufferType.Surfaces, numBytes); }
110065
+ /** @internal */
109998
110066
  addVisibleEdges(numBytes) { this.addBuffer(BufferType.VisibleEdges, numBytes); }
110067
+ /** @internal */
109999
110068
  addIndexedEdges(numBytes) { this.addBuffer(BufferType.IndexedEdges, numBytes); }
110069
+ /** @internal */
110000
110070
  addSilhouetteEdges(numBytes) { this.addBuffer(BufferType.SilhouetteEdges, numBytes); }
110071
+ /** @internal */
110001
110072
  addPolylineEdges(numBytes) { this.addBuffer(BufferType.PolylineEdges, numBytes); }
110073
+ /** @internal */
110002
110074
  addPolyline(numBytes) { this.addBuffer(BufferType.Polylines, numBytes); }
110075
+ /** @internal */
110003
110076
  addPointString(numBytes) { this.addBuffer(BufferType.PointStrings, numBytes); }
110077
+ /** @internal */
110004
110078
  addPointCloud(numBytes) { this.addBuffer(BufferType.PointClouds, numBytes); }
110079
+ /** @internal */
110005
110080
  addTerrain(numBytes) {
110006
110081
  this.addBuffer(BufferType.Terrain, numBytes);
110007
110082
  }
110083
+ /** @internal */
110008
110084
  addRealityMesh(numBytes) {
110009
110085
  this.addBuffer(BufferType.RealityMesh, numBytes);
110010
110086
  }
110087
+ /** @internal */
110011
110088
  addInstances(numBytes) { this.addBuffer(BufferType.Instances, numBytes); }
110012
110089
  }
110013
110090
  RenderMemory.Statistics = Statistics;
@@ -153939,7 +154016,7 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
153939
154016
  if (!contentRange.isNull)
153940
154017
  union.extendRange(contentRange);
153941
154018
  }
153942
- /** @internal */
154019
+ /** Record graphics memory consumed by this tile tree reference. */
153943
154020
  collectStatistics(stats) {
153944
154021
  const tree = this.treeOwner.tileTree;
153945
154022
  if (undefined !== tree)
@@ -165583,6 +165660,7 @@ class ElementSetTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.Primiti
165583
165660
  ids.add(id);
165584
165661
  try {
165585
165662
  const ecsql = `SELECT ECInstanceId as id, Parent.Id as parentId FROM BisCore.GeometricElement WHERE Parent.Id IN (SELECT Parent.Id as parentId FROM BisCore.GeometricElement WHERE parent.Id != 0 AND ECInstanceId IN (${id}))`;
165663
+ // eslint-disable-next-line deprecation/deprecation
165586
165664
  for await (const row of this.iModel.query(ecsql, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
165587
165665
  ids.add(row.parentId);
165588
165666
  ids.add(row.id);
@@ -213215,22 +213293,25 @@ class Matrix3d {
213215
213293
  return result;
213216
213294
  }
213217
213295
  /**
213218
- * Multiply `this` Matrix3d (considered as a Transform with 0 translation) times `other` Transform.
213296
+ * Multiply `this` Matrix3d (considered to be a Transform with 0 `origin`) times `other` Transform.
213297
+ * **Note:** If `other = [B b]`, then we promote `this` matrix to be a Transform [A 0].
213298
+ * Then `this * other` is defined as [A*B Aa]. That's because we create a 4x4 matrix for each Transform
213299
+ * with the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we
213300
+ * multiply those two 4x4 matrixes:
213219
213301
  * ```
213220
213302
  * equation
213221
213303
  * \begin{matrix}
213222
- * \text{This matrix }\bold{A}\text{ promoted to block transform} & \blockTransform{A}{0} \\
213223
- * \text{other transform with matrix part }\bold{B}\text{ and translation }\bold{b} & \blockTransform{B}{b}\\
213304
+ * \text{`this` matrix }\bold{A}\text{ promoted to block Transform} & \blockTransform{A}{0} \\
213305
+ * \text{`other` Transform with `matrix` part }\bold{B}\text{ and `origin` part }\bold{b} & \blockTransform{B}{b}\\
213224
213306
  * \text{product}& \blockTransform{A}{0}\blockTransform{B}{b}=\blockTransform{AB}{Ab}
213225
213307
  * \end{matrix}
213226
213308
  * ```
213227
- * @param other Right hand Matrix3d for multiplication.
213228
- * @param result the Transform result (optional)
213309
+ * @param other the `other` Transform to be multiplied to `this` matrix.
213310
+ * @param result optional preallocated result to reuse.
213229
213311
  */
213230
213312
  multiplyMatrixTransform(other, result) {
213231
213313
  if (!result)
213232
213314
  return _Transform__WEBPACK_IMPORTED_MODULE_5__.Transform.createRefs(this.multiplyXYZ(other.origin.x, other.origin.y, other.origin.z), this.multiplyMatrixMatrix(other.matrix));
213233
- // be sure to do the point multiplication first before aliasing changes the matrix
213234
213315
  this.multiplyXYZtoXYZ(other.origin, result.origin);
213235
213316
  this.multiplyMatrixMatrix(other.matrix, result.matrix);
213236
213317
  return result;
@@ -223053,11 +223134,15 @@ __webpack_require__.r(__webpack_exports__);
223053
223134
  * * The math for a Transform `T` consisting of a Matrix3d `M` and a Point3d `o` on a Vector3d `p` is: `Tp = M*p + o`.
223054
223135
  * In other words, `T` is a combination of two operations on `p`: the action of matrix multiplication, followed by a
223055
223136
  * translation. `Origin` is a traditional term for `o`, because `T` can be interpreted as a change of basis from the
223056
- * global axes centered at the global origin, to a new set of axes centered at `o`.
223057
- * * Beware that for common transformations (e.g. scale about point, rotate around an axis, mirror across a
223058
- * plane) the "fixed point" that is used when describing the transform is NOT the "origin" stored in the
223059
- * transform. Setup methods (e.g createFixedPointAndMatrix, createScaleAboutPoint) take care of determining
223060
- * the appropriate origin coordinates.
223137
+ * global axes centered at the global origin, to a new set of axes specified by matrix M columns centered at `o`.
223138
+ * * Beware that for common transformations (e.g. scale about point, rotate around an axis) the `fixed point` that
223139
+ * is used when describing the transform is NOT the `origin` stored in the transform. Setup methods (e.g
223140
+ * createFixedPointAndMatrix, createScaleAboutPoint) take care of determining the appropriate origin coordinates.
223141
+ * * If `T` is a translation, no point is fixed by `T`.
223142
+ * * If `T` is the identity, all points are fixed by `T`.
223143
+ * * If `T` is a scale about a point, one point is fixed by `T`.
223144
+ * * If `T` is a rotation about an axis, a line is fixed by `T`.
223145
+ * * If `T` is a projection to the plane, a plane is fixed by `T`.
223061
223146
  * @public
223062
223147
  */
223063
223148
  class Transform {
@@ -223350,22 +223435,32 @@ class Transform {
223350
223435
  const origin = _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzMinusMatrixTimesXYZ(fixedPoint, matrix, fixedPoint);
223351
223436
  return Transform.createRefs(origin, matrix, result);
223352
223437
  }
223353
- /** Transform the input 2d point. Return as a new point or in the pre-allocated result (if result is given). */
223438
+ /**
223439
+ * Transform the input 2d point (using `Tp = M*p + o`).
223440
+ * Return as a new point or in the pre-allocated result (if result is given).
223441
+ */
223354
223442
  multiplyPoint2d(point, result) {
223355
- // Tx = Mx + o so we return Mx + o
223356
223443
  return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, point, result);
223357
223444
  }
223358
- /** Transform the input 3d point. Return as a new point or in the pre-allocated result (if result is given). */
223445
+ /**
223446
+ * Transform the input 3d point (using `Tp = M*p + o`).
223447
+ * Return as a new point or in the pre-allocated result (if result is given).
223448
+ */
223359
223449
  multiplyPoint3d(point, result) {
223360
223450
  // Tx = Mx + o so we return Mx + o
223361
223451
  return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, point, result);
223362
223452
  }
223363
- /** Transform the input 3d point in place (override the input point by the transformed point). */
223453
+ /**
223454
+ * Transform the input 3d point in place (using `Tp = M*p + o`).
223455
+ * Return as a new point or in the pre-allocated result (if result is given).
223456
+ */
223364
223457
  multiplyXYAndZInPlace(point) {
223365
- // Tx = Mx + o so we override x by Mx + o
223366
223458
  return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZInPlace(this._origin, this._matrix, point);
223367
223459
  }
223368
- /** Transform the input point. Return as a new point or in the pre-allocated result (if result is given). */
223460
+ /**
223461
+ * Transform the input 3d point (using `Tp = M*p + o`).
223462
+ * Return as a new point or in the pre-allocated result (if result is given).
223463
+ */
223369
223464
  multiplyXYZ(x, y, z = 0, result) {
223370
223465
  // Tx = Mx + o so we return Mx + o
223371
223466
  return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesCoordinates(this._origin, this._matrix, x, y, z, result);
@@ -223411,7 +223506,7 @@ class Transform {
223411
223506
  return _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesCoordinatesToFloat64Array(this._origin, this._matrix, x, y, z, result);
223412
223507
  }
223413
223508
  /**
223414
- * Treat the 3x3 matrix and origin as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
223509
+ * Treat the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix, with 0001 as the final row. Now multiply
223415
223510
  * the transposed of this 4x4 matrix by Point4d given as xyzw. Return as a new point4d (`M*p` as first 3 elements
223416
223511
  * and `o*p + w` as last element where `p = (x,y,z)`) or in the pre-allocated result (if result is given).
223417
223512
  */
@@ -223420,13 +223515,13 @@ class Transform {
223420
223515
  const origin = this._origin;
223421
223516
  return _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_3__.Point4d.create((x * coffs[0]) + (y * coffs[3]) + (z * coffs[6]), (x * coffs[1]) + (y * coffs[4]) + (z * coffs[7]), (x * coffs[2]) + (y * coffs[5]) + (z * coffs[8]), (x * origin.x) + (y * origin.y) + (z * origin.z) + w, result);
223422
223517
  }
223423
- /** For each point in the array, replace point by the transformed point (by `Tp = M*p + o`) */
223518
+ /** For each point in the array, replace point by the transformed point (using `Tp = M*p + o`) */
223424
223519
  multiplyPoint3dArrayInPlace(points) {
223425
223520
  let point;
223426
223521
  for (point of points)
223427
223522
  _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, point, point);
223428
223523
  }
223429
- /** For each point in the 2d array, replace point by the transformed point (by `Tp = M*p + o`) */
223524
+ /** For each point in the 2d array, replace point by the transformed point (using `Tp = M*p + o`) */
223430
223525
  multiplyPoint3dArrayArrayInPlace(chains) {
223431
223526
  for (const chain of chains)
223432
223527
  this.multiplyPoint3dArrayInPlace(chain);
@@ -223463,58 +223558,23 @@ class Transform {
223463
223558
  return this._matrix.multiplyInverseXYZAsPoint3d(x - this._origin.x, y - this._origin.y, z - this._origin.z, result);
223464
223559
  }
223465
223560
  /**
223466
- * * for each point: multiply transform * point
223467
- * * if result is given, resize to match source and replace each corresponding pi
223468
- * * if result is not given, return a new array.
223469
- */
223470
- multiplyInversePoint3dArray(source, result) {
223471
- if (!this._matrix.computeCachedInverse(true))
223472
- return undefined;
223473
- const originX = this.origin.x;
223474
- const originY = this.origin.y;
223475
- const originZ = this.origin.z;
223476
- if (result) {
223477
- const n = Transform.matchArrayLengths(source, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
223478
- for (let i = 0; i < n; i++)
223479
- this._matrix.multiplyInverseXYZAsPoint3d(source[i].x - originX, source[i].y - originY, source[i].z - originZ, result[i]);
223480
- }
223481
- result = [];
223482
- for (const p of source)
223483
- result.push(this._matrix.multiplyInverseXYZAsPoint3d(p.x - originX, p.y - originY, p.z - originZ));
223484
- return result;
223485
- }
223486
- /**
223487
- * * For each point in source: multiply transformInverse * point in place in the point.
223488
- * * Return false if not invertible.
223489
- */
223490
- multiplyInversePoint3dArrayInPlace(source) {
223491
- if (!this._matrix.computeCachedInverse(true))
223492
- return false;
223493
- const originX = this.origin.x;
223494
- const originY = this.origin.y;
223495
- const originZ = this.origin.z;
223496
- const n = source.length;
223497
- for (let i = 0; i < n; i++)
223498
- this._matrix.multiplyInverseXYZAsPoint3d(source[i].x - originX, source[i].y - originY, source[i].z - originZ, source[i]);
223499
- return true;
223500
- }
223501
- /**
223502
- * * Compute (if needed) the inverse of the matrix part, thereby ensuring inverse operations can complete.
223503
- * * Return true if matrix inverse completes.
223561
+ * * Compute (if needed) the inverse of the `matrix` part of the Transform, thereby ensuring inverse
223562
+ * operations can complete.
223504
223563
  * @param useCached If true, accept prior cached inverse if available.
223564
+ * @returns `true` if matrix inverse completes, `false` otherwise.
223505
223565
  */
223506
223566
  computeCachedInverse(useCached = true) {
223507
223567
  return this._matrix.computeCachedInverse(useCached);
223508
223568
  }
223509
223569
  /**
223510
- * * If destination has more values than source, remove the extras.
223511
- * * If destination has fewer values, use the constructionFunction to create new ones.
223512
- * @param source array
223513
- * @param dest destination array, to be modified to match source length
223514
- * @param constructionFunction function to call to create new entries.
223570
+ * Match the length of destination array with the length of source array
223571
+ * * If destination has more elements than source, remove the extra elements.
223572
+ * * If destination has fewer elements than source, use `constructionFunction` to create new elements.
223573
+ * *
223574
+ * @param source the source array
223575
+ * @param dest the destination array
223576
+ * @param constructionFunction function to call to create new elements.
223515
223577
  */
223516
- // modify destination so it has non-null points for the same length as the source.
223517
- // (ASSUME existing elements of dest are non-null, and that parameters are given as either Point2d or Point3d arrays)
223518
223578
  static matchArrayLengths(source, dest, constructionFunction) {
223519
223579
  const numSource = source.length;
223520
223580
  const numDest = dest.length;
@@ -223529,72 +223589,125 @@ class Transform {
223529
223589
  return numSource;
223530
223590
  }
223531
223591
  /**
223532
- * * For each point: multiply transform * point
223533
- * * If result is given, resize to match source and replace each corresponding pi
223534
- * * If result is not given, return a new array.
223592
+ * If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
223593
+ * `p = MInverse * (point - o)`. This function returns the array of original points `p[]` if `points`
223594
+ * is the array of transformed point (`Tp = point` for each `p` and `point`).
223595
+ * * If `results` is given, resize it to match the input `points` array and update it with original points `p[]`.
223596
+ * * If `results` is not given, return a new array.
223597
+ * * Returns `undefined` if the `matrix` part if this Transform is singular.
223598
+ */
223599
+ multiplyInversePoint3dArray(points, results) {
223600
+ if (!this._matrix.computeCachedInverse(true))
223601
+ return undefined;
223602
+ const originX = this.origin.x;
223603
+ const originY = this.origin.y;
223604
+ const originZ = this.origin.z;
223605
+ if (results) {
223606
+ const n = Transform.matchArrayLengths(points, results, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
223607
+ for (let i = 0; i < n; i++)
223608
+ this._matrix.multiplyInverseXYZAsPoint3d(points[i].x - originX, points[i].y - originY, points[i].z - originZ, results[i]);
223609
+ }
223610
+ results = [];
223611
+ for (const point of points)
223612
+ results.push(this._matrix.multiplyInverseXYZAsPoint3d(point.x - originX, point.y - originY, point.z - originZ));
223613
+ return results;
223614
+ }
223615
+ /**
223616
+ * If for each point `p` we have `Tp = M*p + o = point` (where `point` is the transformed point), then
223617
+ * `p = MInverse * (point - o)`. This function calculates the array of original points `p[]` if `points`
223618
+ * is the array of transformed point (`Tp = point` for each `p` and `point`) and replaces `points`
223619
+ * with the array of original points.
223620
+ * * Returns `true` if the `matrix` part if this Transform is invertible and `false if singular.
223535
223621
  */
223536
- multiplyPoint2dArray(source, result) {
223622
+ multiplyInversePoint3dArrayInPlace(points) {
223623
+ if (!this._matrix.computeCachedInverse(true))
223624
+ return false;
223625
+ for (const point of points)
223626
+ this._matrix.multiplyInverseXYZAsPoint3d(point.x - this.origin.x, point.y - this.origin.y, point.z - this.origin.z, point);
223627
+ return true;
223628
+ }
223629
+ /**
223630
+ * Transform the input 2d point array (using `Tp = M*p + o`).
223631
+ * * If `result` is given, resize it to match the input `points` array and update it with transformed points.
223632
+ * * If `result` is not given, return a new array.
223633
+ */
223634
+ multiplyPoint2dArray(points, result) {
223537
223635
  if (result) {
223538
- const n = Transform.matchArrayLengths(source, result, _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero);
223636
+ const n = Transform.matchArrayLengths(points, result, _Point2dVector2d__WEBPACK_IMPORTED_MODULE_4__.Point2d.createZero);
223539
223637
  for (let i = 0; i < n; i++)
223540
- _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, source[i], result[i]);
223638
+ _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, points[i], result[i]);
223541
223639
  return result;
223542
223640
  }
223543
223641
  result = [];
223544
- for (const p of source)
223642
+ for (const p of points)
223545
223643
  result.push(_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyPlusMatrixTimesXY(this._origin, this._matrix, p));
223546
223644
  return result;
223547
223645
  }
223548
223646
  /**
223549
- * * For each point: multiply transform * point
223550
- * * If result is given, resize to match source and replace each corresponding pi
223551
- * * If result is not given, return a new array.
223647
+ * Transform the input 3d point array (using `Tp = M*p + o`).
223648
+ * * If `result` is given, resize it to match the input `points` array and update it with transformed points.
223649
+ * * If `result` is not given, return a new array.
223552
223650
  */
223553
- multiplyPoint3dArray(source, result) {
223651
+ multiplyPoint3dArray(points, result) {
223554
223652
  if (result) {
223555
- const n = Transform.matchArrayLengths(source, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
223653
+ const n = Transform.matchArrayLengths(points, result, _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero);
223556
223654
  for (let i = 0; i < n; i++)
223557
- _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, source[i], result[i]);
223655
+ _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, points[i], result[i]);
223558
223656
  return result;
223559
223657
  }
223560
223658
  result = [];
223561
- for (const p of source)
223659
+ for (const p of points)
223562
223660
  result.push(_Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(this._origin, this._matrix, p));
223563
223661
  return result;
223564
223662
  }
223565
223663
  /**
223566
- * Multiply the vector by the Matrix3d part of the transform.
223567
- * * The transform's origin is not used.
223568
- * * Return as new or result by usual optional result convention
223664
+ * Multiply the vector by the `matrix` part of the Transform.
223665
+ * * The `origin` part of Transform is not used.
223666
+ * * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
223569
223667
  */
223570
223668
  multiplyVector(vector, result) {
223571
223669
  return this._matrix.multiplyVector(vector, result);
223572
223670
  }
223573
223671
  /**
223574
- * Multiply the vector in place by the Matrix3d part of the transform.
223575
- * * The transform's origin is not used.
223672
+ * Multiply the vector by the `matrix` part of the Transform in place.
223673
+ * * The `origin` part of Transform is not used.
223576
223674
  */
223577
223675
  multiplyVectorInPlace(vector) {
223578
223676
  this._matrix.multiplyVectorInPlace(vector);
223579
223677
  }
223580
223678
  /**
223581
- * Multiply the vector (x,y,z) by the Matrix3d part of the transform.
223582
- * * The transform's origin is not used.
223583
- * * Return as new or result by usual optional result convention
223679
+ * Multiply the vector (x,y,z) by the `matrix` part of the Transform.
223680
+ * * The `origin` part of Transform is not used.
223681
+ * * If `result` is given, update it with the multiplication. Otherwise, create a new Vector3d.
223584
223682
  */
223585
223683
  multiplyVectorXYZ(x, y, z, result) {
223586
223684
  return this._matrix.multiplyXYZ(x, y, z, result);
223587
223685
  }
223588
- /** Multiply this Transform times other Transform.
223686
+ /**
223687
+ * Calculate `transformA * transformB` and store it into the calling instance (`this`).
223688
+ * * **Note:** If `transformA = [A a]` and `transformB = [B b]` then `transformA * transformB` is defined as
223689
+ * `[A*B Ab+a]`. See `multiplyTransformTransform` doc for math details.
223690
+ * @param transformA first operand
223691
+ * @param transformB second operand
223692
+ */
223693
+ setMultiplyTransformTransform(transformA, transformB) {
223694
+ _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(transformA._origin, transformA._matrix, transformB._origin, this._origin);
223695
+ transformA._matrix.multiplyMatrixMatrix(transformB._matrix, this._matrix);
223696
+ }
223697
+ /**
223698
+ * Multiply `this` Transform times `other` Transform.
223699
+ * **Note:** If `this = [A a]` and `other = [B b]` then `this * other` is defined as [A*B Ab+a].
223700
+ * That's because we create a 4x4 matrix for each Transform with the 3x3 `matrix` and `origin`
223701
+ * as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we multiply those two 4x4 matrixes:
223589
223702
  * ```
223590
223703
  * equation
223591
223704
  * \begin{matrix}
223592
- * \text{`this` transform with matrix part }\bold{A}\text{ and translation }\bold{a} & \blockTransform{A}{a}\\
223593
- * \text{`other` transform with matrix part }\bold{B}\text{ and translation part }\bold{b}\text{ promoted to block transform} & \blockTransform{B}{b} \\
223705
+ * \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
223706
+ * \text{`other` Transform with `matrix` part }\bold{B}\text{ and `origin` part }\bold{b} & \blockTransform{B}{b} \\
223594
223707
  * \text{product}& \blockTransform{A}{a}\blockTransform{B}{b}=\blockTransform{AB}{Ab + a}
223595
223708
  * \end{matrix}
223596
223709
  * ```
223597
- * @param other right hand transform for multiplication.
223710
+ * @param other the 'other` Transform to be multiplied to `this` Transform.
223598
223711
  * @param result optional preallocated result to reuse.
223599
223712
  */
223600
223713
  multiplyTransformTransform(other, result) {
@@ -223604,30 +223717,20 @@ class Transform {
223604
223717
  return result;
223605
223718
  }
223606
223719
  /**
223607
- * Multiply transformA * transformB, store to calling instance.
223608
- * @param transformA left operand
223609
- * @param transformB right operand
223610
- */
223611
- setMultiplyTransformTransform(transformA, transformB) {
223612
- if (Transform._scratchPoint === undefined)
223613
- Transform._scratchPoint = _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create();
223614
- _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.xyzPlusMatrixTimesXYZ(transformA._origin, transformA._matrix, transformB._origin, Transform._scratchPoint);
223615
- this._origin.setFrom(Transform._scratchPoint);
223616
- transformA._matrix.multiplyMatrixMatrix(transformB._matrix, this._matrix);
223617
- }
223618
- // [Q A][R 0] = [QR A]
223619
- // [0 1][0 1] [0 1]
223620
- /**
223621
- * Multiply this Transform times other Matrix3d, with other considered to be a Transform with 0 translation.
223720
+ * Multiply `this` Transform times `other` Matrix3d (considered to be a Transform with 0 `origin`).
223721
+ * **Note:** If `this = [A a]`, then we promote `other` matrix to be a Transform [B 0].
223722
+ * Then `this * other` is defined as [A*B a]. That's because we create a 4x4 matrix for each Transform
223723
+ * with the 3x3 `matrix` and `origin` as upper 3x4 part of a 4x4 matrix and 0001 as the final row. Then we
223724
+ * multiply those two 4x4 matrixes:
223622
223725
  * ```
223623
223726
  * equation
223624
223727
  * \begin{matrix}
223625
- * \text{`this` transform with matrix part }\bold{A}\text{ and translation }\bold{b} & \blockTransform{B}{b}\\
223626
- * \text{`other` matrix }\bold{B}\text{ promoted to block transform} & \blockTransform{B}{0} \\
223728
+ * \text{`this` Transform with `matrix` part }\bold{A}\text{ and `origin` part }\bold{a} & \blockTransform{A}{a}\\
223729
+ * \text{`other` matrix }\bold{B}\text{ promoted to block Transform} & \blockTransform{B}{0} \\
223627
223730
  * \text{product}& \blockTransform{A}{a}\blockTransform{B}{0}=\blockTransform{AB}{a}
223628
223731
  * \end{matrix}
223629
223732
  * ```
223630
- * @param other right hand Matrix3d for multiplication.
223733
+ * @param other the `other` Matrix3d to be multiplied to `this` Transform.
223631
223734
  * @param result optional preallocated result to reuse.
223632
223735
  */
223633
223736
  multiplyTransformMatrix3d(other, result) {
@@ -223638,15 +223741,17 @@ class Transform {
223638
223741
  return result;
223639
223742
  }
223640
223743
  /**
223641
- * Return the range of the transformed corners.
223744
+ * Return the Range of the transformed corners.
223642
223745
  * * The 8 corners are transformed individually.
223643
- * * Note that if there is anything other than translation and principal axis scaling in the transform, the volume of the range rotation will increase.
223644
- * * Hence to get a "tight" range on rotated geometry, a range computation must be made on the rotated geometry itself.
223746
+ * * **Note:** Suppose you have a geometry, a range box around that geometry, and your Transform is a rotation.
223747
+ * If you rotate the range box and recompute a new range box around the rotated range box, then the new range
223748
+ * box will have a larger volume than the original range box. However, if you rotate the geometry itself and
223749
+ * then recompute the range box, it will be a tighter range box around the rotated geometry. `multiplyRange`
223750
+ * function creates the larger range box because it only has access to the range box and the geometry itself.
223645
223751
  */
223646
223752
  multiplyRange(range, result) {
223647
223753
  if (range.isNull)
223648
223754
  return range.clone(result);
223649
- // snag current values to allow aliasing.
223650
223755
  const lowX = range.low.x;
223651
223756
  const lowY = range.low.y;
223652
223757
  const lowZ = range.low.z;
@@ -223665,9 +223770,9 @@ class Transform {
223665
223770
  return result;
223666
223771
  }
223667
223772
  /**
223668
- * * Return a Transform which is the inverse of this transform.
223669
- * @param result optional pre-allocated result
223670
- * @return the inverse Transform, or undefined if the matrix is singular
223773
+ * Return a Transform which is the inverse of `this` Transform.
223774
+ * * If `transform = [M o]` then `transformInverse = [MInverse MInverse*-o]`
223775
+ * * Return `undefined` if this Transform's matrix is singular.
223671
223776
  */
223672
223777
  inverse(result) {
223673
223778
  const matrixInverse = this._matrix.inverse(result ? result._matrix : undefined);
@@ -223681,15 +223786,15 @@ class Transform {
223681
223786
  return Transform.createRefs(matrixInverse.multiplyXYZ(-this._origin.x, -this._origin.y, -this._origin.z), matrixInverse);
223682
223787
  }
223683
223788
  /**
223684
- * Initialize transforms that map each direction of a box (axis aligned) to `[0,1]`.
223685
- * * The corner coordinates do _not_ need to be in order in any of the x,y,z directions.
223686
- * * The npcToGlobalTransform (if supplied) maps 000 to the point named point000.
223687
- * * The npcToGlobalTransform (if supplied) maps 11 to the point named point000.
223688
- * * The globalToNpc transform is the inverse.
223689
- * @param min the "000" corner of the box
223690
- * @param max the "111" corner of the box
223691
- * @param npcToGlobal (object created by caller, re-initialized here) transform that carries 01 coordinates into the min,max box.
223692
- * @param globalToNpc (object created by caller, re-initialized here) transform that carries world coordinates into 01
223789
+ * Initialize 2 Transforms: First Transform maps a box (axis aligned) specified by `min` and `max` to
223790
+ * the unit box specified by 000 and 111 and inverse of it. Second Transform is the reverse of first.
223791
+ * @param min the min corner of the box
223792
+ * @param max the max corner of the box
223793
+ * @param npcToGlobal maps global (the unit box specified by 000 and 111) to NPC (a box specified by `min`
223794
+ * and `max`). Object created by caller, re-initialized here.
223795
+ * @param globalToNpc maps NPC (a box specified by `min` and `max`) to global (the unit box specified by
223796
+ * 000 and 111). Object created by caller, re-initialized here.
223797
+ * * NPC stands for `Normalized Projection Coordinate`
223693
223798
  */
223694
223799
  static initFromRange(min, max, npcToGlobal, globalToNpc) {
223695
223800
  const diag = max.minus(min);
@@ -223700,10 +223805,26 @@ class Transform {
223700
223805
  if (diag.z === 0.0)
223701
223806
  diag.z = 1.0;
223702
223807
  const rMatrix = new _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d();
223808
+ /**
223809
+ * [diag.x 0 0 min.x]
223810
+ * npcToGlobal = [ 0 diag.y 0 min.y]
223811
+ * [ 0 0 diag.y min.z]
223812
+ *
223813
+ * npcToGlobal * 0 = min
223814
+ * npcToGlobal * 1 = diag + min = max
223815
+ */
223703
223816
  if (npcToGlobal) {
223704
223817
  _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createScale(diag.x, diag.y, diag.z, rMatrix);
223705
223818
  Transform.createOriginAndMatrix(min, rMatrix, npcToGlobal);
223706
223819
  }
223820
+ /**
223821
+ * [1/diag.x 0 0 -min.x/diag.x]
223822
+ * globalToNpc = [ 0 1/diag.y 0 -min.y/diag.y]
223823
+ * [ 0 0 1/diag.y -min.z/diag.z]
223824
+ *
223825
+ * globalToNpc * min = min/diag - min/diag = 0
223826
+ * globalToNpc * max = max/diag - min/diag = diag/diag = 1
223827
+ */
223707
223828
  if (globalToNpc) {
223708
223829
  const origin = new _Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d(-min.x / diag.x, -min.y / diag.y, -min.z / diag.z);
223709
223830
  _Matrix3d__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.createScale(1.0 / diag.x, 1.0 / diag.y, 1.0 / diag.z, rMatrix);
@@ -280639,7 +280760,7 @@ class TestContext {
280639
280760
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
280640
280761
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
280641
280762
  await core_frontend_1.NoRenderApp.startup({
280642
- applicationVersion: "4.0.0-dev.50",
280763
+ applicationVersion: "4.0.0-dev.52",
280643
280764
  applicationId: this.settings.gprid,
280644
280765
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
280645
280766
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -288232,6 +288353,7 @@ class FavoritePropertiesManager {
288232
288353
  INNER JOIN ECDbMeta.ECClassDef baseClass ON baseClass.ECInstanceId = baseClassRels.TargetECInstanceId
288233
288354
  INNER JOIN ECDbMeta.ECSchemaDef baseSchema ON baseSchema.ECInstanceId = baseClass.Schema.Id
288234
288355
  WHERE (derivedSchema.Name || ':' || derivedClass.Name) IN (${[...missingClasses].map((className) => `'${className}'`).join(",")})`;
288356
+ // eslint-disable-next-line deprecation/deprecation
288235
288357
  for await (const row of imodel.query(query, undefined, { rowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryRowFormat.UseJsPropertyNames })) {
288236
288358
  if (!(row.classFullName in baseClasses))
288237
288359
  baseClasses[row.classFullName] = [];
@@ -300197,7 +300319,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
300197
300319
  /***/ ((module) => {
300198
300320
 
300199
300321
  "use strict";
300200
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.50","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":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","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 \\"./node_modules/@itwin/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:^4.0.0-dev.50","@itwin/core-bentley":"workspace:^4.0.0-dev.50","@itwin/core-common":"workspace:^4.0.0-dev.50","@itwin/core-geometry":"workspace:^4.0.0-dev.50","@itwin/core-orbitgt":"workspace:^4.0.0-dev.50","@itwin/core-quantity":"workspace:^4.0.0-dev.50"},"//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":"nightly","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/qs":"^6.5.0","@types/semver":"7.3.10","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","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.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","qs":"^6.5.3","semver":"^7.3.5","superagent":"^7.1.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"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"}}]}}');
300322
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.52","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":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","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 \\"./node_modules/@itwin/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:^4.0.0-dev.52","@itwin/core-bentley":"workspace:^4.0.0-dev.52","@itwin/core-common":"workspace:^4.0.0-dev.52","@itwin/core-geometry":"workspace:^4.0.0-dev.52","@itwin/core-orbitgt":"workspace:^4.0.0-dev.52","@itwin/core-quantity":"workspace:^4.0.0-dev.52"},"//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":"nightly","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/deep-assign":"^0.1.0","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/qs":"^6.5.0","@types/semver":"7.3.10","@types/superagent":"^4.1.14","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","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.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","deep-assign":"^2.0.0","fuse.js":"^3.3.0","qs":"^6.5.3","semver":"^7.3.5","superagent":"^7.1.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"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"}}]}}');
300201
300323
 
300202
300324
  /***/ }),
300203
300325
 
@@ -300668,6 +300790,7 @@ describe("Operational: Execute Query", () => {
300668
300790
  const iModel = await testContext.iModelWithChangesets.getConnection();
300669
300791
  const query = "select count(*) nRows from(SELECT ECInstanceId FROM Bis.Element LIMIT 50)";
300670
300792
  const rows = [];
300793
+ // eslint-disable-next-line deprecation/deprecation
300671
300794
  for await (const row of iModel.query(query, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames }))
300672
300795
  rows.push(row);
300673
300796
  expect(rows).to.be.not.empty;
@@ -301383,6 +301506,7 @@ describe("Basic Scenarios", async () => {
301383
301506
  it("should open iModel and Execute Query TestCase:819343", async () => {
301384
301507
  const iModel = await testContext.iModelWithChangesets.getConnection();
301385
301508
  const rows = [];
301509
+ // eslint-disable-next-line deprecation/deprecation
301386
301510
  for await (const row of iModel.query("SELECT ECInstanceId AS id FROM BisCore.Element", undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames, limit: { count: 10 } }))
301387
301511
  rows.push(row);
301388
301512
  expect(rows).not.to.be.empty;