@itwin/ecschema-rpcinterface-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.
@@ -35493,9 +35493,11 @@ class MapSubLayerSettings {
35493
35493
  var ModelMapLayerDrapeTarget;
35494
35494
  (function (ModelMapLayerDrapeTarget) {
35495
35495
  /** Drape only onto the globe. */
35496
- ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["Globe"] = 0] = "Globe";
35496
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["Globe"] = 1] = "Globe";
35497
35497
  /** Drape only onto all attached reality data. */
35498
- ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["RealityData"] = 1] = "RealityData";
35498
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["RealityData"] = 2] = "RealityData";
35499
+ /** Drape only onto all models within the iModel. */
35500
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["IModel"] = 4] = "IModel";
35499
35501
  })(ModelMapLayerDrapeTarget || (ModelMapLayerDrapeTarget = {}));
35500
35502
  /** 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.
35501
35503
  * This class is extended by [[ImageMapLayerSettings]] and [ModelMapLayerSettings]] to create the settings for image and model based layers.
@@ -60662,7 +60664,7 @@ class SchemaReadHelper {
60662
60664
  // Loads all of the properties on the Schema object
60663
60665
  await schema.fromJSON(this._parser.parseSchema());
60664
60666
  this._schema = schema;
60665
- const schemaInfo = { schemaKey: schema.schemaKey, references: [] };
60667
+ const schemaInfo = { schemaKey: schema.schemaKey, alias: schema.alias, references: [] };
60666
60668
  for (const reference of this._parser.getReferences()) {
60667
60669
  const refKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_5__.SchemaKey(reference.name, _SchemaKey__WEBPACK_IMPORTED_MODULE_5__.ECVersion.fromString(reference.version));
60668
60670
  schemaInfo.references.push({ schemaKey: refKey });
@@ -72799,53 +72801,32 @@ class AccuDraw {
72799
72801
  /** @internal */
72800
72802
  static getSnapRotation(snap, currentVp, out) {
72801
72803
  const vp = (undefined !== currentVp) ? currentVp : snap.viewport;
72804
+ const snapDetail = snap.primitive?.closestPoint(snap.snapPoint, false);
72805
+ const frame = snapDetail?.curve?.fractionToFrenetFrame(snapDetail.fraction);
72806
+ if (undefined === frame && undefined === snap.normal)
72807
+ return undefined;
72808
+ const zVec = (vp.view.allow3dManipulations() ? (snap.normal?.clone() ?? frame?.matrix.columnZ()) : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
72809
+ if (undefined === zVec)
72810
+ return undefined;
72802
72811
  const rotation = out ? out : new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d();
72803
72812
  const viewZ = vp.rotation.rowZ();
72804
- const snapLoc = (undefined !== snap.primitive ? snap.primitive.closestPoint(snap.snapPoint, false) : undefined);
72805
- if (undefined !== snapLoc) {
72806
- const frame = snap.primitive.fractionToFrenetFrame(snapLoc.fraction);
72807
- const frameZ = (undefined !== frame ? frame.matrix.columnZ() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
72808
- let xVec = (undefined !== frame ? frame.matrix.columnX() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitX());
72809
- const zVec = (vp.view.allow3dManipulations() ? (undefined !== snap.normal ? snap.normal.clone() : frameZ.clone()) : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
72810
- if (!vp.isCameraOn && viewZ.isPerpendicularTo(zVec))
72811
- zVec.setFrom(viewZ);
72813
+ zVec.normalizeInPlace();
72814
+ if (zVec.dotProduct(viewZ) < 0.0)
72815
+ zVec.negate(zVec);
72816
+ if (frame) {
72817
+ const xVec = frame.matrix.columnX();
72812
72818
  xVec.normalizeInPlace();
72813
- zVec.normalizeInPlace();
72814
- let yVec = xVec.unitCrossProduct(zVec);
72819
+ const yVec = zVec.unitCrossProduct(xVec);
72815
72820
  if (undefined !== yVec) {
72816
- const viewX = vp.rotation.rowX();
72817
- if (snap.primitive instanceof _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.LineString3d) {
72818
- if (Math.abs(xVec.dotProduct(viewX)) < Math.abs(yVec.dotProduct(viewX)))
72819
- xVec = yVec;
72820
- if (xVec.dotProduct(viewX) < 0.0)
72821
- xVec.negate(xVec);
72822
- }
72823
- else {
72824
- const ray = snap.primitive.fractionToPointAndUnitTangent(0.0);
72825
- if (ray.direction.dotProduct(viewX) < 0.0 && ray.direction.dotProduct(xVec) > 0.0)
72826
- xVec.negate(xVec);
72827
- }
72828
- if (zVec.dotProduct(viewZ) < 0.0)
72829
- zVec.negate(zVec);
72830
- yVec = xVec.unitCrossProduct(zVec);
72831
- if (undefined !== yVec) {
72832
- rotation.setColumns(xVec, yVec, zVec);
72833
- _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidFromMatrix3d(rotation, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.AxisOrder.XZY, rotation);
72834
- rotation.transposeInPlace();
72835
- return rotation;
72836
- }
72837
- }
72838
- }
72839
- if (undefined !== snap.normal) {
72840
- const zVec = (vp.view.allow3dManipulations() ? snap.normal.clone() : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitZ());
72841
- if (!vp.isCameraOn && viewZ.isPerpendicularTo(zVec))
72842
- zVec.setFrom(viewZ);
72843
- zVec.normalizeInPlace();
72844
- _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidHeadsUp(zVec, undefined, rotation);
72845
- rotation.transposeInPlace();
72846
- return rotation;
72821
+ rotation.setColumns(xVec, yVec, zVec);
72822
+ rotation.makeRigid();
72823
+ rotation.transposeInPlace();
72824
+ return rotation;
72825
+ }
72847
72826
  }
72848
- return undefined;
72827
+ _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRigidHeadsUp(zVec, undefined, rotation);
72828
+ rotation.transposeInPlace();
72829
+ return rotation;
72849
72830
  }
72850
72831
  /** @internal */
72851
72832
  static getStandardRotation(nStandard, vp, useACS, out) {
@@ -85627,6 +85608,8 @@ class GeometricModelState extends ModelState {
85627
85608
  const spatialModel = this.asSpatialModel;
85628
85609
  const rdSourceKey = this.jsonProperties.rdSourceKey;
85629
85610
  const getDisplaySettings = () => view.displayStyle.settings.getRealityModelDisplaySettings(this.id) ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityModelDisplaySettings.defaults;
85611
+ const getBackgroundBase = () => view.displayStyle.settings?.mapImagery.backgroundBase;
85612
+ const getBackgroundLayers = () => view.displayStyle.settings?.mapImagery.backgroundLayers;
85630
85613
  if (rdSourceKey) {
85631
85614
  const useOrbitGtTileTreeReference = rdSourceKey.format === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataFormat.OPC;
85632
85615
  const treeRef = (!useOrbitGtTileTreeReference) ?
@@ -85638,8 +85621,8 @@ class GeometricModelState extends ModelState {
85638
85621
  // url: tilesetUrl, // If rdSourceKey is defined, url is not used
85639
85622
  classifiers: undefined !== spatialModel ? spatialModel.classifiers : undefined,
85640
85623
  getDisplaySettings,
85641
- getBackgroundBase: () => view.displayStyle.settings.mapImagery.backgroundBase,
85642
- getBackgroundLayers: () => view.displayStyle.settings.mapImagery.backgroundLayers,
85624
+ getBackgroundBase,
85625
+ getBackgroundLayers,
85643
85626
  }) :
85644
85627
  (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createOrbitGtTileTreeReference)({
85645
85628
  rdSourceKey,
@@ -85688,11 +85671,11 @@ class GeometricModelState extends ModelState {
85688
85671
  tilesetToDbTransform: this.jsonProperties.tilesetToDbTransform,
85689
85672
  classifiers: undefined !== spatialModel ? spatialModel.classifiers : undefined,
85690
85673
  getDisplaySettings,
85691
- getBackgroundBase: () => view.displayStyle.settings.mapImagery.backgroundBase,
85692
- getBackgroundLayers: () => view.displayStyle.settings.mapImagery.backgroundLayers,
85674
+ getBackgroundBase,
85675
+ getBackgroundLayers,
85693
85676
  });
85694
85677
  }
85695
- return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createPrimaryTileTreeReference)(view, this);
85678
+ return (0,_tile_internal__WEBPACK_IMPORTED_MODULE_5__.createPrimaryTileTreeReference)(view, this, getBackgroundBase, getBackgroundLayers);
85696
85679
  }
85697
85680
  }
85698
85681
  /** Represents the front-end state of a [GeometricModel2d]($backend).
@@ -106213,6 +106196,8 @@ __webpack_require__.r(__webpack_exports__);
106213
106196
  /* harmony export */ ItemField: () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.ItemField),
106214
106197
  /* harmony export */ KeyinParseError: () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_109__.KeyinParseError),
106215
106198
  /* harmony export */ KeyinStatus: () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.KeyinStatus),
106199
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_121__.LayerTileTreeHandler),
106200
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_121__.LayerTileTreeReferenceHandler),
106216
106201
  /* harmony export */ LengthDescription: () => (/* reexport safe */ _properties_LengthDescription__WEBPACK_IMPORTED_MODULE_70__.LengthDescription),
106217
106202
  /* harmony export */ LocalExtensionProvider: () => (/* reexport safe */ _extension_providers_LocalExtensionProvider__WEBPACK_IMPORTED_MODULE_66__.LocalExtensionProvider),
