@itwin/rpcinterface-full-stack-tests 4.11.0-dev.1 → 4.11.0-dev.3

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.
@@ -43398,6 +43398,16 @@ class QueryOptionsBuilder {
43398
43398
  this._options.delay = val;
43399
43399
  return this;
43400
43400
  }
43401
+ /**
43402
+ * @internal
43403
+ * Use for testing internal logic. This parameter is ignored by default unless concurrent query is configure to not ignore it.
43404
+ * @param val Testing arguments.
43405
+ * @returns @type QueryOptionsBuilder for fluent interface.
43406
+ */
43407
+ setTestingArgs(val) {
43408
+ this._options.testingArgs = val;
43409
+ return this;
43410
+ }
43401
43411
  }
43402
43412
  /** @beta */
43403
43413
  class BlobOptionsBuilder {
@@ -43807,6 +43817,7 @@ var DbResponseStatus;
43807
43817
  DbResponseStatus[DbResponseStatus["Partial"] = 3] = "Partial";
43808
43818
  DbResponseStatus[DbResponseStatus["Timeout"] = 4] = "Timeout";
43809
43819
  DbResponseStatus[DbResponseStatus["QueueFull"] = 5] = "QueueFull";
43820
+ DbResponseStatus[DbResponseStatus["ShuttingDown"] = 6] = "ShuttingDown";
43810
43821
  DbResponseStatus[DbResponseStatus["Error"] = 100] = "Error";
43811
43822
  DbResponseStatus[DbResponseStatus["Error_ECSql_PreparedFailed"] = 101] = "Error_ECSql_PreparedFailed";
43812
43823
  DbResponseStatus[DbResponseStatus["Error_ECSql_StepFailed"] = 102] = "Error_ECSql_StepFailed";
@@ -45738,7 +45749,7 @@ class ECSqlReader {
45738
45749
  this._props = new PropertyMetaDataMap([]);
45739
45750
  this._param = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.QueryBinder().serialize();
45740
45751
  this._lockArgs = false;
45741
- this._stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0 };
45752
+ this._stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0, prepareTime: 0 };
45742
45753
  this._options = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder().getOptions();
