@itwin/rpcinterface-full-stack-tests 5.0.0-dev.100 → 5.0.0-dev.104

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.
@@ -65128,9 +65128,11 @@ class MapSubLayerSettings {
65128
65128
  var ModelMapLayerDrapeTarget;
65129
65129
  (function (ModelMapLayerDrapeTarget) {
65130
65130
  /** Drape only onto the globe. */
65131
- ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["Globe"] = 0] = "Globe";
65131
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["Globe"] = 1] = "Globe";
65132
65132
  /** Drape only onto all attached reality data. */
65133
- ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["RealityData"] = 1] = "RealityData";
65133
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["RealityData"] = 2] = "RealityData";
65134
+ /** Drape only onto all models within the iModel. */
65135
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["IModel"] = 4] = "IModel";
65134
65136
  })(ModelMapLayerDrapeTarget || (ModelMapLayerDrapeTarget = {}));
65135
65137
  /** Abstract base class for normalized representation of a [[MapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.
65136
65138
  * This class is extended by [[ImageMapLayerSettings]] and [ModelMapLayerSettings]] to create the settings for image and model based layers.
@@ -90297,7 +90299,7 @@ class SchemaReadHelper {
90297
90299
  // Loads all of the properties on the Schema object
90298
90300
  await schema.fromJSON(this._parser.parseSchema());
90299
90301
  this._schema = schema;
90300
- const schemaInfo = { schemaKey: schema.schemaKey, references: [] };
90302
+ const schemaInfo = { schemaKey: schema.schemaKey, alias: schema.alias, references: [] };
90301
90303
  for (const reference of this._parser.getReferences()) {
90302
90304
  const refKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_5__.SchemaKey(reference.name, _SchemaKey__WEBPACK_IMPORTED_MODULE_5__.ECVersion.fromString(reference.version));
90303
90305
  schemaInfo.references.push({ schemaKey: refKey });
@@ -102267,53 +102269,32 @@ class AccuDraw {
102267
102269
  /** @internal */
102268
102270
  static getSnapRotation(snap, currentVp, out) {
102269
102271
  const vp = (undefined !== currentVp) ? currentVp : snap.viewport;
102272
+ const snapDetail = snap.primitive?.closestPoint(snap.snapPoint, false);
102273
+ const frame = snapDetail?.curve?.fractionToFrenetFrame(snapDetail.fraction);
102274
+ if (undefined === frame && undefined === snap.normal)
102275
+ return undefined;
102276
+ const zVec = (vp.view.allow3dManipulations() ? (snap.normal?.clone() ?? frame?.matrix.columnZ()) : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
102277
+ if (undefined === zVec)
102278
+ return undefined;
102270
102279
  const rotation = out ? out : new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d();
102271
102280
  const viewZ = vp.rotation.rowZ();
102272
- const snapLoc = (undefined !== snap.primitive ? snap.primitive.closestPoint(snap.snapPoint, false) : undefined);
102273
- if (undefined !== snapLoc) {
102274
- const frame = snap.primitive.fractionToFrenetFrame(snapLoc.fraction);
102275
- const frameZ = (undefined !== frame ? frame.matrix.columnZ() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
102276
- let xVec = (undefined !== frame ? frame.matrix.columnX() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitX());
102277
- const zVec = (vp.view.allow3dManipulations() ? (undefined !== snap.normal ? snap.normal.clone() : frameZ.clone()) : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
102278
- if (!vp.isCameraOn && viewZ.isPerpendicularTo(zVec))
102279
- zVec.setFrom(viewZ);
102281
+ zVec.normalizeInPlace();
102282
+ if (zVec.dotProduct(viewZ) < 0.0)
102283
+ zVec.negate(zVec);
102284
+ if (frame) {
102285
+ const xVec = frame.matrix.columnX();
102280
102286
  xVec.normalizeInPlace();
102281
- zVec.normalizeInPlace();
102282
- let yVec = xVec.unitCrossProduct(zVec);
102287
+ const yVec = zVec.unitCrossProduct(xVec);
102283
102288
  if (undefined !== yVec) {
102284
- const viewX = vp.rotation.rowX();
102285
- if (snap.primitive instanceof _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.LineString3d) {
102286
- if (Math.abs(xVec.dotProduct(viewX)) < Math.abs(yVec.dotProduct(viewX)))
102287
- xVec = yVec;
102288
- if (xVec.dotProduct(viewX) < 0.0)
102289
- xVec.negate(xVec);
102290
- }
102291
- else {
102292
- const ray = snap.primitive.fractionToPointAndUnitTangent(0.0);
102293
- if (ray.direction.dotProduct(viewX) < 0.0 && ray.direction.dotProduct(xVec) > 0.0)
102294
- xVec.negate(xVec);
102295
- }
102296
- if (zVec.dotProduct(viewZ) < 0.0)
102297
- zVec.negate(zVec);
102298
- yVec = xVec.unitCrossProduct(zVec);
102299
- if (undefined !== yVec) {
102300
- rotation.setColumns(xVec, yVec, zVec);
102301
- _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidFromMatrix3d(rotation, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.AxisOrder.XZY, rotation);
102302
- rotation.transposeInPlace();
102303
- return rotation;
102304
- }
102305
- }
102306
- }
102307
- if (undefined !== snap.normal) {
102308
- const zVec = (vp.view.allow3dManipulations() ? snap.normal.clone() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
102309
- if (!vp.isCameraOn && viewZ.isPerpendicularTo(zVec))
102310
- zVec.setFrom(viewZ);
102311
- zVec.normalizeInPlace();
102312
- _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidHeadsUp(zVec, undefined, rotation);
102313
- rotation.transposeInPlace();
102314
- return rotation;
102289
+ rotation.setColumns(xVec, yVec, zVec);
102290
+ rotation.makeRigid();
102291
+ rotation.transposeInPlace();
102292
+ return rotation;
102293
+ }
102315
102294
  }
102316
- return undefined;
102295
+ _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidHeadsUp(zVec, undefined, rotation);
102296
+ rotation.transposeInPlace();
102297
+ return rotation;
102317
102298
  }
102318
102299
  /** @internal */
102319
102300
  static getStandardRotation(nStandard, vp, useACS, out) {
@@ -115095,6 +115076,8 @@ class GeometricModelState extends ModelState {
115095
115076
  const spatialModel = this.asSpatialModel;
115096
115077
  const rdSourceKey = this.jsonProperties.rdSourceKey;
115097
115078
  const getDisplaySettings = () => view.displayStyle.settings.getRealityModelDisplaySettings(this.id) ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityModelDisplaySettings.defaults;
115079
+ const getBackgroundBase = () => view.displayStyle.settings?.mapImagery.backgroundBase;
115080
+ const getBackgroundLayers = () => view.displayStyle.settings?.mapImagery.backgroundLayers;
115098
115081
  if (rdSourceKey) {
115099
115082
  const useOrbitGtTileTreeReference = rdSourceKey.format === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataFormat.OPC;
115100
115083
  const treeRef = (!useOrbitGtTileTreeReference) ?
@@ -115106,8 +115089,8 @@ class GeometricModelState extends ModelState {
115106
115089
  // url: tilesetUrl, // If rdSourceKey is defined, url is not used
115107
115090
  classifiers: undefined !== spatialModel ? spatialModel.classifiers : undefined,
115108
115091
  getDisplaySettings,
115109
- getBackgroundBase: () => view.displayStyle.settings.mapImagery.backgroundBase,
115110
- getBackgroundLayers: () => view.displayStyle.settings.mapImagery.backgroundLayers,
115092
+ getBackgroundBase,
115093
+ getBackgroundLayers,
115111
115094
  }) :
115112
115095
  (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createOrbitGtTileTreeReference)({
115113
115096
  rdSourceKey,
@@ -115156,11 +115139,11 @@ class GeometricModelState extends ModelState {
115156
115139
  tilesetToDbTransform: this.jsonProperties.tilesetToDbTransform,
115157
115140
  classifiers: undefined !== spatialModel ? spatialModel.classifiers : undefined,
115158
115141
  getDisplaySettings,
115159
- getBackgroundBase: () => view.displayStyle.settings.mapImagery.backgroundBase,
115160
- getBackgroundLayers: () => view.displayStyle.settings.mapImagery.backgroundLayers,
115142
+ getBackgroundBase,
115143
+ getBackgroundLayers,
115161
115144
  });
115162
115145
  }
115163
- return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createPrimaryTileTreeReference)(view, this);
115146
+ return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createPrimaryTileTreeReference)(view, this, getBackgroundBase, getBackgroundLayers);
115164
115147
  }
115165
115148
  }
115166
115149
  /** Represents the front-end state of a [GeometricModel2d]($backend).
@@ -135681,6 +135664,8 @@ __webpack_require__.r(__webpack_exports__);
135681
135664
  /* harmony export */ ItemField: () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.ItemField),
135682
135665
  /* harmony export */ KeyinParseError: () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_109__.KeyinParseError),
135683
135666
  /* harmony export */ KeyinStatus: () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.KeyinStatus),