106218
106203
  /* harmony export */ LocalUnitFormatProvider: () => (/* reexport safe */ _quantity_formatting_LocalUnitFormatProvider__WEBPACK_IMPORTED_MODULE_73__.LocalUnitFormatProvider),
@@ -107483,6 +107468,8 @@ __webpack_require__.r(__webpack_exports__);
107483
107468
  /* harmony export */ IModelTileTree: () => (/* reexport safe */ _tile_IModelTileTree__WEBPACK_IMPORTED_MODULE_9__.IModelTileTree),
107484
107469
  /* harmony export */ ImageryMapTileTree: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.ImageryMapTileTree),
107485
107470
  /* harmony export */ ImdlReader: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.ImdlReader),
107471
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeHandler),
107472
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler),
107486
107473
  /* harmony export */ MapTileTreeReference: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_8__.MapTileTreeReference),
107487
107474
  /* harmony export */ OnScreenTarget: () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_3__.OnScreenTarget),
107488
107475
  /* harmony export */ PerformanceMetrics: () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_4__.PerformanceMetrics),
@@ -116510,30 +116497,21 @@ class LayerTextureParams {
116510
116497
  * @param prevView The previous view state.
116511
116498
  * @param newView The new view state.
116512
116499
  * @returns {boolean} True if there is any difference in the model layer configuration; false otherwise.
116513
- * @internal
116514
116500
  */
116515
116501
  function compareMapLayer(prevView, newView) {
116516
- const prevLayers = prevView.displayStyle.getMapLayers(false);
116517
- const newLayers = newView.displayStyle.getMapLayers(false);
116518
- const prevModelIds = [];
116519
- const newModelIds = [];
116520
- for (const layer of prevLayers) {
116521
- if (layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings && layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData) {
116522
- prevModelIds.push(layer.modelId);
116523
- }
116524
- }
116525
- for (const layer of newLayers) {
116526
- if (layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings && layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData) {
116527
- newModelIds.push(layer.modelId);
116528
- }
116529
- }
116530
- if (prevModelIds.length !== newModelIds.length) {
116502
+ const getDrapedModelIds = (view) => view.displayStyle
116503
+ .getMapLayers(false)
116504
+ .filter((layer) => layer instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerSettings &&
116505
+ (layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.RealityData ||
116506
+ layer.drapeTarget === _itwin_core_common__WEBPACK_IMPORTED_MODULE_3__.ModelMapLayerDrapeTarget.IModel))
116507
+ .map(layer => layer.modelId);
116508
+ const prev = getDrapedModelIds(prevView);
116509
+ const next = getDrapedModelIds(newView);
116510
+ if (prev.length !== next.length)
116531
116511
  return true;
116532
- }
116533
- for (let i = 0; i < prevModelIds.length; i++) {
116534
- if (prevModelIds[i] !== newModelIds[i]) {
116512
+ for (let i = 0; i < prev.length; i++) {
116513
+ if (prev[i] !== next[i])
116535
116514
  return true;
116536
- }
116537
116515
  }
116538
116516
  return false;
116539
116517
  }
@@ -125374,17 +125352,25 @@ class SurfaceGeometry extends _MeshGeometry__WEBPACK_IMPORTED_MODULE_7__.MeshGeo
125374
125352
  }
125375
125353
  _wantWoWReversal(target) {
125376
125354
  const fillFlags = this.fillFlags;
125377
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Background))
125355
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Background)) {
125378
125356
  return false; // fill color explicitly from background
125379
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Always))
125380
- return true; // fill displayed even in wireframe
125357
+ }
125358
+ if (this.wantTextures(target, this.hasTexture)) {
125359
+ // Don't invert white pixels of textures.
125360
+ return false;
125361
+ }
125381
125362
  const vf = target.currentViewFlags;
125382
- if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.Wireframe === vf.renderMode || vf.visibleEdges)
125363
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.Wireframe === vf.renderMode) {
125364
+ // Fill displayed even in wireframe?
125365
+ return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.None !== (fillFlags & _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FillFlags.Always);
125366
+ }
125367
+ if (vf.visibleEdges) {
125383
125368
  return false; // never invert surfaces when edges are displayed
125384
- if (this.isLit && wantLighting(vf))
125385
- return false;
125386
- // Don't invert white pixels of textures...
125387
- return !this.wantTextures(target, this.hasTexture);
125369
+ }
125370
+ if (this.isLit && wantLighting(vf)) {
125371
+ return false; // the lit color won't be pure white anyway.
125372
+ }
125373
+ return true;
125388
125374
  }
125389
125375
  get materialInfo() { return this.mesh.materialInfo; }
125390
125376
  useTexture(params) {
@@ -140144,6 +140130,7 @@ __webpack_require__.r(__webpack_exports__);
140144
140130
  * @module Tiles
140145
140131
  */
140146
140132
 
140133
+ /** @internal*/
140147
140134
  class GraphicsCollectorDrawArgs extends _tile_internal__WEBPACK_IMPORTED_MODULE_0__.TileDrawArgs {
140148
140135
  _planes;
140149
140136
  _worldToViewMap;
@@ -140449,6 +140436,11 @@ class IModelTile extends _tile_internal__WEBPACK_IMPORTED_MODULE_4__.Tile {
140449
140436
  system,
140450
140437
  isCanceled,
140451
140438
  sizeMultiplier,
140439
+ tileData: {
140440
+ ecefTransform: this.tree.iModel.ecefLocation?.getTransform() ?? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Transform.createIdentity(),
140441
+ range: this.range,
140442
+ layerClassifiers: this.tree.layerHandler?.layerClassifiers,
140443
+ },
140452
140444
  });
140453
140445
  }
140454
140446
  catch {
@@ -141094,12 +141086,16 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
141094
141086
  * used by draw().
141095
141087
  */
141096
141088
  _numStaticTilesSelected = 0;
141089
+ layerImageryTrees = [];
141090
+ _layerHandler;
141091
+ get layerHandler() { return this._layerHandler; }
141097
141092
  constructor(params, treeId) {
141098
141093
  super(params);
141099
141094
  this.iModelTileTreeId = treeId;
141100
141095
  this.contentIdQualifier = params.contentIdQualifier;
141101
141096
  this.geometryGuid = params.geometryGuid;
141102
141097
  this.tileScreenSize = params.tileScreenSize;
141098
+ this._layerHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_6__.LayerTileTreeHandler(this);
141103
141099
  if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary === treeId.type)
141104
141100
  this.stringifiedSectionClip = treeId.sectionCut;
141105
141101
  this.maxInitialTilesToSkip = params.maxInitialTilesToSkip ?? 0;
@@ -141150,6 +141146,7 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
141150
141146
  draw(args) {
141151
141147
  const tiles = this.selectTiles(args);
141152
141148
  this._rootTile.draw(args, tiles, this._numStaticTilesSelected);
141149
+ this._layerHandler.collectClassifierGraphics(args, tiles);
141153
141150
  }
141154
141151
  prune() {
141155
141152
  const olderThan = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeTimePoint.now().minus(this.expirationTime);
@@ -141479,6 +141476,7 @@ function createPrimitiveGeometry(primitive, options, viOrigin) {
141479
141476
  textureMapping,
141480
141477
  indices: new _common_internal_render_VertexIndices__WEBPACK_IMPORTED_MODULE_6__.VertexIndices(primitive.params.surface.indices),
141481
141478
  },
141479
+ tileData: options.tileData,
141482
141480
  }, viOrigin);
141483
141481
  }
141484
141482
  }