45743
45754
  this._rowProxy = new Proxy(this, {
45744
45755
  get: (target, key) => {
@@ -45918,11 +45929,12 @@ class ECSqlReader {
45918
45929
  * @internal
45919
45930
  */
45920
45931
  async runWithRetry(request) {
45921
- const needRetry = (rs) => (rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.Partial || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.QueueFull || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.Timeout) && (rs.data === undefined || rs.data.length === 0);
45932
+ const needRetry = (rs) => (rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.Partial || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.QueueFull || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.Timeout || rs.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_1__.DbResponseStatus.ShuttingDown) && (rs.data === undefined || rs.data.length === 0);
45922
45933
  const updateStats = (rs) => {
45923
45934
  this._stats.backendCpuTime += rs.stats.cpuTime;
45924
45935
  this._stats.backendTotalTime += rs.stats.totalTime;
45925
45936
  this._stats.backendMemUsed += rs.stats.memUsed;
45937
+ this._stats.prepareTime += rs.stats.prepareTime;
45926
45938
  this._stats.backendRowsReturned += (rs.data === undefined) ? 0 : rs.data.length;
45927
45939
  };
45928
45940
  const execQuery = async (req) => {
@@ -85037,7 +85049,6 @@ var KeyinStatus;
85037
85049
  (function (KeyinStatus) {
85038
85050
  KeyinStatus[KeyinStatus["Dynamic"] = 0] = "Dynamic";
85039
85051
  KeyinStatus[KeyinStatus["Partial"] = 1] = "Partial";
85040
- KeyinStatus[KeyinStatus["DontUpdate"] = 2] = "DontUpdate";
85041
85052
  })(KeyinStatus || (KeyinStatus = {}));
85042
85053
  /** @internal */
85043
85054
  class AccudrawData {
@@ -85080,10 +85091,18 @@ class Flags {
85080
85091
  this.animateRotation = false;
85081
85092
  }
85082
85093
  }
85083
- /** @internal */
85094
+ /** AccuDraw value round off settings. Allows dynamic distance and angle values to be rounded to the nearest increment of the specified units value(s).
85095
+ * @public
85096
+ */
85084
85097
  class RoundOff {
85085
85098
  constructor() {
85099
+ /** Whether rounding is to be applied to the corresponding dynamic distance or angle value.
85100
+ * @note To be considered active, units must also specify at least one increment value.
85101
+ */
85086
85102
  this.active = false;
85103
+ /** Round off increment value(s), meters for distance round off, and radians for angle round off.
85104
+ * @note When multiple values are specified, rounding is based on smallest discernable value at current view zoom.
85105
+ */
85087
85106
  this.units = new Set();
85088
85107
  }
85089
85108
  }
@@ -85103,14 +85122,6 @@ class SavedState {
85103
85122
  }
85104
85123
  }
85105
85124
  /** @internal */
85106
- class SavedCoords {
85107
- constructor() {
85108
- this.nSaveValues = 0;
85109
- this.savedValues = [];
85110
- this.savedValIsAngle = [];
85111
- }
85112
- }
85113
- /** @internal */
85114
85125
  class ThreeAxes {
85115
85126
  constructor() {
85116
85127
  this.x = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.unitX();
@@ -85150,8 +85161,10 @@ class ThreeAxes {
85150
85161
  class AccuDraw {
85151
85162
  constructor() {
85152
85163
  this._currentState = CurrentState.NotEnabled;
85153
- this.compassMode = CompassMode.Rectangular; // Compass mode
85154
- this.rotationMode = RotationMode.View; // Compass rotation
85164
+ /** The current compass mode */
85165
+ this.compassMode = CompassMode.Rectangular;
85166
+ /** The current compass rotation */
85167
+ this.rotationMode = RotationMode.View;
85155
85168
  /** @internal */
85156
85169
  this.published = new AccudrawData(); // Staging area for hints
85157
85170
  /** @internal */
@@ -85170,13 +85183,16 @@ class AccuDraw {
85170
85183
  this._angleRoundOff = new RoundOff(); // angle round off enabled and unit
85171
85184
  /** @internal */
85172
85185
  this.flags = new Flags(); // current state flags
85173
- this._fieldLocked = []; // locked state of fields
85174
- this._keyinStatus = []; // state of input field
85186
+ this._fieldLocked = [false, false, false, false, false]; // locked state of fields
85187
+ this._keyinStatus = [KeyinStatus.Dynamic, KeyinStatus.Dynamic, KeyinStatus.Dynamic, KeyinStatus.Dynamic, KeyinStatus.Dynamic]; // state of input field
85175
85188
  /** @internal */
85176
85189
  this.savedStateViewTool = new SavedState(); // Restore point for shortcuts/tools...
85177
85190
  /** @internal */
85178
85191
  this.savedStateInputCollector = new SavedState(); // Restore point for shortcuts/tools...
85179
- this._savedCoords = new SavedCoords(); // History of previous angles/distances...
85192
+ this._savedDistances = []; // History of previous distances...
85193
+ this._savedAngles = []; // History of previous angles...
85194
+ this._savedDistanceIndex = -1; // Current saved distance index for choosing next/previous value...
85195
+ this._savedAngleIndex = -1; // Current saved distance index for choosing next/previous value...
85180
85196
  /** @internal */
85181
85197
  this.baseAxes = new ThreeAxes(); // Used for "context" base rotation to hold arbitrary rotation w/o needing to change ACS...
85182
85198
  /** @internal */
@@ -85224,15 +85240,23 @@ class AccuDraw {
85224
85240
  this._frameColorNoFocus = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorByName.darkGrey);
85225
85241
  /** @internal */
85226
85242
  this._fillColorNoFocus = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorByName.lightGrey);
85227
- // User Preference Settings...
85243
+ /** When true improve behavior for +/- input when cursor switches side and try to automatically manage focus */
85228
85244
  this.smartKeyin = true;
85245
+ /** When true the compass follows the origin hint as opposed to remaining at a fixed location */
85229
85246
  this.floatingOrigin = true;
85247
+ /** When true the z input field will remain locked with it's current value after a data button */
85230
85248
  this.stickyZLock = false;
85249
+ /** When true the compass is always active and on screen instead of following the current tools request to activate */
85231
85250
  this.alwaysShowCompass = false;
85251
+ /** When true all tool hints are applied as opposed to only selected hints */
85232
85252
  this.contextSensitive = true;
85253
+ /** When true the current point is adjusted to the x and y axes when within a close tolerance */
85233
85254
  this.axisIndexing = true;
85255
+ /** When true the current point is adjusted to the last locked distance value when within a close tolerance */
85234
85256
  this.distanceIndexing = true;
85257
+ /** When true locking the angle also moves focus to the angle input field */
85235
85258
  this.autoFocusFields = true;
85259
+ /** When true fully specifying a point by entering both distance and angle in polar mode or XY[Z] in rectangular mode, the point is automatically accepted */
85236
85260
  this.autoPointPlacement = false;
85237
85261
  }
85238
85262
  /** Current AccuDraw state */
@@ -85245,6 +85269,10 @@ class AccuDraw {
85245
85269
  if (wasActive !== this.isActive)
85246
85270
  this.onCompassDisplayChange(wasActive ? "hide" : "show");
85247
85271
  }
85272
+ /** Get distance round off settings */
85273
+ get distanceRoundOff() { return this._distanceRoundOff; }
85274
+ /** Get angle round off settings */
85275
+ get angleRoundOff() { return this._angleRoundOff; }
85248
85276
  /** @internal */
85249
85277
  onInitialized() { this.enableForSession(); }
85250
85278
  /** @internal */
@@ -85254,16 +85282,26 @@ class AccuDraw {
85254
85282
  _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.createRows(this.axes.x, this.axes.y, this.axes.z, rMatrix);
85255
85283
  return rMatrix;
85256
85284
  }
85257
- get isActive() { return CurrentState.Active === this.currentState; }
85285
+ /** When true AccuDraw is enabled by the application and can be used by interactive tools */
85258
85286
  get isEnabled() { return (this.currentState > CurrentState.NotEnabled); }
85287
+ /** When true the compass is displayed and adjusting input points for the current interactive tool */
85288
+ get isActive() { return CurrentState.Active === this.currentState; }
85289
+ /** When true the compass is not displayed or adjusting points, but it can be automatically activated by the current interactive tool or via shortcuts */
85259
85290
  get isInactive() { return (CurrentState.Inactive === this.currentState); }
85291
+ /** When true the compass is not displayed or adjusting points, the current interactive tool has disabled automatic activation, but can still be enabled via shortcuts */
85260
85292
  get isDeactivated() { return (CurrentState.Deactivated === this.currentState); }
85261
85293
  /** Get the current lock state for the supplied input field */
85262
85294
  getFieldLock(index) { return this._fieldLocked[index]; }
85263
85295
  /** @internal */
85264
85296
  getKeyinStatus(index) { return this._keyinStatus[index]; }
85265
- /** Implement this method to set focus to the AccuDraw UI. */
85297
+ /** Get the current keyin status for the supplied input field */
85298
+ isDynamicKeyinStatus(index) { return KeyinStatus.Dynamic === this.getKeyinStatus(index); }
85299
+ /** Get whether AccuDraw currently has input focus */
85300
+ get hasInputFocus() { return true; }
85301
+ /** Called to request input focus be set to AccuDraw. Focus is managed by AccuDraw UI. */
85266
85302
  grabInputFocus() { }
85303
+ /** Get default focus item for the current compass mode */
85304
+ defaultFocusItem() { return (CompassMode.Polar === this.compassMode ? ItemField.DIST_Item : this.newFocus); }
85267
85305
  /** @internal */
85268
85306
  activate() {
85269
85307
  // Upgrade state to inactive so upgradeToActiveState knows it is ok to move to active...
@@ -85301,11 +85339,14 @@ class AccuDraw {
85301
85339
  }
85302
85340
  /** @internal */
85303
85341
  setKeyinStatus(index, status) {
85342
+ if (status === this._keyinStatus[index])
85343
+ return;
85304
85344
  this._keyinStatus[index] = status;
85305
85345
  if (KeyinStatus.Dynamic !== status)
85306
85346
  this.dontMoveFocus = true;
85307
85347
  if (KeyinStatus.Partial === status)
85308
85348
  this._threshold = Math.abs(ItemField.X_Item === index ? this._rawDelta.y : this._rawDelta.x) + this._tolerance;
85349
+ this.onFieldKeyinStatusChange(index);
85309
85350
  }
85310
85351
  needsRefresh(vp) {
85311
85352
  if (!this.isEnabled || this.isDeactivated)
@@ -85701,12 +85742,22 @@ class AccuDraw {
85701
85742
  // viewport -> SetAnimator(* animator);
85702
85743
  // animator -> ChangeOfRotation(Matrix3d:: FromColumnVectors(oldRotation[0], oldRotation[1], oldRotation[2]));
85703
85744
  }
85704
- /** @internal */
85745
+ /**
85746
+ * Enable AccuDraw so that it can be used by interactive tools.
85747
+ * This method is public to allow applications to provide a user interface to enable/disable AccuDraw.
85748
+ * @note Should not be called by interactive tools, those should use [[AccuDrawHintBuilder]]. AccuDraw is enabled for applications by default.
85749
+ * @see [[disableForSession]]
85750
+ */
85705
85751
  enableForSession() {
85706
85752
  if (CurrentState.NotEnabled === this.currentState)
85707
85753
  this.currentState = CurrentState.Inactive;
85708
85754
  }
85709
- /** @internal */
85755
+ /**
85756
+ * Disable AccuDraw so that it can not be used by interactive tools.
85757
+ * This method is public to allow applications to provide a user interface to enable/disable AccuDraw.
85758
+ * @note Should not be called by interactive tools, those should use [[AccuDrawHintBuilder]]. AccuDraw is enabled for applications by default.
85759
+ * @see [[enableForSession]]
85760
+ */
85710
85761
  disableForSession() {
85711
85762
  this.currentState = CurrentState.NotEnabled;
85712
85763
  this.flags.redrawCompass = true; // Make sure decorators are called so we don't draw (i.e. erase AccuDraw compass)
@@ -85806,31 +85857,72 @@ class AccuDraw {
85806
85857
  updateVector(angle) {
85807
85858
  this.vector.set(Math.cos(angle), Math.sin(angle), 0.0);
85808
85859
  const rMatrix = this.getRotation();
85809
- rMatrix.multiplyTransposeVector(this.vector);
85860
+ rMatrix.multiplyTransposeVectorInPlace(this.vector);
85810
85861
  }
85811
85862
  /** Allow the AccuDraw user interface to supply the distance parser */
85812
85863
  getLengthParser() {
85813
85864
  return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findParserSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_12__.QuantityType.Length);
85814
85865
  }
85866
+ /** Allow the AccuDraw user interface to supply the distance parser */
85867
+ getLengthFormatter() {
85868
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_12__.QuantityType.Length);
85869
+ }
85815
85870
  stringToDistance(str) {
85816
85871
  const parserSpec = this.getLengthParser();
85817
85872
  if (parserSpec)
85818
85873
  return parserSpec.parseToQuantityValue(str);
85819
85874
  return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_13__.ParseError.InvalidParserSpec };
85820
85875
  }
85876
+ stringFromDistance(distance) {
85877
+ const formatterSpec = this.getLengthFormatter();
85878
+ let formattedValue = distance.toString();
85879
+ if (formatterSpec)
85880
+ formattedValue = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(distance, formatterSpec);
85881
+ return formattedValue;
85882
+ }
85821
85883
  /** Allow the AccuDraw user interface to specify bearing */
85822
- get isBearingMode() { return false; }
85884
+ get isBearingMode() { return this.getAngleParser()?.format.type === _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_13__.FormatType.Bearing; }
85885
+ /** Allow the AccuDraw user interface to specify bearing directions are always in xy plane */
85886
+ get bearingFixedToPlane2d() { return this.flags.bearingFixToPlane2D; }
85887
+ set bearingFixedToPlane2d(enable) { this.flags.bearingFixToPlane2D = enable; }
85823
85888
  /** Allow the AccuDraw user interface to supply the angle/direction parser */
85824
85889
  getAngleParser() {
85825
- // TODO: Use QuantityType.Angle when isBearingMode=false and "Bearing" for isBearingMode=true.
85826
85890
  return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findParserSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_12__.QuantityType.Angle);
85827
85891
  }
85892
+ /** Allow the AccuDraw user interface to supply the angle/direction formatter */
85893
+ getAngleFormatter() {
85894
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_12__.QuantityType.Angle);
85895
+ }
85828
85896
  stringToAngle(inString) {
85829
85897
  const parserSpec = this.getAngleParser();
85830
85898
  if (parserSpec)
85831
85899
  return parserSpec.parseToQuantityValue(inString);
85832
85900
  return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_13__.ParseError.InvalidParserSpec };
85833
85901
  }
85902
+ stringFromAngle(angle) {
85903
+ if (this.isBearingMode && this.flags.bearingFixToPlane2D) {
85904
+ const point = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(this.axes.x.x, this.axes.x.y, 0.0);
85905
+ point.normalizeInPlace();
85906
+ let adjustment = Math.acos(point.x);
85907
+ if (point.y < 0.0)
85908
+ adjustment = -adjustment;
85909
+ angle += adjustment;
85910
+ }
85911
+ const formatterSpec = this.getAngleFormatter();
85912
+ let formattedValue = angle.toString();
85913
+ if (formatterSpec)
85914
+ formattedValue = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(angle, formatterSpec);
85915
+ return formattedValue;
85916
+ }
85917
+ /** Can be called by sub-classes to get a formatted value to display for an AccuDraw input field
85918
+ * @see [[onFieldValueChange]]
85919
+ */
85920
+ getFormattedValueByIndex(index) {
85921
+ const value = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.getValueByIndex(index);
85922
+ if (ItemField.ANGLE_Item === index)
85923
+ return this.stringFromAngle(value);
85924
+ return this.stringFromDistance(value);
85925
+ }
85834
85926
  updateFieldValue(index, input) {
85835
85927
  if (input.length === 0)
85836
85928
  return _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyStatus.ERROR;
@@ -85894,7 +85986,8 @@ class AccuDraw {
85894
85986
  }
85895
85987
  /** @internal */
85896
85988
  unlockAllFields() {
85897
- this.locked = 0;
85989
+ this.locked = LockedStates.NONE_LOCKED;
85990
+ ;
85898
85991
  if (CompassMode.Polar === this.compassMode) {
85899
85992
  if (this._fieldLocked[ItemField.DIST_Item])
85900
85993
  this.setFieldLock(ItemField.DIST_Item, false);
@@ -85972,17 +86065,45 @@ class AccuDraw {
85972
86065
  return true;
85973
86066
  return (!_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.gridLock);
85974
86067
  }
86068
+ /** Call from an AccuDraw UI event to check if key is valid for updating the input field value. */
86069
+ itemFieldInputIsValid(key, item) {
86070
+ if (1 !== key.length)
86071
+ return false;
86072
+ switch (key) {
86073
+ case ".":
86074
+ case ",":
86075
+ return true;
86076
+ case "'": // feet/minutes...
86077
+ case "\"": // inches/seconds...
86078
+ return true;
86079
+ case "°": // degrees...
86080
+ return (ItemField.ANGLE_Item === item); // Allowed for angle input...
86081
+ case "N":
86082
+ case "S":
86083
+ case "E":
86084
+ case "W":
86085
+ case "n":
86086
+ case "s":
86087
+ case "e":
86088
+ case "w":
86089
+ return (ItemField.ANGLE_Item === item && this.isBearingMode); // Allowed for bearing direction input, trumps shortcuts...
86090
+ }
86091
+ if (!Number.isNaN(parseInt(key, 10)))
86092
+ return true; // Accept numeric input...
86093
+ if (key.toLowerCase() !== key.toUpperCase())
86094
+ return false; // Treat unhandled letters as potential shortcuts...
86095
+ // Let parser deal with anything else, like +-/*, etc.
86096
+ return true;
86097
+ }
85975
86098
  /** Call from an AccuDraw UI event to sync the supplied input field value */
85976
86099
  async processFieldInput(index, input, synchText) {
85977
86100
  if (_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyStatus.SUCCESS !== this.updateFieldValue(index, input)) {
85978
- const saveKeyinStatus = this._keyinStatus[index]; // Don't want this to change when entering '.', etc.
85979
- this.updateFieldLock(index, false);
85980
- this._keyinStatus[index] = saveKeyinStatus;
86101
+ this._unlockFieldInternal(index); // Don't want keyin status to change when entering '.', etc.
85981
86102
  return;
85982
86103
  }
85983
86104
  switch (index) {
85984
86105
  case ItemField.DIST_Item:
85985
- this.distanceLock(synchText, true);
86106
+ this.distanceLock(synchText, false); // Don't save distance here, partial input...
85986
86107
  await this.doAutoPoint(index, CompassMode.Polar);
85987
86108
  break;
85988
86109
  case ItemField.ANGLE_Item:
@@ -86013,30 +86134,28 @@ class AccuDraw {
86013
86134
  }
86014
86135
  this.refreshDecorationsAndDynamics();
86015
86136
  }
86016
- /** @internal */
86017
- updateFieldLock(index, locked) {
86018
- if (locked) {
86019
- if (!this._fieldLocked[index]) {
86020
- this.setFieldLock(index, true);
86021
- switch (index) {
86022
- case ItemField.DIST_Item:
86023
- this.distanceLock(true, false);
86024
- break;
86025
- case ItemField.ANGLE_Item:
86026
- this.angleLock();
86027
- break;
86028
- case ItemField.X_Item:
86029
- this.locked |= LockedStates.X_BM;
86030
- break;
86031
- case ItemField.Y_Item:
86032
- this.locked |= LockedStates.Y_BM;
86033
- break;
86034
- case ItemField.Z_Item:
86035
- break;
86036
- }
86037
- }
86137
+ _lockFieldInternal(index) {
86138
+ if (this._fieldLocked[index])
86038
86139
  return;
86140
+ this.setFieldLock(index, true);
86141
+ switch (index) {
86142
+ case ItemField.DIST_Item:
86143
+ this.distanceLock(true, false);
86144
+ break;
86145
+ case ItemField.ANGLE_Item:
86146
+ this.angleLock();
86147
+ break;
86148
+ case ItemField.X_Item:
86149
+ this.locked |= LockedStates.X_BM;
86150
+ break;
86151
+ case ItemField.Y_Item:
86152
+ this.locked |= LockedStates.Y_BM;
86153
+ break;
86154
+ case ItemField.Z_Item:
86155
+ break;
86039
86156
  }
86157
+ }
86158
+ _unlockFieldInternal(index) {
86040
86159
  switch (index) {
86041
86160
  case ItemField.DIST_Item:
86042
86161
  this.locked &= ~LockedStates.DIST_BM;
@@ -86053,6 +86172,14 @@ class AccuDraw {
86053
86172
  }
86054
86173
  if (index !== ItemField.Z_Item || !this.stickyZLock)
86055
86174
  this.setFieldLock(index, false);
86175
+ }
86176
+ /** @internal */
86177
+ updateFieldLock(index, locked) {
86178
+ if (locked) {
86179
+ this._lockFieldInternal(index);
86180
+ return;
86181
+ }
86182
+ this._unlockFieldInternal(index);
86056
86183
  this.setKeyinStatus(index, KeyinStatus.Dynamic);
86057
86184
  }
86058
86185
  /** @internal */
@@ -86195,35 +86322,119 @@ class AccuDraw {
86195
86322
  else {
86196
86323
  this.locked &= ~LockedStates.ANGLE_BM;
86197
86324
  this.saveCoordinate(ItemField.ANGLE_Item, this._angle);
86325
+ this.setKeyinStatus(ItemField.ANGLE_Item, KeyinStatus.Dynamic);
86326
+ }
86327
+ }
86328
+ saveAngle(value) {
86329
+ if (_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(value, 0.0) || _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(Math.abs(value), Math.PI) || _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(Math.abs(value), (Math.PI / 2.0)))
86330
+ return; // Don't accept 0, 90, -90, 180 and -180 degrees...
86331
+ const foundIndex = this._savedAngles.findIndex(angle => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(angle, value));
86332
+ if (-1 !== foundIndex) {
86333
+ this._savedAngleIndex = foundIndex; // Set index to existing entry with matching value...
86334
+ return;
86198
86335
  }
86336
+ this._savedAngleIndex++;
86337
+ if (this._savedAngleIndex >= 10 /* Constants.MAX_SAVED_VALUES */)
86338
+ this._savedAngleIndex = 0;
86339
+ this._savedAngles[this._savedAngleIndex] = value;
86340
+ }
86341
+ saveDistance(value) {
86342
+ if (_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(value, 0.0))
86343
+ return; // Don't accept zero or nearly zero...
86344
+ value = Math.abs(value); // Only save positive distance...
86345
+ const foundIndex = this._savedDistances.findIndex(distance => _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isAlmostEqualNumber(distance, value));
86346
+ if (-1 !== foundIndex) {
86347
+ this._savedDistanceIndex = foundIndex; // Set index to existing entry with matching value...
86348
+ return;
86349
+ }
86350
+ this._savedDistanceIndex++;
86351
+ if (this._savedDistanceIndex >= 10 /* Constants.MAX_SAVED_VALUES */)
86352
+ this._savedDistanceIndex = 0;
86353
+ this._savedDistances[this._savedDistanceIndex] = value;
86354
+ this._lastDistance = value;
86199
86355
  }
86200
86356
  /** @internal */
86201
86357
  saveCoordinate(index, value) {
86202
- const isAngle = (ItemField.ANGLE_Item === index);
86203
- let currIndex = this._savedCoords.nSaveValues + 1;
86204
- if (currIndex >= 20 /* Constants.MAX_SAVED_VALUES */)
86205
- currIndex = 0;
86206
- if (this._savedCoords.savedValues[this._savedCoords.nSaveValues] === value && this._savedCoords.savedValIsAngle[this._savedCoords.nSaveValues] === isAngle)
86207
- return;
86208
- if (isAngle) {
86209
- // don't accept 0, 90, -90, and 180 degrees
86210
- if (value === 0.0 || value === Math.PI || value === (Math.PI / 2.0) || value === -Math.PI)
86211
- return;
86358
+ if (ItemField.ANGLE_Item === index)
86359
+ this.saveAngle(value);
86360
+ else
86361
+ this.saveDistance(value);
86362
+ }
86363
+ getSavedAngle(next) {
86364
+ if (-1 === this._savedAngleIndex || 0 === this._savedAngles.length)
86365
+ return undefined;
86366
+ const value = this._savedAngles[this._savedAngleIndex];
86367
+ if (next) {
86368
+ this._savedAngleIndex++;
86369
+ if (this._savedAngleIndex >= this._savedAngles.length)
86370
+ this._savedAngleIndex = 0;
86212
86371
  }
86213
86372
  else {
86214
- // don't accept zero
86215
- value = Math.abs(value);
86216
- if (value < 1e-12 /* Constants.SMALL_ANGLE */)
86217
- return;
86373
+ this._savedAngleIndex--;
86374
+ if (this._savedAngleIndex < 0)
86375
+ this._savedAngleIndex = this._savedAngles.length - 1;
86376
+ }
86377
+ return value;
86378
+ }
86379
+ getSavedDistance(next) {
86380
+ if (-1 === this._savedDistanceIndex || 0 === this._savedDistances.length)
86381
+ return undefined;
86382
+ const value = this._savedDistances[this._savedDistanceIndex];
86383
+ if (next) {
86384
+ this._savedDistanceIndex++;
86385
+ if (this._savedDistanceIndex >= this._savedDistances.length)
86386
+ this._savedDistanceIndex = 0;
86387
+ }
86388
+ else {
86389
+ this._savedDistanceIndex--;
86390
+ if (this._savedDistanceIndex < 0)
86391
+ this._savedDistanceIndex = this._savedDistances.length - 1;
86218
86392
  }
86219
- this._savedCoords.savedValues[currIndex] = value;
86220
- this._savedCoords.savedValIsAngle[currIndex] = isAngle;
86221
- this._savedCoords.nSaveValues = currIndex;
86393
+ return value;
86394
+ }
86395
+ /** @internal */
86396
+ getSavedValue(index, next) {
86397
+ const isAngle = (ItemField.ANGLE_Item === index);
86398
+ const savedValue = (isAngle ? this.getSavedAngle(next) : this.getSavedDistance(next));
86399
+ if (undefined === savedValue)
86400
+ return;
86222
86401
  if (!isAngle)
86223
- this._lastDistance = value;
86402
+ this._lastDistance = savedValue;
86403
+ const currValue = this.getValueByIndex(index);
86404
+ this.setValueByIndex(index, currValue < 0.0 ? -savedValue : savedValue);
86405
+ switch (index) {
86406
+ case ItemField.X_Item:
86407
+ this.setFieldLock(ItemField.X_Item, true);
86408
+ this.onFieldValueChange(ItemField.X_Item);
86409
+ this.locked |= LockedStates.X_BM;
86410
+ break;
86411
+ case ItemField.Y_Item:
86412
+ this.setFieldLock(ItemField.Y_Item, true);
86413
+ this.onFieldValueChange(ItemField.Y_Item);
86414
+ this.locked |= LockedStates.Y_BM;
86415
+ break;
86416
+ case ItemField.Z_Item:
86417
+ this.setFieldLock(ItemField.Z_Item, true);
86418
+ this.onFieldValueChange(ItemField.Z_Item);
86419
+ break;
86420
+ case ItemField.DIST_Item:
86421
+ this.distanceLock(true, false);
86422
+ break;
86423
+ case ItemField.ANGLE_Item:
86424
+ this.locked &= ~LockedStates.XY_BM;
86425
+ this.updateVector(this._angle);
86426
+ this.angleLock();
86427
+ break;
86428
+ }
86429
+ }
86430
+ /** @internal */
86431
+ clearSavedValues() {
86432
+ this._savedDistances.length = this._savedAngles.length = 0;
86433
+ this._savedDistanceIndex = this._savedAngleIndex = -1;
86224
86434
  }
86225
86435
  /** @internal */
86226
86436
  changeCompassMode(animate = false) {
86437
+ this.unlockAllFields(); // Clear locks for the current mode and send change notifications...
86227
86438
  this.setCompassMode(CompassMode.Polar === this.compassMode ? CompassMode.Rectangular : CompassMode.Polar);
86228
86439
  const viewport = this.currentView;
86229
86440
  if (!animate || !viewport)
@@ -86803,9 +87014,9 @@ class AccuDraw {
86803
87014
  onFieldLockChange(_index) { }
86804
87015
  /** Called after input field value changes */
86805
87016
  onFieldValueChange(_index) { }
86806
- /** Whether AccuDraw currently has input focus */
86807
- get hasInputFocus() { return true; }
86808
- /** Set focus to the specified input field */
87017
+ /** Called after input field keyin status changes */
87018
+ onFieldKeyinStatusChange(_index) { }
87019
+ /** Called to request focus change to the specified input field */
86809
87020
  setFocusItem(_index) { }
86810
87021
  static getMinPolarMag(origin) {
86811
87022
  return (1.0e-12 * (1.0 + origin.magnitude()));
@@ -87339,9 +87550,35 @@ class AccuDraw {
87339
87550
  onBeginDynamics() { return this.upgradeToActiveState(); }
87340
87551
  /** @internal */
87341
87552
  onEndDynamics() { return this.downgradeInactiveState(); }
87553
+ /** Can be called by sub-classes as the default implementation of onMotion.
87554
+ * @see [[onMotion]]
87555
+ * @note Input fields are expected to call [[AccuDrawShortcuts.itemFieldNewInput]] when the user enters a value that is not a shortcut
87556
+ * and call [[AccuDrawShortcuts.itemFieldCompletedInput]] when a value is accepted, such as when focusing out of the field. This is
87557
+ * required for processMotion to correctly handle updating dynamic field values to reflect the current cursor location.
87558
+ */
87559
+ processMotion() {
87560
+ if (this.flags.dialogNeedsUpdate || !this.isActive) {
87561
+ if (this.isActive && this.smartKeyin) {
87562
+ // NOTE: fixPointRectangular sets newFocus to either x or y based on which axis is closer to the input point...
87563
+ if (CompassMode.Rectangular === this.compassMode && !this.dontMoveFocus && !this.getFieldLock(this.newFocus) && this.hasInputFocus)
87564
+ this.setFocusItem(this.newFocus);
87565
+ }
87566
+ const sendDynamicFieldValueChange = (item) => {
87567
+ if (KeyinStatus.Dynamic === this.getKeyinStatus(item))
87568
+ this.onFieldValueChange(item);
87569
+ };
87570
+ // NOTE: Shows the current deltas for rectangular mode when active and current coordinate when not active...
87571
+ sendDynamicFieldValueChange(ItemField.X_Item);
87572
+ sendDynamicFieldValueChange(ItemField.Y_Item);
87573
+ sendDynamicFieldValueChange(ItemField.Z_Item);
87574
+ sendDynamicFieldValueChange(ItemField.ANGLE_Item);
87575
+ sendDynamicFieldValueChange(ItemField.DIST_Item);
87576
+ }
87577
+ }
87342
87578
  /** Implemented by sub-classes to update ui fields to show current deltas or coordinates when inactive.
87343
87579
  * Should also choose active x or y input field in rectangular mode based on cursor position when
87344
87580
  * axis isn't locked to support "smart lock".
87581
+ * @see [[processMotion]]
87345
87582
  */
87346
87583
  onMotion(_ev) { }
87347
87584
  /** @internal */
@@ -87745,6 +87982,13 @@ class AccuDrawHintBuilder {
87745
87982
  static get isEnabled() { return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.isEnabled; }
87746
87983
  /** Whether AccuDraw compass is currently displayed and points are being adjusted */
87747
87984
  static get isActive() { return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.isActive; }
87985
+ /**
87986
+ * Immediately process pending hints and update tool dynamics using the adjusted point when not called from a button down event.
87987
+ * @note Provided to help with exceptions cases, such as starting an InputCollector from the active tool's drag event, that are not handled by normal hint processing.
87988
+ * A typical interactive tool should not call this method and should only be calling sendHints.
87989
+ * @see [[sendHints]]
87990
+ */
87991
+ static processHintsImmediate() { return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.refreshDecorationsAndDynamics(); }
87748
87992
  /**
87749
87993
  * Provide hints to AccuDraw using the current builder state.
87750
87994
  * @return true if hints were successfully sent.
@@ -118227,6 +118471,7 @@ __webpack_require__.r(__webpack_exports__);
118227
118471
  /* harmony export */ "AccuDrawSetOriginTool": () => (/* reexport safe */ _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__.AccuDrawSetOriginTool),
118228
118472
  /* harmony export */ "AccuDrawShortcuts": () => (/* reexport safe */ _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__.AccuDrawShortcuts),
118229
118473
  /* harmony export */ "AccuDrawSuspendToggleTool": () => (/* reexport safe */ _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__.AccuDrawSuspendToggleTool),
118474
+ /* harmony export */ "AccuDrawViewportUI": () => (/* reexport safe */ _tools_AccuDrawViewportUI__WEBPACK_IMPORTED_MODULE_106__.AccuDrawViewportUI),
118230
118475
  /* harmony export */ "AccuSnap": () => (/* reexport safe */ _AccuSnap__WEBPACK_IMPORTED_MODULE_1__.AccuSnap),
118231
118476
  /* harmony export */ "AccudrawData": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.AccudrawData),
118232
118477
  /* harmony export */ "ActivityMessageDetails": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.ActivityMessageDetails),
@@ -118235,7 +118480,7 @@ __webpack_require__.r(__webpack_exports__);
118235
118480
  /* harmony export */ "AngleDescription": () => (/* reexport safe */ _properties_AngleDescription__WEBPACK_IMPORTED_MODULE_68__.AngleDescription),
118236
118481
  /* harmony export */ "AnimatedTreeReference": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.AnimatedTreeReference),
118237
118482
  /* harmony export */ "AnimationBranchStates": () => (/* reexport safe */ _render_GraphicBranch__WEBPACK_IMPORTED_MODULE_81__.AnimationBranchStates),
118238
- /* harmony export */ "AnimationNodeId": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_126__.AnimationNodeId),
118483
+ /* harmony export */ "AnimationNodeId": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_127__.AnimationNodeId),
118239
118484
  /* harmony export */ "ArcGISIdentifyRequestUrl": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ArcGISIdentifyRequestUrl),
118240
118485
  /* harmony export */ "ArcGISImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ArcGISImageryProvider),
118241
118486
  /* harmony export */ "ArcGISMapLayerImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ArcGISMapLayerImageryProvider),
@@ -118249,15 +118494,15 @@ __webpack_require__.r(__webpack_exports__);
118249
118494
  /* harmony export */ "AuxCoordSystemState": () => (/* reexport safe */ _AuxCoordSys__WEBPACK_IMPORTED_MODULE_2__.AuxCoordSystemState),
118250
118495
  /* harmony export */ "AzureMapsLayerImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.AzureMapsLayerImageryProvider),
118251
118496
  /* harmony export */ "B3dmReader": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.B3dmReader),
118252
- /* harmony export */ "BackgroundMapGeometry": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_120__.BackgroundMapGeometry),
118497
+ /* harmony export */ "BackgroundMapGeometry": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_121__.BackgroundMapGeometry),
118253
118498
  /* harmony export */ "BaseUnitFormattingSettingsProvider": () => (/* reexport safe */ _quantity_formatting_BaseUnitFormattingSettingsProvider__WEBPACK_IMPORTED_MODULE_72__.BaseUnitFormattingSettingsProvider),
118254
118499
  /* harmony export */ "BatchedTileIdMap": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.BatchedTileIdMap),
118255
- /* harmony export */ "BeButton": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeButton),
118256
- /* harmony export */ "BeButtonEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeButtonEvent),
118257
- /* harmony export */ "BeButtonState": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeButtonState),
118258
- /* harmony export */ "BeModifierKeys": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeModifierKeys),
118259
- /* harmony export */ "BeTouchEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeTouchEvent),
118260
- /* harmony export */ "BeWheelEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.BeWheelEvent),
118500
+ /* harmony export */ "BeButton": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeButton),
118501
+ /* harmony export */ "BeButtonEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeButtonEvent),
118502
+ /* harmony export */ "BeButtonState": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeButtonState),
118503
+ /* harmony export */ "BeModifierKeys": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeModifierKeys),
118504
+ /* harmony export */ "BeTouchEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeTouchEvent),
118505
+ /* harmony export */ "BeWheelEvent": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.BeWheelEvent),
118261
118506
  /* harmony export */ "BingElevationProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.BingElevationProvider),
118262
118507
  /* harmony export */ "BingLocationProvider": () => (/* reexport safe */ _BingLocation__WEBPACK_IMPORTED_MODULE_3__.BingLocationProvider),
118263
118508
  /* harmony export */ "BingMapsImageryLayerProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.BingMapsImageryLayerProvider),
@@ -118271,25 +118516,25 @@ __webpack_require__.r(__webpack_exports__);
118271
118516
  /* harmony export */ "ChangeFlag": () => (/* reexport safe */ _ChangeFlags__WEBPACK_IMPORTED_MODULE_7__.ChangeFlag),
118272
118517
  /* harmony export */ "ChangeFlags": () => (/* reexport safe */ _ChangeFlags__WEBPACK_IMPORTED_MODULE_7__.ChangeFlags),
118273
118518
  /* harmony export */ "CheckpointConnection": () => (/* reexport safe */ _CheckpointConnection__WEBPACK_IMPORTED_MODULE_8__.CheckpointConnection),
118274
- /* harmony export */ "ClipEventType": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ClipEventType),
118519
+ /* harmony export */ "ClipEventType": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ClipEventType),
118275
118520
  /* harmony export */ "Cluster": () => (/* reexport safe */ _Marker__WEBPACK_IMPORTED_MODULE_36__.Cluster),
118276
118521
  /* harmony export */ "CompassMode": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.CompassMode),
