@itwin/rpcinterface-full-stack-tests 4.0.0-dev.60 → 4.0.0-dev.63

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.
@@ -37390,11 +37390,18 @@ __webpack_require__.r(__webpack_exports__);
37390
37390
  /* harmony export */ "Tracing": () => (/* binding */ Tracing)
37391
37391
  /* harmony export */ });
37392
37392
  /* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "../../core/bentley/lib/esm/Logger.js");
37393
+ /*---------------------------------------------------------------------------------------------
37394
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
37395
+ * See LICENSE.md in the project root for license terms and full copyright notice.
37396
+ *--------------------------------------------------------------------------------------------*/
37397
+ /** @packageDocumentation
37398
+ * @module Logging
37399
+ */
37393
37400
 
37394
37401
  // re-export so that consumers can construct full SpanOptions object without external dependencies
37395
37402
  /**
37396
- * Mirrors the SpanKind enum from [@opentelemetry/api](https://open-telemetry.github.io/opentelemetry-js-api/enums/spankind)
37397
- * @alpha
37403
+ * Mirrors the SpanKind enum from [@opentelemetry/api](https://open-telemetry.github.io/opentelemetry-js/enums/_opentelemetry_api.SpanKind.html)
37404
+ * @public
37398
37405
  */
37399
37406
  var SpanKind;
37400
37407
  (function (SpanKind) {
@@ -37452,7 +37459,7 @@ function flattenObject(obj) {
37452
37459
  }
37453
37460
  /**
37454
37461
  * Enables OpenTelemetry tracing in addition to traditional logging.
37455
- * @alpha
37462
+ * @public
37456
37463
  */
37457
37464
  class Tracing {
37458
37465
  /**
@@ -37486,7 +37493,7 @@ class Tracing {
37486
37493
  }
37487
37494
  /**
37488
37495
  * Enable logging to OpenTelemetry. [[Tracing.withSpan]] will be enabled, all log entries will be attached to active span as span events.
37489
- * [[IModelHost.startup]] will call this automatically if it succeeds in requiring `@opentelemetry/api`.
37496
+ * [IModelHost.startup]($backend) will call this automatically if the `enableOpenTelemetry` option is enabled and it succeeds in requiring `@opentelemetry/api`.
37490
37497
  * @note Node.js OpenTelemetry SDK should be initialized by the user.
37491
37498
  */
37492
37499
  static enableOpenTelemetry(tracer, api) {
@@ -37507,7 +37514,7 @@ class Tracing {
37507
37514
  };
37508
37515
  }
37509
37516
  /** Set attributes on currently active openTelemetry span. Doesn't do anything if openTelemetry logging is not initialized.
37510
- * @param attributes The attributes to set
37517
+ * @param attributes The attributes to set
37511
37518
  */
37512
37519
  static setAttributes(attributes) {
37513
37520
  Tracing._openTelemetry?.trace.getSpan(Tracing._openTelemetry.context.active())?.setAttributes(attributes);
@@ -79285,20 +79292,32 @@ var AccuDrawFlags;
79285
79292
  AccuDrawFlags[AccuDrawFlags["UpdateRotation"] = 8388608] = "UpdateRotation";
79286
79293
  AccuDrawFlags[AccuDrawFlags["SmartRotation"] = 16777216] = "SmartRotation";
79287
79294
  })(AccuDrawFlags || (AccuDrawFlags = {}));
79288
- /** @alpha */
79295
+ /** AccuDraw coordinate input mode
79296
+ * @public
79297
+ */
79289
79298
  var CompassMode;
79290
79299
  (function (CompassMode) {
79300
+ /** Coordinate input using distance and angle */
79291
79301
  CompassMode[CompassMode["Polar"] = 0] = "Polar";
79302
+ /** Coordinate input using x, y, and z deltas */
79292
79303
  CompassMode[CompassMode["Rectangular"] = 1] = "Rectangular";
79293
79304
  })(CompassMode || (CompassMode = {}));
79294
- /** @alpha */
79305
+ /** AccuDraw compass base rotation
79306
+ * @public
79307
+ */
79295
79308
  var RotationMode;
79296
79309
  (function (RotationMode) {
79310
+ /** Aligned with standard view top or ACS top when [[ToolAdmin.acsContextLock]] is enabled */
79297
79311
  RotationMode[RotationMode["Top"] = 1] = "Top";
79312
+ /** Aligned with standard view front or ACS front when [[ToolAdmin.acsContextLock]] is enabled */
79298
79313
  RotationMode[RotationMode["Front"] = 2] = "Front";
79314
+ /** Aligned with standard view right or ACS right when [[ToolAdmin.acsContextLock]] is enabled */
79299
79315
  RotationMode[RotationMode["Side"] = 3] = "Side";
79316
+ /** Aligned with view */
79300
79317
  RotationMode[RotationMode["View"] = 4] = "View";
79318
+ /** Aligned with view ACS */
79301
79319
  RotationMode[RotationMode["ACS"] = 5] = "ACS";
79320
+ /** Not aligned with a standard rotation or ACS */
79302
79321
  RotationMode[RotationMode["Context"] = 6] = "Context";
79303
79322
  })(RotationMode || (RotationMode = {}));
79304
79323
  /** @internal */
@@ -79312,12 +79331,18 @@ var LockedStates;
79312
79331
  LockedStates[LockedStates["XY_BM"] = 3] = "XY_BM";
79313
79332
  LockedStates[LockedStates["ANGLE_BM"] = 7] = "ANGLE_BM";
79314
79333
  })(LockedStates || (LockedStates = {}));
79315
- /** @internal */
79334
+ /** AccuDraw enabled states
79335
+ * @public
79336
+ */
79316
79337
  var CurrentState;
79317
79338
  (function (CurrentState) {
79339
+ /** Compass disabled/unwanted for this session */
79318
79340
  CurrentState[CurrentState["NotEnabled"] = 0] = "NotEnabled";
79341
+ /** Compass deactivated but CAN be activated by user */
79319
79342
  CurrentState[CurrentState["Deactivated"] = 1] = "Deactivated";
79343
+ /** Compass not displayed awaiting automatic activation (default tool state) */
79320
79344
  CurrentState[CurrentState["Inactive"] = 2] = "Inactive";
79345
+ /** Compass displayed and adjusting points */
79321
79346
  CurrentState[CurrentState["Active"] = 3] = "Active";
79322
79347
  })(CurrentState || (CurrentState = {}));
79323
79348
  /** @internal */
@@ -79330,13 +79355,20 @@ var ContextMode;
79330
79355
  ContextMode[ContextMode["XAxis2"] = 4] = "XAxis2";
79331
79356
  ContextMode[ContextMode["None"] = 15] = "None";
79332
79357
  })(ContextMode || (ContextMode = {}));
79333
- /** @alpha */
79358
+ /** AccuDraw coordinate input fields
79359
+ * @public
79360
+ */
79334
79361
  var ItemField;
79335
79362
  (function (ItemField) {
79363
+ /** Distance for polar mode */
79336
79364
  ItemField[ItemField["DIST_Item"] = 0] = "DIST_Item";
79365
+ /** Angle for polar mode */
79337
79366
  ItemField[ItemField["ANGLE_Item"] = 1] = "ANGLE_Item";
79367
+ /** X delta for rectangular mode */
79338
79368
  ItemField[ItemField["X_Item"] = 2] = "X_Item";
79369
+ /** Y delta for rectangular mode */
79339
79370
  ItemField[ItemField["Y_Item"] = 3] = "Y_Item";
79371
+ /** Z delta (3d only) */
79340
79372
  ItemField[ItemField["Z_Item"] = 4] = "Z_Item";
79341
79373
  })(ItemField || (ItemField = {}));