@@ -141570,7 +141568,7 @@ async function decodeImdlGraphics(options) {
141570
141568
  return undefined;
141571
141569
  const patterns = new Map();
141572
141570
  const graphicsOptions = { ...options, textures, patterns };
141573
- graphicsOptions.tile = options.tile;
141571
+ graphicsOptions.tileData = options.tileData;
141574
141572
  for (const [name, primitives] of options.document.patterns)
141575
141573
  patterns.set(name, createPatternGeometries(primitives, graphicsOptions));
141576
141574
  const system = options.system;
@@ -142134,6 +142132,259 @@ class LRUTileList {
142134
142132
  }
142135
142133
 
142136
142134
 
142135
+ /***/ }),
142136
+
142137
+ /***/ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js":
142138
+ /*!*************************************************************************!*\
142139
+ !*** ../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js ***!
142140
+ \*************************************************************************/
142141
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
142142
+
142143
+ "use strict";
142144
+ __webpack_require__.r(__webpack_exports__);
142145
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
142146
+ /* harmony export */ LayerTileTreeHandler: () => (/* binding */ LayerTileTreeHandler)
142147
+ /* harmony export */ });
142148
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
142149
+ /*---------------------------------------------------------------------------------------------
142150
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
142151
+ * See LICENSE.md in the project root for license terms and full copyright notice.
142152
+ *--------------------------------------------------------------------------------------------*/
142153
+ /** @packageDocumentation
142154
+ * @module Tiles
142155
+ */
142156
+
142157
+ /** @internal */
142158
+ class LayerTileTreeHandler {
142159
+ _layerSettings = new Map();
142160
+ _imageryTreeState = new Map();
142161
+ _modelIdToIndex = new Map();
142162
+ layerClassifiers = new Map();
142163
+ _ref;
142164
+ get imageryTreeState() { return this._imageryTreeState; }
142165
+ get layerSettings() { return this._layerSettings; }
142166
+ get modelIdToIndex() { return this._modelIdToIndex; }
142167
+ get layerImageryTrees() { return this._ref.layerImageryTrees; }
142168
+ constructor(ref) {
142169
+ this._ref = ref;
142170
+ }
142171
+ /** Add a new imagery tile tree / map-layer settings pair and initialize the imagery tile tree state.
142172
+ * @internal
142173
+ */
142174
+ addImageryLayer(tree, settings, index, baseImageryLayer) {
142175
+ this._ref.layerImageryTrees.push({ tree, settings, baseImageryLayer });
142176
+ this._layerSettings.set(tree.modelId, settings);
142177
+ if (!this._imageryTreeState.has(tree.modelId))
142178
+ this._imageryTreeState.set(tree.modelId, new _tile_internal__WEBPACK_IMPORTED_MODULE_0__.ImageryTileTreeState());
142179
+ this._modelIdToIndex.set(tree.modelId, index);
142180
+ }
142181
+ /** @internal */
142182
+ addModelLayer(layerTreeRef, context) {
142183
+ const tileTreeClassName = this._ref.rootTile.tree.constructor.name;
142184
+ const classifier = context.addPlanarClassifier(`MapLayer ${tileTreeClassName}-${this._ref.modelId}-${layerTreeRef.layerIndex}`, layerTreeRef);
142185
+ if (classifier)
142186
+ this.layerClassifiers.set(layerTreeRef.layerIndex, classifier);
142187
+ }
142188
+ /** @internal */
142189
+ clearLayers() {
142190
+ this._ref.rootTile.clearLayers();
142191
+ }
142192
+ /** @internal */
142193
+ collectClassifierGraphics(args, selectedTiles) {
142194
+ this.layerClassifiers.forEach((layerClassifier) => {
142195
+ layerClassifier.collectGraphics(args.context, { modelId: this._ref.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this._ref.isPointCloud });
142196
+ });
142197
+ }
142198
+ }
142199
+
142200
+
142201
+ /***/ }),
142202
+
142203
+ /***/ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js":
142204
+ /*!**********************************************************************************!*\
142205
+ !*** ../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js ***!
142206
+ \**********************************************************************************/
142207
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
142208
+
142209
+ "use strict";
142210
+ __webpack_require__.r(__webpack_exports__);
142211
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
142212
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* binding */ LayerTileTreeReferenceHandler)
142213
+ /* harmony export */ });
142214
+ /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
142215
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
142216
+ /*---------------------------------------------------------------------------------------------
142217
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
142218
+ * See LICENSE.md in the project root for license terms and full copyright notice.
142219
+ *--------------------------------------------------------------------------------------------*/
142220
+ /** @packageDocumentation
142221
+ * @module Tiles
142222
+ */
142223
+
142224
+
142225
+ /** @internal */
142226
+ class LayerTileTreeReferenceHandler {
142227
+ _layerTrees = new Array();
142228
+ isOverlay;
142229
+ _baseImageryLayerIncluded = false;
142230
+ _baseLayerSettings;
142231
+ _baseTransparent = false;
142232
+ _baseColor;
142233
+ _layerSettings;
142234
+ _ref;
142235
+ _mapTile;
142236
+ _detachFromDisplayStyle = [];
142237
+ get layerTrees() { return this._layerTrees; }
142238
+ get baseColor() { return this._baseColor; }
142239
+ get baseTransparent() { return this._baseTransparent; }
142240
+ get baseImageryLayerIncluded() { return this._baseImageryLayerIncluded; }
142241
+ get layerSettings() { return this._layerSettings; }
142242
+ discloseTileTrees(trees) {
142243
+ for (const imageryTree of this.layerTrees)
142244
+ if (imageryTree)
142245
+ trees.disclose(imageryTree);
142246
+ }
142247
+ constructor(ref, pIsOverlay, baseLayerSettings, layerSettings, mapTile = false) {
142248
+ this._ref = ref;
142249
+ this._baseLayerSettings = baseLayerSettings;
142250
+ this._layerSettings = layerSettings ? layerSettings : [];
142251
+ this.isOverlay = pIsOverlay;
142252
+ this._mapTile = mapTile;
142253
+ let tree;
142254
+ if (!this.isOverlay && this._baseLayerSettings !== undefined) {
142255
+ if (this._baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
142256
+ tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._baseLayerSettings, 0, this._ref.iModel);
142257
+ this._baseTransparent = this._baseLayerSettings.transparency > 0;
142258
+ }
142259
+ else {
142260
+ this._baseColor = this._baseLayerSettings;
142261
+ this._baseTransparent = this._baseColor?.getTransparency() > 0;
142262
+ }
142263
+ }
142264
+ if (this._baseImageryLayerIncluded = (undefined !== tree))
142265
+ this._layerTrees.push(tree);
142266
+ if (undefined !== this._layerSettings) {
142267
+ for (let i = 0; i < this._layerSettings.length; i++)
142268
+ if (undefined !== (tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._layerSettings[i], i + 1, this._ref.iModel)))
142269
+ this._layerTrees.push(tree);
142270
+ }
142271
+ }
142272
+ initializeLayers(context) {
142273
+ // Map tiles handle refresh logic differently
142274
+ if (!this._mapTile) {
142275
+ const removals = this._detachFromDisplayStyle;
142276
+ const mapImagery = context.viewport.displayStyle.settings.mapImagery;
142277
+ if (0 === removals.length) {
142278
+ removals.push(context.viewport.displayStyle.settings.onMapImageryChanged.addListener((imagery) => {
142279
+ this.setBaseLayerSettings(imagery.backgroundBase);
142280
+ this.setLayerSettings(imagery.backgroundLayers);
142281
+ this.clearLayers();
142282
+ }));
142283
+ }
142284
+ removals.push(context.viewport.onChangeView.addListener((vp, previousViewState) => {
142285
+ if ((0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.compareMapLayer)(previousViewState, vp.view)) {
142286
+ this.setBaseLayerSettings(mapImagery.backgroundBase);
142287
+ this.setLayerSettings(mapImagery.backgroundLayers);
142288
+ this.clearLayers();
142289
+ }
142290
+ }));
142291
+ }
142292
+ let hasLoadedTileTree = false;
142293
+ const layerHandler = this._ref.treeOwner.load()?.layerHandler;
142294
+ if (undefined === layerHandler) {
142295
+ return hasLoadedTileTree; // Not loaded yet - or no layerHandler on tree.
142296
+ }
142297
+ layerHandler.layerImageryTrees.length = 0;
142298
+ if (0 === this._layerTrees.length) {
142299
+ return !this.isOverlay;
142300
+ }
142301
+ let treeIndex = this._layerTrees.length - 1;
142302
+ // Start displaying at the highest completely opaque layer...
142303
+ for (; treeIndex >= 1; treeIndex--) {
142304
+ const layerTreeRef = this._layerTrees[treeIndex];
142305
+ if (layerTreeRef?.isOpaque)
142306
+ break; // This layer is completely opaque and will obscure all others so ignore lower ones.
142307
+ }
142308
+ for (; treeIndex < this._layerTrees.length; treeIndex++) {
142309
+ const layerTreeRef = this._layerTrees[treeIndex];
142310
+ const hasValidTileTree = layerTreeRef && _tile_internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeLoadStatus.NotFound !== layerTreeRef.treeOwner.loadStatus;
142311
+ const isImageryMapLayer = layerTreeRef instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapLayerTreeReference;
142312
+ const isLayerVisible = (isImageryMapLayer || (!isImageryMapLayer && layerTreeRef?.layerSettings.visible));
142313
+ if (!this._ref.shouldDrapeLayer(layerTreeRef)) {
142314
+ // If the layer is not to be displayed, then we should skip adding it to the tile tree.
142315
+ // The _shouldDrapeLayerFunc() function is sent in from MapTileTreeReference or RealityTileTree.
142316
+ hasLoadedTileTree = true; // ###TODO had to set this to true so addToScene actually works. alternative?
142317
+ continue;
142318
+ }
142319
+ // Load tile tree for each configured layer.
142320
+ // Note: Non-visible imagery layer are always added to allow proper tile tree scale range visibility reporting.
142321
+ if (hasValidTileTree
142322
+ && isLayerVisible
142323
+ && !layerTreeRef.layerSettings.allSubLayersInvisible) {
142324
+ const layerTree = layerTreeRef.treeOwner.load();
142325
+ if (layerTree !== undefined) {
142326
+ hasLoadedTileTree = true;
142327
+ }
142328
+ else {
142329
+ // Let's continue, there might be loaded tile tree in the list
142330
+ continue;
142331
+ }
142332
+ // Add loaded TileTree
142333
+ const baseImageryLayer = this._baseImageryLayerIncluded && (treeIndex === 0);
142334
+ if (layerTree instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapTileTree) {
142335
+ layerHandler.addImageryLayer(layerTree, layerTreeRef.layerSettings, treeIndex, baseImageryLayer);
142336
+ }
142337
+ else if (layerTreeRef instanceof _tile_internal__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerTileTreeReference)
142338
+ layerHandler.addModelLayer(layerTreeRef, context);
142339
+ }
142340
+ }
142341
+ return hasLoadedTileTree;
142342
+ }
142343
+ setBaseLayerSettings(baseLayerSettings) {
142344
+ let tree;
142345
+ this._baseLayerSettings = baseLayerSettings;
142346
+ if (baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
142347
+ tree = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(baseLayerSettings, 0, this._ref.iModel);
142348
+ this._baseColor = undefined;
142349
+ this._baseTransparent = baseLayerSettings.transparency > 0;
142350
+ }
142351
+ else {
142352
+ this._baseColor = baseLayerSettings;
142353
+ this._baseTransparent = this._baseColor.getTransparency() > 0;
142354
+ }
142355
+ if (tree) {
142356
+ if (this._baseImageryLayerIncluded)
142357
+ this._layerTrees[0] = tree;
142358
+ else
142359
+ this._layerTrees.splice(0, 0, tree);
142360
+ }
142361
+ else {
142362
+ if (this._baseImageryLayerIncluded)
142363
+ this._layerTrees.shift();
142364
+ }
142365
+ this._baseImageryLayerIncluded = tree !== undefined;
142366
+ this.clearLayers();
142367
+ }
142368
+ clearLayers() {
142369
+ const layerHandler = this._ref.treeOwner.tileTree?.layerHandler;
142370
+ if (undefined !== layerHandler) {
142371
+ layerHandler.clearLayers();
142372
+ }
142373
+ }
142374
+ setLayerSettings(layerSettings) {
142375
+ this._layerSettings = layerSettings;
142376
+ const baseLayerIndex = this._baseImageryLayerIncluded ? 1 : 0;
142377
+ this._layerTrees.length = Math.min(layerSettings.length + baseLayerIndex, this._layerTrees.length); // Truncate if number of layers reduced.
142378
+ for (let i = 0; i < layerSettings.length; i++) {
142379
+ const treeIndex = i + baseLayerIndex;
142380
+ if (treeIndex >= this._layerTrees.length || !this._layerTrees[treeIndex]?.layerSettings.displayMatches(layerSettings[i]))
142381
+ this._layerTrees[treeIndex] = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(layerSettings[i], treeIndex, this._ref.iModel);
142382
+ }
142383
+ this.clearLayers();
142384
+ }
142385
+ }
142386
+
142387
+
142137
142388
  /***/ }),