118277
118522
  /* harmony export */ "ContextMode": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.ContextMode),
118278
118523
  /* harmony export */ "ContextRealityModelState": () => (/* reexport safe */ _ContextRealityModelState__WEBPACK_IMPORTED_MODULE_10__.ContextRealityModelState),
118279
118524
  /* harmony export */ "ContextRotationId": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.ContextRotationId),
118280
118525
  /* harmony export */ "ContextShareProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ContextShareProvider),
118281
- /* harmony export */ "CoordSource": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.CoordSource),
118526
+ /* harmony export */ "CoordSource": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.CoordSource),
118282
118527
  /* harmony export */ "CoordSystem": () => (/* reexport safe */ _CoordSystem__WEBPACK_IMPORTED_MODULE_11__.CoordSystem),
118283
118528
  /* harmony export */ "CoordinateConverter": () => (/* reexport safe */ _GeoServices__WEBPACK_IMPORTED_MODULE_26__.CoordinateConverter),
118284
- /* harmony export */ "CoordinateLockOverrides": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.CoordinateLockOverrides),
118285
- /* harmony export */ "CoreTools": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.CoreTools),
118286
- /* harmony export */ "CurrentInputState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.CurrentInputState),
118529
+ /* harmony export */ "CoordinateLockOverrides": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.CoordinateLockOverrides),
118530
+ /* harmony export */ "CoreTools": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.CoreTools),
118531
+ /* harmony export */ "CurrentInputState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.CurrentInputState),
118287
118532
  /* harmony export */ "CurrentState": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.CurrentState),
118288
118533
  /* harmony export */ "DebugShaderFile": () => (/* reexport safe */ _render_RenderSystem__WEBPACK_IMPORTED_MODULE_96__.DebugShaderFile),
118289
118534
  /* harmony export */ "DecorateContext": () => (/* reexport safe */ _ViewContext__WEBPACK_IMPORTED_MODULE_56__.DecorateContext),
118290
118535
  /* harmony export */ "Decorations": () => (/* reexport safe */ _render_Decorations__WEBPACK_IMPORTED_MODULE_78__.Decorations),
118291
118536
  /* harmony export */ "DecorationsCache": () => (/* reexport safe */ _DecorationsCache__WEBPACK_IMPORTED_MODULE_12__.DecorationsCache),
118292
- /* harmony export */ "DefaultViewTouchTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.DefaultViewTouchTool),
118537
+ /* harmony export */ "DefaultViewTouchTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.DefaultViewTouchTool),
118293
118538
  /* harmony export */ "DefineACSByElementTool": () => (/* reexport safe */ _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__.DefineACSByElementTool),
118294
118539
  /* harmony export */ "DefineACSByPointsTool": () => (/* reexport safe */ _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__.DefineACSByPointsTool),
118295
118540
  /* harmony export */ "DepthPointSource": () => (/* reexport safe */ _Viewport__WEBPACK_IMPORTED_MODULE_60__.DepthPointSource),
@@ -118303,28 +118548,28 @@ __webpack_require__.r(__webpack_exports__);
118303
118548
  /* harmony export */ "DynamicIModelTile": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.DynamicIModelTile),
118304
118549
  /* harmony export */ "DynamicsContext": () => (/* reexport safe */ _ViewContext__WEBPACK_IMPORTED_MODULE_56__.DynamicsContext),
118305
118550
  /* harmony export */ "ELEMENT_MARKED_FOR_REMOVAL": () => (/* reexport safe */ _Viewport__WEBPACK_IMPORTED_MODULE_60__.ELEMENT_MARKED_FOR_REMOVAL),
118306
- /* harmony export */ "EditManipulator": () => (/* reexport safe */ _tools_EditManipulator__WEBPACK_IMPORTED_MODULE_107__.EditManipulator),
118307
- /* harmony export */ "ElementAgenda": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_108__.ElementAgenda),
118551
+ /* harmony export */ "EditManipulator": () => (/* reexport safe */ _tools_EditManipulator__WEBPACK_IMPORTED_MODULE_108__.EditManipulator),
118552
+ /* harmony export */ "ElementAgenda": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_109__.ElementAgenda),
118308
118553
  /* harmony export */ "ElementLocateManager": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.ElementLocateManager),
118309
118554
  /* harmony export */ "ElementPicker": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.ElementPicker),
118310
- /* harmony export */ "ElementSetTool": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_108__.ElementSetTool),
118555
+ /* harmony export */ "ElementSetTool": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_109__.ElementSetTool),
118311
118556
  /* harmony export */ "ElementState": () => (/* reexport safe */ _EntityState__WEBPACK_IMPORTED_MODULE_18__.ElementState),
118312
118557
  /* harmony export */ "EllipsoidTerrainProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.EllipsoidTerrainProvider),
118313
118558
  /* harmony export */ "EmphasizeElements": () => (/* reexport safe */ _EmphasizeElements__WEBPACK_IMPORTED_MODULE_17__.EmphasizeElements),
118314
118559
  /* harmony export */ "EngineeringLengthDescription": () => (/* reexport safe */ _properties_LengthDescription__WEBPACK_IMPORTED_MODULE_70__.EngineeringLengthDescription),
118315
118560
  /* harmony export */ "EntityState": () => (/* reexport safe */ _EntityState__WEBPACK_IMPORTED_MODULE_18__.EntityState),
118316
118561
  /* harmony export */ "EnvironmentDecorations": () => (/* reexport safe */ _EnvironmentDecorations__WEBPACK_IMPORTED_MODULE_19__.EnvironmentDecorations),
118317
- /* harmony export */ "EventController": () => (/* reexport safe */ _tools_EventController__WEBPACK_IMPORTED_MODULE_109__.EventController),
118318
- /* harmony export */ "EventHandled": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.EventHandled),
118562
+ /* harmony export */ "EventController": () => (/* reexport safe */ _tools_EventController__WEBPACK_IMPORTED_MODULE_110__.EventController),
118563
+ /* harmony export */ "EventHandled": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.EventHandled),
118319
118564
  /* harmony export */ "FeatureGeometryBaseRenderer": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.FeatureGeometryBaseRenderer),
118320
118565
  /* harmony export */ "FeatureGraphicsRenderer": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.FeatureGraphicsRenderer),
118321
118566
  /* harmony export */ "FeatureSymbology": () => (/* reexport safe */ _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_79__.FeatureSymbology),
118322
118567
  /* harmony export */ "FetchCloudStorage": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.FetchCloudStorage),
118323
- /* harmony export */ "FitViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.FitViewTool),
118568
+ /* harmony export */ "FitViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.FitViewTool),
118324
118569
  /* harmony export */ "Flags": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.Flags),
118325
118570
  /* harmony export */ "FlashMode": () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_21__.FlashMode),
118326
118571
  /* harmony export */ "FlashSettings": () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_21__.FlashSettings),
118327
- /* harmony export */ "FlyViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.FlyViewTool),
118572
+ /* harmony export */ "FlyViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.FlyViewTool),
118328
118573
  /* harmony export */ "FormattedQuantityDescription": () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_69__.FormattedQuantityDescription),
118329
118574
  /* harmony export */ "FrameStatsCollector": () => (/* reexport safe */ _render_FrameStats__WEBPACK_IMPORTED_MODULE_80__.FrameStatsCollector),
118330
118575
  /* harmony export */ "FrontendLoggerCategory": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.FrontendLoggerCategory),
@@ -118340,7 +118585,7 @@ __webpack_require__.r(__webpack_exports__);
118340
118585
  /* harmony export */ "GeometricModelState": () => (/* reexport safe */ _ModelState__WEBPACK_IMPORTED_MODULE_38__.GeometricModelState),
118341
118586
  /* harmony export */ "GlobeAnimator": () => (/* reexport safe */ _GlobeAnimator__WEBPACK_IMPORTED_MODULE_27__.GlobeAnimator),
118342
118587
  /* harmony export */ "GltfBufferData": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.GltfBufferData),
118343
- /* harmony export */ "GltfDataType": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_126__.GltfDataType),
118588
+ /* harmony export */ "GltfDataType": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_127__.GltfDataType),
118344
118589
  /* harmony export */ "GltfGraphicsReader": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.GltfGraphicsReader),
118345
118590
  /* harmony export */ "GltfMeshData": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.GltfMeshData),
118346
118591
  /* harmony export */ "GltfReader": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.GltfReader),
@@ -118371,36 +118616,36 @@ __webpack_require__.r(__webpack_exports__);
118371
118616
  /* harmony export */ "IModelTileTree": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.IModelTileTree),
118372
118617
  /* harmony export */ "ITWINJS_CORE_VERSION": () => (/* reexport safe */ _IModelApp__WEBPACK_IMPORTED_MODULE_30__.ITWINJS_CORE_VERSION),
118373
118618
  /* harmony export */ "IconSprites": () => (/* reexport safe */ _Sprites__WEBPACK_IMPORTED_MODULE_49__.IconSprites),
118374
- /* harmony export */ "IdleTool": () => (/* reexport safe */ _tools_IdleTool__WEBPACK_IMPORTED_MODULE_110__.IdleTool),
118619
+ /* harmony export */ "IdleTool": () => (/* reexport safe */ _tools_IdleTool__WEBPACK_IMPORTED_MODULE_111__.IdleTool),
118375
118620
  /* harmony export */ "ImageryMapLayerFormat": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImageryMapLayerFormat),
118376
118621
  /* harmony export */ "ImageryMapLayerTreeReference": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImageryMapLayerTreeReference),
118377
118622
  /* harmony export */ "ImageryMapTile": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImageryMapTile),
118378
118623
  /* harmony export */ "ImageryMapTileTree": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImageryMapTileTree),
118379
118624
  /* harmony export */ "ImageryTileTreeState": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImageryTileTreeState),
118380
118625
  /* harmony export */ "ImdlReader": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ImdlReader),
118381
- /* harmony export */ "InputCollector": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.InputCollector),
118382
- /* harmony export */ "InputSource": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.InputSource),
118626
+ /* harmony export */ "InputCollector": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.InputCollector),
118627
+ /* harmony export */ "InputSource": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.InputSource),
118383
118628
  /* harmony export */ "InstancedGraphicParams": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.InstancedGraphicParams),
118384
118629
  /* harmony export */ "InstancedGraphicProps": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.InstancedGraphicProps),
118385
- /* harmony export */ "InteractiveTool": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.InteractiveTool),
118630
+ /* harmony export */ "InteractiveTool": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.InteractiveTool),
118386
118631
  /* harmony export */ "IntersectDetail": () => (/* reexport safe */ _HitDetail__WEBPACK_IMPORTED_MODULE_29__.IntersectDetail),
118387
118632
  /* harmony export */ "IpcApp": () => (/* reexport safe */ _IpcApp__WEBPACK_IMPORTED_MODULE_33__.IpcApp),
118388
118633
  /* harmony export */ "ItemField": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.ItemField),
118389
- /* harmony export */ "KeyinParseError": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.KeyinParseError),
118634
+ /* harmony export */ "KeyinParseError": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.KeyinParseError),
118390
118635
  /* harmony export */ "KeyinStatus": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.KeyinStatus),
118391
118636
  /* harmony export */ "LRUTileList": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.LRUTileList),
118392
118637
  /* harmony export */ "LengthDescription": () => (/* reexport safe */ _properties_LengthDescription__WEBPACK_IMPORTED_MODULE_70__.LengthDescription),
118393
118638
  /* harmony export */ "LocalExtensionProvider": () => (/* reexport safe */ _extension_providers_LocalExtensionProvider__WEBPACK_IMPORTED_MODULE_66__.LocalExtensionProvider),
118394
118639
  /* harmony export */ "LocalUnitFormatProvider": () => (/* reexport safe */ _quantity_formatting_LocalUnitFormatProvider__WEBPACK_IMPORTED_MODULE_73__.LocalUnitFormatProvider),
118395
- /* harmony export */ "LocalhostIpcApp": () => (/* reexport safe */ _LocalhostIpcApp__WEBPACK_IMPORTED_MODULE_123__.LocalhostIpcApp),
118640
+ /* harmony export */ "LocalhostIpcApp": () => (/* reexport safe */ _LocalhostIpcApp__WEBPACK_IMPORTED_MODULE_124__.LocalhostIpcApp),
118396
118641
  /* harmony export */ "LocateAction": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.LocateAction),
118397
118642
  /* harmony export */ "LocateFilterStatus": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.LocateFilterStatus),
118398
118643
  /* harmony export */ "LocateOptions": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.LocateOptions),
118399
118644
  /* harmony export */ "LocateResponse": () => (/* reexport safe */ _ElementLocateManager__WEBPACK_IMPORTED_MODULE_16__.LocateResponse),
118400
118645
  /* harmony export */ "LockedStates": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.LockedStates),
118401
- /* harmony export */ "LookAndMoveTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.LookAndMoveTool),
118402
- /* harmony export */ "LookViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.LookViewTool),
118403
- /* harmony export */ "ManipulatorToolEvent": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.ManipulatorToolEvent),
118646
+ /* harmony export */ "LookAndMoveTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.LookAndMoveTool),
118647
+ /* harmony export */ "LookViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.LookViewTool),
118648
+ /* harmony export */ "ManipulatorToolEvent": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.ManipulatorToolEvent),
118404
118649
  /* harmony export */ "MapBoxLayerImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.MapBoxLayerImageryProvider),
118405
118650
  /* harmony export */ "MapCartoRectangle": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.MapCartoRectangle),
118406
118651
  /* harmony export */ "MapFeatureInfoRecord": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.MapFeatureInfoRecord),
@@ -118424,13 +118669,13 @@ __webpack_require__.r(__webpack_exports__);
118424
118669
  /* harmony export */ "MarginPercent": () => (/* reexport safe */ _MarginPercent__WEBPACK_IMPORTED_MODULE_35__.MarginPercent),
118425
118670
  /* harmony export */ "Marker": () => (/* reexport safe */ _Marker__WEBPACK_IMPORTED_MODULE_36__.Marker),
118426
118671
  /* harmony export */ "MarkerSet": () => (/* reexport safe */ _Marker__WEBPACK_IMPORTED_MODULE_36__.MarkerSet),
118427
- /* harmony export */ "MeasureAreaByPointsTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureAreaByPointsTool),
118428
- /* harmony export */ "MeasureAreaTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureAreaTool),
118429
- /* harmony export */ "MeasureDistanceTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureDistanceTool),
118430
- /* harmony export */ "MeasureElementTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureElementTool),
118431
- /* harmony export */ "MeasureLengthTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureLengthTool),
118432
- /* harmony export */ "MeasureLocationTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureLocationTool),
118433
- /* harmony export */ "MeasureVolumeTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__.MeasureVolumeTool),
118672
+ /* harmony export */ "MeasureAreaByPointsTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureAreaByPointsTool),
118673
+ /* harmony export */ "MeasureAreaTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureAreaTool),
118674
+ /* harmony export */ "MeasureDistanceTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureDistanceTool),
118675
+ /* harmony export */ "MeasureElementTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureElementTool),
118676
+ /* harmony export */ "MeasureLengthTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureLengthTool),
118677
+ /* harmony export */ "MeasureLocationTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureLocationTool),
118678
+ /* harmony export */ "MeasureVolumeTool": () => (/* reexport safe */ _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__.MeasureVolumeTool),
118434
118679
  /* harmony export */ "MessageBoxIconType": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.MessageBoxIconType),
118435
118680
  /* harmony export */ "MessageBoxType": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.MessageBoxType),
118436
118681
  /* harmony export */ "MessageBoxValue": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.MessageBoxValue),
@@ -118438,7 +118683,7 @@ __webpack_require__.r(__webpack_exports__);
118438
118683
  /* harmony export */ "ModelMapLayerTileTreeReference": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ModelMapLayerTileTreeReference),