135667
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_121__.LayerTileTreeHandler),
135668
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_121__.LayerTileTreeReferenceHandler),
135684
135669
  /* harmony export */ LengthDescription: () => (/* reexport safe */ _properties_LengthDescription__WEBPACK_IMPORTED_MODULE_70__.LengthDescription),
135685
135670
  /* harmony export */ LocalExtensionProvider: () => (/* reexport safe */ _extension_providers_LocalExtensionProvider__WEBPACK_IMPORTED_MODULE_66__.LocalExtensionProvider),
135686
135671
  /* harmony export */ LocalUnitFormatProvider: () => (/* reexport safe */ _quantity_formatting_LocalUnitFormatProvider__WEBPACK_IMPORTED_MODULE_73__.LocalUnitFormatProvider),
@@ -136951,6 +136936,8 @@ __webpack_require__.r(__webpack_exports__);
136951
136936
  /* harmony export */ IModelTileTree: () => (/* reexport safe */ _tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_9__.IModelTileTree),
136952
136937
  /* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.ImageryMapTileTree),
136953
136938
  /* harmony export */ ImdlReader: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.ImdlReader),
136939
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeHandler),
136940
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler),
136954
136941
  /* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapTileTreeReference),
136955
136942
  /* harmony export */ OnScreenTarget: () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_3__.OnScreenTarget),
136956
136943
  /* harmony export */ PerformanceMetrics: () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_4__.PerformanceMetrics),
@@ -145978,30 +145965,21 @@ class LayerTextureParams {
145978
145965
  * @param prevView The previous view state.
145979
145966
  * @param newView The new view state.
145980
145967
  * @returns {boolean} True if there is any difference in the model layer configuration; false otherwise.
145981
- * @internal
145982
145968
  */
145983
145969
  function compareMapLayer(prevView, newView) {
145984
- const prevLayers = prevView.displayStyle.getMapLayers(false);
145985
- const newLayers = newView.displayStyle.getMapLayers(false);
145986
- const prevModelIds = [];
145987
- const newModelIds = [];
145988
- for (const layer of prevLayers) {
145989
- if (layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings && layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData) {
145990
- prevModelIds.push(layer.modelId);
145991
- }
145992
- }
145993
- for (const layer of newLayers) {
145994
- if (layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings && layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData) {
145995
- newModelIds.push(layer.modelId);
145996
- }
145997
- }
145998
- if (prevModelIds.length !== newModelIds.length) {
145970
+ const getDrapedModelIds = (view) => view.displayStyle
145971
+ .getMapLayers(false)
145972
+ .filter((layer) => layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings &&
145973
+ (layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData ||
145974
+ layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.IModel))
145975
+ .map(layer => layer.modelId);
145976
+ const prev = getDrapedModelIds(prevView);
145977
+ const next = getDrapedModelIds(newView);
145978
+ if (prev.length !== next.length)
145999
145979
  return true;
146000
- }
146001
- for (let i = 0; i < prevModelIds.length; i++) {
146002
- if (prevModelIds[i] !== newModelIds[i]) {
145980
+ for (let i = 0; i < prev.length; i++) {
145981
+ if (prev[i] !== next[i])
146003
145982
  return true;
146004
- }
146005
145983
  }
146006
145984
  return false;
146007
145985
  }
@@ -154842,17 +154820,25 @@ class SurfaceGeometry extends _MeshGeometry__WEBPACK_IMPORTED_MODULE_7__.MeshGeo
154842
154820
  }
154843
154821
  _wantWoWReversal(target) {
154844
154822
  const fillFlags = this.fillFlags;
154845
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Background))
154823
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Background)) {
154846
154824
  return false; // fill color explicitly from background
154847
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Always))
154848
- return true; // fill displayed even in wireframe
154825
+ }
154826
+ if (this.wantTextures(target, this.hasTexture)) {
154827
+ // Don't invert white pixels of textures.
154828
+ return false;
154829
+ }
154849
154830
  const vf = target.currentViewFlags;
154850
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.Wireframe === vf.renderMode || vf.visibleEdges)
154831
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.Wireframe === vf.renderMode) {
154832
+ // Fill displayed even in wireframe?
154833
+ return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Always);
154834
+ }
154835
+ if (vf.visibleEdges) {
154851
154836
  return false; // never invert surfaces when edges are displayed
154852
- if (this.isLit && wantLighting(vf))
154853
- return false;
154854
- // Don't invert white pixels of textures...
154855
- return !this.wantTextures(target, this.hasTexture);
154837
+ }
154838
+ if (this.isLit && wantLighting(vf)) {
154839
+ return false; // the lit color won't be pure white anyway.
154840
+ }
154841
+ return true;
154856
154842
  }
154857
154843
  get materialInfo() { return this.mesh.materialInfo; }
154858
154844
  useTexture(params) {
@@ -169612,6 +169598,7 @@ __webpack_require__.r(__webpack_exports__);
169612
169598
  * @module Tiles
169613
169599
  */
169614
169600
 
169601
+ /** @internal*/
169615
169602
  class GraphicsCollectorDrawArgs extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.TileDrawArgs {
169616
169603
  _planes;
169617
169604
  _worldToViewMap;
@@ -169917,6 +169904,11 @@ class IModelTile extends _tile_internal__WEBPACK_IMPORTED_MODULE_4__.Tile {
169917
169904
  system,
169918
169905
  isCanceled,
169919
169906
  sizeMultiplier,
169907
+ tileData: {
169908
+ ecefTransform: this.tree.iModel.ecefLocation?.getTransform() ?? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(),
169909
+ range: this.range,
169910
+ layerClassifiers: this.tree.layerHandler?.layerClassifiers,
169911
+ },
169920
169912
  });
169921
169913
  }
169922
169914
  catch {
@@ -170562,12 +170554,16 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
170562
170554
  * used by draw().
170563
170555
  */
170564
170556
  _numStaticTilesSelected = 0;
170557
+ layerImageryTrees = [];
170558
+ _layerHandler;
170559
+ get layerHandler() { return this._layerHandler; }
170565
170560
  constructor(params, treeId) {
170566
170561
  super(params);
170567
170562
  this.iModelTileTreeId = treeId;
170568
170563
  this.contentIdQualifier = params.contentIdQualifier;
170569
170564
  this.geometryGuid = params.geometryGuid;
170570
170565
  this.tileScreenSize = params.tileScreenSize;
170566
+ this._layerHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_6__.LayerTileTreeHandler(this);
170571
170567
  if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary === treeId.type)
170572
170568
  this.stringifiedSectionClip = treeId.sectionCut;
170573
170569
  this.maxInitialTilesToSkip = params.maxInitialTilesToSkip ?? 0;
@@ -170618,6 +170614,7 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
170618
170614
  draw(args) {
170619
170615
  const tiles = this.selectTiles(args);
170620
170616
  this._rootTile.draw(args, tiles, this._numStaticTilesSelected);
170617
+ this._layerHandler.collectClassifierGraphics(args, tiles);
170621
170618
  }
170622
170619
  prune() {
170623
170620
  const olderThan = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeTimePoint.now().minus(this.expirationTime);
@@ -170947,6 +170944,7 @@ function createPrimitiveGeometry(primitive, options, viOrigin) {
170947
170944
  textureMapping,
170948
170945
  indices: new _common_internal_render_VertexIndices__WEBPACK_IMPORTED_MODULE_6__.VertexIndices(primitive.params.surface.indices),
170949
170946
  },
170947
+ tileData: options.tileData,
170950
170948
  }, viOrigin);
170951
170949
  }
170952
170950
  }
