@itwin/ecschema-rpcinterface-tests 5.2.2 → 5.2.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.
@@ -87532,6 +87532,10 @@ class IModelApp {
87532
87532
  IModelApp.requestNextAnimation();
87533
87533
  }, IModelApp.animationInterval.milliseconds);
87534
87534
  }
87535
+ /** Return true if the main event processing loop has been started.
87536
+ * @internal
87537
+ */
87538
+ static get isEventLoopStarted() { return IModelApp._wantEventLoop; }
87535
87539
  /** @internal */
87536
87540
  static startEventLoop() {
87537
87541
  if (!IModelApp._wantEventLoop) {
@@ -89105,7 +89109,7 @@ let iModelJsCss = `
89105
89109
  }
89106
89110
 
89107
89111
  .logo-card-logo {
89108
- width:124px;
89112
+ width:144px;
89109
89113
  overflow:hidden;
89110
89114
  vertical-align:text-top;
89111
89115
  text-align:center
@@ -94775,7 +94779,7 @@ class SubCategoriesCache {
94775
94779
  this._request = cache.load(categoryIds);
94776
94780
  if (undefined === this._request) {
94777
94781
  // All requested categories are already loaded.
94778
- func();
94782
+ func(false);
94779
94783
  return;
94780
94784
  }
94781
94785
  else {
@@ -94795,7 +94799,7 @@ class SubCategoriesCache {
94795
94799
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== this._current);
94796
94800
  if (completed)
94797
94801
  for (const func of this._current.funcs)
94798
- func();
94802
+ func(true);
94799
94803
  this._request = undefined;
94800
94804
  this._current = undefined;
94801
94805
  // If we have more requests, process them.
@@ -94806,7 +94810,7 @@ class SubCategoriesCache {
94806
94810
  if (undefined === this._request) {
94807
94811
  // All categories loaded.
94808
94812
  for (const func of next.funcs)
94809
- func();
94813
+ func(true);
94810
94814
  }
94811
94815
  else {
94812
94816
  // We need to load the requested categories before invoking the pending functions.
@@ -100239,10 +100243,11 @@ class Viewport {
100239
100243
  this.updateSubCategories(categoryIds, enableAllSubCategories);
100240
100244
  }
100241
100245
  updateSubCategories(categoryIds, enableAllSubCategories) {
100242
- this.subcategories.push(this.iModel.subcategories, categoryIds, () => {
100243
- if (enableAllSubCategories)
100246
+ this.subcategories.push(this.iModel.subcategories, categoryIds, (anySubCategoriesLoaded) => {
100247
+ if (true === enableAllSubCategories)
100244
100248
  this.enableAllSubCategories(categoryIds);
100245
- this._changeFlags.setViewedCategories();
100249
+ if (undefined !== enableAllSubCategories || anySubCategoriesLoaded)
100250
+ this._changeFlags.setViewedCategories();
100246
100251
  });
100247
100252
  }
100248
100253
  enableAllSubCategories(categoryIds) {
@@ -100577,6 +100582,10 @@ class Viewport {
100577
100582
  this.registerViewListeners();
100578
100583
  this.view.attachToViewport(this);
100579
100584
  this._mapTiledGraphicsProvider = new _tile_internal__WEBPACK_IMPORTED_MODULE_21__.MapTiledGraphicsProvider(this.viewportId, this.displayStyle);
100585
+ // ViewState.load loads all the subcategories for the categories in its category selector.
100586
+ // But the set of categories may have changed since loading the view.
100587
+ // Ensure we fill the cache for the current set of categories.
100588
+ this.updateSubCategories(this.view.categorySelector.categories, undefined);
100580
100589
  }
100581
100590
  registerViewListeners() {
100582
100591
  const view = this.view;
@@ -100587,6 +100596,7 @@ class Viewport {
100587
100596
  removals.push(view.details.onClipVectorChanged.addListener(() => this.invalidateRenderPlan()));
100588
100597
  removals.push(view.onViewedCategoriesChanged.addListener(() => {
100589
100598
  this._changeFlags.setViewedCategories();
100599
+ this.updateSubCategories(view.categorySelector.categories, undefined);
100590
100600
  this.maybeInvalidateScene();
100591
100601
  }));
100592
100602
  removals.push(view.onDisplayStyleChanged.addListener((newStyle) => {
@@ -145471,6 +145481,9 @@ class RootTile extends DynamicIModelTile {
145471
145481
  get hiddenElements() {
145472
145482
  return this._hiddenElements.toId64Array();
145473
145483
  }
145484
+ get dynamicElements() {
145485
+ return this._elements.array.map((tile) => tile.contentId);
145486
+ }
145474
145487
  get appearanceProvider() {
145475
145488
  return this;
145476
145489
  }
@@ -146845,6 +146858,11 @@ class IModelTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.TileTre
146845
146858
  const state = this._rootTile.tileState;
146846
146859
  return "dynamic" === state.type ? state.rootTile.hiddenElements : [];
146847
146860
  }
146861
+ /** Strictly for tests. */
146862
+ get dynamicElements() {
146863
+ const state = this._rootTile.tileState;
146864
+ return "dynamic" === state.type ? state.rootTile.dynamicElements : [];
146865
+ }
146848
146866
  getTransformNodeRange(nodeId) {
146849
146867
  return this._transformNodeRanges?.get(nodeId);
146850
146868
  }
@@ -173046,37 +173064,93 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173046
173064
  simplifiedInput: true,
173047
173065
  /** Enable simple math operations not supported by quantity parser. */
173048
173066
  mathOperations: true,
173049
- /** Number of visible characters to show in text input fields. */
173050
- fieldSize: 12,
173051
- /** Row spacing of text input fields for vertical arrangement. */
173052
- rowSpacingFactor: 1.2,
173053
- /** Column spacing of text input fields and buttons for horizontal arrangement. */
173054
- columnSpacingFactor: 1.1,
173055
- /** Corner radius of text input fields and locks buttons. */
173056
- borderRadius: "0.5em",
173057
- /** Background color of unfocused text input fields and unlocked buttons. */
173058
- backgroundColor: "rgba(150, 150, 150, 0.5)",
173059
- /** Settings specific to text input fields and lock button labels. */
173060
- text: {
173061
- /** Font family to use for text input field values and button labels. */
173062
- fontFamily: "sans-serif",
173063
- /** Font size to use for text input field values and button labels. */
173064
- fontSize: "9pt",
173065
- /** Font color to use for text input field values and button labels. */
173066
- color: "white",
173067
- /** Background color of focused text input field. */
173068
- focusColor: "rgba(50, 50, 200, 0.75)",
173067
+ /** Settings that apply to both text input fields and lock buttons. */
173068
+ field: {
173069
+ /** Number of visible characters to show in text input fields. */
173070
+ size: 12,
173071
+ /** Height of text input fields and lock buttons. */
173072
+ height: "var(--iui-component-height-small, 1.75em)",
173073
+ /** Border settings for text input fields and lock buttons. */
173074
+ border: {
173075
+ /** Border width to use for text input fields and lock buttons. */
173076
+ width: "1px",
173077
+ /** Border style to use for text input fields and lock buttons. */
173078
+ style: "solid",
173079
+ /** Corner radius of text input fields and locks buttons. */
173080
+ radius: "var(--iui-border-radius-1, 0.25rem)",
173081
+ },
173082
+ /** Settings specific to text input fields and lock button labels. */
173083
+ text: {
173084
+ /** Font family to use for text input field values and button labels. */
173085
+ fontFamily: "var(--iui-font-sans, sans-serif)",
173086
+ /** Font size to use for text input field values and button labels. */
173087
+ fontSize: "var(--iui-font-size-1, 0.875rem)",
173088
+ },
173089
+ },
173090
+ /** Settings specific to text input fields. */
173091
+ input: {
173092
+ /** Font color to use for text input field values. */
173093
+ color: "var(--iui-color-white, white)",
173094
+ /** Padding applied to text input fields. */
173095
+ padding: "0 var(--iui-size-s, 0.5rem)",
173096
+ /** Settings applied to text input fields when they have focus. */
173097
+ focused: {
173098
+ /** Background color for focused text input fields. */
173099
+ backgroundColor: "hsl(var(--iui-color-accent-hsl, 166 96% 30.7%) / var(--iui-opacity-2, 85%))",
173100
+ /** Inner stroke for focused text input fields. */
173101
+ innerStroke: `inset 0px 0px 0px 1px var(--iui-color-background, #333c41)`,
173102
+ /** Border settings for focused text input fields. */
173103
+ border: {
173104
+ /** Border color for focused text input fields. */
173105
+ color: "hsl(var(--iui-color-accent-hsl, 166 96% 51%))",
173106
+ },
173107
+ },
173108
+ /** Settings applied to text input fields when they do not have focus. */
173109
+ unfocused: {
173110
+ /** Background color for unfocused text input fields. */
173111
+ backgroundColor: "hsl(var(--iui-color-background-hsl, 203 6% 21.25%) / var(--iui-opacity-2, 85%))",
173112
+ /** Border settings for unfocused text input fields. */
173113
+ border: {
173114
+ /** Border color for unfocused text input fields. */
173115
+ color: "var(--iui-color-border, hsla(215, 8%, 30%))",
173116
+ },
173117
+ },
173069
173118
  },
173070
173119
  /** Settings specific to lock buttons. */
173071
173120
  button: {
173072
- /** Background color of locked buttons. */
173073
- pressedColor: "rgba(50, 50, 50, 0.75)",
173074
- /** Margin to use on left and right to position relative to text input field. */
173075
- margin: "0.25em",
173076
- /** Width of border outline. */
173077
- outlineWidth: "thin",
173078
- /** Shadow shown when unlocked to make it appear raised. */
173079
- shadow: "0.25em 0.25em 0.2em rgb(75, 75, 75)",
173121
+ /** Padding applied to lock buttons. */
173122
+ padding: "var(--iui-size-2xs, 0.25rem)",
173123
+ /** Settings applied to lock buttons when they are unlocked. */
173124
+ unlocked: {
173125
+ /** Text color for unlocked lock buttons. */
173126
+ color: "var(--iui-color-text-muted, #cccccc)",
173127
+ /** Background color for unlocked lock buttons. */
173128
+ backgroundColor: "hsl(var(--iui-color-background-hsl, 203 6% 21.25%) / var(--iui-opacity-2, 85%))",
173129
+ /** Border settings for unlocked lock buttons. */
173130
+ border: {
173131
+ /** Border color for unlocked lock buttons. */
173132
+ color: "var(--iui-color-border, hsla(215, 8%, 30%))",
173133
+ },
173134
+ },
173135
+ /** Settings applied to lock buttons when they are locked. */
173136
+ locked: {
173137
+ /** Text color for locked lock buttons. */
173138
+ color: "hsla(0, 0%, 100%, 1)",
173139
+ /** Background color for locked lock buttons. */
173140
+ backgroundColor: "hsla(0, 0%, 100%, 0.16)",
173141
+ /** Border settings for locked lock buttons. */
173142
+ border: {
173143
+ /** Border color for locked lock buttons. */
173144
+ color: "hsla(0, 0%, 100%, 1)",
173145
+ },
173146
+ },
173147
+ },
173148
+ /** Spacing between fields within a control and between rows of controls. */
173149
+ spacing: {
173150
+ /** Spacing between input field and lock button within each field group. */
173151
+ gap: "var(--iui-size-2xs, 0.25rem)",
173152
+ /** Spacing between field groups (distance/angle, x, y, z controls). */
173153
+ margin: "var(--iui-size-s, 0.75rem)",
173080
173154
  },
173081
173155
  };