118439
118684
  /* harmony export */ "ModelSelectorState": () => (/* reexport safe */ _ModelSelectorState__WEBPACK_IMPORTED_MODULE_37__.ModelSelectorState),
118440
118685
  /* harmony export */ "ModelState": () => (/* reexport safe */ _ModelState__WEBPACK_IMPORTED_MODULE_38__.ModelState),
118441
- /* harmony export */ "ModifyElementSource": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_108__.ModifyElementSource),
118686
+ /* harmony export */ "ModifyElementSource": () => (/* reexport safe */ _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_109__.ModifyElementSource),
118442
118687
  /* harmony export */ "MutableChangeFlags": () => (/* reexport safe */ _ChangeFlags__WEBPACK_IMPORTED_MODULE_7__.MutableChangeFlags),
118443
118688
  /* harmony export */ "NativeApp": () => (/* reexport safe */ _NativeApp__WEBPACK_IMPORTED_MODULE_39__.NativeApp),
118444
118689
  /* harmony export */ "NativeAppLogger": () => (/* reexport safe */ _NativeAppLogger__WEBPACK_IMPORTED_MODULE_40__.NativeAppLogger),
@@ -118458,8 +118703,8 @@ __webpack_require__.r(__webpack_exports__);
118458
118703
  /* harmony export */ "OutputMessageAlert": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.OutputMessageAlert),
118459
118704
  /* harmony export */ "OutputMessagePriority": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.OutputMessagePriority),
118460
118705
  /* harmony export */ "OutputMessageType": () => (/* reexport safe */ _NotificationManager__WEBPACK_IMPORTED_MODULE_42__.OutputMessageType),
118461
- /* harmony export */ "PanViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.PanViewTool),
118462
- /* harmony export */ "ParseAndRunResult": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.ParseAndRunResult),
118706
+ /* harmony export */ "PanViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.PanViewTool),
118707
+ /* harmony export */ "ParseAndRunResult": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.ParseAndRunResult),
118463
118708
  /* harmony export */ "ParticleCollectionBuilder": () => (/* reexport safe */ _render_ParticleCollectionBuilder__WEBPACK_IMPORTED_MODULE_86__.ParticleCollectionBuilder),
118464
118709
  /* harmony export */ "PerModelCategoryVisibility": () => (/* reexport safe */ _PerModelCategoryVisibility__WEBPACK_IMPORTED_MODULE_43__.PerModelCategoryVisibility),
118465
118710
  /* harmony export */ "PerformanceMetrics": () => (/* reexport safe */ _render_webgl_PerformanceMetrics__WEBPACK_IMPORTED_MODULE_102__.PerformanceMetrics),
@@ -118468,15 +118713,15 @@ __webpack_require__.r(__webpack_exports__);
118468
118713
  /* harmony export */ "PlanarClipMaskState": () => (/* reexport safe */ _PlanarClipMaskState__WEBPACK_IMPORTED_MODULE_44__.PlanarClipMaskState),
118469
118714
  /* harmony export */ "PlanarGridTransparency": () => (/* reexport safe */ _render_RenderSystem__WEBPACK_IMPORTED_MODULE_96__.PlanarGridTransparency),
118470
118715
  /* harmony export */ "PlanarTilePatch": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.PlanarTilePatch),
118471
- /* harmony export */ "PrimitiveTool": () => (/* reexport safe */ _tools_PrimitiveTool__WEBPACK_IMPORTED_MODULE_112__.PrimitiveTool),
118716
+ /* harmony export */ "PrimitiveTool": () => (/* reexport safe */ _tools_PrimitiveTool__WEBPACK_IMPORTED_MODULE_113__.PrimitiveTool),
118472
118717
  /* harmony export */ "PrimitiveVisibility": () => (/* reexport safe */ _render_RenderTarget__WEBPACK_IMPORTED_MODULE_97__.PrimitiveVisibility),
118473
118718
  /* harmony export */ "QuadId": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.QuadId),
118474
118719
  /* harmony export */ "QuantityFormatter": () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_71__.QuantityFormatter),
118475
118720
  /* harmony export */ "QuantityType": () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_71__.QuantityType),
118476
118721
  /* harmony export */ "ReadonlyTileUserSet": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.ReadonlyTileUserSet),
118477
- /* harmony export */ "RealityDataError": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_125__.RealityDataError),
118478
- /* harmony export */ "RealityDataSource": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_125__.RealityDataSource),
118479
- /* harmony export */ "RealityDataSourceProviderRegistry": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_125__.RealityDataSourceProviderRegistry),
118722
+ /* harmony export */ "RealityDataError": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_126__.RealityDataError),
118723
+ /* harmony export */ "RealityDataSource": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_126__.RealityDataSource),
118724
+ /* harmony export */ "RealityDataSourceProviderRegistry": () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_126__.RealityDataSourceProviderRegistry),
118480
118725
  /* harmony export */ "RealityMeshParams": () => (/* reexport safe */ _render_RealityMeshParams__WEBPACK_IMPORTED_MODULE_90__.RealityMeshParams),
118481
118726
  /* harmony export */ "RealityMeshParamsBuilder": () => (/* reexport safe */ _render_RealityMeshParams__WEBPACK_IMPORTED_MODULE_90__.RealityMeshParamsBuilder),
118482
118727
  /* harmony export */ "RealityModelTileTree": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.RealityModelTileTree),
@@ -118502,24 +118747,24 @@ __webpack_require__.r(__webpack_exports__);
118502
118747
  /* harmony export */ "RenderTarget": () => (/* reexport safe */ _render_RenderTarget__WEBPACK_IMPORTED_MODULE_97__.RenderTarget),
118503
118748
  /* harmony export */ "RenderTerrainGeometry": () => (/* reexport safe */ _render_RenderSystem__WEBPACK_IMPORTED_MODULE_96__.RenderTerrainGeometry),
118504
118749
  /* harmony export */ "RenderTextureDrape": () => (/* reexport safe */ _render_RenderSystem__WEBPACK_IMPORTED_MODULE_96__.RenderTextureDrape),
118505
- /* harmony export */ "RotateViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.RotateViewTool),
118750
+ /* harmony export */ "RotateViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.RotateViewTool),
118506
118751
  /* harmony export */ "RotationMode": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.RotationMode),
118507
118752
  /* harmony export */ "RoundOff": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.RoundOff),
118508
118753
  /* harmony export */ "SavedState": () => (/* reexport safe */ _AccuDraw__WEBPACK_IMPORTED_MODULE_0__.SavedState),
118509
118754
  /* harmony export */ "Scene": () => (/* reexport safe */ _render_Scene__WEBPACK_IMPORTED_MODULE_98__.Scene),
118510
118755
  /* harmony export */ "SceneContext": () => (/* reexport safe */ _ViewContext__WEBPACK_IMPORTED_MODULE_56__.SceneContext),
118511
118756
  /* harmony export */ "ScreenViewport": () => (/* reexport safe */ _Viewport__WEBPACK_IMPORTED_MODULE_60__.ScreenViewport),
118512
- /* harmony export */ "ScrollViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ScrollViewTool),
118757
+ /* harmony export */ "ScrollViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ScrollViewTool),
118513
118758
  /* harmony export */ "SectionDrawingModelState": () => (/* reexport safe */ _ModelState__WEBPACK_IMPORTED_MODULE_38__.SectionDrawingModelState),
118514
118759
  /* harmony export */ "SelectParent": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.SelectParent),
118515
- /* harmony export */ "SelectionMethod": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_113__.SelectionMethod),
118516
- /* harmony export */ "SelectionMode": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_113__.SelectionMode),
118517
- /* harmony export */ "SelectionProcessing": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_113__.SelectionProcessing),
118760
+ /* harmony export */ "SelectionMethod": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_114__.SelectionMethod),
118761
+ /* harmony export */ "SelectionMode": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_114__.SelectionMode),
118762
+ /* harmony export */ "SelectionProcessing": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_114__.SelectionProcessing),
118518
118763
  /* harmony export */ "SelectionSet": () => (/* reexport safe */ _SelectionSet__WEBPACK_IMPORTED_MODULE_45__.SelectionSet),
118519
118764
  /* harmony export */ "SelectionSetEventType": () => (/* reexport safe */ _SelectionSet__WEBPACK_IMPORTED_MODULE_45__.SelectionSetEventType),
118520
- /* harmony export */ "SelectionTool": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_113__.SelectionTool),
118521
- /* harmony export */ "SetupCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.SetupCameraTool),
118522
- /* harmony export */ "SetupWalkCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.SetupWalkCameraTool),
118765
+ /* harmony export */ "SelectionTool": () => (/* reexport safe */ _tools_SelectTool__WEBPACK_IMPORTED_MODULE_114__.SelectionTool),
118766
+ /* harmony export */ "SetupCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.SetupCameraTool),
118767
+ /* harmony export */ "SetupWalkCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.SetupWalkCameraTool),
118523
118768
  /* harmony export */ "SheetModelState": () => (/* reexport safe */ _ModelState__WEBPACK_IMPORTED_MODULE_38__.SheetModelState),
118524
118769
  /* harmony export */ "SheetViewState": () => (/* reexport safe */ _SheetViewState__WEBPACK_IMPORTED_MODULE_46__.SheetViewState),
118525
118770
  /* harmony export */ "SnapDetail": () => (/* reexport safe */ _HitDetail__WEBPACK_IMPORTED_MODULE_29__.SnapDetail),
@@ -118537,12 +118782,12 @@ __webpack_require__.r(__webpack_exports__);
118537
118782
  /* harmony export */ "SpriteLocation": () => (/* reexport safe */ _Sprites__WEBPACK_IMPORTED_MODULE_49__.SpriteLocation),
118538
118783
  /* harmony export */ "StandardView": () => (/* reexport safe */ _StandardView__WEBPACK_IMPORTED_MODULE_50__.StandardView),
118539
118784
  /* harmony export */ "StandardViewId": () => (/* reexport safe */ _StandardView__WEBPACK_IMPORTED_MODULE_50__.StandardViewId),
118540
- /* harmony export */ "StandardViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.StandardViewTool),
118541
- /* harmony export */ "StartOrResume": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.StartOrResume),
118785
+ /* harmony export */ "StandardViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.StandardViewTool),
118786
+ /* harmony export */ "StartOrResume": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.StartOrResume),
118542
118787
  /* harmony export */ "Storage": () => (/* reexport safe */ _NativeApp__WEBPACK_IMPORTED_MODULE_39__.Storage),
118543
118788
  /* harmony export */ "SubCategoriesCache": () => (/* reexport safe */ _SubCategoriesCache__WEBPACK_IMPORTED_MODULE_51__.SubCategoriesCache),
118544
118789
  /* harmony export */ "SurveyLengthDescription": () => (/* reexport safe */ _properties_LengthDescription__WEBPACK_IMPORTED_MODULE_70__.SurveyLengthDescription),
118545
- /* harmony export */ "SuspendedToolState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.SuspendedToolState),
118790
+ /* harmony export */ "SuspendedToolState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.SuspendedToolState),
118546
118791
  /* harmony export */ "Target": () => (/* reexport safe */ _render_webgl_Target__WEBPACK_IMPORTED_MODULE_103__.Target),
118547
118792
  /* harmony export */ "TentativeOrAccuSnap": () => (/* reexport safe */ _AccuSnap__WEBPACK_IMPORTED_MODULE_1__.TentativeOrAccuSnap),
118548
118793
  /* harmony export */ "TentativePoint": () => (/* reexport safe */ _TentativePoint__WEBPACK_IMPORTED_MODULE_52__.TentativePoint),
@@ -118577,15 +118822,15 @@ __webpack_require__.r(__webpack_exports__);
118577
118822
  /* harmony export */ "TileVisibility": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.TileVisibility),
118578
118823
  /* harmony export */ "TiledGraphicsProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.TiledGraphicsProvider),
118579
118824
  /* harmony export */ "Tiles": () => (/* reexport safe */ _Tiles__WEBPACK_IMPORTED_MODULE_53__.Tiles),
118580
- /* harmony export */ "Tool": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.Tool),
118581
- /* harmony export */ "ToolAdmin": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.ToolAdmin),
118582
- /* harmony export */ "ToolAssistance": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_117__.ToolAssistance),
118583
- /* harmony export */ "ToolAssistanceImage": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_117__.ToolAssistanceImage),
118584
- /* harmony export */ "ToolAssistanceInputMethod": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_117__.ToolAssistanceInputMethod),
118585
- /* harmony export */ "ToolRegistry": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_114__.ToolRegistry),
118586
- /* harmony export */ "ToolSettings": () => (/* reexport safe */ _tools_ToolSettings__WEBPACK_IMPORTED_MODULE_115__.ToolSettings),
118587
- /* harmony export */ "ToolSettingsState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.ToolSettingsState),
118588
- /* harmony export */ "ToolState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.ToolState),
118825
+ /* harmony export */ "Tool": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.Tool),
118826
+ /* harmony export */ "ToolAdmin": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.ToolAdmin),
118827
+ /* harmony export */ "ToolAssistance": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_118__.ToolAssistance),
118828
+ /* harmony export */ "ToolAssistanceImage": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_118__.ToolAssistanceImage),
118829
+ /* harmony export */ "ToolAssistanceInputMethod": () => (/* reexport safe */ _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_118__.ToolAssistanceInputMethod),
118830
+ /* harmony export */ "ToolRegistry": () => (/* reexport safe */ _tools_Tool__WEBPACK_IMPORTED_MODULE_115__.ToolRegistry),
118831
+ /* harmony export */ "ToolSettings": () => (/* reexport safe */ _tools_ToolSettings__WEBPACK_IMPORTED_MODULE_116__.ToolSettings),
118832
+ /* harmony export */ "ToolSettingsState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.ToolSettingsState),
118833
+ /* harmony export */ "ToolState": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.ToolState),
118589
118834
  /* harmony export */ "TouchCursor": () => (/* reexport safe */ _AccuSnap__WEBPACK_IMPORTED_MODULE_1__.TouchCursor),
118590
118835
  /* harmony export */ "TraversalChildrenDetails": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.TraversalChildrenDetails),
118591
118836
  /* harmony export */ "TraversalDetails": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.TraversalDetails),
@@ -118596,51 +118841,51 @@ __webpack_require__.r(__webpack_exports__);
118596
118841
  /* harmony export */ "UniqueTileUserSets": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.UniqueTileUserSets),
118597
118842
  /* harmony export */ "UpsampledMapTile": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.UpsampledMapTile),
118598
118843
  /* harmony export */ "VaryingType": () => (/* reexport safe */ _render_ScreenSpaceEffectBuilder__WEBPACK_IMPORTED_MODULE_99__.VaryingType),
118599
- /* harmony export */ "ViewClipByElementTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipByElementTool),
118600
- /* harmony export */ "ViewClipByPlaneTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipByPlaneTool),
118601
- /* harmony export */ "ViewClipByRangeTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipByRangeTool),
118602
- /* harmony export */ "ViewClipByShapeTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipByShapeTool),
118603
- /* harmony export */ "ViewClipClearTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipClearTool),
118604
- /* harmony export */ "ViewClipControlArrow": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipControlArrow),
118605
- /* harmony export */ "ViewClipDecoration": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipDecoration),
118606
- /* harmony export */ "ViewClipDecorationProvider": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipDecorationProvider),
118607
- /* harmony export */ "ViewClipModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipModifyTool),
118608
- /* harmony export */ "ViewClipPlanesModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipPlanesModifyTool),
118609
- /* harmony export */ "ViewClipShapeModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipShapeModifyTool),
118610
- /* harmony export */ "ViewClipTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__.ViewClipTool),
118611
- /* harmony export */ "ViewCreator2d": () => (/* reexport safe */ _ViewCreator2d__WEBPACK_IMPORTED_MODULE_121__.ViewCreator2d),
118612
- /* harmony export */ "ViewCreator3d": () => (/* reexport safe */ _ViewCreator3d__WEBPACK_IMPORTED_MODULE_122__.ViewCreator3d),
118844
+ /* harmony export */ "ViewClipByElementTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipByElementTool),
118845
+ /* harmony export */ "ViewClipByPlaneTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipByPlaneTool),
118846
+ /* harmony export */ "ViewClipByRangeTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipByRangeTool),
118847
+ /* harmony export */ "ViewClipByShapeTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipByShapeTool),
118848
+ /* harmony export */ "ViewClipClearTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipClearTool),
118849
+ /* harmony export */ "ViewClipControlArrow": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipControlArrow),
118850
+ /* harmony export */ "ViewClipDecoration": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipDecoration),
118851
+ /* harmony export */ "ViewClipDecorationProvider": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipDecorationProvider),
118852
+ /* harmony export */ "ViewClipModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipModifyTool),
118853
+ /* harmony export */ "ViewClipPlanesModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipPlanesModifyTool),
118854
+ /* harmony export */ "ViewClipShapeModifyTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipShapeModifyTool),
118855
+ /* harmony export */ "ViewClipTool": () => (/* reexport safe */ _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__.ViewClipTool),
118856
+ /* harmony export */ "ViewCreator2d": () => (/* reexport safe */ _ViewCreator2d__WEBPACK_IMPORTED_MODULE_122__.ViewCreator2d),
118857
+ /* harmony export */ "ViewCreator3d": () => (/* reexport safe */ _ViewCreator3d__WEBPACK_IMPORTED_MODULE_123__.ViewCreator3d),
118613
118858
  /* harmony export */ "ViewGlobalLocationConstants": () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_57__.ViewGlobalLocationConstants),
118614
- /* harmony export */ "ViewGlobeBirdTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewGlobeBirdTool),
118615
- /* harmony export */ "ViewGlobeIModelTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewGlobeIModelTool),
118616
- /* harmony export */ "ViewGlobeLocationTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewGlobeLocationTool),
118617
- /* harmony export */ "ViewGlobeSatelliteTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewGlobeSatelliteTool),
118618
- /* harmony export */ "ViewHandleArray": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewHandleArray),
118619
- /* harmony export */ "ViewHandleType": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewHandleType),
118859
+ /* harmony export */ "ViewGlobeBirdTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewGlobeBirdTool),
118860
+ /* harmony export */ "ViewGlobeIModelTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewGlobeIModelTool),
118861
+ /* harmony export */ "ViewGlobeLocationTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewGlobeLocationTool),
118862
+ /* harmony export */ "ViewGlobeSatelliteTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewGlobeSatelliteTool),
118863
+ /* harmony export */ "ViewHandleArray": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewHandleArray),
118864
+ /* harmony export */ "ViewHandleType": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewHandleType),
118620
118865
  /* harmony export */ "ViewManager": () => (/* reexport safe */ _ViewManager__WEBPACK_IMPORTED_MODULE_59__.ViewManager),