@@ -171038,7 +171036,7 @@ async function decodeImdlGraphics(options) {
171038
171036
  return undefined;
171039
171037
  const patterns = new Map();
171040
171038
  const graphicsOptions = { ...options, textures, patterns };
171041
- graphicsOptions.tile = options.tile;
171039
+ graphicsOptions.tileData = options.tileData;
171042
171040
  for (const [name, primitives] of options.document.patterns)
171043
171041
  patterns.set(name, createPatternGeometries(primitives, graphicsOptions));
171044
171042
  const system = options.system;
@@ -171602,6 +171600,259 @@ class LRUTileList {
171602
171600
  }
171603
171601
 
171604
171602
 
171603
+ /***/ }),
171604
+
171605
+ /***/ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js":
171606
+ /*!*************************************************************************!*\
171607
+ !*** ../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js ***!
171608
+ \*************************************************************************/
171609
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
171610
+
171611
+ "use strict";
171612
+ __webpack_require__.r(__webpack_exports__);
171613
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
171614
+ /* harmony export */ LayerTileTreeHandler: () => (/* binding */ LayerTileTreeHandler)
171615
+ /* harmony export */ });
171616
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
171617
+ /*---------------------------------------------------------------------------------------------
171618
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
171619
+ * See LICENSE.md in the project root for license terms and full copyright notice.
171620
+ *--------------------------------------------------------------------------------------------*/
171621
+ /** @packageDocumentation
171622
+ * @module Tiles
171623
+ */
171624
+
171625
+ /** @internal */
171626
+ class LayerTileTreeHandler {
171627
+ _layerSettings = new Map();
171628
+ _imageryTreeState = new Map();
171629
+ _modelIdToIndex = new Map();
171630
+ layerClassifiers = new Map();
171631
+ _ref;
171632
+ get imageryTreeState() { return this._imageryTreeState; }
171633
+ get layerSettings() { return this._layerSettings; }
171634
+ get modelIdToIndex() { return this._modelIdToIndex; }
171635
+ get layerImageryTrees() { return this._ref.layerImageryTrees; }
171636
+ constructor(ref) {
171637
+ this._ref = ref;
171638
+ }
171639
+ /** Add a new imagery tile tree / map-layer settings pair and initialize the imagery tile tree state.
171640
+ * @internal
171641
+ */
171642
+ addImageryLayer(tree, settings, index, baseImageryLayer) {
171643
+ this._ref.layerImageryTrees.push({ tree, settings, baseImageryLayer });
171644
+ this._layerSettings.set(tree.modelId, settings);
171645
+ if (!this._imageryTreeState.has(tree.modelId))
171646
+ this._imageryTreeState.set(tree.modelId, new _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ImageryTileTreeState());
171647
+ this._modelIdToIndex.set(tree.modelId, index);
171648
+ }
171649
+ /** @internal */
171650
+ addModelLayer(layerTreeRef, context) {
171651
+ const tileTreeClassName = this._ref.rootTile.tree.constructor.name;
171652
+ const classifier = context.addPlanarClassifier(`MapLayer ${tileTreeClassName}-${this._ref.modelId}-${layerTreeRef.layerIndex}`, layerTreeRef);
171653
+ if (classifier)
171654
+ this.layerClassifiers.set(layerTreeRef.layerIndex, classifier);
171655
+ }
171656
+ /** @internal */
171657
+ clearLayers() {
171658
+ this._ref.rootTile.clearLayers();
171659
+ }
171660
+ /** @internal */
171661
+ collectClassifierGraphics(args, selectedTiles) {
171662
+ this.layerClassifiers.forEach((layerClassifier) => {
171663
+ layerClassifier.collectGraphics(args.context, { modelId: this._ref.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this._ref.isPointCloud });
171664
+ });
171665
+ }
171666
+ }
171667
+
171668
+
171669
+ /***/ }),
171670
+
171671
+ /***/ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js":
171672
+ /*!**********************************************************************************!*\
171673
+ !*** ../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js ***!
171674
+ \**********************************************************************************/
171675
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
171676
+
171677
+ "use strict";
171678
+ __webpack_require__.r(__webpack_exports__);
171679
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
171680
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* binding */ LayerTileTreeReferenceHandler)
171681
+ /* harmony export */ });
171682
+ /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
171683
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
171684
+ /*---------------------------------------------------------------------------------------------
171685
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
171686
+ * See LICENSE.md in the project root for license terms and full copyright notice.
171687
+ *--------------------------------------------------------------------------------------------*/
171688
+ /** @packageDocumentation
171689
+ * @module Tiles
171690
+ */
171691
+
171692
+
171693
+ /** @internal */
171694
+ class LayerTileTreeReferenceHandler {
171695
+ _layerTrees = new Array();
171696
+ isOverlay;
171697
+ _baseImageryLayerIncluded = false;
171698
+ _baseLayerSettings;
171699
+ _baseTransparent = false;
171700
+ _baseColor;
171701
+ _layerSettings;
171702
+ _ref;
171703
+ _mapTile;
171704
+ _detachFromDisplayStyle = [];
171705
+ get layerTrees() { return this._layerTrees; }
171706
+ get baseColor() { return this._baseColor; }
171707
+ get baseTransparent() { return this._baseTransparent; }
171708
+ get baseImageryLayerIncluded() { return this._baseImageryLayerIncluded; }
171709
+ get layerSettings() { return this._layerSettings; }
171710
+ discloseTileTrees(trees) {
171711
+ for (const imageryTree of this.layerTrees)
171712
+ if (imageryTree)
171713
+ trees.disclose(imageryTree);
171714
+ }
171715
+ constructor(ref, pIsOverlay, baseLayerSettings, layerSettings, mapTile = false) {
171716
+ this._ref = ref;
171717
+ this._baseLayerSettings = baseLayerSettings;
171718
+ this._layerSettings = layerSettings ? layerSettings : [];
171719
+ this.isOverlay = pIsOverlay;
171720
+ this._mapTile = mapTile;
171721
+ let tree;
171722
+ if (!this.isOverlay && this._baseLayerSettings !== undefined) {
171723
+ if (this._baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
171724
+ tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._baseLayerSettings, 0, this._ref.iModel);
171725
+ this._baseTransparent = this._baseLayerSettings.transparency > 0;
171726
+ }
171727
+ else {
171728
+ this._baseColor = this._baseLayerSettings;
171729
+ this._baseTransparent = this._baseColor?.getTransparency() > 0;
171730
+ }
171731
+ }
171732
+ if (this._baseImageryLayerIncluded = (undefined !== tree))
171733
+ this._layerTrees.push(tree);
171734
+ if (undefined !== this._layerSettings) {
171735
+ for (let i = 0; i < this._layerSettings.length; i++)
171736
+ if (undefined !== (tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._layerSettings[i], i + 1, this._ref.iModel)))
171737
+ this._layerTrees.push(tree);
171738
+ }
171739
+ }
171740
+ initializeLayers(context) {
171741
+ // Map tiles handle refresh logic differently
171742
+ if (!this._mapTile) {
171743
+ const removals = this._detachFromDisplayStyle;
171744
+ const mapImagery = context.viewport.displayStyle.settings.mapImagery;
171745
+ if (0 === removals.length) {
171746
+ removals.push(context.viewport.displayStyle.settings.onMapImageryChanged.addListener((imagery) => {
171747
+ this.setBaseLayerSettings(imagery.backgroundBase);
171748
+ this.setLayerSettings(imagery.backgroundLayers);
171749
+ this.clearLayers();
171750
+ }));
171751
+ }
171752
+ removals.push(context.viewport.onChangeView.addListener((vp, previousViewState) => {
171753
+ if ((0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.compareMapLayer)(previousViewState, vp.view)) {
171754
+ this.setBaseLayerSettings(mapImagery.backgroundBase);
171755
+ this.setLayerSettings(mapImagery.backgroundLayers);
171756
+ this.clearLayers();
171757
+ }
171758
+ }));
171759
+ }
171760
+ let hasLoadedTileTree = false;
171761
+ const layerHandler = this._ref.treeOwner.load()?.layerHandler;
171762
+ if (undefined === layerHandler) {
171763
+ return hasLoadedTileTree; // Not loaded yet - or no layerHandler on tree.
171764
+ }
171765
+ layerHandler.layerImageryTrees.length = 0;
171766
+ if (0 === this._layerTrees.length) {
171767
+ return !this.isOverlay;
171768
+ }
171769
+ let treeIndex = this._layerTrees.length - 1;
171770
+ // Start displaying at the highest completely opaque layer...
171771
+ for (; treeIndex >= 1; treeIndex--) {
171772
+ const layerTreeRef = this._layerTrees[treeIndex];
171773
+ if (layerTreeRef?.isOpaque)
171774
+ break; // This layer is completely opaque and will obscure all others so ignore lower ones.
171775
+ }
171776
+ for (; treeIndex < this._layerTrees.length; treeIndex++) {
171777
+ const layerTreeRef = this._layerTrees[treeIndex];
171778
+ const hasValidTileTree = layerTreeRef && _tile_internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeLoadStatus.NotFound !== layerTreeRef.treeOwner.loadStatus;
171779
+ const isImageryMapLayer = layerTreeRef instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapLayerTreeReference;
171780
+ const isLayerVisible = (isImageryMapLayer || (!isImageryMapLayer && layerTreeRef?.layerSettings.visible));
171781
+ if (!this._ref.shouldDrapeLayer(layerTreeRef)) {
171782
+ // If the layer is not to be displayed, then we should skip adding it to the tile tree.
171783
+ // The _shouldDrapeLayerFunc() function is sent in from MapTileTreeReference or RealityTileTree.
171784
+ hasLoadedTileTree = true; // ###TODO had to set this to true so addToScene actually works. alternative?
171785
+ continue;
171786
+ }
171787
+ // Load tile tree for each configured layer.
171788
+ // Note: Non-visible imagery layer are always added to allow proper tile tree scale range visibility reporting.
171789
+ if (hasValidTileTree
171790
+ && isLayerVisible
171791
+ && !layerTreeRef.layerSettings.allSubLayersInvisible) {
171792
+ const layerTree = layerTreeRef.treeOwner.load();
171793
+ if (layerTree !== undefined) {
171794
+ hasLoadedTileTree = true;
171795
+ }
171796
+ else {
171797
+ // Let's continue, there might be loaded tile tree in the list
171798
+ continue;
171799
+ }
171800
+ // Add loaded TileTree
171801
+ const baseImageryLayer = this._baseImageryLayerIncluded && (treeIndex === 0);
171802
+ if (layerTree instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapTileTree) {
171803
+ layerHandler.addImageryLayer(layerTree, layerTreeRef.layerSettings, treeIndex, baseImageryLayer);
171804
+ }
171805
+ else if (layerTreeRef instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerTileTreeReference)
171806
+ layerHandler.addModelLayer(layerTreeRef, context);
171807
+ }
171808
+ }
171809
+ return hasLoadedTileTree;
171810
+ }
171811
+ setBaseLayerSettings(baseLayerSettings) {
171812
+ let tree;
171813
+ this._baseLayerSettings = baseLayerSettings;
171814
+ if (baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
171815
+ tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(baseLayerSettings, 0, this._ref.iModel);
171816
+ this._baseColor = undefined;
171817
+ this._baseTransparent = baseLayerSettings.transparency > 0;
171818
+ }
171819
+ else {
171820
+ this._baseColor = baseLayerSettings;
171821
+ this._baseTransparent = this._baseColor.getTransparency() > 0;
171822
+ }
171823
+ if (tree) {
171824
+ if (this._baseImageryLayerIncluded)
171825
+ this._layerTrees[0] = tree;
171826
+ else
171827
+ this._layerTrees.splice(0, 0, tree);
171828
+ }
171829
+ else {
171830
+ if (this._baseImageryLayerIncluded)
171831
+ this._layerTrees.shift();
171832
+ }
171833
+ this._baseImageryLayerIncluded = tree !== undefined;
171834
+ this.clearLayers();
171835
+ }
171836
+ clearLayers() {
171837
+ const layerHandler = this._ref.treeOwner.tileTree?.layerHandler;
171838
+ if (undefined !== layerHandler) {
171839
+ layerHandler.clearLayers();
171840
+ }
171841
+ }
171842
+ setLayerSettings(layerSettings) {
171843
+ this._layerSettings = layerSettings;
171844
+ const baseLayerIndex = this._baseImageryLayerIncluded ? 1 : 0;
171845
+ this._layerTrees.length = Math.min(layerSettings.length + baseLayerIndex, this._layerTrees.length); // Truncate if number of layers reduced.
171846
+ for (let i = 0; i < layerSettings.length; i++) {
171847
+ const treeIndex = i + baseLayerIndex;
171848
+ if (treeIndex >= this._layerTrees.length || !this._layerTrees[treeIndex]?.layerSettings.displayMatches(layerSettings[i]))
171849
+ this._layerTrees[treeIndex] = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(layerSettings[i], treeIndex, this._ref.iModel);
171850
+ }
171851
+ this.clearLayers();
171852
+ }
171853
+ }
171854
+
171855
+
171605
171856
  /***/ }),
