@itwin/rpcinterface-full-stack-tests 5.1.0-dev.13 → 5.1.0-dev.15

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.
@@ -88818,13 +88818,13 @@ var CurrentImdlVersion;
88818
88818
  * 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
88819
88819
  * greater minor version than CurrentVersion.Minor, although some data may be skipped.
88820
88820
  */
88821
- CurrentImdlVersion[CurrentImdlVersion["Major"] = 36] = "Major";
88821
+ CurrentImdlVersion[CurrentImdlVersion["Major"] = 37] = "Major";
88822
88822
  /** The unsigned 16-bit minor version number. If the major version in the tile header is equal to CurrentVersion.Major, then this package can
88823
88823
  * read the tile content even if the minor version in the tile header is greater than this value, although some data may be skipped.
88824
88824
  */
88825
88825
  CurrentImdlVersion[CurrentImdlVersion["Minor"] = 0] = "Minor";
88826
88826
  /** The unsigned 32-bit version number derived from the 16-bit major and minor version numbers. */
88827
- CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2359296] = "Combined";
88827
+ CurrentImdlVersion[CurrentImdlVersion["Combined"] = 2424832] = "Combined";
88828
88828
  })(CurrentImdlVersion || (CurrentImdlVersion = {}));
88829
88829
  /** Header embedded at the beginning of binary tile data in iMdl format describing its contents.
88830
88830
  * @internal
@@ -89169,6 +89169,7 @@ var TileOptions;
89169
89169
  disableMagnification: false,
89170
89170
  alwaysSubdivideIncompleteTiles: false,
89171
89171
  edgeOptions,
89172
+ disablePolyfaceDecimation: 0 !== (tree.flags & TreeFlags.DisablePolyfaceDecimation),
89172
89173
  };
89173
89174
  }
89174
89175
  TileOptions.fromTreeIdAndContentId = fromTreeIdAndContentId;
@@ -89203,14 +89204,15 @@ class Parser {
89203
89204
  }
89204
89205
  if (Object.keys(parsedContentId).some((key) => parsedContentId.hasOwnProperty(key) && typeof parsedContentId[key] === "number" && !Number.isFinite(parsedContentId[key])))
89205
89206
  throw new Error("Invalid content Id");
89207
+ const disablePolyfaceDecimation = options.disablePolyfaceDecimation;
89206
89208
  let treeId;
89207
89209
  if (classifier) {
89208
- treeId = { ...classifier, animationId };
89210
+ treeId = { ...classifier, animationId, disablePolyfaceDecimation };
89209
89211
  }
89210
89212
  else {
89211
89213
  (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== primary);
89212
89214
  const enforceDisplayPriority = (treeFlags & TreeFlags.EnforceDisplayPriority) !== 0 ? true : undefined;
89213
- treeId = { ...primary, animationId, type: _FeatureTable__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary, enforceDisplayPriority };
89215
+ treeId = { ...primary, animationId, type: _FeatureTable__WEBPACK_IMPORTED_MODULE_2__.BatchType.Primary, enforceDisplayPriority, disablePolyfaceDecimation };
89214
89216
  }
89215
89217
  return {
89216
89218
  contentId: parsedContentId,
@@ -89313,6 +89315,7 @@ const defaultTileOptions = Object.freeze({
89313
89315
  useLargerTiles: true,
89314
89316
  disableMagnification: false,
89315
89317
  alwaysSubdivideIncompleteTiles: false,
89318
+ disablePolyfaceDecimation: false,
89316
89319
  edgeOptions: {
89317
89320
  type: "compact",
89318
89321
  smooth: true,
@@ -89408,7 +89411,8 @@ var TreeFlags;
89408
89411
  TreeFlags[TreeFlags["EnforceDisplayPriority"] = 2] = "EnforceDisplayPriority";
89409
89412
  TreeFlags[TreeFlags["OptimizeBRepProcessing"] = 4] = "OptimizeBRepProcessing";
89410
89413
  TreeFlags[TreeFlags["UseLargerTiles"] = 8] = "UseLargerTiles";
89411
- TreeFlags[TreeFlags["ExpandProjectExtents"] = 16] = "ExpandProjectExtents"; // If UseProjectExtents, round them up/down to nearest powers of ten.
89414
+ TreeFlags[TreeFlags["ExpandProjectExtents"] = 16] = "ExpandProjectExtents";
89415
+ TreeFlags[TreeFlags["DisablePolyfaceDecimation"] = 32] = "DisablePolyfaceDecimation";
89412
89416
  })(TreeFlags || (TreeFlags = {}));
89413
89417
  function animationIdToString(animationId) {
89414
89418
  return `A:${animationId}_`;
@@ -89421,6 +89425,8 @@ function iModelTileTreeIdToString(modelId, treeId, options) {
89421
89425
  let flags = options.useProjectExtents ? TreeFlags.UseProjectExtents : TreeFlags.None;
89422
89426
  if (options.optimizeBRepProcessing)
89423
89427
  flags |= TreeFlags.OptimizeBRepProcessing;
89428
+ if (options.disablePolyfaceDecimation)
89429
+ flags |= TreeFlags.DisablePolyfaceDecimation;
89424
89430
  if (options.useLargerTiles)
89425
89431
  flags |= TreeFlags.UseLargerTiles;
89426
89432
  if (options.expandProjectExtents)
@@ -113228,7 +113234,7 @@ __webpack_require__.r(__webpack_exports__);
113228
113234
 
113229
113235
  /** @public */
113230
113236
  const ITWINJS_CORE_VERSION = _package_json__WEBPACK_IMPORTED_MODULE_0__.version;
113231
- const COPYRIGHT_NOTICE = 'Copyright © 2017-2024 <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>';
113237
+ const COPYRIGHT_NOTICE = `Copyright © 2017-${new Date().getFullYear()} <a href="https://www.bentley.com" target="_blank" rel="noopener noreferrer">Bentley Systems, Inc.</a>`;
113232
113238
 
113233
113239
 
113234
113240
 