118621
- /* harmony export */ "ViewManip": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewManip),
118866
+ /* harmony export */ "ViewManip": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewManip),
118622
118867
  /* harmony export */ "ViewPose": () => (/* reexport safe */ _ViewPose__WEBPACK_IMPORTED_MODULE_62__.ViewPose),
118623
118868
  /* harmony export */ "ViewPose2d": () => (/* reexport safe */ _ViewPose__WEBPACK_IMPORTED_MODULE_62__.ViewPose2d),
118624
118869
  /* harmony export */ "ViewPose3d": () => (/* reexport safe */ _ViewPose__WEBPACK_IMPORTED_MODULE_62__.ViewPose3d),
118625
118870
  /* harmony export */ "ViewRect": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.ViewRect),
118626
- /* harmony export */ "ViewRedoTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewRedoTool),
118871
+ /* harmony export */ "ViewRedoTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewRedoTool),
118627
118872
  /* harmony export */ "ViewState": () => (/* reexport safe */ _ViewState__WEBPACK_IMPORTED_MODULE_63__.ViewState),
118628
118873
  /* harmony export */ "ViewState2d": () => (/* reexport safe */ _ViewState__WEBPACK_IMPORTED_MODULE_63__.ViewState2d),
118629
118874
  /* harmony export */ "ViewState3d": () => (/* reexport safe */ _ViewState__WEBPACK_IMPORTED_MODULE_63__.ViewState3d),
118630
118875
  /* harmony export */ "ViewStatus": () => (/* reexport safe */ _ViewStatus__WEBPACK_IMPORTED_MODULE_64__.ViewStatus),
118631
- /* harmony export */ "ViewToggleCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewToggleCameraTool),
118632
- /* harmony export */ "ViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewTool),
118876
+ /* harmony export */ "ViewToggleCameraTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewToggleCameraTool),
118877
+ /* harmony export */ "ViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewTool),
118633
118878
  /* harmony export */ "ViewUndoEvent": () => (/* reexport safe */ _Viewport__WEBPACK_IMPORTED_MODULE_60__.ViewUndoEvent),
118634
- /* harmony export */ "ViewUndoTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewUndoTool),
118879
+ /* harmony export */ "ViewUndoTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewUndoTool),
118635
118880
  /* harmony export */ "ViewingSpace": () => (/* reexport safe */ _ViewingSpace__WEBPACK_IMPORTED_MODULE_58__.ViewingSpace),
118636
- /* harmony export */ "ViewingToolHandle": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ViewingToolHandle),
118881
+ /* harmony export */ "ViewingToolHandle": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ViewingToolHandle),
118637
118882
  /* harmony export */ "Viewport": () => (/* reexport safe */ _Viewport__WEBPACK_IMPORTED_MODULE_60__.Viewport),
118638
- /* harmony export */ "WalkViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.WalkViewTool),
118883
+ /* harmony export */ "WalkViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.WalkViewTool),
118639
118884
  /* harmony export */ "WebMercator": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WebMercator),
118640
118885
  /* harmony export */ "WebMercatorProjection": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WebMercatorProjection),
118641
118886
  /* harmony export */ "WebMercatorTilingScheme": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WebMercatorTilingScheme),
118642
- /* harmony export */ "WheelEventProcessor": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__.WheelEventProcessor),
118643
- /* harmony export */ "WindowAreaTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.WindowAreaTool),
118887
+ /* harmony export */ "WheelEventProcessor": () => (/* reexport safe */ _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__.WheelEventProcessor),
118888
+ /* harmony export */ "WindowAreaTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.WindowAreaTool),
118644
118889
  /* harmony export */ "WmsCapabilities": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WmsCapabilities),
118645
118890
  /* harmony export */ "WmsCapability": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WmsCapability),
118646
118891
  /* harmony export */ "WmsMapLayerImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WmsMapLayerImageryProvider),
@@ -118650,15 +118895,15 @@ __webpack_require__.r(__webpack_exports__);
118650
118895
  /* harmony export */ "WmtsConstants": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WmtsConstants),
118651
118896
  /* harmony export */ "WmtsMapLayerImageryProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.WmtsMapLayerImageryProvider),
118652
118897
  /* harmony export */ "WorkerGraphicDescriptionContext": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.WorkerGraphicDescriptionContext),
118653
- /* harmony export */ "ZoomViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__.ZoomViewTool),
118654
- /* harmony export */ "_callIpcChannel": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_126__._callIpcChannel),
118898
+ /* harmony export */ "ZoomViewTool": () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__.ZoomViewTool),
118899
+ /* harmony export */ "_callIpcChannel": () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_127__._callIpcChannel),
118655
118900
  /* harmony export */ "acquireImdlDecoder": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.acquireImdlDecoder),
118656
118901
  /* harmony export */ "acquireImdlParser": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.acquireImdlParser),
118657
118902
  /* harmony export */ "addRangeGraphic": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.addRangeGraphic),
118658
118903
  /* harmony export */ "appendQueryParams": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.appendQueryParams),
118659
118904
  /* harmony export */ "areaToEyeHeight": () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_57__.areaToEyeHeight),
118660
118905
  /* harmony export */ "areaToEyeHeightFromGcs": () => (/* reexport safe */ _ViewGlobalLocation__WEBPACK_IMPORTED_MODULE_57__.areaToEyeHeightFromGcs),
118661
- /* harmony export */ "calculateEcefToDbTransformAtLocation": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_120__.calculateEcefToDbTransformAtLocation),
118906
+ /* harmony export */ "calculateEcefToDbTransformAtLocation": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_121__.calculateEcefToDbTransformAtLocation),
118662
118907
  /* harmony export */ "canvasToImageBuffer": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.canvasToImageBuffer),
118663
118908
  /* harmony export */ "canvasToResizedCanvasWithBars": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.canvasToResizedCanvasWithBars),
118664
118909
  /* harmony export */ "connectViewportFrusta": () => (/* reexport safe */ _ViewportSync__WEBPACK_IMPORTED_MODULE_61__.connectViewportFrusta),
@@ -118693,12 +118938,12 @@ __webpack_require__.r(__webpack_exports__);
118693
118938
  /* harmony export */ "getCesiumOSMBuildingsUrl": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.getCesiumOSMBuildingsUrl),
118694
118939
  /* harmony export */ "getCesiumTerrainProvider": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.getCesiumTerrainProvider),
118695
118940
  /* harmony export */ "getCompressedJpegFromCanvas": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.getCompressedJpegFromCanvas),
118696
- /* harmony export */ "getFrustumPlaneIntersectionDepthRange": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_120__.getFrustumPlaneIntersectionDepthRange),
118941
+ /* harmony export */ "getFrustumPlaneIntersectionDepthRange": () => (/* reexport safe */ _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_121__.getFrustumPlaneIntersectionDepthRange),
118697
118942
  /* harmony export */ "getGcsConverterAvailable": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.getGcsConverterAvailable),
118698
118943
  /* harmony export */ "getImageSourceFormatForMimeType": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.getImageSourceFormatForMimeType),
118699
118944
  /* harmony export */ "getImageSourceMimeType": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.getImageSourceMimeType),
118700
118945
  /* harmony export */ "getQuantityTypeKey": () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_71__.getQuantityTypeKey),
118701
- /* harmony export */ "headersIncludeAuthMethod": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_124__.headersIncludeAuthMethod),
118946
+ /* harmony export */ "headersIncludeAuthMethod": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_125__.headersIncludeAuthMethod),
118702
118947
  /* harmony export */ "iModelTileParamsFromJSON": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.iModelTileParamsFromJSON),
118703
118948
  /* harmony export */ "iModelTileTreeParamsFromJSON": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.iModelTileTreeParamsFromJSON),
118704
118949
  /* harmony export */ "imageBitmapFromImageSource": () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_9__.imageBitmapFromImageSource),
@@ -118725,9 +118970,9 @@ __webpack_require__.r(__webpack_exports__);
118725
118970
  /* harmony export */ "readGltfTemplate": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.readGltfTemplate),
118726
118971
  /* harmony export */ "readImdlContent": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.readImdlContent),
118727
118972
  /* harmony export */ "readPointCloudTileContent": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.readPointCloudTileContent),
118728
- /* harmony export */ "registerWorker": () => (/* reexport safe */ _workers_RegisterWorker__WEBPACK_IMPORTED_MODULE_119__.registerWorker),
118729
- /* harmony export */ "setBasicAuthorization": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_124__.setBasicAuthorization),
118730
- /* harmony export */ "setRequestTimeout": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_124__.setRequestTimeout),
118973
+ /* harmony export */ "registerWorker": () => (/* reexport safe */ _workers_RegisterWorker__WEBPACK_IMPORTED_MODULE_120__.registerWorker),
118974
+ /* harmony export */ "setBasicAuthorization": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_125__.setBasicAuthorization),
118975
+ /* harmony export */ "setRequestTimeout": () => (/* reexport safe */ _request_utils__WEBPACK_IMPORTED_MODULE_125__.setRequestTimeout),
118731
118976
  /* harmony export */ "synchronizeViewportFrusta": () => (/* reexport safe */ _ViewportSync__WEBPACK_IMPORTED_MODULE_61__.synchronizeViewportFrusta),
118732
118977
  /* harmony export */ "synchronizeViewportViews": () => (/* reexport safe */ _ViewportSync__WEBPACK_IMPORTED_MODULE_61__.synchronizeViewportViews),
118733
118978
  /* harmony export */ "tileTreeReferenceFromRenderGraphic": () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_104__.tileTreeReferenceFromRenderGraphic),
@@ -118840,28 +119085,29 @@ __webpack_require__.r(__webpack_exports__);
118840
119085
  /* harmony import */ var _render_webgl_Target__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./render/webgl/Target */ "../../core/frontend/lib/esm/render/webgl/Target.js");
118841
119086
  /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
118842
119087
  /* harmony import */ var _tools_AccuDrawTool__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./tools/AccuDrawTool */ "../../core/frontend/lib/esm/tools/AccuDrawTool.js");
118843
- /* harmony import */ var _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./tools/ClipViewTool */ "../../core/frontend/lib/esm/tools/ClipViewTool.js");
118844
- /* harmony import */ var _tools_EditManipulator__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./tools/EditManipulator */ "../../core/frontend/lib/esm/tools/EditManipulator.js");
118845
- /* harmony import */ var _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./tools/ElementSetTool */ "../../core/frontend/lib/esm/tools/ElementSetTool.js");
118846
- /* harmony import */ var _tools_EventController__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./tools/EventController */ "../../core/frontend/lib/esm/tools/EventController.js");
118847
- /* harmony import */ var _tools_IdleTool__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./tools/IdleTool */ "../../core/frontend/lib/esm/tools/IdleTool.js");
118848
- /* harmony import */ var _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./tools/MeasureTool */ "../../core/frontend/lib/esm/tools/MeasureTool.js");
118849
- /* harmony import */ var _tools_PrimitiveTool__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./tools/PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
118850
- /* harmony import */ var _tools_SelectTool__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./tools/SelectTool */ "../../core/frontend/lib/esm/tools/SelectTool.js");
118851
- /* harmony import */ var _tools_Tool__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./tools/Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
118852
- /* harmony import */ var _tools_ToolSettings__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./tools/ToolSettings */ "../../core/frontend/lib/esm/tools/ToolSettings.js");
118853
- /* harmony import */ var _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./tools/ToolAdmin */ "../../core/frontend/lib/esm/tools/ToolAdmin.js");
118854
- /* harmony import */ var _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./tools/ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
118855
- /* harmony import */ var _tools_ViewTool__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./tools/ViewTool */ "../../core/frontend/lib/esm/tools/ViewTool.js");
118856
- /* harmony import */ var _workers_RegisterWorker__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./workers/RegisterWorker */ "../../core/frontend/lib/esm/workers/RegisterWorker.js");
118857
- /* harmony import */ var _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./BackgroundMapGeometry */ "../../core/frontend/lib/esm/BackgroundMapGeometry.js");
118858
- /* harmony import */ var _ViewCreator2d__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./ViewCreator2d */ "../../core/frontend/lib/esm/ViewCreator2d.js");
118859
- /* harmony import */ var _ViewCreator3d__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./ViewCreator3d */ "../../core/frontend/lib/esm/ViewCreator3d.js");
118860
- /* harmony import */ var _LocalhostIpcApp__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./LocalhostIpcApp */ "../../core/frontend/lib/esm/LocalhostIpcApp.js");
118861
- /* harmony import */ var _request_utils__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./request/utils */ "../../core/frontend/lib/esm/request/utils.js");
118862
- /* harmony import */ var _RealityDataSource__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./RealityDataSource */ "../../core/frontend/lib/esm/RealityDataSource.js");
118863
- /* harmony import */ var _internal_cross_package__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./internal/cross-package */ "../../core/frontend/lib/esm/internal/cross-package.js");
118864
- /* harmony import */ var _extension_ExtensionRuntime__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./extension/ExtensionRuntime */ "../../core/frontend/lib/esm/extension/ExtensionRuntime.js");
119088
+ /* harmony import */ var _tools_AccuDrawViewportUI__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./tools/AccuDrawViewportUI */ "../../core/frontend/lib/esm/tools/AccuDrawViewportUI.js");
119089
+ /* harmony import */ var _tools_ClipViewTool__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./tools/ClipViewTool */ "../../core/frontend/lib/esm/tools/ClipViewTool.js");
119090
+ /* harmony import */ var _tools_EditManipulator__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./tools/EditManipulator */ "../../core/frontend/lib/esm/tools/EditManipulator.js");
119091
+ /* harmony import */ var _tools_ElementSetTool__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./tools/ElementSetTool */ "../../core/frontend/lib/esm/tools/ElementSetTool.js");
119092
+ /* harmony import */ var _tools_EventController__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./tools/EventController */ "../../core/frontend/lib/esm/tools/EventController.js");
119093
+ /* harmony import */ var _tools_IdleTool__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./tools/IdleTool */ "../../core/frontend/lib/esm/tools/IdleTool.js");
119094
+ /* harmony import */ var _tools_MeasureTool__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./tools/MeasureTool */ "../../core/frontend/lib/esm/tools/MeasureTool.js");
119095
+ /* harmony import */ var _tools_PrimitiveTool__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./tools/PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
119096
+ /* harmony import */ var _tools_SelectTool__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./tools/SelectTool */ "../../core/frontend/lib/esm/tools/SelectTool.js");
119097
+ /* harmony import */ var _tools_Tool__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./tools/Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
119098
+ /* harmony import */ var _tools_ToolSettings__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./tools/ToolSettings */ "../../core/frontend/lib/esm/tools/ToolSettings.js");
119099
+ /* harmony import */ var _tools_ToolAdmin__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./tools/ToolAdmin */ "../../core/frontend/lib/esm/tools/ToolAdmin.js");
119100
+ /* harmony import */ var _tools_ToolAssistance__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./tools/ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
119101
+ /* harmony import */ var _tools_ViewTool__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./tools/ViewTool */ "../../core/frontend/lib/esm/tools/ViewTool.js");
119102
+ /* harmony import */ var _workers_RegisterWorker__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./workers/RegisterWorker */ "../../core/frontend/lib/esm/workers/RegisterWorker.js");
119103
+ /* harmony import */ var _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./BackgroundMapGeometry */ "../../core/frontend/lib/esm/BackgroundMapGeometry.js");
119104
+ /* harmony import */ var _ViewCreator2d__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./ViewCreator2d */ "../../core/frontend/lib/esm/ViewCreator2d.js");
119105
+ /* harmony import */ var _ViewCreator3d__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./ViewCreator3d */ "../../core/frontend/lib/esm/ViewCreator3d.js");
119106
+ /* harmony import */ var _LocalhostIpcApp__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./LocalhostIpcApp */ "../../core/frontend/lib/esm/LocalhostIpcApp.js");
119107
+ /* harmony import */ var _request_utils__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./request/utils */ "../../core/frontend/lib/esm/request/utils.js");
119108
+ /* harmony import */ var _RealityDataSource__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./RealityDataSource */ "../../core/frontend/lib/esm/RealityDataSource.js");
119109
+ /* harmony import */ var _internal_cross_package__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./internal/cross-package */ "../../core/frontend/lib/esm/internal/cross-package.js");
119110
+ /* harmony import */ var _extension_ExtensionRuntime__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./extension/ExtensionRuntime */ "../../core/frontend/lib/esm/extension/ExtensionRuntime.js");
118865
119111
  /*---------------------------------------------------------------------------------------------
118866
119112
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
118867
119113
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -118991,6 +119237,7 @@ __webpack_require__.r(__webpack_exports__);
118991
119237
 
118992
119238
 
118993
119239
 
119240
+
118994
119241
 
118995
119242
 
118996
119243
  // TODO/FIX: "./extension/ExtensionRuntime" import has to be last to avoid circular dependency errors.
@@ -175351,7 +175598,7 @@ function normalizedCrossProduct(vec1, vec2, out) {
175351
175598
  /**
175352
175599
  * A shortcut may require no user input (immediate) or it may install a tool to collect the needed input. AccuDrawShortcuts are how users control AccuDraw.
175353
175600
  * A tool implementor should not use this class to setup AccuDraw, instead use AccuDrawHintBuilder to provide hints.
175354
- * @alpha
175601
+ * @beta
175355
175602
  */
175356
175603
  class AccuDrawShortcuts {
175357
175604
  /** Disable/Enable AccuDraw for the session */
@@ -175500,11 +175747,12 @@ class AccuDrawShortcuts {
175500
175747
  index = (forward ? (isPolar ? _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item : _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item) : (isPolar ? _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.ANGLE_Item : _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item));
175501
175748
  break;
175502
175749
  }
175503
- accudraw.setKeyinStatus(index, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Partial);
175750
+ // Set focus to new item and disable automatic focus change based on cursor location in rectangular mode.
175504
175751
  accudraw.setFocusItem(index);
175505
175752
  accudraw.dontMoveFocus = true;
175506
175753
  }
175507
175754
  static itemFieldNewInput(index) { _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.setKeyinStatus(index, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Partial); }
