@itwin/core-frontend 5.4.0-dev.7 → 5.5.0-dev.2

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/lib/cjs/IModelApp.d.ts +12 -0
  3. package/lib/cjs/IModelApp.d.ts.map +1 -1
  4. package/lib/cjs/IModelApp.js +9 -0
  5. package/lib/cjs/IModelApp.js.map +1 -1
  6. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  7. package/lib/cjs/IModelConnection.js +6 -2
  8. package/lib/cjs/IModelConnection.js.map +1 -1
  9. package/lib/cjs/SheetViewState.d.ts +7 -5
  10. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  11. package/lib/cjs/SheetViewState.js +52 -683
  12. package/lib/cjs/SheetViewState.js.map +1 -1
  13. package/lib/cjs/internal/SheetViewAttachments.d.ts +57 -0
  14. package/lib/cjs/internal/SheetViewAttachments.d.ts.map +1 -0
  15. package/lib/cjs/internal/SheetViewAttachments.js +336 -0
  16. package/lib/cjs/internal/SheetViewAttachments.js.map +1 -0
  17. package/lib/cjs/internal/ViewAttachmentRenderer.d.ts +32 -0
  18. package/lib/cjs/internal/ViewAttachmentRenderer.d.ts.map +1 -0
  19. package/lib/cjs/internal/ViewAttachmentRenderer.js +462 -0
  20. package/lib/cjs/internal/ViewAttachmentRenderer.js.map +1 -0
  21. package/lib/cjs/internal/render/webgl/SceneCompositor.js +1 -1
  22. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  23. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  24. package/lib/cjs/internal/render/webgl/ShaderBuilder.js +8 -1
  25. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  26. package/lib/cjs/properties/AngleDescription.js +4 -4
  27. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  28. package/lib/cjs/properties/LengthDescription.js +9 -9
  29. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  30. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  31. package/lib/cjs/quantity-formatting/QuantityFormatter.js +9 -8
  32. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  33. package/lib/cjs/tools/EventController.js +1 -1
  34. package/lib/cjs/tools/EventController.js.map +1 -1
  35. package/lib/cjs/tools/MeasureTool.js +21 -21
  36. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  37. package/lib/esm/IModelApp.d.ts +12 -0
  38. package/lib/esm/IModelApp.d.ts.map +1 -1
  39. package/lib/esm/IModelApp.js +9 -0
  40. package/lib/esm/IModelApp.js.map +1 -1
  41. package/lib/esm/IModelConnection.d.ts.map +1 -1
  42. package/lib/esm/IModelConnection.js +7 -3
  43. package/lib/esm/IModelConnection.js.map +1 -1
  44. package/lib/esm/SheetViewState.d.ts +7 -5
  45. package/lib/esm/SheetViewState.d.ts.map +1 -1
  46. package/lib/esm/SheetViewState.js +55 -686
  47. package/lib/esm/SheetViewState.js.map +1 -1
  48. package/lib/esm/internal/SheetViewAttachments.d.ts +57 -0
  49. package/lib/esm/internal/SheetViewAttachments.d.ts.map +1 -0
  50. package/lib/esm/internal/SheetViewAttachments.js +332 -0
  51. package/lib/esm/internal/SheetViewAttachments.js.map +1 -0
  52. package/lib/esm/internal/ViewAttachmentRenderer.d.ts +32 -0
  53. package/lib/esm/internal/ViewAttachmentRenderer.d.ts.map +1 -0
  54. package/lib/esm/internal/ViewAttachmentRenderer.js +459 -0
  55. package/lib/esm/internal/ViewAttachmentRenderer.js.map +1 -0
  56. package/lib/esm/internal/render/webgl/SceneCompositor.js +1 -1
  57. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  58. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  59. package/lib/esm/internal/render/webgl/ShaderBuilder.js +8 -1
  60. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  61. package/lib/esm/properties/AngleDescription.js +4 -4
  62. package/lib/esm/properties/AngleDescription.js.map +1 -1
  63. package/lib/esm/properties/LengthDescription.js +9 -9
  64. package/lib/esm/properties/LengthDescription.js.map +1 -1
  65. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  66. package/lib/esm/quantity-formatting/QuantityFormatter.js +9 -8
  67. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  68. package/lib/esm/tools/EventController.js +1 -1
  69. package/lib/esm/tools/EventController.js.map +1 -1
  70. package/lib/esm/tools/MeasureTool.js +21 -21
  71. package/lib/esm/tools/MeasureTool.js.map +1 -1
  72. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  73. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  74. package/package.json +21 -21
