@itwin/ecschema-rpcinterface-tests 4.0.0-dev.72 → 4.0.0-dev.73

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.
@@ -142254,7 +142254,7 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
142254
142254
  super(props, tree);
142255
142255
  this._everDisplayed = false;
142256
142256
  this.transformToRoot = props.transformToRoot;
142257
- this.additiveRefinement = (undefined === props.additiveRefinement) ? this.realityParent?.additiveRefinement : props.additiveRefinement;
142257
+ this.additiveRefinement = props.additiveRefinement ?? this.realityParent?.additiveRefinement;
142258
142258
  this.noContentButTerminateOnSelection = props.noContentButTerminateOnSelection;
142259
142259
  this.rangeCorners = props.rangeCorners;
142260
142260
  this.region = props.region;
@@ -142369,21 +142369,31 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
142369
142369
  child.preloadRealityTilesAtDepth(depth, context, args);
142370
142370
  }
142371
142371
  }
142372
+ // Preload tiles that are protected:
142373
+ // * used tiles (where "used" may mean: selected/preloaded for display or content requested);
142374
+ // * parents and siblings of other protected tiles.
142372
142375
  /** @internal */
142373
- selectRealityChildren(context, args, traversalDetails) {
142374
- const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
142375
- if (_internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading === childrenLoadStatus) {
142376
- args.markChildrenLoading();
142377
- traversalDetails.childrenLoading = true;
142378
- return;
142376
+ preloadProtectedTiles(args, context) {
142377
+ const children = this.realityChildren;
142378
+ let hasProtectedChildren = false;
142379
+ if (children && !this.additiveRefinement) {
142380
+ for (const child of children) {
142381
+ hasProtectedChildren = child.preloadProtectedTiles(args, context) || hasProtectedChildren;
142382
+ }
142379
142383
  }
142380
- if (undefined !== this.realityChildren) {
142381
- const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);
142382
- traversalChildren.initialize();
142383
- for (let i = 0; i < this.children.length; i++)
142384
- this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));
142385
- traversalChildren.combine(traversalDetails);
142384
+ if (children && hasProtectedChildren) {
142385
+ for (const child of children) {
142386
+ if (child.isDisplayable && !child.isLoaded)
142387
+ context.preload(child, args);
142388
+ }
142389
+ return true; // Parents of protected tiles are protected
142390
+ }
142391
+ // Special case of the root tile
142392
+ if (this === this.realityRoot.rootTile) {
142393
+ context.preload(this, args);
142394
+ return true;
142386
142395
  }
142396
+ return context.selected.find((tile) => tile === this) !== undefined;
142387
142397
  }
142388
142398
  /** @internal */
142389
142399
  addBoundingGraphic(builder, color) {
@@ -142420,55 +142430,157 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
142420
142430
  if (child.isReady && child.computeVisibilityFactor(args) > 0) {
142421
142431
  scratchLoadedChildren.push(child);
142422
142432
  }
142423
- else if (!child.getLoadedRealityChildren(args))
142433
+ else if (!child.getLoadedRealityChildren(args)) {
142424
142434
  return false;
142435
+ }
142425
142436
  }
142426
142437
  return true;
142427
142438
  }
142428
142439
  /** @internal */
142429
142440
  forceSelectRealityTile() { return false; }
142430
142441
  /** @internal */
