@itwin/core-frontend 5.9.0-dev.8 → 5.10.0-dev.1

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 (67) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/lib/cjs/BriefcaseTxns.d.ts +58 -1
  3. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  4. package/lib/cjs/BriefcaseTxns.js +65 -0
  5. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  6. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  7. package/lib/cjs/PerModelCategoryVisibility.js +83 -81
  8. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  9. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  10. package/lib/cjs/SpatialViewState.js +3 -1
  11. package/lib/cjs/SpatialViewState.js.map +1 -1
  12. package/lib/cjs/ViewState.d.ts +32 -0
  13. package/lib/cjs/ViewState.d.ts.map +1 -1
  14. package/lib/cjs/ViewState.js +41 -4
  15. package/lib/cjs/ViewState.js.map +1 -1
  16. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  17. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  18. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  19. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +119 -22
  20. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  21. package/lib/cjs/quantity-formatting/QuantityFormatter.js +261 -59
  22. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  23. package/lib/cjs/tile/GltfReader.js.map +1 -1
  24. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  25. package/lib/cjs/tools/ToolAdmin.d.ts +20 -1
  26. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  27. package/lib/cjs/tools/ToolAdmin.js +75 -7
  28. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  29. package/lib/cjs/tools/ToolSettings.d.ts +4 -0
  30. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  31. package/lib/cjs/tools/ToolSettings.js +4 -0
  32. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  33. package/lib/esm/BriefcaseTxns.d.ts +58 -1
  34. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  35. package/lib/esm/BriefcaseTxns.js +65 -0
  36. package/lib/esm/BriefcaseTxns.js.map +1 -1
  37. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  38. package/lib/esm/PerModelCategoryVisibility.js +84 -82
  39. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  40. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  41. package/lib/esm/SpatialViewState.js +3 -1
  42. package/lib/esm/SpatialViewState.js.map +1 -1
  43. package/lib/esm/ViewState.d.ts +32 -0
  44. package/lib/esm/ViewState.d.ts.map +1 -1
  45. package/lib/esm/ViewState.js +42 -5
  46. package/lib/esm/ViewState.js.map +1 -1
  47. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  48. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  49. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  50. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +119 -22
  51. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  52. package/lib/esm/quantity-formatting/QuantityFormatter.js +263 -61
  53. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  54. package/lib/esm/tile/GltfReader.js.map +1 -1
  55. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  56. package/lib/esm/tools/ToolAdmin.d.ts +20 -1
  57. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  58. package/lib/esm/tools/ToolAdmin.js +77 -9
  59. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  60. package/lib/esm/tools/ToolSettings.d.ts +4 -0
  61. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  62. package/lib/esm/tools/ToolSettings.js +4 -0
  63. package/lib/esm/tools/ToolSettings.js.map +1 -1
  64. package/lib/public/locales/en/iModelJs.json +1 -0
  65. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  66. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  67. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
@@ -168,7 +168,7 @@ class QuantityTypeFormatsProvider {
168
168
  ["CivilUnits.LENGTH", QuantityType.LengthEngineering],
169
169
  ["AecUnits.LENGTH", QuantityType.LengthEngineering]
170
170
  ]);