@@ -20,7 +20,7 @@ export class EventController {
20
20
  const element = vp.parentDiv;
21
21
  if (element === undefined)
22
22
  return;
23
- // Put events on the parentDiv to allows us to stopPropagation of events to the view canvas when they are meant for a sibling of view canvas (markup canvas, for example).
23
+ // Put events on the parentDiv to allow us to stopPropagation of events to the view canvas when they are meant for a sibling of view canvas (markup canvas, for example).
24
24
  this.addDomListeners(["mousedown", "mouseup", "mousemove", "mouseover", "mouseout", "wheel", "touchstart", "touchend", "touchcancel", "touchmove"], element);
25
25
  element.oncontextmenu = element.onselectstart = () => false;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventController.js","sourceRoot":"","sources":["../../../src/tools/EventController.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAGP;IAFF,SAAS,GAAmB,EAAE,CAAC;IAEhD,YAAmB,EAAkB;QAAlB,OAAE,GAAF,EAAE,CAAgB;QACnC,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;QAC7B,IAAI,OAAO,KAAK,SAAS;YACvB,OAAO;QAET,2KAA2K;QAC3K,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAE7J,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;IAC9D,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,OAAiB,EAAE,OAAoB;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,CAAC,EAAS,EAAE,EAAE;YAC7B,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ScreenViewport } from \"../Viewport\";\nimport { ToolAdmin } from \"./ToolAdmin\";\n\n/**\n * An EventController maps user input events from a Viewport to the ToolAdmin so that tools can process them.\n * Viewports are assigned an EventController when they are registered with ViewManager.addViewport and they are destroyed with ViewManager.dropViewport.\n * @public\n * @extensions\n */\nexport class EventController {\n private readonly _removals: VoidFunction[] = [];\n\n constructor(public vp: ScreenViewport) {\n const element = vp.parentDiv;\n if (element === undefined)\n return;\n\n // Put events on the parentDiv to allows us to stopPropagation of events to the view canvas when they are meant for a sibling of view canvas (markup canvas, for example).\n this.addDomListeners([\"mousedown\", \"mouseup\", \"mousemove\", \"mouseover\", \"mouseout\", \"wheel\", \"touchstart\", \"touchend\", \"touchcancel\", \"touchmove\"], element);\n\n element.oncontextmenu = element.onselectstart = () => false;\n }\n\n public destroy() {\n this._removals.forEach((remove) => remove());\n this._removals.length = 0;\n }\n\n /**\n * Call element.addEventListener for each type of DOM event supplied. Creates a listener that will forward the HTML event to ToolAdmin.addEvent.\n * Records the listener in the [[removals]] member so they are removed when this EventController is destroyed.\n * @param domType An array of DOM event types to pass to element.addEventListener\n * @param element The HTML element to which the listeners are added\n */\n private addDomListeners(domType: string[], element: HTMLElement) {\n const vp = this.vp;\n const listener = (ev: Event) => {\n ev.preventDefault();\n ToolAdmin.addEvent(ev, vp);\n };\n domType.forEach((type) => {\n element.addEventListener(type, listener, false);\n this._removals.push(() => element.removeEventListener(type, listener, false));\n });\n }\n}\n"]}