@@ -113304,6 +113310,7 @@ class IModelApp {
113304
113310
  static _hubAccess;
113305
113311
  static _realityDataAccess;
113306
113312
  static _publicPath;
113313
+ static _formatsProviderManager;
113307
113314
  // No instances of IModelApp may be created. All members are static and must be on the singleton object IModelApp.
113308
113315
  constructor() { }
113309
113316
  /** Event raised just before the frontend IModelApp is to be [[shutdown]]. */
@@ -113378,6 +113385,14 @@ class IModelApp {
113378
113385
  * The path should always end with a trailing `/`.
113379
113386
  */
113380
113387
  static get publicPath() { return this._publicPath; }
113388
+ /** The [[FormatsProvider]] for this session.
113389
+ * @param provider The provider to use for formatting quantities.
113390
+ * @beta
113391
+ */
113392
+ static get formatsProvider() { return this._formatsProviderManager; }
113393
+ static set formatsProvider(provider) {
113394
+ this._formatsProviderManager.formatsProvider = provider;
113395
+ }
113381
113396
  /** @alpha */
113382
113397
  static extensionAdmin = this._createExtensionAdmin();
113383
113398
  /** Map of classFullName to EntityState class */
@@ -113478,6 +113493,7 @@ class IModelApp {
113478
113493
  this._terrainProviderRegistry = new _tile_internal__WEBPACK_IMPORTED_MODULE_26__.TerrainProviderRegistry();
113479
113494
  this._realityDataSourceProviders = new _RealityDataSource__WEBPACK_IMPORTED_MODULE_25__.RealityDataSourceProviderRegistry();
113480
113495
  this._realityDataAccess = opts.realityDataAccess;
113496
+ this._formatsProviderManager = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.FormatsProviderManager(opts.formatsProvider ?? new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider());
113481
113497
  this._publicPath = opts.publicPath ?? "";
113482
113498
  [
113483
113499
  this.renderSystem,
@@ -113509,6 +113525,7 @@ class IModelApp {
113509
113525
  this._entityClasses.clear();
113510
113526
  this.authorizationClient = undefined;
113511
113527
  this._initialized = false;
113528
+ this.resetFormatsProvider();
113512
113529
  this.onAfterStartup.clear();
113513
113530
  }
113514
113531
  /** Controls how frequently the application polls for changes that may require a new animation frame to be requested.
@@ -113759,6 +113776,13 @@ class IModelApp {
113759
113776
  }
113760
113777
  return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);
113761
113778
  }
113779
+ /**
113780
+ * Resets the formatsProvider back to the default [[QuantityTypeFormatsProvider]].
113781
+ * @beta
113782
+ */
113783
+ static resetFormatsProvider() {
113784
+ this.formatsProvider = new _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_19__.QuantityTypeFormatsProvider();
113785
+ }
113762
113786
  /**
113763
113787
  * Creates an instance of the ExtensionAdmin
113764
113788
  * and registers an event to execute after startup is complete
@@ -115112,6 +115136,7 @@ __webpack_require__.r(__webpack_exports__);
115112
115136
  */
115113
115137
  class IpcApp {
115114
115138
  static _ipc;
115139
+ static _removeAppNotify;
115115
115140
  /** Get the implementation of the [[IpcSocketFrontend]] interface. */
115116
115141
  static get ipc() { return this._ipc; }
115117
115142
  /** Determine whether Ipc is available for this frontend. This will only be true if [[startup]] has been called on this class. */
@@ -115218,11 +115243,12 @@ class IpcApp {
115218
115243
  * @note this should not be called directly. It is called by NativeApp.startup */
115219
115244
  static async startup(ipc, opts) {
115220
115245
  this._ipc = ipc;
115221
- IpcAppNotifyHandler.register(); // receives notifications from backend
115246
+ this._removeAppNotify = IpcAppNotifyHandler.register(); // receives notifications from backend
115222
115247
  await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.startup(opts?.iModelApp);
115223
115248
  }
115224
115249
  /** @internal */
115225
115250
  static async shutdown() {
115251
+ this._removeAppNotify?.();
115226
115252
  this._ipc = undefined;
115227
115253
  await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.shutdown();
115228
115254
  }
@@ -136672,6 +136698,7 @@ __webpack_require__.r(__webpack_exports__);
136672
136698
  /* harmony export */ FlashMode: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashMode),
136673
136699
  /* harmony export */ FlashSettings: () => (/* reexport safe */ _FlashSettings__WEBPACK_IMPORTED_MODULE_22__.FlashSettings),
136674
136700
  /* harmony export */ FlyViewTool: () => (/* reexport safe */ _tools_ViewTool__WEBPACK_IMPORTED_MODULE_114__.FlyViewTool),
136701
+ /* harmony export */ FormatsProviderManager: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.FormatsProviderManager),
136675
136702
  /* harmony export */ FormattedQuantityDescription: () => (/* reexport safe */ _properties_FormattedQuantityDescription__WEBPACK_IMPORTED_MODULE_70__.FormattedQuantityDescription),
136676
136703
  /* harmony export */ FrontendLoggerCategory: () => (/* reexport safe */ _common__WEBPACK_IMPORTED_MODULE_10__.FrontendLoggerCategory),
136677
136704
  /* harmony export */ Frustum2d: () => (/* reexport safe */ _Frustum2d__WEBPACK_IMPORTED_MODULE_24__.Frustum2d),
@@ -136800,6 +136827,7 @@ __webpack_require__.r(__webpack_exports__);
136800
136827
  /* harmony export */ QuadId: () => (/* reexport safe */ _tile_internal__WEBPACK_IMPORTED_MODULE_99__.QuadId),
136801
136828
  /* harmony export */ QuantityFormatter: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityFormatter),
136802
136829
  /* harmony export */ QuantityType: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityType),
136830
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* reexport safe */ _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_72__.QuantityTypeFormatsProvider),
136803
136831
  /* harmony export */ RealityDataError: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataError),
136804
136832
  /* harmony export */ RealityDataSource: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSource),
136805
136833
  /* harmony export */ RealityDataSourceProviderRegistry: () => (/* reexport safe */ _RealityDataSource__WEBPACK_IMPORTED_MODULE_121__.RealityDataSourceProviderRegistry),
@@ -137871,7 +137899,7 @@ __webpack_require__.r(__webpack_exports__);
137871
137899
  * @internal
137872
137900
  */
137873
137901
  async function loadScript(jsUrl) {
137874
- const module = await __webpack_require__("../../core/frontend/lib/esm/extension/providers lazy recursive")(jsUrl);
137902
+ const module = await import(/* webpackIgnore: true */ /* @vite-ignore */ jsUrl);
137875
137903
  return execute(module);
137876
137904
  }
137877
137905
  /** attempts to execute an extension module */
@@ -170212,8 +170240,9 @@ function createClassifierTileTreeReference(classifiers, classifiedTree, iModel,
170212
170240
  return new ClassifierTreeReference(classifiers, classifiedTree, iModel, source);
170213
170241
  }
170214
170242
  function createClassifierId(classifier, source) {
170243
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.disablePolyfaceDecimation;
170215
170244
  if (undefined === classifier)
170216
- 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 };
170245
+ 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 };
170217
170246
  const type = classifier.flags.isVolumeClassifier ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.VolumeClassifier : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.PlanarClassifier;
170218
170247
  const scriptInfo = _IModelApp__WEBPACK_IMPORTED_MODULE_2__.IModelApp.tileAdmin.getScriptInfoForTreeId(classifier.modelId, source ? source[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_5__._scheduleScriptReference] : undefined);
170219
170248
  return {
@@ -170222,6 +170251,7 @@ function createClassifierId(classifier, source) {
170222
170251
  expansion: classifier.expand,
170223
170252
  animationId: scriptInfo?.animationId,
170224
170253
  timeline: scriptInfo?.timeline,
170254
+ disablePolyfaceDecimation,
170225
170255
  };
170226
170256
  }
170227
170257
 
@@ -174230,7 +174260,8 @@ class PrimaryTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.T
174230
174260
  const edgesRequired = visibleEdges || _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RenderMode.SmoothShade !== renderMode || _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.alwaysRequestEdges;
174231
174261
  const edges = edgesRequired ? _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.edgeOptions : false;
174232
174262
  const sectionCut = this._sectionClip?.clipString;
174233
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut };
174263
+ const disablePolyfaceDecimation = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation;
174264
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges, animationId, sectionCut, disablePolyfaceDecimation };
174234
174265
  }