175755
+ static itemFieldCompletedInput(index) { _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.setKeyinStatus(index, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic); }
175508
175756
  static async itemFieldAcceptInput(index, str) {
175509
175757
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175510
175758
  await accudraw.processFieldInput(index, str, true);
@@ -175588,6 +175836,20 @@ class AccuDrawShortcuts {
175588
175836
  accudraw.dontMoveFocus = false;
175589
175837
  accudraw.clearTentative();
175590
175838
  }
175839
+ static choosePreviousValue(index) {
175840
+ const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175841
+ accudraw.getSavedValue(index, false);
175842
+ accudraw.refreshDecorationsAndDynamics();
175843
+ }
175844
+ static chooseNextValue(index) {
175845
+ const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175846
+ accudraw.getSavedValue(index, true);
175847
+ accudraw.refreshDecorationsAndDynamics();
175848
+ }
175849
+ static clearSavedValues() {
175850
+ const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175851
+ accudraw.clearSavedValues();
175852
+ }
175591
175853
  static itemRotationModeChange(rotation) {
175592
175854
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175593
175855
  const vp = accudraw.currentView;
@@ -175641,7 +175903,7 @@ class AccuDrawShortcuts {
175641
175903
  accudraw.planePt.setFrom(accudraw.published.origin);
175642
175904
  accudraw.published.flags |= _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.AccuDrawFlags.SetOrigin;
175643
175905
  accudraw.activate();
175644
- accudraw.refreshDecorationsAndDynamics();
175906
+ accudraw.refreshDecorationsAndDynamics(); // NOTE: Will already grab input focus through processHints...
175645
175907
  }
175646
175908
  static changeCompassMode() {
175647
175909
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175671,7 +175933,7 @@ class AccuDrawShortcuts {
175671
175933
  accudraw.locked = axisLockStatus;
175672
175934
  }
175673
175935
  accudraw.flags.baseMode = accudraw.compassMode;
175674
- accudraw.refreshDecorationsAndDynamics();
175936
+ this.requestInputFocus();
175675
175937
  }
175676
175938
  static lockSmart() {
175677
175939
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175712,7 +175974,7 @@ class AccuDrawShortcuts {
175712
175974
  accudraw.indexed |= _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.X_BM;
175713
175975
  accudraw.angleLock();
175714
175976
  }
175715
- accudraw.refreshDecorationsAndDynamics();
175977
+ this.requestInputFocus();
175716
175978
  return;
175717
175979
  }
175718
175980
  if (accudraw.locked) { // if locked, unlock
@@ -175755,7 +176017,7 @@ class AccuDrawShortcuts {
175755
176017
  accudraw.setRotationMode(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.RotationMode.Context);
175756
176018
  }
175757
176019
  }
175758
- accudraw.refreshDecorationsAndDynamics();
176020
+ this.requestInputFocus();
175759
176021
  }
175760
176022
  /** Disable indexing when not currently indexed; if indexed, enable respective lock. */
175761
176023
  static lockIndex() {
@@ -175796,6 +176058,7 @@ class AccuDrawShortcuts {
175796
176058
  }
175797
176059
  accudraw.flags.indexLocked = true;
175798
176060
  }
176061
+ this.requestInputFocus();
175799
176062
  }
175800
176063
  static lockX() {
175801
176064
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175812,13 +176075,14 @@ class AccuDrawShortcuts {
175812
176075
  if (accudraw.getFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item)) {
175813
176076
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item, false);
175814
176077
  accudraw.locked = accudraw.locked & ~_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.X_BM;
176078
+ accudraw.setKeyinStatus(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic);
175815
176079
  }
175816
176080
  else {
175817
176081
  accudraw.saveCoordinate(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item, accudraw.delta.x);
175818
176082
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.X_Item, true);
175819
176083
  accudraw.locked = accudraw.locked | _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.X_BM;
175820
176084
  }
175821
- accudraw.refreshDecorationsAndDynamics();
176085
+ this.requestInputFocus();
175822
176086
  }
175823
176087
  static lockY() {
175824
176088
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175835,13 +176099,14 @@ class AccuDrawShortcuts {
175835
176099
  if (accudraw.getFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item)) {
175836
176100
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item, false);
175837
176101
  accudraw.locked = accudraw.locked & ~_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.Y_BM;
176102
+ accudraw.setKeyinStatus(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic);
175838
176103
  }
175839
176104
  else {
175840
176105
  accudraw.saveCoordinate(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item, accudraw.delta.y);
175841
176106
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Y_Item, true);
175842
176107
  accudraw.locked = accudraw.locked | _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.Y_BM;
175843
176108
  }
175844
- accudraw.refreshDecorationsAndDynamics();
176109
+ this.requestInputFocus();
175845
176110
  }
175846
176111
  static lockZ() {
175847
176112
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175853,6 +176118,7 @@ class AccuDrawShortcuts {
175853
176118
  const isSnapped = accudraw.clearTentative();
175854
176119
  if (accudraw.getFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Z_Item)) {
175855
176120
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Z_Item, false);
176121
+ accudraw.setKeyinStatus(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Z_Item, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic);
175856
176122
  }
175857
176123
  else {
175858
176124
  // Move focus to Z field...
@@ -175862,7 +176128,7 @@ class AccuDrawShortcuts {
175862
176128
  }
175863
176129
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.Z_Item, true);
175864
176130
  }
175865
- accudraw.refreshDecorationsAndDynamics();
176131
+ this.requestInputFocus();
175866
176132
  }
175867
176133
  static lockDistance() {
175868
176134
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175880,7 +176146,7 @@ class AccuDrawShortcuts {
175880
176146
  if (accudraw.getFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item)) {
175881
176147
  accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item, false);
175882
176148
  accudraw.locked &= ~_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.DIST_BM;
175883
- accudraw.setKeyinStatus(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic); // Need to clear partial status if locked by entering distance since focus stays in distance field...
176149
+ accudraw.setKeyinStatus(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item, _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.KeyinStatus.Dynamic);
175884
176150
  }
175885
176151
  else {
175886
176152
  // Move focus to distance field...
@@ -175888,54 +176154,14 @@ class AccuDrawShortcuts {
175888
176154
  accudraw.setFocusItem(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.DIST_Item);
175889
176155
  accudraw.distanceLock(true, true);
175890
176156
  }
175891
- accudraw.refreshDecorationsAndDynamics();
176157
+ this.requestInputFocus();
175892
176158
  }
175893
176159
  static lockAngle() {
175894
176160
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175895
176161
  if (!accudraw.isEnabled)
175896
176162
  return;
175897
176163
  accudraw.doLockAngle(accudraw.clearTentative());
175898
- accudraw.refreshDecorationsAndDynamics();
175899
- }
175900
- lockIndex() {
175901
- const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
175902
- if (!accudraw.isEnabled)
175903
- return;
175904
- if (accudraw.flags.indexLocked) {
175905
- if (accudraw.locked)
175906
- AccuDrawShortcuts.lockSmart();
175907
- accudraw.flags.indexLocked = false;
175908
- }
175909
- else {
175910
- if (_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.CompassMode.Polar === accudraw.compassMode) {
175911
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.XY_BM) {
175912
- accudraw.setFieldLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_2__.ItemField.ANGLE_Item, true);
175913
- accudraw.angleLock();
175914
- }
175915
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.DIST_BM)
175916
- AccuDrawShortcuts.lockDistance();
175917
- }
175918
- else {
175919
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.X_BM) {
175920
- AccuDrawShortcuts.lockX();
175921
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.DIST_BM)
175922
- AccuDrawShortcuts.lockY();
175923
- }
175924
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.Y_BM) {
175925
- AccuDrawShortcuts.lockY();
175926
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.DIST_BM)
175927
- AccuDrawShortcuts.lockX();
175928
- }
175929
- if (accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.DIST_BM && !(accudraw.indexed & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.XY_BM)) {
175930
- if (accudraw.locked & _AccuDraw__WEBPACK_IMPORTED_MODULE_2__.LockedStates.X_BM)
175931
- AccuDrawShortcuts.lockY();
175932
- else
175933
- AccuDrawShortcuts.lockX();
175934
- }
175935
- }
175936
- accudraw.flags.indexLocked = true;
175937
- }
175938
- accudraw.refreshDecorationsAndDynamics();
176164
+ this.requestInputFocus();
175939
176165
  }