1
+ {"version":3,"file":"EventController.js","sourceRoot":"","sources":["../../../src/tools/EventController.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAGP;IAFF,SAAS,GAAmB,EAAE,CAAC;IAEhD,YAAmB,EAAkB;QAAlB,OAAE,GAAF,EAAE,CAAgB;QACnC,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;QAC7B,IAAI,OAAO,KAAK,SAAS;YACvB,OAAO;QAET,yKAAyK;QACzK,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QAE7J,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;IAC9D,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,OAAiB,EAAE,OAAoB;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,CAAC,EAAS,EAAE,EAAE;YAC7B,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ScreenViewport } from \"../Viewport\";\nimport { ToolAdmin } from \"./ToolAdmin\";\n\n/**\n * An EventController maps user input events from a Viewport to the ToolAdmin so that tools can process them.\n * Viewports are assigned an EventController when they are registered with ViewManager.addViewport and they are destroyed with ViewManager.dropViewport.\n * @public\n * @extensions\n */\nexport class EventController {\n private readonly _removals: VoidFunction[] = [];\n\n constructor(public vp: ScreenViewport) {\n const element = vp.parentDiv;\n if (element === undefined)\n return;\n\n // Put events on the parentDiv to allow us to stopPropagation of events to the view canvas when they are meant for a sibling of view canvas (markup canvas, for example).\n this.addDomListeners([\"mousedown\", \"mouseup\", \"mousemove\", \"mouseover\", \"mouseout\", \"wheel\", \"touchstart\", \"touchend\", \"touchcancel\", \"touchmove\"], element);\n\n element.oncontextmenu = element.onselectstart = () => false;\n }\n\n public destroy() {\n this._removals.forEach((remove) => remove());\n this._removals.length = 0;\n }\n\n /**\n * Call element.addEventListener for each type of DOM event supplied. Creates a listener that will forward the HTML event to ToolAdmin.addEvent.\n * Records the listener in the [[removals]] member so they are removed when this EventController is destroyed.\n * @param domType An array of DOM event types to pass to element.addEventListener\n * @param element The HTML element to which the listeners are added\n */\n private addDomListeners(domType: string[], element: HTMLElement) {\n const vp = this.vp;\n const listener = (ev: Event) => {\n ev.preventDefault();\n ToolAdmin.addEvent(ev, vp);\n };\n domType.forEach((type) => {\n element.addEventListener(type, listener, false);\n this._removals.push(() => element.removeEventListener(type, listener, false));\n });\n }\n}\n"]}
@@ -164,13 +164,13 @@ export class MeasureDistanceTool extends PrimitiveTool {
164
164
  /** @internal */
165
165
  async onPostInstall() {
166
166
  await super.onPostInstall();
167
- this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
168
- this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
167
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
168
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.ANGLE", "Units.RAD");
169
169
  this._removeFormatterListener = IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
170
- if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.LENGTH"))
171
- this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
172
- if (args.formatsChanged === "all" || args.formatsChanged.includes("AecUnits.ANGLE"))
173
- this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
170
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("DefaultToolsUnits.LENGTH"))
171
+ this._lengthFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
172
+ if (args.formatsChanged === "all" || args.formatsChanged.includes("DefaultToolsUnits.ANGLE"))
173
+ this._angleFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.ANGLE", "Units.RAD");
174
174
  });
175
175
  this.setupAndPromptForNextAction();
176
176
  }