173082
173156
  /** Create a new instance of this class to set as [[IModelAppOptions.accuDraw]] for this session. */
@@ -173328,7 +173402,9 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173328
173402
  if (itemField.selectionStart !== (moveLeft ? operatorPosIns + this._expression.operator.length : operatorPosIns))
173329
173403
  break;
173330
173404
  // Treat expression operator string as a single character when moving the text insertion cursor...
173331
- itemField.selectionStart = itemField.selectionEnd = (moveLeft ? operatorPosIns : operatorPosIns + this._expression.operator.length);
173405
+ itemField.selectionStart = itemField.selectionEnd = moveLeft
173406
+ ? operatorPosIns
173407
+ : operatorPosIns + this._expression.operator.length;
173332
173408
  ev.preventDefault();
173333
173409
  return true;
173334
173410
  case "Backspace":
@@ -173439,10 +173515,18 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173439
173515
  div.className = "accudraw-controls";
173440
173516
  const style = div.style;
173441
173517
  style.pointerEvents = "none";
173442
- style.overflow = "visible"; // Don't clip/hide outline or shadow...
173443
173518
  style.position = "absolute";
173444
- style.top = style.left = "0";
173445
- style.height = style.width = "100%";
173519
+ style.display = "flex";
173520
+ const isHorizontal = AccuDrawViewportUI.controlProps.horizontalArrangement;
173521
+ style.flexDirection = isHorizontal ? "row" : "column";
173522
+ if (isHorizontal) {
173523
+ // Make the space between each control group bigger than the space between fields within a group
173524
+ style.columnGap = AccuDrawViewportUI.controlProps.spacing.margin;
173525
+ }
173526
+ else {
173527
+ // Make the space between each control group equal than the space between fields within a group
173528
+ style.rowGap = AccuDrawViewportUI.controlProps.spacing.gap;
173529
+ }
173446
173530
  return div;