175940
176166
  static setStandardRotation(rotation) {
175941
176167
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175945,7 +176171,7 @@ class AccuDrawShortcuts {
175945
176171
  const axes = accudraw.baseAxes.clone();
175946
176172
  accudraw.accountForAuxRotationPlane(axes, accudraw.flags.auxRotationPlane);
175947
176173
  accudraw.setContextRotation(axes.toMatrix3d(), false, true);
175948
- accudraw.refreshDecorationsAndDynamics();
176174
+ this.requestInputFocus();
175949
176175
  return;
175950
176176
  }
175951
176177
  else {
@@ -175953,7 +176179,7 @@ class AccuDrawShortcuts {
175953
176179
  accudraw.setRotationMode(rotation);
175954
176180
  }
175955
176181
  accudraw.updateRotation(true);
175956
- accudraw.refreshDecorationsAndDynamics();
176182
+ this.requestInputFocus();
175957
176183
  }
175958
176184
  static alignView() {
175959
176185
  const accudraw = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw;
@@ -175972,7 +176198,7 @@ class AccuDrawShortcuts {
175972
176198
  vp.view.setupFromFrustum(newFrustum);
175973
176199
  vp.synchWithView();
175974
176200
  vp.animateFrustumChange();
175975
- accudraw.refreshDecorationsAndDynamics();
176201
+ this.requestInputFocus();
175976
176202
  }
175977
176203
  static rotateToBase() { this.setStandardRotation(_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.accuDraw.flags.baseRotation); }
175978
176204
  static rotateToACS() {
@@ -176071,7 +176297,7 @@ class AccuDrawShortcuts {
176071
176297
  break;
176072
176298
  }
176073
176299
  accudraw.setContextRotation(newRotation.toMatrix3d(), true, true);
176074
- accudraw.refreshDecorationsAndDynamics();
176300
+ this.requestInputFocus();
176075
176301
  }
176076
176302
  static async rotateAxes(aboutCurrentZ) {
176077
176303
  return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.tools.run("AccuDraw.RotateAxes", aboutCurrentZ);
@@ -176660,6 +176886,736 @@ class DefineACSByPointsTool extends AccuDrawShortcutsTool {
176660
176886
  DefineACSByPointsTool.toolId = "AccuDraw.DefineACSByPoints";
176661
176887
 
176662
176888
 
176889
+ /***/ }),
176890
+
176891
+ /***/ "../../core/frontend/lib/esm/tools/AccuDrawViewportUI.js":
176892
+ /*!***************************************************************!*\
176893
+ !*** ../../core/frontend/lib/esm/tools/AccuDrawViewportUI.js ***!
176894
+ \***************************************************************/
176895
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
176896
+
176897
+ "use strict";
176898
+ __webpack_require__.r(__webpack_exports__);
176899
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
176900
+ /* harmony export */ "AccuDrawViewportUI": () => (/* binding */ AccuDrawViewportUI)
176901
+ /* harmony export */ });
176902
+ /* harmony import */ var _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-quantity */ "../../core/quantity/lib/esm/core-quantity.js");
176903
+ /* harmony import */ var _AccuDraw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../AccuDraw */ "../../core/frontend/lib/esm/AccuDraw.js");
176904
+ /* harmony import */ var _common_ViewRect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/ViewRect */ "../../core/frontend/lib/esm/common/ViewRect.js");
176905
+ /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
176906
+ /* harmony import */ var _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AccuDrawTool */ "../../core/frontend/lib/esm/tools/AccuDrawTool.js");
176907
+ /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
176908
+ /*---------------------------------------------------------------------------------------------
176909
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
176910
+ * See LICENSE.md in the project root for license terms and full copyright notice.
176911
+ *--------------------------------------------------------------------------------------------*/
176912
+ /** @packageDocumentation
176913
+ * @module AccuDraw
176914
+ */
176915
+
176916
+
176917
+
176918
+
176919
+
176920
+
176921
+ /** Provides an in viewport user interface for AccuDraw that can optionally follow the cursor or remain at a fixed location.
176922
+ * @beta
176923
+ */
176924
+ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw {
176925
+ /** Create a new instance of this class to set as [[IModelAppOptions.accuDraw]] for this session. */
176926
+ constructor() {
176927
+ super();
176928
+ this._focusItem = this.defaultFocusItem();
176929
+ }
176930
+ /** Call to set a vertical layout that follows the cursor. This is the default configuration. */
176931
+ setVerticalCursorLayout() {
176932
+ const props = AccuDrawViewportUI.controlProps;
176933
+ props.horizontalArrangement = false;
176934
+ props.fixedLocation = false;
176935
+ props.suspendLocateToolTip = true;
176936
+ }
176937
+ /** Call to set a horizontal layout that is anchored to the bottom middle of the view. */
176938
+ setHorizontalFixedLayout() {
176939
+ const props = AccuDrawViewportUI.controlProps;
176940
+ props.horizontalArrangement = true;
176941
+ props.fixedLocation = true;
176942
+ props.suspendLocateToolTip = false;
176943
+ }
176944
+ /** Call to update the currently displayed controls after settings are changed. */
176945
+ refreshControls() {
176946
+ if (undefined === this._controls)
176947
+ return;
176948
+ this.removeControls();
176949
+ if (!this.isActive)
176950
+ return;
176951
+ // Shouldn't need to call IModelApp.toolAdmin.simulateMotionEvent() in this case...
176952
+ const ev = new _Tool__WEBPACK_IMPORTED_MODULE_5__.BeButtonEvent();
176953
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.fillEventFromCursorLocation(ev);
176954
+ this.updateControls(ev);
176955
+ }
176956
+ suspendToolTips() {
176957
+ if (!AccuDrawViewportUI.controlProps.suspendLocateToolTip || undefined === (this._toolTipsSuspended = (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.accuSnap.userSettings.toolTip ? true : undefined)))
176958
+ return;
176959
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.accuSnap.userSettings.toolTip = false;
176960
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.notifications.clearToolTip();
176961
+ }
176962
+ unsuspendToolTips() {
176963
+ if (undefined === this._toolTipsSuspended)
176964
+ return;
176965
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.accuSnap.userSettings.toolTip = true;
176966
+ this._toolTipsSuspended = undefined;
176967
+ }
176968
+ setDynamicKeyinStatus(item) {
176969
+ // This does nothing if keyin status is already dynamic...
176970
+ _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldCompletedInput(item);
176971
+ }
176972
+ setPartialKeyinStatus(item, selectAll) {
176973
+ if (!this.isDynamicKeyinStatus(item))
176974
+ return;
176975
+ _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNewInput(item);
176976
+ if (undefined === this._controls || !selectAll)
176977
+ return;
176978
+ const itemField = this._controls.itemFields[item];
176979
+ itemField.setSelectionRange(0, itemField.value.length);
176980
+ }
176981
+ makeParserHappy(value, isAngle) {
176982
+ // TODO: Work around for default length parser not accepting output formatted with dash separator, ex. 20'-6"...
176983
+ const parserSpec = (isAngle ? undefined : this.getLengthParser());
176984
+ if (undefined === parserSpec)
176985
+ return value;
176986
+ return (_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.FormatType.Fractional === parserSpec.format.type && -1 !== value.indexOf("'-") ? value.replaceAll("'-", "':") : value);
176987
+ }
176988
+ evaluateExpression(operator, operandA, operandB) {
176989
+ switch (operator) {
176990
+ case "+":
176991
+ return operandA + operandB;
176992
+ case "-":
176993
+ return operandA - operandB;
176994
+ case "*":
176995
+ return operandA * operandB;
176996
+ case "/":
176997
+ return operandA / operandB;
176998
+ default:
176999
+ return operandA;
177000
+ }
177001
+ }
177002
+ parseExpression(currentValue, isAngle) {
177003
+ if (undefined === this._expression)
177004
+ return undefined; // Not an expression...
177005
+ // Attempt to parse and apply operation to current value...
177006
+ const operator = currentValue.lastIndexOf(this._expression.operator);
177007
+ if (-1 === operator) {
177008
+ this._expression = undefined; // Operator has been edited out of string, parse current value...
177009
+ return undefined;
177010
+ }
177011
+ const parserSpec = (isAngle ? this.getAngleParser() : this.getLengthParser());
177012
+ const formatterSpec = (isAngle ? this.getAngleFormatter() : this.getLengthFormatter());
177013
+ if (undefined === parserSpec || undefined === formatterSpec)
177014
+ return undefined; // Nothing to do...
177015
+ const operandAStr = currentValue.substring(0, operator);
177016
+ const parseResultA = parserSpec.parseToQuantityValue(this.makeParserHappy(operandAStr, isAngle));
177017
+ if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultA))
177018
+ return undefined; // First operand isn't valid, try to parse current value (which is also likely to fail)...
177019
+ const operandBStr = currentValue.substring(operator + this._expression.operator.length);
177020
+ const operatorKey = this._expression.operator[1];
177021
+ const isNumber = ("*" === operatorKey || "/" === operatorKey); // Treat as number for */ and quantity for +-...
177022
+ let operandB;
177023
+ if (isNumber) {
177024
+ operandB = parseFloat(operandBStr);
177025
+ if (Number.isNaN(operandB))
177026
+ return operandAStr; // Second operand is invalid number, set value to first operand which is valid...
177027
+ }
177028
+ else {
177029
+ const parseResultB = parserSpec.parseToQuantityValue(this.makeParserHappy(operandBStr, isAngle));
177030
+ if (!_itwin_core_quantity__WEBPACK_IMPORTED_MODULE_0__.Parser.isParsedQuantity(parseResultB))
177031
+ return operandAStr; // Second operand is invalid quantity, set value to first operand which is valid...
177032
+ operandB = parseResultB.value;
177033
+ }
177034
+ const operandA = parseResultA.value;
177035
+ const newValue = this.evaluateExpression(operatorKey, operandA, operandB);
177036
+ const newValueStr = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.formatQuantity(newValue, formatterSpec);
177037
+ return newValueStr;
177038
+ }
177039
+ async processPartialInput(item) {
177040
+ if (undefined === this._controls)
177041
+ return;
177042
+ const itemField = this._controls.itemFields[item];
177043
+ const currentValue = itemField.value;
177044
+ // If current value has been deleted, unlock field and refresh for current cursor location...
177045
+ if (0 === currentValue.length) {
177046
+ this.updateFieldLock(item, false);
177047
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.simulateMotionEvent();
177048
+ return;
177049
+ }
177050
+ const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
177051
+ const expressionValue = this.parseExpression(currentValue, isAngle);
177052
+ return this.processFieldInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), false);
177053
+ }
177054
+ async acceptPartialInput(item, forward) {
177055
+ if (undefined === this._controls)
177056
+ return;
177057
+ const itemField = this._controls.itemFields[item];
177058
+ const currentValue = itemField.value;
177059
+ const isAngle = (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item);
177060
+ const expressionValue = this.parseExpression(currentValue, isAngle);
177061
+ if (undefined === forward)
177062
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldAcceptInput(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle));
177063
+ return _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.itemFieldNavigate(item, this.makeParserHappy(expressionValue ?? currentValue, isAngle), forward);
177064
+ }
177065
+ acceptSavedValue(item, next) {
177066
+ if (next)
177067
+ _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.chooseNextValue(item);
177068
+ else
177069
+ _AccuDrawTool__WEBPACK_IMPORTED_MODULE_4__.AccuDrawShortcuts.choosePreviousValue(item);
177070
+ }
177071
+ doFocusHome(ev, isDown, _item) {
177072
+ ev.preventDefault();
177073
+ if (!isDown || this._isFocusHome)
177074
+ return;
177075
+ ev.stopPropagation();
177076
+ this.setFocusHome();
177077
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.viewManager.invalidateDecorationsAllViews();
177078
+ }
177079
+ async doChooseSavedValue(ev, isDown, item, next) {
177080
+ ev.preventDefault();
177081
+ ev.stopPropagation();
177082
+ if (!isDown)
177083
+ return;
177084
+ this.acceptSavedValue(item, next);
177085
+ }
177086
+ async doNavigate(ev, isDown, item, forward) {
177087
+ ev.preventDefault();
177088
+ ev.stopPropagation();
177089
+ if (!isDown)
177090
+ return;
177091
+ return this.acceptPartialInput(item, forward);
177092
+ }
177093
+ async doAcceptInput(ev, isDown, item) {
177094
+ ev.preventDefault();
177095
+ if (!isDown || this.isDynamicKeyinStatus(item))
177096
+ return;
177097
+ ev.stopPropagation();
177098
+ return this.acceptPartialInput(item);
177099
+ }
177100
+ doNewInput(_ev, isDown, item) {
177101
+ if (!isDown)
177102
+ return;
177103
+ this.setPartialKeyinStatus(item, false);
177104
+ }
177105
+ async doDeleteInput(_ev, isDown, item) {
177106
+ if (isDown)
177107
+ return this.setPartialKeyinStatus(item, false);
177108
+ return this.processPartialInput(item);
177109
+ }
177110
+ processReplacementKey(ev, isDown, item, replacement, allowStart) {
177111
+ if (undefined === this._controls)
177112
+ return false;
177113
+ ev.preventDefault();
177114
+ if (!isDown || 0 === replacement.length || this.isDynamicKeyinStatus(item))
177115
+ return true;
177116
+ const itemField = this._controls.itemFields[item];
177117
+ if (null === itemField.selectionStart || null === itemField.selectionEnd)
177118
+ return true;
177119
+ const currentValue = itemField.value;
177120
+ if (!allowStart && (!currentValue.length || !itemField.selectionStart || !itemField.selectionEnd))
177121
+ return true;
177122
+ const selectionStart = (itemField.selectionStart > itemField.selectionEnd ? itemField.selectionEnd : itemField.selectionStart);
177123
+ itemField.value = currentValue.substring(0, selectionStart) + replacement + currentValue.substring(itemField.selectionEnd);
177124
+ itemField.selectionStart = itemField.selectionEnd = selectionStart + 1;
177125
+ return false;
177126
+ }
177127
+ processRepeatedKey(ev, isDown, item, replacement) {
177128
+ if (undefined === this._controls)
177129
+ return false;
177130
+ const itemField = this._controls.itemFields[item];
177131
+ const currentValue = itemField.value;
177132
+ if (!currentValue.length || !itemField.selectionStart || !itemField.selectionEnd)
177133
+ return false;
177134
+ const selectionStart = (itemField.selectionStart > itemField.selectionEnd ? itemField.selectionEnd : itemField.selectionStart);
177135
+ if (selectionStart !== itemField.selectionEnd)
177136
+ return false;
177137
+ const selectionPrevious = selectionStart - 1;
177138
+ if (currentValue[selectionPrevious] !== (isDown ? ev.key : replacement))
177139
+ return false;
177140
+ ev.preventDefault();
177141
+ if (!isDown)
177142
+ return false;
177143
+ itemField.value = currentValue.substring(0, selectionPrevious) + replacement + currentValue.substring(selectionStart);
177144
+ itemField.selectionStart = itemField.selectionEnd = selectionPrevious + 1;
177145
+ return false;
177146
+ }
177147
+ doProcessOverrideKey(ev, isDown, item) {
177148
+ if (undefined === this._controls || !AccuDrawViewportUI.controlProps.simplifiedInput)
177149
+ return false;
177150
+ switch (ev.key) {
177151
+ case "^":
177152
+ return this.processReplacementKey(ev, isDown, item, (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item ? "°" : ""), false); // Easier "°" input...
177153
+ case ";":
177154
+ return this.processReplacementKey(ev, isDown, item, (_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item === item ? "°" : ":"), false); // Easier ":" input still useful w/o MU:SU:PU?
177155
+ case ".":
177156
+ return this.processRepeatedKey(ev, isDown, item, ":"); // Still useful replacing ".." with ":" for numeric keypad users w/o MU:SU:PU?
177157
+ default:
177158
+ return false;
177159
+ }
177160
+ }
177161
+ doProcessExpressionKey(ev, isDown, item) {
177162
+ if (undefined === this._controls || !AccuDrawViewportUI.controlProps.mathOperations)
177163
+ return false;
177164
+ const itemField = this._controls.itemFields[item];
177165
+ const currentValue = itemField.value;
177166
+ switch (ev.key) {
177167
+ case "ArrowLeft":
177168
+ case "ArrowRight":
177169
+ if (undefined === this._expression || !isDown || this.isDynamicKeyinStatus(item) || !itemField.selectionStart)
177170
+ break;
177171
+ const moveLeft = ("ArrowLeft" === ev.key);
177172
+ const operatorPosIns = currentValue.lastIndexOf(this._expression.operator);
177173
+ if (itemField.selectionStart !== (moveLeft ? operatorPosIns + this._expression.operator.length : operatorPosIns))
177174
+ break;
177175
+ // Treat expression operator string as a single character when moving the text insertion cursor...
177176
+ itemField.selectionStart = itemField.selectionEnd = (moveLeft ? operatorPosIns : operatorPosIns + this._expression.operator.length);
177177
+ ev.preventDefault();
177178
+ return true;
177179
+ case "Backspace":
177180
+ case "Delete":
177181
+ if (undefined === this._expression || !isDown || this.isDynamicKeyinStatus(item) || !itemField.selectionStart)
177182
+ break;
177183
+ const deleteBefore = ("Backspace" === ev.key);
177184
+ const operatorPosDel = currentValue.lastIndexOf(this._expression.operator);
177185
+ if (itemField.selectionStart !== (deleteBefore ? operatorPosDel + this._expression.operator.length : operatorPosDel))
177186
+ break;
177187
+ // Treat expression operator string as single character for delete...
177188
+ itemField.value = currentValue.substring(0, operatorPosDel);
177189
+ itemField.selectionStart = itemField.selectionEnd = itemField.value.length;
177190
+ this._expression = undefined;
177191
+ ev.preventDefault();
177192
+ return true;
177193
+ case " ":
177194
+ if (!isDown || !this.isDynamicKeyinStatus(item))
177195
+ break;
177196
+ this.setPartialKeyinStatus(item, false); // Replacing current w/space isn't useful, append to end to support + or - more conveniently...
177197
+ return true;
177198
+ case "+":
177199
+ case "-":
177200
+ case "*":
177201
+ case "/":
177202
+ if (!isDown || undefined !== this._expression)
177203
+ break;
177204
+ if (!currentValue.length || !itemField.selectionStart || itemField.selectionStart !== currentValue.length)
177205
+ break;
177206
+ const haveSpace = (" " === currentValue[itemField.selectionStart - 1]);
177207
+ const requireSpace = ("+" === ev.key || "-" === ev.key); // These are valid for 1st character to replace current value...
177208
+ if (!(requireSpace ? haveSpace : (haveSpace || this.isDynamicKeyinStatus(item))))
177209
+ break;
177210
+ const operator = ` ${ev.key} `;
177211
+ const expression = `${currentValue + (haveSpace ? operator.substring(1) : operator)}`;
177212
+ itemField.value = expression;
177213
+ itemField.selectionStart = itemField.selectionEnd = itemField.value.length;
177214
+ this._expression = { item, operator };
177215
+ this.setPartialKeyinStatus(item, false);
177216
+ ev.preventDefault();
177217
+ return true;
177218
+ }
177219
+ return false;
177220
+ }
177221
+ async doProcessKey(ev, isDown, item) {
177222
+ if (!this.itemFieldInputIsValid(ev.key, item)) {
177223
+ ev.preventDefault(); // Ignore potential shortcuts...
177224
+ return;
177225
+ }
177226
+ if (this.doProcessOverrideKey(ev, isDown, item))
177227
+ return;
177228
+ if (this.doProcessExpressionKey(ev, isDown, item))
177229
+ return;
177230
+ if (isDown)
177231
+ return this.setPartialKeyinStatus(item, true);
177232
+ return this.processPartialInput(item);
177233
+ }
177234
+ async onKeyboardEvent(ev, isDown) {
177235
+ if (ev.ctrlKey || ev.altKey || ev.metaKey) {
177236
+ ev.preventDefault(); // Ignore qualifiers other than shift...
177237
+ return;
177238
+ }
177239
+ switch (ev.key) {
177240
+ case "Escape":
177241
+ return this.doFocusHome(ev, isDown, this._focusItem);
177242
+ case "PageDown":
177243
+ return this.doChooseSavedValue(ev, isDown, this._focusItem, true);
177244
+ case "PageUp":
177245
+ return this.doChooseSavedValue(ev, isDown, this._focusItem, false);
177246
+ case "Tab":
177247
+ return this.doNavigate(ev, isDown, this._focusItem, !ev.shiftKey);
177248
+ case "ArrowDown":
177249
+ if (ev.shiftKey)
177250
+ return this.doChooseSavedValue(ev, isDown, this._focusItem, true);
177251
+ return this.doNavigate(ev, isDown, this._focusItem, true);
177252
+ case "ArrowUp":
177253
+ if (ev.shiftKey)
177254
+ return this.doChooseSavedValue(ev, isDown, this._focusItem, false);
177255
+ return this.doNavigate(ev, isDown, this._focusItem, false);
177256
+ case "Enter":
177257
+ return this.doAcceptInput(ev, isDown, this._focusItem);
177258
+ case "Home":
177259
+ case "End":
177260
+ case "Insert":
177261
+ return this.doNewInput(ev, isDown, this._focusItem);
177262
+ case "ArrowLeft":
177263
+ case "ArrowRight":
177264
+ if (this.doProcessExpressionKey(ev, isDown, this._focusItem))
177265
+ return;
177266
+ return this.doNewInput(ev, isDown, this._focusItem);
177267
+ case "Backspace":
177268
+ case "Delete":
177269
+ if (this.doProcessExpressionKey(ev, isDown, this._focusItem))
177270
+ return;
177271
+ return this.doDeleteInput(ev, isDown, this._focusItem);
177272
+ default:
177273
+ return this.doProcessKey(ev, isDown, this._focusItem);
177274
+ }
177275
+ }
177276
+ removeControls() {
177277
+ if (undefined === this._controls)
177278
+ return;
177279
+ this._controls.overlay.remove();
177280
+ this._controls = undefined;
177281
+ this.unsuspendToolTips();
177282
+ }
177283
+ createControlDiv() {
177284
+ const div = document.createElement("div");
177285
+ div.className = "accudraw-controls";
177286
+ const style = div.style;
177287
+ style.pointerEvents = "none";
177288
+ style.overflow = "visible"; // Don't clip/hide outline or shadow...
177289
+ style.position = "absolute";
177290
+ style.top = style.left = "0";
177291
+ style.height = style.width = "100%";
177292
+ return div;
177293
+ }
177294
+ updateItemFieldKeyinStatus(itemField, item) {
177295
+ const isDynamic = this.isDynamicKeyinStatus(item);
177296
+ if (isDynamic && item === this._expression?.item)
177297
+ this._expression = undefined; // Only valid when entering partial input...
177298
+ itemField.style.caretColor = isDynamic ? itemField.style.backgroundColor : itemField.style.color;
177299
+ }
177300
+ updateItemFieldValue(itemField, item) {
177301
+ const value = this.getFormattedValueByIndex(item);
177302
+ itemField.value = value;
177303
+ this.updateItemFieldKeyinStatus(itemField, item);
177304
+ }
177305
+ updateItemFieldLock(itemLock, item) {
177306
+ const locked = this.getFieldLock(item);
177307
+ itemLock.style.outlineStyle = locked ? "inset" : "outset";
177308
+ itemLock.style.boxShadow = locked ? "none" : AccuDrawViewportUI.controlProps.button.shadow;
177309
+ itemLock.style.backgroundColor = locked ? AccuDrawViewportUI.controlProps.button.pressedColor : AccuDrawViewportUI.controlProps.backgroundColor;
177310
+ }
177311
+ initializeItemStyle(style, isButton) {
177312
+ style.pointerEvents = "none"; // Don't receive pointer events...
177313
+ style.position = "absolute";
177314
+ style.textWrap = "nowrap";
177315
+ style.textAnchor = "top";
177316
+ style.textAlign = isButton ? "center" : "left";
177317
+ const controlProps = AccuDrawViewportUI.controlProps;
177318
+ style.fontFamily = controlProps.text.fontFamily;
177319
+ style.fontSize = controlProps.text.fontSize;
177320
+ style.color = controlProps.text.color;
177321
+ style.backgroundColor = controlProps.backgroundColor;
177322
+ style.borderRadius = controlProps.borderRadius;
177323
+ }
177324
+ createItemField(item) {
177325
+ const itemField = document.createElement("input");
177326
+ itemField.contentEditable = "true";
177327
+ itemField.size = AccuDrawViewportUI.controlProps.fieldSize;
177328
+ const style = itemField.style;
177329
+ this.initializeItemStyle(style, false);
177330
+ this.updateItemFieldValue(itemField, item);
177331
+ itemField.onkeydown = async (ev) => { await this.onKeyboardEvent(ev, true); };
177332
+ itemField.onkeyup = async (ev) => { await this.onKeyboardEvent(ev, false); };
177333
+ itemField.onfocus = (ev) => { this.onFocusChange(ev, item, true); };
177334
+ itemField.onblur = (ev) => { this.onFocusChange(ev, item, false); };
177335
+ ;
177336
+ return itemField;
177337
+ }
177338
+ createItemFieldLock(item) {
177339
+ const itemLock = document.createElement("button");
177340
+ itemLock.type = "button";
177341
+ itemLock.contentEditable = "false";
177342
+ itemLock.disabled = true; // Don't receive focus...
177343
+ switch (item) {
177344
+ case _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item:
177345
+ itemLock.innerHTML = "\u21A6"; // right arrow from bar...
177346
+ break;
177347
+ case _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item:
177348
+ itemLock.innerHTML = "\u2221"; // measured angle...
177349
+ break;
177350
+ case _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item:
177351
+ itemLock.innerHTML = "X";
177352
+ break;
177353
+ case _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item:
177354
+ itemLock.innerHTML = "Y";
177355
+ break;
177356
+ case _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item:
177357
+ itemLock.innerHTML = "Z";
177358
+ break;
177359
+ }
177360
+ const style = itemLock.style;
177361
+ this.initializeItemStyle(style, true);
177362
+ this.updateItemFieldLock(itemLock, item);
177363
+ const button = AccuDrawViewportUI.controlProps.button;
177364
+ style.paddingLeft = style.paddingRight = "0";
177365
+ style.marginLeft = style.marginRight = button.margin;
177366
+ style.outlineWidth = button.outlineWidth;
177367
+ return itemLock;
177368
+ }
177369
+ /** Use to override the position of the controls in the supplied view. */
177370
+ modifyControlRect(_rect, _vp) { }
177371
+ /** Return the ViewRect currently occupied by the controls in the supplied view. */
177372
+ currentControlRect(vp) {
177373
+ if (undefined === this._controls || this._controls.overlay.parentElement !== vp.vpDiv)
177374
+ return undefined;
177375
+ const viewRect = vp.vpDiv.getBoundingClientRect();
177376
+ const elemRect = this._controls.div.getBoundingClientRect();
177377
+ const controlRect = new _common_ViewRect__WEBPACK_IMPORTED_MODULE_2__.ViewRect(elemRect.left - viewRect.left, elemRect.top - viewRect.top, elemRect.right - viewRect.left, elemRect.bottom - viewRect.top);
177378
+ return controlRect;
177379
+ }
177380
+ updateControlVisibility(isPolar, is3d) {
177381
+ if (undefined === this._controls)
177382
+ return;
177383
+ this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item].hidden = !isPolar;
177384
+ this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item].hidden = !isPolar;
177385
+ this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item].hidden = !isPolar;
177386
+ this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item].hidden = !isPolar;
177387
+ this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item].hidden = isPolar;
177388
+ this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item].hidden = isPolar;
177389
+ this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item].hidden = isPolar;
177390
+ this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item].hidden = isPolar;
177391
+ if (undefined === is3d)
177392
+ return;
177393
+ this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item].hidden = !is3d;
177394
+ this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item].hidden = !is3d;
177395
+ }
177396
+ updateControls(ev) {
177397
+ const vp = ev.viewport;
177398
+ if (undefined === vp || !this.isActive)
177399
+ return;
177400
+ if (undefined !== this._controls && this._controls.overlay.parentElement !== vp.vpDiv)
177401
+ this.removeControls(); // Could be enhanced to save/restore partial input of currently focused item...
177402
+ const props = AccuDrawViewportUI.controlProps;
177403
+ if (undefined === this._controls) {
177404
+ const overlay = vp.addNewDiv("accudraw-overlay", true, 35);
177405
+ const div = this.createControlDiv();
177406
+ const is3dLayout = vp.view.is3d();
177407
+ const isHorizontalLayout = props.horizontalArrangement;
177408
+ overlay.appendChild(div);
177409
+ const createFieldAndLock = (item) => {
177410
+ const itemField = itemFields[item] = this.createItemField(item);
177411
+ itemField.style.top = isHorizontalLayout ? "0" : `${rowOffset}px`;
177412
+ itemField.style.left = isHorizontalLayout ? `${columnOffset}px` : "0";
177413
+ div.appendChild(itemField);
177414
+ if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
177415
+ rowOffset += itemField.offsetHeight * props.rowSpacingFactor;
177416
+ itemWidth = itemField.offsetWidth;
177417
+ itemHeight = itemField.offsetHeight;
177418
+ const itemLock = itemLocks[item] = this.createItemFieldLock(item);
177419
+ itemLock.style.top = itemField.style.top;
177420
+ itemLock.style.left = isHorizontalLayout ? `${columnOffset + itemWidth}px` : `${itemWidth}px`;
177421
+ itemLock.style.width = itemLock.style.height = `${itemHeight}px`; // Make square of same height as text field...
177422
+ div.appendChild(itemLock);
177423
+ lockWidth = itemLock.offsetWidth;
177424
+ if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
177425
+ columnOffset += (itemWidth + lockWidth) * props.columnSpacingFactor;
177426
+ };
177427
+ let rowOffset = 0;
177428
+ let columnOffset = 0;
177429
+ let itemWidth = 0;
177430
+ let itemHeight = 0;
177431
+ let lockWidth = 0;
177432
+ const itemFields = [];
177433
+ const itemLocks = [];
177434
+ createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item);
177435
+ createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item);
177436
+ rowOffset = 0;
177437
+ columnOffset = 0;
177438
+ createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item);
177439
+ createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item);
177440
+ createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item); // Both polar and rectangular modes support Z in 3d views...
177441
+ div.style.width = isHorizontalLayout ? `${columnOffset}px` : `${itemWidth + lockWidth + 5}px`;
177442
+ div.style.height = isHorizontalLayout ? `${itemHeight * props.rowSpacingFactor}px` : `${rowOffset}px`;
177443
+ this._controls = { overlay, div, itemFields, itemLocks };
177444
+ this.updateControlVisibility(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.CompassMode.Polar === this.compassMode, vp.view.is3d());
177445
+ this.setFocusItem(this._focusItem);
177446
+ this.suspendToolTips();
177447
+ vp.onChangeView.addOnce(() => this.removeControls()); // Clear on view change/closure...
177448
+ }
177449
+ const viewRect = vp.viewRect;
177450
+ const position = vp.worldToView(ev.point);
177451
+ if (props.fixedLocation) {
177452
+ position.x = (viewRect.left + ((viewRect.width - this._controls.div.offsetWidth) * 0.5));
177453
+ position.y = (viewRect.bottom - this._controls.div.offsetHeight);
177454
+ }
177455
+ else {
177456
+ position.x += Math.floor(vp.pixelsFromInches(props.cursorOffset.x)) + 0.5;
177457
+ position.y += Math.floor(vp.pixelsFromInches(props.cursorOffset.y)) + 0.5;
177458
+ }
177459
+ const controlRect = new _common_ViewRect__WEBPACK_IMPORTED_MODULE_2__.ViewRect(position.x, position.y, position.x + this._controls.div.offsetWidth, position.y + this._controls.div.offsetHeight);
177460
+ this.modifyControlRect(controlRect, vp);
177461
+ if (!controlRect.isContained(viewRect))
177462
+ return; // Keep showing at last valid location...
177463
+ this._controls.div.style.left = `${controlRect.left}px`;
177464
+ this._controls.div.style.top = `${controlRect.top}px`;
177465
+ }
177466
+ get _isFocusHome() {
177467
+ return (document.body === document.activeElement);
177468
+ }
177469
+ get _isFocusAccuDraw() {
177470
+ return (undefined !== this._controls && document.activeElement?.parentElement === this._controls.itemFields[this._focusItem].parentElement);
177471
+ }
177472
+ setFocusHome() {
177473
+ const element = document.activeElement;
177474
+ if (element && element !== document.body)
177475
+ element.blur();
177476
+ document.body.focus();
177477
+ }
177478
+ /** Return whether keyboard shortcuts can or can't be used.
177479
+ * Used to show a visual indication of whether keyboard shortcuts will be processed.
177480
+ * Keyboard shortcuts can be supported when focus is either on AccuDraw or Home.
177481
+ * When returning false the compass displays in monochrome.
177482
+ */
177483
+ get hasInputFocus() {
177484
+ // Indicate when keyboard shortcuts can't be used (i.e. focus not at AccuDraw or Home) by changing compass to monochrome...
177485
+ return (this._isFocusHome || this._isFocusAccuDraw);
177486
+ }
177487
+ /** Request to set focus to the specified AccuDraw input field to start entering values.
177488
+ * The focused input field will be indicated by the background color.
177489
+ */
177490
+ setFocusItem(index) {
177491
+ this._focusItem = index;
177492
+ if (undefined === this._controls)
177493
+ return;
177494
+ const itemField = this._controls.itemFields[this._focusItem];
177495
+ itemField.focus();
177496
+ }
177497
+ /** Request to set focus to the active AccuDraw input field to start entering values.
177498
+ * The focused input field will be indicated by the background color.
177499
+ */
177500
+ grabInputFocus() {
177501
+ // Set focus to active input field for entering values...
177502
+ if (this._isFocusAccuDraw)
177503
+ return;
177504
+ this.setFocusItem(this._focusItem);
177505
+ }
177506
+ onFocusChange(_ev, item, focusIn) {
177507
+ if (undefined === this._controls)
177508
+ return;
177509
+ // NOTE: Using "setSelectionRange" while value is changing in dynamics isn't pretty, use background+caret color instead...
177510
+ const itemField = this._controls.itemFields[item];
177511
+ itemField.style.backgroundColor = (focusIn ? AccuDrawViewportUI.controlProps.text.focusColor : AccuDrawViewportUI.controlProps.backgroundColor);
177512
+ this.updateItemFieldKeyinStatus(itemField, item);
177513
+ if (!focusIn)
177514
+ this.setDynamicKeyinStatus(item);
177515
+ }
177516
+ /** Change notification for when the compass is shown or hidden.
177517
+ * Used to hide the viewport controls when the compass is no longer displayed.
177518
+ */
177519
+ onCompassDisplayChange(state) {
177520
+ if ("show" === state)
177521
+ return;
177522
+ this.removeControls();
177523
+ }
177524
+ /** Change notification for when the compass mode switches between polar and rectangular inputs.
177525
+ * Used to show or hide the input fields that are applicable to the current mode.
177526
+ */
177527
+ onCompassModeChange() {
177528
+ this.updateControlVisibility(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.CompassMode.Polar === this.compassMode);
177529
+ this.setFocusItem(this.defaultFocusItem());
177530
+ }
177531
+ /** Change notification for when the supplied input field switches between dynamic and partial input.
177532
+ * When an input field is in the dynamic state, its value changes according to the current button event unless the field is locked.
177533
+ * When an input field is in the partial state, its value is not changed or formatted to allow the value to be changed.
177534
+ * Locking a field is expected to change the input state to partial.
177535
+ * Unlocking a field or accepting a value by focusing is expected to change the input state to dynamic.
177536
+ */
177537
+ onFieldKeyinStatusChange(item) {
177538
+ if (undefined === this._controls)
177539
+ return;
177540
+ this.updateItemFieldKeyinStatus(this._controls.itemFields[item], item);
177541
+ }
177542
+ /** Change notification for when the supplied input field value has been modified.
177543
+ * Used to update the displayed input field with the value from the active angle or distance formatter.
177544
+ */
177545
+ onFieldValueChange(item) {
177546
+ if (undefined === this._controls)
177547
+ return;
177548
+ this.updateItemFieldValue(this._controls.itemFields[item], item);
177549
+ }
177550
+ /** Change notification for when the supplied input field lock status is modified.
177551
+ * Used to update the displayed lock toggles to reflect the current state.
177552
+ */
177553
+ onFieldLockChange(item) {
177554
+ if (undefined === this._controls)
177555
+ return;
177556
+ this.updateItemFieldLock(this._controls.itemLocks[item], item);
177557
+ }
177558
+ /** Change notification of a motion event in the view.
177559
+ * Used to show as well as update the dynamic input field values to reflect the current deltas when active.
177560
+ * Automatically switches the focused input field between x and y in rectangular mode based on
177561
+ * cursor position when axis isn't locked to support more intuitive user input and "smart lock" keyboard shortcut.
177562
+ */
177563
+ onMotion(ev) {
177564
+ this.updateControls(ev);
177565
+ this.processMotion();
177566
+ }
177567
+ }
177568
+ /** Settings to control the behavior and visual appearance of the viewport controls.
177569
+ * @note Colors were chosen for visibility against viewport background and contents.
177570
+ */
177571
+ AccuDrawViewportUI.controlProps = {
177572
+ /** Suspend locate tooltip when controls are shown, may wish to disable when using fixed location. */
177573
+ suspendLocateToolTip: true,
177574
+ /** Show controls at a fixed location in the view (currently bottom middle) instead of following the cursor. */
177575
+ fixedLocation: false,
177576
+ /** Layout controls in a single row horizontally instead of in columns vertically as an option when using fixed location. */
177577
+ horizontalArrangement: false,
177578
+ /** When controls follow the cursor, the X and Y offsets applied to the current point to position the top left (values in inches based on screen DPI) */
177579
+ cursorOffset: { x: .4, y: .1 },
177580
+ /** Replace "^", ";", and ".." with "°" or ":" for easier input. */
177581
+ simplifiedInput: true,
177582
+ /** Enable simple math operations not supported by quantity parser. */
177583
+ mathOperations: true,
177584
+ /** Number of visible characters to show in text input fields. */
177585
+ fieldSize: 12,
177586
+ /** Row spacing of text input fields for vertical arrangement. */
177587
+ rowSpacingFactor: 1.2,
177588
+ /** Column spacing of text input fields and buttons for horizontal arrangement. */
177589
+ columnSpacingFactor: 1.1,
177590
+ /** Corner radius of text input fields and locks buttons. */
177591
+ borderRadius: "0.5em",
177592
+ /** Background color of unfocused text input fields and unlocked buttons. */
177593
+ backgroundColor: "rgba(150, 150, 150, 0.5)",
177594
+ /** Settings specific to text input fields and lock button labels. */
177595
+ text: {
177596
+ /** Font family to use for text input field values and button labels. */
177597
+ fontFamily: "sans-serif",
177598
+ /** Font size to use for text input field values and button labels. */
177599
+ fontSize: "9pt",
177600
+ /** Font color to use for text input field values and button labels. */
177601
+ color: "white",
177602
+ /** Background color of focused text input field. */
177603
+ focusColor: "rgba(50, 50, 200, 0.75)",
177604
+ },
177605
+ /** Settings specific to lock buttons. */
177606
+ button: {
177607
+ /** Background color of locked buttons. */
177608
+ pressedColor: "rgba(50, 50, 50, 0.75)",
177609
+ /** Margin to use on left and right to position relative to text input field. */
177610
+ margin: "0.25em",
177611
+ /** Width of border outline. */
177612
+ outlineWidth: "thin",
177613
+ /** Shadow shown when unlocked to make it appear raised. */
177614
+ shadow: "0.25em 0.25em 0.2em rgb(75, 75, 75)",
177615
+ },
177616
+ };
177617
+
177618
+
176663
177619
  /***/ }),