142138
142389
 
142139
142390
  /***/ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js":
@@ -143210,8 +143461,18 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
143210
143461
  _sectionClip;
143211
143462
  _sectionCutAppearanceProvider;
143212
143463
  _animationTransformNodeId;
143213
- constructor(view, model, planProjection, transformNodeId, sectionClip) {
143464
+ _layerRefHandler;
143465
+ iModel;
143466
+ shouldDrapeLayer(layerTreeRef) {
143467
+ const mapLayerSettings = layerTreeRef?.layerSettings;
143468
+ if (mapLayerSettings && mapLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerSettings)
143469
+ return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerDrapeTarget.IModel === mapLayerSettings.drapeTarget;
143470
+ return false;
143471
+ }
143472
+ constructor(view, model, planProjection, transformNodeId, sectionClip, backgroundBase, backgroundLayers) {
143214
143473
  super();
143474
+ this.iModel = model.iModel;
143475
+ this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_6__.LayerTileTreeReferenceHandler(this, false, backgroundBase, backgroundLayers, false);
143215
143476
  this.view = view;
143216
143477
  this.model = model;
143217
143478
  this._animationTransformNodeId = transformNodeId;
@@ -143255,6 +143516,10 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
143255
143516
  get isPlanProjection() {
143256
143517
  return false;
143257
143518
  }
143519
+ discloseTileTrees(trees) {
143520
+ super.discloseTileTrees(trees);
143521
+ this._layerRefHandler.discloseTileTrees(trees);
143522
+ }
143258
143523
  getClipVolume(_tree) {
143259
143524
  // ###TODO: reduce frequency with which getModelClip() is called
143260
143525
  return this.view.is3d() && !this._sectionClip ? this.view.getModelClip(this.model.id) : undefined;
@@ -143314,6 +143579,12 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
143314
143579
  return baseTf;
143315
143580
  return displayTf.premultiply ? displayTf.transform.multiplyTransformTransform(baseTf) : baseTf.multiplyTransformTransform(displayTf.transform);
143316
143581
  }
143582
+ addToScene(context) {
143583
+ const tree = this.treeOwner.load();
143584
+ if (undefined === tree || !this._layerRefHandler.initializeLayers(context))
143585
+ return; // Not loaded yet.
143586
+ super.addToScene(context);
143587
+ }
143317
143588
  }
143318
143589
  class AnimatedTreeReference extends PrimaryTreeReference {
143319
143590
  _branchId;
@@ -143348,8 +143619,8 @@ class AnimatedTreeReference extends PrimaryTreeReference {
143348
143619
  class PlanProjectionTreeReference extends PrimaryTreeReference {
143349
143620
  get _view3d() { return this.view; }
143350
143621
  _baseTransform = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Transform.createIdentity();
143351
- constructor(view, model, sectionCut) {
143352
- super(view, model, true, undefined, sectionCut);
143622
+ constructor(view, model, sectionCut, backgroundBase, backgroundLayers) {
143623
+ super(view, model, true, undefined, sectionCut, backgroundBase, backgroundLayers);
143353
143624
  this._viewFlagOverrides.forceSurfaceDiscard = true;
143354
143625
  }
143355
143626
  get castsShadows() {
@@ -143414,13 +143685,15 @@ function isPlanProjection(view, model) {
143414
143685
  const model3d = view.is3d() ? model.asGeometricModel3d : undefined;
143415
143686
  return undefined !== model3d && model3d.isPlanProjection;
143416
143687
  }
143417
- function createTreeRef(view, model, sectionCut) {
143688
+ function createTreeRef(view, model, sectionCut, backgroundBase, backgroundLayers) {
143418
143689
  if (false !== _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.renderSystem.options.planProjections && isPlanProjection(view, model))
143419
- return new PlanProjectionTreeReference(view, model, sectionCut);
143420
- return new PrimaryTreeReference(view, model, false, undefined, sectionCut);
143690
+ return new PlanProjectionTreeReference(view, model, sectionCut, backgroundBase, backgroundLayers);
143691
+ return new PrimaryTreeReference(view, model, false, undefined, sectionCut, backgroundBase, backgroundLayers);
143421
143692
  }
143422
- function createPrimaryTileTreeReference(view, model) {
143423
- return createTreeRef(view, model, undefined);
143693
+ function createPrimaryTileTreeReference(view, model, getBackgroundBase, getBackgroundLayers) {
143694
+ const backgroundBase = getBackgroundBase?.();
143695
+ const backgroundLayers = getBackgroundLayers?.();
143696
+ return createTreeRef(view, model, undefined, backgroundBase, backgroundLayers);
143424
143697
  }
143425
143698
  class MaskTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTreeReference {
143426
143699
  _id;
@@ -143753,7 +144026,6 @@ __webpack_require__.r(__webpack_exports__);
143753
144026
  /* harmony import */ var _RealityDataSource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../RealityDataSource */ "../../core/frontend/lib/esm/RealityDataSource.js");
143754
144027
  /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
143755
144028
  /* harmony import */ var _RealityDataSourceTilesetUrlImpl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../RealityDataSourceTilesetUrlImpl */ "../../core/frontend/lib/esm/RealityDataSourceTilesetUrlImpl.js");
143756
- /* harmony import */ var _render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../render/webgl/MapLayerParams */ "../../core/frontend/lib/esm/internal/render/webgl/MapLayerParams.js");
143757
144029
  /*---------------------------------------------------------------------------------------------
143758
144030
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
143759
144031
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -143771,7 +144043,6 @@ __webpack_require__.r(__webpack_exports__);
143771
144043
 
143772
144044
 
143773
144045
 
143774
-
143775
144046
  function getUrl(content) {
143776
144047
  return content ? (content.url ? content.url : content.uri) : undefined;
143777
144048
  }
@@ -144222,7 +144493,6 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
144222
144493
  _classifier;
144223
144494
  _mapDrapeTree;
144224
144495
  _getDisplaySettings;
144225
- _detachFromDisplayStyle = [];
144226
144496
  _layerRefHandler;
144227
144497
  iModel;
144228
144498
  get planarClipMask() { return this._planarClipMask; }
@@ -144244,7 +144514,7 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
144244
144514
  constructor(props) {
144245
144515
  super();
144246
144516
  this.iModel = props.iModel;
144247
- this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler(this, false, props.getBackgroundBase?.(), props.getBackgroundLayers?.());
144517
+ this._layerRefHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_8__.LayerTileTreeReferenceHandler(this, false, props.getBackgroundBase?.(), props.getBackgroundLayers?.(), false);
144248
144518
  this._name = undefined !== props.name ? props.name : "";
144249
144519
  let transform;
144250
144520
  if (undefined !== props.tilesetToDbTransform) {
@@ -144274,24 +144544,6 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
144274
144544
  }
144275
144545
  return this._isGlobal === undefined ? false : this._isGlobal;
144276
144546
  }
144277
- preInitializeLayers(context) {
144278
- const removals = this._detachFromDisplayStyle;
144279
- const mapImagery = context.viewport.displayStyle.settings.mapImagery;
144280
- if (0 === removals.length) {
144281
- removals.push(context.viewport.displayStyle.settings.onMapImageryChanged.addListener((imagery) => {
144282
- this._layerRefHandler.setBaseLayerSettings(imagery.backgroundBase);
144283
- this._layerRefHandler.setLayerSettings(imagery.backgroundLayers);
144284
- this._layerRefHandler.clearLayers();
144285
- }));
144286
- }
144287
- removals.push(context.viewport.onChangeView.addListener((vp, previousViewState) => {
144288
- if ((0,_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_10__.compareMapLayer)(previousViewState, vp.view)) {
144289
- this._layerRefHandler.setBaseLayerSettings(mapImagery.backgroundBase);
144290
- this._layerRefHandler.setLayerSettings(mapImagery.backgroundLayers);
144291
- this._layerRefHandler.clearLayers();
144292
- }
144293
- }));
144294
- }
144295
144547
  addToScene(context) {
144296
144548
  const tree = this.treeOwner.load();
144297
144549
  if (undefined === tree || !this._layerRefHandler.initializeLayers(context))
@@ -144320,6 +144572,7 @@ class RealityModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_8__.R
144320
144572
  this._mapDrapeTree.discloseTileTrees(trees);
144321
144573
  if (undefined !== this._planarClipMask)
144322
144574
  this._planarClipMask.discloseTileTrees(trees);
144575
+ this._layerRefHandler.discloseTileTrees(trees);
144323
144576
  }
144324
144577
  collectStatistics(stats) {
144325
144578
  super.collectStatistics(stats);
@@ -155176,6 +155429,7 @@ async function readImdlContent(args) {
155176
155429
  iModel: args.iModel,
155177
155430
  document,
155178
155431
  isCanceled: args.isCanceled,
155432
+ tileData: args.tileData,
155179
155433
  });
155180
155434
  if (isCanceled())
155181
155435
  return { isLeaf: true, readStatus: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.TileReadStatus.Canceled };
@@ -155209,233 +155463,6 @@ var ImdlReader;
155209
155463
  })(ImdlReader || (ImdlReader = {}));
155210
155464
 
155211
155465
 
155212
- /***/ }),
155213
-
155214
- /***/ "../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js":
155215
- /*!****************************************************************!*\
155216
- !*** ../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js ***!
155217
- \****************************************************************/
155218
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
155219
-
155220
- "use strict";
155221
- __webpack_require__.r(__webpack_exports__);
155222
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
155223
- /* harmony export */ LayerTileTreeHandler: () => (/* binding */ LayerTileTreeHandler)
155224
- /* harmony export */ });
155225
- /* harmony import */ var _internal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal */ "../../core/frontend/lib/esm/tile/internal.js");
155226
- /*---------------------------------------------------------------------------------------------
155227
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
155228
- * See LICENSE.md in the project root for license terms and full copyright notice.
155229
- *--------------------------------------------------------------------------------------------*/
155230
- /** @packageDocumentation
155231
- * @module Tiles
155232
- */
155233
-
155234
- /** @internal */
155235
- class LayerTileTreeHandler {
155236
- _layerSettings = new Map();
155237
- _imageryTreeState = new Map();
155238
- _modelIdToIndex = new Map();
155239
- layerClassifiers = new Map();
155240
- _ref;
155241
- get imageryTreeState() { return this._imageryTreeState; }
155242
- get layerSettings() { return this._layerSettings; }
155243
- get modelIdToIndex() { return this._modelIdToIndex; }
155244
- get layerImageryTrees() { return this._ref.layerImageryTrees; }
155245
- constructor(ref) {
155246
- this._ref = ref;
155247
- }
155248
- /** Add a new imagery tile tree / map-layer settings pair and initialize the imagery tile tree state.
155249
- * @internal
155250
- */
155251
- addImageryLayer(tree, settings, index, baseImageryLayer) {
155252
- this._ref.layerImageryTrees.push({ tree, settings, baseImageryLayer });
155253
- this._layerSettings.set(tree.modelId, settings);
155254
- if (!this._imageryTreeState.has(tree.modelId))
155255
- this._imageryTreeState.set(tree.modelId, new _internal__WEBPACK_IMPORTED_MODULE_0__.ImageryTileTreeState());
155256
- this._modelIdToIndex.set(tree.modelId, index);
155257
- }
155258
- /** @internal */
155259
- addModelLayer(layerTreeRef, context) {
155260
- const classifier = context.addPlanarClassifier(`MapLayer ${this._ref.modelId}-${layerTreeRef.layerIndex}`, layerTreeRef);
155261
- if (classifier)
155262
- this.layerClassifiers.set(layerTreeRef.layerIndex, classifier);
155263
- }
155264
- /** @internal */
155265
- clearLayers() {
155266
- this._ref.rootTile.clearLayers();
155267
- }
155268
- /** @internal */
155269
- collectClassifierGraphics(args, selectedTiles) {
155270
- this.layerClassifiers.forEach((layerClassifier) => {
155271
- layerClassifier.collectGraphics(args.context, { modelId: this._ref.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this._ref.isPointCloud });
155272
- });
155273
- }
155274
- }
155275
-
155276
-
155277
- /***/ }),
155278
-
155279
- /***/ "../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js":
155280
- /*!*************************************************************************!*\
155281
- !*** ../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js ***!
155282
- \*************************************************************************/
155283
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
155284
-
155285
- "use strict";
155286
- __webpack_require__.r(__webpack_exports__);
155287
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
155288
- /* harmony export */ LayerTileTreeReferenceHandler: () => (/* binding */ LayerTileTreeReferenceHandler)
155289
- /* harmony export */ });
155290
- /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
155291
- /* harmony import */ var _internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal */ "../../core/frontend/lib/esm/tile/internal.js");
155292
- /*---------------------------------------------------------------------------------------------
155293
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
155294
- * See LICENSE.md in the project root for license terms and full copyright notice.
155295
- *--------------------------------------------------------------------------------------------*/
155296
- /** @packageDocumentation
155297
- * @module Tiles
155298
- */
155299
-
155300
-
155301
- /** @internal */
155302
- class LayerTileTreeReferenceHandler {
155303
- _layerTrees = new Array();
155304
- isOverlay;
155305
- _baseImageryLayerIncluded = false;
155306
- _baseLayerSettings;
155307
- _baseTransparent = false;
155308
- _baseColor;
155309
- _layerSettings;
155310
- _ref;
155311
- get layerTrees() { return this._layerTrees; }
155312
- get baseColor() { return this._baseColor; }
155313
- get baseTransparent() { return this._baseTransparent; }
155314
- get baseImageryLayerIncluded() { return this._baseImageryLayerIncluded; }
155315
- get layerSettings() { return this._layerSettings; }
155316
- constructor(ref, pIsOverlay, baseLayerSettings, layerSettings) {
155317
- this._ref = ref;
155318
- this._baseLayerSettings = baseLayerSettings;
155319
- this._layerSettings = layerSettings ? layerSettings : [];
155320
- this.isOverlay = pIsOverlay;
155321
- let tree;
155322
- if (!this.isOverlay && this._baseLayerSettings !== undefined) {
155323
- if (this._baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
155324
- tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._baseLayerSettings, 0, this._ref.iModel);
155325
- this._baseTransparent = this._baseLayerSettings.transparency > 0;
155326
- }
155327
- else {
155328
- this._baseColor = this._baseLayerSettings;
155329
- this._baseTransparent = this._baseColor?.getTransparency() > 0;
155330
- }
155331
- }
155332
- if (this._baseImageryLayerIncluded = (undefined !== tree))
155333
- this._layerTrees.push(tree);
155334
- if (undefined !== this._layerSettings) {
155335
- for (let i = 0; i < this._layerSettings.length; i++)
155336
- if (undefined !== (tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(this._layerSettings[i], i + 1, this._ref.iModel)))
155337
- this._layerTrees.push(tree);
155338
- }
155339
- }
155340
- initializeLayers(context) {
155341
- if (undefined !== this._ref.preInitializeLayers)
155342
- this._ref.preInitializeLayers(context);
155343
- let hasLoadedTileTree = false;
155344
- const layerHandler = this._ref.treeOwner.load()?.layerHandler;
155345
- if (undefined === layerHandler) {
155346
- return hasLoadedTileTree; // Not loaded yet - or no layerHandler on tree.
155347
- }
155348
- layerHandler.layerImageryTrees.length = 0;
155349
- if (0 === this._layerTrees.length) {
155350
- return !this.isOverlay;
155351
- }
155352
- let treeIndex = this._layerTrees.length - 1;
155353
- // Start displaying at the highest completely opaque layer...
155354
- for (; treeIndex >= 1; treeIndex--) {
155355
- const layerTreeRef = this._layerTrees[treeIndex];
155356
- if (layerTreeRef?.isOpaque)
155357
- break; // This layer is completely opaque and will obscure all others so ignore lower ones.
155358
- }
155359
- for (; treeIndex < this._layerTrees.length; treeIndex++) {
155360
- const layerTreeRef = this._layerTrees[treeIndex];
155361
- const hasValidTileTree = layerTreeRef && _internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeLoadStatus.NotFound !== layerTreeRef.treeOwner.loadStatus;
155362
- const isImageryMapLayer = layerTreeRef instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapLayerTreeReference;
155363
- const isLayerVisible = (isImageryMapLayer || (!isImageryMapLayer && layerTreeRef?.layerSettings.visible));
155364
- if (!this._ref.shouldDrapeLayer(layerTreeRef)) {
155365
- // If the layer is not to be displayed, then we should skip adding it to the tile tree.
155366
- // The _shouldDrapeLayerFunc() function is sent in from MapTileTreeReference or RealityTileTree.
155367
- hasLoadedTileTree = true; // ###TODO had to set this to true so addToScene actually works. alternative?
155368
- continue;
155369
- }
155370
- // Load tile tree for each configured layer.
155371
- // Note: Non-visible imagery layer are always added to allow proper tile tree scale range visibility reporting.
155372
- if (hasValidTileTree
155373
- && isLayerVisible
155374
- && !layerTreeRef.layerSettings.allSubLayersInvisible) {
155375
- const layerTree = layerTreeRef.treeOwner.load();
155376
- if (layerTree !== undefined) {
155377
- hasLoadedTileTree = true;
155378
- }
155379
- else {
155380
- // Let's continue, there might be loaded tile tree in the list
155381
- continue;
155382
- }
155383
- // Add loaded TileTree
155384
- const baseImageryLayer = this._baseImageryLayerIncluded && (treeIndex === 0);
155385
- if (layerTree instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ImageryMapTileTree) {
155386
- layerHandler.addImageryLayer(layerTree, layerTreeRef.layerSettings, treeIndex, baseImageryLayer);
155387
- }
155388
- else if (layerTreeRef instanceof _internal__WEBPACK_IMPORTED_MODULE_1__.ModelMapLayerTileTreeReference)
155389
- layerHandler.addModelLayer(layerTreeRef, context);
155390
- }
155391
- }
155392
- return hasLoadedTileTree;
155393
- }
155394
- setBaseLayerSettings(baseLayerSettings) {
155395
- let tree;
155396
- this._baseLayerSettings = baseLayerSettings;
155397
- if (baseLayerSettings instanceof _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.MapLayerSettings) {
155398
- tree = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(baseLayerSettings, 0, this._ref.iModel);
155399
- this._baseColor = undefined;
155400
- this._baseTransparent = baseLayerSettings.transparency > 0;
155401
- }
155402
- else {
155403
- this._baseColor = baseLayerSettings;
155404
- this._baseTransparent = this._baseColor.getTransparency() > 0;
155405
- }
155406
- if (tree) {
155407
- if (this._baseImageryLayerIncluded)
155408
- this._layerTrees[0] = tree;
155409
- else
155410
- this._layerTrees.splice(0, 0, tree);
155411
- }
155412
- else {
155413
- if (this._baseImageryLayerIncluded)
155414
- this._layerTrees.shift();
155415
- }
155416
- this._baseImageryLayerIncluded = tree !== undefined;
155417
- this.clearLayers();
155418
- }
155419
- clearLayers() {
155420
- const layerHandler = this._ref.treeOwner.tileTree?.layerHandler;
155421
- if (undefined !== layerHandler) {
155422
- layerHandler.clearLayers();
155423
- }
155424
- }
155425
- setLayerSettings(layerSettings) {
155426
- this._layerSettings = layerSettings;
155427
- const baseLayerIndex = this._baseImageryLayerIncluded ? 1 : 0;
155428
- this._layerTrees.length = Math.min(layerSettings.length + baseLayerIndex, this._layerTrees.length); // Truncate if number of layers reduced.
155429
- for (let i = 0; i < layerSettings.length; i++) {
155430
- const treeIndex = i + baseLayerIndex;
155431
- if (treeIndex >= this._layerTrees.length || !this._layerTrees[treeIndex]?.layerSettings.displayMatches(layerSettings[i]))
155432
- this._layerTrees[treeIndex] = (0,_internal__WEBPACK_IMPORTED_MODULE_1__.createMapLayerTreeReference)(layerSettings[i], treeIndex, this._ref.iModel);
155433
- }
155434
- this.clearLayers();
155435
- }
155436
- }
155437
-
155438
-
155439
155466
  /***/ }),