174235
174266
  computeBaseTransform(tree) {
174236
174267
  return super.computeTransform(tree);
@@ -174383,7 +174414,7 @@ class MaskTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_6__.Tile
174383
174414
  return this._owner;
174384
174415
  }
174385
174416
  createTreeId() {
174386
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
174417
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
174387
174418
  }
174388
174419
  }
174389
174420
  function createMaskTreeReference(view, model) {
@@ -174409,7 +174440,7 @@ class ModelMapLayerTileTreeReference extends _tile_internal__WEBPACK_IMPORTED_MO
174409
174440
  this._owner = primaryTreeSupplier.getOwner(this._id, this.iModel);
174410
174441
  }
174411
174442
  createTreeId() {
174412
- return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false };
174443
+ return { type: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary, edges: false, disablePolyfaceDecimation: _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.tileAdmin.disablePolyfaceDecimation };
174413
174444
  }
174414
174445
  get treeOwner() {
174415
174446
  const newId = this.createTreeId();
@@ -180266,8 +180297,10 @@ class LocalUnitFormatProvider extends _BaseUnitFormattingSettingsProvider__WEBPA
180266
180297
  __webpack_require__.r(__webpack_exports__);
180267
180298
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
180268
180299
  /* harmony export */ AlternateUnitLabelsRegistry: () => (/* binding */ AlternateUnitLabelsRegistry),
180300
+ /* harmony export */ FormatsProviderManager: () => (/* binding */ FormatsProviderManager),
180269
180301
  /* harmony export */ QuantityFormatter: () => (/* binding */ QuantityFormatter),
180270
180302
  /* harmony export */ QuantityType: () => (/* binding */ QuantityType),
180303
+ /* harmony export */ QuantityTypeFormatsProvider: () => (/* binding */ QuantityTypeFormatsProvider),
180271
180304
  /* harmony export */ getQuantityTypeKey: () => (/* binding */ getQuantityTypeKey),
180272
180305
  /* harmony export */ isCustomQuantityTypeDefinition: () => (/* binding */ isCustomQuantityTypeDefinition)
180273
180306
  /* harmony export */ });
@@ -180413,12 +180446,66 @@ class StandardQuantityTypeDefinition {
180413
180446
  return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, unitsProvider, this.persistenceUnit, alternateUnitLabelsProvider);
180414
180447
  }
180415
180448
  }
180449
+ /**
180450
+ * A default formatsProvider, that provides a limited set of [[FormatDefinition]], associated to a few [[KindOfQuantity]].
180451
+ * Maps each KindOfQuantity to a [[QuantityType]].
180452
+ * When retrieving a valid [[KindOfQuantity]], returns the [[FormatProps]] for the associated [[QuantityType]].
180453
+ * @internal
180454
+ */
180455
+ class QuantityTypeFormatsProvider {
180456
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
180457
+ constructor() {
180458
+ _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(() => {
180459
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
180460
+ });
180461
+ }
180462
+ _kindOfQuantityMap = new Map([
180463
+ ["AecUnits.LENGTH", QuantityType.Length],
180464
+ ["AecUnits.ANGLE", QuantityType.Angle],
180465
+ ["AecUnits.AREA", QuantityType.Area],
180466
+ ["AecUnits.VOLUME", QuantityType.Volume],
180467
+ ["RoadRailUnits.STATION", QuantityType.Stationing],
180468
+ ["RoadRailUnits.LENGTH", QuantityType.LengthSurvey],
180469
+ ]);
180470
+ async getFormat(name) {
180471
+ const quantityType = this._kindOfQuantityMap.get(name);
180472
+ if (!quantityType)
180473
+ return undefined;
180474
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.getFormatPropsByQuantityType(quantityType);
180475
+ }
180476
+ }
180477
+ /**
180478
+ * An implementation of the [[FormatsProvider]] interface that forwards calls to getFormats to the underlying FormatsProvider.
180479
+ * Also fires the onFormatsChanged event when the underlying FormatsProvider fires its own onFormatsChanged event.
180480
+ * @internal
180481
+ */
180482
+ class FormatsProviderManager {
180483
+ _formatsProvider;
180484
+ onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
180485
+ constructor(_formatsProvider) {
180486
+ this._formatsProvider = _formatsProvider;
180487
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
180488
+ this.onFormatsChanged.raiseEvent(args);
180489
+ });
180490
+ }
180491
+ async getFormat(name) {
180492
+ return this._formatsProvider.getFormat(name);
180493
+ }
180494
+ get formatsProvider() { return this; }
180495
+ set formatsProvider(formatsProvider) {
180496
+ this._formatsProvider = formatsProvider;
180497
+ this._formatsProvider.onFormatsChanged.addListener((args) => {
180498
+ this.onFormatsChanged.raiseEvent(args);
180499
+ });
180500
+ this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
180501
+ }
180502
+ }
180416
180503
  /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
180417
180504
  * the "active" unit system and caches FormatterSpecs and ParserSpecs for the "active" unit system to allow synchronous access to
180418
180505
  * parsing and formatting values. The support unit systems are defined by [[UnitSystemKey]] and is kept in synch with the unit systems
180419
180506
  * provided by the Presentation Manager on the backend. The QuantityFormatter contains a registry of quantity type definitions. These definitions implement
180420
- * the [[QuantityTypeDefinition]] interface, which among other things, provide default [FormatProps]$(core-quantity), and provide methods
180421
- * to generate both a [FormatterSpec]$(core-quantity) and a [ParserSpec]$(core-quantity). There are built-in quantity types that are
180507
+ * the [[QuantityTypeDefinition]] interface, which among other things, provide default [[FormatProps]], and provide methods
180508
+ * to generate both a [[FormatterSpec]] and a [[ParserSpec]]. There are built-in quantity types that are
180422
180509
  * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
180423
180510
  * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
180424
180511
  *
@@ -180822,26 +180909,51 @@ class QuantityFormatter {
180822
180909
  requestedSystem = isImperial ? "imperial" : "metric";
180823
180910
  return this.getParserSpecByQuantityTypeAndSystem(type, requestedSystem);
180824
180911
  }