173447
173531
  }
173448
173532
  updateItemFieldKeyinStatus(itemField, item) {
@@ -173458,27 +173542,52 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173458
173542
  }
173459
173543
  updateItemFieldLock(itemLock, item) {
173460
173544
  const locked = this.getFieldLock(item);
173461
- itemLock.style.outlineStyle = locked ? "inset" : "outset";
173462
- itemLock.style.boxShadow = locked ? "none" : AccuDrawViewportUI.controlProps.button.shadow;
173463
- itemLock.style.backgroundColor = locked ? AccuDrawViewportUI.controlProps.button.pressedColor : AccuDrawViewportUI.controlProps.backgroundColor;
173545
+ itemLock.style.backgroundColor = locked
173546
+ ? AccuDrawViewportUI.controlProps.button.locked.backgroundColor
173547
+ : AccuDrawViewportUI.controlProps.button.unlocked.backgroundColor;
173548
+ itemLock.style.border = `${AccuDrawViewportUI.controlProps.field.border.width} ${AccuDrawViewportUI.controlProps.field.border.style} ${locked
173549
+ ? AccuDrawViewportUI.controlProps.button.locked.border.color
173550
+ : AccuDrawViewportUI.controlProps.button.unlocked.border.color}`;
173551
+ itemLock.style.color = locked
173552
+ ? AccuDrawViewportUI.controlProps.button.locked.color
173553
+ : AccuDrawViewportUI.controlProps.button.unlocked.color;
173464
173554
  }