155440
155467
 
155441
155468
  /***/ "../../core/frontend/lib/esm/tile/RealityTile.js":
@@ -160001,8 +160028,9 @@ __webpack_require__.r(__webpack_exports__);
160001
160028
  /* harmony export */ ImageryTileTreeState: () => (/* reexport safe */ _map_ImageryTileTree__WEBPACK_IMPORTED_MODULE_86__.ImageryTileTreeState),
160002
160029
  /* harmony export */ ImdlReader: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.ImdlReader),
160003
160030
  /* harmony export */ LRUTileList: () => (/* reexport safe */ _internal_tile_LRUTileList__WEBPACK_IMPORTED_MODULE_5__.LRUTileList),
160004
- /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
160005
- /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
160031
+ /* harmony export */ LayerTextureParams: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.LayerTextureParams),
160032
+ /* harmony export */ LayerTileTreeHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__.LayerTileTreeHandler),
160033
+ /* harmony export */ LayerTileTreeReferenceHandler: () => (/* reexport safe */ _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__.LayerTileTreeReferenceHandler),
160006
160034
  /* harmony export */ MapBoxLayerImageryProvider: () => (/* reexport safe */ _internal_tile_map_ImageryProviders_MapBoxLayerImageryProvider__WEBPACK_IMPORTED_MODULE_60__.MapBoxLayerImageryProvider),