180825
- /** Generates a formatted string for a quantity given its format spec.
180826
- * @param magnitude The magnitude of the quantity.
180827
- * @param formatSpec The format specification. See methods getFormatterSpecByQuantityType and findFormatterSpecByQuantityType.
180828
- * @return the formatted string.
180829
- */
180830
- formatQuantity(magnitude, formatSpec) {
180831
- /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
180832
- if (formatSpec)
180833
- return formatSpec.applyFormatting(magnitude);
180834
- return magnitude.toString();
180912
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
180913
+ formatQuantity(args, spec) {
180914
+ if (typeof args === "number") {
180915
+ /** Format a quantity value. Default FormatterSpec implementation uses Formatter.formatQuantity. */
180916
+ const magnitude = args;
180917
+ if (spec)
180918
+ return spec.applyFormatting(magnitude);
180919
+ return magnitude.toString();
180920
+ }
180921
+ return this.formatQuantityAsync(args);
180922
+ }
180923
+ async formatQuantityAsync(args) {
180924
+ const { value, valueUnitName, kindOfQuantityName } = args;
180925
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
180926
+ if (!formatProps)
180927
+ return value.toString();
180928
+ const formatSpec = await this.createFormatterSpec({
180929
+ persistenceUnitName: valueUnitName,
180930
+ formatProps,
180931
+ formatName: kindOfQuantityName,
180932
+ });
180933
+ return formatSpec.applyFormatting(value);
180835
180934
  }
180836
- /** Parse input string into quantity given the ParserSpec
180837
- * @param inString The magnitude of the quantity.
180838
- * @param parserSpec The parse specification the defines the expected format of the string and the conversion to the output unit.
180839
- * @return QuantityParseResult object containing either the parsed value or an error value if unsuccessful.
180840
- */
180841
- parseToQuantityValue(inString, parserSpec) {
180842
- if (parserSpec)
180843
- return parserSpec.parseToQuantityValue(inString);
180844
- return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
180935
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
180936
+ parseToQuantityValue(args, parserSpec) {
180937
+ if (typeof args === "string") {
180938
+ /** Parse a quantity value. Default ParserSpec implementation uses ParserSpec.parseToQuantityValue. */
180939
+ const inString = args;
180940
+ if (parserSpec)
180941
+ return parserSpec.parseToQuantityValue(inString);
180942
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
180943
+ }
180944
+ return this.parseToQuantityValueAsync(args);
180945
+ }
180946
+ async parseToQuantityValueAsync(args) {
180947
+ const { value, valueUnitName, kindOfQuantityName } = args;
180948
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.getFormat(kindOfQuantityName);
180949
+ if (!formatProps)
180950
+ return { ok: false, error: _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParseError.InvalidParserSpec };
180951
+ const parserSpec = await this.createParserSpec({
180952
+ persistenceUnitName: valueUnitName,
180953
+ formatProps,
180954
+ formatName: kindOfQuantityName,
180955
+ });
180956
+ return parserSpec.parseToQuantityValue(value);
180845
180957
  }
180846
180958
  /**
180847
180959
  * Get a UnitSystemKey from a string that may have been entered via a key-in. Supports different variation of
@@ -180911,6 +181023,28 @@ class QuantityFormatter {
180911
181023
  async getConversion(fromUnit, toUnit) {
180912
181024
  return this._unitsProvider.getConversion(fromUnit, toUnit);
180913
181025
  }
181026
+ /**
181027
+ * Creates a [[FormatterSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
181028
+ * @beta
181029
+ * @param props - A [[CreateFormattingSpecProps]] interface.
181030
+ */
181031
+ async createFormatterSpec(props) {
181032
+ const { persistenceUnitName, formatProps, formatName } = props;
181033
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
181034
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
181035
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.FormatterSpec.create(`${format.name}_format_spec`, format, this._unitsProvider, persistenceUnitProps);
181036
+ }
181037
+ /**
181038
+ * Creates a [[ParserSpec]] for a given persistence unit name and format properties, using the [[UnitsProvider]] to resolve the persistence unit.
181039
+ * @beta
181040
+ * @param props - A [[CreateFormattingSpecProps]] object.
181041
+ */
181042
+ async createParserSpec(props) {
181043
+ const { persistenceUnitName, formatProps, formatName } = props;
181044
+ const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
181045
+ const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
181046
+ return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, this._unitsProvider, persistenceUnitProps);
181047
+ }
180914
181048
  }
180915
181049
  // ========================================================================================================================================
180916
181050
  // Default Data
@@ -187951,6 +188085,8 @@ class TileAdmin {
187951
188085
  /** @internal */
187952
188086
  optimizeBRepProcessing;
187953
188087
  /** @internal */
188088
+ disablePolyfaceDecimation;
188089
+ /** @internal */
187954
188090
  useLargerTiles;
187955
188091
  /** @internal */
187956
188092
  maximumLevelsToSkip;
@@ -188039,6 +188175,7 @@ class TileAdmin {
188039
188175
  this.useProjectExtents = options.useProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useProjectExtents;
188040
188176
  this.expandProjectExtents = options.expandProjectExtents ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.expandProjectExtents;
188041
188177
  this.optimizeBRepProcessing = options.optimizeBRepProcessing ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.optimizeBRepProcessing;
188178
+ this.disablePolyfaceDecimation = options.disablePolyfaceDecimation ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.disablePolyfaceDecimation;
188042
188179
  this.useLargerTiles = options.useLargerTiles ?? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.defaultTileOptions.useLargerTiles;
188043
188180
  this.mobileRealityTileMinToleranceRatio = Math.max(options.mobileRealityTileMinToleranceRatio ?? 3.0, 1.0);
188044
188181
  this.cesiumIonKey = options.cesiumIonKey;
@@ -201315,11 +201452,10 @@ __webpack_require__.r(__webpack_exports__);
201315
201452
  /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
201316
201453
  /* harmony import */ var _Marker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Marker */ "../../core/frontend/lib/esm/Marker.js");
201317
201454
  /* harmony import */ var _NotificationManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../NotificationManager */ "../../core/frontend/lib/esm/NotificationManager.js");
201318
- /* harmony import */ var _quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../quantity-formatting/QuantityFormatter */ "../../core/frontend/lib/esm/quantity-formatting/QuantityFormatter.js");
201319
- /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
201320
- /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
201321
- /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
201322
- /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
201455
+ /* harmony import */ var _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PrimitiveTool */ "../../core/frontend/lib/esm/tools/PrimitiveTool.js");
201456
+ /* harmony import */ var _Tool__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Tool */ "../../core/frontend/lib/esm/tools/Tool.js");
201457
+ /* harmony import */ var _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ToolAssistance */ "../../core/frontend/lib/esm/tools/ToolAssistance.js");
201458
+ /* harmony import */ var _common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common/render/GraphicType */ "../../core/frontend/lib/esm/common/render/GraphicType.js");
201323
201459
  /*---------------------------------------------------------------------------------------------
201324
201460
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
201325
201461
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -201340,9 +201476,18 @@ __webpack_require__.r(__webpack_exports__);
201340
201476
 
201341
201477
 
201342
201478
 
201343
-
201344
201479
  function translateBold(key) {
201345
- return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
201480
+ return `<b>${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Measure.Labels.${key}`)}:</b> `;
201481
+ }
201482
+ async function getFormatterSpecByKoQAndPersistenceUnit(koq, persistenceUnitName) {
201483
+ const formatProps = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.getFormat(koq);
201484
+ if (undefined === formatProps)
201485
+ return undefined;
201486
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.createFormatterSpec({
201487
+ persistenceUnitName,
201488
+ formatProps,
201489
+ formatName: koq
201490
+ });
201346
201491
  }
201347
201492
  /** @internal */