171606
171857
 
171607
171858
  /***/ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js":
@@ -172678,8 +172929,18 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
172678
172929
  _sectionClip;
172679
172930
  _sectionCutAppearanceProvider;
172680
172931
  _animationTransformNodeId;
172681
- constructor(view, model, planProjection, transformNodeId, sectionClip) {
172932
+ _layerRefHandler;
172933
+ iModel;
172934
+ shouldDrapeLayer(layerTreeRef) {
172935
+ const mapLayerSettings = layerTreeRef?.layerSettings;
172936
+ if (mapLayerSettings && mapLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerSettings)
172937
+ return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerDrapeTarget.IModel === mapLayerSettings.drapeTarget;
172938
+ return false;
172939
+ }
172940
+ constructor(view, model, planProjection, transformNodeId, sectionClip, backgroundBase, backgroundLayers) {
172682
172941
  super();
172942
+ this.iModel = model.iModel;
172943
+ this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_6__.LayerTileTreeReferenceHandler(this, false, backgroundBase, backgroundLayers, false);
172683
172944
  this.view = view;
172684
172945
  this.model = model;
172685
172946
  this._animationTransformNodeId = transformNodeId;
@@ -172723,6 +172984,10 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
172723
172984
  get isPlanProjection() {
172724
172985
  return false;
172725
172986
  }
172987
+ discloseTileTrees(trees) {
172988
+ super.discloseTileTrees(trees);
172989
+ this._layerRefHandler.discloseTileTrees(trees);
172990
+ }
172726
172991
  getClipVolume(_tree) {
172727
172992
  // ###TODO: reduce frequency with which getModelClip() is called
172728
172993
  return this.view.is3d() && !this._sectionClip ? this.view.getModelClip(this.model.id) : undefined;
@@ -172782,6 +173047,12 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
172782
173047
  return baseTf;
172783
173048
  return displayTf.premultiply ? displayTf.transform.multiplyTransformTransform(baseTf) : baseTf.multiplyTransformTransform(displayTf.transform);
172784
173049
  }
173050
+ addToScene(context) {
173051
+ const tree = this.treeOwner.load();
173052
+ if (undefined === tree || !this._layerRefHandler.initializeLayers(context))
173053
+ return; // Not loaded yet.
173054
+ super.addToScene(context);
173055
+ }
172785
173056
  }
172786
173057
  class AnimatedTreeReference extends PrimaryTreeReference {
172787
173058
  _branchId;
@@ -172816,8 +173087,8 @@ class AnimatedTreeReference extends PrimaryTreeReference {
172816
173087
  class PlanProjectionTreeReference extends PrimaryTreeReference {
172817
173088
  get _view3d() { return this.view; }
172818
173089
  _baseTransform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Transform.createIdentity();
172819
- constructor(view, model, sectionCut) {
172820
- super(view, model, true, undefined, sectionCut);
173090
+ constructor(view, model, sectionCut, backgroundBase, backgroundLayers) {
173091
+ super(view, model, true, undefined, sectionCut, backgroundBase, backgroundLayers);
172821
173092
  this._viewFlagOverrides.forceSurfaceDiscard = true;
172822
173093
  }
172823
173094
  get castsShadows() {
@@ -172882,13 +173153,15 @@ function isPlanProjection(view, model) {
172882
173153
  const model3d = view.is3d() ? model.asGeometricModel3d : undefined;
172883
173154
  return undefined !== model3d && model3d.isPlanProjection;
172884
173155
  }
172885
- function createTreeRef(view, model, sectionCut) {
173156
+ function createTreeRef(view, model, sectionCut, backgroundBase, backgroundLayers) {
172886
173157
  if (false !== _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.renderSystem.options.planProjections && isPlanProjection(view, model))
172887
- return new PlanProjectionTreeReference(view, model, sectionCut);
172888
- return new PrimaryTreeReference(view, model, false, undefined, sectionCut);
173158
+ return new PlanProjectionTreeReference(view, model, sectionCut, backgroundBase, backgroundLayers);
173159
+ return new PrimaryTreeReference(view, model, false, undefined, sectionCut, backgroundBase, backgroundLayers);
172889
173160
  }
172890
- function createPrimaryTileTreeReference(view, model) {
172891
- return createTreeRef(view, model, undefined);
173161
+ function createPrimaryTileTreeReference(view, model, getBackgroundBase, getBackgroundLayers) {
173162
+ const backgroundBase = getBackgroundBase?.();
173163
+ const backgroundLayers = getBackgroundLayers?.();
173164
+ return createTreeRef(view, model, undefined, backgroundBase, backgroundLayers);
172892
173165
  }
172893
173166
  class MaskTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTreeReference {
172894
173167
  _id;
@@ -173221,7 +173494,6 @@ __webpack_require__.r(__webpack_exports__);
173221
173494
  /* harmony import */ var _RealityDataSource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../RealityDataSource */ "../../core/frontend/lib/esm/RealityDataSource.js");
173222
173495
  /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
173223
173496
  /* harmony import */ var _RealityDataSourceTilesetUrlImpl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../RealityDataSourceTilesetUrlImpl */ "../../core/frontend/lib/esm/RealityDataSourceTilesetUrlImpl.js");
173224
- /* harmony import */ var _render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
173225
173497
  /*---------------------------------------------------------------------------------------------
173226
173498
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
173227
173499
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -173239,7 +173511,6 @@ __webpack_require__.r(__webpack_exports__);
173239
173511
 
173240
173512
 
173241
173513
 
173242
-
173243
173514
  function getUrl(content) {
173244
173515
  return content ? (content.url ? content.url : content.uri) : undefined;
173245
173516
  }
@@ -173690,7 +173961,6 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
173690
173961
  _classifier;
173691
173962
  _mapDrapeTree;
173692
173963
  _getDisplaySettings;
173693
- _detachFromDisplayStyle = [];
173694
173964
  _layerRefHandler;
173695
173965
  iModel;
173696
173966
  get planarClipMask() { return this._planarClipMask; }
@@ -173712,7 +173982,7 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
173712
173982
  constructor(props) {
173713
173983
  super();
173714
173984
  this.iModel = props.iModel;
173715
- this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler(this, false, props.getBackgroundBase?.(), props.getBackgroundLayers?.());
173985
+ this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler(this, false, props.getBackgroundBase?.(), props.getBackgroundLayers?.(), false);
173716
173986
  this._name = undefined !== props.name ? props.name : "";
173717
173987
  let transform;
173718
173988
  if (undefined !== props.tilesetToDbTransform) {
@@ -173742,24 +174012,6 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
173742
174012
  }
173743
174013
  return this._isGlobal === undefined ? false : this._isGlobal;
173744
174014
  }
173745
- preInitializeLayers(context) {
173746
- const removals = this._detachFromDisplayStyle;
173747
- const mapImagery = context.viewport.displayStyle.settings.mapImagery;
173748
- if (0 === removals.length) {
173749
- removals.push(context.viewport.displayStyle.settings.onMapImageryChanged.addListener((imagery) => {
173750
- this._layerRefHandler.setBaseLayerSettings(imagery.backgroundBase);
173751
- this._layerRefHandler.setLayerSettings(imagery.backgroundLayers);
173752
- this._layerRefHandler.clearLayers();
173753
- }));
173754
- }
173755
- removals.push(context.viewport.onChangeView.addListener((vp, previousViewState) => {
173756
- if ((0,_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_10__.compareMapLayer)(previousViewState, vp.view)) {
173757
- this._layerRefHandler.setBaseLayerSettings(mapImagery.backgroundBase);
173758
- this._layerRefHandler.setLayerSettings(mapImagery.backgroundLayers);
173759
- this._layerRefHandler.clearLayers();
173760
- }
173761
- }));
173762
- }
173763
174015
  addToScene(context) {
173764
174016
  const tree = this.treeOwner.load();
173765
174017
  if (undefined === tree || !this._layerRefHandler.initializeLayers(context))
@@ -173788,6 +174040,7 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
173788
174040
  this._mapDrapeTree.discloseTileTrees(trees);
173789
174041
  if (undefined !== this._planarClipMask)
173790
174042
  this._planarClipMask.discloseTileTrees(trees);
174043
+ this._layerRefHandler.discloseTileTrees(trees);
173791
174044
  }
173792
174045
  collectStatistics(stats) {
173793
174046
  super.collectStatistics(stats);
@@ -184644,6 +184897,7 @@ async function readImdlContent(args) {
184644
184897
  iModel: args.iModel,
184645
184898
  document,
184646
184899
  isCanceled: args.isCanceled,
184900
+ tileData: args.tileData,
184647
184901
  });
184648
184902
  if (isCanceled())
184649
184903
  return { isLeaf: true, readStatus: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.TileReadStatus.Canceled };
@@ -184677,233 +184931,6 @@ var ImdlReader;
184677
184931
  })(ImdlReader || (ImdlReader = {}));
184678
184932
 
184679
184933
 
184680
- /***/ }),
184681
-
184682
- /***/ "../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js":
184683
- /*!****************************************************************!*\
184684
- !*** ../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js ***!
184685
- \****************************************************************/
184686
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
184687
-
184688
- "use strict";
184689
- __webpack_require__.r(__webpack_exports__);
184690
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
184691
- /* harmony export */ LayerTileTreeHandler: () => (/* binding */ LayerTileTreeHandler)
184692
- /* harmony export */ });
184693
- /* harmony import */ var _internal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal */ "../../core/frontend/lib/esm/tile/internal.js");
184694
- /*---------------------------------------------------------------------------------------------
184695
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
184696
- * See LICENSE.md in the project root for license terms and full copyright notice.
184697
- *--------------------------------------------------------------------------------------------*/
184698
- /** @packageDocumentation
184699
- * @module Tiles
184700
- */
184701
-
184702
- /** @internal */
184703
- class LayerTileTreeHandler {
184704
- _layerSettings = new Map();
184705
- _imageryTreeState = new Map();
184706
- _modelIdToIndex = new Map();
184707
- layerClassifiers = new Map();
184708
- _ref;
184709
- get imageryTreeState() { return this._imageryTreeState; }
184710
- get layerSettings() { return this._layerSettings; }
184711
- get modelIdToIndex() { return this._modelIdToIndex; }
184712
- get layerImageryTrees() { return this._ref.layerImageryTrees; }
184713
- constructor(ref) {
184714
- this._ref = ref;
184715
- }
184716
- /** Add a new imagery tile tree / map-layer settings pair and initialize the imagery tile tree state.
184717
- * @internal
184718
- */
184719
- addImageryLayer(tree, settings, index, baseImageryLayer) {
184720
- this._ref.layerImageryTrees.push({ tree, settings, baseImageryLayer });
184721
- this._layerSettings.set(tree.modelId, settings);
184722
- if (!this._imageryTreeState.has(tree.modelId))
184723
- this._imageryTreeState.set(tree.modelId, new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryTileTreeState());
184724
- this._modelIdToIndex.set(tree.modelId, index);
184725
- }
184726
- /** @internal */
184727
- addModelLayer(layerTreeRef, context) {
184728
- const classifier = context.addPlanarClassifier(`MapLayer ${this._ref.modelId}-${layerTreeRef.layerIndex}`, layerTreeRef);
184729
- if (classifier)
184730
- this.layerClassifiers.set(layerTreeRef.layerIndex, classifier);
184731
- }
184732
- /** @internal */
184733
- clearLayers() {
184734
- this._ref.rootTile.clearLayers();
184735
- }
184736
- /** @internal */
184737
- collectClassifierGraphics(args, selectedTiles) {
184738
- this.layerClassifiers.forEach((layerClassifier) => {
184739
- layerClassifier.collectGraphics(args.context, { modelId: this._ref.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this._ref.isPointCloud });
184740
- });
184741
- }
184742
- }
184743
-
184744
-
184745
- /***/ }),
184746
-
184747
- /***/ "../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js":
184748
- /*!*************************************************************************!*\
184749
- !*** ../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js ***!
184750
- \*************************************************************************/
184751
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
184752
-
184753
- "use strict";
184754
- __webpack_require__.r(__webpack_exports__);
184755
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
184756
- /* harmony export */ LayerTileTreeReferenceHandler: () => (/* binding */ LayerTileTreeReferenceHandler)
184757
- /* harmony export */ });
184758
- /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
184759
- /* harmony import */ var _internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal */ "../../core/frontend/lib/esm/tile/internal.js");
184760
- /*---------------------------------------------------------------------------------------------
184761
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
184762
- * See LICENSE.md in the project root for license terms and full copyright notice.
184763
- *--------------------------------------------------------------------------------------------*/
184764
- /** @packageDocumentation
184765
- * @module Tiles
184766
- */
184767
-
184768
-
184769
- /** @internal */
184770
- class LayerTileTreeReferenceHandler {
184771
- _layerTrees = new Array();
184772
- isOverlay;
184773
- _baseImageryLayerIncluded = false;
184774
- _baseLayerSettings;
184775
- _baseTransparent = false;
184776
- _baseColor;
184777
- _layerSettings;
184778
- _ref;
184779
- get layerTrees() { return this._layerTrees; }
184780
- get baseColor() { return this._baseColor; }
184781
- get baseTransparent() { return this._baseTransparent; }
184782
- get baseImageryLayerIncluded() { return this._baseImageryLayerIncluded; }
184783
- get layerSettings() { return this._layerSettings; }
184784
- constructor(ref, pIsOverlay, baseLayerSettings, layerSettings) {
184785
- this._ref = ref;
184786
- this._baseLayerSettings = baseLayerSettings;
184787
- this._layerSettings = layerSettings ? layerSettings : [];
184788
- this.isOverlay = pIsOverlay;
184789
- let tree;
184790
- if (!this.isOverlay && this._baseLayerSettings !== undefined) {
184791
- if (this._baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
184792
- tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._baseLayerSettings, 0, this._ref.iModel);
184793
- this._baseTransparent = this._baseLayerSettings.transparency > 0;
184794
- }
184795
- else {
184796
- this._baseColor = this._baseLayerSettings;
184797
- this._baseTransparent = this._baseColor?.getTransparency() > 0;
184798
- }
184799
- }
184800
- if (this._baseImageryLayerIncluded = (undefined !== tree))
184801
- this._layerTrees.push(tree);
184802
- if (undefined !== this._layerSettings) {
184803
- for (let i = 0; i < this._layerSettings.length; i++)
184804
- if (undefined !== (tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._layerSettings[i], i + 1, this._ref.iModel)))
184805
- this._layerTrees.push(tree);
184806
- }
184807
- }
184808
- initializeLayers(context) {
184809
- if (undefined !== this._ref.preInitializeLayers)
184810
- this._ref.preInitializeLayers(context);
184811
- let hasLoadedTileTree = false;
184812
- const layerHandler = this._ref.treeOwner.load()?.layerHandler;
184813
- if (undefined === layerHandler) {
184814
- return hasLoadedTileTree; // Not loaded yet - or no layerHandler on tree.
184815
- }
184816
- layerHandler.layerImageryTrees.length = 0;
184817
- if (0 === this._layerTrees.length) {
184818
- return !this.isOverlay;
184819
- }
184820
- let treeIndex = this._layerTrees.length - 1;
184821
- // Start displaying at the highest completely opaque layer...
184822
- for (; treeIndex >= 1; treeIndex--) {
184823
- const layerTreeRef = this._layerTrees[treeIndex];
184824
- if (layerTreeRef?.isOpaque)
184825
- break; // This layer is completely opaque and will obscure all others so ignore lower ones.
184826
- }
184827
- for (; treeIndex < this._layerTrees.length; treeIndex++) {
184828
- const layerTreeRef = this._layerTrees[treeIndex];
184829
- const hasValidTileTree = layerTreeRef && _internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeLoadStatus.NotFound !== layerTreeRef.treeOwner.loadStatus;
184830
- const isImageryMapLayer = layerTreeRef instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapLayerTreeReference;
184831
- const isLayerVisible = (isImageryMapLayer || (!isImageryMapLayer && layerTreeRef?.layerSettings.visible));
184832
- if (!this._ref.shouldDrapeLayer(layerTreeRef)) {
184833
- // If the layer is not to be displayed, then we should skip adding it to the tile tree.
184834
- // The _shouldDrapeLayerFunc() function is sent in from MapTileTreeReference or RealityTileTree.
184835
- hasLoadedTileTree = true; // ###TODO had to set this to true so addToScene actually works. alternative?
184836
- continue;
184837
- }
184838
- // Load tile tree for each configured layer.
184839
- // Note: Non-visible imagery layer are always added to allow proper tile tree scale range visibility reporting.
184840
- if (hasValidTileTree
184841
- && isLayerVisible
184842
- && !layerTreeRef.layerSettings.allSubLayersInvisible) {
184843
- const layerTree = layerTreeRef.treeOwner.load();
184844
- if (layerTree !== undefined) {
184845
- hasLoadedTileTree = true;
184846
- }
184847
- else {
184848
- // Let's continue, there might be loaded tile tree in the list
184849
- continue;
184850
- }
184851
- // Add loaded TileTree
184852
- const baseImageryLayer = this._baseImageryLayerIncluded && (treeIndex === 0);
184853
- if (layerTree instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapTileTree) {
184854
- layerHandler.addImageryLayer(layerTree, layerTreeRef.layerSettings, treeIndex, baseImageryLayer);
184855
- }
184856
- else if (layerTreeRef instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerTileTreeReference)
184857
- layerHandler.addModelLayer(layerTreeRef, context);
184858
- }
184859
- }
184860
- return hasLoadedTileTree;
184861
- }
184862
- setBaseLayerSettings(baseLayerSettings) {
184863
- let tree;
184864
- this._baseLayerSettings = baseLayerSettings;
184865
- if (baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
184866
- tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(baseLayerSettings, 0, this._ref.iModel);
184867
- this._baseColor = undefined;
184868
- this._baseTransparent = baseLayerSettings.transparency > 0;
184869
- }
184870
- else {
184871
- this._baseColor = baseLayerSettings;
184872
- this._baseTransparent = this._baseColor.getTransparency() > 0;
184873
- }
184874
- if (tree) {
184875
- if (this._baseImageryLayerIncluded)
184876
- this._layerTrees[0] = tree;
184877
- else
184878
- this._layerTrees.splice(0, 0, tree);
184879
- }
184880
- else {
184881
- if (this._baseImageryLayerIncluded)
184882
- this._layerTrees.shift();
184883
- }
184884
- this._baseImageryLayerIncluded = tree !== undefined;
184885
- this.clearLayers();
184886
- }
184887
- clearLayers() {
184888
- const layerHandler = this._ref.treeOwner.tileTree?.layerHandler;
184889
- if (undefined !== layerHandler) {
184890
- layerHandler.clearLayers();
184891
- }
184892
- }
184893
- setLayerSettings(layerSettings) {
184894
- this._layerSettings = layerSettings;
184895
- const baseLayerIndex = this._baseImageryLayerIncluded ? 1 : 0;
184896
- this._layerTrees.length = Math.min(layerSettings.length + baseLayerIndex, this._layerTrees.length); // Truncate if number of layers reduced.
184897
- for (let i = 0; i < layerSettings.length; i++) {
184898
- const treeIndex = i + baseLayerIndex;
184899
- if (treeIndex >= this._layerTrees.length || !this._layerTrees[treeIndex]?.layerSettings.displayMatches(layerSettings[i]))
184900
- this._layerTrees[treeIndex] = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(layerSettings[i], treeIndex, this._ref.iModel);
184901
- }
184902
- this.clearLayers();
184903
- }
184904
- }
184905
-
184906
-
184907
184934
  /***/ }),