79342
79374
  /** @internal */
@@ -79448,15 +79480,16 @@ class ThreeAxes {
79448
79480
  equals(other) { return this.x.isExactEqual(other.x) && this.y.isExactEqual(other.y) && this.z.isExactEqual(other.z); }
79449
79481
  }
79450
79482
  /** Accudraw is an aide for entering coordinate data.
79451
- * @internal
79483
+ * This class is public to allow applications to provide a user interface for AccuDraw, either by implementing their own, or
79484
+ * using the one supplied by the itwin appui package.
79485
+ * @note When writing an [[InteractiveTool]] it is not correct to call methods on AccuDraw directly, tools should instead
79486
+ * provide hints to AccuDraw using [[AccuDrawHintBuilder]].
79487
+ * @public
79452
79488
  */
79453
79489
  class AccuDraw {
79454
79490
  constructor() {
79455
- /** @internal */
79456
79491
  this.currentState = CurrentState.NotEnabled; // Compass state
79457
- /** @internal */
79458
79492
  this.compassMode = CompassMode.Rectangular; // Compass mode
79459
- /** @internal */
79460
79493
  this.rotationMode = RotationMode.View; // Compass rotation
79461
79494
  /** @internal */
79462
79495
  this.published = new AccudrawData(); // Staging area for hints
@@ -79555,13 +79588,11 @@ class AccuDraw {
79555
79588
  get isDeactivated() { return (CurrentState.Deactivated === this.currentState); }
79556
79589
  /** @internal */
79557
79590
  setNewFocus(index) { this.newFocus = index; }
79558
- /** @internal */
79591
+ /** Get the current lock state for the supplied input field */
79559
79592
  getFieldLock(index) { return this._fieldLocked[index]; }
79560
79593
  /** @internal */
79561
79594
  getKeyinStatus(index) { return this._keyinStatus[index]; }
79562
- /** Implement this method to set focus to the AccuDraw UI.
79563
- * @internal
79564
- */
79595
+ /** Implement this method to set focus to the AccuDraw UI. */
79565
79596
  grabInputFocus() { }
79566
79597
  /** @internal */
79567
79598
  activate() {
@@ -79577,21 +79608,21 @@ class AccuDraw {
79577
79608
  if (CurrentState.Inactive === this.currentState)
79578
79609
  this.currentState = CurrentState.Deactivated;
79579
79610
  }
79580
- /** @internal */
79611
+ /** Change current compass input mode to either polar or rectangular */
79581
79612
  setCompassMode(mode) {
79582
79613
  if (mode === this.compassMode)
79583
79614
  return;
79584
79615
  this.compassMode = mode;
79585
79616
  this.onCompassModeChange();
79586
79617
  }
79587
- /** @internal */
79618
+ /** Change current compass orientation */
79588
79619
  setRotationMode(mode) {
79589
79620
  if (mode === this.rotationMode)
79590
79621
  return;
79591
79622
  this.rotationMode = mode;
79592
79623
  this.onRotationModeChange();
79593
79624
  }
79594
- /** @internal */
79625
+ /** Change the lock status for the supplied input field */
79595
79626
  setFieldLock(index, locked) {
79596
79627
  if (locked === this._fieldLocked[index])
79597
79628
  return;
@@ -80072,7 +80103,7 @@ class AccuDraw {
80072
80103
  return this.sendDataPoint(this.point, vp);
80073
80104
  }
80074
80105
  }
80075
- /** @internal */
80106
+ /** Get the current value for the supplied input field */
80076
80107
  getValueByIndex(index) {
80077
80108
  switch (index) {
80078
80109
  case ItemField.X_Item: return this.delta.x;
@@ -80084,7 +80115,7 @@ class AccuDraw {
80084
80115
  return 0.0;
80085
80116
  }
80086
80117
  }
80087
- /** @internal */
80118
+ /** Set the current value for the supplied input field */
80088
80119
  setValueByIndex(index, value) {
80089
80120
  switch (index) {
80090
80121
  case ItemField.X_Item:
@@ -80264,7 +80295,7 @@ class AccuDraw {
80264
80295
  return true;
80265
80296
  return (!_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.gridLock);
80266
80297
  }
80267
- /** @internal */
80298
+ /** Call from an AccuDraw UI event to sync the supplied input field value */
80268
80299
  async processFieldInput(index, input, synchText) {
80269
80300
  const isBearing = false;
80270
80301
  if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyStatus.SUCCESS !== this.updateFieldValue(index, input, { isBearing })) {
@@ -81086,17 +81117,17 @@ class AccuDraw {
81086
81117
  this.saveCoordinate(ItemField.Z_Item, this.delta.z);
81087
81118
  }
81088
81119
  }
81089
- /** @internal */
81120
+ /** Called after compass mode is changed between polar and rectangular */
81090
81121
  onCompassModeChange() { }
81091
- /** @internal */
81122
+ /** Called after compass rotation is changed */
81092
81123
  onRotationModeChange() { }
81093
- /** @internal */
81124
+ /** Called after input field locked state is changed */
81094
81125
  onFieldLockChange(_index) { }
81095
- /** @internal */
81126
+ /** Called after input field value changes */
81096
81127
  onFieldValueChange(_index) { }
81097
- /** @internal */
81128
+ /** Whether AccuDraw currently has input focus */
81098
81129
  get hasInputFocus() { return true; }
81099
- /** @internal */
81130
+ /** Set focus to the specified input field */
81100
81131
  setFocusItem(_index) { }
81101
81132
  static getMinPolarMag(origin) {
81102
81133
  return (1.0e-12 * (1.0 + origin.magnitude()));
@@ -81633,7 +81664,6 @@ class AccuDraw {
81633
81664
  /** Implemented by sub-classes to update ui fields to show current deltas or coordinates when inactive.
81634
81665
  * Should also choose active x or y input field in rectangular mode based on cursor position when
81635
81666
  * axis isn't locked to support "smart lock".
81636
- * @internal
81637
81667
  */
81638
81668
  onMotion(_ev) { }
81639
81669
  /** @internal */
@@ -82367,18 +82397,14 @@ class AccuSnap {
82367
82397
  onInitialized() { }
82368
82398
  get _searchDistance() { return this.isLocateEnabled ? 1.0 : this._settings.searchDistance; }
82369
82399
  get _hotDistanceInches() { return _IModelApp__WEBPACK_IMPORTED_MODULE_4__.IModelApp.locateManager.apertureInches * this._settings.hotDistanceFactor; }
82370
- /** Whether locate of elements under the cursor is enabled by the current InteractiveTool.
82371
- * @public
82372
- */
82400
+ /** Whether locate of elements under the cursor is enabled by the current InteractiveTool. */
82373
82401
  get isLocateEnabled() { return this.toolState.locate; }
82374
- /** Whether snapping to elements under the cursor is enabled by the current InteractiveTool.
82375
- * @public
82376
- */
82402
+ /** Whether snapping to elements under the cursor is enabled by the current InteractiveTool. */
82377
82403
  get isSnapEnabled() { return this.toolState.enabled; }
82378
- /** Whether the user setting for snapping is enabled. Snapping is done only when both the user and current InteractiveTool have enabled it.
82379
- * @public
82380
- */
82404
+ /** Whether the user setting for snapping is enabled. Snapping is done only when both the user and current InteractiveTool have enabled it. */
82381
82405
  get isSnapEnabledByUser() { return this._settings.enableFlag; }
82406
+ /** AccuSnap user settings */
82407
+ get userSettings() { return this._settings; }
82382
82408
  isFlashed(view) { return (this.areFlashed.has(view)); }
82383
82409
  needsFlash(view) { return (this.needFlash.has(view)); }
82384
82410
  setNeedsFlash(view) {
@@ -86056,6 +86082,44 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
86056
86082
  * @see [[overrideSubCategory]]
86057
86083
  */
86058
86084
  getSubCategoryOverride(id) { return this.settings.getSubCategoryOverride(id); }
86085
+ /** For each subcategory belonging to any of the specified categories, make it visible by turning off the "invisible" flag in its subcategory appearance.
86086
+ * This requires that the categories and subcategories have been previously loaded by, e.g., a call to IModelConnection.querySubCategories.
86087
+ * @returns true if the visibility of any subcategory was modified.
86088
+ * @see Viewport.changeCategoryDisplay
86089
+ * @see ViewCreator3dOptions.allSubCategoriesVisible
86090
+ * @internal
86091
+ */
86092
+ enableAllLoadedSubCategories(categoryIds) {
86093
+ let anyChanged = false;
86094
+ for (const categoryId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds)) {
86095
+ const subCategoryIds = this.iModel.subcategories.getSubCategories(categoryId);
86096
+ if (undefined !== subCategoryIds)
86097
+ for (const subCategoryId of subCategoryIds)
86098
+ if (this.setSubCategoryVisible(subCategoryId, true))
86099
+ anyChanged = true;
86100
+ }
86101
+ return anyChanged;
86102
+ }
86103
+ /** Change the "invisible" flag for the given subcategory's appearance.
86104
+ * This requires that the subcategory appearance has been previously loaded by, e.g., a call to IModelConnection.Categories.getSubCategoryInfo.
86105
+ * @returns true if the visibility of any subcategory was modified.
86106
+ * @see [[enableAllLoadedSubCategories]]
86107
+ * @internal
86108
+ */
86109
+ setSubCategoryVisible(subCategoryId, visible) {
86110
+ const app = this.iModel.subcategories.getSubCategoryAppearance(subCategoryId);
86111
+ if (undefined === app)
86112
+ return false; // category not enabled or subcategory not found
86113
+ const curOvr = this.getSubCategoryOverride(subCategoryId);
86114
+ const isAlreadyVisible = undefined !== curOvr && undefined !== curOvr.invisible ? !curOvr.invisible : !app.invisible;
86115
+ if (isAlreadyVisible === visible)
86116
+ return false;
86117
+ // Preserve existing overrides - just flip the visibility flag.
86118
+ const json = undefined !== curOvr ? curOvr.toJSON() : {};
86119
+ json.invisible = !visible;
86120
+ this.overrideSubCategory(subCategoryId, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.SubCategoryOverride.fromJSON(json));
86121
+ return true;
86122
+ }
86059
86123
  /** Returns true if solar shadow display is enabled by this display style. */
86060
86124
  get wantShadows() {
86061
86125
  return this.is3d() && this.viewFlags.shadows && false !== _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.renderSystem.options.displaySolarShadows;
@@ -89759,9 +89823,7 @@ class IModelApp {
89759
89823
  static get quantityFormatter() { return this._quantityFormatter; }
89760
89824
  /** The [[ToolAdmin]] for this session. */
89761
89825
  static get toolAdmin() { return this._toolAdmin; }
89762
- /** The [[AccuDraw]] for this session.
89763
- * @internal
89764
- */
89826
+ /** The [[AccuDraw]] for this session. */
89765
89827
  static get accuDraw() { return this._accuDraw; }
89766
89828
  /** The [[AccuSnap]] for this session. */
89767
89829
  static get accuSnap() { return this._accuSnap; }
@@ -96477,6 +96539,9 @@ class SubCategoriesCache {
96477
96539
  if (undefined === this._byCategoryId.get(id))
96478
96540
  this._byCategoryId.set(id, invalidCategoryIdEntry);
96479
96541
  }
96542
+ /** Exposed strictly for tests.
96543
+ * @internal
96544
+ */
96480
96545
  add(categoryId, subCategoryId, appearance) {
96481
96546
  let set = this._byCategoryId.get(categoryId);
96482
96547
  if (undefined === set)
@@ -97224,6 +97289,7 @@ __webpack_require__.r(__webpack_exports__);
97224
97289
 
97225
97290
  /** Provides context for producing [[RenderGraphic]]s for drawing within a [[Viewport]].
97226
97291
  * @public
97292
+ * @extensions
97227
97293
  */
97228
97294
  class RenderContext {
97229
97295
  constructor(vp, frustum) {
@@ -97301,6 +97367,7 @@ class DynamicsContext extends RenderContext {
97301
97367
  }
97302
97368
  /** Provides context for a [[ViewportDecorator]] to add [[Decorations]] to be rendered within a [[Viewport]].
97303
97369
  * @public
97370
+ * @extensions
97304
97371
  */
97305
97372
  class DecorateContext extends RenderContext {
97306
97373
  /** The [[ScreenViewport]] in which this context's [[Decorations]] will be drawn. */
@@ -97956,6 +98023,8 @@ class ViewCreator3d {
97956
98023
  }
97957
98024
  if (options?.standardViewId)
97958
98025
  viewState.setStandardRotation(options.standardViewId);
98026
+ if (options?.allSubCategoriesVisible)
98027
+ viewState.displayStyle.enableAllLoadedSubCategories(viewState.categorySelector.categories);
97959
98028
  const range = viewState.computeFitRange();
97960
98029
  viewState.lookAtVolume(range, options?.vpAspect);
97961
98030
  return viewState;
@@ -101524,6 +101593,7 @@ const ELEMENT_MARKED_FOR_REMOVAL = Symbol.for("@bentley/imodeljs/Viewport/__elem
101524
101593
  *
101525
101594
  * @see [[ViewManager]]
101526
101595
  * @public
101596
+ * @extensions
101527
101597
  */
101528
101598
  class Viewport {
101529
101599
  /** @internal */
@@ -101848,13 +101918,8 @@ class Viewport {
101848
101918
  });
101849
101919
  }
101850
101920
  enableAllSubCategories(categoryIds) {
101851
- for (const categoryId of _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.iterable(categoryIds)) {
101852
- const subCategoryIds = this.iModel.subcategories.getSubCategories(categoryId);
101853
- if (undefined !== subCategoryIds) {
101854
- for (const subCategoryId of subCategoryIds)
101855
- this.changeSubCategoryDisplay(subCategoryId, true);
101856
- }
101857
- }
101921
+ if (this.displayStyle.enableAllLoadedSubCategories(categoryIds))
101922
+ this.maybeInvalidateScene();
101858
101923
  }
101859
101924
  /** @internal */
101860
101925
  getSubCategories(categoryId) { return this.iModel.subcategories.getSubCategories(categoryId); }
@@ -101863,18 +101928,8 @@ class Viewport {
101863
101928
  * @param display: True to make geometry belonging to the subcategory visible within this viewport, false to make it invisible.
101864
101929
  */
101865
101930
  changeSubCategoryDisplay(subCategoryId, display) {
101866
- const app = this.iModel.subcategories.getSubCategoryAppearance(subCategoryId);
101867
- if (undefined === app)
101868
- return; // category not enabled or subcategory not found
101869
- const curOvr = this.getSubCategoryOverride(subCategoryId);
101870
- const isAlreadyVisible = undefined !== curOvr && undefined !== curOvr.invisible ? !curOvr.invisible : !app.invisible;
101871
- if (isAlreadyVisible === display)
101872
- return;
101873
- // Preserve existing overrides - just flip the visibility flag.
101874
- const json = undefined !== curOvr ? curOvr.toJSON() : {};
101875
- json.invisible = !display;
101876
- this.overrideSubCategory(subCategoryId, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.SubCategoryOverride.fromJSON(json)); // will set the ChangeFlag appropriately
101877
- this.maybeInvalidateScene();
101931
+ if (this.displayStyle.setSubCategoryVisible(subCategoryId, display))
101932
+ this.maybeInvalidateScene();
101878
101933
  }
101879
101934
  /** The settings controlling how a background map is displayed within a view.
101880
101935
  * @see [[ViewFlags.backgroundMap]] for toggling display of the map on or off.
@@ -103718,6 +103773,7 @@ Viewport.undoDelay = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeDuration
103718
103773
  * 5b. Otherwise, it is disposed of by invoking its dispose() method directly.
103719
103774
  * ```
103720
103775
  * @public
103776
+ * @extensions
103721
103777
  */
103722
103778
  class ScreenViewport extends Viewport {
103723
103779
  /** Create a new ScreenViewport that shows a View of an iModel into an HTMLDivElement. This method will create a new HTMLCanvasElement as a child of the supplied parentDiv.
@@ -104341,6 +104397,7 @@ function _clear2dCanvas(canvas) {
104341
104397
  * Offscreen viewports can be useful for, e.g., producing an image from the contents of a view (see [[Viewport.readImageBuffer]] and [[Viewport.readImageToCanvas]])
104342
104398
  * without drawing to the screen.
104343
104399
  * @public
104400
+ * @extensions
104344
104401
  */
104345
104402
  class OffScreenViewport extends Viewport {
104346
104403
  constructor() {
@@ -105770,6 +105827,7 @@ const extensionExports = {
105770
105827
  CoordSource: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.CoordSource,
105771
105828
  CoordSystem: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.CoordSystem,
105772
105829
  CoordinateLockOverrides: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.CoordinateLockOverrides,
105830
+ DecorateContext: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.DecorateContext,
105773
105831
  Decorations: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.Decorations,
105774
105832
  DisclosedTileTreeSet: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.DisclosedTileTreeSet,
105775
105833
  DisplayStyle2dState: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.DisplayStyle2dState,
@@ -105849,6 +105907,7 @@ const extensionExports = {
105849
105907
  NotificationManager: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.NotificationManager,
105850
105908
  NotifyMessageDetails: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.NotifyMessageDetails,
105851
105909
  Npc: _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.Npc,
105910
+ OffScreenViewport: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.OffScreenViewport,
105852
105911
  OrthographicViewState: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.OrthographicViewState,
105853
105912
  OutputMessageAlert: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.OutputMessageAlert,
105854
105913
  OutputMessagePriority: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.OutputMessagePriority,
@@ -105874,11 +105933,13 @@ const extensionExports = {
105874
105933
  QueryRowFormat: _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.QueryRowFormat,
105875
105934
  Rank: _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.Rank,
105876
105935
  RenderClipVolume: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.RenderClipVolume,
105936
+ RenderContext: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.RenderContext,
105877
105937
  RenderGraphic: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.RenderGraphic,
105878
105938
  RenderGraphicOwner: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.RenderGraphicOwner,
105879
105939
  RenderMode: _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.RenderMode,
105880
105940
  RenderSystem: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.RenderSystem,
105881
105941
  Scene: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.Scene,
105942
+ ScreenViewport: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ScreenViewport,
105882
105943
  SectionDrawingModelState: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.SectionDrawingModelState,
105883
105944
  SectionType: _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.SectionType,
105884
105945
  SelectionMethod: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.SelectionMethod,
@@ -105939,6 +106000,7 @@ const extensionExports = {
105939
106000
  UniformType: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.UniformType,
105940
106001
  VaryingType: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.VaryingType,
105941
106002
  ViewClipClearTool: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewClipClearTool,
106003
+ ViewClipDecoration: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewClipDecoration,
105942
106004
  ViewClipDecorationProvider: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewClipDecorationProvider,
105943
106005
  ViewClipTool: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewClipTool,
105944
106006
  ViewCreator2d: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewCreator2d,
@@ -105955,6 +106017,7 @@ const extensionExports = {
105955
106017
  ViewStatus: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewStatus,
105956
106018
  ViewTool: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewTool,
105957
106019
  ViewingSpace: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.ViewingSpace,
106020
+ Viewport: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.Viewport,
105958
106021
  canvasToImageBuffer: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.canvasToImageBuffer,
105959
106022
  canvasToResizedCanvasWithBars: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.canvasToResizedCanvasWithBars,
105960
106023
  connectViewportFrusta: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.connectViewportFrusta,
@@ -105971,6 +106034,7 @@ const extensionExports = {
105971
106034
  imageElementFromUrl: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.imageElementFromUrl,
105972
106035
  queryTerrainElevationOffset: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.queryTerrainElevationOffset,
105973
106036
  readElementGraphics: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.readElementGraphics,
106037
+ readGltfGraphics: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.readGltfGraphics,
105974
106038
  synchronizeViewportFrusta: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.synchronizeViewportFrusta,
105975
106039
  synchronizeViewportViews: _core_frontend__WEBPACK_IMPORTED_MODULE_2__.synchronizeViewportViews,
105976
106040
  };
@@ -145420,6 +145484,7 @@ class GltfReader {
145420
145484
  * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.
145421
145485
  * @see [[readGltf]] to obtain more information about the glTF model.
145422
145486
  * @public
145487
+ * @extensions
145423
145488
  */
145424
145489
  async function readGltfGraphics(args) {
145425
145490
  const result = await readGltf(args);
@@ -164349,14 +164414,22 @@ class ViewClipControlArrow {
164349
164414
  this.name = name;
164350
164415
  }
164351
164416
  }
164352
- /** @internal Controls to modify a view's clip */
164417
+ /** A pickable decoration managed by ViewClipDecorationProvider used to visualize a view's clip and present modification handles.
164418
+ * This class is public to facilitate customization of view clip events by type or selected controls.
164419
+ * @see [[ViewClipDecorationProvider]]
164420
+ * @public
164421
+ * @extensions
164422
+ */
164353
164423
  class ViewClipDecoration extends _EditManipulator__WEBPACK_IMPORTED_MODULE_8__.EditManipulator.HandleProvider {
164354
164424
  constructor(_clipView, _clipEventHandler) {
164355
164425
  super(_clipView.iModel);
164356
164426
  this._clipView = _clipView;
164357
164427
  this._clipEventHandler = _clipEventHandler;
164428
+ /** @internal */
164358
164429
  this._controlIds = [];
164430
+ /** @internal */
164359
164431
  this._controls = [];
164432
+ /** @internal */
164360
164433
  this._suspendDecorator = false;
164361
164434
  if (!this.getClipData())
164362
164435
  return;
@@ -164853,7 +164926,7 @@ class ViewClipDecoration extends _EditManipulator__WEBPACK_IMPORTED_MODULE_8__.E
164853
164926
  const transform = _EditManipulator__WEBPACK_IMPORTED_MODULE_8__.EditManipulator.HandleUtils.getArrowTransform(vp, anchorRay.origin, anchorRay.direction, sizeInches);
164854
164927
  if (undefined === transform)
164855
164928
  continue;
164856
- // deep copy beecause we're using a builder transform w/addLineString...
164929
+ // deep copy because we're using a builder transform w/addLineString...
164857
164930
  const visPts = shapePts.map((pt) => pt.clone());
164858
164931
  const hidPts = shapePts.map((pt) => pt.clone());
164859
164932
  const arrowVisBuilder = context.createGraphicBuilder(_render_GraphicBuilder__WEBPACK_IMPORTED_MODULE_7__.GraphicType.WorldOverlay, transform, this._controlIds[iFace]);
@@ -164973,6 +165046,7 @@ class ViewClipDecorationProvider {
164973
165046
  showDecoration(vp) { ViewClipDecoration.create(vp, this); }
164974
165047
  hideDecoration() { ViewClipDecoration.clear(); }
164975
165048
  async toggleDecoration(vp) { return ViewClipDecoration.toggle(vp, this); }
165049
+ isDecorationActive(vp) { return (undefined !== ViewClipDecoration.get(vp)); }
164976
165050
  static create() {
164977
165051
  if (undefined === ViewClipDecorationProvider._provider) {
164978
165052
  ViewClipDecoration.clear();
@@ -169420,7 +169494,7 @@ class InteractiveTool extends Tool {
169420
169494
  supplyToolSettingsProperties() { return undefined; }
169421
169495
  /** Used to receive property changes from UI. Return false if there was an error applying updatedValue.
169422
169496
  * @see [[changeToolSettingPropertyValue]]
169423
- * @beta
169497
+ * @public
169424
169498
  */
169425
169499
  async applyToolSettingPropertyChange(_updatedValue) { return true; }
169426
169500
  /** Called by tool to synchronize the UI with property changes made by tool. This is typically used to provide user feedback during tool dynamics.
@@ -170136,23 +170210,17 @@ class ToolAdmin {
170136
170210
  div.innerHTML = out;
170137
170211
  return _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.notifications.openMessageBox(_NotificationManager__WEBPACK_IMPORTED_MODULE_7__.MessageBoxType.MediumAlert, div, _NotificationManager__WEBPACK_IMPORTED_MODULE_7__.MessageBoxIconType.Critical);
170138
170212
  }
170139
- /** Returns the handler registered by the UI layer that allows it to display property changes made by the active Tool.
170140
- * @internal
170141
- */
170213
+ /** Returns the handler registered by the UI layer that allows it to display property changes made by the active Tool. */
170142
170214
  get toolSettingsChangeHandler() { return this._toolSettingsChangeHandler; }
170143
170215
  set toolSettingsChangeHandler(handler) {
170144
170216
  this._toolSettingsChangeHandler = handler;
170145
170217
  }
170146
- /** Returns the handler registered by the UI layer that allows it to display property changes made by the active Tool.
170147
- * @internal
170148
- */
170218
+ /** Returns the handler registered by the UI layer that allows it to display property changes made by the active Tool. */
170149
170219
  get reloadToolSettingsHandler() { return this._reloadToolSettingsHandler; }
170150
170220
  set reloadToolSettingsHandler(handler) {
170151
170221
  this._reloadToolSettingsHandler = handler;
170152
170222
  }
170153
- /** Returns the handler registered by the UI layer that will trigger UiSyncEvent processing that informs UI component to refresh their state.
170154
- * @internal
170155
- */
170223
+ /** Returns the handler registered by the UI layer that will trigger UiSyncEvent processing that informs UI component to refresh their state. */
170156
170224
  get toolSyncUiEventDispatcher() { return this._toolSyncUiEventDispatcher; }
170157
170225
  set toolSyncUiEventDispatcher(handler) {
170158
170226
  this._toolSyncUiEventDispatcher = handler;
@@ -171107,7 +171175,6 @@ class ToolAdmin {
171107
171175
  * To "bump" a setting means to toggle a boolean value or cycle through enum values.
171108
171176
  * If no `settingIndex` param is specified, the first setting is bumped.
171109
171177
  * Returns true if the setting was successfully bumped.
171110
- * @beta
171111
171178
  */
171112
171179
  async bumpToolSetting(settingIndex) {
171113
171180
  return this.currentTool.bumpToolSetting(settingIndex);
@@ -171117,7 +171184,6 @@ class ToolAdmin {
171117
171184
  * more important user interaction processing is required.
171118
171185
  * @param specificSyncEventId Optional sync event id. If not specified then "tool-admin-refresh-ui" is used.
171119
171186
  * @param toolId Optional, will be used if specificSyncEventId is not specified. If used, the resulting sync event Id will be created using `tool-admin-refresh-ui-${toolId}`.toLowerCase()
171120
- * @beta
171121
171187
  */
171122
171188
  dispatchImmediateUiSyncEvent(specificSyncEventId, toolId) {
171123
171189
  const defaultRefreshEventId = "tool-admin-refresh-ui";
@@ -171135,7 +171201,6 @@ class ToolAdmin {
171135
171201
  * to be processed together.
171136
171202
  * @param specificSyncEventId Optional sync event id. If not specified then "tool-admin-refresh-ui" is used.
171137
171203
  * @param toolId Optional, will be used if specificSyncEventId is not specified. If used, the resulting sync event Id will be created using `tool-admin-refresh-ui-${toolId}`.toLowerCase()
171138
- * @beta
171139
171204
  */
171140
171205
  dispatchUiSyncEvent(specificSyncEventId, toolId) {
171141
171206
  const defaultRefreshEventId = "tool-admin-refresh-ui";
@@ -171287,6 +171352,9 @@ class ToolAdmin {
171287
171352
  this.setLocateCircleOn(enableLocate);
171288
171353
  viewManager.invalidateDecorationsAllViews();
171289
171354
  }
171355
+ /** Controls how the button event location is adjusted for the active tool */
171356
+ get coordinateLockOverrides() { return this.toolState.coordLockOvr; }
171357
+ set coordinateLockOverrides(coordLockOvr) { this.toolState.coordLockOvr = coordLockOvr; }
171290
171358
  /** @internal */
171291
171359
  async callOnCleanup() {
171292
171360
  await this.exitViewTool();
@@ -177123,7 +177191,6 @@ __webpack_require__.r(__webpack_exports__);
177123
177191
 
177124
177192
 
177125
177193
 
177126
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
177127
177194
  /**
177128
177195
  * Base class for BSplineCurve3d and BSplineCurve3dH.
177129
177196
  * * A bspline curve consists of a set of knots and a set of poles.
@@ -177824,11 +177891,9 @@ __webpack_require__.r(__webpack_exports__);
177824
177891
  /** @packageDocumentation
177825
177892
  * @module Serialization
177826
177893
  */
177827
- // import { Point2d } from "../Geometry2d";
177828
177894
 
177829
177895
 
177830
177896
 
177831
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
177832
177897
 
177833
177898
 
177834
177899
 
@@ -178246,14 +178311,14 @@ __webpack_require__.r(__webpack_exports__);
178246
178311
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
178247
178312
  /* harmony export */ "BSplineCurveOps": () => (/* binding */ BSplineCurveOps)
178248
178313
  /* harmony export */ });
178314
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
178249
178315
  /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
178250
178316
  /* harmony import */ var _geometry3d_IndexedXYZCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/IndexedXYZCollection */ "../../core/geometry/lib/esm/geometry3d/IndexedXYZCollection.js");
178251
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
178252
178317
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
178318
+ /* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
178253
178319
  /* harmony import */ var _numerics_BandedSystem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../numerics/BandedSystem */ "../../core/geometry/lib/esm/numerics/BandedSystem.js");
178254
178320
  /* harmony import */ var _BSplineCurve__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
178255
178321
  /* harmony import */ var _KnotVector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
178256
- /* harmony import */ var _geometry3d_PointHelpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../geometry3d/PointHelpers */ "../../core/geometry/lib/esm/geometry3d/PointHelpers.js");
178257
178322
  /*---------------------------------------------------------------------------------------------
178258
178323
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
178259
178324
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -178261,7 +178326,6 @@ __webpack_require__.r(__webpack_exports__);
178261
178326
  /** @packageDocumentation
178262
178327
  * @module Bspline
178263
178328
  */
178264
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
178265
178329
 
178266
178330
 
178267
178331
 
@@ -179105,9 +179169,7 @@ __webpack_require__.r(__webpack_exports__);
179105
179169
  /** @packageDocumentation
179106
179170
  * @module Bspline
179107
179171
  */
179108
- // import { Point2d } from "./Geometry2d";
179109
179172
 
179110
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
179111
179173
 
179112
179174
 
179113
179175
 
@@ -180935,7 +180997,6 @@ __webpack_require__.r(__webpack_exports__);
180935
180997
 
180936
180998
 
180937
180999
 
180938
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
180939
181000
  /**
180940
181001
  * Base class for CurvePrimitive (necessarily 3D) with _polygon.
180941
181002
  * * This has a Bezier1dNd polygon as a member, and implements dimension-independent methods
@@ -181470,8 +181531,6 @@ __webpack_require__.r(__webpack_exports__);
181470
181531
  /** @packageDocumentation
181471
181532
  * @module Bspline
181472
181533
  */
181473
- // import { Point2d } from "../Geometry2d";
181474
- /* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/
181475
181534
 
181476
181535
 
181477
181536
  /**
@@ -202152,7 +202211,7 @@ class Joint {
202152
202211
  static removeDegeneratePrimitives(start, options, maxTest) {
202153
202212
  /*
202154
202213
  if (Checker.noisy.PolygonOffset)
202155
- console.log("\nENTER removeDegenerates");
202214
+ GeometryCoreTestIO.consoleLog("\nENTER removeDegenerates");
202156
202215
  */
202157
202216
  let jointA = start;
202158
202217
  let numRemoved = 0;
@@ -202174,10 +202233,10 @@ class Joint {
202174
202233
  // f0 and f1 are fractions on the single primitive between these joints.
202175
202234
  /*
202176
202235
  if (Checker.noisy.PolygonOffset) {
202177
- console.log("joint candidate");
202178
- console.log(prettyPrint(jointA.shallowExtract()));
202179
- console.log(prettyPrint(jointB.shallowExtract()));
202180
- console.log("FRACTIONS ", { fA1: f0, fB0: f1 });
202236
+ GeometryCoreTestIO.consoleLog("joint candidate");
202237
+ GeometryCoreTestIO.consoleLog(prettyPrint(jointA.shallowExtract()));
202238
+ GeometryCoreTestIO.consoleLog(prettyPrint(jointB.shallowExtract()));
202239
+ GeometryCoreTestIO.consoleLog("FRACTIONS ", { fA1: f0, fB0: f1 });
202181
202240
  }
202182
202241
  */
202183
202242
  const eliminateF = f0 >= f1 || f0 > 1.0;
@@ -202194,8 +202253,8 @@ class Joint {
202194
202253
  newJoint.nextJoint.annotateJointMode(options);
202195
202254
  /*
202196
202255
  if (Checker.noisy.PolygonOffset) {
202197
- console.log(" NEW DOUBLE CUT");
202198
- console.log(prettyPrint(newJoint.shallowExtract()));
202256
+ GeometryCoreTestIO.consoleLog(" NEW DOUBLE CUT");
202257
+ GeometryCoreTestIO.consoleLog(prettyPrint(newJoint.shallowExtract()));
202199
202258
  }
202200
202259
  */
202201
202260
  }
@@ -202208,8 +202267,8 @@ class Joint {
202208
202267
  newJoint.nextJoint.annotateJointMode(options);
202209
202268
  /*
202210
202269
  if (Checker.noisy.PolygonOffset) {
202211
- console.log(" NEW JOINT");
202212
- console.log(prettyPrint(newJoint.shallowExtract()));
202270
+ GeometryCoreTestIO.consoleLog(" NEW JOINT");
202271
+ GeometryCoreTestIO.consoleLog(prettyPrint(newJoint.shallowExtract()));
202213
202272
  }
202214
202273
  */
202215
202274
  numRemoved++;
@@ -202219,7 +202278,7 @@ class Joint {
202219
202278
  if (numRemoved >= maxRemove) {
202220
202279
  /*
202221
202280
  if (Checker.noisy.PolygonOffset)
202222
- console.log(" EXIT removeDegenerates at maxRemove\n");
202281
+ GeometryCoreTestIO.consoleLog(" EXIT removeDegenerates at maxRemove\n");
202223
202282
  */
202224
202283
  return { newStart: start, numJointRemoved: numRemoved };
202225
202284
  }
@@ -202287,8 +202346,8 @@ class PolygonWireOffsetContext {
202287
202346
  break;
202288
202347
  /*
202289
202348
  if (Checker.noisy.PolygonOffset) {
202290
- console.log(" POST REMOVE DEGENERATES " + state.numJointRemoved);
202291
- Joint.visitJointsOnChain(joint0, (joint: Joint) => { console.log(prettyPrint(joint.shallowExtract())); return true; });
202349
+ GeometryCoreTestIO.consoleLog(" POST REMOVE DEGENERATES " + state.numJointRemoved);
202350
+ Joint.visitJointsOnChain(joint0, (joint: Joint) => { GeometryCoreTestIO.consoleLog(prettyPrint(joint.shallowExtract())); return true; });
202292
202351
  }
202293
202352
  */
202294
202353
  }
@@ -204077,7 +204136,7 @@ class IntegratedSpiral3d extends _TransitionSpiral3d__WEBPACK_IMPORTED_MODULE_0_
204077
204136
  const index0 = Math.trunc(clampedGlobalFraction * numStrokes); // This indexes the point to the left of the query.
204078
204137
  const globalFraction0 = index0 / numStrokes;
204079
204138
  result = this._globalStrokes.packedPoints.getPoint3dAtUncheckedPointIndex(index0, result);
204080
- // console.log(" fractionToPoint ", activeFraction, this.activeFractionInterval, "( global integration " + globalFraction0 + " to " + globalFraction + ")", index0);
204139
+ // GeometryCoreTestIO.consoleLog(" fractionToPoint ", activeFraction, this.activeFractionInterval, "( global integration " + globalFraction0 + " to " + globalFraction + ")", index0);
204081
204140
  this.fullSpiralIncrementalIntegral(result, globalFraction0, targetGlobalFraction, true);
204082
204141
  }
204083
204142
  return result;
@@ -219423,7 +219482,7 @@ class PolygonOps {
219423
219482
  }
219424
219483
  }
219425
219484
  s *= 0.5;
219426
- // console.log ("polygon area ", s, points);
219485
+ // GeometryCoreTestIO.consoleLog("polygon area ", s, points);
219427
219486
  return s;
219428
219487
  }
219429
219488
  /** return a vector which is perpendicular to the polygon and has magnitude equal to the polygon area. */
@@ -230775,7 +230834,7 @@ class TrigPolynomial {
230775
230834
  for (const theta of angles) {
230776
230835
  const c = theta.cos();
230777
230836
  const s = theta.sin();
230778
- console.log({
230837
+ GeometryCoreTestIO.consoleLog({
230779
230838
  angle: theta, co: c, si: s,
230780
230839
  f: axx * c * c + axy * c * s + ayy * s * s + ax * c + ay * s + a1});
230781
230840
  } */
@@ -238489,11 +238548,10 @@ class PolyfaceQuery {
238489
238548
  while (0 < (workCount = await Promise.resolve(PolyfaceQuery.continueAnnounceSweepLinestringToConvexPolyfaceXY(context, visitor, announce)))) {
238490
238549
  workTotal += workCount;
238491
238550
  this.awaitBlockCount++;
238492
- // console.log({ myWorkCount: workCount, myBlockCount: this.awaitBlockCount });
238551
+ // GeometryCoreTestIO.consoleLog({ myWorkCount: workCount, myBlockCount: this.awaitBlockCount });
238493
238552
  }
238494
238553
  }
238495
- // eslint-disable-next-line no-console
238496
- // console.log({ myWorkTotal: workTotal, myBlockCount: this.awaitBlockCount });
238554
+ // GeometryCoreTestIO.consoleLog({ myWorkTotal: workTotal, myBlockCount: this.awaitBlockCount });
238497
238555
  return workTotal;
238498
238556
  }
238499
238557
  /** Search the facets for facet subsets that are connected with at least vertex contact.
@@ -250785,7 +250843,7 @@ class Sample {
250785
250843
  * @param dy3
250786
250844
  * @param dy4
250787
250845
  */
250788
- static creatVerticalStaggerPolygon(dy1, dy2, dy3, dy4, ax, ay, dx1, dx4) {
250846
+ static createVerticalStaggerPolygon(dy1, dy2, dy3, dy4, ax, ay, dx1, dx4) {
250789
250847
  const points = [];
250790
250848
  points.push(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(0, 0));
250791
250849
  points.push(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(ax + dx1, dy1));
@@ -250796,6 +250854,11 @@ class Sample {
250796
250854
  points.push(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_1__.Point3d.create(0, 0));
250797
250855
  return points;
250798
250856
  }
250857
+ // cspell:word creat
250858
+ /** @deprecated in 4.x. Use createVerticalStaggerPolygon instead. */
250859
+ static creatVerticalStaggerPolygon(dy1, dy2, dy3, dy4, ax, ay, dx1, dx4) {
250860
+ return this.createVerticalStaggerPolygon(dy1, dy2, dy3, dy4, ax, ay, dx1, dx4);
250861
+ }
250799
250862
  /**
250800
250863
  * Make line segments for each pair of adjacent points.
250801
250864
  * @param points array of points
@@ -251201,9 +251264,12 @@ __webpack_require__.r(__webpack_exports__);
251201
251264
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
251202
251265
  /* harmony export */ "IModelJson": () => (/* binding */ IModelJson)
251203
251266
  /* harmony export */ });
251267
+ /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
251204
251268
  /* harmony import */ var _bspline_BSplineCurve__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../bspline/BSplineCurve */ "../../core/geometry/lib/esm/bspline/BSplineCurve.js");
251205
251269
  /* harmony import */ var _bspline_BSplineCurve3dH__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../bspline/BSplineCurve3dH */ "../../core/geometry/lib/esm/bspline/BSplineCurve3dH.js");
251270
+ /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
251206
251271
  /* harmony import */ var _bspline_BSplineSurface__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../bspline/BSplineSurface */ "../../core/geometry/lib/esm/bspline/BSplineSurface.js");
251272
+ /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
251207
251273
  /* harmony import */ var _bspline_KnotVector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../bspline/KnotVector */ "../../core/geometry/lib/esm/bspline/KnotVector.js");
251208
251274
  /* harmony import */ var _curve_Arc3d__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../curve/Arc3d */ "../../core/geometry/lib/esm/curve/Arc3d.js");
251209
251275
  /* harmony import */ var _curve_CoordinateXYZ__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../curve/CoordinateXYZ */ "../../core/geometry/lib/esm/curve/CoordinateXYZ.js");
@@ -251215,6 +251281,7 @@ __webpack_require__.r(__webpack_exports__);
251215
251281
  /* harmony import */ var _curve_ParityRegion__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../curve/ParityRegion */ "../../core/geometry/lib/esm/curve/ParityRegion.js");
251216
251282
  /* harmony import */ var _curve_Path__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../curve/Path */ "../../core/geometry/lib/esm/curve/Path.js");
251217
251283
  /* harmony import */ var _curve_PointString3d__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../curve/PointString3d */ "../../core/geometry/lib/esm/curve/PointString3d.js");
251284
+ /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
251218
251285
  /* harmony import */ var _curve_spiral_IntegratedSpiral3d__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../curve/spiral/IntegratedSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/IntegratedSpiral3d.js");
251219
251286
  /* harmony import */ var _curve_UnionRegion__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../curve/UnionRegion */ "../../core/geometry/lib/esm/curve/UnionRegion.js");
251220
251287
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
@@ -251231,6 +251298,7 @@ __webpack_require__.r(__webpack_exports__);
251231
251298
  /* harmony import */ var _geometry4d_Point4d__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry4d/Point4d */ "../../core/geometry/lib/esm/geometry4d/Point4d.js");
251232
251299
  /* harmony import */ var _polyface_AuxData__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../polyface/AuxData */ "../../core/geometry/lib/esm/polyface/AuxData.js");
251233
251300
  /* harmony import */ var _polyface_Polyface__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../polyface/Polyface */ "../../core/geometry/lib/esm/polyface/Polyface.js");
251301
+ /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
251234
251302
  /* harmony import */ var _solid_Box__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../solid/Box */ "../../core/geometry/lib/esm/solid/Box.js");
251235
251303
  /* harmony import */ var _solid_Cone__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../solid/Cone */ "../../core/geometry/lib/esm/solid/Cone.js");
251236
251304
  /* harmony import */ var _solid_LinearSweep__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../solid/LinearSweep */ "../../core/geometry/lib/esm/solid/LinearSweep.js");
@@ -251238,15 +251306,13 @@ __webpack_require__.r(__webpack_exports__);
251238
251306
  /* harmony import */ var _solid_RuledSweep__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../solid/RuledSweep */ "../../core/geometry/lib/esm/solid/RuledSweep.js");
251239
251307
  /* harmony import */ var _solid_Sphere__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../solid/Sphere */ "../../core/geometry/lib/esm/solid/Sphere.js");
251240
251308
  /* harmony import */ var _solid_TorusPipe__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../solid/TorusPipe */ "../../core/geometry/lib/esm/solid/TorusPipe.js");
251241
- /* harmony import */ var _curve_spiral_DirectSpiral3d__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../curve/spiral/DirectSpiral3d */ "../../core/geometry/lib/esm/curve/spiral/DirectSpiral3d.js");
251242
- /* harmony import */ var _polyface_TaggedNumericData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polyface/TaggedNumericData */ "../../core/geometry/lib/esm/polyface/TaggedNumericData.js");
251243
- /* harmony import */ var _bspline_InterpolationCurve3d__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../bspline/InterpolationCurve3d */ "../../core/geometry/lib/esm/bspline/InterpolationCurve3d.js");
251244
- /* harmony import */ var _bspline_AkimaCurve3d__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../bspline/AkimaCurve3d */ "../../core/geometry/lib/esm/bspline/AkimaCurve3d.js");
251245
- /* harmony import */ var _bspline_BSplineCurveOps__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../bspline/BSplineCurveOps */ "../../core/geometry/lib/esm/bspline/BSplineCurveOps.js");
251246
251309
  /*---------------------------------------------------------------------------------------------
251247
251310
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
251248
251311
  * See LICENSE.md in the project root for license terms and full copyright notice.
251249
251312
  *--------------------------------------------------------------------------------------------*/
251313
+ /** @packageDocumentation
251314
+ * @module Serialization
251315
+ */
251250
251316
 
251251
251317
 
251252
251318
 
@@ -251290,7 +251356,6 @@ __webpack_require__.r(__webpack_exports__);
251290
251356
 
251291
251357
 
251292
251358
  // cspell:word bagof
251293
- /* eslint-disable no-console*/
251294
251359
  /**
251295
251360
  * `ImodelJson` namespace has classes for serializing and deserialization json objects
251296
251361
  * @public
@@ -258825,16 +258890,14 @@ class HalfEdgeGraphMerge {
258825
258890
  const unmatchedNullFaceNodes = [];
258826
258891
  k0 = 0;
258827
258892
  let thetaA, thetaB;
258828
- // eslint-disable-next-line no-console
258829
- // console.log("START VERTEX LINKS");
258893
+ // GeometryCoreTestIO.consoleLog("START VERTEX LINKS");
258830
258894
  // now pinch each neighboring pair together
258831
258895
  for (let k1 = 0; k1 < numK; k1++) {
258832
258896
  if (order[k1] === _numerics_ClusterableArray__WEBPACK_IMPORTED_MODULE_4__.ClusterableArray.clusterTerminator) {
258833
258897
  // nodes identified in order[k0]..order[k1-1] are properly sorted around a vertex.
258834
258898
  if (k1 > k0) {
258835
258899
  // const xy = clusters.getPoint2d(order[k0]);
258836
- // eslint-disable-next-line no-console
258837
- // console.log({ k0, k1, x: xy.x, y: xy.y });
258900
+ // GeometryCoreTestIO.consoleLog({ k0, k1, x: xy.x, y: xy.y });
258838
258901
  if (k1 > k0 + 1)
258839
258902
  this.secondarySortAroundVertex(clusters, order, allNodes, k0, k1);
258840
258903
  this.doAnnounceVertexNeighborhood(clusters, order, allNodes, k0, k1);
@@ -259050,7 +259113,6 @@ __webpack_require__.r(__webpack_exports__);
259050
259113
  */
259051
259114
 
259052
259115
 
259053
- // /* eslint-disable no-console */
259054
259116
  /**
259055
259117
  * * Context for regularizing single faces.
259056
259118
  * @internal
@@ -259183,7 +259245,7 @@ class RegularizationContext {
259183
259245
  // for horizontal edge cases -- require edges ends to have strict sign change (no zeros!!)
259184
259246
  const cRight = _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(node, rightBase);
259185
259247
  const cTop = _Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp(node, rightTop);
259186
- // console.log(node.id, rightBase.id, rightTop.id, cRight, cTop);
259248
+ // GeometryCoreTestIO.consoleLog(node.id, rightBase.id, rightTop.id, cRight, cTop);
259187
259249
  if (cRight * cTop >= 0)
259188
259250
  continue;
259189
259251
  const fraction = _Graph__WEBPACK_IMPORTED_MODULE_1__.HalfEdge.horizontalScanFraction01(rightBase, y0);
@@ -259305,12 +259367,12 @@ class RegularizationContext {
259305
259367
  if (upSweep) {
259306
259368
  this.bottomPeaks.sort(_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.compareNodesYXUp);
259307
259369
  for (const bottomPeak of this.bottomPeaks) {
259308
- // console.log("SEARCH", bottomPeak.id, [bottomPeak.x, bottomPeak.y]);
259370
+ // GeometryCoreTestIO.consoleLog("SEARCH", bottomPeak.id, [bottomPeak.x, bottomPeak.y]);
259309
259371
  if (!_Merging__WEBPACK_IMPORTED_MODULE_0__.HalfEdgeGraphOps.isDownPeak(bottomPeak))
259310
259372
  continue;
259311
259373
  const target = this.downwardConnectionFromBottomPeak(bottomPeak);
259312
259374
  if (target !== undefined) {
259313
- // console.log("join", bottomPeak.id, [bottomPeak.x, bottomPeak.y], target.id, [target.x, target.y]);
259375
+ // GeometryCoreTestIO.consoleLog("join", bottomPeak.id, [bottomPeak.x, bottomPeak.y], target.id, [target.x, target.y]);
259314
259376
  this.joinNodes(bottomPeak, target, 1);
259315
259377
  }
259316
259378
  }
@@ -281334,7 +281396,7 @@ class TestContext {
281334
281396
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
281335
281397
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
281336
281398
  await core_frontend_1.NoRenderApp.startup({
281337
- applicationVersion: "4.0.0-dev.60",
281399
+ applicationVersion: "4.0.0-dev.63",
281338
281400
  applicationId: this.settings.gprid,
281339
281401
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
281340
281402
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -300907,7 +300969,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
300907
300969
  /***/ ((module) => {
300908
300970
 
300909
300971
  "use strict";
300910
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.60","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.60","@itwin/core-bentley":"workspace:^4.0.0-dev.60","@itwin/core-common":"workspace:^4.0.0-dev.60","@itwin/core-geometry":"workspace:^4.0.0-dev.60","@itwin/core-orbitgt":"workspace:^4.0.0-dev.60","@itwin/core-quantity":"workspace:^4.0.0-dev.60"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.0-dev.32","@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":"~5.0.2","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"}}]}}');
300972
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.63","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm","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.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.0.0-dev.63","@itwin/core-bentley":"workspace:^4.0.0-dev.63","@itwin/core-common":"workspace:^4.0.0-dev.63","@itwin/core-geometry":"workspace:^4.0.0-dev.63","@itwin/core-orbitgt":"workspace:^4.0.0-dev.63","@itwin/core-quantity":"workspace:^4.0.0-dev.63"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.0-dev.32","@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":"~5.0.2","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"}}]}}');
300911
300973
 
300912
300974
  /***/ }),
300913
300975