@itwin/ecschema-rpcinterface-tests 5.1.0-dev.12 → 5.1.0-dev.14

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)
@@ -70390,11 +70396,14 @@ __webpack_require__.r(__webpack_exports__);
70390
70396
  * The SchemaLoader object should be held in memory if multiple calls to [[getSchema]] or [[tryGetSchema]]
70391
70397
  * is a possibility, thereby avoiding unnecessary schema retrievals from the function.
70392
70398
  *
70399
+ * Since the development of this class, the IModelDb class has been enhanced to include a schema context.
70400
+ * In most cases, that is sufficient so a SchemaLoader is not needed. This class is likely to be removed in the future.
70401
+ *
70393
70402
  * ** Example **
70394
70403
  * ```ts
70395
70404
  * [[include:IModelSchemas.loadFromDb]]
70396
70405
  * ```
70397
- * @beta Is this concept needed no that backend and frontend will have contexts cached on the iModel?
70406
+ * @beta This will no longer be needed as of 5.0.0 since IModelDb now has a schema context.
70398
70407
  */
70399
70408
  class SchemaLoader {
70400
70409
  _context;
@@ -83590,7 +83599,7 @@ __webpack_require__.r(__webpack_exports__);
83590
83599
 
83591
83600
  /** @public */
83592
83601
  const ITWINJS_CORE_VERSION = _package_json__WEBPACK_IMPORTED_MODULE_0__.version;
83593
- const COPYRIGHT_NOTICE = 'Copyright © 2017-2024 <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>';
83602
+ const COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>`;
83594
83603
 
83595
83604
 
83596
83605
 
@@ -83666,6 +83675,7 @@ class IModelApp {
83666
83675
  static _hubAccess;
83667
83676
  static _realityDataAccess;
83668
83677
  static _publicPath;
83678
+ static _formatsProviderManager;
83669
83679
  // No instances of IModelApp may be created. All members are static and must be on the singleton object IModelApp.
83670
83680
  constructor() { }
83671
83681
  /** Event raised just before the frontend IModelApp is to be [[shutdown]]. */
@@ -83740,6 +83750,14 @@ class IModelApp {
83740
83750
  * The path should always end with a trailing `/`.
83741
83751
  */
83742
83752
  static get publicPath() { return this._publicPath; }
83753
+ /** The [[FormatsProvider]] for this session.
83754
+ * @param provider The provider to use for formatting quantities.
83755
+ * @beta
83756
+ */
83757
+ static get formatsProvider() { return this._formatsProviderManager; }
83758
+ static set formatsProvider(provider) {
83759
+ this._formatsProviderManager.formatsProvider = provider;
83760
+ }
83743
83761
  /** @alpha */
83744
83762
  static extensionAdmin = this._createExtensionAdmin();
83745
83763
  /** Map of classFullName to EntityState class */
@@ -83840,6 +83858,7 @@ class IModelApp {
83840
83858
  this._terrainProviderRegistry = new _tile_internal__WEBPACK_IMPORTED_MODULE_26__.TerrainProviderRegistry();
83841
83859
  this._realityDataSourceProviders = new _RealityDataSource__WEBPACK_IMPORTED_MODULE_25__.RealityDataSourceProviderRegistry();
83842
83860
  this._realityDataAccess = opts.realityDataAccess;
83861
+ this._formatsProviderManager = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.FormatsProviderManager(opts.formatsProvider ?? new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider());
83843
83862
  this._publicPath = opts.publicPath ?? "";
83844
83863
  [
83845
83864
  this.renderSystem,
@@ -83871,6 +83890,7 @@ class IModelApp {
83871
83890
  this._entityClasses.clear();
83872
83891
  this.authorizationClient = undefined;
83873
83892
  this._initialized = false;
83893
+ this.resetFormatsProvider();
83874
83894
  this.onAfterStartup.clear();
83875
83895
  }
83876
83896
  /** Controls how frequently the application polls for changes that may require a new animation frame to be requested.
@@ -84121,6 +84141,13 @@ class IModelApp {
84121
84141
  }
84122
84142
  return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);
84123
84143
  }
84144
+ /**
84145
+ * Resets the formatsProvider back to the default [[QuantityTypeFormatsProvider]].
84146
+ * @beta
84147
+ */
84148
+ static resetFormatsProvider() {
84149
+ this.formatsProvider = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider();
84150
+ }
84124
84151
  /**
84125
84152
  * Creates an instance of the ExtensionAdmin
84126
84153
  * and registers an event to execute after startup is complete
@@ -85474,6 +85501,7 @@ __webpack_require__.r(__webpack_exports__);
85474
85501
  */
85475
85502
  class IpcApp {
85476
85503
  static _ipc;
85504
+ static _removeAppNotify;
85477
85505
  /** Get the implementation of the [[IpcSocketFrontend]] interface. */
85478
85506
  static get ipc() { return this._ipc; }
85479
85507
  /** Determine whether Ipc is available for this frontend. This will only be true if [[startup]] has been called on this class. */
@@ -85580,11 +85608,12 @@ class IpcApp {
85580
85608
  * @note this should not be called directly. It is called by NativeApp.startup */
85581
85609
  static async startup(ipc, opts) {
85582
85610
  this._ipc = ipc;
85583
- IpcAppNotifyHandler.register(); // receives notifications from backend
85611
+ this._removeAppNotify = IpcAppNotifyHandler.register(); // receives notifications from backend
85584
85612
  await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.startup(opts?.iModelApp);
85585
85613
  }
85586
85614
  /** @internal */
85587
85615
  static async shutdown() {
85616
+ this._removeAppNotify?.();
85588
85617
  this._ipc = undefined;
85589
85618
  await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.shutdown();
85590
85619
  }
@@ -107034,6 +107063,7 @@ __webpack_require__.r(__webpack_exports__);
107034
107063
  /* harmony export */ FlashMode: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashMode),
107035
107064
  /* harmony export */ FlashSettings: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashSettings),
107036
107065
  /* harmony export */ FlyViewTool: () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_114__.FlyViewTool),
107066
+ /* harmony export */ FormatsProviderManager: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.FormatsProviderManager),
107037
107067
  /* harmony export */ FormattedQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_70__.FormattedQuantityDescription),
107038
107068
  /* harmony export */ FrontendLoggerCategory: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_10__.FrontendLoggerCategory),
107039
107069
  /* harmony export */ Frustum2d: () => (/* reexport safe */ _Frustum2d__WEBPACK_IMPORTED_MODULE_24__.Frustum2d),
@@ -107162,6 +107192,7 @@ __webpack_require__.r(__webpack_exports__);
107162
107192
  /* harmony export */ QuadId: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_99__.QuadId),
107163
107193
  /* harmony export */ QuantityFormatter: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityFormatter),
107164
107194
  /* harmony export */ QuantityType: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityType),
107195
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityTypeFormatsProvider),
107165
107196
  /* harmony export */ RealityDataError: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataError),
107166
107197
  /* harmony export */ RealityDataSource: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSource),
107167
107198
  /* harmony export */ RealityDataSourceProviderRegistry: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSourceProviderRegistry),
@@ -140574,8 +140605,9 @@ function createClassifierTileTreeReference(classifiers, classifiedTree, iModel,
140574
140605
  return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);
140575
140606
  }
140576
140607
  function createClassifierId(classifier, source) {
140608
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.disablePolyfaceDecimation;
140577
140609
  if (undefined === classifier)
140578
- 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 };
140610
+ 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 };
140579
140611
  const type = classifier.flags.isVolumeClassifier ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.VolumeClassifier : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.PlanarClassifier;
140580
140612
  const scriptInfo = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.getScriptInfoForTreeId(classifier.modelId, source ? source[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_5__._scheduleScriptReference] : undefined);
140581
140613
  return {
@@ -140584,6 +140616,7 @@ function createClassifierId(classifier, source) {
140584
140616
  expansion: classifier.expand,
140585
140617
  animationId: scriptInfo?.animationId,
140586
140618
  timeline: scriptInfo?.timeline,
140619
+ disablePolyfaceDecimation,
140587
140620
  };
140588
140621
  }
140589
140622
 
@@ -141640,6 +141673,10 @@ class IModelTile extends _tile_internal__WEBPACK_IMPORTED_MODULE_4__.Tile {
141640
141673
  args.insertMissing(this);
141641
141674
  return this.isParentDisplayable ? SelectParent.Yes : SelectParent.No;
141642
141675
  }
141676
+ clearLayers() {
141677
+ super.clearLayers();
141678
+ this.disposeChildren();
141679
+ }
141643
141680
  }
141644
141681
 
141645
141682
 
@@ -144588,7 +144625,8 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
144588
144625
  const edgesRequired = visibleEdges || _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.SmoothShade !== renderMode || _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.alwaysRequestEdges;
144589
144626
  const edges = edgesRequired ? _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.edgeOptions : false;
144590
144627
  const sectionCut = this._sectionClip?.clipString;
144591
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut };
144628
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation;
144629
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut, disablePolyfaceDecimation };
144592
144630
  }
144593
144631
  computeBaseTransform(tree) {
144594
144632
  return super.computeTransform(tree);
@@ -144741,7 +144779,7 @@ class MaskTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.Tile
144741
144779
  return this._owner;
144742
144780
  }
144743
144781
  createTreeId() {
144744
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
144782
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
144745
144783
  }
144746
144784
  }
144747
144785
  function createMaskTreeReference(view, model) {
@@ -144767,7 +144805,7 @@ class ModelMapLayerTileTreeReference extends _tile_internal__WEBPACK_IMPORTED_MO
144767
144805
  this._owner = primaryTreeSupplier.getOwner(this._id, this.iModel);
144768
144806
  }
144769
144807
  createTreeId() {
144770
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
144808
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
144771
144809
  }
144772
144810
  get treeOwner() {
144773
144811
  const newId = this.createTreeId();
@@ -150624,8 +150662,10 @@ class LocalUnitFormatProvider extends _BaseUnitFormattingSettingsProvider__WEBPA
150624
150662
  __webpack_require__.r(__webpack_exports__);
150625
150663
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
150626
150664
  /* harmony export */ AlternateUnitLabelsRegistry: () => (/* binding */ AlternateUnitLabelsRegistry),
150665
+ /* harmony export */ FormatsProviderManager: () => (/* binding */ FormatsProviderManager),
150627
150666
  /* harmony export */ QuantityFormatter: () => (/* binding */ QuantityFormatter),
150628
150667
  /* harmony export */ QuantityType: () => (/* binding */ QuantityType),
150668
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* binding */ QuantityTypeFormatsProvider),
150629
150669
  /* harmony export */ getQuantityTypeKey: () => (/* binding */ getQuantityTypeKey),
150630
150670
  /* harmony export */ isCustomQuantityTypeDefinition: () => (/* binding */ isCustomQuantityTypeDefinition)
150631
150671
  /* harmony export */ });
@@ -150771,12 +150811,66 @@ class StandardQuantityTypeDefinition {
150771
150811
  return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, unitsProvider, this.persistenceUnit, alternateUnitLabelsProvider);
150772
150812
  }
150773
150813
  }
150814
+ /**
150815
+ * A default formatsProvider, that provides a limited set of [[FormatDefinition]], associated to a few [[KindOfQuantity]].
150816
+ * Maps each KindOfQuantity to a [[QuantityType]].
150817
+ * When retrieving a valid [[KindOfQuantity]], returns the [[FormatProps]] for the associated [[QuantityType]].
150818
+ * @internal
150819
+ */
150820
+ class QuantityTypeFormatsProvider {
150821
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
150822
+ constructor() {
150823
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
150824
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
150825
+ });
150826
+ }
150827
+ _kindOfQuantityMap = new Map([
150828
+ ["AecUnits.LENGTH", QuantityType.Length],
150829
+ ["AecUnits.ANGLE", QuantityType.Angle],
150830
+ ["AecUnits.AREA", QuantityType.Area],
150831
+ ["AecUnits.VOLUME", QuantityType.Volume],
150832
+ ["RoadRailUnits.STATION", QuantityType.Stationing],
150833
+ ["RoadRailUnits.LENGTH", QuantityType.LengthSurvey],
150834
+ ]);
150835
+ async getFormat(name) {
150836
+ const quantityType = this._kindOfQuantityMap.get(name);
150837
+ if (!quantityType)
150838
+ return undefined;
150839
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
150840
+ }
150841
+ }
150842
+ /**
150843
+ * An implementation of the [[FormatsProvider]] interface that forwards calls to getFormats to the underlying FormatsProvider.
150844
+ * Also fires the onFormatsChanged event when the underlying FormatsProvider fires its own onFormatsChanged event.
150845
+ * @internal
150846
+ */
150847
+ class FormatsProviderManager {
150848
+ _formatsProvider;
150849
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
150850
+ constructor(_formatsProvider) {
150851
+ this._formatsProvider = _formatsProvider;
150852
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
150853
+ this.onFormatsChanged.raiseEvent(args);
150854
+ });
150855
+ }
150856
+ async getFormat(name) {
150857
+ return this._formatsProvider.getFormat(name);
150858
+ }
150859
+ get formatsProvider() { return this; }
150860
+ set formatsProvider(formatsProvider) {
150861
+ this._formatsProvider = formatsProvider;
150862
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
150863
+ this.onFormatsChanged.raiseEvent(args);
150864
+ });
150865
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
150866
+ }
150867
+ }
150774
150868
  /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
150775
150869
  * the "active" unit system and caches FormatterSpecs and ParserSpecs for the "active" unit system to allow synchronous access to
150776
150870
  * parsing and formatting values. The support unit systems are defined by [[UnitSystemKey]] and is kept in synch with the unit systems
150777
150871
  * provided by the Presentation Manager on the backend. The QuantityFormatter contains a registry of quantity type definitions. These definitions implement
150778
- * the [[QuantityTypeDefinition]] interface, which among other things, provide default [FormatProps]$(core-quantity), and provide methods
150779
- * to generate both a [FormatterSpec]$(core-quantity) and a [ParserSpec]$(core-quantity). There are built-in quantity types that are
150872
+ * the [[QuantityTypeDefinition]] interface, which among other things, provide default [[FormatProps]], and provide methods
150873
+ * to generate both a [[FormatterSpec]] and a [[ParserSpec]]. There are built-in quantity types that are
150780
150874
  * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
150781
150875
  * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
150782
150876
  *
@@ -151180,26 +151274,51 @@ class QuantityFormatter {
151180
151274
  requestedSystem = isImperial ? "imperial" : "metric";
151181
151275
  return this.getParserSpecByQuantityTypeAndSystem(type, requestedSystem);
151182
151276
  }
151183
- /** Generates a formatted string for a quantity given its format spec.
151184
- * @param magnitude The magnitude of the quantity.
151185
- * @param formatSpec The format specification. See methods getFormatterSpecByQuantityType and findFormatterSpecByQuantityType.
151186
- * @return the formatted string.
151187
- */
151188
- formatQuantity(magnitude, formatSpec) {
151189
- /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
151190
- if (formatSpec)
151191
- return formatSpec.applyFormatting(magnitude);
151192
- return magnitude.toString();
151277
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
151278
+ formatQuantity(args, spec) {
151279
+ if (typeof args === "number") {
151280
+ /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
151281
+ const magnitude = args;
151282
+ if (spec)
151283
+ return spec.applyFormatting(magnitude);
151284
+ return magnitude.toString();
151285
+ }
151286
+ return this.formatQuantityAsync(args);
151287
+ }
151288
+ async formatQuantityAsync(args) {
151289
+ const { value, valueUnitName, kindOfQuantityName } = args;
151290
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
151291
+ if (!formatProps)
151292
+ return value.toString();
151293
+ const formatSpec = await this.createFormatterSpec({
151294
+ persistenceUnitName: valueUnitName,
151295
+ formatProps,
151296
+ formatName: kindOfQuantityName,
151297
+ });
151298
+ return formatSpec.applyFormatting(value);
151193
151299
  }
151194
- /** Parse input string into quantity given the ParserSpec
151195
- * @param inString The magnitude of the quantity.
151196
- * @param parserSpec The parse specification the defines the expected format of the string and the conversion to the output unit.
151197
- * @return QuantityParseResult object containing either the parsed value or an error value if unsuccessful.
151198
- */
151199
- parseToQuantityValue(inString, parserSpec) {
151200
- if (parserSpec)
151201
- return parserSpec.parseToQuantityValue(inString);
151202
- return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151300
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
151301
+ parseToQuantityValue(args, parserSpec) {
151302
+ if (typeof args === "string") {
151303
+ /** Parse a quantity value. Default ParserSpec implementation uses ParserSpec.parseToQuantityValue. */
151304
+ const inString = args;
151305
+ if (parserSpec)
151306
+ return parserSpec.parseToQuantityValue(inString);
151307
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151308
+ }
151309
+ return this.parseToQuantityValueAsync(args);
151310
+ }
151311
+ async parseToQuantityValueAsync(args) {
151312
+ const { value, valueUnitName, kindOfQuantityName } = args;
151313
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
151314
+ if (!formatProps)
151315
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
151316
+ const parserSpec = await this.createParserSpec({
151317
+ persistenceUnitName: valueUnitName,
151318
+ formatProps,
151319
+ formatName: kindOfQuantityName,
151320
+ });
151321
+ return parserSpec.parseToQuantityValue(value);
151203
151322
  }
151204
151323
  /**
151205
151324
  * Get a UnitSystemKey from a string that may have been entered via a key-in. Supports different variation of
@@ -151269,6 +151388,28 @@ class QuantityFormatter {
151269
151388
  async getConversion(fromUnit, toUnit) {
151270
151389
  return this._unitsProvider.getConversion(fromUnit, toUnit);
151271
151390
  }
151391
+ /**
151392
+ * Creates a [[FormatterSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
151393
+ * @beta
151394
+ * @param props - A [[CreateFormattingSpecProps]] interface.
151395
+ */
151396
+ async createFormatterSpec(props) {
151397
+ const { persistenceUnitName, formatProps, formatName } = props;
151398
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
151399
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
151400
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.FormatterSpec.create(`${format.name}_format_spec`, format, this._unitsProvider, persistenceUnitProps);
151401
+ }
151402
+ /**
151403
+ * Creates a [[ParserSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
151404
+ * @beta
151405
+ * @param props - A [[CreateFormattingSpecProps]] object.
151406
+ */
151407
+ async createParserSpec(props) {
151408
+ const { persistenceUnitName, formatProps, formatName } = props;
151409
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
151410
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
151411
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, this._unitsProvider, persistenceUnitProps);
151412
+ }
151272
151413
  }
151273
151414
  // ========================================================================================================================================
151274
151415
  // Default Data
@@ -158309,6 +158450,8 @@ class TileAdmin {
158309
158450
  /** @internal */
158310
158451
  optimizeBRepProcessing;
158311
158452
  /** @internal */
158453
+ disablePolyfaceDecimation;
158454
+ /** @internal */
158312
158455
  useLargerTiles;
158313
158456
  /** @internal */
158314
158457
  maximumLevelsToSkip;
@@ -158397,6 +158540,7 @@ class TileAdmin {
158397
158540
  this.useProjectExtents = options.useProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useProjectExtents;
158398
158541
  this.expandProjectExtents = options.expandProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.expandProjectExtents;
158399
158542
  this.optimizeBRepProcessing = options.optimizeBRepProcessing ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.optimizeBRepProcessing;
158543
+ this.disablePolyfaceDecimation = options.disablePolyfaceDecimation ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.disablePolyfaceDecimation;
158400
158544
  this.useLargerTiles = options.useLargerTiles ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useLargerTiles;
158401
158545
  this.mobileRealityTileMinToleranceRatio = Math.max(options.mobileRealityTileMinToleranceRatio ?? 3.0, 1.0);
158402
158546
  this.cesiumIonKey = options.cesiumIonKey;
@@ -171673,11 +171817,10 @@ __webpack_require__.r(__webpack_exports__);
171673
171817
  /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
171674
171818
  /* harmony import */ var _Marker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Marker */ "../../core/frontend/lib/esm/Marker.js");
171675
171819
  /* harmony import */ var _NotificationManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../NotificationManager */ "../../core/frontend/lib/esm/NotificationManager.js");
171676
- /* harmony import */ var _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../quantity-formatting/QuantityFormatter */ "../../core/frontend/lib/esm/quantity-formatting/QuantityFormatter.js");
171677
- /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
171678
- /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
171679
- /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
171680
- /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
171820
+ /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
171821
+ /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
171822
+ /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
171823
+ /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
171681
171824
  /*---------------------------------------------------------------------------------------------
171682
171825
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
171683
171826
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -171698,9 +171841,18 @@ __webpack_require__.r(__webpack_exports__);
171698
171841
 
171699
171842
 
171700
171843
 
171701
-
171702
171844
  function translateBold(key) {
171703
- return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
171845
+ return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
171846
+ }
171847
+ async function getFormatterSpecByKoQAndPersistenceUnit(koq, persistenceUnitName) {
171848
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.getFormat(koq);
171849
+ if (undefined === formatProps)
171850
+ return undefined;
171851
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.createFormatterSpec({
171852
+ persistenceUnitName,
171853
+ formatProps,
171854
+ formatName: koq
171855
+ });
171704
171856
  }
171705
171857
  /** @internal */
171706
171858
  class MeasureLabel {
@@ -171764,7 +171916,7 @@ class MeasureMarker extends _Marker__WEBPACK_IMPORTED_MODULE_7__.Marker {
171764
171916
  onMouseButton(_ev) { return true; } // Never forward event to active tool...
171765
171917
  onMouseEnter(ev) {
171766
171918
  super.onMouseEnter(ev);
171767
- if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_11__.InputSource.Touch === ev.inputSource && ev.viewport)
171919
+ if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_10__.InputSource.Touch === ev.inputSource && ev.viewport)
171768
171920
  ev.viewport.openToolTip(this.title, ev.viewPoint, this.tooltipOptions);
171769
171921
  }
171770
171922
  onMouseLeave() {
@@ -171801,7 +171953,7 @@ function adjustPoint(ev, segments, locations) {
171801
171953
  /** Report distance between 2 points using current quantity formatter for length.
171802
171954
  * @public
171803
171955
  */
171804
- class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
171956
+ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
171805
171957
  static toolId = "Measure.Distance";
171806
171958
  static iconSpec = "icon-measure-distance";
171807
171959
  /** @internal */
@@ -171819,6 +171971,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171819
171971
  /** @internal */
171820
171972
  _lastMotionAdjustedPt;
171821
171973
  /** @internal */
171974
+ _lengthFormatterSpec;
171975
+ /** @internal */
171976
+ _angleFormatterSpec;
171977
+ /** @internal */
171978
+ _removeFormatterListener;
171979
+ /** @internal */
171822
171980
  allowView(vp) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }
171823
171981
  /** @internal */
171824
171982
  isCompatibleViewport(vp, isSelectedViewChange) { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }
@@ -171829,34 +171987,50 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171829
171987
  /** @internal */
171830
171988
  async onPostInstall() {
171831
171989
  await super.onPostInstall();
171990
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
171991
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
171992
+ this._removeFormatterListener = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
171993
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.LENGTH"))
171994
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
171995
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.ANGLE"))
171996
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
171997
+ });
171832
171998
  this.setupAndPromptForNextAction();
171833
171999
  }
171834
172000
  /** @internal */
172001
+ async onCleanup() {
172002
+ if (this._removeFormatterListener) {
172003
+ this._removeFormatterListener();
172004
+ this._removeFormatterListener = undefined;
172005
+ }
172006
+ await super.onCleanup();
172007
+ }
172008
+ /** @internal */
171835
172009
  async onUnsuspend() { this.showPrompt(); }
171836
172010
  /** @internal */
171837
172011
  showPrompt() {
171838
- 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"));
172012
+ 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"));
171839
172013
  const mouseInstructions = [];
171840
172014
  const touchInstructions = [];
171841
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
171842
- 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));
171843
- 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));
172015
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172016
+ 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));
172017
+ 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));
171844
172018
  if (0 === this._locationData.length) {
171845
172019
  if (this._acceptedSegments.length > 0) {
171846
- 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));
171847
- 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));
172020
+ 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));
172021
+ 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));
171848
172022
  }
171849
172023
  }
171850
172024
  else {
171851
- 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));
171852
- 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));
171853
- 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));
171854
- 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));
172025
+ 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));
172026
+ 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));
172027
+ 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));
172028
+ 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));
171855
172029
  }
171856
172030
  const sections = [];
171857
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
171858
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
171859
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172031
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172032
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172033
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
171860
172034
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
171861
172035
  }
171862
172036
  /** @internal */
@@ -171902,8 +172076,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171902
172076
  totalDistance += adjustedPoints[i].distance(adjustedPoints[i + 1]);
171903
172077
  if (0.0 === totalDistance)
171904
172078
  return;
171905
- const formatterSpec = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
171906
- if (undefined === formatterSpec)
172079
+ const formatterSpec = this._lengthFormatterSpec;
172080
+ if (formatterSpec === undefined)
171907
172081
  return;
171908
172082
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(totalDistance, formatterSpec);
171909
172083
  const distDyn = new MeasureLabel(points[points.length - 1], formattedTotalDistance);
@@ -171917,7 +172091,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171917
172091
  seg.refAxes.multiplyVectorInPlace(xVec);
171918
172092
  seg.refAxes.multiplyVectorInPlace(yVec);
171919
172093
  seg.refAxes.multiplyVectorInPlace(zVec);
171920
- const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172094
+ const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171921
172095
  let basePt = seg.start.clone();
171922
172096
  if (xVec.magnitude() > 1.0e-5) {
171923
172097
  const segPoints = [];
@@ -171964,12 +172138,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171964
172138
  }
171965
172139
  tmpPoints.push(this._lastMotionPt);
171966
172140
  tmpAdjustedPoints.push(this._lastMotionAdjustedPt);
171967
- const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
172141
+ const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
171968
172142
  const colorDynVis = context.viewport.hilite.color;
171969
172143
  builderDynVis.setSymbology(colorDynVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
171970
172144
  builderDynVis.addLineString(tmpPoints);
171971
172145
  context.addDecorationFromBuilder(builderDynVis);
171972
- const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172146
+ const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171973
172147
  const colorDynHid = colorDynVis.withAlpha(100);
171974
172148
  builderDynHid.setSymbology(colorDynHid, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 1, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.LinePixels.Code2);
171975
172149
  builderDynHid.addLineString(tmpPoints);
@@ -171977,8 +172151,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
171977
172151
  this.displayDynamicDistance(context, tmpPoints, tmpAdjustedPoints);
171978
172152
  }
171979
172153
  if (this._acceptedSegments.length > 0) {
171980
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
171981
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172154
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
172155
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
171982
172156
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
171983
172157
  const colorAccHid = colorAccVis.withAlpha(100);
171984
172158
  builderAccVis.setSymbology(colorAccVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
@@ -172000,7 +172174,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172000
172174
  return;
172001
172175
  if (undefined === this._snapGeomId)
172002
172176
  this._snapGeomId = this.iModel.transientIds.getNext();
172003
- const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
172177
+ const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
172004
172178
  const colorAccPts = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
172005
172179
  builderSnapPts.setSymbology(colorAccPts, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 7);
172006
172180
  builderSnapPts.addPointString(snapPoints);
@@ -172029,7 +172203,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172029
172203
  reportMeasurements() {
172030
172204
  if (undefined === this._totalDistanceMarker)
172031
172205
  return;
172032
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
172206
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
172033
172207
  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);
172034
172208
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
172035
172209
  }
@@ -172040,7 +172214,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172040
172214
  this._totalDistance += seg.distance;
172041
172215
  if (0.0 === this._totalDistance)
172042
172216
  return;
172043
- const formatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172217
+ const formatterSpec = this._lengthFormatterSpec;
172044
172218
  if (undefined === formatterSpec)
172045
172219
  return;
172046
172220
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalDistance, formatterSpec);
@@ -172051,20 +172225,20 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172051
172225
  const is3d = (undefined === this.targetView || this.targetView.view.is3d());
172052
172226
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172053
172227
  const toolTip = document.createElement("div");
172054
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172228
+ const distanceFormatterSpec = this._lengthFormatterSpec;
172055
172229
  if (undefined === distanceFormatterSpec)
172056
172230
  return toolTip;
172057
172231
  let toolTipHtml = "";
172058
172232
  const formattedDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(distance, distanceFormatterSpec);
172059
172233
  toolTipHtml += `${translateBold("Distance") + formattedDistance}<br>`;
172060
172234
  if (is3d) {
172061
- const angleFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Angle);
172235
+ const angleFormatterSpec = this._angleFormatterSpec;
172062
172236
  if (undefined !== angleFormatterSpec) {
172063
172237
  const formattedSlope = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(slope, angleFormatterSpec);
172064
172238
  toolTipHtml += `${translateBold("Slope") + formattedSlope}<br>`;
172065
172239
  }
172066
172240
  }
172067
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172241
+ const coordFormatterSpec = this._lengthFormatterSpec;
172068
172242
  if (undefined !== coordFormatterSpec) {
172069
172243
  let startAdjusted = start;
172070
172244
  let endAdjusted = end;
@@ -172209,19 +172383,19 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172209
172383
  this.setupAndPromptForNextAction();
172210
172384
  if (undefined !== ev.viewport)
172211
172385
  ev.viewport.invalidateDecorations();
172212
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172386
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172213
172387
  }
172214
172388
  /** @internal */
172215
172389
  async onResetButtonUp(ev) {
172216
172390
  if (0 === this._locationData.length) {
172217
172391
  await this.onReinitialize();
172218
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172392
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172219
172393
  }
172220
172394
  await this.acceptNewSegments();
172221
172395
  this.setupAndPromptForNextAction();
172222
172396
  if (undefined !== ev.viewport)
172223
172397
  ev.viewport.invalidateDecorations();
172224
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172398
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172225
172399
  }
172226
172400
  /** @internal */
172227
172401
  async onUndoPreviousStep() {
@@ -172252,7 +172426,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172252
172426
  /** Report spatial coordinate at a point as well as cartographic location for geolocated models using current quantity formatters.
172253
172427
  * @public
172254
172428
  */
172255
- class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172429
+ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172256
172430
  static toolId = "Measure.Location";
172257
172431
  static iconSpec = "icon-measure-location";
172258
172432
  /** @internal */
@@ -172274,20 +172448,20 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172274
172448
  async onUnsuspend() { this.showPrompt(); }
172275
172449
  /** @internal */
172276
172450
  showPrompt() {
172277
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
172451
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
172278
172452
  const mouseInstructions = [];
172279
172453
  const touchInstructions = [];
172280
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172281
- 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));
172282
- 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));
172454
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172455
+ 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));
172456
+ 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));
172283
172457
  if (0 !== this._acceptedLocations.length) {
172284
- 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));
172285
- 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));
172458
+ 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));
172459
+ 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));
172286
172460
  }
172287
172461
  const sections = [];
172288
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172289
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172290
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172462
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172463
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172464
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172291
172465
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172292
172466
  }
172293
172467
  /** @internal */
@@ -172300,7 +172474,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172300
172474
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172301
172475
  const toolTip = document.createElement("div");
172302
172476
  let toolTipHtml = "";
172303
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172477
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172304
172478
  if (undefined !== coordFormatterSpec) {
172305
172479
  let pointAdjusted = point;
172306
172480
  if (isSpatial) {
@@ -172316,15 +172490,15 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172316
172490
  toolTipHtml += "<br>";
172317
172491
  }
172318
172492
  if (isSpatial) {
172319
- const latLongFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.LatLong);
172493
+ const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
172320
172494
  if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec) {
172321
172495
  try {
172322
172496
  const cartographic = await this.iModel.spatialToCartographic(point);
172323
172497
  const formattedLat = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.latitude), latLongFormatterSpec);
172324
172498
  const formattedLong = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.longitude), latLongFormatterSpec);
172325
172499
  const formattedHeight = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);
172326
- const latDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
172327
- const longDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
172500
+ const latDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
172501
+ const longDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
172328
172502
  toolTipHtml += `${translateBold("LatLong") + formattedLat + latDir}, ${formattedLong}${longDir}<br>`;
172329
172503
  toolTipHtml += `${translateBold("Altitude") + formattedHeight}<br>`;
172330
172504
  }
@@ -172362,12 +172536,12 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172362
172536
  this.setupAndPromptForNextAction();
172363
172537
  if (undefined !== ev.viewport)
172364
172538
  ev.viewport.invalidateDecorations();
172365
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172539
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172366
172540
  }
172367
172541
  /** @internal */
172368
172542
  async onResetButtonUp(_ev) {
172369
172543
  await this.onReinitialize();
172370
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172544
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172371
172545
  }
172372
172546
  /** @internal */
172373
172547
  async onUndoPreviousStep() {
@@ -172393,7 +172567,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
172393
172567
  /** Report area defined by points using current quantity formatter for area.
172394
172568
  * @public
172395
172569
  */
172396
- class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172570
+ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172397
172571
  static toolId = "Measure.AreaByPoints";
172398
172572
  static iconSpec = "icon-measure-2d";
172399
172573
  /** @internal */
@@ -172422,12 +172596,12 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172422
172596
  /** @internal */
172423
172597
  static _orientationName = "enumAsOrientation";
172424
172598
  /** @internal */
172425
- static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Settings.Orientation.${str}`); }
172599
+ static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Settings.Orientation.${str}`); }
172426
172600
  /** @internal */
172427
172601
  static _getEnumAsOrientationDescription = () => {
172428
172602
  return {
172429
172603
  name: MeasureAreaByPointsTool._orientationName,
172430
- displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Settings.Orientation.Label"),
172604
+ displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Settings.Orientation.Label"),
172431
172605
  typename: "enum",
172432
172606
  enum: {
172433
172607
  choices: [
@@ -172495,24 +172669,24 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172495
172669
  mainMsg += this._isComplete ? "FirstPoint" : "NextPoint";
172496
172670
  break;
172497
172671
  }
172498
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
172672
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
172499
172673
  const mouseInstructions = [];
172500
172674
  const touchInstructions = [];
172501
- const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
172502
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172503
- 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));
172504
- 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));
172505
- const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart");
172506
- 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));
172507
- 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));
172675
+ const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
172676
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
172677
+ 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));
172678
+ 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));
172679
+ const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart");
172680
+ 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));
172681
+ 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));
172508
172682
  if (this._points.length > 1)
172509
- 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));
172683
+ 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));
172510
172684
  if (0 !== this._points.length)
172511
- 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));
172685
+ 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));
172512
172686
  const sections = [];
172513
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172514
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172515
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172687
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172688
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172689
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172516
172690
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172517
172691
  }
172518
172692
  /** @internal */
@@ -172556,7 +172730,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172556
172730
  let currentPt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(cursorPt, points[0], normal, this.targetView, true);
172557
172731
  if (undefined === currentPt)
172558
172732
  currentPt = cursorPt.clone();
172559
- if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_11__.BeModifierKeys.Control)) {
172733
+ if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_10__.BeModifierKeys.Control)) {
172560
172734
  const xDir = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(points[0], points[1]);
172561
172735
  const xLen = xDir.magnitude();
172562
172736
  xDir.normalizeInPlace();
@@ -172582,8 +172756,8 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172582
172756
  const points = this.getShapePoints(this._lastMotionPt);
172583
172757
  if (points.length < 2)
172584
172758
  return;
172585
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
172586
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
172759
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
172760
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
172587
172761
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
172588
172762
  const colorAccHid = colorAccVis.withAlpha(100);
172589
172763
  const fillAccVis = context.viewport.hilite.color.withAlpha(50);
@@ -172620,17 +172794,17 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172620
172794
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
172621
172795
  const toolTip = document.createElement("div");
172622
172796
  let toolTipHtml = "";
172623
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
172797
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172624
172798
  if (undefined !== areaFormatterSpec) {
172625
172799
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
172626
172800
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
172627
172801
  }
172628
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
172802
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172629
172803
  if (undefined !== perimeterFormatterSpec) {
172630
172804
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._perimeter, perimeterFormatterSpec);
172631
172805
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
172632
172806
  }
172633
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
172807
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172634
172808
  if (undefined !== coordFormatterSpec) {
172635
172809
  let pointAdjusted = this._centroid.clone();
172636
172810
  if (isSpatial) {
@@ -172651,7 +172825,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172651
172825
  reportMeasurements() {
172652
172826
  if (undefined === this._marker)
172653
172827
  return;
172654
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
172828
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
172655
172829
  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);
172656
172830
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
172657
172831
  }
@@ -172669,7 +172843,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172669
172843
  const toolTip = await this.getMarkerToolTip();
172670
172844
  this._acceptedMeasurement = new MeasureMarker("1", toolTip, this._centroid, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
172671
172845
  this._marker = undefined;
172672
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
172846
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172673
172847
  if (undefined === areaFormatterSpec)
172674
172848
  return;
172675
172849
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
@@ -172679,23 +172853,23 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172679
172853
  /** @internal */
172680
172854
  async onDataButtonDown(ev) {
172681
172855
  if (undefined === this.targetView)
172682
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172856
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172683
172857
  if (this._isComplete)
172684
172858
  await this.onReinitialize();
172685
172859
  if (this._points.length > 1 && !ev.isControlKey) {
172686
172860
  const points = this.getShapePoints(ev.point);
172687
172861
  if (points.length < 3)
172688
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172862
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172689
172863
  this._isComplete = true;
172690
172864
  this._points.length = 0;
172691
172865
  for (const pt of points)
172692
172866
  this._points.push(pt);
172693
172867
  await this.updateTotals();
172694
172868
  this.setupAndPromptForNextAction();
172695
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172869
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172696
172870
  }
172697
172871
  if (undefined === this._matrix && undefined === (this._matrix = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.getContextRotation(this.orientation, this.targetView)))
172698
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172872
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172699
172873
  const currPt = ev.point.clone();
172700
172874
  if (this._points.length > 0) {
172701
172875
  const planePt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(currPt, this._points[0], this._matrix.getColumn(2), ev.viewport, true);
@@ -172704,14 +172878,14 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172704
172878
  }
172705
172879
  this._points.push(currPt);
172706
172880
  this.setupAndPromptForNextAction();
172707
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172881
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172708
172882
  }
172709
172883
  /** @internal */
172710
172884
  async onResetButtonUp(ev) {
172711
172885
  if (undefined !== ev.viewport)
172712
172886
  ev.viewport.invalidateDecorations();
172713
172887
  await this.onReinitialize();
172714
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
172888
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
172715
172889
  }
172716
172890
  /** @internal */
172717
172891
  async onReinitialize() {
@@ -172741,7 +172915,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
172741
172915
  /** Base class for mass properties tools.
172742
172916
  * @public
172743
172917
  */
172744
- class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
172918
+ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
172745
172919
  /** @internal */
172746
172920
  _checkedIds = new Map();
172747
172921
  /** @internal */
@@ -172777,33 +172951,33 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172777
172951
  /** @internal */
172778
172952
  showPrompt() {
172779
172953
  const mainMsg = (this._useSelection ? (0 === this._acceptedMeasurements.length ? "ElementSet.Prompts.ConfirmSelection" : "ElementSet.Prompts.InspectResult") : "ElementSet.Prompts.IdentifyElement");
172780
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
172954
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
172781
172955
  const mouseInstructions = [];
172782
172956
  const touchInstructions = [];
172783
172957
  if (this._useSelection) {
172784
172958
  if (0 === this._acceptedMeasurements.length) {
172785
- 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));
172786
- 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));
172787
- 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));
172788
- 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));
172959
+ 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));
172960
+ 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));
172961
+ 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));
172962
+ 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));
172789
172963
  }
172790
172964
  else {
172791
- 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));
172792
- 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));
172965
+ 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));
172966
+ 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));
172793
172967
  }
172794
172968
  }
172795
172969
  else {
172796
- 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));
172797
- 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));
172970
+ 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));
172971
+ 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));
172798
172972
  if (0 !== this._acceptedMeasurements.length) {
172799
- 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));
172800
- 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));
172973
+ 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));
172974
+ 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));
172801
172975
  }
172802
172976
  }
172803
172977
  const sections = [];
172804
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172805
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
172806
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
172978
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172979
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
172980
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
172807
172981
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
172808
172982
  }
172809
172983
  /** @internal */
@@ -172840,7 +173014,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172840
173014
  default:
172841
173015
  return;
172842
173016
  }
172843
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
173017
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
172844
173018
  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);
172845
173019
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
172846
173020
  }
@@ -172851,7 +173025,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172851
173025
  let toolTipHtml = "";
172852
173026
  switch (this.getOperation()) {
172853
173027
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths: {
172854
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173028
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172855
173029
  if (undefined !== distanceFormatterSpec) {
172856
173030
  const formattedLength = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.length ? responseProps.length : 0, distanceFormatterSpec);
172857
173031
  toolTipHtml += `${translateBold("Length") + formattedLength}<br>`;
@@ -172859,13 +173033,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172859
173033
  break;
172860
173034
  }
172861
173035
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas: {
172862
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173036
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172863
173037
  if (undefined !== areaFormatterSpec) {
172864
173038
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area ? responseProps.area : 0, areaFormatterSpec);
172865
173039
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
172866
173040
  }
172867
173041
  if (responseProps.perimeter) {
172868
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173042
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172869
173043
  if (undefined !== perimeterFormatterSpec) {
172870
173044
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.perimeter, perimeterFormatterSpec);
172871
173045
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
@@ -172874,13 +173048,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172874
173048
  break;
172875
173049
  }
172876
173050
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes: {
172877
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
173051
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
172878
173052
  if (undefined !== volumeFormatterSpec) {
172879
173053
  const formattedVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.volume ? responseProps.volume : 0, volumeFormatterSpec);
172880
173054
  toolTipHtml += `${translateBold("Volume") + formattedVolume}<br>`;
172881
173055
  }
172882
173056
  if (responseProps.area) {
172883
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173057
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172884
173058
  if (undefined !== areaFormatterSpec) {
172885
173059
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area, areaFormatterSpec);
172886
173060
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
@@ -172890,7 +173064,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172890
173064
  }
172891
173065
  }
172892
173066
  if (responseProps.centroid) {
172893
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
173067
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172894
173068
  if (undefined !== coordFormatterSpec) {
172895
173069
  let pointAdjusted = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(responseProps.centroid);
172896
173070
  if (isSpatial) {
@@ -172941,21 +173115,21 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
172941
173115
  return;
172942
173116
  switch (operation) {
172943
173117
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths:
172944
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
173118
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172945
173119
  if (undefined === distanceFormatterSpec)
172946
173120
  return;
172947
173121
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, distanceFormatterSpec);
172948
173122
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalDistance);
172949
173123
  break;
172950
173124
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas:
172951
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
173125
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
172952
173126
  if (undefined === areaFormatterSpec)
172953
173127
  return;
172954
173128
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, areaFormatterSpec);
172955
173129
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalArea);
172956
173130
  break;
172957
173131
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes:
172958
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
173132
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
172959
173133
  if (undefined === volumeFormatterSpec)
172960
173134
  return;
172961
173135
  const formattedTotalVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, volumeFormatterSpec);
@@ -173013,7 +173187,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
173013
173187
  /** @internal */
173014
173188
  async onResetButtonUp(_ev) {
173015
173189
  await this.onReinitialize();
173016
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173190
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
173017
173191
  }
173018
173192
  /** @internal */
173019
173193
  async onDataButtonDown(ev) {
@@ -173021,20 +173195,20 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
173021
173195
  if (0 === this._acceptedMeasurements.length && undefined !== ev.viewport) {
173022
173196
  await this.doMeasureSelectedElements(ev.viewport);
173023
173197
  if (0 !== this._acceptedMeasurements.length)
173024
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
173025
- _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")));
173198
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
173199
+ _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")));
173026
173200
  await this.onReinitialize();
173027
173201
  }
173028
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
173202
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
173029
173203
  }
173030
173204
  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);
173031
173205
  if (undefined === hit || !hit.isElementHit)
173032
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173206
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
173033
173207
  const result = this._checkedIds.get(hit.sourceId);
173034
173208
  if (undefined === result)
173035
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173209
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
173036
173210
  if (-1 !== this._acceptedIds.indexOf(hit.sourceId))
173037
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
173211
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
173038
173212
  const toolTip = await this.getMarkerToolTip(result);
173039
173213
  const point = result.centroid ? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(result.centroid) : ev.point.clone();
173040
173214
  const marker = new MeasureMarker((this._acceptedMeasurements.length + 1).toString(), toolTip, point, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
@@ -173045,7 +173219,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
173045
173219
  this.setupAndPromptForNextAction();
173046
173220
  if (undefined !== ev.viewport)
173047
173221
  ev.viewport.invalidateDecorations();
173048
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
173222
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
173049
173223
  }
173050
173224
  /** @internal */
173051
173225
  async onUndoPreviousStep() {
@@ -299709,10 +299883,10 @@ class Settings {
299709
299883
  });
299710
299884
  }
299711
299885
  toString() {
299712
- return `Configurations:
299713
- oidc client id: ${this.oidcClientId},
299714
- oidc scopes: ${this.oidcScopes},
299715
- applicationId: ${this.gprid},
299886
+ return `Configurations:
299887
+ oidc client id: ${this.oidcClientId},
299888
+ oidc scopes: ${this.oidcScopes},
299889
+ applicationId: ${this.gprid},
299716
299890
  log level: ${this.logLevel}`;
299717
299891
  }
299718
299892
  }
@@ -312542,7 +312716,7 @@ var loadLanguages = instance.loadLanguages;
312542
312716
  /***/ ((module) => {
312543
312717
 
312544
312718
  "use strict";
312545
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.12","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"}}');
312719
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.14","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"}}');
312546
312720
 
312547
312721
  /***/ })
312548
312722