@@ -652,7 +652,7 @@ export class MeasureLocationTool extends PrimitiveTool {
652
652
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
653
653
  const toolTip = document.createElement("div");
654
654
  let toolTipHtml = "";
655
- const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
655
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH_COORDINATE", "Units.M");
656
656
  if (undefined !== coordFormatterSpec) {
657
657
  let pointAdjusted = point;
658
658
  if (isSpatial) {
@@ -668,7 +668,7 @@ export class MeasureLocationTool extends PrimitiveTool {
668
668
  toolTipHtml += "<br>";
669
669
  }
670
670
  if (isSpatial) {
671
- const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.ANGLE", "Units.RAD");
671
+ const latLongFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.ANGLE", "Units.RAD");
672
672
  if (undefined !== latLongFormatterSpec && undefined !== coordFormatterSpec) {
673
673
  try {
674
674
  const cartographic = await this.iModel.spatialToCartographic(point);
@@ -972,17 +972,17 @@ export class MeasureAreaByPointsTool extends PrimitiveTool {
972
972
  const isSpatial = (undefined !== this.targetView && this.targetView.view.isSpatialView());
973
973
  const toolTip = document.createElement("div");
974
974
  let toolTipHtml = "";
975
- const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
975
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.AREA", "Units.SQ_M");
976
976
  if (undefined !== areaFormatterSpec) {
977
977
  const formattedArea = IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
978
978
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
979
979
  }
980
- const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
980
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
981
981
  if (undefined !== perimeterFormatterSpec) {
982
982
  const formattedPerimeter = IModelApp.quantityFormatter.formatQuantity(this._perimeter, perimeterFormatterSpec);
983
983
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
984
984
  }
985
- const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
985
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH_COORDINATE", "Units.M");
986
986
  if (undefined !== coordFormatterSpec) {
987
987
  let pointAdjusted = this._centroid.clone();
988
988
  if (isSpatial) {
@@ -1021,7 +1021,7 @@ export class MeasureAreaByPointsTool extends PrimitiveTool {
1021
1021
  const toolTip = await this.getMarkerToolTip();
1022
1022
  this._acceptedMeasurement = new MeasureMarker("1", toolTip, this._centroid, Point2d.create(25, 25));
1023
1023
  this._marker = undefined;
1024
- const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
1024
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.AREA", "Units.SQ_M");
1025
1025
  if (undefined === areaFormatterSpec)
1026
1026
  return;
1027
1027
  const formattedTotalArea = IModelApp.quantityFormatter.formatQuantity(this._area, areaFormatterSpec);
@@ -1204,7 +1204,7 @@ export class MeasureElementTool extends PrimitiveTool {
1204
1204
  let toolTipHtml = "";
1205
1205
  switch (this.getOperation()) {
1206
1206
  case MassPropertiesOperation.AccumulateLengths: {
1207
- const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
1207
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
1208
1208
  if (undefined !== distanceFormatterSpec) {
1209
1209
  const formattedLength = IModelApp.quantityFormatter.formatQuantity(responseProps.length ? responseProps.length : 0, distanceFormatterSpec);
1210
1210
  toolTipHtml += `${translateBold("Length") + formattedLength}<br>`;
@@ -1212,13 +1212,13 @@ export class MeasureElementTool extends PrimitiveTool {
1212
1212
  break;
1213
1213
  }
1214
1214
  case MassPropertiesOperation.AccumulateAreas: {
1215
- const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
1215
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.AREA", "Units.SQ_M");
1216
1216
  if (undefined !== areaFormatterSpec) {
1217
1217
  const formattedArea = IModelApp.quantityFormatter.formatQuantity(responseProps.area ? responseProps.area : 0, areaFormatterSpec);
1218
1218
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
1219
1219
  }
1220
1220
  if (responseProps.perimeter) {
1221
- const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
1221
+ const perimeterFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
1222
1222
  if (undefined !== perimeterFormatterSpec) {
1223
1223
  const formattedPerimeter = IModelApp.quantityFormatter.formatQuantity(responseProps.perimeter, perimeterFormatterSpec);
1224
1224
  toolTipHtml += `${translateBold("Perimeter") + formattedPerimeter}<br>`;
@@ -1227,13 +1227,13 @@ export class MeasureElementTool extends PrimitiveTool {
1227
1227
  break;
1228
1228
  }
1229
1229
  case MassPropertiesOperation.AccumulateVolumes: {
1230
- const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
1230
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.VOLUME", "Units.CUB_M");
1231
1231
  if (undefined !== volumeFormatterSpec) {
1232
1232
  const formattedVolume = IModelApp.quantityFormatter.formatQuantity(responseProps.volume ? responseProps.volume : 0, volumeFormatterSpec);
1233
1233
  toolTipHtml += `${translateBold("Volume") + formattedVolume}<br>`;
1234
1234
  }
1235
1235
  if (responseProps.area) {
1236
- const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
1236
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.AREA", "Units.SQ_M");
1237
1237
  if (undefined !== areaFormatterSpec) {
1238
1238
  const formattedArea = IModelApp.quantityFormatter.formatQuantity(responseProps.area, areaFormatterSpec);
1239
1239
  toolTipHtml += `${translateBold("Area") + formattedArea}<br>`;
@@ -1243,7 +1243,7 @@ export class MeasureElementTool extends PrimitiveTool {
1243
1243
  }
1244
1244
  }
1245
1245
  if (responseProps.centroid) {
1246
- const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
1246
+ const coordFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
1247
1247
  if (undefined !== coordFormatterSpec) {
1248
1248
  let pointAdjusted = Point3d.fromJSON(responseProps.centroid);
1249
1249
  if (isSpatial) {
@@ -1294,21 +1294,21 @@ export class MeasureElementTool extends PrimitiveTool {
1294
1294
  return;
1295
1295
  switch (operation) {
1296
1296
  case MassPropertiesOperation.AccumulateLengths:
1297
- const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.LENGTH", "Units.M");
1297
+ const distanceFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.LENGTH", "Units.M");
1298
1298
  if (undefined === distanceFormatterSpec)
1299
1299
  return;
1300
1300
  const formattedTotalDistance = IModelApp.quantityFormatter.formatQuantity(this._totalValue, distanceFormatterSpec);
1301
1301
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalDistance);
1302
1302
  break;
1303
1303
  case MassPropertiesOperation.AccumulateAreas:
1304
- const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.AREA", "Units.SQ_M");
1304
+ const areaFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.AREA", "Units.SQ_M");
1305
1305
  if (undefined === areaFormatterSpec)
1306
1306
  return;
1307
1307
  const formattedTotalArea = IModelApp.quantityFormatter.formatQuantity(this._totalValue, areaFormatterSpec);
1308
1308
  this._totalMarker = new MeasureLabel(labelPt, formattedTotalArea);
1309
1309
  break;
1310
1310
  case MassPropertiesOperation.AccumulateVolumes:
1311
- const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("AecUnits.VOLUME", "Units.CUB_M");
1311
+ const volumeFormatterSpec = await getFormatterSpecByKoQAndPersistenceUnit("DefaultToolsUnits.VOLUME", "Units.CUB_M");
1312
1312
  if (undefined === volumeFormatterSpec)
1313
1313
  return;
1314
1314
  const formattedTotalVolume = IModelApp.quantityFormatter.formatQuantity(this._totalValue, volumeFormatterSpec);