173465
173555
  initializeItemStyle(style, isButton) {
173466
173556
  style.pointerEvents = "none"; // Don't receive pointer events...
173467
- style.position = "absolute";
173468
173557
  style.textWrap = "nowrap";
173469
173558
  style.textAnchor = "top";
173470
- style.textAlign = isButton ? "center" : "left";
173559
+ style.boxSizing = "border-box";
173471
173560
  const controlProps = AccuDrawViewportUI.controlProps;
173472
- style.fontFamily = controlProps.text.fontFamily;
173473
- style.fontSize = controlProps.text.fontSize;
173474
- style.color = controlProps.text.color;
173475
- style.backgroundColor = controlProps.backgroundColor;
173476
- style.borderRadius = controlProps.borderRadius;
173561
+ style.height = controlProps.field.height;
173562
+ const baseBorder = `${controlProps.field.border.width} ${controlProps.field.border.style} `;
173563
+ switch (isButton) {
173564
+ case true:
173565
+ style.display = "flex";
173566
+ style.justifyContent = "center";
173567
+ style.alignItems = "center";
173568
+ style.backgroundColor = controlProps.button.unlocked.backgroundColor;
173569
+ style.padding = controlProps.button.padding;
173570
+ style.border = baseBorder + controlProps.button.unlocked.border.color;
173571
+ style.color = controlProps.button.unlocked.color;
173572
+ style.aspectRatio = "1";
173573
+ break;
173574
+ case false:
173575
+ style.backgroundColor = controlProps.input.unfocused.backgroundColor;
173576
+ style.outline = "none";
173577
+ style.padding = controlProps.input.padding;
173578
+ style.border = baseBorder + controlProps.input.unfocused.border.color;
173579
+ style.color = controlProps.input.color;
173580
+ style.width = "120px";
173581
+ break;
173582
+ }
173583
+ style.fontFamily = controlProps.field.text.fontFamily;
173584
+ style.fontSize = controlProps.field.text.fontSize;
173585
+ style.borderRadius = controlProps.field.border.radius;
173477
173586
  }