160007
160035
  /* harmony export */ MapCartoRectangle: () => (/* reexport safe */ _map_MapCartoRectangle__WEBPACK_IMPORTED_MODULE_1__.MapCartoRectangle),
160008
160036
  /* harmony export */ MapFeatureInfoRecord: () => (/* reexport safe */ _map_MapFeatureInfo__WEBPACK_IMPORTED_MODULE_41__.MapFeatureInfoRecord),
@@ -160029,6 +160057,7 @@ __webpack_require__.r(__webpack_exports__);
160029
160057
  /* harmony export */ OrbitGtTreeReference: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_85__.OrbitGtTreeReference),
160030
160058
  /* harmony export */ PlanarProjection: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_71__.PlanarProjection),
160031
160059
  /* harmony export */ PlanarTilePatch: () => (/* reexport safe */ _map_MapTile__WEBPACK_IMPORTED_MODULE_71__.PlanarTilePatch),
160060
+ /* harmony export */ ProjectedTexture: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.ProjectedTexture),
160032
160061
  /* harmony export */ QuadId: () => (/* reexport safe */ _map_QuadId__WEBPACK_IMPORTED_MODULE_2__.QuadId),
160033
160062
  /* harmony export */ ReadonlyTileUserSet: () => (/* reexport safe */ _internal_tile_TileUserSet__WEBPACK_IMPORTED_MODULE_31__.ReadonlyTileUserSet),
160034
160063
  /* harmony export */ RealityModelTileTree: () => (/* reexport safe */ _internal_tile_RealityModelTileTree__WEBPACK_IMPORTED_MODULE_78__.RealityModelTileTree),
@@ -160089,6 +160118,7 @@ __webpack_require__.r(__webpack_exports__);
160089
160118
  /* harmony export */ acquireImdlParser: () => (/* reexport safe */ _internal_tile_ImdlParser__WEBPACK_IMPORTED_MODULE_38__.acquireImdlParser),
160090
160119
  /* harmony export */ addRangeGraphic: () => (/* reexport safe */ _Tile__WEBPACK_IMPORTED_MODULE_4__.addRangeGraphic),
160091
160120
  /* harmony export */ appendQueryParams: () => (/* reexport safe */ _internal_tile_map_UrlUtils__WEBPACK_IMPORTED_MODULE_48__.appendQueryParams),
160121
+ /* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_95__.compareMapLayer),
160092
160122
  /* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_84__.createClassifierTileTreeReference),
160093
160123
  /* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
160094
160124
  /* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
@@ -160143,8 +160173,8 @@ __webpack_require__.r(__webpack_exports__);
160143
160173
  /* harmony import */ var _TileTreeSupplier__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./TileTreeSupplier */ "../../core/frontend/lib/esm/tile/TileTreeSupplier.js");
160144
160174
  /* harmony import */ var _TileTreeOwner__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./TileTreeOwner */ "../../core/frontend/lib/esm/tile/TileTreeOwner.js");
160145
160175
  /* harmony import */ var _TileTreeReference__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./TileTreeReference */ "../../core/frontend/lib/esm/tile/TileTreeReference.js");
160146
- /* harmony import */ var _LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./LayerTileTreeReferenceHandler */ "../../core/frontend/lib/esm/tile/LayerTileTreeReferenceHandler.js");
160147
- /* harmony import */ var _LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./LayerTileTreeHandler */ "../../core/frontend/lib/esm/tile/LayerTileTreeHandler.js");
160176
+ /* harmony import */ var _internal_tile_LayerTileTreeReferenceHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/tile/LayerTileTreeReferenceHandler */ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js");
160177
+ /* harmony import */ var _internal_tile_LayerTileTreeHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/tile/LayerTileTreeHandler */ "../../core/frontend/lib/esm/internal/tile/LayerTileTreeHandler.js");
160148
160178
  /* harmony import */ var _TileGeometryCollector__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./TileGeometryCollector */ "../../core/frontend/lib/esm/tile/TileGeometryCollector.js");
160149
160179
  /* harmony import */ var _TiledGraphicsProvider__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./TiledGraphicsProvider */ "../../core/frontend/lib/esm/tile/TiledGraphicsProvider.js");
160150
160180
  /* harmony import */ var _TileAdmin__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./TileAdmin */ "../../core/frontend/lib/esm/tile/TileAdmin.js");
@@ -160219,6 +160249,7 @@ __webpack_require__.r(__webpack_exports__);
160219
160249
  /* harmony import */ var _internal_tile_OPCFormatInterpreter__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/tile/OPCFormatInterpreter */ "../../core/frontend/lib/esm/internal/tile/OPCFormatInterpreter.js");
