@itwin/core-frontend 5.15.0-dev.3 → 5.15.0-dev.5

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 (44) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/IModelApp.d.ts +19 -1
  3. package/lib/cjs/IModelApp.d.ts.map +1 -1
  4. package/lib/cjs/IModelApp.js +15 -0
  5. package/lib/cjs/IModelApp.js.map +1 -1
  6. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  7. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +7 -14
  8. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  9. package/lib/cjs/quantity-formatting/FormatsProviderReloadCoordinator.d.ts +53 -0
  10. package/lib/cjs/quantity-formatting/FormatsProviderReloadCoordinator.d.ts.map +1 -0
  11. package/lib/cjs/quantity-formatting/FormatsProviderReloadCoordinator.js +145 -0
  12. package/lib/cjs/quantity-formatting/FormatsProviderReloadCoordinator.js.map +1 -0
  13. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +23 -34
  14. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  15. package/lib/cjs/quantity-formatting/QuantityFormatter.js +99 -90
  16. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  17. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +27 -6
  18. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  19. package/lib/cjs/tile/map/CesiumTerrainProvider.js +51 -21
  20. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  21. package/lib/esm/IModelApp.d.ts +19 -1
  22. package/lib/esm/IModelApp.d.ts.map +1 -1
  23. package/lib/esm/IModelApp.js +15 -0
  24. package/lib/esm/IModelApp.js.map +1 -1
  25. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  26. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +7 -14
  27. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  28. package/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.d.ts +53 -0
  29. package/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.d.ts.map +1 -0
  30. package/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js +140 -0
  31. package/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js.map +1 -0
  32. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +23 -34
  33. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  34. package/lib/esm/quantity-formatting/QuantityFormatter.js +99 -90
  35. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  36. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +27 -6
  37. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  38. package/lib/esm/tile/map/CesiumTerrainProvider.js +50 -22
  39. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  40. package/lib/public/locales/en/iModelJs.json +3 -1
  41. package/lib/public/scripts/parse-imdl-worker.js +2 -2
  42. package/lib/test-public/scripts/parse-imdl-worker.js +2 -2
  43. package/lib/test-public/test-worker.js +1 -1
  44. package/package.json +21 -21