173478
173587
  createItemField(item) {
173479
173588
  const itemField = document.createElement("input");
173480
173589
  itemField.contentEditable = "true";
173481
- itemField.size = AccuDrawViewportUI.controlProps.fieldSize;
173590
+ itemField.size = AccuDrawViewportUI.controlProps.field.size;
173482
173591
  const style = itemField.style;
173483
173592
  this.initializeItemStyle(style, false);
173484
173593
  this.updateItemFieldValue(itemField, item);
@@ -173486,7 +173595,6 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173486
173595
  itemField.onkeyup = async (ev) => { await this.onKeyboardEvent(ev, false); };
173487
173596
  itemField.onfocus = (ev) => { this.onFocusChange(ev, item, true); };
173488
173597
  itemField.onblur = (ev) => { this.onFocusChange(ev, item, false); };
173489
- ;
173490
173598
  return itemField;
173491
173599
  }
173492
173600
  createItemFieldLock(item) {
@@ -173514,10 +173622,6 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173514
173622
  const style = itemLock.style;
173515
173623
  this.initializeItemStyle(style, true);
173516
173624
  this.updateItemFieldLock(itemLock, item);
173517
- const button = AccuDrawViewportUI.controlProps.button;
173518
- style.paddingLeft = style.paddingRight = "0";
173519
- style.marginLeft = style.marginRight = button.margin;
173520
- style.outlineWidth = button.outlineWidth;
173521
173625
  return itemLock;
173522
173626
  }
173523
173627
  /** Called after the controls have been removed from the view. */
@@ -173538,18 +173642,23 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173538
173642
  updateControlVisibility(isPolar, is3d) {
173539
173643
  if (undefined === this._controls)
173540
173644
  return;
173541
- this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item].hidden = !isPolar;
173542
- this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item].hidden = !isPolar;
173543
- this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item].hidden = !isPolar;
173544
- this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item].hidden = !isPolar;
173545
- this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item].hidden = isPolar;
173546
- this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item].hidden = isPolar;
173547
- this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item].hidden = isPolar;
173548
- this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item].hidden = isPolar;
173645
+ const angleWrapper = this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item]
173646
+ .parentElement;
173647
+ const distWrapper = this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item]
173648
+ .parentElement;
173649
+ const xWrapper = this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item]
173650
+ .parentElement;
173651
+ const yWrapper = this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item]
173652
+ .parentElement;
173653
+ const zWrapper = this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item]
173654
+ .parentElement;
173655
+ angleWrapper.style.display = !isPolar ? "none" : "flex";
173656
+ distWrapper.style.display = !isPolar ? "none" : "flex";
173657
+ xWrapper.style.display = isPolar ? "none" : "flex";
173658
+ yWrapper.style.display = isPolar ? "none" : "flex";
173549
173659
  if (undefined === is3d)