201348
201493
  class MeasureLabel {
@@ -201406,7 +201551,7 @@ class MeasureMarker extends _Marker__WEBPACK_IMPORTED_MODULE_7__.Marker {
201406
201551
  onMouseButton(_ev) { return true; } // Never forward event to active tool...
201407
201552
  onMouseEnter(ev) {
201408
201553
  super.onMouseEnter(ev);
201409
- if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_11__.InputSource.Touch === ev.inputSource && ev.viewport)
201554
+ if (this.title && _Tool__WEBPACK_IMPORTED_MODULE_10__.InputSource.Touch === ev.inputSource && ev.viewport)
201410
201555
  ev.viewport.openToolTip(this.title, ev.viewPoint, this.tooltipOptions);
201411
201556
  }
201412
201557
  onMouseLeave() {
@@ -201443,7 +201588,7 @@ function adjustPoint(ev, segments, locations) {
201443
201588
  /** Report distance between 2 points using current quantity formatter for length.
201444
201589
  * @public
201445
201590
  */
201446
- class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
201591
+ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
201447
201592
  static toolId = "Measure.Distance";
201448
201593
  static iconSpec = "icon-measure-distance";
201449
201594
  /** @internal */
@@ -201461,6 +201606,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201461
201606
  /** @internal */
201462
201607
  _lastMotionAdjustedPt;
201463
201608
  /** @internal */
201609
+ _lengthFormatterSpec;
201610
+ /** @internal */
201611
+ _angleFormatterSpec;
201612
+ /** @internal */
201613
+ _removeFormatterListener;
201614
+ /** @internal */
201464
201615
  allowView(vp) { return vp.view.isSpatialView() || vp.view.isDrawingView(); }
201465
201616
  /** @internal */
201466
201617
  isCompatibleViewport(vp, isSelectedViewChange) { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && this.allowView(vp)); }
@@ -201471,34 +201622,50 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201471
201622
  /** @internal */
201472
201623
  async onPostInstall() {
201473
201624
  await super.onPostInstall();
201625
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
201626
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
201627
+ this._removeFormatterListener = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
201628
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.LENGTH"))
201629
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
201630
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.ANGLE"))
201631
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
201632
+ });
201474
201633
  this.setupAndPromptForNextAction();
201475
201634
  }
201476
201635
  /** @internal */
201636
+ async onCleanup() {
201637
+ if (this._removeFormatterListener) {
201638
+ this._removeFormatterListener();
201639
+ this._removeFormatterListener = undefined;
201640
+ }
201641
+ await super.onCleanup();
201642
+ }
201643
+ /** @internal */
201477
201644
  async onUnsuspend() { this.showPrompt(); }
201478
201645
  /** @internal */
201479
201646
  showPrompt() {
201480
- 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"));
201647
+ 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"));
201481
201648
  const mouseInstructions = [];
201482
201649
  const touchInstructions = [];
201483
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
201484
- 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));
201485
- 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));
201650
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
201651
+ 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));
201652
+ 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));
201486
201653
  if (0 === this._locationData.length) {
201487
201654
  if (this._acceptedSegments.length > 0) {
201488
- 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));
201489
- 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));
201655
+ 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));
201656
+ 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));
201490
201657
  }
201491
201658
  }
201492
201659
  else {
201493
- 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));
201494
- 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));
201495
- 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));
201496
- 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));
201660
+ 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));
201661
+ 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));
201662
+ 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));
201663
+ 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));
201497
201664
  }
201498
201665
  const sections = [];
201499
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
201500
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
201501
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
201666
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
201667
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
201668
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
201502
201669
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
201503
201670
  }
201504
201671
  /** @internal */
@@ -201544,8 +201711,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201544
201711
  totalDistance += adjustedPoints[i].distance(adjustedPoints[i + 1]);
201545
201712
  if (0.0 === totalDistance)
201546
201713
  return;
201547
- const formatterSpec = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.findFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
201548
- if (undefined === formatterSpec)
201714
+ const formatterSpec = this._lengthFormatterSpec;
201715
+ if (formatterSpec === undefined)
201549
201716
  return;
201550
201717
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(totalDistance, formatterSpec);
201551
201718
  const distDyn = new MeasureLabel(points[points.length - 1], formattedTotalDistance);
@@ -201559,7 +201726,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201559
201726
  seg.refAxes.multiplyVectorInPlace(xVec);
201560
201727
  seg.refAxes.multiplyVectorInPlace(yVec);
201561
201728
  seg.refAxes.multiplyVectorInPlace(zVec);
201562
- const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
201729
+ const builderAxes = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
201563
201730
  let basePt = seg.start.clone();
201564
201731
  if (xVec.magnitude() > 1.0e-5) {
201565
201732
  const segPoints = [];
@@ -201606,12 +201773,12 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201606
201773
  }
201607
201774
  tmpPoints.push(this._lastMotionPt);
201608
201775
  tmpAdjustedPoints.push(this._lastMotionAdjustedPt);
201609
- const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
201776
+ const builderDynVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
201610
201777
  const colorDynVis = context.viewport.hilite.color;
201611
201778
  builderDynVis.setSymbology(colorDynVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
201612
201779
  builderDynVis.addLineString(tmpPoints);
201613
201780
  context.addDecorationFromBuilder(builderDynVis);
201614
- const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
201781
+ const builderDynHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
201615
201782
  const colorDynHid = colorDynVis.withAlpha(100);
201616
201783
  builderDynHid.setSymbology(colorDynHid, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 1, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.LinePixels.Code2);
201617
201784
  builderDynHid.addLineString(tmpPoints);
@@ -201619,8 +201786,8 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201619
201786
  this.displayDynamicDistance(context, tmpPoints, tmpAdjustedPoints);
201620
201787
  }
201621
201788
  if (this._acceptedSegments.length > 0) {
201622
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
201623
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
201789
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
201790
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
201624
201791
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
201625
201792
  const colorAccHid = colorAccVis.withAlpha(100);
201626
201793
  builderAccVis.setSymbology(colorAccVis, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 3);
@@ -201642,7 +201809,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201642
201809
  return;
201643
201810
  if (undefined === this._snapGeomId)
201644
201811
  this._snapGeomId = this.iModel.transientIds.getNext();
201645
- const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
201812
+ const builderSnapPts = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay, undefined, this._snapGeomId);
201646
201813
  const colorAccPts = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
201647
201814
  builderSnapPts.setSymbology(colorAccPts, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.black, 7);
201648
201815
  builderSnapPts.addPointString(snapPoints);