@@ -0,0 +1,53 @@
1
+ import { FormatsChangedArgs } from "@itwin/core-quantity";
2
+ /** @internal */
3
+ export declare class ReloadSupersededError extends Error {
4
+ constructor();
5
+ }
6
+ /** @internal */
7
+ export type ReloadIntent = {
8
+ scope: "full";
9
+ } | {
10
+ scope: "formatsChanged";
11
+ args: FormatsChangedArgs;
12
+ } | {
13
+ scope: "activeSystem";
14
+ };
15
+ interface ReloadCoordinatorHost {
16
+ startReload(): void;
17
+ executeReload(intent: ReloadIntent): Promise<void>;
18
+ finalizeReload(): Promise<void>;
19
+ handleReloadFailure(error: unknown): void;
20
+ }
21
+ /**
22
+ * Serializes formatting reloads and resolves or rejects the caller waiting for formatting to become ready.
23
+ * @internal
24
+ */
25
+ export declare class FormatsProviderReloadCoordinator {
26
+ private readonly _host;
27
+ private readonly _disposedError;
28
+ private _reloadInFlight;
29
+ private _pendingReload;
30
+ private _pendingFormatsChange;
31
+ private _reloadCaller;
32
+ private _isDisposed;
33
+ constructor(_host: ReloadCoordinatorHost, _disposedError: Error);
34
+ dispose(): void;
35
+ /**
36
+ * Runs an action that schedules a reload and waits for the reload queue to drain.
37
+ * A newer call rejects an older call that is still waiting.
38
+ */
39
+ runAndWaitForReload(action: () => void): Promise<void>;
40
+ /**
41
+ * Runs a reload now, or queues it if one is already running.
42
+ * Pending format changes are merged and kept apart from other pending reloads, so a later unit-system or units-provider reload cannot drop a provider change.
43
+ * If a reload is already running, this method returns immediately; use [[runAndWaitForReload]] when the caller must wait for completion.
44
+ * The waiting caller is rejected if any reload fails before the queue drains.
45
+ */
46
+ scheduleReload(intent: ReloadIntent): Promise<void>;
47
+ private _stopAfterDisposal;
48
+ private _takePendingReload;
49
+ private _resolveReloadCaller;
50
+ private _rejectReloadCaller;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=FormatsProviderReloadCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormatsProviderReloadCoordinator.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/FormatsProviderReloadCoordinator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,gBAAgB;AAChB,qBAAa,qBAAsB,SAAQ,KAAK;;CAK/C;AAED,gBAAgB;AAChB,MAAM,MAAM,YAAY,GACpB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAI9B,UAAU,qBAAqB;IAC7B,WAAW,IAAI,IAAI,CAAC;IACpB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3C;AAOD;;;GAGG;AACH,qBAAa,gCAAgC;IAOxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAyB,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjG,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,qBAAqB,CAAmC;IAChE,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,WAAW,CAAS;gBAEQ,KAAK,EAAE,qBAAqB,EAAmB,cAAc,EAAE,KAAK;IAEjG,OAAO,IAAI,IAAI;IAUtB;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnE;;;;;OAKG;IACU,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ChE,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FormatsProviderReloadCoordinator = exports.ReloadSupersededError = void 0;
8
+ /** @internal */
9
+ class ReloadSupersededError extends Error {
10
+ constructor() {
11
+ super("QuantityFormatter reload was superseded by a newer request.");
12
+ this.name = "ReloadSupersededError";
13
+ }
14
+ }
15
+ exports.ReloadSupersededError = ReloadSupersededError;
16
+ /**
17
+ * Serializes formatting reloads and resolves or rejects the caller waiting for formatting to become ready.
18
+ * @internal
19
+ */
20
+ class FormatsProviderReloadCoordinator {
21
+ _host;
22
+ _disposedError;
23
+ _reloadInFlight = false;
24
+ _pendingReload;
25
+ _pendingFormatsChange;
26
+ _reloadCaller;
27
+ _isDisposed = false;
28
+ constructor(_host, _disposedError) {
29
+ this._host = _host;
30
+ this._disposedError = _disposedError;
31
+ }
32
+ dispose() {
33
+ if (this._isDisposed)
34
+ return;
35
+ this._isDisposed = true;
36
+ this._pendingReload = undefined;
37
+ this._pendingFormatsChange = undefined;
38
+ this._rejectReloadCaller(this._disposedError);
39
+ }
40
+ /**
41
+ * Runs an action that schedules a reload and waits for the reload queue to drain.
42
+ * A newer call rejects an older call that is still waiting.
43
+ */
44
+ async runAndWaitForReload(action) {
45
+ if (this._isDisposed)
46
+ throw this._disposedError;
47
+ let caller;
48
+ const reload = new Promise((resolve, reject) => {
49
+ caller = { resolve, reject };
50
+ });
51
+ this._rejectReloadCaller(new ReloadSupersededError());
52
+ this._reloadCaller = caller;
53
+ try {
54
+ action();
55
+ }
56
+ catch (error) {
57
+ if (this._reloadCaller === caller)
58
+ this._reloadCaller = undefined;
59
+ throw error;
60
+ }
61
+ await reload;
62
+ }
63
+ /**
64
+ * Runs a reload now, or queues it if one is already running.
65
+ * Pending format changes are merged and kept apart from other pending reloads, so a later unit-system or units-provider reload cannot drop a provider change.
66
+ * If a reload is already running, this method returns immediately; use [[runAndWaitForReload]] when the caller must wait for completion.
67
+ * The waiting caller is rejected if any reload fails before the queue drains.
68
+ */
69
+ async scheduleReload(intent) {
70
+ if (this._isDisposed)
71
+ return;
72
+ if (this._reloadInFlight) {
73
+ if (intent.scope === "formatsChanged")
74
+ this._pendingFormatsChange = mergeFormatsChanges(this._pendingFormatsChange, intent);
75
+ else
76
+ this._pendingReload = intent;
77
+ return;
78
+ }
79
+ this._reloadInFlight = true;
80
+ let failure;
81
+ let current = intent;
82
+ while (current) {
83
+ try {
84
+ this._host.startReload();
85
+ await this._host.executeReload(current);
86
+ if (this._stopAfterDisposal())
87
+ return;
88
+ current = this._takePendingReload();
89
+ if (!current) {
90
+ await this._host.finalizeReload();
91
+ if (this._stopAfterDisposal())
92
+ return;
93
+ current = this._takePendingReload();
94
+ }
95
+ }
96
+ catch (error) {
97
+ if (this._stopAfterDisposal())
98
+ return;
99
+ // Keep draining so queued work still runs, but report the failure to the waiting caller.
100
+ this._host.handleReloadFailure(error);
101
+ failure = { error };
102
+ current = this._takePendingReload();
103
+ }
104
+ }
105
+ this._reloadInFlight = false;
106
+ if (failure)
107
+ this._rejectReloadCaller(failure.error);
108
+ else
109
+ this._resolveReloadCaller();
110
+ }
111
+ _stopAfterDisposal() {
112
+ if (!this._isDisposed)
113
+ return false;
114
+ this._reloadInFlight = false;
115
+ return true;
116
+ }
117
+ _takePendingReload() {
118
+ const next = this._pendingFormatsChange ?? this._pendingReload;
119
+ if (next === this._pendingFormatsChange)
120
+ this._pendingFormatsChange = undefined;
121
+ else
122
+ this._pendingReload = undefined;
123
+ return next;
124
+ }
125
+ _resolveReloadCaller() {
126
+ const caller = this._reloadCaller;
127
+ this._reloadCaller = undefined;
128
+ caller?.resolve();
129
+ }
130
+ _rejectReloadCaller(error) {
131
+ const caller = this._reloadCaller;
132
+ this._reloadCaller = undefined;
133
+ caller?.reject(error);
134
+ }
135
+ }
136
+ exports.FormatsProviderReloadCoordinator = FormatsProviderReloadCoordinator;
137
+ function mergeFormatsChanges(pending, next) {
138
+ if (!pending)
139
+ return next;
140
+ const pendingNames = pending.args.formatsChanged;
141
+ const nextNames = next.args.formatsChanged;
142
+ const formatsChanged = pendingNames === "all" || nextNames === "all" ? "all" : [...new Set([...pendingNames, ...nextNames])];
143
+ return { scope: "formatsChanged", args: { formatsChanged } };
144
+ }
145
+ //# sourceMappingURL=FormatsProviderReloadCoordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormatsProviderReloadCoordinator.js","sourceRoot":"","sources":["../../../src/quantity-formatting/FormatsProviderReloadCoordinator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { FormatsChangedArgs } from \"@itwin/core-quantity\";\r\n\r\n/** @internal */\r\nexport class ReloadSupersededError extends Error {\r\n public constructor() {\r\n super(\"QuantityFormatter reload was superseded by a newer request.\");\r\n this.name = \"ReloadSupersededError\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport type ReloadIntent =\r\n | { scope: \"full\" }\r\n | { scope: \"formatsChanged\"; args: FormatsChangedArgs }\r\n | { scope: \"activeSystem\" };\r\n\r\ntype FormatsChangedIntent = Extract<ReloadIntent, { scope: \"formatsChanged\" }>;\r\n\r\ninterface ReloadCoordinatorHost {\r\n startReload(): void;\r\n executeReload(intent: ReloadIntent): Promise<void>;\r\n finalizeReload(): Promise<void>;\r\n handleReloadFailure(error: unknown): void;\r\n}\r\n\r\ninterface ReloadCaller {\r\n resolve: () => void;\r\n reject: (reason?: unknown) => void;\r\n}\r\n\r\n/**\r\n * Serializes formatting reloads and resolves or rejects the caller waiting for formatting to become ready.\r\n * @internal\r\n */\r\nexport class FormatsProviderReloadCoordinator {\r\n private _reloadInFlight = false;\r\n private _pendingReload: ReloadIntent | undefined;\r\n private _pendingFormatsChange: FormatsChangedIntent | undefined;\r\n private _reloadCaller: ReloadCaller | undefined;\r\n private _isDisposed = false;\r\n\r\n public constructor(private readonly _host: ReloadCoordinatorHost, private readonly _disposedError: Error) {}\r\n\r\n public dispose(): void {\r\n if (this._isDisposed)\r\n return;\r\n\r\n this._isDisposed = true;\r\n this._pendingReload = undefined;\r\n this._pendingFormatsChange = undefined;\r\n this._rejectReloadCaller(this._disposedError);\r\n }\r\n\r\n /**\r\n * Runs an action that schedules a reload and waits for the reload queue to drain.\r\n * A newer call rejects an older call that is still waiting.\r\n */\r\n public async runAndWaitForReload(action: () => void): Promise<void> {\r\n if (this._isDisposed)\r\n throw this._disposedError;\r\n\r\n let caller!: ReloadCaller;\r\n const reload = new Promise<void>((resolve, reject) => {\r\n caller = { resolve, reject };\r\n });\r\n\r\n this._rejectReloadCaller(new ReloadSupersededError());\r\n this._reloadCaller = caller;\r\n\r\n try {\r\n action();\r\n } catch (error) {\r\n if (this._reloadCaller === caller)\r\n this._reloadCaller = undefined;\r\n throw error;\r\n }\r\n\r\n await reload;\r\n }\r\n\r\n /**\r\n * Runs a reload now, or queues it if one is already running.\r\n * Pending format changes are merged and kept apart from other pending reloads, so a later unit-system or units-provider reload cannot drop a provider change.\r\n * If a reload is already running, this method returns immediately; use [[runAndWaitForReload]] when the caller must wait for completion.\r\n * The waiting caller is rejected if any reload fails before the queue drains.\r\n */\r\n public async scheduleReload(intent: ReloadIntent): Promise<void> {\r\n if (this._isDisposed)\r\n return;\r\n\r\n if (this._reloadInFlight) {\r\n if (intent.scope === \"formatsChanged\")\r\n this._pendingFormatsChange = mergeFormatsChanges(this._pendingFormatsChange, intent);\r\n else\r\n this._pendingReload = intent;\r\n return;\r\n }\r\n\r\n this._reloadInFlight = true;\r\n let failure: { error: unknown } | undefined;\r\n let current: ReloadIntent | undefined = intent;\r\n while (current) {\r\n try {\r\n this._host.startReload();\r\n await this._host.executeReload(current);\r\n if (this._stopAfterDisposal())\r\n return;\r\n\r\n current = this._takePendingReload();\r\n if (!current) {\r\n await this._host.finalizeReload();\r\n if (this._stopAfterDisposal())\r\n return;\r\n current = this._takePendingReload();\r\n }\r\n } catch (error) {\r\n if (this._stopAfterDisposal())\r\n return;\r\n\r\n // Keep draining so queued work still runs, but report the failure to the waiting caller.\r\n this._host.handleReloadFailure(error);\r\n failure = { error };\r\n current = this._takePendingReload();\r\n }\r\n }\r\n\r\n this._reloadInFlight = false;\r\n if (failure)\r\n this._rejectReloadCaller(failure.error);\r\n else\r\n this._resolveReloadCaller();\r\n }\r\n\r\n private _stopAfterDisposal(): boolean {\r\n if (!this._isDisposed)\r\n return false;\r\n\r\n this._reloadInFlight = false;\r\n return true;\r\n }\r\n\r\n private _takePendingReload(): ReloadIntent | undefined {\r\n const next = this._pendingFormatsChange ?? this._pendingReload;\r\n if (next === this._pendingFormatsChange)\r\n this._pendingFormatsChange = undefined;\r\n else\r\n this._pendingReload = undefined;\r\n return next;\r\n }\r\n\r\n private _resolveReloadCaller(): void {\r\n const caller = this._reloadCaller;\r\n this._reloadCaller = undefined;\r\n caller?.resolve();\r\n }\r\n\r\n private _rejectReloadCaller(error: unknown): void {\r\n const caller = this._reloadCaller;\r\n this._reloadCaller = undefined;\r\n caller?.reject(error);\r\n }\r\n}\r\n\r\nfunction mergeFormatsChanges(pending: FormatsChangedIntent | undefined, next: FormatsChangedIntent): FormatsChangedIntent {\r\n if (!pending)\r\n return next;\r\n\r\n const pendingNames = pending.args.formatsChanged;\r\n const nextNames = next.args.formatsChanged;\r\n const formatsChanged = pendingNames === \"all\" || nextNames === \"all\" ? \"all\" : [...new Set([...pendingNames, ...nextNames])];\r\n return { scope: \"formatsChanged\", args: { formatsChanged } };\r\n}\r\n"]}
@@ -4,6 +4,7 @@
4
4
  import { BeEvent, BeUiEvent, BeUnorderedUiEvent } from "@itwin/core-bentley";
5
5
  import { AddFormattingSpecArgs, AlternateUnitLabelsProvider, FormatDefinition, FormatProps, FormatsChangedArgs, FormatSpecHandle, FormatsProvider, FormatsProviderContext, FormatterSpec, FormattingReadyCollector, FormattingSpecArgs, FormattingSpecEntry, FormattingSpecProvider, ParserSpec, QuantityParseResult, SyncFormatsProvider, UnitConversionProps, UnitProps, UnitsProvider, UnitSystemKey } from "@itwin/core-quantity";
6
6
  import { IModelConnection } from "../IModelConnection";
7
+ import { ReloadIntent } from "./FormatsProviderReloadCoordinator";
7
8
  import { CustomFormatPropEditorSpec } from "./QuantityTypesEditorSpecs";
8
9
  /**
9
10
  * Defines standard format types for tools that need to display measurements to user.
@@ -222,30 +223,14 @@ export declare class FormatsProviderManager implements FormatsProvider, SyncForm
222
223
  getFormatSync(name: string, system?: UnitSystemKey, context?: FormatsProviderContext): FormatDefinition | undefined;
223
224
  get formatsProvider(): FormatsProvider;
224
225
  set formatsProvider(formatsProvider: FormatsProvider);
226
+ /**
227
+ * Replaces the underlying formats provider and raises an event indicating that all formats changed.
228
+ * @param formatsProvider The formats provider to use for subsequent format lookups.
229
+ * @param impliedUnitSystem The unit system implied by the replacement provider, if any. Not stored here; [[QuantityFormatter]] applies it as the active unit system when handling `onFormatsChanged`.
230
+ * @internal
231
+ */
232
+ setFormatsProvider(formatsProvider: FormatsProvider, impliedUnitSystem?: UnitSystemKey): void;
225
233
  }