173550
173660
  return;
173551
- this._controls.itemFields[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item].hidden = !is3d;
173552
- this._controls.itemLocks[_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item].hidden = !is3d;
173661
+ zWrapper.style.display = !is3d ? "none" : "flex";
173553
173662
  }
173554
173663
  updateControls(ev) {
173555
173664
  const vp = ev.viewport;
@@ -173561,43 +173670,28 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173561
173670
  if (undefined === this._controls) {
173562
173671
  const overlay = vp.addNewDiv("accudraw-overlay", true, 35);
173563
173672
  const div = this.createControlDiv();
173564
- const is3dLayout = this.is3dCompass(vp);
173565
- const isHorizontalLayout = props.horizontalArrangement;
173566
173673
  overlay.appendChild(div);
173567
173674
  const createFieldAndLock = (item) => {
173568
- const itemField = itemFields[item] = this.createItemField(item);
173569
- itemField.style.top = isHorizontalLayout ? "0" : `${rowOffset}px`;
173570
- itemField.style.left = isHorizontalLayout ? `${columnOffset}px` : "0";
173571
- div.appendChild(itemField);
173572
- if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
173573
- rowOffset += itemField.offsetHeight * props.rowSpacingFactor;
173574
- itemWidth = itemField.offsetWidth;
173575
- itemHeight = itemField.offsetHeight;
173576
- const itemLock = itemLocks[item] = this.createItemFieldLock(item);
173577
- itemLock.style.top = itemField.style.top;
173578
- itemLock.style.left = isHorizontalLayout ? `${columnOffset + itemWidth}px` : `${itemWidth}px`;
173579
- itemLock.style.width = itemLock.style.height = `${itemHeight}px`; // Make square of same height as text field...
173580
- div.appendChild(itemLock);
173581
- lockWidth = itemLock.offsetWidth;
173582
- if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
173583
- columnOffset += (itemWidth + lockWidth) * props.columnSpacingFactor;
173675
+ const fieldWrapper = document.createElement("div");
173676
+ fieldWrapper.style.display = "flex";
173677
+ fieldWrapper.style.flexDirection = "row";
173678
+ fieldWrapper.style.alignItems = "center";
173679
+ fieldWrapper.style.justifyContent = "center";
173680
+ fieldWrapper.style.columnGap = AccuDrawViewportUI.controlProps.spacing.gap;
173681
+ fieldWrapper.style.rowGap = AccuDrawViewportUI.controlProps.spacing.gap;
173682
+ const itemField = (itemFields[item] = this.createItemField(item));
173683
+ fieldWrapper.appendChild(itemField);
173684
+ const itemLock = (itemLocks[item] = this.createItemFieldLock(item));
173685
+ fieldWrapper.appendChild(itemLock);
173686
+ div.appendChild(fieldWrapper);
173584
173687
  };
173585
- let rowOffset = 0;
173586
- let columnOffset = 0;
173587
- let itemWidth = 0;
173588
- let itemHeight = 0;
173589
- let lockWidth = 0;
173590
173688
  const itemFields = [];
173591
173689
  const itemLocks = [];
173592
173690
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.DIST_Item);
173593
173691
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.ANGLE_Item);
173594
- rowOffset = 0;
173595
- columnOffset = 0;
173596
173692
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.X_Item);
173597
173693
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item);
173598
173694
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item); // Both polar and rectangular modes support Z in 3d views...
173599
- div.style.width = isHorizontalLayout ? `${columnOffset}px` : `${itemWidth + lockWidth + 5}px`;
173600
- div.style.height = isHorizontalLayout ? `${itemHeight * props.rowSpacingFactor}px` : `${rowOffset}px`;
173601
173695
  this._controls = { overlay, div, itemFields, itemLocks };