160220
160250
  /* harmony import */ var _internal_tile_FetchCloudStorage__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/tile/FetchCloudStorage */ "../../core/frontend/lib/esm/internal/tile/FetchCloudStorage.js");
160221
160251
  /* harmony import */ var _internal_tile_MeshoptCompression__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/tile/MeshoptCompression */ "../../core/frontend/lib/esm/internal/tile/MeshoptCompression.js");
160252
+ /* 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");
160222
160253
  /*---------------------------------------------------------------------------------------------
160223
160254
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
160224
160255
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -160330,6 +160361,7 @@ __webpack_require__.r(__webpack_exports__);
160330
160361
 
160331
160362
 
160332
160363
 
160364
+
160333
160365
 
160334
160366
 
160335
160367
  /***/ }),
@@ -164319,7 +164351,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
164319
164351
  this._planarClipMask = _PlanarClipMaskState__WEBPACK_IMPORTED_MODULE_5__.PlanarClipMaskState.create(this._settings.planarClipMask);
164320
164352
  if (this._overrideTerrainDisplay && this._overrideTerrainDisplay()?.produceGeometry)
164321
164353
  this.collectTileGeometry = (collector) => this._collectTileGeometry(collector);
164322
- this._layerRefHandler = new _internal__WEBPACK_IMPORTED_MODULE_7__.LayerTileTreeReferenceHandler(this, isOverlay, baseLayerSettings, layerSettings);
164354
+ this._layerRefHandler = new _internal__WEBPACK_IMPORTED_MODULE_7__.LayerTileTreeReferenceHandler(this, isOverlay, baseLayerSettings, layerSettings, true);
164323
164355
  }
164324
164356
  forEachLayerTileTreeRef(func) {
164325
164357
  for (const layerTree of this._layerRefHandler.layerTrees) {
@@ -164458,9 +164490,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
164458
164490
  }
164459
164491
  discloseTileTrees(trees) {
164460
164492
  super.discloseTileTrees(trees);
164461
- for (const imageryTree of this._layerRefHandler.layerTrees)
164462
- if (imageryTree)
164463
- trees.disclose(imageryTree);
164493
+ this._layerRefHandler.discloseTileTrees(trees);
164464
164494
  if (this._planarClipMask)
164465
164495
  this._planarClipMask.discloseTileTrees(trees);
164466
164496
  }
@@ -166779,13 +166809,6 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
166779
166809
  const itemField = this._controls.itemFields[item];
166780
166810
  itemField.setSelectionRange(0, itemField.value.length);
166781
166811
  }
166782
- makeParserHappy(value, isAngle) {
166783
- // TODO: Work around for default length parser not accepting output formatted with dash separator, ex. 20'-6"...
166784
- const parserSpec = (isAngle ? undefined : this.getLengthParser());
166785
- if (undefined === parserSpec)
166786
- return value;
166787
- return (_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.FormatType.Fractional === parserSpec.format.type && -1 !== value.indexOf("'-") ? value.replaceAll("'-", "':") : value);
166788
- }
166789
166812
  evaluateExpression(operator, operandA, operandB) {
166790
166813
  switch (operator) {
166791
166814
  case "+":
@@ -166814,7 +166837,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
166814
166837
  if (undefined === parserSpec || undefined === formatterSpec)
166815
166838
  return undefined; // Nothing to do...
166816
166839
  const operandAStr = currentValue.substring(0, operator);
166817
- const parseResultA = parserSpec.parseToQuantityValue(this.makeParserHappy(operandAStr, isAngle));
166840
+ const parseResultA = parserSpec.parseToQuantityValue(operandAStr);
166818
166841
  if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultA))
166819
166842
  return undefined; // First operand isn't valid, try to parse current value (which is also likely to fail)...
166820
166843
  const operandBStr = currentValue.substring(operator + this._expression.operator.length);
@@ -166827,7 +166850,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
166827
166850
  return operandAStr; // Second operand is invalid number, set value to first operand which is valid...
166828
166851
  }
166829
166852
  else {
166830
- const parseResultB = parserSpec.parseToQuantityValue(this.makeParserHappy(operandBStr, isAngle));
166853
+ const parseResultB = parserSpec.parseToQuantityValue(operandBStr);
166831
166854
  if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultB))
166832
166855
  return operandAStr; // Second operand is invalid quantity, set value to first operand which is valid...
166833
166856
  operandB = parseResultB.value;
@@ -166842,26 +166865,31 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
166842
166865
  return;
166843
166866
  const itemField = this._controls.itemFields[item];
166844
166867
  const currentValue = itemField.value;
166845
- // If current value has been deleted, unlock field and refresh for current cursor location...
166868
+ // If value was cleared, unlock field and sync internal state to cursor location while preserving partial keyin status...
166846
166869
  if (0 === currentValue.length) {
166847
- this.updateFieldLock(item, false);
166870
+ await this.processFieldInput(item, currentValue, false);
166848
166871
  _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.simulateMotionEvent();
166849
166872
  return;
166850
166873
  }
166851
166874
  const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
166852
166875
  const expressionValue = this.parseExpression(currentValue, isAngle);
166853
- return this.processFieldInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), false);
166876
+ return this.processFieldInput(item, expressionValue ?? currentValue, false);
166854
166877
  }
166855
166878
  async acceptPartialInput(item, forward) {
166856
166879
  if (undefined === this._controls)
166857
166880
  return;
166858
166881
  const itemField = this._controls.itemFields[item];
166859
166882
  const currentValue = itemField.value;
166883
+ // Accepting with cleared value needs to set state back to dynamic and sync field to internal state...
166884
+ if (0 === currentValue.length && undefined === forward) {
166885
+ this.setDynamicKeyinStatus(item);
166886
+ return this.updateItemFieldValue(itemField, item);
166887
+ }
166860
166888
  const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
166861
166889
  const expressionValue = this.parseExpression(currentValue, isAngle);
166862
166890
  if (undefined === forward)
166863
- return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldAcceptInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle));
166864
- return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNavigate(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), forward);
166891
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldAcceptInput(item, expressionValue ?? currentValue);
166892
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNavigate(item, expressionValue ?? currentValue, forward);
166865
166893
  }
166866
166894
  acceptSavedValue(item, next) {
166867
166895
  if (next)
@@ -167033,10 +167061,8 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
167033
167061
  return this.processPartialInput(item);
167034
167062
  }