226
- /** Class that supports formatting quantity values into strings and parsing strings into quantity values. This class also maintains
227
- * the "active" unit system and caches FormatterSpecs and ParserSpecs for the "active" unit system to allow synchronous access to
228
- * parsing and formatting values. The support unit systems are defined by [[UnitSystemKey]] and is kept in synch with the unit systems
229
- * provided by the Presentation Manager on the backend. The QuantityFormatter contains a registry of quantity type definitions. These definitions implement
230
- * the [[QuantityTypeDefinition]] interface, which among other things, provide default [[FormatProps]], and provide methods
231
- * to generate both a [[FormatterSpec]] and a [[ParserSpec]]. There are built-in quantity types that are
232
- * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
233
- * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
234
- *
235
- * @public
236
- */
237
- /** Discriminated union describing what a queued reload should do.
238
- * @internal
239
- */
240
- type ReloadIntent = {
241
- scope: "full";
242
- } | {
243
- scope: "formatsChanged";
244
- args: FormatsChangedArgs;
245
- } | {
246
- scope: "activeSystem";
247
- emitSystemChanged?: boolean;
248
- };
249
234
  /** The QuantityFormatter class provides methods for formatting and parsing quantities. There are a set of standard quantity types
250
235
  * identified by the [[QuantityType]] enum. [[CustomQuantityTypeDefinition]] can be registered to extend the available quantity types available
251
236
  * by frontend tools. The QuantityFormatter also allows the default formats to be overriden.
@@ -320,10 +305,13 @@ export declare class QuantityFormatter implements UnitsProvider, FormattingSpecP
320
305
  private _hasEverBeenReady;
321
306
  private _initializedPromise;
322
307
  private _resolveInitialized;
323
- private _reloadInFlight;
324
- private _pendingReload;
325
- private _deferredSystemChangedEmit;
308
+ private _emitSystemChangedOnReady;
309
+ private _isDisposed;
310
+ private readonly _disposedError;
311
+ private readonly _reloadCoordinator;
326
312
  private _removeFormatsProviderListener?;
313
+ private _activeFormatSpecsTarget?;
314
+ private _activeParserSpecsTarget?;
327
315
  /**
328
316
  * constructor
329
317
  * @param showMetricOrUnitSystem - Pass in `true` to show Metric formatted quantity values. Defaults to Imperial. To explicitly
@@ -331,21 +319,23 @@ export declare class QuantityFormatter implements UnitsProvider, FormattingSpecP
331
319
  */