184908
184935
 
184909
184936
  /***/ "../../core/frontend/lib/esm/tile/RealityTile.js":
@@ -189469,8 +189496,9 @@ __webpack_require__.r(__webpack_exports__);
189469
189496
  /* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_86__.ImageryTileTreeState),
189470
189497
  /* harmony export */ ImdlReader: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.ImdlReader),
189471
189498
  /* harmony export */ LRUTileList: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.LRUTileList),
189472
- /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
189473
- /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
189499
+ /* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.LayerTextureParams),
189500
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
189501
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
189474
189502
  /* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_60__.MapBoxLayerImageryProvider),
189475
189503
  /* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle),
189476
189504
  /* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_41__.MapFeatureInfoRecord),
@@ -189497,6 +189525,7 @@ __webpack_require__.r(__webpack_exports__);
189497
189525
  /* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_85__.OrbitGtTreeReference),
189498
189526
  /* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_71__.PlanarProjection),
189499
189527
  /* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_71__.PlanarTilePatch),
189528
+ /* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.ProjectedTexture),
189500
189529
  /* harmony export */ QuadId: () => (/* reexport safe */ _map_QuadId__WEBPACK_IMPORTED_MODULE_2__.QuadId),
189501
189530
  /* harmony export */ ReadonlyTileUserSet: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.ReadonlyTileUserSet),