173602
173696
  this.updateControlVisibility(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.CompassMode.Polar === this.compassMode, this.is3dCompass(vp));
173603
173697
  this.setFocusItem(this._focusItem);
@@ -173608,7 +173702,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173608
173702
  const position = vp.worldToView(ev.point);
173609
173703
  if (props.fixedLocation) {
173610
173704
  position.x = (viewRect.left + ((viewRect.width - this._controls.div.offsetWidth) * 0.5));
173611
- position.y = (viewRect.bottom - this._controls.div.offsetHeight);
173705
+ position.y = (viewRect.bottom - this._controls.div.offsetHeight * 1.2);
173612
173706
  }
173613
173707
  else {
173614
173708
  position.x += Math.floor(vp.pixelsFromInches(props.cursorOffset.x)) + 0.5;
@@ -173675,7 +173769,15 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
173675
173769
  return;
173676
173770
  // NOTE: Using "setSelectionRange" while value is changing in dynamics isn't pretty, use background+caret color instead...
173677
173771
  const itemField = this._controls.itemFields[item];
173678
- itemField.style.backgroundColor = (focusIn ? AccuDrawViewportUI.controlProps.text.focusColor : AccuDrawViewportUI.controlProps.backgroundColor);
173772
+ itemField.style.backgroundColor = focusIn
173773
+ ? AccuDrawViewportUI.controlProps.input.focused.backgroundColor
173774
+ : AccuDrawViewportUI.controlProps.input.unfocused.backgroundColor;
173775
+ itemField.style.border = focusIn
173776
+ ? `${AccuDrawViewportUI.controlProps.field.border.width} ${AccuDrawViewportUI.controlProps.field.border.style} ${AccuDrawViewportUI.controlProps.input.focused.border.color}`
173777
+ : `${AccuDrawViewportUI.controlProps.field.border.width} ${AccuDrawViewportUI.controlProps.field.border.style} ${AccuDrawViewportUI.controlProps.input.unfocused.border.color}`;
173778
+ itemField.style.boxShadow = focusIn
173779
+ ? AccuDrawViewportUI.controlProps.input.focused.innerStroke
173780
+ : "none";
173679
173781
  this.updateItemFieldKeyinStatus(itemField, item);
173680
173782
  if (!focusIn)
173681
173783
  this.setDynamicKeyinStatus(item);
@@ -181124,6 +181226,9 @@ class ToolAdmin {
181124
181226
  * @internal
181125
181227
  */
181126
181228
  static addEvent(ev, vp) {
181229
+ // Don't add events to queue if event loop hasn't been started to process them...
181230
+ if (!_IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.isEventLoopStarted)
181231
+ return;
181127
181232
  if (!ToolAdmin.tryReplace(ev, vp)) // see if this event replaces the last event in the queue
181128
181233
  this._toolEvents.push({ ev, vp }); // otherwise put it at the end of the queue.
181129
181234
  _IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.requestNextAnimation(); // wake up event loop, if
@@ -320819,7 +320924,7 @@ var loadLanguages = instance.loadLanguages;
320819
320924
  /***/ ((module) => {
320820
320925
 
320821
320926
  "use strict";
320822
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.2.2","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 && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./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","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/eslint-plugin":"5.2.2-dev.2","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.3.4","@loaders.gl/draco":"^4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
320927
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.2.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 && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./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","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/eslint-plugin":"5.2.2-dev.2","@types/chai-as-promised":"^7","@types/draco3d":"^1.4.10","@types/sinon":"^17.0.2","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.31.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","sinon":"^17.0.2","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.3.4","@loaders.gl/draco":"^4.3.4","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
320823
320928
 
320824
320929
  /***/ })
320825
320930