332
320
  constructor(showMetricOrUnitSystem?: boolean | UnitSystemKey);
333
321
  [Symbol.dispose](): void;
322
+ /** Runs an action that schedules a reload and waits for the reload queue to drain.
323
+ * The most recent call wins. If another call is made before this reload queue drains, this call is rejected.
324
+ * @internal
325
+ */
326
+ runAndWaitForReload(action: () => void): Promise<void>;
334
327
  /** Schedule an async reload. If no reload is in flight, runs immediately. If a reload is
335
- * already in flight, stores the intent as pending (latest-wins: only the last scheduled reload
336
- * is kept). `finalizeReload()` fires only when the queue is fully drained.
328
+ * already in flight, stores the intent as pending. Pending format changes are merged and run before
329
+ * the latest other pending intent. `finalizeReload()` fires only when the queue is fully drained.
337
330
  *
338
331
  * **Await semantics:** When a reload is already in flight, the returned promise resolves
339
332
  * immediately *without* the requested reload having run. Callers that need to know when
340
- * the reload has actually completed should listen for `onFormattingReady` instead.
333
+ * an explicitly triggered reload has actually completed should use [[runAndWaitForReload]].
341
334
  *
342
- * Reload intents:
343
- * - `"full"` — rebuild entire registry + re-register provider listener (onInitialized, setUnitsProvider)
344
- * - `"formatsChanged"` — patch registry from provider + load maps (formatsChanged listener)
345
- * - `"activeSystem"` — reload format/parsing maps for current unit system (setActiveUnitSystem, reinitializeFormatAndParsingsMaps)
346
335
  * @internal
347
336
  */