189502
189531
  /* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_78__.RealityModelTileTree),
@@ -189557,6 +189586,7 @@ __webpack_require__.r(__webpack_exports__);
189557
189586
  /* harmony export */ acquireImdlParser: () => (/* reexport safe */ _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__.acquireImdlParser),
189558
189587
  /* harmony export */ addRangeGraphic: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.addRangeGraphic),
189559
189588
  /* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_48__.appendQueryParams),
189589
+ /* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.compareMapLayer),
189560
189590
  /* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_84__.createClassifierTileTreeReference),
189561
189591
  /* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
189562
189592
  /* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
@@ -189611,8 +189641,8 @@ __webpack_require__.r(__webpack_exports__);
189611
189641
  /* harmony import */ var _TileTreeSupplier__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./TileTreeSupplier */ "../../core/frontend/lib/esm/tile/TileTreeSupplier.js");
189612
189642
  /* harmony import */ var _TileTreeOwner__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./TileTreeOwner */ "../../core/frontend/lib/esm/tile/TileTreeOwner.js");
189613
189643
  /* harmony import */ var _TileTreeReference__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./TileTreeReference */ "../../core/frontend/lib/esm/tile/TileTreeReference.js");
189614
- /* harmony import */ var _LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./LayerTileTreeReferenceHandler */ "../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js");
189615
- /* harmony import */ var _LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./LayerTileTreeHandler */ "../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js");
189644
+ /* harmony import */ var _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/tile/LayerTileTreeReferenceHandler */ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js");
189645
+ /* harmony import */ var _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/tile/LayerTileTreeHandler */ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js");
189616
189646
  /* harmony import */ var _TileGeometryCollector__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./TileGeometryCollector */ "../../core/frontend/lib/esm/tile/TileGeometryCollector.js");
189617
189647
  /* harmony import */ var _TiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./TiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/TiledGraphicsProvider.js");
189618
189648
  /* harmony import */ var _TileAdmin__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./TileAdmin */ "../../core/frontend/lib/esm/tile/TileAdmin.js");
@@ -189687,6 +189717,7 @@ __webpack_require__.r(__webpack_exports__);
189687
189717
  /* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
189688
189718
  /* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
189689
189719
  /* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
189720
+ /* harmony import */ var _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
189690
189721
  /*---------------------------------------------------------------------------------------------
189691
189722
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
189692
189723
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -189798,6 +189829,7 @@ __webpack_require__.r(__webpack_exports__);
189798
189829
 
189799
189830
 
189800
189831
 
189832
+
189801
189833
 
189802
189834
 
189803
189835
  /***/ }),
@@ -193787,7 +193819,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
193787
193819
  this._planarClipMask = _PlanarClipMaskState__WEBPACK_IMPORTED_MODULE_5__.PlanarClipMaskState.create(this._settings.planarClipMask);
193788
193820
  if (this._overrideTerrainDisplay && this._overrideTerrainDisplay()?.produceGeometry)
193789
193821
  this.collectTileGeometry = (collector) => this._collectTileGeometry(collector);
193790
- this._layerRefHandler = new _internal__WEBPACK_IMPORTED_MODULE_7__.LayerTileTreeReferenceHandler(this, isOverlay, baseLayerSettings, layerSettings);
193822
+ this._layerRefHandler = new _internal__WEBPACK_IMPORTED_MODULE_7__.LayerTileTreeReferenceHandler(this, isOverlay, baseLayerSettings, layerSettings, true);
193791
193823
  }