@@ -201671,7 +201838,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201671
201838
  reportMeasurements() {
201672
201839
  if (undefined === this._totalDistanceMarker)
201673
201840
  return;
201674
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
201841
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._acceptedSegments.length > 1 ? "Measure.Labels.CumulativeDistance" : "Measure.Labels.Distance")}: ${this._totalDistanceMarker.label}`;
201675
201842
  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);
201676
201843
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
201677
201844
  }
@@ -201682,7 +201849,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201682
201849
  this._totalDistance += seg.distance;
201683
201850
  if (0.0 === this._totalDistance)
201684
201851
  return;
201685
- const formatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
201852
+ const formatterSpec = this._lengthFormatterSpec;
201686
201853
  if (undefined === formatterSpec)
201687
201854
  return;
201688
201855
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalDistance, formatterSpec);
@@ -201693,20 +201860,20 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201693
201860
  const is3d = (undefined === this.targetView || this.targetView.view.is3d());
201694
201861
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
201695
201862
  const toolTip = document.createElement("div");
201696
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
201863
+ const distanceFormatterSpec = this._lengthFormatterSpec;
201697
201864
  if (undefined === distanceFormatterSpec)
201698
201865
  return toolTip;
201699
201866
  let toolTipHtml = "";
201700
201867
  const formattedDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(distance, distanceFormatterSpec);
201701
201868
  toolTipHtml += `${translateBold("Distance") + formattedDistance}<br>`;
201702
201869
  if (is3d) {
201703
- const angleFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Angle);
201870
+ const angleFormatterSpec = this._angleFormatterSpec;
201704
201871
  if (undefined !== angleFormatterSpec) {
201705
201872
  const formattedSlope = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(slope, angleFormatterSpec);
201706
201873
  toolTipHtml += `${translateBold("Slope") + formattedSlope}<br>`;
201707
201874
  }
201708
201875
  }
201709
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
201876
+ const coordFormatterSpec = this._lengthFormatterSpec;
201710
201877
  if (undefined !== coordFormatterSpec) {
201711
201878
  let startAdjusted = start;
201712
201879
  let endAdjusted = end;
@@ -201851,19 +202018,19 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201851
202018
  this.setupAndPromptForNextAction();
201852
202019
  if (undefined !== ev.viewport)
201853
202020
  ev.viewport.invalidateDecorations();
201854
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202021
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
201855
202022
  }
201856
202023
  /** @internal */
201857
202024
  async onResetButtonUp(ev) {
201858
202025
  if (0 === this._locationData.length) {
201859
202026
  await this.onReinitialize();
201860
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202027
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
201861
202028
  }
201862
202029
  await this.acceptNewSegments();
201863
202030
  this.setupAndPromptForNextAction();
201864
202031
  if (undefined !== ev.viewport)
201865
202032
  ev.viewport.invalidateDecorations();
201866
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202033
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
201867
202034
  }
201868
202035
  /** @internal */
201869
202036
  async onUndoPreviousStep() {
@@ -201894,7 +202061,7 @@ class MeasureDistanceTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201894
202061
  /** Report spatial coordinate at a point as well as cartographic location for geolocated models using current quantity formatters.
201895
202062
  * @public
201896
202063
  */
201897
- class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
202064
+ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
201898
202065
  static toolId = "Measure.Location";
201899
202066
  static iconSpec = "icon-measure-location";
201900
202067
  /** @internal */
@@ -201916,20 +202083,20 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201916
202083
  async onUnsuspend() { this.showPrompt(); }
201917
202084
  /** @internal */
201918
202085
  showPrompt() {
201919
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
202086
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Location.Prompts.EnterPoint"));
201920
202087
  const mouseInstructions = [];
201921
202088
  const touchInstructions = [];
201922
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
201923
- 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));
201924
- 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));
202089
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
202090
+ 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));
202091
+ 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));
201925
202092
  if (0 !== this._acceptedLocations.length) {
201926
- 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));
201927
- 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));
202093
+ 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));
202094
+ 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));
201928
202095
  }
201929
202096
  const sections = [];
201930
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
201931
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
201932
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
202097
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202098
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202099
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
201933
202100
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
201934
202101
  }
201935
202102
  /** @internal */
@@ -201942,7 +202109,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201942
202109
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
201943
202110
  const toolTip = document.createElement("div");
201944
202111
  let toolTipHtml = "";
201945
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
202112
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
201946
202113
  if (undefined !== coordFormatterSpec) {
201947
202114
  let pointAdjusted = point;
201948
202115
  if (isSpatial) {
@@ -201958,15 +202125,15 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
201958
202125
  toolTipHtml += "<br>";
201959
202126
  }
201960
202127
  if (isSpatial) {
201961
- const latLongFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.LatLong);
202128
+ const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
201962
202129
  if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec) {
201963
202130
  try {
201964
202131
  const cartographic = await this.iModel.spatialToCartographic(point);
201965
202132
  const formattedLat = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.latitude), latLongFormatterSpec);
201966
202133
  const formattedLong = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(Math.abs(cartographic.longitude), latLongFormatterSpec);
201967
202134
  const formattedHeight = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(cartographic.height, coordFormatterSpec);
201968
- const latDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
201969
- const longDir = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
202135
+ const latDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.latitude < 0 ? "Measure.Labels.S" : "Measure.Labels.N");
202136
+ const longDir = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(cartographic.longitude < 0 ? "Measure.Labels.W" : "Measure.Labels.E");
201970
202137
  toolTipHtml += `${translateBold("LatLong") + formattedLat + latDir}, ${formattedLong}${longDir}<br>`;
201971
202138
  toolTipHtml += `${translateBold("Altitude") + formattedHeight}<br>`;
201972
202139
  }
@@ -202004,12 +202171,12 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
202004
202171
  this.setupAndPromptForNextAction();
202005
202172
  if (undefined !== ev.viewport)
202006
202173
  ev.viewport.invalidateDecorations();
202007
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202174
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202008
202175
  }
202009
202176
  /** @internal */
202010
202177
  async onResetButtonUp(_ev) {
202011
202178
  await this.onReinitialize();
202012
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202179
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202013
202180
  }
202014
202181
  /** @internal */
202015
202182
  async onUndoPreviousStep() {
@@ -202035,7 +202202,7 @@ class MeasureLocationTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.P
202035
202202
  /** Report area defined by points using current quantity formatter for area.
202036
202203
  * @public
202037
202204
  */
202038
- class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
202205
+ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
202039
202206
  static toolId = "Measure.AreaByPoints";
202040
202207
  static iconSpec = "icon-measure-2d";
202041
202208
  /** @internal */
@@ -202064,12 +202231,12 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202064
202231
  /** @internal */
202065
202232
  static _orientationName = "enumAsOrientation";
202066
202233
  /** @internal */
202067
- static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(`Settings.Orientation.${str}`); }
202234
+ static enumAsOrientationMessage(str) { return _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(`Settings.Orientation.${str}`); }
202068
202235
  /** @internal */
202069
202236
  static _getEnumAsOrientationDescription = () => {
202070
202237
  return {
202071
202238
  name: MeasureAreaByPointsTool._orientationName,
202072
- displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Settings.Orientation.Label"),
202239
+ displayLabel: _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Settings.Orientation.Label"),
202073
202240
  typename: "enum",
202074
202241
  enum: {
202075
202242
  choices: [
@@ -202137,24 +202304,24 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202137
202304
  mainMsg += this._isComplete ? "FirstPoint" : "NextPoint";
202138
202305
  break;
202139
202306
  }
202140
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
202307
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
202141
202308
  const mouseInstructions = [];
202142
202309
  const touchInstructions = [];
202143
- const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
202144
- if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
202145
- 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));
202146
- 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));
202147
- const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("ElementSet.Inputs.Restart");
202148
- 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));
202149
- 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));
202310
+ const acceptMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(this._isComplete ? "ElementSet.Inputs.Restart" : "ElementSet.Inputs.AcceptPoint");
202311
+ if (!_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createTouchCursorInstructions(touchInstructions))
202312
+ 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));
202313
+ 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));
202314
+ const resetMsg = _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("ElementSet.Inputs.Restart");
202315
+ 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));
202316
+ 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));
202150
202317
  if (this._points.length > 1)
202151
- 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));
202318
+ 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));
202152
202319
  if (0 !== this._points.length)
202153
- 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));
202320
+ 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));
202154
202321
  const sections = [];
202155
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
202156
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
202157
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
202322
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202323
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202324
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
202158
202325
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
202159
202326
  }
202160
202327
  /** @internal */
@@ -202198,7 +202365,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202198
202365
  let currentPt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(cursorPt, points[0], normal, this.targetView, true);
202199
202366
  if (undefined === currentPt)
202200
202367
  currentPt = cursorPt.clone();
202201
- if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_11__.BeModifierKeys.Control)) {
202368
+ if (2 === points.length && 0 === (_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.toolAdmin.currentInputState.qualifiers & _Tool__WEBPACK_IMPORTED_MODULE_10__.BeModifierKeys.Control)) {
202202
202369
  const xDir = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Vector3d.createStartEnd(points[0], points[1]);
202203
202370
  const xLen = xDir.magnitude();
202204
202371
  xDir.normalizeInPlace();
@@ -202224,8 +202391,8 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202224
202391
  const points = this.getShapePoints(this._lastMotionPt);
202225
202392
  if (points.length < 2)
202226
202393
  return;
202227
- const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldDecoration);
202228
- const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_13__.GraphicType.WorldOverlay);
202394
+ const builderAccVis = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldDecoration);
202395
+ const builderAccHid = context.createGraphicBuilder(_common_render_GraphicType__WEBPACK_IMPORTED_MODULE_12__.GraphicType.WorldOverlay);
202229
202396
  const colorAccVis = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);
202230
202397
  const colorAccHid = colorAccVis.withAlpha(100);
202231
202398
  const fillAccVis = context.viewport.hilite.color.withAlpha(50);
@@ -202262,17 +202429,17 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202262
202429
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
202263
202430
  const toolTip = document.createElement("div");
202264
202431
  let toolTipHtml = "";
202265
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
202432
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
202266
202433
  if (undefined !== areaFormatterSpec) {
202267
202434
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
202268
202435
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
202269
202436
  }
202270
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
202437
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202271
202438
  if (undefined !== perimeterFormatterSpec) {
202272
202439
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._perimeter, perimeterFormatterSpec);
202273
202440
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
202274
202441
  }
202275
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
202442
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202276
202443
  if (undefined !== coordFormatterSpec) {
202277
202444
  let pointAdjusted = this._centroid.clone();
202278
202445
  if (isSpatial) {
@@ -202293,7 +202460,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202293
202460
  reportMeasurements() {
202294
202461
  if (undefined === this._marker)
202295
202462
  return;
202296
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
202463
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate("Measure.Labels.Area")}: ${this._marker.label}`;
202297
202464
  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);