142442
+ minimumVisibleFactor() {
142443
+ if (this.additiveRefinement)
142444
+ return 0.25;
142445
+ else
142446
+ return 0;
142447
+ }
142448
+ /** @internal */
142431
142449
  selectRealityTiles(context, args, traversalDetails) {
142432
142450
  const visibility = this.computeVisibilityFactor(args);
142433
- if (visibility < 0)
142451
+ const isNotVisible = visibility < 0;
142452
+ if (isNotVisible)
142434
142453
  return;
142454
+ // Force loading if loader requires this tile. (cesium terrain visibility).
142435
142455
  if (this.realityRoot.loader.forceTileLoad(this) && !this.isReady) {
142436
- context.selectOrQueue(this, args, traversalDetails); // Force loading if loader requires this tile. (cesium terrain visibility).
142456
+ context.selectOrQueue(this, args, traversalDetails);
142437
142457
  return;
142438
142458
  }
142459
+ // Force to return early without selecting
142439
142460
  if (visibility >= 1 && this.noContentButTerminateOnSelection)
142440
142461
  return;
142441
- if (this.isDisplayable && (visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded)) {
142442
- if (!this.isOccluded(args.viewingSpace)) {
142443
- context.selectOrQueue(this, args, traversalDetails);
142444
- if (!this.isReady) { // This tile is visible but not loaded - Use higher resolution children if present
142445
- if (this.getLoadedRealityChildren(args))
142446
- context.select(scratchLoadedChildren, args);
142447
- scratchLoadedChildren.length = 0;
142448
- }
142449
- }
142462
+ const shouldSelectThisTile = visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded;
142463
+ if (shouldSelectThisTile && this.isDisplayable) { // Select this tile
142464
+ // Return early if tile is totally occluded
142465
+ if (this.isOccluded(args.viewingSpace))
142466
+ return;
142467
+ // Attempt to select this tile. If not ready, queue it
142468
+ context.selectOrQueue(this, args, traversalDetails);
142469
+ // This tile is visible but not loaded - Use higher resolution children if present
142470
+ if (!this.isReady)
142471
+ this.selectRealityChildrenAsFallback(context, args, traversalDetails);
142450
142472
  }
142451
- else {
142473
+ else { // Select children instead of this tile
142474
+ // With additive refinement it is necessary to display this tile along with any displayed children
142452
142475
  if (this.additiveRefinement && this.isDisplayable && !this.useAdditiveRefinementStepchildren())
142453
- context.selectOrQueue(this, args, traversalDetails); // With additive refinement it is necessary to display this tile along with any displayed children.
142476
+ context.selectOrQueue(this, args, traversalDetails);
142454
142477
  this.selectRealityChildren(context, args, traversalDetails);
142455
- if (this.isReady && (traversalDetails.childrenLoading || 0 !== traversalDetails.queuedChildren.length)) {
142456
- const minimumVisibleFactor = .25; // If the tile has not yet been displayed in this viewport -- display only if it is within 25% of visible. Avoid overly tiles popping into view unexpectedly (terrain)
142457
- if (visibility > minimumVisibleFactor || this._everDisplayed)
142478
+ // Children are not ready: use this tile to avoid leaving a hole
142479
+ traversalDetails.shouldSelectParent = traversalDetails.shouldSelectParent || traversalDetails.queuedChildren.length !== 0;
142480
+ if (traversalDetails.shouldSelectParent) {
142481
+ // If the tile has not yet been displayed in this viewport -- display only if it is visible enough. Avoid overly tiles popping into view unexpectedly (terrain)
142482
+ if (visibility > this.minimumVisibleFactor() || this._everDisplayed) {
142458
142483
  context.selectOrQueue(this, args, traversalDetails);
142484
+ }
142459
142485
  }
142460
142486
  }
142461
142487
  }
142488
+ // Attempt to select the children of a tile in case they could be displayed while this tile is loading. This does not take into account visibility.
142489
+ /** @internal */
142490
+ selectRealityChildrenAsFallback(context, args, traversalDetails) {
142491
+ const childrenReady = this.getLoadedRealityChildren(args);
142492
+ if (childrenReady) {
142493
+ context.select(scratchLoadedChildren, args);
142494
+ traversalDetails.shouldSelectParent = false;
142495
+ }
142496
+ scratchLoadedChildren.length = 0;
142497
+ }
142498
+ // Recurse through children to select them normally
142462
142499
  /** @internal */
142463
- purgeContents(olderThan) {
142464
- // Discard contents of tiles that have not been "used" recently, where "used" may mean: selected/preloaded for display or content requested.
142500
+ selectRealityChildren(context, args, traversalDetails) {
142501
+ // Load children if not yet requested
142502
+ const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
142503
+ // Children are not ready yet
142504
+ if (childrenLoadStatus === _internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading) {
142505
+ args.markChildrenLoading();
142506
+ traversalDetails.shouldSelectParent = true;
142507
+ return;
142508
+ }
142509
+ if (this.realityChildren !== undefined) {
142510
+ // Attempt to select the children
142511
+ const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);
142512
+ traversalChildren.initialize();
142513
+ for (let i = 0; i < this.children.length; i++)
142514
+ this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));
142515
+ traversalChildren.combine(traversalDetails);
142516
+ }
142517
+ }
142518
+ /** @internal */
142519
+ purgeContents(olderThan, useProtectedTiles) {
142520
+ const tilesToPurge = new Set();
142521
+ // Get the list of tiles to purge
142522
+ if (useProtectedTiles && !this.additiveRefinement)
142523
+ this.getTilesToPurge(olderThan, tilesToPurge);
142524
+ else
142525
+ this.getTilesToPurgeWithoutProtection(olderThan, tilesToPurge);
142526
+ // Discard contents of tiles that have been marked.
142465
142527
  // Note we do not discard the child Tile objects themselves.
142466
- if (this.usageMarker.isExpired(olderThan))
142467
- this.disposeContents();
142528
+ for (const tile of tilesToPurge)
142529
+ tile.disposeContents();
142530
+ }
142531
+ // Populate a set with tiles that should be disposed. Prevent some tiles to be disposed to avoid holes when moving.
142532
+ // Return true if the current tile is "protected".
142533
+ getTilesToPurge(olderThan, tilesToPurge) {
142468
142534
  const children = this.realityChildren;
142469
- if (children)
142470
- for (const child of children)
142471
- child.purgeContents(olderThan);
142535
+ // Protected tiles cannot be purged. They are:
142536
+ // * used tiles (where "used" may mean: selected/preloaded for display or content requested);
142537
+ // * parents and siblings of other protected tiles.
142538
+ let hasProtectedChildren = false;
142539
+ if (children) {
142540
+ for (const child of children) {
142541
+ hasProtectedChildren = child.getTilesToPurge(olderThan, tilesToPurge) || hasProtectedChildren;
142542
+ }
142543
+ if (hasProtectedChildren) {
142544
+ // Siblings of protected tiles are protected too. We need to remove them from it
142545
+ for (const child of children) {
142546
+ // Because the current tile can be invisible, relying on its children to display geometry,
142547
+ // we have to recurse in order to remove the first children that has geometry, otherwise,
142548
+ // some holes might appear
142549
+ child.removeFirstDisplayableChildrenFromSet(tilesToPurge);
142550
+ }
142551
+ return true; // Parents of protected tiles are protected
142552
+ }
142553
+ }
142554
+ const isInUse = this.usageMarker.getIsTileInUse();
142555
+ if (!isInUse && this.usageMarker.isTimestampExpired(olderThan)) {
142556
+ tilesToPurge.add(this);
142557
+ }
142558
+ return isInUse;
142559
+ }
142560
+ // Populate a set with tiles that should be disposed. Does not prevent some tiles to be disposed to avoid holes when moving.
142561
+ // This method is simpler and more fitting for devices that has a bigger memory constraint, such as mobiles.
142562
+ // However, it causes the apparition of holes by letting important tiles to be purged.
142563
+ getTilesToPurgeWithoutProtection(olderThan, tilesToPurge) {
142564
+ const children = this.realityChildren;
142565
+ if (children) {
142566
+ for (const child of children) {
142567
+ child.getTilesToPurgeWithoutProtection(olderThan, tilesToPurge);
142568
+ }
142569
+ }
142570
+ if (this.usageMarker.isExpired(olderThan))
142571
+ tilesToPurge.add(this);
142572
+ }
142573
+ removeFirstDisplayableChildrenFromSet(set) {
142574
+ if (set.size === 0)
142575
+ return;
142576
+ if (this.isDisplayable) {
142577
+ set.delete(this);
142578
+ return;
142579
+ }
142580
+ if (this.realityChildren !== undefined) {
142581
+ for (const child of this.realityChildren)
142582
+ child.removeFirstDisplayableChildrenFromSet(set);
142583
+ }
142472
142584
  }
142473
142585
  /** @internal */
142474
142586
  computeVisibilityFactor(args) {
@@ -142495,26 +142607,6 @@ class RealityTile extends _internal__WEBPACK_IMPORTED_MODULE_5__.Tile {
142495
142607
  return this.maximumSize / args.getPixelSize(this);
142496
142608
  }
142497
142609
  /** @internal */
142498
- preloadTilesInFrustum(args, context, preloadSizeModifier) {
142499
- const visibility = this.computeVisibilityFactor(args);
142500
- if (visibility < 0)
142501
- return;
142502
- if (visibility * preloadSizeModifier > 1) {
142503
- if (this.isDisplayable)
142504
- context.preload(this, args);
142505
- }
142506
- else {
142507
- const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
142508
- if (_internal__WEBPACK_IMPORTED_MODULE_5__.TileTreeLoadStatus.Loading === childrenLoadStatus) {
142509
- args.markChildrenLoading();
142510
- }
142511
- else if (undefined !== this.realityChildren) {
142512
- for (const child of this.realityChildren)
142513
- child.preloadTilesInFrustum(args, context, preloadSizeModifier);
142514
- }
142515
- }
142516
- }
142517
- /** @internal */
142518
142610
  get _anyChildNotFound() {
142519
142611
  if (undefined !== this.children)
142520
142612
  for (const child of this.children)
@@ -142951,13 +143043,13 @@ __webpack_require__.r(__webpack_exports__);
142951
143043
  class TraversalDetails {
142952
143044
  constructor() {
142953
143045
  this.queuedChildren = new Array();
142954
- this.childrenLoading = false;
142955
143046
  this.childrenSelected = false;
143047
+ this.shouldSelectParent = false;
142956
143048
  }
142957
143049
  initialize() {
142958
143050
  this.queuedChildren.length = 0;
142959
- this.childrenLoading = false;
142960
143051
  this.childrenSelected = false;
143052
+ this.shouldSelectParent = false;
142961
143053
  }
142962
143054
  }
142963
143055
  /** @internal */
@@ -142976,11 +143068,11 @@ class TraversalChildrenDetails {
142976
143068
  }
142977
143069
  combine(parentDetails) {
142978
143070
  parentDetails.queuedChildren.length = 0;
142979
- parentDetails.childrenLoading = false;
142980
143071
  parentDetails.childrenSelected = false;
143072
+ parentDetails.shouldSelectParent = false;
142981
143073
  for (const child of this._childDetails) {
142982
- parentDetails.childrenLoading = parentDetails.childrenLoading || child.childrenLoading;
142983
143074
  parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;
143075
+ parentDetails.shouldSelectParent = parentDetails.shouldSelectParent || child.shouldSelectParent;
142984
143076
  for (const queuedChild of child.queuedChildren)
142985
143077
  parentDetails.queuedChildren.push(queuedChild);
142986
143078
  }
@@ -143000,14 +143092,15 @@ class TraversalSelectionContext {
143000
143092
  selectOrQueue(tile, args, traversalDetails) {
143001
143093
  tile.selectSecondaryTiles(args, this);
143002
143094
  tile.markUsed(args);
143095
+ traversalDetails.shouldSelectParent = true;
143003
143096
  if (tile.isReady) {
143004
143097
  args.markReady(tile);
143005
143098
  this.selected.push(tile);
143006
143099
  tile.markDisplayed();
143007
143100
  this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);
143008
143101
  traversalDetails.queuedChildren.length = 0;
143009
- traversalDetails.childrenLoading = false;
143010
143102
  traversalDetails.childrenSelected = true;
143103
+ traversalDetails.shouldSelectParent = false;
143011
143104
  }
143012
143105
  else if (!tile.isNotFound) {
143013
143106
  traversalDetails.queuedChildren.push(tile);
@@ -143034,7 +143127,6 @@ class TraversalSelectionContext {
143034
143127
  }
143035
143128
  }
143036
143129
  }
143037
- const scratchFrustum = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Frustum();
143038
143130
  const scratchCarto = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.Cartographic.createZero();
143039
143131
  const scratchPoint = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero(), scratchOrigin = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.createZero();
143040
143132
  const scratchRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
@@ -143094,7 +143186,7 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
143094
143186
  /** @internal */
143095
143187
  prune() {
143096
143188
  const olderThan = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeTimePoint.now().minus(this.expirationTime);
143097
- this.rootTile.purgeContents(olderThan);
143189
+ this.rootTile.purgeContents(olderThan, !_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.ProcessDetector.isMobileBrowser);
143098
143190
  }
143099
143191
  /** @internal */
143100
143192
  draw(args) {
@@ -143281,7 +143373,7 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
143281
143373
  if (baseDepth > 0) // Maps may force loading of low level globe tiles.
143282
143374
  rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);
143283
143375
  if (!freezeTiles)
143284
- this.preloadTilesForScene(args, context, undefined);
143376
+ rootTile.preloadProtectedTiles(args, context);
143285
143377
  }
143286
143378
  if (!freezeTiles)
143287
143379
  for (const tile of context.missing) {
@@ -143312,19 +143404,6 @@ class RealityTileTree extends _internal__WEBPACK_IMPORTED_MODULE_6__.TileTree {
143312
143404
  return selected;
143313
143405
  }
143314
143406
  /** @internal */
143315
- preloadTilesForScene(args, context, frustumTransform) {
143316
- const preloadFrustum = args.viewingSpace.getPreloadFrustum(frustumTransform, scratchFrustum);
143317
- const preloadFrustumPlanes = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.FrustumPlanes.fromFrustum(preloadFrustum);
143318
- const worldToNpc = preloadFrustum.toMap4d();
143319
- const preloadWorldToViewMap = args.viewingSpace.calcNpcToView().multiplyMapMap(worldToNpc);
143320
- const preloadArgs = new _internal__WEBPACK_IMPORTED_MODULE_6__.RealityTileDrawArgs(args, preloadWorldToViewMap, preloadFrustumPlanes);
143321
- if (context.preloadDebugBuilder) {
143322
- context.preloadDebugBuilder.setSymbology(_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.blue, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.blue, 2, 0);
143323
- context.preloadDebugBuilder.addFrustum(preloadFrustum);
143324
- }
143325
- this.rootTile.preloadTilesInFrustum(preloadArgs, context, 2);
143326
- }
143327
- /** @internal */
143328
143407
  logTiles(label, tiles) {
143329
143408
  let depthString = "";
143330
143409
  let min = 10000, max = -10000;
@@ -146549,7 +146628,15 @@ class TileUsageMarker {
146549
146628
  }
146550
146629
  /** Returns true if this tile is currently in use by no [[TileUser]]s and its timestamp pre-dates `expirationTime`. */
146551
146630
  isExpired(expirationTime) {
146552
- return this._timePoint.before(expirationTime) && !_IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.tileAdmin.isTileInUse(this);
146631
+ return this.isTimestampExpired(expirationTime) && !this.getIsTileInUse();
146632
+ }
146633
+ /** Returns true if this tile is currently in use by any [[TileUser]]. */
146634
+ getIsTileInUse() {
146635
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_1__.IModelApp.tileAdmin.isTileInUse(this);
146636
+ }
146637
+ /** Returns true if this tile's timestamp pre-dates `expirationTime`, without checking if it is in use. */
146638
+ isTimestampExpired(expirationTime) {
146639
+ return this._timePoint.before(expirationTime);
146553
146640
  }
146554
146641
  /** Updates the timestamp to the specified time and marks the tile as being in use by the specified [[TileUser]]. */
146555
146642
  mark(user, time) {
@@ -151522,6 +151609,10 @@ class MapTile extends _internal__WEBPACK_IMPORTED_MODULE_7__.RealityTile {
151522
151609
  return parentHeightDepth > MapTile._maxParentHeightDepth;
151523
151610
  }
151524
151611
  /** @internal */
151612
+ minimumVisibleFactor() {
151613
+ return 0.25;
151614
+ }
151615
+ /** @internal */
151525
151616
  getDrapeTextures() {
151526
151617
  if (undefined === this._imageryTiles)
151527
151618
  return undefined;
@@ -284204,7 +284295,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
284204
284295
  /***/ ((module) => {
284205
284296
 
284206
284297
  "use strict";
284207
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.72","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-eslintrc -c \\"./node_modules/@itwin/eslint-plugin/dist/configs/extension-exports-config.js\\" \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.0.0-dev.72","@itwin/core-bentley":"workspace:^4.0.0-dev.72","@itwin/core-common":"workspace:^4.0.0-dev.72","@itwin/core-geometry":"workspace:^4.0.0-dev.72","@itwin/core-orbitgt":"workspace:^4.0.0-dev.72","@itwin/core-quantity":"workspace:^4.0.0-dev.72"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.0-dev.33","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/semver":"7.3.10","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.36.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","semver":"^7.3.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
284298
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.0.0-dev.73","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2020 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","docs":"betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/primitives,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-eslintrc -c \\"./node_modules/@itwin/eslint-plugin/dist/configs/extension-exports-config.js\\" \\"./src/**/*.ts\\" 1>&2","lint":"eslint -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:^4.0.0-dev.73","@itwin/core-bentley":"workspace:^4.0.0-dev.73","@itwin/core-common":"workspace:^4.0.0-dev.73","@itwin/core-geometry":"workspace:^4.0.0-dev.73","@itwin/core-orbitgt":"workspace:^4.0.0-dev.73","@itwin/core-quantity":"workspace:^4.0.0-dev.73"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.0-dev.33","@itwin/webgl-compatibility":"workspace:*","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^8.2.2","@types/node":"^18.11.5","@types/semver":"7.3.10","@types/sinon":"^9.0.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.1.2","chai-as-promised":"^7","cpx2":"^3.0.0","eslint":"^8.36.0","glob":"^7.1.2","mocha":"^10.0.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^9.0.2","source-map-loader":"^4.0.0","typescript":"~5.0.2","webpack":"^5.76.0"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/object-storage-azure":"^1.5.0","@itwin/cloud-agnostic-core":"^1.5.0","@itwin/object-storage-core":"^1.5.0","@itwin/core-i18n":"workspace:*","@itwin/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","semver":"^7.3.5","wms-capabilities":"0.4.0","reflect-metadata":"0.1.13"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"},"eslintConfig":{"plugins":["@itwin"],"extends":"plugin:@itwin/itwinjs-recommended","rules":{"@itwin/no-internal-barrel-imports":["error",{"required-barrel-modules":["./src/tile/internal.ts"]}],"@itwin/public-extension-exports":["error",{"releaseTags":["public","preview"],"outputApiFile":false}]},"overrides":[{"files":["*.test.ts","*.test.tsx","**/test/**/*.ts"],"rules":{"@itwin/no-internal-barrel-imports":"off"}}]}}');
284208
284299
 
284209
284300
  /***/ })
284210
284301