193792
193824
  forEachLayerTileTreeRef(func) {
193793
193825
  for (const layerTree of this._layerRefHandler.layerTrees) {
@@ -193926,9 +193958,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
193926
193958
  }
193927
193959
  discloseTileTrees(trees) {
193928
193960
  super.discloseTileTrees(trees);
193929
- for (const imageryTree of this._layerRefHandler.layerTrees)
193930
- if (imageryTree)
193931
- trees.disclose(imageryTree);
193961
+ this._layerRefHandler.discloseTileTrees(trees);
193932
193962
  if (this._planarClipMask)
193933
193963
  this._planarClipMask.discloseTileTrees(trees);
193934
193964
  }
@@ -196247,13 +196277,6 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196247
196277
  const itemField = this._controls.itemFields[item];
196248
196278
  itemField.setSelectionRange(0, itemField.value.length);
196249
196279
  }
196250
- makeParserHappy(value, isAngle) {
196251
- // TODO: Work around for default length parser not accepting output formatted with dash separator, ex. 20'-6"...
196252
- const parserSpec = (isAngle ? undefined : this.getLengthParser());
196253
- if (undefined === parserSpec)
196254
- return value;
196255
- return (_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.FormatType.Fractional === parserSpec.format.type && -1 !== value.indexOf("'-") ? value.replaceAll("'-", "':") : value);
196256
- }
196257
196280
  evaluateExpression(operator, operandA, operandB) {
196258
196281
  switch (operator) {
196259
196282
  case "+":
@@ -196282,7 +196305,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196282
196305
  if (undefined === parserSpec || undefined === formatterSpec)
196283
196306
  return undefined; // Nothing to do...
196284
196307
  const operandAStr = currentValue.substring(0, operator);
196285
- const parseResultA = parserSpec.parseToQuantityValue(this.makeParserHappy(operandAStr, isAngle));
196308
+ const parseResultA = parserSpec.parseToQuantityValue(operandAStr);
196286
196309
  if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultA))
196287
196310
  return undefined; // First operand isn't valid, try to parse current value (which is also likely to fail)...
196288
196311
  const operandBStr = currentValue.substring(operator + this._expression.operator.length);
@@ -196295,7 +196318,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196295
196318
  return operandAStr; // Second operand is invalid number, set value to first operand which is valid...
196296
196319
  }
196297
196320
  else {
196298
- const parseResultB = parserSpec.parseToQuantityValue(this.makeParserHappy(operandBStr, isAngle));
196321
+ const parseResultB = parserSpec.parseToQuantityValue(operandBStr);
196299
196322
  if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultB))
196300
196323
  return operandAStr; // Second operand is invalid quantity, set value to first operand which is valid...
196301
196324
  operandB = parseResultB.value;
@@ -196310,26 +196333,31 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196310
196333
  return;
196311
196334
  const itemField = this._controls.itemFields[item];
196312
196335
  const currentValue = itemField.value;
196313
- // If current value has been deleted, unlock field and refresh for current cursor location...
196336
+ // If value was cleared, unlock field and sync internal state to cursor location while preserving partial keyin status...
196314
196337
  if (0 === currentValue.length) {
196315
- this.updateFieldLock(item, false);
196338
+ await this.processFieldInput(item, currentValue, false);
196316
196339
  _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.simulateMotionEvent();
196317
196340
  return;
196318
196341
  }
196319
196342
  const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
196320
196343
  const expressionValue = this.parseExpression(currentValue, isAngle);
196321
- return this.processFieldInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), false);
196344
+ return this.processFieldInput(item, expressionValue ?? currentValue, false);
196322
196345
  }
196323
196346
  async acceptPartialInput(item, forward) {
196324
196347
  if (undefined === this._controls)
196325
196348
  return;
196326
196349
  const itemField = this._controls.itemFields[item];
196327
196350
  const currentValue = itemField.value;
196351
+ // Accepting with cleared value needs to set state back to dynamic and sync field to internal state...
196352
+ if (0 === currentValue.length && undefined === forward) {
196353
+ this.setDynamicKeyinStatus(item);
196354
+ return this.updateItemFieldValue(itemField, item);
196355
+ }
196328
196356
  const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
196329
196357
  const expressionValue = this.parseExpression(currentValue, isAngle);
196330
196358
  if (undefined === forward)
196331
- return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldAcceptInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle));
196332
- return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNavigate(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), forward);
196359
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldAcceptInput(item, expressionValue ?? currentValue);
196360
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNavigate(item, expressionValue ?? currentValue, forward);
196333
196361
  }
196334
196362
  acceptSavedValue(item, next) {
196335
196363
  if (next)
@@ -196501,10 +196529,8 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196501
196529
  return this.processPartialInput(item);
196502
196530
  }