202298
202465
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
202299
202466
  }
@@ -202311,7 +202478,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202311
202478
  const toolTip = await this.getMarkerToolTip();
202312
202479
  this._acceptedMeasurement = new MeasureMarker("1", toolTip, this._centroid, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
202313
202480
  this._marker = undefined;
202314
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
202481
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
202315
202482
  if (undefined === areaFormatterSpec)
202316
202483
  return;
202317
202484
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
@@ -202321,23 +202488,23 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202321
202488
  /** @internal */
202322
202489
  async onDataButtonDown(ev) {
202323
202490
  if (undefined === this.targetView)
202324
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202491
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202325
202492
  if (this._isComplete)
202326
202493
  await this.onReinitialize();
202327
202494
  if (this._points.length > 1 && !ev.isControlKey) {
202328
202495
  const points = this.getShapePoints(ev.point);
202329
202496
  if (points.length < 3)
202330
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202497
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202331
202498
  this._isComplete = true;
202332
202499
  this._points.length = 0;
202333
202500
  for (const pt of points)
202334
202501
  this._points.push(pt);
202335
202502
  await this.updateTotals();
202336
202503
  this.setupAndPromptForNextAction();
202337
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202504
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202338
202505
  }
202339
202506
  if (undefined === this._matrix && undefined === (this._matrix = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.getContextRotation(this.orientation, this.targetView)))
202340
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202507
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202341
202508
  const currPt = ev.point.clone();
202342
202509
  if (this._points.length > 0) {
202343
202510
  const planePt = _AccuDraw__WEBPACK_IMPORTED_MODULE_3__.AccuDrawHintBuilder.projectPointToPlaneInView(currPt, this._points[0], this._matrix.getColumn(2), ev.viewport, true);
@@ -202346,14 +202513,14 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202346
202513
  }
202347
202514
  this._points.push(currPt);
202348
202515
  this.setupAndPromptForNextAction();
202349
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202516
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202350
202517
  }
202351
202518
  /** @internal */
202352
202519
  async onResetButtonUp(ev) {
202353
202520
  if (undefined !== ev.viewport)
202354
202521
  ev.viewport.invalidateDecorations();
202355
202522
  await this.onReinitialize();
202356
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202523
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202357
202524
  }
202358
202525
  /** @internal */
202359
202526
  async onReinitialize() {
@@ -202383,7 +202550,7 @@ class MeasureAreaByPointsTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10
202383
202550
  /** Base class for mass properties tools.
202384
202551
  * @public
202385
202552
  */
202386
- class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.PrimitiveTool {
202553
+ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_9__.PrimitiveTool {
202387
202554
  /** @internal */
202388
202555
  _checkedIds = new Map();
202389
202556
  /** @internal */
@@ -202419,33 +202586,33 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202419
202586
  /** @internal */
202420
202587
  showPrompt() {
202421
202588
  const mainMsg = (this._useSelection ? (0 === this._acceptedMeasurements.length ? "ElementSet.Prompts.ConfirmSelection" : "ElementSet.Prompts.InspectResult") : "ElementSet.Prompts.IdentifyElement");
202422
- const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(mainMsg));
202589
+ const mainInstruction = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstruction(this.iconSpec, _Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(mainMsg));
202423
202590
  const mouseInstructions = [];
202424
202591
  const touchInstructions = [];
202425
202592
  if (this._useSelection) {
202426
202593
  if (0 === this._acceptedMeasurements.length) {
202427
- 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));
202428
- 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));
202429
- 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));
202430
- 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));
202594
+ 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));
202595
+ 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));
202596
+ 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));
202597
+ 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));
202431
202598
  }
202432
202599
  else {
202433
- 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));
202434
- 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));
202600
+ 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));
202601
+ 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));
202435
202602
  }
202436
202603
  }
202437
202604
  else {
202438
- 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));
202439
- 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));
202605
+ 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));
202606
+ 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));
202440
202607
  if (0 !== this._acceptedMeasurements.length) {
202441
- 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));
202442
- 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));
202608
+ 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));
202609
+ 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));
202443
202610
  }
202444
202611
  }
202445
202612
  const sections = [];
202446
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
202447
- sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.inputsLabel));
202448
- const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_12__.ToolAssistance.createInstructions(mainInstruction, sections);
202613
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(mouseInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202614
+ sections.push(_ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createSection(touchInstructions, _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.inputsLabel));
202615
+ const instructions = _ToolAssistance__WEBPACK_IMPORTED_MODULE_11__.ToolAssistance.createInstructions(mainInstruction, sections);
202449
202616
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.setToolAssistance(instructions);
202450
202617
  }
202451
202618
  /** @internal */
@@ -202482,7 +202649,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202482
202649
  default:
202483
202650
  return;
202484
202651
  }
202485
- const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_11__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
202652
+ const briefMsg = `${_Tool__WEBPACK_IMPORTED_MODULE_10__.CoreTools.translate(label)}: ${this._totalMarker.label}`;
202486
202653
  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);
202487
202654
  _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.outputMessage(msgDetail);
202488
202655
  }
@@ -202493,7 +202660,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202493
202660
  let toolTipHtml = "";
