@itwin/ecschema-rpcinterface-tests 5.0.0-dev.112 → 5.0.0-dev.113

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.
@@ -59183,13 +59183,13 @@ var CurrentImdlVersion;
59183
59183
  * front-end is not capable of reading the tile content. Otherwise, this front-end can read the tile content even if the header specifies a
59184
59184
  * greater minor version than CurrentVersion.Minor, although some data may be skipped.
59185
59185
  */
59186
- CurrentImdlVersion[CurrentImdlVersion["Major"] = 36] = "Major";
59186
+ CurrentImdlVersion[CurrentImdlVersion["Major"] = 37] = "Major";
59187
59187
  /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can
59188
59188
  * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.
59189
59189
  */
59190
59190
  CurrentImdlVersion[CurrentImdlVersion["Minor"] = 0] = "Minor";
59191
59191
  /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */
59192
- CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2359296] = "Combined";
59192
+ CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2424832] = "Combined";
59193
59193
  })(CurrentImdlVersion || (CurrentImdlVersion = {}));
59194
59194
  /** Header embedded at the beginning of binary tile data in iMdl format describing its contents.
59195
59195
  * @internal
@@ -59534,6 +59534,7 @@ var TileOptions;
59534
59534
  disableMagnification: false,
59535
59535
  alwaysSubdivideIncompleteTiles: false,
59536
59536
  edgeOptions,
59537
+ disablePolyfaceDecimation: 0 !== (tree.flags & TreeFlags.DisablePolyfaceDecimation),
59537
59538
  };
59538
59539
  }
59539
59540
  TileOptions.fromTreeIdAndContentId = fromTreeIdAndContentId;
@@ -59568,14 +59569,15 @@ class Parser {
59568
59569
  }
59569
59570
  if (Object.keys(parsedContentId).some((key) => parsedContentId.hasOwnProperty(key) && typeof parsedContentId[key] === "number" && !Number.isFinite(parsedContentId[key])))
59570
59571
  throw new Error("Invalid content Id");
59572
+ const disablePolyfaceDecimation = options.disablePolyfaceDecimation;
59571
59573
  let treeId;
59572
59574
  if (classifier) {
59573
- treeId = { ...classifier, animationId };
59575
+ treeId = { ...classifier, animationId, disablePolyfaceDecimation };
59574
59576
  }
59575
59577
  else {
59576
59578
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== primary);
59577
59579
  const enforceDisplayPriority = (treeFlags & TreeFlags.EnforceDisplayPriority) !== 0 ? true : undefined;
59578
- treeId = { ...primary, animationId, type: _FeatureTable__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary, enforceDisplayPriority };
59580
+ treeId = { ...primary, animationId, type: _FeatureTable__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary, enforceDisplayPriority, disablePolyfaceDecimation };
59579
59581
  }
59580
59582
  return {
59581
59583
  contentId: parsedContentId,
@@ -59678,6 +59680,7 @@ const defaultTileOptions = Object.freeze({
59678
59680
  useLargerTiles: true,
59679
59681
  disableMagnification: false,
59680
59682
  alwaysSubdivideIncompleteTiles: false,
59683
+ disablePolyfaceDecimation: false,
59681
59684
  edgeOptions: {
59682
59685
  type: "compact",
59683
59686
  smooth: true,
@@ -59773,7 +59776,8 @@ var TreeFlags;
59773
59776
  TreeFlags[TreeFlags["EnforceDisplayPriority"] = 2] = "EnforceDisplayPriority";
59774
59777
  TreeFlags[TreeFlags["OptimizeBRepProcessing"] = 4] = "OptimizeBRepProcessing";
59775
59778
  TreeFlags[TreeFlags["UseLargerTiles"] = 8] = "UseLargerTiles";
59776
- TreeFlags[TreeFlags["ExpandProjectExtents"] = 16] = "ExpandProjectExtents"; // If UseProjectExtents, round them up/down to nearest powers of ten.
59779
+ TreeFlags[TreeFlags["ExpandProjectExtents"] = 16] = "ExpandProjectExtents";
59780
+ TreeFlags[TreeFlags["DisablePolyfaceDecimation"] = 32] = "DisablePolyfaceDecimation";
59777
59781
  })(TreeFlags || (TreeFlags = {}));
59778
59782
  function animationIdToString(animationId) {
59779
59783
  return `A:${animationId}_`;
@@ -59786,6 +59790,8 @@ function iModelTileTreeIdToString(modelId, treeId, options) {
59786
59790
  let flags = options.useProjectExtents ? TreeFlags.UseProjectExtents : TreeFlags.None;
59787
59791
  if (options.optimizeBRepProcessing)
59788
59792
  flags |= TreeFlags.OptimizeBRepProcessing;
59793
+ if (options.disablePolyfaceDecimation)
59794
+ flags |= TreeFlags.DisablePolyfaceDecimation;
59789
59795
  if (options.useLargerTiles)
59790
59796
  flags |= TreeFlags.UseLargerTiles;
59791
59797
  if (options.expandProjectExtents)
@@ -69908,6 +69914,7 @@ __webpack_require__.r(__webpack_exports__);
69908
69914
 
69909
69915
 
69910
69916
 
69917
+ const loggerCategory = "SchemaFormatsProvider";
69911
69918
  /**
69912
69919
  * Provides default formats and kind of quantities from a given SchemaContext or SchemaLocater.
69913
69920
  * @beta
@@ -69946,7 +69953,14 @@ class SchemaFormatsProvider {
69946
69953
  this.onFormatsChanged.raiseEvent({ formatsChanged });
69947
69954
  }
69948
69955
  async getKindOfQuantityFormatFromSchema(itemKey) {
69949
- const kindOfQuantity = await this._context.getSchemaItem(itemKey, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_5__.KindOfQuantity);
69956
+ let kindOfQuantity;
69957
+ try {
69958
+ kindOfQuantity = await this._context.getSchemaItem(itemKey, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_5__.KindOfQuantity);
69959
+ }
69960
+ catch {
69961
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_4__.Logger.logError(loggerCategory, `Failed to find KindOfQuantity ${itemKey.fullName}`);
69962
+ return undefined;
69963
+ }
69950
69964
  if (!kindOfQuantity) {
69951
69965
  return undefined;
69952
69966
  }
@@ -69991,13 +70005,27 @@ class SchemaFormatsProvider {
69991
70005
  async getFormat(name) {
69992
70006
  const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_2__.SchemaItem.parseFullName(name);
69993
70007
  const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
69994
- const schema = await this._context.getSchema(schemaKey);
70008
+ let schema;
70009
+ try {
70010
+ schema = await this._context.getSchema(schemaKey);
70011
+ }
70012
+ catch {
70013
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_4__.Logger.logError(loggerCategory, `Failed to find schema ${schemaName}`);
70014
+ return undefined;
70015
+ }
69995
70016
  if (!schema) {
69996
70017
  return undefined;
69997
70018
  }
69998
70019
  const itemKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaItemKey(schemaItemName, schema.schemaKey);
69999
70020
  if (schema.name === "Formats") {
70000
- const format = await this._context.getSchemaItem(itemKey, _Metadata_Format__WEBPACK_IMPORTED_MODULE_3__.Format);
70021
+ let format;
70022
+ try {
70023
+ format = await this._context.getSchemaItem(itemKey, _Metadata_Format__WEBPACK_IMPORTED_MODULE_3__.Format);
70024
+ }
70025
+ catch {
70026
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_4__.Logger.logError(loggerCategory, `Failed to find Format ${itemKey.fullName}`);
70027
+ return undefined;
70028
+ }
70001
70029
  if (!format) {
70002
70030
  return undefined;
70003
70031
  }
@@ -83579,7 +83607,7 @@ __webpack_require__.r(__webpack_exports__);
83579
83607
 
83580
83608
  /** @public */
83581
83609
  const ITWINJS_CORE_VERSION = _package_json__WEBPACK_IMPORTED_MODULE_0__.version;