167035
167063
  async onKeyboardEvent(ev, isDown) {
167036
- if (ev.ctrlKey || ev.altKey || ev.metaKey) {
167037
- ev.preventDefault(); // Ignore qualifiers other than shift...
167038
- return;
167039
- }
167064
+ if (ev.ctrlKey || ev.altKey || ev.metaKey)
167065
+ return; // Ignore qualifiers other than shift...
167040
167066
  switch (ev.key) {
167041
167067
  case "Escape":
167042
167068
  return this.doFocusHome(ev, isDown, this._focusItem);
@@ -167096,7 +167122,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
167096
167122
  const isDynamic = this.isDynamicKeyinStatus(item);
167097
167123
  if (isDynamic && item === this._expression?.item)
167098
167124
  this._expression = undefined; // Only valid when entering partial input...
167099
- itemField.style.caretColor = isDynamic ? itemField.style.backgroundColor : itemField.style.color;
167125
+ itemField.style.caretColor = isDynamic ? "transparent" : itemField.style.color;
167100
167126
  }
167101
167127
  updateItemFieldValue(itemField, item) {
167102
167128
  const value = this.getFormattedValueByIndex(item);
@@ -176431,7 +176457,15 @@ class ViewManip extends ViewTool {
176431
176457
  this._depthPreview = { testPoint: ev.rawPoint, pickRadius: pickRadiusPixels, plane: result.plane, source: result.source, isDefaultDepth: !isValidDepth, sourceId: result.sourceId };
176432
176458
  return (isValidDepth || isPreview ? result.plane.getOriginRef() : undefined);
176433
176459
  }
176460
+ /** In addition to the onReinitialize calls after a tool installs or restarts, it is also
176461
+ * called from the mouseover event to cancel a drag operation if the up event occurred outside the view.
176462
+ * When operating in one shot mode and also requiring dragging, the tool should exit and not restart in ths situation.
176463
+ * A tool must opt in to allowing [[ViewTool.exitTool]] to be called from [[ViewManip.onReinitialize]] by
176464
+ * overriding this method to return true.
176465
+ */
176466
+ get isExitAllowedOnReinitialize() { return false; }
176434
176467
  async onReinitialize() {
176468
+ const shouldExit = (this.oneShot && this.isDraggingRequired && this.isDragging && 0 !== this.nPts);
176435
176469
  if (undefined !== this.viewport) {
176436
176470
  this.viewport.synchWithView(); // make sure we store any changes in view undo buffer.
176437
176471
  this.viewHandles.setFocus(-1);
@@ -176441,6 +176475,9 @@ class ViewManip extends ViewTool {
176441
176475
  this.inDynamicUpdate = false;
176442
176476
  this._startPose = undefined;
176443
176477
  this.viewHandles.onReinitialize();
176478
+ if (shouldExit && this.isExitAllowedOnReinitialize)
176479
+ return this.exitTool();
176480
+ this.provideInitialToolAssistance();
176444
176481
  }
176445
176482
  async onDataButtonDown(ev) {
176446
176483
  // Tool was started in "drag required" mode, don't advance tool state and wait to see if we get the start drag event.
@@ -176578,7 +176615,6 @@ class ViewManip extends ViewTool {
176578
176615
  await super.onPostInstall();
176579
176616
  await this.onReinitialize(); // Call onReinitialize now that tool is installed.
176580
176617
  }
176581
- /** @beta */
176582
176618
  provideToolAssistance(mainInstrKey, additionalInstr) {
176583
176619
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(mainInstrKey));
176584
176620
  const mouseInstructions = [];
@@ -176603,6 +176639,8 @@ class ViewManip extends ViewTool {
176603
176639
  const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstructions(mainInstruction, sections);
176604
176640
  _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.notifications.setToolAssistance(instructions);
176605
176641
  }
176642
+ /** Called from [[ViewManip.onReinitialize]] to allow tools to establish the tool assistance for the first point. */
176643
+ provideInitialToolAssistance() { }
176606
176644
  async onCleanup() {
176607
176645
  let restorePrevious = false;
176608
176646
  if (this.inDynamicUpdate) {
@@ -178543,10 +178581,8 @@ class PanViewTool extends ViewManip {
178543
178581
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178544
178582
  super(vp, ViewHandleType.Pan, oneShot, isDraggingRequired);
178545
178583
  }
178546
- async onReinitialize() {
178547
- await super.onReinitialize();
178548
- this.provideToolAssistance("Pan.Prompts.FirstPoint");
178549
- }
178584
+ get isExitAllowedOnReinitialize() { return true; }
178585
+ provideInitialToolAssistance() { this.provideToolAssistance("Pan.Prompts.FirstPoint"); }
178550
178586
  }
178551
178587
  /** A tool that performs a Rotate view operation
178552
178588
  * @public
@@ -178557,10 +178593,8 @@ class RotateViewTool extends ViewManip {
178557
178593
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178558
178594
  super(vp, ViewHandleType.Rotate | ViewHandleType.Pan | ViewHandleType.TargetCenter, oneShot, isDraggingRequired);
178559
178595
  }
178560
- async onReinitialize() {
178561
- await super.onReinitialize();
178562
- this.provideToolAssistance("Rotate.Prompts.FirstPoint");
178563
- }
178596
+ get isExitAllowedOnReinitialize() { return true; }
178597
+ provideInitialToolAssistance() { this.provideToolAssistance("Rotate.Prompts.FirstPoint"); }
178564
178598
  }
178565
178599
  /** A tool that performs the look operation
178566
178600
  * @public
@@ -178571,10 +178605,8 @@ class LookViewTool extends ViewManip {
178571
178605
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178572
178606
  super(vp, ViewHandleType.Look | ViewHandleType.Pan, oneShot, isDraggingRequired);
178573
178607
  }
178574
- async onReinitialize() {
178575
- await super.onReinitialize();
178576
- this.provideToolAssistance("Look.Prompts.FirstPoint");
178577
- }
178608
+ get isExitAllowedOnReinitialize() { return true; }
178609
+ provideInitialToolAssistance() { this.provideToolAssistance("Look.Prompts.FirstPoint"); }
178578
178610
  }
178579
178611
  /** A tool that performs the scroll operation
178580
178612
  * @public
@@ -178585,10 +178617,8 @@ class ScrollViewTool extends ViewManip {
178585
178617
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178586
178618
  super(vp, ViewHandleType.Scroll, oneShot, isDraggingRequired);
178587
178619
  }
178588
- async onReinitialize() {
178589
- await super.onReinitialize();
178590
- this.provideToolAssistance("Scroll.Prompts.FirstPoint");
178591
- }
178620
+ get isExitAllowedOnReinitialize() { return true; }
178621
+ provideInitialToolAssistance() { this.provideToolAssistance("Scroll.Prompts.FirstPoint"); }
178592
178622
  }
178593
178623
  /** A tool that performs the zoom operation
178594
178624
  * @public
@@ -178599,10 +178629,8 @@ class ZoomViewTool extends ViewManip {
178599
178629
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178600
178630
  super(vp, ViewHandleType.Zoom | ViewHandleType.Pan, oneShot, isDraggingRequired);
178601
178631
  }
178602
- async onReinitialize() {
178603
- await super.onReinitialize();
178604
- this.provideToolAssistance("Zoom.Prompts.FirstPoint");
178605
- }
178632
+ get isExitAllowedOnReinitialize() { return true; }
178633
+ provideInitialToolAssistance() { this.provideToolAssistance("Zoom.Prompts.FirstPoint"); }
178606
178634
  }
178607
178635
  /** A tool that performs the walk operation using mouse+keyboard or touch controls.
178608
178636
  * Keyboard and mouse controls are similar to those used by many video games:
@@ -178619,11 +178647,8 @@ class LookAndMoveTool extends ViewManip {
178619
178647
  const viewport = (undefined === vp ? _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.viewManager.selectedView : vp); // Need vp to enable camera/check lens in onReinitialize...
178620
178648
  super(viewport, ViewHandleType.LookAndMove | ViewHandleType.Pan, oneShot, isDraggingRequired);
178621
178649
  }
178622
- async onReinitialize() {
178623
- await super.onReinitialize();
178624
- this.provideToolAssistance("LookAndMove.Prompts.FirstPoint");
178625
- }
178626
- /** @beta */
178650
+ get isExitAllowedOnReinitialize() { return true; }
178651
+ provideInitialToolAssistance() { this.provideToolAssistance("LookAndMove.Prompts.FirstPoint"); }
178627
178652
  provideToolAssistance(mainInstrKey) {
178628
178653
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(mainInstrKey));
178629
178654
  const mouseInstructions = [];
@@ -178662,11 +178687,8 @@ class WalkViewTool extends ViewManip {
178662
178687
  const viewport = (undefined === vp ? _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.viewManager.selectedView : vp); // Need vp to enable camera/check lens in onReinitialize...
178663
178688
  super(viewport, ViewHandleType.Walk | ViewHandleType.Pan, oneShot, isDraggingRequired);
178664
178689
  }
178665
- async onReinitialize() {
178666
- await super.onReinitialize();
178667
- this.provideToolAssistance("Walk.Prompts.FirstPoint");
178668
- }
178669
- /** @beta */
178690
+ get isExitAllowedOnReinitialize() { return true; }
178691
+ provideInitialToolAssistance() { this.provideToolAssistance("Walk.Prompts.FirstPoint"); }
178670
178692
  provideToolAssistance(mainInstrKey) {
178671
178693
  const walkInstructions = [];
178672
178694
  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));
@@ -178683,11 +178705,8 @@ class FlyViewTool extends ViewManip {
178683
178705
  constructor(vp, oneShot = false, isDraggingRequired = false) {
178684
178706
  super(vp, ViewHandleType.Fly | ViewHandleType.Pan, oneShot, isDraggingRequired);
178685
178707
  }
178686
- async onReinitialize() {
178687
- await super.onReinitialize();
178688
- this.provideToolAssistance("Fly.Prompts.FirstPoint");
178689
- }
178690
- /** @beta */
178708
+ get isExitAllowedOnReinitialize() { return true; }
178709
+ provideInitialToolAssistance() { this.provideToolAssistance("Fly.Prompts.FirstPoint"); }
178691
178710
  provideToolAssistance(mainInstrKey) {
178692
178711
  const flyInstructions = [];
178693
178712
  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));
@@ -178711,7 +178730,6 @@ class FitViewTool extends ViewTool {
178711
178730
  this.doAnimate = doAnimate;
178712
178731
  this.isolatedOnly = isolatedOnly;
178713
178732
  }
178714
- /** @beta */
178715
178733
  provideToolAssistance() {
178716
178734
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate("Fit.Prompts.FirstPoint"));
178717
178735
  const mouseInstructions = [];
@@ -179023,7 +179041,6 @@ class WindowAreaTool extends ViewTool {
179023
179041
  }
179024
179042
  return super.onResetButtonUp(ev);
179025
179043
  }
179026
- /** @beta */
179027
179044
  provideToolAssistance() {
179028
179045
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveFirstPoint ? "WindowArea.Prompts.NextPoint" : "WindowArea.Prompts.FirstPoint"));
179029
179046
  const mouseInstructions = [];
@@ -179526,7 +179543,6 @@ class SetupCameraTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_17__.Primi
179526
179543
  await this.exitTool();
179527
179544
  return _Tool__WEBPACK_IMPORTED_MODULE_18__.EventHandled.Yes;
179528
179545
  }
179529
- /** @beta */
179530
179546
  provideToolAssistance() {
179531
179547
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveEyePt ? "SetupCamera.Prompts.NextPoint" : "SetupCamera.Prompts.FirstPoint"));
179532
179548
  const mouseInstructions = [];
@@ -179786,7 +179802,6 @@ class SetupWalkCameraTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_17__.P
179786
179802
  await this.exitTool();
179787
179803
  return _Tool__WEBPACK_IMPORTED_MODULE_18__.EventHandled.Yes;
179788
179804
  }
179789
- /** @beta */
179790
179805
  provideToolAssistance() {
179791
179806
  const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_19__.ToolAssistance.createInstruction(this.iconSpec, ViewTool.translate(this._haveEyePt ? "SetupWalkCamera.Prompts.NextPoint" : "SetupWalkCamera.Prompts.FirstPoint"));
179792
179807
  const mouseInstructions = [];
@@ -311063,7 +311078,7 @@ var loadLanguages = instance.loadLanguages;
311063
311078
  /***/ ((module) => {
311064
311079
 
311065
311080
  "use strict";
311066
- 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"}}');
311081
+ 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"}}');
311067
311082
 
311068
311083
  /***/ })
311069
311084