202494
202661
  switch (this.getOperation()) {
202495
202662
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths: {
202496
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
202663
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202497
202664
  if (undefined !== distanceFormatterSpec) {
202498
202665
  const formattedLength = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.length ? responseProps.length : 0, distanceFormatterSpec);
202499
202666
  toolTipHtml += `${translateBold("Length") + formattedLength}<br>`;
@@ -202501,13 +202668,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202501
202668
  break;
202502
202669
  }
202503
202670
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas: {
202504
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
202671
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
202505
202672
  if (undefined !== areaFormatterSpec) {
202506
202673
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area ? responseProps.area : 0, areaFormatterSpec);
202507
202674
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
202508
202675
  }
202509
202676
  if (responseProps.perimeter) {
202510
- const perimeterFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
202677
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202511
202678
  if (undefined !== perimeterFormatterSpec) {
202512
202679
  const formattedPerimeter = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.perimeter, perimeterFormatterSpec);
202513
202680
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
@@ -202516,13 +202683,13 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202516
202683
  break;
202517
202684
  }
202518
202685
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes: {
202519
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
202686
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
202520
202687
  if (undefined !== volumeFormatterSpec) {
202521
202688
  const formattedVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.volume ? responseProps.volume : 0, volumeFormatterSpec);
202522
202689
  toolTipHtml += `${translateBold("Volume") + formattedVolume}<br>`;
202523
202690
  }
202524
202691
  if (responseProps.area) {
202525
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
202692
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
202526
202693
  if (undefined !== areaFormatterSpec) {
202527
202694
  const formattedArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(responseProps.area, areaFormatterSpec);
202528
202695
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
@@ -202532,7 +202699,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202532
202699
  }
202533
202700
  }
202534
202701
  if (responseProps.centroid) {
202535
- const coordFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Coordinate);
202702
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202536
202703
  if (undefined !== coordFormatterSpec) {
202537
202704
  let pointAdjusted = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(responseProps.centroid);
202538
202705
  if (isSpatial) {
@@ -202583,21 +202750,21 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202583
202750
  return;
202584
202751
  switch (operation) {
202585
202752
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateLengths:
202586
- const distanceFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Length);
202753
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
202587
202754
  if (undefined === distanceFormatterSpec)
202588
202755
  return;
202589
202756
  const formattedTotalDistance = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, distanceFormatterSpec);
202590
202757
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalDistance);
202591
202758
  break;
202592
202759
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateAreas:
202593
- const areaFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Area);
202760
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
202594
202761
  if (undefined === areaFormatterSpec)
202595
202762
  return;
202596
202763
  const formattedTotalArea = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, areaFormatterSpec);
202597
202764
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalArea);
202598
202765
  break;
202599
202766
  case _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.MassPropertiesOperation.AccumulateVolumes:
202600
- const volumeFormatterSpec = await _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.getFormatterSpecByQuantityType(_quantity_formatting_QuantityFormatter__WEBPACK_IMPORTED_MODULE_9__.QuantityType.Volume);
202767
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
202601
202768
  if (undefined === volumeFormatterSpec)
202602
202769
  return;
202603
202770
  const formattedTotalVolume = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.quantityFormatter.formatQuantity(this._totalValue, volumeFormatterSpec);
@@ -202655,7 +202822,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202655
202822
  /** @internal */
202656
202823
  async onResetButtonUp(_ev) {
202657
202824
  await this.onReinitialize();
202658
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202825
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202659
202826
  }
202660
202827
  /** @internal */
202661
202828
  async onDataButtonDown(ev) {
@@ -202663,20 +202830,20 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202663
202830
  if (0 === this._acceptedMeasurements.length && undefined !== ev.viewport) {
202664
202831
  await this.doMeasureSelectedElements(ev.viewport);
202665
202832
  if (0 !== this._acceptedMeasurements.length)
202666
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
202667
- _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")));
202833
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
202834
+ _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")));
202668
202835
  await this.onReinitialize();
202669
202836
  }
202670
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes;
202837
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes;
202671
202838
  }
202672
202839
  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);
202673
202840
  if (undefined === hit || !hit.isElementHit)
202674
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202841
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202675
202842
  const result = this._checkedIds.get(hit.sourceId);
202676
202843
  if (undefined === result)
202677
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202844
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202678
202845
  if (-1 !== this._acceptedIds.indexOf(hit.sourceId))
202679
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
202846
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.Yes; // Already accepted, not rejected in filterHit to avoid showing "not" cursor...
202680
202847
  const toolTip = await this.getMarkerToolTip(result);
202681
202848
  const point = result.centroid ? _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point3d.fromJSON(result.centroid) : ev.point.clone();
202682
202849
  const marker = new MeasureMarker((this._acceptedMeasurements.length + 1).toString(), toolTip, point, _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(25, 25));
@@ -202687,7 +202854,7 @@ class MeasureElementTool extends _PrimitiveTool__WEBPACK_IMPORTED_MODULE_10__.Pr
202687
202854
  this.setupAndPromptForNextAction();
202688
202855
  if (undefined !== ev.viewport)
202689
202856
  ev.viewport.invalidateDecorations();
202690
- return _Tool__WEBPACK_IMPORTED_MODULE_11__.EventHandled.No;
202857
+ return _Tool__WEBPACK_IMPORTED_MODULE_10__.EventHandled.No;
202691
202858
  }
202692
202859
  /** @internal */
202693
202860
  async onUndoPreviousStep() {
@@ -329617,7 +329784,7 @@ class TestContext {
329617
329784
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
329618
329785
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
329619
329786
  await core_frontend_1.NoRenderApp.startup({
329620
- applicationVersion: "5.1.0-dev.13",
329787
+ applicationVersion: "5.1.0-dev.15",
329621
329788
  applicationId: this.settings.gprid,
329622
329789
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
329623
329790
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -332157,28 +332324,6 @@ const getClassName = (obj) => {
332157
332324
  };
332158
332325
 
332159
332326
 
332160
- /***/ }),
332161
-
332162
- /***/ "../../core/frontend/lib/esm/extension/providers lazy recursive":
332163
- /*!******************************************************************************!*\
332164
- !*** ../../core/frontend/lib/esm/extension/providers/ lazy namespace object ***!
332165
- \******************************************************************************/
332166
- /***/ ((module) => {
332167
-
332168
- function webpackEmptyAsyncContext(req) {
332169
- // Here Promise.resolve().then() is used instead of new Promise() to prevent
332170
- // uncaught exception popping up in devtools
332171
- return Promise.resolve().then(() => {
332172
- var e = new Error("Cannot find module '" + req + "'");
332173
- e.code = 'MODULE_NOT_FOUND';
332174
- throw e;
332175
- });
332176
- }
332177
- webpackEmptyAsyncContext.keys = () => ([]);
332178
- webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
332179
- webpackEmptyAsyncContext.id = "../../core/frontend/lib/esm/extension/providers lazy recursive";
332180
- module.exports = webpackEmptyAsyncContext;
332181
-
332182
332327
  /***/ }),
332183
332328
 
332184
332329
  /***/ "?088e":
@@ -354685,7 +354830,7 @@ var loadLanguages = instance.loadLanguages;
354685
354830
  /***/ ((module) => {
354686
354831
 
354687
354832
  "use strict";
354688
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.13","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"}}');
354833
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.1.0-dev.15","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"}}');
354689
354834
 
354690
354835
  /***/ }),
354691
354836