171
- async getFormat(name) {
171
+ async getFormat(name, _system) {
172
172
  const quantityType = this._kindOfQuantityMap.get(name);
173
173
  if (!quantityType)
174
174
  return undefined;
@@ -184,37 +184,35 @@ exports.QuantityTypeFormatsProvider = QuantityTypeFormatsProvider;
184
184
  class FormatsProviderManager {
185
185
  _formatsProvider;
186
186
  onFormatsChanged = new core_bentley_1.BeEvent();
187
+ _removeProviderListener;
187
188
  constructor(_formatsProvider) {
188
189
  this._formatsProvider = _formatsProvider;
189
- this._formatsProvider.onFormatsChanged.addListener((args) => {
190
+ this._removeProviderListener = this._formatsProvider.onFormatsChanged.addListener((args) => {
190
191
  this.onFormatsChanged.raiseEvent(args);
191
192
  });
192
193
  }
193
- async getFormat(name) {
194
- return this._formatsProvider.getFormat(name);
194
+ async getFormat(name, system) {
195
+ return this._formatsProvider.getFormat(name, system);
195
196
  }
196
197
  get formatsProvider() { return this; }
197
198
  set formatsProvider(formatsProvider) {
199
+ this._removeProviderListener?.();
198
200
  this._formatsProvider = formatsProvider;
199
- this._formatsProvider.onFormatsChanged.addListener((args) => {
201
+ this._removeProviderListener = this._formatsProvider.onFormatsChanged.addListener((args) => {
200
202
  this.onFormatsChanged.raiseEvent(args);
201
203
  });
202
204
  this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
203
205
  }
204
206
  }
205
207
  exports.FormatsProviderManager = FormatsProviderManager;
206
- /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
207
- * the "active" unit system and caches FormatterSpecs and ParserSpecs for the "active" unit system to allow synchronous access to
208
- * parsing and formatting values. The support unit systems are defined by [[UnitSystemKey]] and is kept in synch with the unit systems
209
- * provided by the Presentation Manager on the backend. The QuantityFormatter contains a registry of quantity type definitions. These definitions implement
210
- * the [[QuantityTypeDefinition]] interface, which among other things, provide default [[FormatProps]], and provide methods
211
- * to generate both a [[FormatterSpec]] and a [[ParserSpec]]. There are built-in quantity types that are
208
+ /** The QuantityFormatter class provides methods for formatting and parsing quantities. There are a set of standard quantity types
212
209
  * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
213
210
  * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
214
211
  *
215
212
  * @public
216
213
  */
217
214
  class QuantityFormatter {
215
+ static _allUnitSystems = ["metric", "imperial", "usCustomary", "usSurvey"];
218
216
  _unitsProvider = new BasicUnitsProvider_1.BasicUnitsProvider();
219
217
  _alternateUnitLabelsRegistry = new AlternateUnitLabelsRegistry((0, BasicUnitsProvider_1.getDefaultAlternateUnitLabels)());
220
218
  /** Registry containing available quantity type definitions. */
@@ -225,9 +223,9 @@ class QuantityFormatter {
225
223
  _formatSpecsRegistry = new Map();
226
224
  /** Active UnitSystem key - must be one of "imperial", "metric", "usCustomary", or "usSurvey". */
227
225
  _activeUnitSystem = "imperial";
228
- /** Map of FormatSpecs for all available QuantityTypes and the active Unit System */
226
+ /** Map of FormatSpecs for all available QuantityTypes, keyed by quantity type */
229
227
  _activeFormatSpecsByType = new Map();
230
- /** Map of ParserSpecs for all available QuantityTypes and the active Unit System */
228
+ /** Map of ParserSpecs for all available QuantityTypes, keyed by quantity type */
231
229
  _activeParserSpecsByType = new Map();
232
230
  /** Map of FormatSpecs that have been overriden from the default. */
233
231
  _overrideFormatPropsByUnitSystem = new Map();
@@ -249,6 +247,45 @@ class QuantityFormatter {
249
247
  onQuantityFormatsChanged = new core_bentley_1.BeUiEvent();
250
248
  /** Fired when the active UnitsProvider is updated. This will allow cached Formatter and Parser specs to be updated if necessary. */
251
249
  onUnitsProviderChanged = new core_bentley_1.BeUiEvent();
250
+ /** Fired after every reload path completes (initialization, unit system change, provider change, reinitialize).
251
+ * This is the terminal "ready" signal — it fires once the QuantityFormatter has fully rebuilt its caches and is
252
+ * ready to format/parse values. Subscribe to this event to know when formatting specs are available.
253
+ *
254
+ * Uses `BeUnorderedUiEvent` (Set-backed) so listeners can safely add/remove themselves during emit —
255
+ * this is critical for `FormatSpecHandle` instances that subscribe/dispose at volume.
256
+ * @beta
257
+ */
258
+ onFormattingReady = new core_bentley_1.BeUnorderedUiEvent();
259
+ /** Event for formatting providers to register async work before the formatter signals ready.
260
+ * Fires synchronously after each reload completes. Providers should call
261
+ * `collector.addPendingWork(promise)` to register work. The formatter awaits all
262
+ * registered work (with a 20-second default timeout) before emitting [[onFormattingReady]].
263
+ *
264
+ * Use this for **providers** that need async loading. Use [[onFormattingReady]] for
265
+ * **consumers** that read specs.
266
+ * @beta
267
+ */
268
+ onBeforeFormattingReady = new core_bentley_1.BeEvent();
269
+ /** Whether the QuantityFormatter has completed at least one successful reload and is ready to format/parse.
270
+ * @beta
271
+ */
272
+ get isReady() { return this._isReady; }
273
+ /** A promise that resolves after the first successful initialization. This is one-shot — it resolves once
274
+ * and stays resolved forever. For subsequent reloads, subscribe to [[onFormattingReady]].
275
+ *
276
+ * This promise never rejects. If the first initialization attempt fails, it stays pending until a
277
+ * subsequent reload succeeds (e.g., triggered by `setUnitsProvider` or a format change). There is no
278
+ * finite retry limit, so rejection would prematurely close the door on recovery.
279
+ * @beta
280
+ */
281
+ get whenInitialized() { return this._initializedPromise; }
282
+ _isReady = false;
283
+ _hasEverBeenReady = false;
284
+ _initializedPromise;
285
+ _resolveInitialized;
286
+ _reloadInFlight = false;
287
+ _pendingReload;
288
+ _deferredSystemChangedEmit;
252
289
  _removeFormatsProviderListener;
253
290
  /**
254
291
  * constructor
@@ -256,6 +293,9 @@ class QuantityFormatter {
256
293
  * set it to a specific unit system pass a UnitSystemKey.
257
294
  */
258
295
  constructor(showMetricOrUnitSystem) {
296
+ this._initializedPromise = new Promise((resolve) => {
297
+ this._resolveInitialized = resolve;
298
+ });
259
299
  if (undefined !== showMetricOrUnitSystem) {
260
300
  if (typeof showMetricOrUnitSystem === "boolean")
261
301
  this._activeUnitSystem = showMetricOrUnitSystem ? "metric" : "imperial";
@@ -269,6 +309,116 @@ class QuantityFormatter {
269
309
  this._removeFormatsProviderListener = undefined;
270
310
  }
271
311
  }
312
+ /** Schedule an async reload. If no reload is in flight, runs immediately. If a reload is
313
+ * already in flight, stores the intent as pending (latest-wins: only the last scheduled reload
314
+ * is kept). `finalizeReload()` fires only when the queue is fully drained.
315
+ *
316
+ * **Await semantics:** When a reload is already in flight, the returned promise resolves
317
+ * immediately *without* the requested reload having run. Callers that need to know when
318
+ * the reload has actually completed should listen for `onFormattingReady` instead.
319
+ *
320
+ * Reload intents:
321
+ * - `"full"` — rebuild entire registry + re-register provider listener (onInitialized, setUnitsProvider)
322
+ * - `"formatsChanged"` — patch registry from provider + load maps (formatsChanged listener)
323
+ * - `"activeSystem"` — reload format/parsing maps for current unit system (setActiveUnitSystem, reinitializeFormatAndParsingsMaps)
324
+ * @internal
325
+ */
326
+ async scheduleReload(intent) {
327
+ if (this._reloadInFlight) {
328
+ // A reload is already running — queue this one (latest-wins)
329
+ this._pendingReload = intent;
330
+ return;
331
+ }
332
+ this._reloadInFlight = true;
333
+ this._isReady = false;
334
+ this._deferredSystemChangedEmit = undefined; // Clear stale deferred from prior cycle
335
+ try {
336
+ await this._executeReload(intent);
337
+ }
338
+ catch (err) {
339
+ core_bentley_1.Logger.logError(`${FrontendLoggerCategory_1.FrontendLoggerCategory.Package}.QuantityFormatter`, core_bentley_1.BentleyError.getErrorMessage(err));
340
+ this._reloadInFlight = false;
341
+ // If there's a pending reload, still try to run it
342
+ if (this._pendingReload) {
343
+ const next = this._pendingReload;
344
+ this._pendingReload = undefined;
345
+ return this.scheduleReload(next);
346
+ }
347
+ // Restore prior ready state so stale-but-usable specs remain accessible
348
+ if (this._hasEverBeenReady) {
349
+ core_bentley_1.Logger.logWarning(`${FrontendLoggerCategory_1.FrontendLoggerCategory.Package}.QuantityFormatter`, "Reload failed — restoring previous ready state. Cached specs may be stale.");
350
+ this._isReady = true;
351
+ }
352
+ return;
353
+ }
354
+ // Current reload succeeded — check if another was queued
355
+ if (this._pendingReload) {
356
+ const next = this._pendingReload;
357
+ this._pendingReload = undefined;
358
+ this._reloadInFlight = false;
359
+ return this.scheduleReload(next);
360
+ }
361
+ // Queue is drained — finalize
362
+ await this.finalizeReload();
363
+ // A new reload may have been queued during the async finalizeReload window
364
+ if (this._pendingReload) {
365
+ const next = this._pendingReload;
366
+ this._pendingReload = undefined;
367
+ this._reloadInFlight = false;
368
+ return this.scheduleReload(next);
369
+ }
370
+ this._reloadInFlight = false;
371
+ }
372
+ /** Execute the reload work for a given intent. All reload logic is centralized here.
373
+ * @internal
374
+ */
375
+ async _executeReload(intent) {
376
+ switch (intent.scope) {
377
+ case "full":
378
+ await this._reloadCore();
379
+ break;
380
+ case "formatsChanged": {
381
+ const { args } = intent;
382
+ await this._rebuildRegistryFromProvider(args);
383
+ if (args.impliedUnitSystem && args.impliedUnitSystem !== this._activeUnitSystem) {
384
+ this._activeUnitSystem = args.impliedUnitSystem;
385
+ }
386
+ await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
387
+ if (args.impliedUnitSystem) {
388
+ this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
389
+ }
390
+ break;
391
+ }
392
+ case "activeSystem":
393
+ await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
394
+ if (intent.emitSystemChanged) {
395
+ this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
396
+ }
397
+ break;
398
+ }
399
+ }
400
+ /** Called when the reload queue is fully drained after a successful reload.
401
+ * Sets `isReady` to true, resolves `whenInitialized` (one-shot), and emits ready events.
402
+ * @internal
403
+ */
404
+ async finalizeReload() {
405
+ // Phase 1: Let providers register async work
406
+ const collector = new core_quantity_1.FormattingReadyCollector();
407
+ this.onBeforeFormattingReady.raiseEvent(collector);
408
+ await collector.awaitAll();
409
+ // Phase 2: Signal ready to consumers
410
+ this._isReady = true;
411
+ this._hasEverBeenReady = true;
412
+ this._resolveInitialized();
413
+ this.onFormattingReady.emit();
414
+ // Phase 3: Emit deferred unit-system-changed if the winning reload set one.
415
+ // This fires after isReady === true so listeners can safely use the formatter.
416
+ if (this._deferredSystemChangedEmit) {
417
+ const args = this._deferredSystemChangedEmit;
418
+ this._deferredSystemChangedEmit = undefined;
419
+ this.onActiveFormattingUnitSystemChanged.emit(args);
420
+ }
421
+ }
272
422
  getOverrideFormatPropsByQuantityType(quantityTypeKey, unitSystem) {
273
423
  const requestedUnitSystem = unitSystem ?? this.activeUnitSystem;
274
424
  const overrideMap = this._overrideFormatPropsByUnitSystem.get(requestedUnitSystem);
@@ -395,6 +545,12 @@ class QuantityFormatter {
395
545
  * @internal
396
546
  */
397
547
  async onInitialized() {
548
+ await this.scheduleReload({ scope: "full" });
549
+ }
550
+ /** Core reload logic — does all async I/O and cache rebuilding without events or state management.
551
+ * @internal
552
+ */
553
+ async _reloadCore() {
398
554
  // Remove any existing listener before re-registering to avoid duplicates when called via setUnitsProvider.
399
555
  if (this._removeFormatsProviderListener) {
400
556
  this._removeFormatsProviderListener();
@@ -403,46 +559,61 @@ class QuantityFormatter {
403
559
  await this.initializeQuantityTypesRegistry();
404
560
  const initialKoQs = [["DefaultToolsUnits.LENGTH", "Units.M"], ["DefaultToolsUnits.ANGLE", "Units.RAD"], ["DefaultToolsUnits.AREA", "Units.SQ_M"], ["DefaultToolsUnits.VOLUME", "Units.CUB_M"], ["DefaultToolsUnits.LENGTH_COORDINATE", "Units.M"], ["CivilUnits.STATION", "Units.M"], ["CivilUnits.LENGTH", "Units.M"], ["AecUnits.LENGTH", "Units.M"]];
405
561
  for (const entry of initialKoQs) {
406
- try {
407
- await this.addFormattingSpecsToRegistry(entry[0], entry[1]);
562
+ for (const system of QuantityFormatter._allUnitSystems) {
563
+ try {
564
+ await this.addFormattingSpecsToRegistry({ name: entry[0], persistenceUnitName: entry[1], system });
565
+ }
566
+ catch (err) {
567
+ core_bentley_1.Logger.logWarning(`${FrontendLoggerCategory_1.FrontendLoggerCategory.Package}.QuantityFormatter`, err.toString());
568
+ }
569
+ }
570
+ }
571
+ // Register formatsProvider listener that triggers a queued reload when formats change
572
+ this._removeFormatsProviderListener = IModelApp_1.IModelApp.formatsProvider.onFormatsChanged.addListener((args) => {
573
+ void this.scheduleReload({ scope: "formatsChanged", args });
574
+ });
575
+ // initialize default format and parsing specs
576
+ await this.loadFormatAndParsingMapsForSystem();
577
+ }
578
+ /** Rebuild the formatting specs registry from the current formatsProvider based on changed args.
579
+ * @internal
580
+ */
581
+ async _rebuildRegistryFromProvider(args) {
582
+ if (args.formatsChanged === "all") {
583
+ for (const [name, unitMap] of this._formatSpecsRegistry.entries()) {
584
+ await this._rebuildRegistryForName(name, unitMap);
408
585
  }
409
- catch (err) {
410
- core_bentley_1.Logger.logWarning(`${FrontendLoggerCategory_1.FrontendLoggerCategory.Package}.QuantityFormatter`, err.toString());
586
+ }
587
+ else {
588
+ for (const name of args.formatsChanged) {
589
+ const unitMap = this._formatSpecsRegistry.get(name);
590
+ if (unitMap) {
591
+ await this._rebuildRegistryForName(name, unitMap);
592
+ }
411
593
  }
412
594
  }
413
- this._removeFormatsProviderListener = IModelApp_1.IModelApp.formatsProvider.onFormatsChanged.addListener(async (args) => {
414
- if (args.formatsChanged === "all") {
415
- for (const [name, entry] of this._formatSpecsRegistry.entries()) {
416
- const formatProps = await IModelApp_1.IModelApp.formatsProvider.getFormat(name);
417
- if (formatProps) {
418
- const persistenceUnitName = entry.formatterSpec.persistenceUnit.name;
419
- await this.addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps);
420
- }
421
- else {
422
- this._formatSpecsRegistry.delete(name); // clear the specs if format was removed, or no longer exists.
423
- }
595
+ }
596
+ /** Rebuild all system entries for a single KoQ name in the registry. */
597
+ async _rebuildRegistryForName(name, unitMap) {
598
+ let anySystemHadFormat = false;
599
+ for (const system of QuantityFormatter._allUnitSystems) {
600
+ const formatProps = await IModelApp_1.IModelApp.formatsProvider.getFormat(name, system);
601
+ if (formatProps) {
602
+ anySystemHadFormat = true;
603
+ for (const [persistenceUnitName] of unitMap.entries()) {
604
+ await this.addFormattingSpecsToRegistry({ name, persistenceUnitName, formatProps, system });
424
605
  }
425
606
  }
426
607
  else {
427
- for (const name of args.formatsChanged) {
428
- if (this._formatSpecsRegistry.has(name)) {
429
- const formatProps = await IModelApp_1.IModelApp.formatsProvider.getFormat(name);
430
- if (formatProps) {
431
- const existingEntry = this._formatSpecsRegistry.get(name);
432
- if (existingEntry) {
433
- const persistenceUnitName = existingEntry.formatterSpec.persistenceUnit.name;
434
- await this.addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps);
435
- }
436
- }
437
- else {
438
- this._formatSpecsRegistry.delete(name);
439
- }
440
- }
608
+ // Remove stale entries for this system
609
+ for (const [, systemMap] of unitMap.entries()) {
610
+ systemMap.delete(system);
441
611
  }
442
612
  }
443
- });
444
- // initialize default format and parsing specs
445
- await this.loadFormatAndParsingMapsForSystem();
613
+ }
614
+ if (!anySystemHadFormat) {
615
+ this._formatSpecsRegistry.delete(name);
616
+ }
446
617
  }
447
618
  /** Return a map that serves as a registry of all standard and custom quantity types. */
448
619
  get quantityTypesRegistry() {
@@ -477,7 +648,7 @@ class QuantityFormatter {
477
648
  this._unitsProvider = unitsProvider;
478
649
  try {
479
650
  // force all cached data to be reinitialized
480
- await IModelApp_1.IModelApp.quantityFormatter.onInitialized();
651
+ await this.scheduleReload({ scope: "full" });
481
652
  }
482
653
  catch (err) {
483
654
  core_bentley_1.Logger.logWarning(`${FrontendLoggerCategory_1.FrontendLoggerCategory.Package}.quantityFormatter`, core_bentley_1.BentleyError.getErrorMessage(err), core_bentley_1.BentleyError.getErrorMetadata(err));
@@ -524,8 +695,7 @@ class QuantityFormatter {
524
695
  this._overrideFormatPropsByUnitSystem = overrideFormatPropsByUnitSystem;
525
696
  }
526
697
  unitSystemKey && (this._activeUnitSystem = unitSystemKey);
527
- await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
528
- fireUnitSystemChanged && this.onActiveFormattingUnitSystemChanged.emit({ system: this._activeUnitSystem });
698
+ await this.scheduleReload({ scope: "activeSystem", emitSystemChanged: fireUnitSystemChanged });
529
699
  IModelApp_1.IModelApp.toolAdmin && startDefaultTool && await IModelApp_1.IModelApp.toolAdmin.startDefaultTool();
530
700
  }
531
701
  /** Set the Active unit system to one of the supported types. This will asynchronously load the formatter and parser specs for the activated system. */
@@ -538,11 +708,9 @@ class QuantityFormatter {
538
708
  if (this._activeUnitSystem === systemType)
539
709
  return;
540
710
  this._activeUnitSystem = systemType;
541
- await this.loadFormatAndParsingMapsForSystem(systemType);
711
+ await this.scheduleReload({ scope: "activeSystem", emitSystemChanged: true });
542
712
  // allow settings provider to store the change
543
713
  await this._unitFormattingSettingsProvider?.storeUnitSystemSetting({ system: systemType });
544
- // fire current event
545
- this.onActiveFormattingUnitSystemChanged.emit({ system: systemType });
546
714
  if (IModelApp_1.IModelApp.toolAdmin && restartActiveTool)
547
715
  return IModelApp_1.IModelApp.toolAdmin.startDefaultTool();
548
716
  }
@@ -814,21 +982,50 @@ class QuantityFormatter {
814
982
  }
815
983
  /**
816
984
  * @beta
817
- * Returns a [[FormattingSpecEntry]] for a given name, typically a KindOfQuantity full name.
985
+ * Returns a map of [[FormattingSpecEntry]] keyed by persistence unit for a given name, typically a KindOfQuantity full name.
818
986
  */
819
987
  getSpecsByName(name) {
820
- return this._formatSpecsRegistry.get(name);
988
+ const unitMap = this._formatSpecsRegistry.get(name);
989
+ if (!unitMap)
990
+ return undefined;
991
+ // Return active-system projection
992
+ const result = new Map();
993
+ for (const [persistenceUnit, systemMap] of unitMap) {
994
+ const entry = systemMap.get(this._activeUnitSystem);
995
+ if (entry)
996
+ result.set(persistenceUnit, entry);
997
+ }
998
+ return result.size > 0 ? result : undefined;
999
+ }
1000
+ /**
1001
+ * Returns a [[FormattingSpecEntry]] for a given name and persistence unit.
1002
+ * @beta
1003
+ */
1004
+ getSpecsByNameAndUnit(args) {
1005
+ const effectiveSystem = args.system ?? this._activeUnitSystem;
1006
+ return this._formatSpecsRegistry.get(args.name)?.get(args.persistenceUnitName)?.get(effectiveSystem);
1007
+ }
1008
+ /** Create a cacheable handle to formatting specs for a specific KoQ and persistence unit.
1009
+ * The handle auto-refreshes when the QuantityFormatter reloads. Call `dispose()` when done.
1010
+ *
1011
+ * @param koqName - The KindOfQuantity name (e.g., "DefaultToolsUnits.LENGTH")
1012
+ * @param persistenceUnit - The persistence unit name (e.g., "Units.M")
1013
+ * @returns A FormatSpecHandle that auto-updates on reload
1014
+ * @beta
1015
+ */
1016
+ getFormatSpecHandle(koqName, persistenceUnit, system) {
1017
+ return new core_quantity_1.FormatSpecHandle({ provider: this, name: koqName, persistenceUnitName: persistenceUnit, system });
821
1018
  }
822
1019
  /**
823
1020
  * Populates the registry with a new FormatterSpec and ParserSpec entry for the given format name.
824
1021
  * @beta
825
- * @param name The key used to identify the formatter and parser spec
826
- * @param persistenceUnitName The name of the persistence unit
827
- * @param formatProps If not supplied, tries to retrieve the [[FormatProps]] from [[IModelApp.formatsProvider]]
828
1022
  */
829
- async addFormattingSpecsToRegistry(name, persistenceUnitName, formatProps) {
1023
+ async addFormattingSpecsToRegistry(args) {
1024
+ const { name, persistenceUnitName } = args;
1025
+ const effectiveSystem = args.system ?? this._activeUnitSystem;
1026
+ let formatProps = args.formatProps;
830
1027
  if (!formatProps) {
831
- formatProps = await IModelApp_1.IModelApp.formatsProvider.getFormat(name);
1028
+ formatProps = await IModelApp_1.IModelApp.formatsProvider.getFormat(name, effectiveSystem);
832
1029
  }
833
1030
  if (formatProps) {
834
1031
  const formatterSpec = await this.createFormatterSpec({
@@ -841,7 +1038,12 @@ class QuantityFormatter {
841
1038
  formatProps,
842
1039
  formatName: name,
843
1040
  });
844
- this._formatSpecsRegistry.set(name, { formatterSpec, parserSpec });
1041
+ if (!this._formatSpecsRegistry.has(name))
1042
+ this._formatSpecsRegistry.set(name, new Map());
1043
+ const unitMap = this._formatSpecsRegistry.get(name);
1044
+ if (!unitMap.has(persistenceUnitName))
1045
+ unitMap.set(persistenceUnitName, new Map());
1046
+ unitMap.get(persistenceUnitName).set(effectiveSystem, { formatterSpec, parserSpec });
845
1047
  }
846
1048
  else {
847
1049
  throw new Error(`Unable to find format properties for ${name} with persistence unit ${persistenceUnitName}`);