348
337
  protected scheduleReload(intent: ReloadIntent): Promise<void>;
338
+ private _handleReloadFailure;
349
339
  /** Execute the reload work for a given intent. All reload logic is centralized here.
350
340
  * @internal
351
341
  */
@@ -555,5 +545,4 @@ export declare class QuantityFormatter implements UnitsProvider, FormattingSpecP
555
545
  */
556
546
  addFormattingSpecsToRegistry(args: AddFormattingSpecArgs): Promise<void>;
557
547
  }
558
- export {};
559
548
  //# sourceMappingURL=QuantityFormatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAgB,SAAS,EAAE,kBAAkB,EAAU,MAAM,qBAAqB,CAAC;AACnG,OAAO,EACL,qBAAqB,EAAE,2BAA2B,EAA8B,gBAAgB,EAAE,WAAW,EAC7G,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,wBAAwB,EACtH,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,EAAc,UAAU,EACvF,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EACvG,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAIxE;;;GAGG;AACH,oBAAY,YAAY;IACtB,6HAA6H;IAC7H,MAAM,IAAI;IACV,8IAA8I;IAC9I,KAAK,IAAI;IACT,wIAAwI;IACxI,IAAI,IAAI;IACR,8IAA8I;IAC9I,MAAM,IAAI;IACV,4JAA4J;IAC5J,OAAO,IAAI;IACX,yIAAyI;IACzI,UAAU,IAAI;IACd,wIAAwI;IACxI,UAAU,IAAI;IACd,kJAAkJ;IAClJ,YAAY,IAAI;IAChB,gJAAgJ;IAChJ,iBAAiB,IAAI;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,WAAW,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,2BAA2B;IAC7E,OAAO,CAAC,uBAAuB,CAAuC;IAE/D,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;gBAInD,iBAAiB,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAMtD,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS;CAQrE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAKzE;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;2CACuC;IACvC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,6HAA6H;IAC7H,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B;sGACkG;IAClG,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;IAEpB,6BAA6B,EAAE,CAAC,eAAe,EAAE,aAAa,KAAK,WAAW,CAAC;IAC/E,wGAAwG;IACxG,qBAAqB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1G,4HAA4H;IAC5H,kBAAkB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,2BAA2B,CAAC,EAAE,2BAA2B,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAChK;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,qFAAqF;IACrF,uBAAuB,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC;IAC/D;wFACoF;IACpF,sBAAsB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACtD;sGACkG;IAClG,wBAAwB,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACzD;AAED;;EAEE;AACF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,IAAI,4BAA4B,CAEjH;AA+DD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,yBAAyB;IACzB,YAAY,EAAE,eAAe,CAAC;IAC9B,wEAAwE;IACxE,mBAAmB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3E,qEAAqE;IACrE,gBAAgB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,gGAAgG;IAChG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAC7C,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,8BAA8B;IAC7C,uFAAuF;IACvF,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,iGAAiG;IACjG,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IACrF,iEAAiE;IACjE,MAAM,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,wFAAwF;IACxF,kBAAkB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,+EAA+E;IAC/E,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE;+FAC2F;IAC3F,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,kEAAkE;IAClE,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,+CAA+C;IAC/C,oBAAoB,CAAC,IAAI,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E;sFACkF;IAClF,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;CAC9C;AAED;;;;;GAKG;AACH,qBAAa,2BAA4B,YAAW,eAAe;IAC1D,gBAAgB,iBAAsB,kBAAkB,KAAK,IAAI,EAAI;IAC5E,OAAO,CAAC,gBAAgB,CAAsB;;IAOvC,CAAC,MAAM,CAAC,OAAO,CAAC;IAIvB,OAAO,CAAC,kBAAkB,CASvB;IAEU,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAMpG;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,eAAe,EAAE,mBAAmB;IAIrE,OAAO,CAAC,gBAAgB;IAH7B,gBAAgB,iBAAsB,kBAAkB,KAAK,IAAI,EAAI;IAC5E,OAAO,CAAC,uBAAuB,CAAC,CAAa;gBAEzB,gBAAgB,EAAE,eAAe;IAMxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIrI,0FAA0F;IACnF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,SAAS;IAK1H,IAAW,eAAe,IAAI,eAAe,CAAiB;IAE9D,IAAW,eAAe,CAAC,eAAe,EAAE,eAAe,EAO1D;CACF;AAED;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,KAAK,YAAY,GACb;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACrD;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,aAAa,EAAE,sBAAsB;IAC7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAA+E;IACtH,OAAO,CAAC,cAAc,CAA2C;IACjE,OAAO,CAAC,4BAA4B,CAAoE;IACxG,+DAA+D;IAC/D,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAsD;IACnI;;OAEG;IACH,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAa;IAE9G,iGAAiG;IACjG,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAc;IACxD,iFAAiF;IACjF,SAAS,CAAC,wBAAwB,6BAA6C;IAC/E,iFAAiF;IACjF,SAAS,CAAC,wBAAwB,0BAA0C;IAC5E,oEAAoE;IACpE,SAAS,CAAC,gCAAgC,+CAA+D;IACzG,+EAA+E;IAC/E,SAAS,CAAC,+BAA+B,EAAE,8BAA8B,GAAG,SAAS,CAAC;IAEtF,wFAAwF;IAC3E,iCAAiC,CAAC,QAAQ,EAAE,8BAA8B;IAMvF;;MAEE;IACF,SAAgB,mCAAmC,6CAAoD;IAEvG;;OAEG;IACH,SAAgB,wBAAwB,wCAA+C;IAEvF,oIAAoI;IACpI,SAAgB,sBAAsB,kBAAyB;IAE/D;;;;;;;OAOG;IACH,SAAgB,iBAAiB,2BAAkC;IAEnE;;;;;;;;OAQG;IACH,SAAgB,uBAAuB,sBAA2B,wBAAwB,KAAK,IAAI,EAAI;IAEvG;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAA0B;IAEvD;;;;;;;OAOG;IACH,IAAW,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAqC;IAEhF,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,0BAA0B,CAA8C;IAEhF,OAAO,CAAC,8BAA8B,CAAC,CAAa;IACpD;;;;OAIG;gBACS,sBAAsB,CAAC,EAAE,OAAO,GAAG,aAAa;IAYrD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAO/B;;;;;;;;;;;;;OAaG;cACa,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnE;;OAEG;YACW,cAAc;IA0B5B;;;OAGG;YACW,cAAc;IAqB5B,OAAO,CAAC,oCAAoC;IAS5C,8EAA8E;cAC9D,+BAA+B;IAmD/C;;;OAGG;cACa,iCAAiC,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5F,OAAO,CAAC,0CAA0C;YAUpC,uBAAuB;YAQvB,yCAAyC;YASzC,mCAAmC;IA+BjD,qFAAqF;YACvE,qCAAqC;IAenD;;OAEG;IACU,aAAa;IAI1B;;OAEG;YACW,WAAW;IA6BzB;;OAEG;YACW,4BAA4B;IAe1C,wEAAwE;YAC1D,uBAAuB;IAgCrC,wFAAwF;IACxF,IAAW,qBAAqB,wCAE/B;IAED,mJAAmJ;IACnJ,IAAW,2BAA2B,IAAI,2BAA2B,CAEpE;IAED;;;;OAIG;IACI,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;IAK/D,8CAA8C;IAC9C,IAAW,aAAa,IAIgB,aAAa,CAFpD;IAED,IAAW,aAAa,CAAC,aAAa,EAAE,aAAa,EAEpD;IAED;;;;OAIG;IACU,gBAAgB,CAAC,aAAa,EAAE,aAAa;IAiB1D;;;;;OAKG;IACU,+BAA+B;IAQ5C,2GAA2G;IAC9F,oBAAoB,CAAC,KAAK,EAAE,4BAA4B,EAAE,OAAO,CAAC,EAAE,OAAO;IAiBxF;;;OAGG;IACU,iCAAiC,CAAC,+BAA+B,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EACnI,aAAa,CAAC,EAAE,aAAa,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5G,uJAAuJ;IAC1I,mBAAmB,CAAC,sBAAsB,EAAE,aAAa,GAAG,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7H,yHAAyH;IACzH,IAAW,gBAAgB,IAAI,aAAa,CAAmC;IAE/E,wGAAwG;IAC3F,oBAAoB,CAAC,IAAI,EAAE,eAAe;IAIvD,kGAAkG;IACrF,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB;IAIzF,qFAAqF;IACxE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW;IAejF,+FAA+F;IAClF,uBAAuB;IA4BpC,oIAAoI;IAC7H,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IAIxD,0HAA0H;IACnH,qBAAqB,CAAC,IAAI,EAAE,eAAe;IAIlD;;OAEG;IACI,+BAA+B,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS;IAI3G,uIAAuI;IAC1H,2BAA2B,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW;IAQxF;;;;;OAKG;IACU,uCAAuC,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgBvI;;;;OAIG;IACU,8BAA8B,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAO5H;;OAEG;IACI,4BAA4B,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS;IAIlF,uIAAuI;IAC1H,oCAAoC,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAgBjI;;;;OAIG;IACU,2BAA2B,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAOtH;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,MAAM,CAAC;IACnB;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM;YAkB9D,mBAAmB;IAgBjC;;;OAGG;IACI,oBAAoB,CAAC,KAAK,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAChC;;;;OAIG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,mBAAmB;YAiB7E,yBAAyB;IAgBvC;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa;IAwB5F,mEAAmE;IAC5D,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,yBAAyB,CAAC,EAAE,OAAO,GAAG,OAAO;IAiB7F;;OAEG;IACI,4BAA4B,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,OAAO;IAQ7H,iDAAiD;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3H,0EAA0E;IAC7D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIvE,gDAAgD;IACnC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIjE,kGAAkG;IACrF,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUhG;;;;OAIG;IACU,mBAAmB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAO1F;;;;OAIG;IACU,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC;IAOpF;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS;IAa/H;;;OAGG;IACI,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,SAAS;IAKvF;;;;;;;OAOG;IACI,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,gBAAgB;IAI9G;;;KAGC;IACY,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmCtF"}
1
+ {"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}