176664
177620
 
176665
177621
  /***/ "../../core/frontend/lib/esm/tools/ClipViewTool.js":
@@ -183936,9 +184892,21 @@ class ToolAdmin {
183936
184892
  this.fillEventFromLastDataButton(ev);
183937
184893
  else
183938
184894
  this.fillEventFromCursorLocation(ev);
183939
- // NOTE: Do not call adjustPoint when snapped, refer to CurrentInputState.fromButton
183940
- if (adjustPoint && undefined !== ev.viewport && undefined === _AccuSnap__WEBPACK_IMPORTED_MODULE_3__.TentativeOrAccuSnap.getCurrentSnap(false))
183941
- this.adjustPoint(ev.point, ev.viewport);
184895
+ if (adjustPoint && undefined !== ev.viewport) {
184896
+ // Use ev.rawPoint for cursor location when not snapped as ev.point gets adjusted in fromButton...
184897
+ const snap = _AccuSnap__WEBPACK_IMPORTED_MODULE_3__.TentativeOrAccuSnap.getCurrentSnap(false);
184898
+ if (undefined !== snap) {
184899
+ // Account for changes to locks, reset and re-adjust snap point...
184900
+ snap.adjustedPoint.setFrom(snap.getPoint());
184901
+ this.adjustSnapPoint();
184902
+ ev.point.setFrom(snap.isPointAdjusted ? snap.adjustedPoint : snap.getPoint());
184903
+ }
184904
+ else {
184905
+ ev.point.setFrom(_IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.tentativePoint.isActive ? _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.tentativePoint.getPoint() : ev.rawPoint);
184906
+ this.adjustPoint(ev.point, ev.viewport);
184907
+ }
184908
+ _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.accuDraw.onMotion(ev);
184909
+ }
183942
184910
  }
183943
184911
  if (undefined === ev.viewport)
183944
184912
  return;
@@ -184256,8 +185224,8 @@ class ToolAdmin {
184256
185224
  _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.accuDraw.onPostButtonEvent(ev);
184257
185225
  if (!updateDynamics)
184258
185226
  return;
184259
- // Update tool dynamics. Use last data button location which was potentially adjusted by onDataButtonDown and not current event
184260
- this.updateDynamics(undefined, true, true);
185227
+ // Update tool dynamics for current cursor location to not require a motion event.
185228
+ this.updateDynamics(undefined, undefined, true);
184261
185229
  }
184262
185230
  async onButtonDown(vp, pt2d, button, inputSource) {
184263
185231
  const filtered = this.filterViewport(vp);
@@ -304108,7 +305076,7 @@ class TestContext {
304108
305076
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
304109
305077
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
304110
305078
  await core_frontend_1.NoRenderApp.startup({
304111
- applicationVersion: "4.11.0-dev.1",
305079
+ applicationVersion: "4.11.0-dev.3",
304112
305080
  applicationId: this.settings.gprid,
304113
305081
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
304114
305082
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -313899,7 +314867,7 @@ class SelectionManager {
313899
314867
  constructor(props) {
313900
314868
  this._imodelToolSelectionSyncHandlers = new Map();
313901
314869
  this._hiliteSetProviders = new Map();
313902
- this._knownIModels = new Map();
314870
+ this._knownIModels = new Set();
313903
314871
  this._currentSelection = new CurrentSelectionStorage();
313904
314872
  this._selectionChanges = new rxjs__WEBPACK_IMPORTED_MODULE_8__.Subject();
313905
314873
  this._listeners = [];
@@ -313910,7 +314878,7 @@ class SelectionManager {
313910
314878
  this._selectionStorage.selectionChangeEvent.addListener((args) => this._selectionChanges.next(args));
313911
314879
  this._selectionEventsSubscription = this.streamSelectionEvents();
313912
314880
  this._listeners.push(_itwin_core_frontend__WEBPACK_IMPORTED_MODULE_1__.IModelConnection.onOpen.addListener((imodel) => {
313913
- this._knownIModels.set(imodel.key, imodel);
314881
+ this._knownIModels.add(imodel);
313914
314882
  }));
313915
314883
  this._listeners.push(_itwin_core_frontend__WEBPACK_IMPORTED_MODULE_1__.IModelConnection.onClose.addListener((imodel) => {
313916
314884
  this.onConnectionClose(imodel);
@@ -313922,7 +314890,7 @@ class SelectionManager {
313922
314890
  }
313923
314891
  onConnectionClose(imodel) {
313924
314892
  this._hiliteSetProviders.delete(imodel);
313925
- this._knownIModels.delete(imodel.key);
314893
+ this._knownIModels.delete(imodel);
313926
314894
  this._currentSelection.clear(imodel.key);
313927
314895
  if (this._ownsStorage) {
313928
314896
  this.clearSelection("Connection Close Event", imodel);
@@ -313988,9 +314956,7 @@ class SelectionManager {
313988
314956
  return this._currentSelection.getSelection(imodel.key, level);
313989
314957
  }
313990
314958
  handleEvent(evt) {
313991
- if (!this._knownIModels.has(evt.imodel.key)) {
313992
- this._knownIModels.set(evt.imodel.key, evt.imodel);
313993
- }
314959
+ this._knownIModels.add(evt.imodel);
313994
314960
  switch (evt.changeType) {
313995
314961
  case _SelectionChangeEvent__WEBPACK_IMPORTED_MODULE_6__.SelectionChangeType.Add:
313996
314962
  this._selectionStorage.addToSelection({
@@ -314166,7 +315132,7 @@ class SelectionManager {
314166
315132
  .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.mergeMap)((args) => {
314167
315133
  const currentSelectables = this._selectionStorage.getSelection({ iModelKey: args.imodelKey, level: args.level });
314168
315134
  return this._currentSelection.computeSelection(args.imodelKey, args.level, currentSelectables, args.selectables).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_9__.mergeMap)(({ level, changedSelection }) => {
314169
- const imodel = this._knownIModels.get(args.imodelKey);
315135
+ const imodel = findIModel(this._knownIModels, args.imodelKey);
314170
315136
  // istanbul ignore if
314171
315137
  if (!imodel) {
314172
315138
  return rxjs__WEBPACK_IMPORTED_MODULE_10__.EMPTY;
@@ -314188,6 +315154,14 @@ class SelectionManager {
314188
315154
  });
314189
315155
  }
314190
315156
  }
315157
+ function findIModel(set, key) {
315158
+ for (const imodel of set) {
315159
+ if (imodel.key === key) {
315160
+ return imodel;
315161
+ }
315162
+ }
315163
+ return undefined;
315164
+ }
314191
315165
  /** @internal */
314192
315166
  class ToolSelectionSyncHandler {
314193
315167
  constructor(imodel, logicalSelection) {
@@ -331684,7 +332658,7 @@ function __disposeResources(env) {
331684
332658
  /***/ ((module) => {
331685
332659
 
331686
332660
  "use strict";
331687
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.11.0-dev.1","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 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","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 --coverage","test:debug":"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:^4.11.0-dev.1","@itwin/core-bentley":"workspace:^4.11.0-dev.1","@itwin/core-common":"workspace:^4.11.0-dev.1","@itwin/core-geometry":"workspace:^4.11.0-dev.1","@itwin/core-orbitgt":"workspace:^4.11.0-dev.1","@itwin/core-quantity":"workspace:^4.11.0-dev.1"},"//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":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","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/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"}}');
332661
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.11.0-dev.3","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 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","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 --coverage","test:debug":"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:^4.11.0-dev.3","@itwin/core-bentley":"workspace:^4.11.0-dev.3","@itwin/core-common":"workspace:^4.11.0-dev.3","@itwin/core-geometry":"workspace:^4.11.0-dev.3","@itwin/core-orbitgt":"workspace:^4.11.0-dev.3","@itwin/core-quantity":"workspace:^4.11.0-dev.3"},"//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":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","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/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@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","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"}}');
331688
332662
 
331689
332663
  /***/ }),
331690
332664