196503
196531
  async onKeyboardEvent(ev, isDown) {
196504
- if (ev.ctrlKey || ev.altKey || ev.metaKey) {
196505
- ev.preventDefault(); // Ignore qualifiers other than shift...
196506
- return;
196507
- }
196532
+ if (ev.ctrlKey || ev.altKey || ev.metaKey)
196533
+ return; // Ignore qualifiers other than shift...
196508
196534
  switch (ev.key) {
196509
196535
  case "Escape":
196510
196536
  return this.doFocusHome(ev, isDown, this._focusItem);
@@ -196564,7 +196590,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
196564
196590
  const isDynamic = this.isDynamicKeyinStatus(item);
196565
196591
  if (isDynamic && item === this._expression?.item)
196566
196592
  this._expression = undefined; // Only valid when entering partial input...
196567
- itemField.style.caretColor = isDynamic ? itemField.style.backgroundColor : itemField.style.color;
196593
+ itemField.style.caretColor = isDynamic ? "transparent" : itemField.style.color;
196568
196594
  }
196569
196595
  updateItemFieldValue(itemField, item) {
196570
196596
  const value = this.getFormattedValueByIndex(item);
@@ -205899,7 +205925,15 @@ class ViewManip extends ViewTool {
205899
205925
  this._depthPreview = { testPoint: ev.rawPoint, pickRadius: pickRadiusPixels, plane: result.plane, source: result.source, isDefaultDepth: !isValidDepth, sourceId: result.sourceId };
205900
205926
  return (isValidDepth || isPreview ? result.plane.getOriginRef() : undefined);
205901
205927
  }
205928
+ /** In addition to the onReinitialize calls after a tool installs or restarts, it is also
205929
+ * called from the mouseover event to cancel a drag operation if the up event occurred outside the view.
205930
+ * When operating in one shot mode and also requiring dragging, the tool should exit and not restart in ths situation.
205931
+ * A tool must opt in to allowing [[ViewTool.exitTool]] to be called from [[ViewManip.onReinitialize]] by
205932
+ * overriding this method to return true.
205933
+ */
205934
+ get isExitAllowedOnReinitialize() { return false; }
205902
205935
  async onReinitialize() {
205936
+ const shouldExit = (this.oneShot && this.isDraggingRequired && this.isDragging && 0 !== this.nPts);
205903
205937
  if (undefined !== this.viewport) {
205904
205938
  this.viewport.synchWithView(); // make sure we store any changes in view undo buffer.
205905
205939
  this.viewHandles.setFocus(-1);
@@ -205909,6 +205943,9 @@ class ViewManip extends ViewTool {
205909
205943
  this.inDynamicUpdate = false;
205910
205944
  this._startPose = undefined;
205911
205945
  this.viewHandles.onReinitialize();
205946
+ if (shouldExit && this.isExitAllowedOnReinitialize)
205947
+ return this.exitTool();
205948
+ this.provideInitialToolAssistance();
205912
205949
  }
205913
205950
  async onDataButtonDown(ev) {
205914
205951
  // Tool was started in "drag required" mode, don't advance tool state and wait to see if we get the start drag event.
@@ -206046,7 +206083,6 @@ class ViewManip extends ViewTool {
206046
206083
  await super.onPostInstall();
206047
206084
  await this.onReinitialize(); // Call onReinitialize now that tool is installed.
206048
206085
  }
206049
- /** @beta */
206050
206086
  provideToolAssistance(mainInstrKey, additionalInstr) {
206051
206087
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(mainInstrKey));
206052
206088
  const mouseInstructions = [];
@@ -206071,6 +206107,8 @@ class ViewManip extends ViewTool {
206071
206107
  const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstructions(mainInstruction, sections);
206072
206108
  _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.notifications.setToolAssistance(instructions);
206073
206109
  }
206110
+ /** Called from [[ViewManip.onReinitialize]] to allow tools to establish the tool assistance for the first point. */
206111
+ provideInitialToolAssistance() { }
206074
206112
  async onCleanup() {
206075
206113
  let restorePrevious = false;
206076
206114
  if (this.inDynamicUpdate) {
@@ -208011,10 +208049,8 @@ class PanViewTool extends ViewManip {
208011
208049
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208012
208050
  super(vp, ViewHandleType.Pan, oneShot, isDraggingRequired);
208013
208051
  }
208014
- async onReinitialize() {
208015
- await super.onReinitialize();
208016
- this.provideToolAssistance("Pan.Prompts.FirstPoint");
208017
- }
208052
+ get isExitAllowedOnReinitialize() { return true; }
208053
+ provideInitialToolAssistance() { this.provideToolAssistance("Pan.Prompts.FirstPoint"); }
208018
208054
  }
208019
208055
  /** A tool that performs a Rotate view operation
208020
208056
  * @public
@@ -208025,10 +208061,8 @@ class RotateViewTool extends ViewManip {
208025
208061
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208026
208062
  super(vp, ViewHandleType.Rotate | ViewHandleType.Pan | ViewHandleType.TargetCenter, oneShot, isDraggingRequired);
208027
208063
  }
208028
- async onReinitialize() {
208029
- await super.onReinitialize();
208030
- this.provideToolAssistance("Rotate.Prompts.FirstPoint");
208031
- }
208064
+ get isExitAllowedOnReinitialize() { return true; }
208065
+ provideInitialToolAssistance() { this.provideToolAssistance("Rotate.Prompts.FirstPoint"); }
208032
208066
  }
208033
208067
  /** A tool that performs the look operation
208034
208068
  * @public
@@ -208039,10 +208073,8 @@ class LookViewTool extends ViewManip {
208039
208073
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208040
208074
  super(vp, ViewHandleType.Look | ViewHandleType.Pan, oneShot, isDraggingRequired);
208041
208075
  }
208042
- async onReinitialize() {
208043
- await super.onReinitialize();
208044
- this.provideToolAssistance("Look.Prompts.FirstPoint");
208045
- }
208076
+ get isExitAllowedOnReinitialize() { return true; }
208077
+ provideInitialToolAssistance() { this.provideToolAssistance("Look.Prompts.FirstPoint"); }
208046
208078
  }
208047
208079
  /** A tool that performs the scroll operation
208048
208080
  * @public
@@ -208053,10 +208085,8 @@ class ScrollViewTool extends ViewManip {
208053
208085
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208054
208086
  super(vp, ViewHandleType.Scroll, oneShot, isDraggingRequired);
208055
208087
  }
208056
- async onReinitialize() {
208057
- await super.onReinitialize();
208058
- this.provideToolAssistance("Scroll.Prompts.FirstPoint");
208059
- }
208088
+ get isExitAllowedOnReinitialize() { return true; }
208089
+ provideInitialToolAssistance() { this.provideToolAssistance("Scroll.Prompts.FirstPoint"); }
208060
208090
  }
208061
208091
  /** A tool that performs the zoom operation
208062
208092
  * @public
@@ -208067,10 +208097,8 @@ class ZoomViewTool extends ViewManip {
208067
208097
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208068
208098
  super(vp, ViewHandleType.Zoom | ViewHandleType.Pan, oneShot, isDraggingRequired);
208069
208099
  }
208070
- async onReinitialize() {
208071
- await super.onReinitialize();
208072
- this.provideToolAssistance("Zoom.Prompts.FirstPoint");
208073
- }
208100
+ get isExitAllowedOnReinitialize() { return true; }
208101
+ provideInitialToolAssistance() { this.provideToolAssistance("Zoom.Prompts.FirstPoint"); }
208074
208102
  }
208075
208103
  /** A tool that performs the walk operation using mouse+keyboard or touch controls.
208076
208104
  * Keyboard and mouse controls are similar to those used by many video games:
@@ -208087,11 +208115,8 @@ class LookAndMoveTool extends ViewManip {
208087
208115
  const viewport = (undefined === vp ? _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.viewManager.selectedView : vp); // Need vp to enable camera/check lens in onReinitialize...
208088
208116
  super(viewport, ViewHandleType.LookAndMove | ViewHandleType.Pan, oneShot, isDraggingRequired);
208089
208117
  }
208090
- async onReinitialize() {
208091
- await super.onReinitialize();
208092
- this.provideToolAssistance("LookAndMove.Prompts.FirstPoint");
208093
- }
208094
- /** @beta */
208118
+ get isExitAllowedOnReinitialize() { return true; }
208119
+ provideInitialToolAssistance() { this.provideToolAssistance("LookAndMove.Prompts.FirstPoint"); }
208095
208120
  provideToolAssistance(mainInstrKey) {
208096
208121
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(mainInstrKey));
208097
208122
  const mouseInstructions = [];
@@ -208130,11 +208155,8 @@ class WalkViewTool extends ViewManip {
208130
208155
  const viewport = (undefined === vp ? _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.viewManager.selectedView : vp); // Need vp to enable camera/check lens in onReinitialize...
208131
208156
  super(viewport, ViewHandleType.Walk | ViewHandleType.Pan, oneShot, isDraggingRequired);
208132
208157
  }
208133
- async onReinitialize() {
208134
- await super.onReinitialize();
208135
- this.provideToolAssistance("Walk.Prompts.FirstPoint");
208136
- }
208137
- /** @beta */
208158
+ get isExitAllowedOnReinitialize() { return true; }
208159
+ provideInitialToolAssistance() { this.provideToolAssistance("Walk.Prompts.FirstPoint"); }
208138
208160
  provideToolAssistance(mainInstrKey) {
208139
208161
  const walkInstructions = [];
208140
208162
  walkInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.shiftKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistanceImage.LeftClickDrag, ViewTool.translate("Pan.flyover"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistanceInputMethod.Mouse));
@@ -208151,11 +208173,8 @@ class FlyViewTool extends ViewManip {
208151
208173
  constructor(vp, oneShot = false, isDraggingRequired = false) {
208152
208174
  super(vp, ViewHandleType.Fly | ViewHandleType.Pan, oneShot, isDraggingRequired);
208153
208175
  }
208154
- async onReinitialize() {
208155
- await super.onReinitialize();
208156
- this.provideToolAssistance("Fly.Prompts.FirstPoint");
208157
- }
208158
- /** @beta */
208176
+ get isExitAllowedOnReinitialize() { return true; }
208177
+ provideInitialToolAssistance() { this.provideToolAssistance("Fly.Prompts.FirstPoint"); }
208159
208178
  provideToolAssistance(mainInstrKey) {
208160
208179
  const flyInstructions = [];
208161
208180
  flyInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.shiftKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistanceImage.LeftClickDrag, ViewTool.translate("Pan.flyover"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistanceInputMethod.Mouse));
@@ -208179,7 +208198,6 @@ class FitViewTool extends ViewTool {
208179
208198
  this.doAnimate = doAnimate;
208180
208199
  this.isolatedOnly = isolatedOnly;
208181
208200
  }
208182
- /** @beta */
208183
208201
  provideToolAssistance() {
208184
208202
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate("Fit.Prompts.FirstPoint"));
208185
208203
  const mouseInstructions = [];
@@ -208491,7 +208509,6 @@ class WindowAreaTool extends ViewTool {
208491
208509
  }
208492
208510
  return super.onResetButtonUp(ev);
208493
208511
  }
208494
- /** @beta */
208495
208512
  provideToolAssistance() {
208496
208513
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveFirstPoint ? "WindowArea.Prompts.NextPoint" : "WindowArea.Prompts.FirstPoint"));
208497
208514
  const mouseInstructions = [];
@@ -208994,7 +209011,6 @@ class SetupCameraTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_17__.Primi
208994
209011
  await this.exitTool();
208995
209012
  return _Tool__WEBPACK_IMPORTED_MODULE_18__.EventHandled.Yes;
208996
209013
  }
208997
- /** @beta */
208998
209014
  provideToolAssistance() {
208999
209015
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveEyePt ? "SetupCamera.Prompts.NextPoint" : "SetupCamera.Prompts.FirstPoint"));
209000
209016
  const mouseInstructions = [];
@@ -209254,7 +209270,6 @@ class SetupWalkCameraTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_17__.P
209254
209270
  await this.exitTool();
209255
209271
  return _Tool__WEBPACK_IMPORTED_MODULE_18__.EventHandled.Yes;
209256
209272
  }
209257
- /** @beta */
209258
209273
  provideToolAssistance() {
209259
209274
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveEyePt ? "SetupWalkCamera.Prompts.NextPoint" : "SetupWalkCamera.Prompts.FirstPoint"));
209260
209275
  const mouseInstructions = [];
@@ -327986,7 +328001,7 @@ class TestContext {
327986
328001
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
327987
328002
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
327988
328003
  await core_frontend_1.NoRenderApp.startup({
327989
- applicationVersion: "5.0.0-dev.100",
328004
+ applicationVersion: "5.0.0-dev.104",
327990
328005
  applicationId: this.settings.gprid,
327991
328006
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
327992
328007
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -353030,7 +353045,7 @@ var loadLanguages = instance.loadLanguages;
353030
353045
  /***/ ((module) => {
353031
353046
 
353032
353047
  "use strict";
353033
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.100","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*"},"//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/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
353048
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.104","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*"},"//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/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
353034
353049
 
353035
353050
  /***/ }),
353036
353051