83582
- const COPYRIGHT_NOTICE = 'Copyright © 2017-2024 <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>';
83610
+ const COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>`;
83583
83611
 
83584
83612
 
83585
83613
 
@@ -83655,6 +83683,7 @@ class IModelApp {
83655
83683
  static _hubAccess;
83656
83684
  static _realityDataAccess;
83657
83685
  static _publicPath;
83686
+ static _formatsProviderManager;
83658
83687
  // No instances of IModelApp may be created. All members are static and must be on the singleton object IModelApp.
83659
83688
  constructor() { }
83660
83689
  /** Event raised just before the frontend IModelApp is to be [[shutdown]]. */
@@ -83729,6 +83758,14 @@ class IModelApp {
83729
83758
  * The path should always end with a trailing `/`.
83730
83759
  */
83731
83760
  static get publicPath() { return this._publicPath; }
83761
+ /** The [[FormatsProvider]] for this session.
83762
+ * @param provider The provider to use for formatting quantities.
83763
+ * @beta
83764
+ */
83765
+ static get formatsProvider() { return this._formatsProviderManager; }
83766
+ static set formatsProvider(provider) {
83767
+ this._formatsProviderManager.formatsProvider = provider;
83768
+ }
83732
83769
  /** @alpha */
83733
83770
  static extensionAdmin = this._createExtensionAdmin();
83734
83771
  /** Map of classFullName to EntityState class */
@@ -83829,6 +83866,7 @@ class IModelApp {
83829
83866
  this._terrainProviderRegistry = new _tile_internal__WEBPACK_IMPORTED_MODULE_26__.TerrainProviderRegistry();
83830
83867
  this._realityDataSourceProviders = new _RealityDataSource__WEBPACK_IMPORTED_MODULE_25__.RealityDataSourceProviderRegistry();
83831
83868
  this._realityDataAccess = opts.realityDataAccess;
83869
+ this._formatsProviderManager = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.FormatsProviderManager(opts.formatsProvider ?? new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider());
83832
83870
  this._publicPath = opts.publicPath ?? "";
83833
83871
  [
83834
83872
  this.renderSystem,
@@ -83860,6 +83898,8 @@ class IModelApp {
83860
83898
  this._entityClasses.clear();
83861
83899
  this.authorizationClient = undefined;
83862
83900
  this._initialized = false;
83901
+ this.quantityFormatter[Symbol.dispose]();
83902
+ this.resetFormatsProvider();
83863
83903
  this.onAfterStartup.clear();
83864
83904
  }
83865
83905
  /** Controls how frequently the application polls for changes that may require a new animation frame to be requested.
@@ -84110,6 +84150,13 @@ class IModelApp {
84110
84150
  }
84111
84151
  return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);
84112
84152
  }
84153
+ /**
84154
+ * Resets the formatsProvider back to the default [[QuantityTypeFormatsProvider]].
84155
+ * @beta
84156
+ */
84157
+ static resetFormatsProvider() {
84158
+ this.formatsProvider = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider();
84159
+ }
84113
84160
  /**
84114
84161
  * Creates an instance of the ExtensionAdmin
84115
84162
  * and registers an event to execute after startup is complete
@@ -96330,6 +96377,10 @@ class Viewport {
96330
96377
  changeBackgroundMapProvider(props) {
96331
96378
  this.displayStyle.changeBackgroundMapProvider(props);
96332
96379
  }
96380
+ /** A reference to the [[TileTree]] used to display the background map in this viewport, if the background map is being displayed. */
96381
+ get backgroundMapTileTreeReference() {
96382
+ return this.backgroundMap;
96383
+ }
96333
96384
  /** @internal */
96334
96385
  get backgroundMap() { return this._mapTiledGraphicsProvider?.backgroundMap; }
96335
96386
  /** @internal */
@@ -107001,6 +107052,7 @@ __webpack_require__.r(__webpack_exports__);
107001
107052
  /* harmony export */ FlashMode: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashMode),
107002
107053
  /* harmony export */ FlashSettings: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashSettings),
107003
107054
  /* harmony export */ FlyViewTool: () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_114__.FlyViewTool),
107055
+ /* harmony export */ FormatsProviderManager: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.FormatsProviderManager),
107004
107056
  /* harmony export */ FormattedQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_70__.FormattedQuantityDescription),
107005
107057
  /* harmony export */ FrontendLoggerCategory: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_10__.FrontendLoggerCategory),
107006
107058
  /* harmony export */ Frustum2d: () => (/* reexport safe */ _Frustum2d__WEBPACK_IMPORTED_MODULE_24__.Frustum2d),
@@ -107129,6 +107181,7 @@ __webpack_require__.r(__webpack_exports__);
107129
107181
  /* harmony export */ QuadId: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_99__.QuadId),
107130
107182
  /* harmony export */ QuantityFormatter: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityFormatter),
107131
107183
  /* harmony export */ QuantityType: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityType),
107184
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityTypeFormatsProvider),
107132
107185
  /* harmony export */ RealityDataError: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataError),
107133
107186
  /* harmony export */ RealityDataSource: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSource),
107134
107187
  /* harmony export */ RealityDataSourceProviderRegistry: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSourceProviderRegistry),
@@ -108200,7 +108253,7 @@ __webpack_require__.r(__webpack_exports__);
108200
108253
  * @internal
108201
108254
  */
108202
108255
  async function loadScript(jsUrl) {
108203
- const module = await __webpack_require__("../../core/frontend/lib/esm/extension/providers lazy recursive")(jsUrl);
108256
+ const module = await import(/* webpackIgnore: true */ /* @vite-ignore */ jsUrl);
108204
108257
  return execute(module);
108205
108258
  }
108206
108259
  /** attempts to execute an extension module */
@@ -140541,8 +140594,9 @@ function createClassifierTileTreeReference(classifiers, classifiedTree, iModel,
140541
140594
  return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);
140542
140595
  }
140543
140596
  function createClassifierId(classifier, source) {
140597
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.disablePolyfaceDecimation;
140544
140598
  if (undefined === classifier)
140545
- return { modelId: _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.invalid, type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.PlanarClassifier, expansion: 0, animationId: undefined };
140599
+ return { modelId: _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.invalid, type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.PlanarClassifier, expansion: 0, animationId: undefined, disablePolyfaceDecimation };
140546
140600
  const type = classifier.flags.isVolumeClassifier ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.VolumeClassifier : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.PlanarClassifier;
140547
140601
  const scriptInfo = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.getScriptInfoForTreeId(classifier.modelId, source ? source[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_5__._scheduleScriptReference] : undefined);
140548
140602
  return {
@@ -140551,6 +140605,7 @@ function createClassifierId(classifier, source) {
140551
140605
  expansion: classifier.expand,
140552
140606
  animationId: scriptInfo?.animationId,
140553
140607
  timeline: scriptInfo?.timeline,
140608
+ disablePolyfaceDecimation,
140554
140609
  };
140555
140610
  }
140556
140611
 
@@ -144547,7 +144602,8 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
144547
144602
  const edgesRequired = visibleEdges || _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.SmoothShade !== renderMode || _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.alwaysRequestEdges;
144548
144603
  const edges = edgesRequired ? _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.edgeOptions : false;
144549
144604
  const sectionCut = this._sectionClip?.clipString;
144550
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut };
144605
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation;
144606
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut, disablePolyfaceDecimation };
144551
144607
  }
144552
144608
  computeBaseTransform(tree) {
144553
144609
  return super.computeTransform(tree);
@@ -144700,7 +144756,7 @@ class MaskTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.Tile
144700
144756
  return this._owner;
144701
144757
  }
144702
144758
  createTreeId() {
144703
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
144759
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
144704
144760
  }
144705
144761
  }
144706
144762
  function createMaskTreeReference(view, model) {
@@ -144726,7 +144782,7 @@ class ModelMapLayerTileTreeReference extends _tile_internal__WEBPACK_IMPORTED_MO
144726
144782
  this._owner = primaryTreeSupplier.getOwner(this._id, this.iModel);
144727
144783
  }
144728
144784
  createTreeId() {
144729
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
144785
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
144730
144786
  }
144731
144787
  get treeOwner() {
144732
144788
  const newId = this.createTreeId();
@@ -150018,11 +150074,19 @@ __webpack_require__.r(__webpack_exports__);
150018
150074
  * @beta
150019
150075
  */
150020
150076
  class AngleDescription extends _FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_2__.FormattedQuantityDescription {
150021
- constructor(name, displayLabel, iconSpec) {
150077
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
150022
150078
  const defaultName = "angle";
150023
- super(name ? name : defaultName, displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Angle"), iconSpec);
150079
+ super({
150080
+ name: name ? name : defaultName,
150081
+ displayLabel: displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Angle"),
150082
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.ANGLE",
150083
+ iconSpec
150084
+ });
150024
150085
  }
150025
150086
  get formatterQuantityType() { return _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_1__.QuantityType.Angle; }
150087
+ /**
150088
+ * @deprecated in 5.0. Use the `kindOfQuantityName` property instead.
150089
+ */
150026
150090
  get quantityType() { return "Angle"; }
150027
150091
  get parseError() { return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseAngle"); }
150028
150092
  }
@@ -150061,8 +150125,14 @@ __webpack_require__.r(__webpack_exports__);
150061
150125
  class FormattedQuantityDescription extends _itwin_appui_abstract__WEBPACK_IMPORTED_MODULE_1__.BaseQuantityDescription {
150062
150126
  _formatterSpec;
150063
150127
  _parserSpec;
150064
- constructor(name, displayLabel, iconSpec) {
150065
- super(name, displayLabel, iconSpec);
150128
+ constructor(argsOrName, displayLabel, iconSpec, kindOfQuantityName) {
150129
+ if (typeof argsOrName === "string") {
150130
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
150131
+ super(argsOrName, displayLabel, iconSpec, kindOfQuantityName);
150132
+ }
150133
+ else {
150134
+ super(argsOrName.name, argsOrName.displayLabel, argsOrName.iconSpec, argsOrName.kindOfQuantityName);
150135
+ }
150066
150136
  }
150067
150137
  formatValue(numberValue) {
150068
150138
  if (this.formatterSpec) {
@@ -150138,11 +150208,19 @@ __webpack_require__.r(__webpack_exports__);
150138
150208
  * @beta
150139
150209
  */
150140
150210
  class LengthDescription extends _FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_2__.FormattedQuantityDescription {
150141
- constructor(name, displayLabel, iconSpec) {
150211
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
150142
150212
  const defaultName = "length";
150143
- super(name ? name : defaultName, displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
150213
+ super({
150214
+ name: name ? name : defaultName,
150215
+ displayLabel: displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
150216
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
150217
+ iconSpec,
150218
+ });
150144
150219
  }
150145
150220
  get formatterQuantityType() { return _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_1__.QuantityType.Length; }
150221
+ /**
150222
+ * @deprecated in 5.0. Use the `kindOfQuantityName` property instead.
150223
+ */
150146
150224
  get quantityType() { return "Length"; }
150147
150225
  get parseError() { return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
150148
150226
  }
@@ -150151,11 +150229,19 @@ class LengthDescription extends _FormattedQuantityDescription__WEBPACK_IMPORTED_
150151
150229
  * @beta
150152
150230
  */
150153
150231
  class SurveyLengthDescription extends _FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_2__.FormattedQuantityDescription {
150154
- constructor(name, displayLabel, iconSpec) {
150232
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
150155
150233
  const defaultName = "surveyLength";
150156
- super(name ? name : defaultName, displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
150234
+ super({
150235
+ name: name ? name : defaultName,
150236
+ displayLabel: displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
150237
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
150238
+ iconSpec,
150239
+ });
150157
150240
  }
150158
150241
  get formatterQuantityType() { return _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_1__.QuantityType.LengthSurvey; }
150242
+ /**
150243
+ * @deprecated in 5.0. Use the `kindOfQuantityName` property instead.
150244
+ */
150159
150245
  get quantityType() { return "LengthSurvey"; }
150160
150246
  get parseError() { return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
150161
150247
  }
@@ -150164,11 +150250,19 @@ class SurveyLengthDescription extends _FormattedQuantityDescription__WEBPACK_IMP
150164
150250
  * @beta
150165
150251
  */
150166
150252
  class EngineeringLengthDescription extends _FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_2__.FormattedQuantityDescription {
150167
- constructor(name, displayLabel, iconSpec) {
150253
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
150168
150254
  const defaultName = "engineeringLength";
150169
- super(name ? name : defaultName, displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
150255
+ super({
150256
+ name: name ? name : defaultName,
150257
+ displayLabel: displayLabel ? displayLabel : _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
150258
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
150259
+ iconSpec,
150260
+ });
150170
150261
  }
150171
150262
  get formatterQuantityType() { return _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_1__.QuantityType.LengthEngineering; }
150263
+ /**
150264
+ * @deprecated in 5.0. Use the `kindOfQuantityName` property instead.
150265
+ */
150172
150266
  get quantityType() { return "LengthEngineering"; }
150173
150267
  get parseError() { return _IModelApp__WEBPACK_IMPORTED_MODULE_0__.IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
150174
150268
  }
@@ -150583,8 +150677,10 @@ class LocalUnitFormatProvider extends _BaseUnitFormattingSettingsProvider__WEBPA
150583
150677
  __webpack_require__.r(__webpack_exports__);
150584
150678
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
150585
150679
  /* harmony export */ AlternateUnitLabelsRegistry: () => (/* binding */ AlternateUnitLabelsRegistry),
150680
+ /* harmony export */ FormatsProviderManager: () => (/* binding */ FormatsProviderManager),
150586
150681
  /* harmony export */ QuantityFormatter: () => (/* binding */ QuantityFormatter),
150587
150682
  /* harmony export */ QuantityType: () => (/* binding */ QuantityType),
150683
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* binding */ QuantityTypeFormatsProvider),
150588
150684
  /* harmony export */ getQuantityTypeKey: () => (/* binding */ getQuantityTypeKey),
150589
150685
  /* harmony export */ isCustomQuantityTypeDefinition: () => (/* binding */ isCustomQuantityTypeDefinition)
150590
150686
  /* harmony export */ });
@@ -150730,12 +150826,66 @@ class StandardQuantityTypeDefinition {
150730
150826
  return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, unitsProvider, this.persistenceUnit, alternateUnitLabelsProvider);
150731
150827
  }
150732
150828
  }
150829
+ /**
150830
+ * A default formatsProvider, that provides a limited set of [[FormatDefinition]], associated to a few [[KindOfQuantity]].
150831
+ * Maps each KindOfQuantity to a [[QuantityType]].
150832
+ * When retrieving a valid [[KindOfQuantity]], returns the [[FormatProps]] for the associated [[QuantityType]].
150833
+ * @internal
150834
+ */
150835
+ class QuantityTypeFormatsProvider {
150836
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
150837
+ constructor() {
150838
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
150839
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
150840
+ });
150841
+ }
150842
+ _kindOfQuantityMap = new Map([
150843
+ ["AecUnits.LENGTH", QuantityType.Length],
150844
+ ["AecUnits.ANGLE", QuantityType.Angle],
150845
+ ["AecUnits.AREA", QuantityType.Area],
150846
+ ["AecUnits.VOLUME", QuantityType.Volume],
150847
+ ["RoadRailUnits.STATION", QuantityType.Stationing],
150848
+ ["RoadRailUnits.LENGTH", QuantityType.LengthSurvey],
150849
+ ]);
150850
+ async getFormat(name) {
150851
+ const quantityType = this._kindOfQuantityMap.get(name);
150852
+ if (!quantityType)
150853
+ return undefined;
150854
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
150855
+ }
150856
+ }
150857
+ /**
150858
+ * An implementation of the [[FormatsProvider]] interface that forwards calls to getFormats to the underlying FormatsProvider.
150859
+ * Also fires the onFormatsChanged event when the underlying FormatsProvider fires its own onFormatsChanged event.
150860
+ * @internal
150861
+ */
150862
+ class FormatsProviderManager {
150863
+ _formatsProvider;
150864
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
150865
+ constructor(_formatsProvider) {
150866
+ this._formatsProvider = _formatsProvider;
150867
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
150868
+ this.onFormatsChanged.raiseEvent(args);
150869
+ });
150870
+ }
150871
+ async getFormat(name) {
150872
+ return this._formatsProvider.getFormat(name);
150873
+ }
150874
+ get formatsProvider() { return this; }
150875
+ set formatsProvider(formatsProvider) {
150876
+ this._formatsProvider = formatsProvider;
150877
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
150878
+ this.onFormatsChanged.raiseEvent(args);
150879
+ });
150880
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
150881
+ }
150882
+ }
150733
150883
  /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
150734
150884
  * the "active" unit system and caches FormatterSpecs and ParserSpecs for the "active" unit system to allow synchronous access to
150735
150885
  * parsing and formatting values. The support unit systems are defined by [[UnitSystemKey]] and is kept in synch with the unit systems
150736
150886
  * provided by the Presentation Manager on the backend. The QuantityFormatter contains a registry of quantity type definitions. These definitions implement
150737
- * the [[QuantityTypeDefinition]] interface, which among other things, provide default [FormatProps]$(core-quantity), and provide methods
150738
- * to generate both a [FormatterSpec]$(core-quantity) and a [ParserSpec]$(core-quantity). There are built-in quantity types that are
150887
+ * the [[QuantityTypeDefinition]] interface, which among other things, provide default [[FormatProps]], and provide methods
150888
+ * to generate both a [[FormatterSpec]] and a [[ParserSpec]]. There are built-in quantity types that are
150739
150889
  * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
150740
150890
  * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
150741
150891
  *
@@ -150746,6 +150896,10 @@ class QuantityFormatter {
150746
150896
  _alternateUnitLabelsRegistry = new AlternateUnitLabelsRegistry((0,_BasicUnitsProvider__WEBPACK_IMPORTED_MODULE_4__.getDefaultAlternateUnitLabels)());
150747
150897
  /** Registry containing available quantity type definitions. */
150748
150898
  _quantityTypeRegistry = new Map();
150899
+ /** Registry containing available FormatterSpec and ParserSpec, mapped by keys.
150900
+ * @beta
150901
+ */
150902
+ _formatSpecsRegistry = new Map();
150749
150903
  /** Active UnitSystem key - must be one of "imperial", "metric", "usCustomary", or "usSurvey". */
150750
150904
  _activeUnitSystem = "imperial";
150751
150905
  /** Map of FormatSpecs for all available QuantityTypes and the active Unit System */
@@ -150772,6 +150926,7 @@ class QuantityFormatter {
150772
150926
  onQuantityFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeUiEvent();
150773
150927
  /** Fired when the active UnitsProvider is updated. This will allow cached Formatter and Parser specs to be updated if necessary. */
150774
150928
  onUnitsProviderChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeUiEvent();
150929
+ _removeFormatsProviderListener;
150775
150930
  /**
150776
150931
  * constructor
150777
150932
  * @param showMetricOrUnitSystem - Pass in `true` to show Metric formatted quantity values. Defaults to Imperial. To explicitly
@@ -150785,6 +150940,12 @@ class QuantityFormatter {
150785
150940
  this._activeUnitSystem = showMetricOrUnitSystem;
150786
150941
  }
150787
150942
  }
150943
+ [Symbol.dispose]() {
150944
+ if (this._removeFormatsProviderListener) {
150945
+ this._removeFormatsProviderListener();
150946
+ this._removeFormatsProviderListener = undefined;
150947
+ }
150948
+ }
150788
150949
  getOverrideFormatPropsByQuantityType(quantityTypeKey, unitSystem) {
150789
150950
  const requestedUnitSystem = unitSystem ?? this.activeUnitSystem;
150790
150951
  const overrideMap = this._overrideFormatPropsByUnitSystem.get(requestedUnitSystem);
@@ -150910,6 +151071,46 @@ class QuantityFormatter {
150910
151071
  */
150911
151072
  async onInitialized() {
150912
151073
  await this.initializeQuantityTypesRegistry();
151074
+ const initialKoQs = [["AecUnits.LENGTH", "Units.M"], ["AecUnits.ANGLE", "Units.RAD"], ["AecUnits.AREA", "Units.SQ_M"], ["AecUnits.VOLUME", "Units.CUB_M"], ["RoadRailUnits.STATION", "Units.M"], ["RoadRailUnits.LENGTH", "Units.M"]];
151075
+ for (const entry of initialKoQs) {
151076
+ try {
151077
+ await this.addFormattingSpecsToRegistry(entry[0], entry[1]);
151078
+ }
151079
+ catch (err) {
151080
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, err.toString());
151081
+ }
151082
+ }
151083
+ this._removeFormatsProviderListener = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
151084
+ if (args.formatsChanged === "all") {
151085
+ for (const [name, entry] of this._formatSpecsRegistry.entries()) {
151086
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(name);
151087
+ if (formatProps) {
151088
+ const persistenceUnitName = entry.formatterSpec.persistenceUnit.name;
151089
+ await this.addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps);
151090
+ }
151091
+ else {
151092
+ this._formatSpecsRegistry.delete(name); // clear the specs if format was removed, or no longer exists.
151093
+ }
151094
+ }
151095
+ }
151096
+ else {
151097
+ for (const name of args.formatsChanged) {
151098
+ if (this._formatSpecsRegistry.has(name)) {
151099
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(name);
151100
+ if (formatProps) {
151101
+ const existingEntry = this._formatSpecsRegistry.get(name);
151102
+ if (existingEntry) {
151103
+ const persistenceUnitName = existingEntry.formatterSpec.persistenceUnit.name;
151104
+ await this.addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps);
151105
+ }
151106
+ }
151107
+ else {
151108
+ this._formatSpecsRegistry.delete(name);
151109
+ }
151110
+ }
151111
+ }
151112
+ }
151113
+ });
150913
151114
  // initialize default format and parsing specs
150914
151115
  await this.loadFormatAndParsingMapsForSystem();
150915
151116
  }
@@ -151139,26 +151340,51 @@ class QuantityFormatter {
151139
151340
  requestedSystem = isImperial ? "imperial" : "metric";
151140
151341
  return this.getParserSpecByQuantityTypeAndSystem(type, requestedSystem);
151141
151342
  }
151142
- /** Generates a formatted string for a quantity given its format spec.
151143
- * @param magnitude The magnitude of the quantity.
151144
- * @param formatSpec The format specification. See methods getFormatterSpecByQuantityType and findFormatterSpecByQuantityType.
151145
- * @return the formatted string.
151146
- */
151147
- formatQuantity(magnitude, formatSpec) {
151148
- /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
151149
- if (formatSpec)
151150
- return formatSpec.applyFormatting(magnitude);
151151
- return magnitude.toString();
151343
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
151344
+ formatQuantity(args, spec) {
151345
+ if (typeof args === "number") {
151346
+ /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
151347
+ const magnitude = args;
151348
+ if (spec)
151349
+ return spec.applyFormatting(magnitude);
151350
+ return magnitude.toString();
151351
+ }
151352
+ return this.formatQuantityAsync(args);
151353
+ }
151354
+ async formatQuantityAsync(args) {
151355
+ const { value, valueUnitName, kindOfQuantityName } = args;
151356
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
151357
+ if (!formatProps)
151358
+ return value.toString();
151359
+ const formatSpec = await this.createFormatterSpec({
151360
+ persistenceUnitName: valueUnitName,
151361
+ formatProps,
151362
+ formatName: kindOfQuantityName,
151363
+ });
151364
+ return formatSpec.applyFormatting(value);
151152
151365
  }
151153
- /** Parse input string into quantity given the ParserSpec
151154
- * @param inString The magnitude of the quantity.
151155
- * @param parserSpec The parse specification the defines the expected format of the string and the conversion to the output unit.
151156
- * @return QuantityParseResult object containing either the parsed value or an error value if unsuccessful.
151157
- */
151158
- parseToQuantityValue(inString, parserSpec) {
151159
- if (parserSpec)
151160
- return parserSpec.parseToQuantityValue(inString);
151161
- return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151366
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
151367
+ parseToQuantityValue(args, parserSpec) {
151368
+ if (typeof args === "string") {
151369
+ /** Parse a quantity value. Default ParserSpec implementation uses ParserSpec.parseToQuantityValue. */
151370
+ const inString = args;
151371
+ if (parserSpec)
151372
+ return parserSpec.parseToQuantityValue(inString);
151373
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151374
+ }
151375
+ return this.parseToQuantityValueAsync(args);
151376
+ }
151377
+ async parseToQuantityValueAsync(args) {
151378
+ const { value, valueUnitName, kindOfQuantityName } = args;
151379
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
151380
+ if (!formatProps)
151381
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151382
+ const parserSpec = await this.createParserSpec({
151383
+ persistenceUnitName: valueUnitName,
151384
+ formatProps,
151385
+ formatName: kindOfQuantityName,
151386
+ });
151387
+ return parserSpec.parseToQuantityValue(value);
151162
151388
  }
151163
151389
  /**
151164
151390
  * Get a UnitSystemKey from a string that may have been entered via a key-in. Supports different variation of
@@ -151228,6 +151454,63 @@ class QuantityFormatter {
151228
151454
  async getConversion(fromUnit, toUnit) {
151229
151455
  return this._unitsProvider.getConversion(fromUnit, toUnit);
151230
151456
  }
151457
+ /**
151458
+ * Creates a [[FormatterSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
151459
+ * @beta
151460
+ * @param props - A [[CreateFormattingSpecProps]] interface.
151461
+ */
151462
+ async createFormatterSpec(props) {
151463
+ const { persistenceUnitName, formatProps, formatName } = props;
151464
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
151465
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
151466
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.FormatterSpec.create(`${format.name}_format_spec`, format, this._unitsProvider, persistenceUnitProps);
151467
+ }
151468
+ /**
151469
+ * Creates a [[ParserSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
151470
+ * @beta
151471
+ * @param props - A [[CreateFormattingSpecProps]] object.
151472
+ */
151473
+ async createParserSpec(props) {
151474
+ const { persistenceUnitName, formatProps, formatName } = props;
151475
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
151476
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
151477
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, this._unitsProvider, persistenceUnitProps);
151478
+ }
151479
+ /**
151480
+ * @beta
151481
+ * Returns a [[FormattingSpecEntry]] for a given name, typically a KindOfQuantity full name.
151482
+ */
151483
+ getSpecsByName(name) {
151484
+ return this._formatSpecsRegistry.get(name);
151485
+ }
151486
+ /**
151487
+ * Populates the registry with a new FormatterSpec and ParserSpec entry for the given format name.
151488
+ * @beta
151489
+ * @param name The key used to identify the formatter and parser spec
151490
+ * @param persistenceUnitName The name of the persistence unit
151491
+ * @param formatProps If not supplied, tries to retrieve the [[FormatProps]] from [[IModelApp.formatsProvider]]
151492
+ */
151493
+ async addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps) {
151494
+ if (!formatProps) {
151495
+ formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(name);
151496
+ }
151497
+ if (formatProps) {
151498
+ const formatterSpec = await this.createFormatterSpec({
151499
+ persistenceUnitName,
151500
+ formatProps,
151501
+ formatName: name,
151502
+ });
151503
+ const parserSpec = await this.createParserSpec({
151504
+ persistenceUnitName,
151505
+ formatProps,
151506
+ formatName: name,
151507
+ });
151508
+ this._formatSpecsRegistry.set(name, { formatterSpec, parserSpec });
151509
+ }
151510
+ else {
151511
+ throw new Error(`Unable to find format properties for ${name} with persistence unit ${persistenceUnitName}`);
151512
+ }
151513
+ }
151231
151514
  }
151232
151515
  // ========================================================================================================================================
151233
151516
  // Default Data
@@ -158268,6 +158551,8 @@ class TileAdmin {
158268
158551
  /** @internal */
158269
158552
  optimizeBRepProcessing;
158270
158553
  /** @internal */
158554
+ disablePolyfaceDecimation;
158555
+ /** @internal */
158271
158556
  useLargerTiles;
158272
158557
  /** @internal */
158273
158558
  maximumLevelsToSkip;
@@ -158356,6 +158641,7 @@ class TileAdmin {
158356
158641
  this.useProjectExtents = options.useProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useProjectExtents;
158357
158642
  this.expandProjectExtents = options.expandProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.expandProjectExtents;
158358
158643
  this.optimizeBRepProcessing = options.optimizeBRepProcessing ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.optimizeBRepProcessing;
158644
+ this.disablePolyfaceDecimation = options.disablePolyfaceDecimation ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.disablePolyfaceDecimation;
158359
158645
  this.useLargerTiles = options.useLargerTiles ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useLargerTiles;
158360
158646
  this.mobileRealityTileMinToleranceRatio = Math.max(options.mobileRealityTileMinToleranceRatio ?? 3.0, 1.0);
158361
158647
  this.cesiumIonKey = options.cesiumIonKey;
@@ -171632,11 +171918,10 @@ __webpack_require__.r(__webpack_exports__);
171632
171918
  /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
171633
171919
  /* harmony import */ var _Marker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Marker */ "../../core/frontend/lib/esm/Marker.js");
171634
171920
  /* harmony import */ var _NotificationManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../NotificationManager */ "../../core/frontend/lib/esm/NotificationManager.js");
171635
- /* harmony import */ var _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../quantity-formatting/QuantityFormatter */ "../../core/frontend/lib/esm/quantity-formatting/QuantityFormatter.js");
171636
- /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
171637
- /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
171638
- /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
171639
- /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
171921
+ /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
171922
+ /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
171923
+ /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
171924
+ /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
171640
171925
  /*---------------------------------------------------------------------------------------------
171641
171926
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
171642
171927
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -171657,9 +171942,18 @@ __webpack_require__.r(__webpack_exports__);
171657
171942
 
171658
171943
 
171659
171944
 
171660
-
171661
171945
  function translateBold(key) {
171662
- return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
171946
+ return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
171947
+ }
171948
+ async function getFormatterSpecByKoQAndPersistenceUnit(koq, persistenceUnitName) {
171949
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.getFormat(koq);
171950
+ if (undefined === formatProps)
171951
+ return undefined;
171952
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.createFormatterSpec({
171953
+ persistenceUnitName,
171954
+ formatProps,
171955
+ formatName: koq
171956
+ });
171663
171957
  }
171664
171958
  /** @internal */
171665
171959
  class MeasureLabel {
@@ -171723,7 +172017,7 @@ class MeasureMarker extends _Marker__WEBPACK_IMPORTED_MODULE_7__.Marker {
171723
172017
  onMouseButton(_ev) { return true; } // Never forward event to active tool...
171724
172018
  onMouseEnter(ev) {
171725
172019
  super.onMouseEnter(ev);
171726
- if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_11__.InputSource.Touch === ev.inputSource && ev.viewport)
172020
+ if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_10__.InputSource.Touch === ev.inputSource && ev.viewport)
171727
172021
  ev.viewport.openToolTip(this.title, ev.viewPoint, this.tooltipOptions);
171728
172022
  }
171729
172023
  onMouseLeave() {
@@ -171760,7 +172054,7 @@ function adjustPoint(ev, segments, locations) {
171760
172054
  /** Report distance between 2 points using current quantity formatter for length.
171761
172055
  * @public
171762
172056
  */
171763
- class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172057
+ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
171764
172058
  static toolId = "Measure.Distance";
171765
172059
  static iconSpec = "icon-measure-distance";
171766
172060
  /** @internal */
@@ -171778,6 +172072,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171778
172072
  /** @internal */
171779
172073
  _lastMotionAdjustedPt;
171780
172074
  /** @internal */
172075
+ _lengthFormatterSpec;
172076
+ /** @internal */
172077
+ _angleFormatterSpec;
172078
+ /** @internal */
172079
+ _removeFormatterListener;
172080
+ /** @internal */
171781
172081
  allowView(vp) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }
171782
172082
  /** @internal */
171783
172083
  isCompatibleViewport(vp, isSelectedViewChange) { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }
@@ -171788,34 +172088,50 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171788
172088
  /** @internal */
171789
172089
  async onPostInstall() {
171790
172090
  await super.onPostInstall();
172091
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172092
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
172093
+ this._removeFormatterListener = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
172094
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.LENGTH"))
172095
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172096
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.ANGLE"))
172097
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
172098
+ });
171791
172099
  this.setupAndPromptForNextAction();
171792
172100
  }
171793
172101
  /** @internal */
172102
+ async onCleanup() {
172103
+ if (this._removeFormatterListener) {
172104
+ this._removeFormatterListener();
172105
+ this._removeFormatterListener = undefined;
172106
+ }
172107
+ await super.onCleanup();
172108
+ }
172109
+ /** @internal */
171794
172110
  async onUnsuspend() { this.showPrompt(); }
171795
172111
  /** @internal */
171796
172112
  showPrompt() {
171797
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(0 === this._locationData.length ? "Measure.Distance.Prompts.FirstPoint" : "Measure.Distance.Prompts.NextPoint"));
172113
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(0 === this._locationData.length ? "Measure.Distance.Prompts.FirstPoint" : "Measure.Distance.Prompts.NextPoint"));
171798
172114
  const mouseInstructions = [];
171799
172115
  const touchInstructions = [];
171800
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
171801
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
171802
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172116
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172117
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172118
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
171803
172119
  if (0 === this._locationData.length) {
171804
172120
  if (this._acceptedSegments.length > 0) {
171805
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
171806
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172121
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172122
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
171807
172123
  }
171808
172124
  }
171809
172125
  else {
171810
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Cancel"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
171811
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Cancel"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
171812
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.ctrlKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AdditionalPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
171813
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createKeyboardInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createKeyboardInfo([_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.ctrlKey, "Z"]), _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.UndoLastPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172126
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Cancel"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172127
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Cancel"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172128
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.ctrlKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AdditionalPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172129
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createKeyboardInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createKeyboardInfo([_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.ctrlKey, "Z"]), _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.UndoLastPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
171814
172130
  }
171815
172131
  const sections = [];
171816
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
171817
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
171818
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172132
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172133
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172134
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
171819
172135
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
171820
172136
  }
171821
172137
  /** @internal */
@@ -171861,8 +172177,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171861
172177
  totalDistance += adjustedPoints[i].distance(adjustedPoints[i + 1]);
171862
172178
  if (0.0 === totalDistance)
171863
172179
  return;
171864
- const formatterSpec = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
171865
- if (undefined === formatterSpec)
172180
+ const formatterSpec = this._lengthFormatterSpec;
172181
+ if (formatterSpec === undefined)
171866
172182
  return;
171867
172183
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(totalDistance, formatterSpec);
171868
172184
  const distDyn = new MeasureLabel(points[points.length - 1], formattedTotalDistance);
@@ -171876,7 +172192,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171876
172192
  seg.refAxes.multiplyVectorInPlace(xVec);
171877
172193
  seg.refAxes.multiplyVectorInPlace(yVec);
171878
172194
  seg.refAxes.multiplyVectorInPlace(zVec);
171879
- const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172195
+ const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171880
172196
  let basePt = seg.start.clone();
171881
172197
  if (xVec.magnitude() > 1.0e-5) {
171882
172198
  const segPoints = [];
@@ -171923,12 +172239,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171923
172239
  }
171924
172240
  tmpPoints.push(this._lastMotionPt);
171925
172241
  tmpAdjustedPoints.push(this._lastMotionAdjustedPt);
171926
- const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
172242
+ const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
171927
172243
  const colorDynVis = context.viewport.hilite.color;
171928
172244
  builderDynVis.setSymbology(colorDynVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
171929
172245
  builderDynVis.addLineString(tmpPoints);
171930
172246
  context.addDecorationFromBuilder(builderDynVis);
171931
- const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172247
+ const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171932
172248
  const colorDynHid = colorDynVis.withAlpha(100);
171933
172249
  builderDynHid.setSymbology(colorDynHid, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 1, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.LinePixels.Code2);
171934
172250
  builderDynHid.addLineString(tmpPoints);
@@ -171936,8 +172252,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171936
172252
  this.displayDynamicDistance(context, tmpPoints, tmpAdjustedPoints);
171937
172253
  }
171938
172254
  if (this._acceptedSegments.length > 0) {
171939
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
171940
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172255
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
172256
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171941
172257
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
171942
172258
  const colorAccHid = colorAccVis.withAlpha(100);
171943
172259
  builderAccVis.setSymbology(colorAccVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
@@ -171959,7 +172275,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171959
172275
  return;
171960
172276
  if (undefined === this._snapGeomId)
171961
172277
  this._snapGeomId = this.iModel.transientIds.getNext();
171962
- const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
172278
+ const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
171963
172279
  const colorAccPts = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
171964
172280
  builderSnapPts.setSymbology(colorAccPts, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 7);
171965
172281
  builderSnapPts.addPointString(snapPoints);
@@ -171988,7 +172304,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171988
172304
  reportMeasurements() {
171989
172305
  if (undefined === this._totalDistanceMarker)
171990
172306
  return;
171991
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
172307
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
171992
172308
  const msgDetail = new _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessagePriority.Info, briefMsg, undefined, _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessageType.Sticky);
171993
172309
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
171994
172310
  }
@@ -171999,7 +172315,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171999
172315
  this._totalDistance += seg.distance;
172000
172316
  if (0.0 === this._totalDistance)
172001
172317
  return;
172002
- const formatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172318
+ const formatterSpec = this._lengthFormatterSpec;
172003
172319
  if (undefined === formatterSpec)
172004
172320
  return;
172005
172321
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalDistance, formatterSpec);
@@ -172010,20 +172326,20 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172010
172326
  const is3d = (undefined === this.targetView || this.targetView.view.is3d());
172011
172327
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172012
172328
  const toolTip = document.createElement("div");
172013
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172329
+ const distanceFormatterSpec = this._lengthFormatterSpec;
172014
172330
  if (undefined === distanceFormatterSpec)
172015
172331
  return toolTip;
172016
172332
  let toolTipHtml = "";
172017
172333
  const formattedDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(distance, distanceFormatterSpec);
172018
172334
  toolTipHtml += `${translateBold("Distance") + formattedDistance}<br>`;
172019
172335
  if (is3d) {
172020
- const angleFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Angle);
172336
+ const angleFormatterSpec = this._angleFormatterSpec;
172021
172337
  if (undefined !== angleFormatterSpec) {
172022
172338
  const formattedSlope = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(slope, angleFormatterSpec);
172023
172339
  toolTipHtml += `${translateBold("Slope") + formattedSlope}<br>`;
172024
172340
  }
172025
172341
  }
172026
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172342
+ const coordFormatterSpec = this._lengthFormatterSpec;
172027
172343
  if (undefined !== coordFormatterSpec) {
172028
172344
  let startAdjusted = start;
172029
172345
  let endAdjusted = end;
@@ -172168,19 +172484,19 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172168
172484
  this.setupAndPromptForNextAction();
172169
172485
  if (undefined !== ev.viewport)
172170
172486
  ev.viewport.invalidateDecorations();
172171
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172487
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172172
172488
  }
172173
172489
  /** @internal */
172174
172490
  async onResetButtonUp(ev) {
172175
172491
  if (0 === this._locationData.length) {
172176
172492
  await this.onReinitialize();
172177
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172493
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172178
172494
  }
172179
172495
  await this.acceptNewSegments();
172180
172496
  this.setupAndPromptForNextAction();
172181
172497
  if (undefined !== ev.viewport)
172182
172498
  ev.viewport.invalidateDecorations();
172183
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172499
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172184
172500
  }
172185
172501
  /** @internal */
172186
172502
  async onUndoPreviousStep() {
@@ -172211,7 +172527,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172211
172527
  /** Report spatial coordinate at a point as well as cartographic location for geolocated models using current quantity formatters.
172212
172528
  * @public
172213
172529
  */
172214
- class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172530
+ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172215
172531
  static toolId = "Measure.Location";
172216
172532
  static iconSpec = "icon-measure-location";
172217
172533
  /** @internal */
@@ -172233,20 +172549,20 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172233
172549
  async onUnsuspend() { this.showPrompt(); }
172234
172550
  /** @internal */
172235
172551
  showPrompt() {
172236
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
172552
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
172237
172553
  const mouseInstructions = [];
172238
172554
  const touchInstructions = [];
172239
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172240
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172241
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172555
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172556
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172557
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172242
172558
  if (0 !== this._acceptedLocations.length) {
172243
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172244
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172559
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172560
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172245
172561
  }
172246
172562
  const sections = [];
172247
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172248
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172249
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172563
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172564
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172565
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172250
172566
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172251
172567
  }
172252
172568
  /** @internal */
@@ -172259,7 +172575,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172259
172575
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172260
172576
  const toolTip = document.createElement("div");
172261
172577
  let toolTipHtml = "";
172262
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172578
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172263
172579
  if (undefined !== coordFormatterSpec) {
172264
172580
  let pointAdjusted = point;
172265
172581
  if (isSpatial) {
@@ -172275,15 +172591,15 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172275
172591
  toolTipHtml += "<br>";
172276
172592
  }
172277
172593
  if (isSpatial) {
172278
- const latLongFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.LatLong);
172594
+ const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
172279
172595
  if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec) {
172280
172596
  try {
172281
172597
  const cartographic = await this.iModel.spatialToCartographic(point);
172282
172598
  const formattedLat = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.latitude), latLongFormatterSpec);
172283
172599
  const formattedLong = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.longitude), latLongFormatterSpec);
172284
172600
  const formattedHeight = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);
172285
- const latDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
172286
- const longDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
172601
+ const latDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
172602
+ const longDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
172287
172603
  toolTipHtml += `${translateBold("LatLong") + formattedLat + latDir}, ${formattedLong}${longDir}<br>`;
172288
172604
  toolTipHtml += `${translateBold("Altitude") + formattedHeight}<br>`;
172289
172605
  }
@@ -172321,12 +172637,12 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172321
172637
  this.setupAndPromptForNextAction();
172322
172638
  if (undefined !== ev.viewport)
172323
172639
  ev.viewport.invalidateDecorations();
172324
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172640
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172325
172641
  }
172326
172642
  /** @internal */
172327
172643
  async onResetButtonUp(_ev) {
172328
172644
  await this.onReinitialize();
172329
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172645
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172330
172646
  }
172331
172647
  /** @internal */
172332
172648
  async onUndoPreviousStep() {
@@ -172352,7 +172668,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172352
172668
  /** Report area defined by points using current quantity formatter for area.
172353
172669
  * @public
172354
172670
  */
172355
- class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172671
+ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172356
172672
  static toolId = "Measure.AreaByPoints";
172357
172673
  static iconSpec = "icon-measure-2d";
172358
172674
  /** @internal */
@@ -172381,12 +172697,12 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172381
172697
  /** @internal */
172382
172698
  static _orientationName = "enumAsOrientation";
172383
172699
  /** @internal */
172384
- static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Settings.Orientation.${str}`); }
172700
+ static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Settings.Orientation.${str}`); }
172385
172701
  /** @internal */
172386
172702
  static _getEnumAsOrientationDescription = () => {
172387
172703
  return {
172388
172704
  name: MeasureAreaByPointsTool._orientationName,
172389
- displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Settings.Orientation.Label"),
172705
+ displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Settings.Orientation.Label"),
172390
172706
  typename: "enum",
172391
172707
  enum: {
172392
172708
  choices: [
@@ -172454,24 +172770,24 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172454
172770
  mainMsg += this._isComplete ? "FirstPoint" : "NextPoint";
172455
172771
  break;
172456
172772
  }
172457
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
172773
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
172458
172774
  const mouseInstructions = [];
172459
172775
  const touchInstructions = [];
172460
- const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
172461
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172462
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.OneTouchTap, acceptMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172463
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, acceptMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172464
- const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart");
172465
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, resetMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172466
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, resetMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172776
+ const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
172777
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172778
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.OneTouchTap, acceptMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172779
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, acceptMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172780
+ const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart");
172781
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, resetMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
172782
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, resetMsg, false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172467
172783
  if (this._points.length > 1)
172468
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.ctrlKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AdditionalPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172784
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createModifierKeyInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.ctrlKey, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AdditionalPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172469
172785
  if (0 !== this._points.length)
172470
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createKeyboardInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createKeyboardInfo([_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.ctrlKey, "Z"]), _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.UndoLastPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172786
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createKeyboardInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createKeyboardInfo([_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.ctrlKey, "Z"]), _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.UndoLastPoint"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172471
172787
  const sections = [];
172472
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172473
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172474
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172788
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172789
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172790
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172475
172791
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172476
172792
  }
172477
172793
  /** @internal */
@@ -172515,7 +172831,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172515
172831
  let currentPt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(cursorPt, points[0], normal, this.targetView, true);
172516
172832
  if (undefined === currentPt)
172517
172833
  currentPt = cursorPt.clone();
172518
- if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_11__.BeModifierKeys.Control)) {
172834
+ if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_10__.BeModifierKeys.Control)) {
172519
172835
  const xDir = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(points[0], points[1]);
172520
172836
  const xLen = xDir.magnitude();
172521
172837
  xDir.normalizeInPlace();
@@ -172541,8 +172857,8 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172541
172857
  const points = this.getShapePoints(this._lastMotionPt);
172542
172858
  if (points.length < 2)
172543
172859
  return;
172544
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
172545
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172860
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
172861
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
172546
172862
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
172547
172863
  const colorAccHid = colorAccVis.withAlpha(100);
172548
172864
  const fillAccVis = context.viewport.hilite.color.withAlpha(50);
@@ -172579,17 +172895,17 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172579
172895
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172580
172896
  const toolTip = document.createElement("div");
172581
172897
  let toolTipHtml = "";
172582
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
172898
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172583
172899
  if (undefined !== areaFormatterSpec) {
172584
172900
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
172585
172901
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
172586
172902
  }
172587
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172903
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172588
172904
  if (undefined !== perimeterFormatterSpec) {
172589
172905
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._perimeter, perimeterFormatterSpec);
172590
172906
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
172591
172907
  }
172592
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172908
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172593
172909
  if (undefined !== coordFormatterSpec) {
172594
172910
  let pointAdjusted = this._centroid.clone();
172595
172911
  if (isSpatial) {
@@ -172610,7 +172926,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172610
172926
  reportMeasurements() {
172611
172927
  if (undefined === this._marker)
172612
172928
  return;
172613
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
172929
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
172614
172930
  const msgDetail = new _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessagePriority.Info, briefMsg, undefined, _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessageType.Sticky);
172615
172931
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
172616
172932
  }
@@ -172628,7 +172944,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172628
172944
  const toolTip = await this.getMarkerToolTip();
172629
172945
  this._acceptedMeasurement = new MeasureMarker("1", toolTip, this._centroid, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
172630
172946
  this._marker = undefined;
172631
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
172947
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172632
172948
  if (undefined === areaFormatterSpec)
172633
172949
  return;
172634
172950
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
@@ -172638,23 +172954,23 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172638
172954
  /** @internal */
172639
172955
  async onDataButtonDown(ev) {
172640
172956
  if (undefined === this.targetView)
172641
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172957
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172642
172958
  if (this._isComplete)
172643
172959
  await this.onReinitialize();
172644
172960
  if (this._points.length > 1 && !ev.isControlKey) {
172645
172961
  const points = this.getShapePoints(ev.point);
172646
172962
  if (points.length < 3)
172647
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172963
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172648
172964
  this._isComplete = true;
172649
172965
  this._points.length = 0;
172650
172966
  for (const pt of points)
172651
172967
  this._points.push(pt);
172652
172968
  await this.updateTotals();
172653
172969
  this.setupAndPromptForNextAction();
172654
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172970
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172655
172971
  }
172656
172972
  if (undefined === this._matrix && undefined === (this._matrix = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.getContextRotation(this.orientation, this.targetView)))
172657
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172973
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172658
172974
  const currPt = ev.point.clone();
172659
172975
  if (this._points.length > 0) {
172660
172976
  const planePt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(currPt, this._points[0], this._matrix.getColumn(2), ev.viewport, true);
@@ -172663,14 +172979,14 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172663
172979
  }
172664
172980
  this._points.push(currPt);
172665
172981
  this.setupAndPromptForNextAction();
172666
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172982
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172667
172983
  }
172668
172984
  /** @internal */
172669
172985
  async onResetButtonUp(ev) {
172670
172986
  if (undefined !== ev.viewport)
172671
172987
  ev.viewport.invalidateDecorations();
172672
172988
  await this.onReinitialize();
172673
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172989
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172674
172990
  }
172675
172991
  /** @internal */
172676
172992
  async onReinitialize() {
@@ -172700,7 +173016,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172700
173016
  /** Base class for mass properties tools.
172701
173017
  * @public
172702
173018
  */
172703
- class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
173019
+ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172704
173020
  /** @internal */
172705
173021
  _checkedIds = new Map();
172706
173022
  /** @internal */
@@ -172736,33 +173052,33 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172736
173052
  /** @internal */
172737
173053
  showPrompt() {
172738
173054
  const mainMsg = (this._useSelection ? (0 === this._acceptedMeasurements.length ? "ElementSet.Prompts.ConfirmSelection" : "ElementSet.Prompts.InspectResult") : "ElementSet.Prompts.IdentifyElement");
172739
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
173055
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
172740
173056
  const mouseInstructions = [];
172741
173057
  const touchInstructions = [];
172742
173058
  if (this._useSelection) {
172743
173059
  if (0 === this._acceptedMeasurements.length) {
172744
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172745
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
172746
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.RejectSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172747
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.RejectSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
173060
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
173061
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
173062
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.RejectSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
173063
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.RejectSelection"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172748
173064
  }
172749
173065
  else {
172750
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Exit"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172751
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Exit"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
173066
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Exit"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
173067
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Exit"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172752
173068
  }
172753
173069
  }
172754
173070
  else {
172755
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172756
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
173071
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.OneTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
173072
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.LeftClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.AcceptElement"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172757
173073
  if (0 !== this._acceptedMeasurements.length) {
172758
- touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Touch));
172759
- mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistanceInputMethod.Mouse));
173074
+ touchInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.TwoTouchTap, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Touch));
173075
+ mouseInstructions.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceImage.RightClick, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart"), false, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistanceInputMethod.Mouse));
172760
173076
  }
172761
173077
  }
172762
173078
  const sections = [];
172763
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172764
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172765
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
173079
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
173080
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
173081
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172766
173082
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172767
173083
  }
172768
173084
  /** @internal */
@@ -172799,7 +173115,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172799
173115
  default:
172800
173116
  return;
172801
173117
  }
172802
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
173118
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
172803
173119
  const msgDetail = new _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessagePriority.Info, briefMsg, undefined, _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessageType.Sticky);
172804
173120
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
172805
173121
  }
@@ -172810,7 +173126,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172810
173126
  let toolTipHtml = "";
172811
173127
  switch (this.getOperation()) {
172812
173128
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths: {
172813
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173129
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172814
173130
  if (undefined !== distanceFormatterSpec) {
172815
173131
  const formattedLength = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.length ? responseProps.length : 0, distanceFormatterSpec);
172816
173132
  toolTipHtml += `${translateBold("Length") + formattedLength}<br>`;
@@ -172818,13 +173134,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172818
173134
  break;
172819
173135
  }
172820
173136
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas: {
172821
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173137
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172822
173138
  if (undefined !== areaFormatterSpec) {
172823
173139
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area ? responseProps.area : 0, areaFormatterSpec);
172824
173140
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
172825
173141
  }
172826
173142
  if (responseProps.perimeter) {
172827
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173143
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172828
173144
  if (undefined !== perimeterFormatterSpec) {
172829
173145
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.perimeter, perimeterFormatterSpec);
172830
173146
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
@@ -172833,13 +173149,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172833
173149
  break;
172834
173150
  }
172835
173151
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes: {
172836
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
173152
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
172837
173153
  if (undefined !== volumeFormatterSpec) {
172838
173154
  const formattedVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.volume ? responseProps.volume : 0, volumeFormatterSpec);
172839
173155
  toolTipHtml += `${translateBold("Volume") + formattedVolume}<br>`;
172840
173156
  }
172841
173157
  if (responseProps.area) {
172842
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173158
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172843
173159
  if (undefined !== areaFormatterSpec) {
172844
173160
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area, areaFormatterSpec);
172845
173161
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
@@ -172849,7 +173165,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172849
173165
  }
172850
173166
  }
172851
173167
  if (responseProps.centroid) {
172852
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
173168
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172853
173169
  if (undefined !== coordFormatterSpec) {
172854
173170
  let pointAdjusted = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(responseProps.centroid);
172855
173171
  if (isSpatial) {
@@ -172900,21 +173216,21 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172900
173216
  return;
172901
173217
  switch (operation) {
172902
173218
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths:
172903
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173219
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172904
173220
  if (undefined === distanceFormatterSpec)
172905
173221
  return;
172906
173222
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, distanceFormatterSpec);
172907
173223
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalDistance);
172908
173224
  break;
172909
173225
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas:
172910
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173226
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172911
173227
  if (undefined === areaFormatterSpec)
172912
173228
  return;
172913
173229
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, areaFormatterSpec);
172914
173230
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalArea);
172915
173231
  break;
172916
173232
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes:
172917
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
173233
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
172918
173234
  if (undefined === volumeFormatterSpec)
172919
173235
  return;
172920
173236
  const formattedTotalVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, volumeFormatterSpec);
@@ -172972,7 +173288,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172972
173288
  /** @internal */
172973
173289
  async onResetButtonUp(_ev) {
172974
173290
  await this.onReinitialize();
172975
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173291
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172976
173292
  }
172977
173293
  /** @internal */
172978
173294
  async onDataButtonDown(ev) {
@@ -172980,20 +173296,20 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172980
173296
  if (0 === this._acceptedMeasurements.length && undefined !== ev.viewport) {
172981
173297
  await this.doMeasureSelectedElements(ev.viewport);
172982
173298
  if (0 !== this._acceptedMeasurements.length)
172983
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
172984
- _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(new _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessagePriority.Error, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Error.NotSupportedElmType")));
173299
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
173300
+ _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(new _NotificationManager__WEBPACK_IMPORTED_MODULE_8__.NotifyMessageDetails(_NotificationManager__WEBPACK_IMPORTED_MODULE_8__.OutputMessagePriority.Error, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Error.NotSupportedElmType")));
172985
173301
  await this.onReinitialize();
172986
173302
  }
172987
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
173303
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
172988
173304
  }
172989
173305
  const hit = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.locateManager.doLocate(new _ElementLocateManager__WEBPACK_IMPORTED_MODULE_4__.LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);
172990
173306
  if (undefined === hit || !hit.isElementHit)
172991
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173307
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172992
173308
  const result = this._checkedIds.get(hit.sourceId);
172993
173309
  if (undefined === result)
172994
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173310
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172995
173311
  if (-1 !== this._acceptedIds.indexOf(hit.sourceId))
172996
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
173312
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
172997
173313
  const toolTip = await this.getMarkerToolTip(result);
172998
173314
  const point = result.centroid ? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(result.centroid) : ev.point.clone();
172999
173315
  const marker = new MeasureMarker((this._acceptedMeasurements.length + 1).toString(), toolTip, point, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
@@ -173004,7 +173320,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
173004
173320
  this.setupAndPromptForNextAction();
173005
173321
  if (undefined !== ev.viewport)
173006
173322
  ev.viewport.invalidateDecorations();
173007
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173323
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
173008
173324
  }
173009
173325
  /** @internal */
173010
173326
  async onUndoPreviousStep() {
@@ -180700,12 +181016,14 @@ class SetupCameraTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_17__.Primi
180700
181016
  get targetHeight() { return this.targetHeightProperty.value; }
180701
181017
  set targetHeight(value) { this.targetHeightProperty.value = value; }
180702
181018
  syncCameraHeightState() {
180703
- this.cameraHeightProperty.displayValue = this.cameraHeightProperty.description.format(this.cameraHeight);
181019
+ const specs = _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.quantityFormatter.getSpecsByName(this.cameraHeightProperty.description.kindOfQuantityName ?? "AecUnits.LENGTH");
181020
+ this.cameraHeightProperty.displayValue = specs ? specs.formatterSpec.applyFormatting(this.cameraHeight) : this.cameraHeight.toFixed(2);
180704
181021
  this.cameraHeightProperty.isDisabled = !this.useCameraHeight;
180705
181022
  this.syncToolSettingsProperties([this.cameraHeightProperty.syncItem]);
180706
181023
  }
180707
181024
  syncTargetHeightState() {
180708
- this.targetHeightProperty.displayValue = this.targetHeightProperty.description.format(this.targetHeight);
181025
+ const specs = _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.quantityFormatter.getSpecsByName(this.targetHeightProperty.description.kindOfQuantityName ?? "AecUnits.LENGTH");
181026
+ this.targetHeightProperty.displayValue = specs ? specs.formatterSpec.applyFormatting(this.targetHeight) : this.targetHeight.toFixed(2);
180709
181027
  this.targetHeightProperty.isDisabled = !this.useTargetHeight;
180710
181028
  this.syncToolSettingsProperties([this.targetHeightProperty.syncItem]);
180711
181029
  }
@@ -301787,9 +302105,11 @@ class BaseQuantityDescription {
301787
302105
  displayLabel;
301788
302106
  typename;
301789
302107
  editor;
301790
- constructor(name, displayLabel, iconSpec) {
302108
+ kindOfQuantityName;
302109
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
301791
302110
  this.name = name;
301792
302111
  this.displayLabel = displayLabel;
302112
+ this.kindOfQuantityName = kindOfQuantityName;
301793
302113
  this.typename = _properties_StandardTypeNames__WEBPACK_IMPORTED_MODULE_1__.StandardTypeNames.Number;
301794
302114
  this.editor = {
301795
302115
  name: _properties_StandardEditorNames__WEBPACK_IMPORTED_MODULE_2__.StandardEditorNames.NumberCustom,
@@ -302326,28 +302646,6 @@ const getClassName = (obj) => {
302326
302646
  };
302327
302647
 
302328
302648
 
302329
- /***/ }),
302330
-
302331
- /***/ "../../core/frontend/lib/esm/extension/providers lazy recursive":
302332
- /*!******************************************************************************!*\
302333
- !*** ../../core/frontend/lib/esm/extension/providers/ lazy namespace object ***!
302334
- \******************************************************************************/
302335
- /***/ ((module) => {
302336
-
302337
- function webpackEmptyAsyncContext(req) {
302338
- // Here Promise.resolve().then() is used instead of new Promise() to prevent
302339
- // uncaught exception popping up in devtools
302340
- return Promise.resolve().then(() => {
302341
- var e = new Error("Cannot find module '" + req + "'");
302342
- e.code = 'MODULE_NOT_FOUND';
302343
- throw e;
302344
- });
302345
- }
302346
- webpackEmptyAsyncContext.keys = () => ([]);
302347
- webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
302348
- webpackEmptyAsyncContext.id = "../../core/frontend/lib/esm/extension/providers lazy recursive";
302349
- module.exports = webpackEmptyAsyncContext;
302350
-
302351
302649
  /***/ }),
302352
302650
 
302353
302651
  /***/ "?088e":
@@ -312420,7 +312718,7 @@ var loadLanguages = instance.loadLanguages;
312420
312718
  /***/ ((module) => {
312421
312719
 
312422
312720
  "use strict";
312423
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.112","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@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.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
312721
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.113","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@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.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^3.0.6","@vitest/coverage-v8":"^3.0.6","cpx2":"^8.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^6.0.1","source-map-loader":"^5.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^3.0.6","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"2.2.0","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.3.0","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
312424
312722
 
312425
312723
  /***/ })
312426
312724