@itwin/ecschema-rpcinterface-tests 5.15.0-dev.2 → 5.15.0-dev.20
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.
- package/lib/dist/bundled-tests.js +1194 -822
- package/lib/dist/bundled-tests.js.map +1 -1
- package/lib/dist/core_frontend_lib_esm_ApproximateTerrainHeightsProps_js.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_4_5_2__loaders_gl_core_4_5_2_node_modu-bbc95a.bundled-tests.js.map +1 -1
- package/package.json +16 -16
- package/lib/dist/vendors-common_temp_node_modules_pnpm_cross-fetch_4_1_0_node_modules_cross-fetch_dist_browser-44272f.bundled-tests.js +0 -698
- package/lib/dist/vendors-common_temp_node_modules_pnpm_cross-fetch_4_1_0_node_modules_cross-fetch_dist_browser-44272f.bundled-tests.js.map +0 -1
|
@@ -18311,6 +18311,7 @@ function assert(condition, message) {
|
|
|
18311
18311
|
"use strict";
|
|
18312
18312
|
__webpack_require__.r(__webpack_exports__);
|
|
18313
18313
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
18314
|
+
/* harmony export */ BeAsyncEvent: () => (/* binding */ BeAsyncEvent),
|
|
18314
18315
|
/* harmony export */ BeEvent: () => (/* binding */ BeEvent),
|
|
18315
18316
|
/* harmony export */ BeEventList: () => (/* binding */ BeEventList),
|
|
18316
18317
|
/* harmony export */ BeUiEvent: () => (/* binding */ BeUiEvent),
|
|
@@ -18398,8 +18399,13 @@ class BeEvent {
|
|
|
18398
18399
|
dropped = true;
|
|
18399
18400
|
}
|
|
18400
18401
|
else {
|
|
18402
|
+
const listener = context.listener;
|
|
18403
|
+
if (context.once) {
|
|
18404
|
+
context.listener = undefined;
|
|
18405
|
+
dropped = true;
|
|
18406
|
+
}
|
|
18401
18407
|
try {
|
|
18402
|
-
|
|
18408
|
+
listener.apply(context.scope, args);
|
|
18403
18409
|
}
|
|
18404
18410
|
catch (e) {
|
|
18405
18411
|
_UnexpectedErrors__WEBPACK_IMPORTED_MODULE_0__.UnexpectedErrors.handle(e);
|
|
@@ -18408,10 +18414,6 @@ class BeEvent {
|
|
|
18408
18414
|
// listener was removed during its own callback
|
|
18409
18415
|
dropped = true;
|
|
18410
18416
|
}
|
|
18411
|
-
else if (context.once) {
|
|
18412
|
-
context.listener = undefined;
|
|
18413
|
-
dropped = true;
|
|
18414
|
-
}
|
|
18415
18417
|
}
|
|
18416
18418
|
}
|
|
18417
18419
|
this._emitDepth--;
|
|
@@ -18455,8 +18457,6 @@ class BeUiEvent extends BeEvent {
|
|
|
18455
18457
|
*/
|
|
18456
18458
|
class BeUnorderedEvent {
|
|
18457
18459
|
_listeners = new Set();
|
|
18458
|
-
_emitDepth = 0;
|
|
18459
|
-
_hasTombstones = false;
|
|
18460
18460
|
/** The number of listeners currently subscribed to the event.
|
|
18461
18461
|
* @note During `raiseEvent()`, this may include listeners that have been removed or are one-shot
|
|
18462
18462
|
* but are awaiting deferred cleanup. The count is accurate outside of `raiseEvent()`.
|
|
@@ -18486,43 +18486,26 @@ class BeUnorderedEvent {
|
|
|
18486
18486
|
}
|
|
18487
18487
|
/** Remove a specific context entry, deferring during emit. */
|
|
18488
18488
|
_removeCtx(ctx) {
|
|
18489
|
-
|
|
18490
|
-
ctx.listener = undefined; // tombstone for deferred cleanup
|
|
18491
|
-
this._hasTombstones = true;
|
|
18492
|
-
}
|
|
18493
|
-
else {
|
|
18494
|
-
this._listeners.delete(ctx);
|
|
18495
|
-
}
|
|
18489
|
+
this._listeners.delete(ctx);
|
|
18496
18490
|
}
|
|
18497
18491
|
/**
|
|
18498
18492
|
* Raises the event by calling each registered listener with the supplied arguments.
|
|
18499
18493
|
* @param args This method takes any number of parameters and passes them through to the listeners.
|
|
18500
18494
|
*/
|
|
18501
18495
|
raiseEvent(...args) {
|
|
18502
|
-
this._emitDepth++;
|
|
18503
18496
|
for (const ctx of this._listeners) {
|
|
18504
18497
|
if (!ctx.listener) {
|
|
18505
18498
|
continue;
|
|
18506
18499
|
}
|
|
18500
|
+
if (ctx.once) {
|
|
18501
|
+
this._listeners.delete(ctx);
|
|
18502
|
+
}
|
|
18507
18503
|
try {
|
|
18508
18504
|
ctx.listener.apply(ctx.scope, args);
|
|
18509
18505
|
}
|
|
18510
18506
|
catch (e) {
|
|
18511
18507
|
_UnexpectedErrors__WEBPACK_IMPORTED_MODULE_0__.UnexpectedErrors.handle(e);
|
|
18512
18508
|
}
|
|
18513
|
-
if (ctx.listener && ctx.once) {
|
|
18514
|
-
ctx.listener = undefined;
|
|
18515
|
-
this._hasTombstones = true;
|
|
18516
|
-
}
|
|
18517
|
-
}
|
|
18518
|
-
this._emitDepth--;
|
|
18519
|
-
// Only clean up tombstoned entries when we're back at the outermost emit
|
|
18520
|
-
if (this._hasTombstones && this._emitDepth === 0) {
|
|
18521
|
-
this._hasTombstones = false;
|
|
18522
|
-
for (const ctx of this._listeners) {
|
|
18523
|
-
if (ctx.listener === undefined)
|
|
18524
|
-
this._listeners.delete(ctx);
|
|
18525
|
-
}
|
|
18526
18509
|
}
|
|
18527
18510
|
}
|
|
18528
18511
|
/** Clear all listeners from this BeUnorderedEvent.
|
|
@@ -18538,6 +18521,108 @@ class BeUnorderedUiEvent extends BeUnorderedEvent {
|
|
|
18538
18521
|
/** Raises event with single strongly typed argument. */
|
|
18539
18522
|
emit(args) { this.raiseEvent(args); }
|
|
18540
18523
|
}
|
|
18524
|
+
/**
|
|
18525
|
+
* Manages a set of *listeners* for a particular event and notifies them when the event is raised.
|
|
18526
|
+
* Each listener is async (return a Promise<void>). The listeners may be invoked in series
|
|
18527
|
+
* or concurrently depending on the configuration of the instance.
|
|
18528
|
+
*
|
|
18529
|
+
* Like [[BeUnorderedEvent]], this class uses a `Set` internally to support more performant removal
|
|
18530
|
+
* of old listeners. When a listener is removed during emit, it is marked for deferred removal instead
|
|
18531
|
+
* of mutating the set immediately. Despite the "unordered" implication, items in a `Set` are enumerated
|
|
18532
|
+
* in insertion order, which means that this class invokes the listeners in insertion order.
|
|
18533
|
+
*
|
|
18534
|
+
* Listeners are managed exclusively through the disposal closure returned by [[addListener]] and
|
|
18535
|
+
* [[addOnce]]. There is no `removeListener` or `has` method — callers must capture the returned
|
|
18536
|
+
* closure to unsubscribe.
|
|
18537
|
+
* @beta
|
|
18538
|
+
*/
|
|
18539
|
+
class BeAsyncEvent {
|
|
18540
|
+
_listeners = new Set();
|
|
18541
|
+
_concurrent = false;
|
|
18542
|
+
_promiseRejectionIsUnexpected = false;
|
|
18543
|
+
constructor(options) {
|
|
18544
|
+
if (options?.concurrent)
|
|
18545
|
+
this._concurrent = true;
|
|
18546
|
+
if (options?.promiseRejectionIsUnexpected)
|
|
18547
|
+
this._promiseRejectionIsUnexpected = true;
|
|
18548
|
+
}
|
|
18549
|
+
/** The number of listeners currently subscribed to the event.
|
|
18550
|
+
* @note During `raiseEvent()`, this may include listeners that have been removed or are one-shot
|
|
18551
|
+
* but are awaiting deferred cleanup. The count is accurate outside of `raiseEvent()`.
|
|
18552
|
+
*/
|
|
18553
|
+
get numberOfListeners() { return this._listeners.size; }
|
|
18554
|
+
/**
|
|
18555
|
+
* Registers a Listener to be executed whenever this event is raised.
|
|
18556
|
+
* @param listener The function to be executed when the event is raised.
|
|
18557
|
+
* @param scope An optional object scope to serve as the 'this' pointer when listener is invoked.
|
|
18558
|
+
* @returns A function that will remove this event listener in O(1).
|
|
18559
|
+
*/
|
|
18560
|
+
addListener(listener, scope) {
|
|
18561
|
+
const ctx = { listener, scope, once: false };
|
|
18562
|
+
this._listeners.add(ctx);
|
|
18563
|
+
return () => this._removeCtx(ctx);
|
|
18564
|
+
}
|
|
18565
|
+
/**
|
|
18566
|
+
* Registers a callback function to be executed *only once* when the event is raised.
|
|
18567
|
+
* @param listener The function to be executed once when the event is raised.
|
|
18568
|
+
* @param scope An optional object scope to serve as the `this` pointer in which the listener function will execute.
|
|
18569
|
+
* @returns A function that will remove this event listener in O(1).
|
|
18570
|
+
*/
|
|
18571
|
+
addOnce(listener, scope) {
|
|
18572
|
+
const ctx = { listener, scope, once: true };
|
|
18573
|
+
this._listeners.add(ctx);
|
|
18574
|
+
return () => this._removeCtx(ctx);
|
|
18575
|
+
}
|
|
18576
|
+
/** Remove a specific context entry, deferring during emit. */
|
|
18577
|
+
_removeCtx(ctx) {
|
|
18578
|
+
this._listeners.delete(ctx);
|
|
18579
|
+
}
|
|
18580
|
+
/**
|
|
18581
|
+
* Raises the event by calling each registered listener with the supplied arguments.
|
|
18582
|
+
*
|
|
18583
|
+
* See [[BeAsyncEventOptions]] for options that control the behavior of this method.
|
|
18584
|
+
*
|
|
18585
|
+
* @param args This method takes any number of parameters and passes them through to the listeners.
|
|
18586
|
+
* @returns A Promise that settles when the event invocation is complete.
|
|
18587
|
+
*/
|
|
18588
|
+
async raiseEvent(...args) {
|
|
18589
|
+
const promises = [];
|
|
18590
|
+
// Wrapper to ensure that an exception thrown immediately by a listener is captured as a rejected promise rather than
|
|
18591
|
+
// allowed to propagate as an exception. A well-behaved Promise-returning function should never throw, but
|
|
18592
|
+
// this defends against the poorly-behaved ones. In Node 23+ we could use `Promise.try` instead.
|
|
18593
|
+
const invoke = async (ctx, args) => {
|
|
18594
|
+
if (!ctx.listener)
|
|
18595
|
+
return;
|
|
18596
|
+
await ctx.listener.apply(ctx.scope, args);
|
|
18597
|
+
};
|
|
18598
|
+
for (const ctx of this._listeners) {
|
|
18599
|
+
if (!ctx.listener)
|
|
18600
|
+
continue;
|
|
18601
|
+
if (ctx.once) {
|
|
18602
|
+
// Set guarantees this is safe during iteration.
|
|
18603
|
+
this._listeners.delete(ctx);
|
|
18604
|
+
}
|
|
18605
|
+
let promise = invoke(ctx, args);
|
|
18606
|
+
if (this._promiseRejectionIsUnexpected)
|
|
18607
|
+
promise = promise.catch(reason => _UnexpectedErrors__WEBPACK_IMPORTED_MODULE_0__.UnexpectedErrors.handle(reason));
|
|
18608
|
+
if (this._concurrent)
|
|
18609
|
+
promises.push(promise);
|
|
18610
|
+
else
|
|
18611
|
+
await promise;
|
|
18612
|
+
}
|
|
18613
|
+
if (this._concurrent) {
|
|
18614
|
+
const result = await Promise.allSettled(promises);
|
|
18615
|
+
const firstRejection = result.find(r => r.status === "rejected");
|
|
18616
|
+
if (firstRejection)
|
|
18617
|
+
throw firstRejection.reason;
|
|
18618
|
+
}
|
|
18619
|
+
}
|
|
18620
|
+
/** Clear all listeners from this BeAsyncEvent.
|
|
18621
|
+
* @note If called during `raiseEvent`, remaining listeners in the current iteration are skipped
|
|
18622
|
+
* immediately rather than being tombstoned.
|
|
18623
|
+
*/
|
|
18624
|
+
clear() { this._listeners.clear(); }
|
|
18625
|
+
}
|
|
18541
18626
|
/**
|
|
18542
18627
|
* A list of BeEvent objects, accessible by an event name.
|
|
18543
18628
|
* This class may be used instead of explicitly declaring each BeEvent as a member of a containing class.
|
|
@@ -21094,16 +21179,18 @@ var Id64;
|
|
|
21094
21179
|
Id64.getFirst = getFirst;
|
|
21095
21180
|
/** Return the number of [[Id64String]]s represented by an [[Id64Arg]]. */
|
|
21096
21181
|
function sizeOf(arg) {
|
|
21097
|
-
return typeof arg === "string" ? 1 :
|
|
21182
|
+
return typeof arg === "string" ? 1 : "size" in arg ? arg.size : arg.length;
|
|
21098
21183
|
}
|
|
21099
21184
|
Id64.sizeOf = sizeOf;
|
|
21100
21185
|
/** Returns true if the [[Id64Arg]] contains the specified Id. */
|
|
21101
21186
|
function has(arg, id) {
|
|
21102
|
-
if (typeof arg === "string")
|
|
21187
|
+
if (typeof arg === "string") {
|
|
21103
21188
|
return arg === id;
|
|
21104
|
-
|
|
21105
|
-
|
|
21106
|
-
|
|
21189
|
+
}
|
|
21190
|
+
if ("has" in arg) {
|
|
21191
|
+
return arg.has(id);
|
|
21192
|
+
}
|
|
21193
|
+
return -1 !== arg.indexOf(id);
|
|
21107
21194
|
}
|
|
21108
21195
|
Id64.has = has;
|
|
21109
21196
|
/** The string representation of an invalid Id. */
|
|
@@ -25173,6 +25260,7 @@ class YieldManager {
|
|
|
25173
25260
|
__webpack_require__.r(__webpack_exports__);
|
|
25174
25261
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
25175
25262
|
/* harmony export */ AbandonedError: () => (/* reexport safe */ _OneAtATimeAction__WEBPACK_IMPORTED_MODULE_22__.AbandonedError),
|
|
25263
|
+
/* harmony export */ BeAsyncEvent: () => (/* reexport safe */ _BeEvent__WEBPACK_IMPORTED_MODULE_2__.BeAsyncEvent),
|
|
25176
25264
|
/* harmony export */ BeDuration: () => (/* reexport safe */ _Time__WEBPACK_IMPORTED_MODULE_30__.BeDuration),
|
|
25177
25265
|
/* harmony export */ BeEvent: () => (/* reexport safe */ _BeEvent__WEBPACK_IMPORTED_MODULE_2__.BeEvent),
|
|
25178
25266
|
/* harmony export */ BeEventList: () => (/* reexport safe */ _BeEvent__WEBPACK_IMPORTED_MODULE_2__.BeEventList),
|
|
@@ -30736,7 +30824,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30736
30824
|
/* harmony export */ ECSqlReader: () => (/* binding */ ECSqlReader)
|
|
30737
30825
|
/* harmony export */ });
|
|
30738
30826
|
/* harmony import */ var _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConcurrentQuery */ "../../core/common/lib/esm/ConcurrentQuery.js");
|
|
30739
|
-
/* harmony import */ var
|
|
30827
|
+
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
30828
|
+
/* harmony import */ var _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ECSqlReaderBase */ "../../core/common/lib/esm/ECSqlReaderBase.js");
|
|
30740
30829
|
/*---------------------------------------------------------------------------------------------
|
|
30741
30830
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
30742
30831
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -30746,6 +30835,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30746
30835
|
*/
|
|
30747
30836
|
|
|
30748
30837
|
|
|
30838
|
+
|
|
30749
30839
|
/**
|
|
30750
30840
|
* Execute ECSQL statements and read the results.
|
|
30751
30841
|
*
|
|
@@ -30768,7 +30858,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30768
30858
|
* JavaScript object, call [[QueryRowProxy.toRow]] on it.
|
|
30769
30859
|
* @public
|
|
30770
30860
|
*/
|
|
30771
|
-
class ECSqlReader extends
|
|
30861
|
+
class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.ECSqlReaderBase {
|
|
30772
30862
|
_executor;
|
|
30773
30863
|
query;
|
|
30774
30864
|
static _maxRetryCount = 10;
|
|
@@ -30779,6 +30869,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30779
30869
|
_globalDone = false;
|
|
30780
30870
|
_param = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryBinder().serialize();
|
|
30781
30871
|
_lockArgs = false;
|
|
30872
|
+
_cursorId = "";
|
|
30782
30873
|
_stats = { backendCpuTime: 0, backendTotalTime: 0, backendMemUsed: 0, backendRowsReturned: 0, totalTime: 0, retryCount: 0, prepareTime: 0 };
|
|
30783
30874
|
_options = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryOptionsBuilder().getOptions();
|
|
30784
30875
|
/**
|
|
@@ -30810,10 +30901,11 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30810
30901
|
* @deprecated in 5.6 - will not be removed until after 2027-04-02. Should not be used. Will be made private in a future release.
|
|
30811
30902
|
*/
|
|
30812
30903
|
reset(options) {
|
|
30904
|
+
this._cursorId = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_1__.Guid.createValue();
|
|
30813
30905
|
if (options) {
|
|
30814
30906
|
this._options = options;
|
|
30815
30907
|
}
|
|
30816
|
-
this._props = new
|
|
30908
|
+
this._props = new _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.PropertyMetaDataMap([]);
|
|
30817
30909
|
this._localRows = [];
|
|
30818
30910
|
this._globalDone = false;
|
|
30819
30911
|
this._globalOffset = 0;
|
|
@@ -30834,6 +30926,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30834
30926
|
* @deprecated in 5.6 - will not be removed until after 2027-04-02. Should not be used. Will be made private in a future release.
|
|
30835
30927
|
*/
|
|
30836
30928
|
resetBindings() {
|
|
30929
|
+
this._cursorId = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_1__.Guid.createValue();
|
|
30837
30930
|
this._param = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryBinder().serialize();
|
|
30838
30931
|
this._lockArgs = false;
|
|
30839
30932
|
}
|
|
@@ -30872,13 +30965,14 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30872
30965
|
valueFormat,
|
|
30873
30966
|
query: this.query,
|
|
30874
30967
|
args: this._param,
|
|
30968
|
+
cursorId: this._cursorId,
|
|
30875
30969
|
};
|
|
30876
30970
|
request.includeMetaData = this._props.length > 0 ? false : true;
|
|
30877
30971
|
request.limit = { offset: this._globalOffset, count: this._globalCount < 1 ? -1 : this._globalCount };
|
|
30878
30972
|
const resp = await this.runWithRetry(request);
|
|
30879
30973
|
this._globalDone = resp.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.Done || resp.status === _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.DbResponseStatus.NotOpen;
|
|
30880
30974
|
if (this._props.length === 0 && resp.meta.length > 0) {
|
|
30881
|
-
this._props = new
|
|
30975
|
+
this._props = new _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_2__.PropertyMetaDataMap(resp.meta);
|
|
30882
30976
|
}
|
|
30883
30977
|
for (const row of resp.data) {
|
|
30884
30978
|
ECSqlReader.replaceBase64WithUint8Array(row);
|
|
@@ -31642,7 +31736,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
31642
31736
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
31643
31737
|
/* harmony export */ EntityMetaData: () => (/* binding */ EntityMetaData),
|
|
31644
31738
|
/* harmony export */ PrimitiveTypeCode: () => (/* binding */ PrimitiveTypeCode),
|
|
31645
|
-
/* harmony export */ PropertyMetaData: () => (/* binding */ PropertyMetaData)
|
|
31739
|
+
/* harmony export */ PropertyMetaData: () => (/* binding */ PropertyMetaData),
|
|
31740
|
+
/* harmony export */ isPersisted: () => (/* binding */ isPersisted)
|
|
31646
31741
|
/* harmony export */ });
|
|
31647
31742
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
31648
31743
|
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
@@ -31657,6 +31752,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
31657
31752
|
|
|
31658
31753
|
|
|
31659
31754
|
|
|
31755
|
+
/** Tests whether an [[EntityProps]] has a valid `id`, narrowing its type to [[Persisted]] if it does.
|
|
31756
|
+
* @public @preview
|
|
31757
|
+
* @extensions
|
|
31758
|
+
*/
|
|
31759
|
+
function isPersisted(entity) {
|
|
31760
|
+
return undefined !== entity.id && _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.isValidId64(entity.id);
|
|
31761
|
+
}
|
|
31660
31762
|
/** The primitive types of an Entity property.
|
|
31661
31763
|
* @beta
|
|
31662
31764
|
*/
|
|
@@ -33535,6 +33637,9 @@ var GeoCoordStatus;
|
|
|
33535
33637
|
* Geoid separation data or vertical datum differential data (such as used by NGVD29 to NAVD88 conversion).
|
|
33536
33638
|
* The horizontal coordinates returned are valid but the elevation ordinate will be returned unchanged or partially changed.
|
|
33537
33639
|
* This status should be somehow reported so actions can be performed to provide the missing information.
|
|
33640
|
+
* A finite elevation, including one equal to the input elevation, is not evidence that vertical conversion succeeded.
|
|
33641
|
+
* Callers requiring converted elevations must reject this result. Horizontal-only callers may use XY while retaining
|
|
33642
|
+
* and reporting this status. A visual fallback must not be presented as a successful vertical conversion.
|
|
33538
33643
|
*/
|
|
33539
33644
|
GeoCoordStatus[GeoCoordStatus["VerticalDatumConvertError"] = 26] = "VerticalDatumConvertError";
|
|
33540
33645
|
/** General inner conversion engine error. Coordinates returned are invalid and should be discarded */
|
|
@@ -39345,7 +39450,7 @@ var RenderSchedule;
|
|
|
39345
39450
|
for (let i = 0; i < last; i++) {
|
|
39346
39451
|
const time0 = this._entries[i].time;
|
|
39347
39452
|
const time1 = this._entries[i + 1].time;
|
|
39348
|
-
if (time0 <= time && time1
|
|
39453
|
+
if (time0 <= time && time1 > time) {
|
|
39349
39454
|
let fraction;
|
|
39350
39455
|
if (Interpolation.Linear === this._entries[i].interpolation)
|
|
39351
39456
|
fraction = (time - time0) / (time1 - time0);
|
|
@@ -45790,6 +45895,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
45790
45895
|
/* harmony export */ isBinaryImageSource: () => (/* reexport safe */ _Image__WEBPACK_IMPORTED_MODULE_69__.isBinaryImageSource),
|
|
45791
45896
|
/* harmony export */ isKnownFieldPropertyType: () => (/* reexport safe */ _internal_cross_package__WEBPACK_IMPORTED_MODULE_166__.isKnownFieldPropertyType),
|
|
45792
45897
|
/* harmony export */ isKnownTileFormat: () => (/* reexport safe */ _tile_TileIO__WEBPACK_IMPORTED_MODULE_162__.isKnownTileFormat),
|
|
45898
|
+
/* harmony export */ isPersisted: () => (/* reexport safe */ _EntityProps__WEBPACK_IMPORTED_MODULE_34__.isPersisted),
|
|
45793
45899
|
/* harmony export */ isPlacement2dProps: () => (/* reexport safe */ _ElementProps__WEBPACK_IMPORTED_MODULE_32__.isPlacement2dProps),
|
|
45794
45900
|
/* harmony export */ isPlacement3dProps: () => (/* reexport safe */ _ElementProps__WEBPACK_IMPORTED_MODULE_32__.isPlacement3dProps),
|
|
45795
45901
|
/* harmony export */ isPowerOfTwo: () => (/* reexport safe */ _Image__WEBPACK_IMPORTED_MODULE_69__.isPowerOfTwo),
|
|
@@ -47297,10 +47403,8 @@ class HorizontalCRS {
|
|
|
47297
47403
|
}
|
|
47298
47404
|
}
|
|
47299
47405
|
/** Vertical Coordinate reference System implementation.
|
|
47300
|
-
*
|
|
47301
|
-
*
|
|
47302
|
-
* we expect to support a broader set in the future including, eventually, user defined vertical CRS
|
|
47303
|
-
* which will require additional parameters to be added.
|
|
47406
|
+
* A VerticalCRS can identify a predefined system by dictionary name or EPSG code while retaining
|
|
47407
|
+
* one of the five legacy keys for backward compatibility.
|
|
47304
47408
|
* @public
|
|
47305
47409
|
*/
|
|
47306
47410
|
class VerticalCRS {
|
|
@@ -47315,10 +47419,19 @@ class VerticalCRS {
|
|
|
47315
47419
|
* be used for datums that are not considered coincident vertically with WGS84. Use of this vertical datum is strongly discouraged.
|
|
47316
47420
|
*/
|
|
47317
47421
|
id;
|
|
47422
|
+
/** Dictionary CRS name, e.g. "EGM96 height". Takes precedence over [[epsg]] and [[id]] when set.
|
|
47423
|
+
* @beta */
|
|
47424
|
+
crsName;
|
|
47425
|
+
/** EPSG code identifying the vertical CRS. Takes precedence over [[id]] when [[crsName]] is not set.
|
|
47426
|
+
* @beta */
|
|
47427
|
+
epsg;
|
|
47318
47428
|
constructor(data) {
|
|
47319
47429
|
this.id = "GEOID";
|
|
47320
|
-
if (data)
|
|
47430
|
+
if (data) {
|
|
47321
47431
|
this.id = data.id;
|
|
47432
|
+
this.crsName = data.crsName;
|
|
47433
|
+
this.epsg = data.epsg;
|
|
47434
|
+
}
|
|
47322
47435
|
}
|
|
47323
47436
|
/** Creates a Vertical CRS from JSON representation.
|
|
47324
47437
|
* @public */
|
|
@@ -47328,12 +47441,17 @@ class VerticalCRS {
|
|
|
47328
47441
|
/** Creates a JSON from the Vertical CRS definition
|
|
47329
47442
|
* @public */
|
|
47330
47443
|
toJSON() {
|
|
47331
|
-
|
|
47444
|
+
const data = { id: this.id };
|
|
47445
|
+
if (this.crsName !== undefined)
|
|
47446
|
+
data.crsName = this.crsName;
|
|
47447
|
+
if (this.epsg !== undefined)
|
|
47448
|
+
data.epsg = this.epsg;
|
|
47449
|
+
return data;
|
|
47332
47450
|
}
|
|
47333
|
-
/**
|
|
47451
|
+
/** Strictly compares the stored properties of two vertical CRS, not their resolved identities.
|
|
47334
47452
|
* @public */
|
|
47335
47453
|
equals(other) {
|
|
47336
|
-
return
|
|
47454
|
+
return this.id === other.id && this.crsName === other.crsName && this.epsg === other.epsg;
|
|
47337
47455
|
}
|
|
47338
47456
|
}
|
|
47339
47457
|
/** Geographic Coordinate Reference System implementation. This is the class that indicates the definition of a Geographic
|
|
@@ -56814,7 +56932,7 @@ class IModelReadRpcInterface extends _RpcInterface__WEBPACK_IMPORTED_MODULE_0__.
|
|
|
56814
56932
|
/** The immutable name of the interface. */
|
|
56815
56933
|
static interfaceName = "IModelReadRpcInterface";
|
|
56816
56934
|
/** The semantic version of the interface. */
|
|
56817
|
-
static interfaceVersion = "3.8.
|
|
56935
|
+
static interfaceVersion = "3.8.1";
|
|
56818
56936
|
/*===========================================================================================
|
|
56819
56937
|
NOTE: Any add/remove/change to the methods below requires an update of the interface version.
|
|
56820
56938
|
NOTE: Please consult the README in this folder for the semantic versioning rules.
|
|
@@ -57759,8 +57877,7 @@ class RpcInvocation {
|
|
|
57759
57877
|
return;
|
|
57760
57878
|
for (let i = 0; i !== parameters.length; ++i) {
|
|
57761
57879
|
const parameter = parameters[i];
|
|
57762
|
-
|
|
57763
|
-
if (isToken && this.protocol.checkToken && !this.operation.policy.allowTokenMismatch) {
|
|
57880
|
+
if (this.protocol.checkToken && !this.operation.policy.allowTokenMismatch && RpcInvocation.isTokenParameter(parameter, i)) {
|
|
57764
57881
|
const inflated = this.protocol.inflateToken(parameter, this.request);
|
|
57765
57882
|
parameters[i] = inflated;
|
|
57766
57883
|
if (!RpcInvocation.compareTokens(parameter, inflated)) {
|
|
@@ -57774,9 +57891,20 @@ class RpcInvocation {
|
|
|
57774
57891
|
}
|
|
57775
57892
|
}
|
|
57776
57893
|
}
|
|
57894
|
+
/** Determine whether an operation parameter is an [[IModelRpcProps]]. Every property of the token other than `key` is optional
|
|
57895
|
+
* and all of them are supplied by the caller, so the first parameter is treated as a token if it has *any* of the identifying properties.
|
|
57896
|
+
*/
|
|
57897
|
+
static isTokenParameter(parameter, index) {
|
|
57898
|
+
if (typeof parameter !== "object" || parameter === null || Array.isArray(parameter))
|
|
57899
|
+
return false;
|
|
57900
|
+
const has = (prop) => Object.prototype.hasOwnProperty.call(parameter, prop);
|
|
57901
|
+
if (has("iModelId") && has("iTwinId"))
|
|
57902
|
+
return true;
|
|
57903
|
+
return 0 === index && (has("key") || has("iModelId") || has("iTwinId"));
|
|
57904
|
+
}
|
|
57777
57905
|
static compareTokens(a, b) {
|
|
57778
57906
|
return a.key === b.key &&
|
|
57779
|
-
a.iTwinId === b.iTwinId &&
|
|
57907
|
+
(undefined === a.iTwinId || a.iTwinId === b.iTwinId) &&
|
|
57780
57908
|
a.iModelId === b.iModelId &&
|
|
57781
57909
|
(undefined === a.changeset || (a.changeset.id === b.changeset?.id));
|
|
57782
57910
|
}
|
|
@@ -76339,8 +76467,8 @@ class SchemaView {
|
|
|
76339
76467
|
throw new Error("SchemaView is not mergeable: create it via SchemaView.createMergeable to merge fragments.");
|
|
76340
76468
|
this._mergeContext.mergeBlob(blob);
|
|
76341
76469
|
// A new fragment can add subclasses to an already-present base class, so the derived-class map
|
|
76342
|
-
// must be rebuilt. transitiveBaseCache
|
|
76343
|
-
// before it (dependency order), so an append never adds an ancestor to an already-cached class.
|
|
76470
|
+
// must be rebuilt. transitiveBaseCache and PropertyRef.overriddenProperty stay valid: a class's ancestors
|
|
76471
|
+
// are always merged before it (dependency order), so an append never adds an ancestor to an already-cached class.
|
|
76344
76472
|
this[_storage].derivedClassMap = undefined;
|
|
76345
76473
|
}
|
|
76346
76474
|
// --- Internal helpers used by view objects ---
|
|
@@ -76430,12 +76558,18 @@ class SchemaView {
|
|
|
76430
76558
|
// 1. Base class (recursive, depth-first)
|
|
76431
76559
|
if (cls.baseClassIdx !== -1)
|
|
76432
76560
|
this._collectProperties(cls.baseClassIdx, merged);
|
|
76433
|
-
// 2. Mixins in declaration order
|
|
76561
|
+
// 2. Mixins in declaration order. Each mixin is resolved on its own so its overrides win over its
|
|
76562
|
+
// ancestors, then only adds names not already provided by the base class or an earlier mixin.
|
|
76434
76563
|
for (let i = 0; i < cls.mixinCount; i++) {
|
|
76435
76564
|
const mixinIdx = this[_storage].classMixins[cls.mixinStartIdx + i];
|
|
76436
76565
|
if (mixinIdx === -1 || mixinIdx === undefined)
|
|
76437
76566
|
continue; // safety: dangling mixin ref
|
|
76438
|
-
|
|
76567
|
+
const mixinProperties = new Map();
|
|
76568
|
+
this._collectProperties(mixinIdx, mixinProperties);
|
|
76569
|
+
for (const [nameKey, resolved] of mixinProperties) {
|
|
76570
|
+
if (!merged.has(nameKey))
|
|
76571
|
+
merged.set(nameKey, resolved);
|
|
76572
|
+
}
|
|
76439
76573
|
}
|
|
76440
76574
|
// 3. Own properties - always override
|
|
76441
76575
|
for (let i = 0; i < cls.ownPropCount; i++) {
|
|
@@ -76444,27 +76578,62 @@ class SchemaView {
|
|
|
76444
76578
|
merged.set(nameKey, { ref, classIdx });
|
|
76445
76579
|
}
|
|
76446
76580
|
}
|
|
76447
|
-
|
|
76448
|
-
|
|
76449
|
-
|
|
76450
|
-
|
|
76451
|
-
|
|
76452
|
-
if (
|
|
76453
|
-
|
|
76454
|
-
|
|
76455
|
-
|
|
76456
|
-
|
|
76457
|
-
|
|
76581
|
+
/** Finds the property declaration that a property of the given class overrides.
|
|
76582
|
+
* Searches the base class and its ancestors first, then each mixin in declaration order.
|
|
76583
|
+
*/
|
|
76584
|
+
_findOverriddenProperty(classIdx, nameKey) {
|
|
76585
|
+
const cls = this[_storage].classes[classIdx];
|
|
76586
|
+
if (cls === undefined || cls.type === _SchemaViewInterfaces__WEBPACK_IMPORTED_MODULE_0__.ClassType.View)
|
|
76587
|
+
return undefined;
|
|
76588
|
+
if (cls.baseClassIdx !== -1) {
|
|
76589
|
+
const found = this._findPropertyDeclaration(cls.baseClassIdx, nameKey);
|
|
76590
|
+
if (found !== undefined)
|
|
76591
|
+
return found;
|
|
76592
|
+
}
|
|
76593
|
+
for (let i = 0; i < cls.mixinCount; i++) {
|
|
76594
|
+
const mixinIdx = this[_storage].classMixins[cls.mixinStartIdx + i];
|
|
76595
|
+
if (mixinIdx === -1 || mixinIdx === undefined)
|
|
76458
76596
|
continue; // safety: dangling mixin ref
|
|
76459
|
-
this.
|
|
76597
|
+
const found = this._findPropertyDeclaration(mixinIdx, nameKey);
|
|
76598
|
+
if (found !== undefined)
|
|
76599
|
+
return found;
|
|
76460
76600
|
}
|
|
76461
|
-
|
|
76462
|
-
|
|
76463
|
-
|
|
76601
|
+
return undefined;
|
|
76602
|
+
}
|
|
76603
|
+
_findPropertyDeclaration(classIdx, nameKey) {
|
|
76604
|
+
const cls = this[_storage].classes[classIdx];
|
|
76605
|
+
if (cls === undefined)
|
|
76606
|
+
return undefined; // safety: dangling index from excluded schema
|
|
76607
|
+
for (let i = 0; i < cls.ownPropCount; i++) {
|
|
76608
|
+
const ref = this[_storage].propertyRefs[cls.ownPropStart + i];
|
|
76609
|
+
if (this[_storage].lowerStrings[this[_storage].propDefs[ref.defIdx].nameStringIdx] === nameKey)
|
|
76610
|
+
return { ref, classIdx };
|
|
76611
|
+
}
|
|
76612
|
+
return this._findOverriddenProperty(classIdx, nameKey);
|
|
76613
|
+
}
|
|
76614
|
+
/** Returns the first declaration matching `predicate`, starting with the given declaration and
|
|
76615
|
+
* continuing with the declarations it overrides.
|
|
76616
|
+
* @internal
|
|
76617
|
+
*/
|
|
76618
|
+
findPropertyDefInOverrides(ref, classIdx, predicate) {
|
|
76619
|
+
let current = { ref, classIdx };
|
|
76620
|
+
while (current !== null) {
|
|
76621
|
+
const def = this[_storage].propDefs[current.ref.defIdx];
|
|
76622
|
+
if (predicate(def))
|
|
76623
|
+
return def;
|
|
76624
|
+
current = this._getOverriddenProperty(current.ref, current.classIdx);
|
|
76625
|
+
}
|
|
76626
|
+
return undefined;
|
|
76627
|
+
}
|
|
76628
|
+
/** Returns the declaration the given one overrides, resolving and storing it on the ref on first access.
|
|
76629
|
+
* Caching per ref is sound because a ref belongs to exactly one class; view properties (classIdx -1) never override.
|
|
76630
|
+
*/
|
|
76631
|
+
_getOverriddenProperty(ref, classIdx) {
|
|
76632
|
+
if (ref.overriddenProperty === undefined) {
|
|
76464
76633
|
const nameKey = this[_storage].lowerStrings[this[_storage].propDefs[ref.defIdx].nameStringIdx];
|
|
76465
|
-
|
|
76466
|
-
merged.set(nameKey, { ref, classIdx: mixinIdx });
|
|
76634
|
+
ref.overriddenProperty = classIdx !== -1 ? this._findOverriddenProperty(classIdx, nameKey) ?? null : null;
|
|
76467
76635
|
}
|
|
76636
|
+
return ref.overriddenProperty;
|
|
76468
76637
|
}
|
|
76469
76638
|
/** @internal */
|
|
76470
76639
|
buildDerivedClassMap() {
|
|
@@ -76489,6 +76658,9 @@ class SchemaView {
|
|
|
76489
76658
|
// =====================================================================================
|
|
76490
76659
|
// SchemaView namespace - flyweight view types
|
|
76491
76660
|
// =====================================================================================
|
|
76661
|
+
function hasCategory(def) { return def.categoryIdx !== -1; }
|
|
76662
|
+
function hasKindOfQuantity(def) { return def.koqIdx !== -1; }
|
|
76663
|
+
function isHiddenDef(def) { return def.isHidden; }
|
|
76492
76664
|
/** @beta */
|
|
76493
76665
|
(function (SchemaView) {
|
|
76494
76666
|
/** Lightweight view over a schema in a `SchemaView`. Holds only a view reference and
|
|
@@ -76832,10 +77004,21 @@ class SchemaView {
|
|
|
76832
77004
|
}
|
|
76833
77005
|
get kind() { return this._def.kind; }
|
|
76834
77006
|
get isReadOnly() { return this._def.isReadOnly; }
|
|
76835
|
-
/** Reflects the `HiddenProperty` custom attribute from `CoreCustomAttributes
|
|
76836
|
-
* Properties marked hidden are typically excluded from UI display but remain
|
|
77007
|
+
/** Reflects the `HiddenProperty` custom attribute from `CoreCustomAttributes` on this declaration only;
|
|
77008
|
+
* see `isEffectivelyHidden`. Properties marked hidden are typically excluded from UI display but remain
|
|
77009
|
+
* accessible programmatically. */
|
|
76837
77010
|
get isHidden() { return this._def.isHidden; }
|
|
76838
|
-
/**
|
|
77011
|
+
/** True if this declaration is hidden. If it is not and the property is an override, we take this from the
|
|
77012
|
+
* overridden property. Limitation: `HiddenProperty(Show=true)` reads the same as no `HiddenProperty`, so it does not
|
|
77013
|
+
* unhide a property whose overridden property is hidden. */
|
|
77014
|
+
get isEffectivelyHidden() {
|
|
77015
|
+
if (this._def.isHidden)
|
|
77016
|
+
return true;
|
|
77017
|
+
return this._ctx.findPropertyDefInOverrides(this._ref, this._classIdx, isHiddenDef) !== undefined;
|
|
77018
|
+
}
|
|
77019
|
+
/** Display priority. Higher values should be displayed more prominently. 0 means default.
|
|
77020
|
+
* Not inherited from the overridden property: an omitted priority is stored as 0, which cannot be told
|
|
77021
|
+
* apart from an explicit 0 that overrides a base priority. */
|
|
76839
77022
|
get priority() { return this._ref.priority; }
|
|
76840
77023
|
/** The class that declared or contributed this property through inheritance.
|
|
76841
77024
|
* For own properties, returns the class itself. For inherited properties, returns the
|
|
@@ -76846,11 +77029,21 @@ class SchemaView {
|
|
|
76846
77029
|
get declaringClass() {
|
|
76847
77030
|
return this._classIdx !== -1 ? createClass(this._ctx, this._classIdx) : undefined;
|
|
76848
77031
|
}
|
|
76849
|
-
/** Property category
|
|
77032
|
+
/** Property category. If there is no local category and the property is an override, we take this from
|
|
77033
|
+
* the overridden property. Available on all property kinds. */
|
|
76850
77034
|
get category() {
|
|
76851
|
-
|
|
77035
|
+
let idx = this._def.categoryIdx;
|
|
77036
|
+
if (idx === -1 && this._ctx[_storage].propCategories.length !== 0)
|
|
77037
|
+
idx = this._ctx.findPropertyDefInOverrides(this._ref, this._classIdx, hasCategory)?.categoryIdx ?? -1;
|
|
76852
77038
|
return idx !== -1 ? new PropertyCategory(this._ctx, idx) : undefined;
|
|
76853
77039
|
}
|
|
77040
|
+
/** @internal */
|
|
77041
|
+
get _kindOfQuantity() {
|
|
77042
|
+
let idx = this._def.koqIdx;
|
|
77043
|
+
if (idx === -1 && this._ctx[_storage].koqs.length !== 0)
|
|
77044
|
+
idx = this._ctx.findPropertyDefInOverrides(this._ref, this._classIdx, hasKindOfQuantity)?.koqIdx ?? -1;
|
|
77045
|
+
return idx !== -1 ? new KindOfQuantity(this._ctx, idx) : undefined;
|
|
77046
|
+
}
|
|
76854
77047
|
// Type guards - real type predicates that narrow `this`
|
|
76855
77048
|
/** True for `SchemaView.PrimitiveProperty` and `SchemaView.PrimitiveArrayProperty`.
|
|
76856
77049
|
* Matches ecschema-metadata behavior where `isPrimitive()` includes primitive arrays. */
|
|
@@ -76912,10 +77105,9 @@ class SchemaView {
|
|
|
76912
77105
|
const idx = this._def.enumIdx;
|
|
76913
77106
|
return idx !== -1 ? new Enumeration(this._ctx, idx) : undefined;
|
|
76914
77107
|
}
|
|
76915
|
-
|
|
76916
|
-
|
|
76917
|
-
|
|
76918
|
-
}
|
|
77108
|
+
/** KindOfQuantity. If there is no local KindOfQuantity and the property is an override, we take this
|
|
77109
|
+
* from the overridden property. */
|
|
77110
|
+
get kindOfQuantity() { return this._kindOfQuantity; }
|
|
76919
77111
|
}
|
|
76920
77112
|
SchemaView.PrimitiveProperty = PrimitiveProperty;
|
|
76921
77113
|
/** An array of primitive values. Same primitive/enum fields as `PrimitiveProperty`,
|
|
@@ -76932,10 +77124,9 @@ class SchemaView {
|
|
|
76932
77124
|
const idx = this._def.enumIdx;
|
|
76933
77125
|
return idx !== -1 ? new Enumeration(this._ctx, idx) : undefined;
|
|
76934
77126
|
}
|
|
76935
|
-
|
|
76936
|
-
|
|
76937
|
-
|
|
76938
|
-
}
|
|
77127
|
+
/** KindOfQuantity. If there is no local KindOfQuantity and the property is an override, we take this
|
|
77128
|
+
* from the overridden property. */
|
|
77129
|
+
get kindOfQuantity() { return this._kindOfQuantity; }
|
|
76939
77130
|
get arrayMinOccurs() { return this._def.arrayMinOccurs; }
|
|
76940
77131
|
get arrayMaxOccurs() { return this._def.arrayMaxOccurs; }
|
|
76941
77132
|
}
|
|
@@ -77841,6 +78032,7 @@ function mergeFragmentBlob(ctx, data) {
|
|
|
77841
78032
|
defIdx,
|
|
77842
78033
|
labelStringIdx: pr.labelStringIdx,
|
|
77843
78034
|
priority: pr.priority,
|
|
78035
|
+
overriddenProperty: undefined,
|
|
77844
78036
|
});
|
|
77845
78037
|
}
|
|
77846
78038
|
let sourceConstraintIdx = -1;
|
|
@@ -90652,30 +90844,63 @@ class CoordinateConverter {
|
|
|
90652
90844
|
}
|
|
90653
90845
|
}
|
|
90654
90846
|
/** An object capable of communicating with the backend to convert between coordinates in a geographic coordinate system and coordinates in an [[IModelConnection]]'s own coordinate system.
|
|
90847
|
+
* Conversion results retain the backend's per-point status, including failed vertical conversions. Check each status
|
|
90848
|
+
* before using elevations; [[GeoCoordStatus.VerticalDatumConvertError]] does not provide a reliable converted Z.
|
|
90849
|
+
* Results, including failures, are cached in this converter. Loading grids does not invalidate those cached results.
|
|
90850
|
+
* To retry after resources become available, finish outstanding requests and acquire a fresh converter from
|
|
90851
|
+
* [[GeoServices.getConverter]] instead of reusing the retained instance.
|
|
90655
90852
|
* @see [[GeoServices.getConverter]] to obtain a converter.
|
|
90656
90853
|
* @see [GeographicCRS]($common) for more information about geographic coordinate reference systems.
|
|
90657
90854
|
* @public
|
|
90658
90855
|
*/
|
|
90659
90856
|
class GeoConverter {
|
|
90660
|
-
|
|
90661
|
-
|
|
90857
|
+
_converters;
|
|
90858
|
+
_gcs;
|
|
90859
|
+
_options;
|
|
90662
90860
|
/** Used for removing this converter from GeoServices' cache after all requests are completed.
|
|
90663
90861
|
* @internal
|
|
90664
90862
|
*/
|
|
90665
90863
|
onAllRequestsCompleted = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeEvent();
|
|
90666
90864
|
/** @internal */
|
|
90667
90865
|
constructor(opts) {
|
|
90866
|
+
this._options = opts;
|
|
90867
|
+
this._gcs = opts.getGcs?.();
|
|
90868
|
+
this._converters = this.createConverters();
|
|
90869
|
+
}
|
|
90870
|
+
createConverters() {
|
|
90871
|
+
const opts = this._options;
|
|
90668
90872
|
const isIModelClosed = opts.isIModelClosed;
|
|
90669
|
-
|
|
90670
|
-
|
|
90671
|
-
|
|
90672
|
-
|
|
90673
|
-
|
|
90674
|
-
|
|
90675
|
-
|
|
90676
|
-
|
|
90677
|
-
|
|
90678
|
-
|
|
90873
|
+
return {
|
|
90874
|
+
geoToIModel: new CoordinateConverter({
|
|
90875
|
+
direction: "geoToIModel",
|
|
90876
|
+
isIModelClosed,
|
|
90877
|
+
requestPoints: async (geoCoords) => opts.toIModelCoords({ source: opts.datum, geoCoords }),
|
|
90878
|
+
}),
|
|
90879
|
+
iModelToGeo: new CoordinateConverter({
|
|
90880
|
+
direction: "iModelToGeo",
|
|
90881
|
+
isIModelClosed,
|
|
90882
|
+
requestPoints: async (iModelCoords) => opts.fromIModelCoords({ target: opts.datum, iModelCoords }),
|
|
90883
|
+
}),
|
|
90884
|
+
};
|
|
90885
|
+
}
|
|
90886
|
+
refreshGcs() {
|
|
90887
|
+
const gcs = this._options.getGcs?.();
|
|
90888
|
+
if (gcs !== this._gcs) {
|
|
90889
|
+
this._gcs = gcs;
|
|
90890
|
+
this._converters = this.createConverters();
|
|
90891
|
+
}
|
|
90892
|
+
}
|
|
90893
|
+
async convert(points, direction) {
|
|
90894
|
+
for (;;) {
|
|
90895
|
+
this.refreshGcs();
|
|
90896
|
+
const converter = this._converters[direction];
|
|
90897
|
+
const result = await converter.convert(points);
|
|
90898
|
+
this.refreshGcs();
|
|
90899
|
+
if (converter !== this._converters[direction])
|
|
90900
|
+
continue;
|
|
90901
|
+
this.checkCompletion();
|
|
90902
|
+
return result;
|
|
90903
|
+
}
|
|
90679
90904
|
}
|
|
90680
90905
|
/** Convert the specified geographic coordinates into iModel coordinates. */
|
|
90681
90906
|
async convertToIModelCoords(geoPoints) {
|
|
@@ -90689,8 +90914,7 @@ class GeoConverter {
|
|
|
90689
90914
|
}
|
|
90690
90915
|
/** @internal */
|
|
90691
90916
|
async getIModelCoordinatesFromGeoCoordinates(geoPoints) {
|
|
90692
|
-
const result = await this.
|
|
90693
|
-
this.checkCompletion();
|
|
90917
|
+
const result = await this.convert(geoPoints, "geoToIModel");
|
|
90694
90918
|
return {
|
|
90695
90919
|
iModelCoords: result.points,
|
|
90696
90920
|
fromCache: result.fromCache,
|
|
@@ -90698,20 +90922,20 @@ class GeoConverter {
|
|
|
90698
90922
|
}
|
|
90699
90923
|
/** @internal */
|
|
90700
90924
|
async getGeoCoordinatesFromIModelCoordinates(iModelPoints) {
|
|
90701
|
-
const result = await this.
|
|
90702
|
-
this.checkCompletion();
|
|
90925
|
+
const result = await this.convert(iModelPoints, "iModelToGeo");
|
|
90703
90926
|
return {
|
|
90704
90927
|
geoCoords: result.points,
|
|
90705
90928
|
fromCache: result.fromCache,
|
|
90706
90929
|
};
|
|
90707
90930
|
}
|
|
90708
90931
|
checkCompletion() {
|
|
90709
|
-
if (this.
|
|
90932
|
+
if (this._converters.geoToIModel.isIdle && this._converters.iModelToGeo.isIdle)
|
|
90710
90933
|
this.onAllRequestsCompleted.raiseEvent();
|
|
90711
90934
|
}
|
|
90712
90935
|
/** @internal */
|
|
90713
90936
|
getCachedIModelCoordinatesFromGeoCoordinates(geoPoints) {
|
|
90714
|
-
|
|
90937
|
+
this.refreshGcs();
|
|
90938
|
+
return this._converters.geoToIModel.findCached(geoPoints);
|
|
90715
90939
|
}
|
|
90716
90940
|
}
|
|
90717
90941
|
/** The Geographic Services available for an [[IModelConnection]].
|
|
@@ -90739,6 +90963,7 @@ class GeoServices {
|
|
|
90739
90963
|
static createForIModel(iModel) {
|
|
90740
90964
|
return new GeoServices({
|
|
90741
90965
|
isIModelClosed: () => iModel.isClosed,
|
|
90966
|
+
getGcs: () => iModel.geographicCoordinateSystem,
|
|
90742
90967
|
toIModelCoords: async (request) => {
|
|
90743
90968
|
const rpc = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelReadRpcInterface.getClientForRouting(iModel.routingContext.token);
|
|
90744
90969
|
const response = await rpc.getIModelCoordinatesFromGeoCoordinates(iModel.getRpcProps(), request);
|
|
@@ -92073,12 +92298,27 @@ class IModelApp {
|
|
|
92073
92298
|
static get publicPath() { return this._publicPath; }
|
|
92074
92299
|
/** The [[FormatsProvider]] for this session.
|
|
92075
92300
|
* @param provider The provider to use for formatting quantities.
|
|
92301
|
+
* @note Prefer [[IModelApp.setFormatsProvider]] when replacing the provider; assigning this property starts an asynchronous reload without returning a promise.
|
|
92076
92302
|
* @beta
|
|
92077
92303
|
*/
|
|
92078
92304
|
static get formatsProvider() { return this._formatsProviderManager; }
|
|
92079
92305
|
static set formatsProvider(provider) {
|
|
92080
92306
|
this._formatsProviderManager.formatsProvider = provider;
|
|
92081
92307
|
}
|
|
92308
|
+
/**
|
|
92309
|
+
* Replaces the formats provider and optionally changes the active unit system.
|
|
92310
|
+
* Resolves after the formatter has rebuilt its formatting and parsing caches.
|
|
92311
|
+
* Incompatible provider entries are logged and skipped, so they do not reject this Promise.
|
|
92312
|
+
* If the reload fails, this Promise rejects and the new provider stays installed. The formatter remains usable, but some cached formats may still come from the previous provider.
|
|
92313
|
+
* If a later setFormatsProvider call supersedes this request, this Promise rejects.
|
|
92314
|
+
* It also rejects if the application shuts down first.
|
|
92315
|
+
* @beta
|
|
92316
|
+
*/
|
|
92317
|
+
static async setFormatsProvider(provider, options) {
|
|
92318
|
+
await this.quantityFormatter.runAndWaitForReload(() => {
|
|
92319
|
+
this._formatsProviderManager.setFormatsProvider(provider, options?.unitSystem);
|
|
92320
|
+
});
|
|
92321
|
+
}
|
|
92082
92322
|
/** @alpha */
|
|
92083
92323
|
static extensionAdmin = this._createExtensionAdmin();
|
|
92084
92324
|
/** Map of classFullName to EntityState class */
|
|
@@ -92849,6 +93089,25 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92849
93089
|
async generateElementMeshes(requestProps) {
|
|
92850
93090
|
return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelReadRpcInterface.getClientForRouting(this.routingContext.token).generateElementMeshes(this.getRpcProps(), requestProps);
|
|
92851
93091
|
}
|
|
93092
|
+
/** Constructs a point after validating raw ordinates, before JSON normalization can conceal NaN.
|
|
93093
|
+
* Omitted ordinates default to zero.
|
|
93094
|
+
* @throws IModelError with GeoServiceStatus.CSMapError if any supplied ordinate is non-finite.
|
|
93095
|
+
* @internal
|
|
93096
|
+
*/
|
|
93097
|
+
static getFiniteGeoPoint(props) {
|
|
93098
|
+
const coordinates = Array.isArray(props) ? props : [props.x, props.y, props.z];
|
|
93099
|
+
for (let index = 0; index < 3; ++index) {
|
|
93100
|
+
// RPC marshaling converts NaN and infinities to null; reject null rather than defaulting it to zero.
|
|
93101
|
+
if (!Number.isFinite(coordinates[index] === undefined ? 0 : coordinates[index])) {
|
|
93102
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(loggerCategory, "Non-finite coordinate returned by geographic conversion", {
|
|
93103
|
+
ordinateIndex: index,
|
|
93104
|
+
coordinates: coordinates.map((ordinate) => String(ordinate)),
|
|
93105
|
+
});
|
|
93106
|
+
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.GeoServiceStatus.CSMapError, "Non-finite coordinate returned by geographic conversion");
|
|
93107
|
+
}
|
|
93108
|
+
}
|
|
93109
|
+
return _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3d.fromJSON(props);
|
|
93110
|
+
}
|
|
92852
93111
|
/** Convert a point in this iModel's Spatial coordinates to a [[Cartographic]] using the Geographic location services for this IModelConnection.
|
|
92853
93112
|
* @param spatial A point in the iModel's spatial coordinates
|
|
92854
93113
|
* @param result If defined, use this for output
|
|
@@ -92867,7 +93126,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92867
93126
|
const geoServiceStatus = (0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.mapToGeoServiceStatus)(coordResponse.geoCoords[0].s);
|
|
92868
93127
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(geoServiceStatus, "Error converting spatial to cartographic");
|
|
92869
93128
|
}
|
|
92870
|
-
const longLatHeight =
|
|
93129
|
+
const longLatHeight = IModelConnection.getFiniteGeoPoint(coordResponse.geoCoords[0].p); // x is longitude in degrees, y is latitude in degrees, z is height in meters...
|
|
92871
93130
|
return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromDegrees({ longitude: longLatHeight.x, latitude: longLatHeight.y, height: longLatHeight.z }, result);
|
|
92872
93131
|
}
|
|
92873
93132
|
/** Convert a point in this iModel's Spatial coordinates to a [[Cartographic]] using the Geographic location services for this IModelConnection or [[IModel.ecefLocation]].
|
|
@@ -92921,7 +93180,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92921
93180
|
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.NoGCSDefined:
|
|
92922
93181
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.GeoServiceStatus.NoGeoLocation, "iModel is not GeoLocated");
|
|
92923
93182
|
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.Success:
|
|
92924
|
-
const llh =
|
|
93183
|
+
const llh = IModelConnection.getFiniteGeoPoint(coord.p);
|
|
92925
93184
|
return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromDegrees({ longitude: llh.x, latitude: llh.y, height: llh.z });
|
|
92926
93185
|
default:
|
|
92927
93186
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError((0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.mapToGeoServiceStatus)(coord.s), "Error converting spatial to cartographic");
|
|
@@ -92948,7 +93207,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92948
93207
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(geoServiceStatus, "Error converting cartographic to spatial");
|
|
92949
93208
|
}
|
|
92950
93209
|
result = result ? result : _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3d.createZero();
|
|
92951
|
-
result.
|
|
93210
|
+
result.setFrom(IModelConnection.getFiniteGeoPoint(coordResponse.iModelCoords[0].p));
|
|
92952
93211
|
return result;
|
|
92953
93212
|
}
|
|
92954
93213
|
/** Convert a [Cartographic]($common) to a point in this iModel's Spatial coordinates using a [[GeoConverter]] or[[IModel.ecefLocation]($common).
|
|
@@ -92998,7 +93257,7 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92998
93257
|
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.NoGCSDefined:
|
|
92999
93258
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.GeoServiceStatus.NoGeoLocation, "iModel is not GeoLocated");
|
|
93000
93259
|
case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.Success:
|
|
93001
|
-
return
|
|
93260
|
+
return IModelConnection.getFiniteGeoPoint(coord.p);
|
|
93002
93261
|
default:
|
|
93003
93262
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError((0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.mapToGeoServiceStatus)(coord.s), "Error converting cartographic to spatial");
|
|
93004
93263
|
}
|
|
@@ -93334,7 +93593,7 @@ class SnapshotConnection extends IModelConnection {
|
|
|
93334
93593
|
/** @internal */
|
|
93335
93594
|
async getDictionaryModel() {
|
|
93336
93595
|
const res = await this._iModel.models.queryProps({ from: "bis.DictionaryModel", wantPrivate: true });
|
|
93337
|
-
if (res.length !== 1
|
|
93596
|
+
if (res.length !== 1)
|
|
93338
93597
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadModel, "bis.DictionaryModel");
|
|
93339
93598
|
return res[0].id;
|
|
93340
93599
|
}
|
|
@@ -96869,28 +97128,21 @@ class RealityDataSourceCesiumIonAssetImpl {
|
|
|
96869
97128
|
// The following is only if the reality data is not stored on PW Context Share.
|
|
96870
97129
|
const cesiumAsset = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.CesiumIonAssetProvider.parseCesiumUrl(url);
|
|
96871
97130
|
if (cesiumAsset) {
|
|
96872
|
-
let
|
|
96873
|
-
let resolvedUrl;
|
|
97131
|
+
let endpoint;
|
|
96874
97132
|
if (cesiumAsset.key) {
|
|
96875
97133
|
// Legacy key-bearing URL (e.g. persisted saved view) - authenticate directly with the embedded Ion key.
|
|
96876
97134
|
// Such URLs are intentionally exempt from the cesiumAccess-over-cesiumIonKey precedence rule and are not
|
|
96877
97135
|
// routed through a registered CesiumAccessClient; see [[CesiumAccessClient]].
|
|
96878
|
-
const
|
|
96879
|
-
|
|
96880
|
-
resolvedUrl = tokenAndUrl.url;
|
|
97136
|
+
const result = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessTokenAndEndpointUrl)(`${cesiumAsset.id}`, cesiumAsset.key);
|
|
97137
|
+
endpoint = "endpoint" in result ? result.endpoint : undefined;
|
|
96881
97138
|
}
|
|
96882
97139
|
else {
|
|
96883
97140
|
// delegate to the registered CesiumAccessClient
|
|
96884
|
-
|
|
96885
|
-
const endpoint = await client.getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);
|
|
96886
|
-
if (endpoint) {
|
|
96887
|
-
resolvedToken = endpoint.accessToken;
|
|
96888
|
-
resolvedUrl = endpoint.url;
|
|
96889
|
-
}
|
|
97141
|
+
endpoint = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessClient)().getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);
|
|
96890
97142
|
}
|
|
96891
|
-
if (
|
|
96892
|
-
url =
|
|
96893
|
-
this._requestAuthorization = `Bearer ${
|
|
97143
|
+
if (endpoint?.url && endpoint.accessToken) {
|
|
97144
|
+
url = endpoint.url;
|
|
97145
|
+
this._requestAuthorization = `Bearer ${endpoint.accessToken}`;
|
|
96894
97146
|
}
|
|
96895
97147
|
}
|
|
96896
97148
|
// The following is only if the reality data is not stored on PW Context Share.
|
|
@@ -116876,6 +117128,7 @@ const extensionExports = {
|
|
|
116876
117128
|
imageBufferToPngDataUrl: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.imageBufferToPngDataUrl,
|
|
116877
117129
|
imageElementFromImageSource: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.imageElementFromImageSource,
|
|
116878
117130
|
imageElementFromUrl: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.imageElementFromUrl,
|
|
117131
|
+
isPersisted: _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.isPersisted,
|
|
116879
117132
|
queryTerrainElevationOffset: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.queryTerrainElevationOffset,
|
|
116880
117133
|
readElementGraphics: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.readElementGraphics,
|
|
116881
117134
|
readGltfGraphics: _core_frontend__WEBPACK_IMPORTED_MODULE_1__.readGltfGraphics,
|
|
@@ -153996,9 +154249,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
153996
154249
|
/* harmony import */ var _common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/FrontendLoggerCategory */ "../../core/frontend/lib/esm/common/FrontendLoggerCategory.js");
|
|
153997
154250
|
/* harmony import */ var _DisplayStyleState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../DisplayStyleState */ "../../core/frontend/lib/esm/DisplayStyleState.js");
|
|
153998
154251
|
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
153999
|
-
/* harmony import */ var
|
|
154000
|
-
/* harmony import */ var
|
|
154001
|
-
/* harmony import */ var
|
|
154252
|
+
/* harmony import */ var _IModelConnection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../IModelConnection */ "../../core/frontend/lib/esm/IModelConnection.js");
|
|
154253
|
+
/* harmony import */ var _RealityDataSource__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../RealityDataSource */ "../../core/frontend/lib/esm/RealityDataSource.js");
|
|
154254
|
+
/* harmony import */ var _common_internal_render_MeshPrimitives__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../common/internal/render/MeshPrimitives */ "../../core/frontend/lib/esm/common/internal/render/MeshPrimitives.js");
|
|
154255
|
+
/* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
|
|
154002
154256
|
/*---------------------------------------------------------------------------------------------
|
|
154003
154257
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
154004
154258
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -154017,6 +154271,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
154017
154271
|
|
|
154018
154272
|
|
|
154019
154273
|
|
|
154274
|
+
|
|
154020
154275
|
const scratchRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.create();
|
|
154021
154276
|
const scratchWorldFrustum = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Frustum();
|
|
154022
154277
|
function compareSourceKeys(lhs, rhs) {
|
|
@@ -154080,7 +154335,7 @@ class OrbitGtTileTreeParams {
|
|
|
154080
154335
|
id;
|
|
154081
154336
|
modelId;
|
|
154082
154337
|
iModel;
|
|
154083
|
-
get priority() { return
|
|
154338
|
+
get priority() { return _tile_internal__WEBPACK_IMPORTED_MODULE_11__.TileLoadPriority.Context; }
|
|
154084
154339
|
constructor(rdSourceKey, iModel, modelId, location) {
|
|
154085
154340
|
this.location = location;
|
|
154086
154341
|
const key = rdSourceKey;
|
|
@@ -154089,7 +154344,7 @@ class OrbitGtTileTreeParams {
|
|
|
154089
154344
|
this.iModel = iModel;
|
|
154090
154345
|
}
|
|
154091
154346
|
}
|
|
154092
|
-
class OrbitGtRootTile extends
|
|
154347
|
+
class OrbitGtRootTile extends _tile_internal__WEBPACK_IMPORTED_MODULE_11__.Tile {
|
|
154093
154348
|
_loadChildren(_resolve, _reject) { }
|
|
154094
154349
|
async requestContent(_isCanceled) { return undefined; }
|
|
154095
154350
|
get channel() { return _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.tileAdmin.channels.getForHttp("itwinjs-orbitgit"); }
|
|
@@ -154162,7 +154417,7 @@ class TileSortProjector {
|
|
|
154162
154417
|
coordinate.z = point.z;
|
|
154163
154418
|
}
|
|
154164
154419
|
}
|
|
154165
|
-
class OrbitGtTileGraphic extends
|
|
154420
|
+
class OrbitGtTileGraphic extends _tile_internal__WEBPACK_IMPORTED_MODULE_11__.TileUsageMarker {
|
|
154166
154421
|
graphic;
|
|
154167
154422
|
constructor(graphic, viewport, time) {
|
|
154168
154423
|
super();
|
|
@@ -154173,7 +154428,7 @@ class OrbitGtTileGraphic extends _tile_internal__WEBPACK_IMPORTED_MODULE_10__.Ti
|
|
|
154173
154428
|
this.graphic[Symbol.dispose]();
|
|
154174
154429
|
}
|
|
154175
154430
|
}
|
|
154176
|
-
class OrbitGtTileTree extends
|
|
154431
|
+
class OrbitGtTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_11__.TileTree {
|
|
154177
154432
|
_dataManager;
|
|
154178
154433
|
_centerOffset;
|
|
154179
154434
|
_ecefTransform;
|
|
@@ -154189,7 +154444,7 @@ class OrbitGtTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_10__.TileT
|
|
|
154189
154444
|
this._dataManager = _dataManager;
|
|
154190
154445
|
this._centerOffset = _centerOffset;
|
|
154191
154446
|
this._ecefTransform = _ecefTransform;
|
|
154192
|
-
this._layerHandler = new
|
|
154447
|
+
this._layerHandler = new _tile_internal__WEBPACK_IMPORTED_MODULE_11__.LayerTileTreeHandler(this);
|
|
154193
154448
|
this._tileParams = { contentId: "0", range: cloudRange, maximumSize: 256 };
|
|
154194
154449
|
this.rootTile = new OrbitGtRootTile(this._tileParams, this);
|
|
154195
154450
|
}
|
|
@@ -154259,7 +154514,7 @@ class OrbitGtTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_10__.TileT
|
|
|
154259
154514
|
range.high.addInPlace(this._centerOffset);
|
|
154260
154515
|
const qParams = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QParams3d.fromRange(range, undefined, (tile.points8 != null) ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Quantization.rangeScale8 : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Quantization.rangeScale16);
|
|
154261
154516
|
const featureTable = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FeatureTable(1, this.modelId, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.BatchType.Primary);
|
|
154262
|
-
const features = new
|
|
154517
|
+
const features = new _common_internal_render_MeshPrimitives__WEBPACK_IMPORTED_MODULE_10__.Mesh.Features(featureTable);
|
|
154263
154518
|
const system = _IModelApp__WEBPACK_IMPORTED_MODULE_7__.IModelApp.renderSystem;
|
|
154264
154519
|
const voxelSize = (range.high.x - range.low.x) / 64;
|
|
154265
154520
|
features.add(new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Feature(this.modelId), 1);
|
|
@@ -154311,16 +154566,16 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
|
|
|
154311
154566
|
return 0;
|
|
154312
154567
|
// The backend always resolves the vertical datum id. Convert against the iModel's own datum.
|
|
154313
154568
|
let source;
|
|
154314
|
-
const
|
|
154315
|
-
switch (
|
|
154569
|
+
const verticalCRS = iModel.geographicCoordinateSystem?.verticalCRS;
|
|
154570
|
+
switch (verticalCRS?.id) {
|
|
154316
154571
|
// Pair GEOID with a WGS84 horizontal CRS (EPSG:4326).
|
|
154317
154572
|
case "GEOID":
|
|
154318
|
-
source = { horizontalCRS: { epsg: 4326 }, verticalCRS:
|
|
154573
|
+
source = { horizontalCRS: { epsg: 4326 }, verticalCRS: verticalCRS.toJSON() };
|
|
154319
154574
|
break;
|
|
154320
154575
|
// Native rejects NAVD88 and NGVD29 with WGS84; pair them with NAD83 (EPSG:4269).
|
|
154321
154576
|
case "NAVD88":
|
|
154322
154577
|
case "NGVD29":
|
|
154323
|
-
source = { horizontalCRS: { epsg: 4269 }, verticalCRS:
|
|
154578
|
+
source = { horizontalCRS: { epsg: 4269 }, verticalCRS: verticalCRS.toJSON() };
|
|
154324
154579
|
break;
|
|
154325
154580
|
default:
|
|
154326
154581
|
return 0;
|
|
@@ -154334,7 +154589,17 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
|
|
|
154334
154589
|
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_5__.FrontendLoggerCategory.RealityData, `Failed to compute orthometric height correction for point cloud (status ${response.iModelCoords[0].s}); heights will be treated as ellipsoidal`);
|
|
154335
154590
|
return 0;
|
|
154336
154591
|
}
|
|
154337
|
-
|
|
154592
|
+
try {
|
|
154593
|
+
const converted = _IModelConnection__WEBPACK_IMPORTED_MODULE_8__.IModelConnection.getFiniteGeoPoint(response.iModelCoords[0].p);
|
|
154594
|
+
const shift = converted.z - heightAsEllipsoidalDbZ;
|
|
154595
|
+
if (!Number.isFinite(shift))
|
|
154596
|
+
throw new Error("Non-finite orthometric height correction");
|
|
154597
|
+
return shift;
|
|
154598
|
+
}
|
|
154599
|
+
catch {
|
|
154600
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_5__.FrontendLoggerCategory.RealityData, "Non-finite orthometric height correction for point cloud; heights will be treated as ellipsoidal");
|
|
154601
|
+
return 0;
|
|
154602
|
+
}
|
|
154338
154603
|
}
|
|
154339
154604
|
catch (err) {
|
|
154340
154605
|
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_5__.FrontendLoggerCategory.RealityData, err);
|
|
@@ -154364,7 +154629,7 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
|
|
|
154364
154629
|
return isValidSASToken(props.sasToken);
|
|
154365
154630
|
}
|
|
154366
154631
|
async function createOrbitGtTileTree(rdSourceKey, iModel, modelId) {
|
|
154367
|
-
const rdSource = await
|
|
154632
|
+
const rdSource = await _RealityDataSource__WEBPACK_IMPORTED_MODULE_9__.RealityDataSource.fromKey(rdSourceKey, iModel.iTwinId);
|
|
154368
154633
|
const isContextShare = rdSourceKey.provider === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataProvider.ContextShare;
|
|
154369
154634
|
const isTilestUrl = rdSourceKey.provider === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataProvider.TilesetUrl;
|
|
154370
154635
|
let blobStringUrl;
|
|
@@ -154383,7 +154648,7 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
|
|
|
154383
154648
|
blobStringUrl = rdSourceKey.id;
|
|
154384
154649
|
}
|
|
154385
154650
|
else {
|
|
154386
|
-
const orbitGtBlobProps =
|
|
154651
|
+
const orbitGtBlobProps = _RealityDataSource__WEBPACK_IMPORTED_MODULE_9__.RealityDataSource.createOrbitGtBlobPropsFromKey(rdSourceKey);
|
|
154387
154652
|
if (orbitGtBlobProps === undefined)
|
|
154388
154653
|
return undefined;
|
|
154389
154654
|
if (!isValidOrbitGtBlobProps(orbitGtBlobProps))
|
|
@@ -154472,7 +154737,7 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
|
|
|
154472
154737
|
/** Supplies a reality data [[TileTree]] from a URL. May be associated with a persistent [[GeometricModelState]], or attached at run-time via a [[ContextOrbitGtState]].
|
|
154473
154738
|
* Exported strictly for tests.
|
|
154474
154739
|
*/
|
|
154475
|
-
class OrbitGtTreeReference extends
|
|
154740
|
+
class OrbitGtTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_11__.RealityModelTileTree.Reference {
|
|
154476
154741
|
treeOwner;
|
|
154477
154742
|
_rdSourceKey;
|
|
154478
154743
|
_modelId;
|
|
@@ -154485,11 +154750,11 @@ class OrbitGtTreeReference extends _tile_internal__WEBPACK_IMPORTED_MODULE_10__.
|
|
|
154485
154750
|
this._rdSourceKey = props.rdSourceKey;
|
|
154486
154751
|
}
|
|
154487
154752
|
else if (props.orbitGtBlob) {
|
|
154488
|
-
this._rdSourceKey =
|
|
154753
|
+
this._rdSourceKey = _RealityDataSource__WEBPACK_IMPORTED_MODULE_9__.RealityDataSource.createKeyFromOrbitGtBlobProps(props.orbitGtBlob);
|
|
154489
154754
|
}
|
|
154490
154755
|
else {
|
|
154491
154756
|
// TODO: Maybe we should throw an exception
|
|
154492
|
-
this._rdSourceKey =
|
|
154757
|
+
this._rdSourceKey = _RealityDataSource__WEBPACK_IMPORTED_MODULE_9__.RealityDataSource.createKeyFromBlobUrl("", _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataProvider.OrbitGtBlob, _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.RealityDataFormat.OPC);
|
|
154493
154758
|
}
|
|
154494
154759
|
// ###TODO find compatible model Id
|
|
154495
154760
|
let modelId = props.modelId;
|
|
@@ -161177,6 +161442,161 @@ class BaseUnitFormattingSettingsProvider {
|
|
|
161177
161442
|
}
|
|
161178
161443
|
|
|
161179
161444
|
|
|
161445
|
+
/***/ },
|
|
161446
|
+
|
|
161447
|
+
/***/ "../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js"
|
|
161448
|
+
/*!*******************************************************************************************!*\
|
|
161449
|
+
!*** ../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js ***!
|
|
161450
|
+
\*******************************************************************************************/
|
|
161451
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
161452
|
+
|
|
161453
|
+
"use strict";
|
|
161454
|
+
__webpack_require__.r(__webpack_exports__);
|
|
161455
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
161456
|
+
/* harmony export */ FormatsProviderReloadCoordinator: () => (/* binding */ FormatsProviderReloadCoordinator),
|
|
161457
|
+
/* harmony export */ ReloadSupersededError: () => (/* binding */ ReloadSupersededError)
|
|
161458
|
+
/* harmony export */ });
|
|
161459
|
+
/*---------------------------------------------------------------------------------------------
|
|
161460
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
161461
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
161462
|
+
*--------------------------------------------------------------------------------------------*/
|
|
161463
|
+
/** @internal */
|
|
161464
|
+
class ReloadSupersededError extends Error {
|
|
161465
|
+
constructor() {
|
|
161466
|
+
super("QuantityFormatter reload was superseded by a newer request.");
|
|
161467
|
+
this.name = "ReloadSupersededError";
|
|
161468
|
+
}
|
|
161469
|
+
}
|
|
161470
|
+
/**
|
|
161471
|
+
* Serializes formatting reloads and resolves or rejects the caller waiting for formatting to become ready.
|
|
161472
|
+
* @internal
|
|
161473
|
+
*/
|
|
161474
|
+
class FormatsProviderReloadCoordinator {
|
|
161475
|
+
_host;
|
|
161476
|
+
_disposedError;
|
|
161477
|
+
_reloadInFlight = false;
|
|
161478
|
+
_pendingReload;
|
|
161479
|
+
_pendingFormatsChange;
|
|
161480
|
+
_reloadCaller;
|
|
161481
|
+
_isDisposed = false;
|
|
161482
|
+
constructor(_host, _disposedError) {
|
|
161483
|
+
this._host = _host;
|
|
161484
|
+
this._disposedError = _disposedError;
|
|
161485
|
+
}
|
|
161486
|
+
dispose() {
|
|
161487
|
+
if (this._isDisposed)
|
|
161488
|
+
return;
|
|
161489
|
+
this._isDisposed = true;
|
|
161490
|
+
this._pendingReload = undefined;
|
|
161491
|
+
this._pendingFormatsChange = undefined;
|
|
161492
|
+
this._rejectReloadCaller(this._disposedError);
|
|
161493
|
+
}
|
|
161494
|
+
/**
|
|
161495
|
+
* Runs an action that schedules a reload and waits for the reload queue to drain.
|
|
161496
|
+
* A newer call rejects an older call that is still waiting.
|
|
161497
|
+
*/
|
|
161498
|
+
async runAndWaitForReload(action) {
|
|
161499
|
+
if (this._isDisposed)
|
|
161500
|
+
throw this._disposedError;
|
|
161501
|
+
let caller;
|
|
161502
|
+
const reload = new Promise((resolve, reject) => {
|
|
161503
|
+
caller = { resolve, reject };
|
|
161504
|
+
});
|
|
161505
|
+
this._rejectReloadCaller(new ReloadSupersededError());
|
|
161506
|
+
this._reloadCaller = caller;
|
|
161507
|
+
try {
|
|
161508
|
+
action();
|
|
161509
|
+
}
|
|
161510
|
+
catch (error) {
|
|
161511
|
+
if (this._reloadCaller === caller)
|
|
161512
|
+
this._reloadCaller = undefined;
|
|
161513
|
+
throw error;
|
|
161514
|
+
}
|
|
161515
|
+
await reload;
|
|
161516
|
+
}
|
|
161517
|
+
/**
|
|
161518
|
+
* Runs a reload now, or queues it if one is already running.
|
|
161519
|
+
* 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.
|
|
161520
|
+
* If a reload is already running, this method returns immediately; use [[runAndWaitForReload]] when the caller must wait for completion.
|
|
161521
|
+
* The waiting caller is rejected if any reload fails before the queue drains.
|
|
161522
|
+
*/
|
|
161523
|
+
async scheduleReload(intent) {
|
|
161524
|
+
if (this._isDisposed)
|
|
161525
|
+
return;
|
|
161526
|
+
if (this._reloadInFlight) {
|
|
161527
|
+
if (intent.scope === "formatsChanged")
|
|
161528
|
+
this._pendingFormatsChange = mergeFormatsChanges(this._pendingFormatsChange, intent);
|
|
161529
|
+
else
|
|
161530
|
+
this._pendingReload = intent;
|
|
161531
|
+
return;
|
|
161532
|
+
}
|
|
161533
|
+
this._reloadInFlight = true;
|
|
161534
|
+
let failure;
|
|
161535
|
+
let current = intent;
|
|
161536
|
+
while (current) {
|
|
161537
|
+
try {
|
|
161538
|
+
this._host.startReload();
|
|
161539
|
+
await this._host.executeReload(current);
|
|
161540
|
+
if (this._stopAfterDisposal())
|
|
161541
|
+
return;
|
|
161542
|
+
current = this._takePendingReload();
|
|
161543
|
+
if (!current) {
|
|
161544
|
+
await this._host.finalizeReload();
|
|
161545
|
+
if (this._stopAfterDisposal())
|
|
161546
|
+
return;
|
|
161547
|
+
current = this._takePendingReload();
|
|
161548
|
+
}
|
|
161549
|
+
}
|
|
161550
|
+
catch (error) {
|
|
161551
|
+
if (this._stopAfterDisposal())
|
|
161552
|
+
return;
|
|
161553
|
+
// Keep draining so queued work still runs, but report the failure to the waiting caller.
|
|
161554
|
+
this._host.handleReloadFailure(error);
|
|
161555
|
+
failure = { error };
|
|
161556
|
+
current = this._takePendingReload();
|
|
161557
|
+
}
|
|
161558
|
+
}
|
|
161559
|
+
this._reloadInFlight = false;
|
|
161560
|
+
if (failure)
|
|
161561
|
+
this._rejectReloadCaller(failure.error);
|
|
161562
|
+
else
|
|
161563
|
+
this._resolveReloadCaller();
|
|
161564
|
+
}
|
|
161565
|
+
_stopAfterDisposal() {
|
|
161566
|
+
if (!this._isDisposed)
|
|
161567
|
+
return false;
|
|
161568
|
+
this._reloadInFlight = false;
|
|
161569
|
+
return true;
|
|
161570
|
+
}
|
|
161571
|
+
_takePendingReload() {
|
|
161572
|
+
const next = this._pendingFormatsChange ?? this._pendingReload;
|
|
161573
|
+
if (next === this._pendingFormatsChange)
|
|
161574
|
+
this._pendingFormatsChange = undefined;
|
|
161575
|
+
else
|
|
161576
|
+
this._pendingReload = undefined;
|
|
161577
|
+
return next;
|
|
161578
|
+
}
|
|
161579
|
+
_resolveReloadCaller() {
|
|
161580
|
+
const caller = this._reloadCaller;
|
|
161581
|
+
this._reloadCaller = undefined;
|
|
161582
|
+
caller?.resolve();
|
|
161583
|
+
}
|
|
161584
|
+
_rejectReloadCaller(error) {
|
|
161585
|
+
const caller = this._reloadCaller;
|
|
161586
|
+
this._reloadCaller = undefined;
|
|
161587
|
+
caller?.reject(error);
|
|
161588
|
+
}
|
|
161589
|
+
}
|
|
161590
|
+
function mergeFormatsChanges(pending, next) {
|
|
161591
|
+
if (!pending)
|
|
161592
|
+
return next;
|
|
161593
|
+
const pendingNames = pending.args.formatsChanged;
|
|
161594
|
+
const nextNames = next.args.formatsChanged;
|
|
161595
|
+
const formatsChanged = pendingNames === "all" || nextNames === "all" ? "all" : [...new Set([...pendingNames, ...nextNames])];
|
|
161596
|
+
return { scope: "formatsChanged", args: { formatsChanged } };
|
|
161597
|
+
}
|
|
161598
|
+
|
|
161599
|
+
|
|
161180
161600
|
/***/ },
|
|
161181
161601
|
|
|
161182
161602
|
/***/ "../../core/frontend/lib/esm/quantity-formatting/LocalUnitFormatProvider.js"
|
|
@@ -161285,6 +161705,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
161285
161705
|
/* harmony import */ var _common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/FrontendLoggerCategory */ "../../core/frontend/lib/esm/common/FrontendLoggerCategory.js");
|
|
161286
161706
|
/* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
|
|
161287
161707
|
/* harmony import */ var _AlternateUnitLabels__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AlternateUnitLabels */ "../../core/frontend/lib/esm/quantity-formatting/AlternateUnitLabels.js");
|
|
161708
|
+
/* harmony import */ var _FormatsProviderReloadCoordinator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FormatsProviderReloadCoordinator */ "../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js");
|
|
161288
161709
|
/*---------------------------------------------------------------------------------------------
|
|
161289
161710
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
161290
161711
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -161297,6 +161718,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
161297
161718
|
|
|
161298
161719
|
|
|
161299
161720
|
|
|
161721
|
+
|
|
161300
161722
|
// cSpell:ignore FORMATPROPS FORMATKEY ussurvey uscustomary USCUSTOM
|
|
161301
161723
|
/**
|
|
161302
161724
|
* Defines standard format types for tools that need to display measurements to user.
|
|
@@ -161331,7 +161753,12 @@ var QuantityType;
|
|
|
161331
161753
|
class AlternateUnitLabelsRegistry {
|
|
161332
161754
|
_alternateLabelRegistry = new Map();
|
|
161333
161755
|
addAlternateLabels(key, ...labels) {
|
|
161334
|
-
|
|
161756
|
+
let entry = this._alternateLabelRegistry.get(key);
|
|
161757
|
+
if (!entry) {
|
|
161758
|
+
entry = new Set();
|
|
161759
|
+
this._alternateLabelRegistry.set(key, entry);
|
|
161760
|
+
}
|
|
161761
|
+
labels.forEach((value) => entry.add(value));
|
|
161335
161762
|
}
|
|
161336
161763
|
constructor(defaultAlternates) {
|
|
161337
161764
|
if (defaultAlternates) {
|
|
@@ -161481,12 +161908,24 @@ class FormatsProviderManager {
|
|
|
161481
161908
|
}
|
|
161482
161909
|
get formatsProvider() { return this; }
|
|
161483
161910
|
set formatsProvider(formatsProvider) {
|
|
161911
|
+
this.setFormatsProvider(formatsProvider);
|
|
161912
|
+
}
|
|
161913
|
+
/**
|
|
161914
|
+
* Replaces the underlying formats provider and raises an event indicating that all formats changed.
|
|
161915
|
+
* @param formatsProvider The formats provider to use for subsequent format lookups.
|
|
161916
|
+
* @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`.
|
|
161917
|
+
* @internal
|
|
161918
|
+
*/
|
|
161919
|
+
setFormatsProvider(formatsProvider, impliedUnitSystem) {
|
|
161484
161920
|
this._removeProviderListener?.();
|
|
161485
161921
|
this._formatsProvider = formatsProvider;
|
|
161486
161922
|
this._removeProviderListener = this._formatsProvider.onFormatsChanged.addListener((args) => {
|
|
161487
161923
|
this.onFormatsChanged.raiseEvent(args);
|
|
161488
161924
|
});
|
|
161489
|
-
|
|
161925
|
+
const args = { formatsChanged: "all" };
|
|
161926
|
+
if (impliedUnitSystem !== undefined)
|
|
161927
|
+
args.impliedUnitSystem = impliedUnitSystem;
|
|
161928
|
+
this.onFormatsChanged.raiseEvent(args);
|
|
161490
161929
|
}
|
|
161491
161930
|
}
|
|
161492
161931
|
/** The QuantityFormatter class provides methods for formatting and parsing quantities. There are a set of standard quantity types
|
|
@@ -161567,10 +162006,13 @@ class QuantityFormatter {
|
|
|
161567
162006
|
_hasEverBeenReady = false;
|
|
161568
162007
|
_initializedPromise;
|
|
161569
162008
|
_resolveInitialized;
|
|
161570
|
-
|
|
161571
|
-
|
|
161572
|
-
|
|
162009
|
+
_emitSystemChangedOnReady = false;
|
|
162010
|
+
_isDisposed = false;
|
|
162011
|
+
_disposedError = new Error("QuantityFormatter was disposed before the reload completed.");
|
|
162012
|
+
_reloadCoordinator;
|
|
161573
162013
|
_removeFormatsProviderListener;
|
|
162014
|
+
_activeFormatSpecsTarget;
|
|
162015
|
+
_activeParserSpecsTarget;
|
|
161574
162016
|
/**
|
|
161575
162017
|
* constructor
|
|
161576
162018
|
* @param showMetricOrUnitSystem - Pass in `true` to show Metric formatted quantity values. Defaults to Imperial. To explicitly
|
|
@@ -161580,6 +162022,12 @@ class QuantityFormatter {
|
|
|
161580
162022
|
this._initializedPromise = new Promise((resolve) => {
|
|
161581
162023
|
this._resolveInitialized = resolve;
|
|
161582
162024
|
});
|
|
162025
|
+
this._reloadCoordinator = new _FormatsProviderReloadCoordinator__WEBPACK_IMPORTED_MODULE_5__.FormatsProviderReloadCoordinator({
|
|
162026
|
+
startReload: () => { this._isReady = false; },
|
|
162027
|
+
executeReload: async (intent) => this._executeReload(intent),
|
|
162028
|
+
finalizeReload: async () => this.finalizeReload(),
|
|
162029
|
+
handleReloadFailure: (error) => this._handleReloadFailure(error),
|
|
162030
|
+
}, this._disposedError);
|
|
161583
162031
|
if (undefined !== showMetricOrUnitSystem) {
|
|
161584
162032
|
if (typeof showMetricOrUnitSystem === "boolean")
|
|
161585
162033
|
this._activeUnitSystem = showMetricOrUnitSystem ? "metric" : "imperial";
|
|
@@ -161588,70 +162036,44 @@ class QuantityFormatter {
|
|
|
161588
162036
|
}
|
|
161589
162037
|
}
|
|
161590
162038
|
[Symbol.dispose]() {
|
|
162039
|
+
if (this._isDisposed)
|
|
162040
|
+
return;
|
|
162041
|
+
this._isDisposed = true;
|
|
162042
|
+
this._isReady = false;
|
|
162043
|
+
this._emitSystemChangedOnReady = false;
|
|
162044
|
+
this._reloadCoordinator.dispose();
|
|
161591
162045
|
if (this._removeFormatsProviderListener) {
|
|
161592
162046
|
this._removeFormatsProviderListener();
|
|
161593
162047
|
this._removeFormatsProviderListener = undefined;
|
|
161594
162048
|
}
|
|
161595
162049
|
}
|
|
162050
|
+
/** Runs an action that schedules a reload and waits for the reload queue to drain.
|
|
162051
|
+
* The most recent call wins. If another call is made before this reload queue drains, this call is rejected.
|
|
162052
|
+
* @internal
|
|
162053
|
+
*/
|
|
162054
|
+
async runAndWaitForReload(action) {
|
|
162055
|
+
return this._reloadCoordinator.runAndWaitForReload(action);
|
|
162056
|
+
}
|
|
161596
162057
|
/** Schedule an async reload. If no reload is in flight, runs immediately. If a reload is
|
|
161597
|
-
* already in flight, stores the intent as pending
|
|
161598
|
-
*
|
|
162058
|
+
* already in flight, stores the intent as pending. Pending format changes are merged and run before
|
|
162059
|
+
* the latest other pending intent. `finalizeReload()` fires only when the queue is fully drained.
|
|
161599
162060
|
*
|
|
161600
162061
|
* **Await semantics:** When a reload is already in flight, the returned promise resolves
|
|
161601
162062
|
* immediately *without* the requested reload having run. Callers that need to know when
|
|
161602
|
-
*
|
|
162063
|
+
* an explicitly triggered reload has actually completed should use [[runAndWaitForReload]].
|
|
161603
162064
|
*
|
|
161604
|
-
* Reload intents:
|
|
161605
|
-
* - `"full"` — rebuild entire registry + re-register provider listener (onInitialized, setUnitsProvider)
|
|
161606
|
-
* - `"formatsChanged"` — patch registry from provider + load maps (formatsChanged listener)
|
|
161607
|
-
* - `"activeSystem"` — reload format/parsing maps for current unit system (setActiveUnitSystem, reinitializeFormatAndParsingsMaps)
|
|
161608
162065
|
* @internal
|
|
161609
162066
|
*/
|
|
161610
162067
|
async scheduleReload(intent) {
|
|
161611
|
-
|
|
161612
|
-
|
|
161613
|
-
|
|
161614
|
-
|
|
161615
|
-
|
|
161616
|
-
this.
|
|
161617
|
-
|
|
161618
|
-
|
|
161619
|
-
try {
|
|
161620
|
-
await this._executeReload(intent);
|
|
161621
|
-
}
|
|
161622
|
-
catch (err) {
|
|
161623
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMessage(err));
|
|
161624
|
-
this._reloadInFlight = false;
|
|
161625
|
-
// If there's a pending reload, still try to run it
|
|
161626
|
-
if (this._pendingReload) {
|
|
161627
|
-
const next = this._pendingReload;
|
|
161628
|
-
this._pendingReload = undefined;
|
|
161629
|
-
return this.scheduleReload(next);
|
|
161630
|
-
}
|
|
161631
|
-
// Restore prior ready state so stale-but-usable specs remain accessible
|
|
161632
|
-
if (this._hasEverBeenReady) {
|
|
161633
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, "Reload failed — restoring previous ready state. Cached specs may be stale.");
|
|
161634
|
-
this._isReady = true;
|
|
161635
|
-
}
|
|
161636
|
-
return;
|
|
161637
|
-
}
|
|
161638
|
-
// Current reload succeeded — check if another was queued
|
|
161639
|
-
if (this._pendingReload) {
|
|
161640
|
-
const next = this._pendingReload;
|
|
161641
|
-
this._pendingReload = undefined;
|
|
161642
|
-
this._reloadInFlight = false;
|
|
161643
|
-
return this.scheduleReload(next);
|
|
161644
|
-
}
|
|
161645
|
-
// Queue is drained — finalize
|
|
161646
|
-
await this.finalizeReload();
|
|
161647
|
-
// A new reload may have been queued during the async finalizeReload window
|
|
161648
|
-
if (this._pendingReload) {
|
|
161649
|
-
const next = this._pendingReload;
|
|
161650
|
-
this._pendingReload = undefined;
|
|
161651
|
-
this._reloadInFlight = false;
|
|
161652
|
-
return this.scheduleReload(next);
|
|
162068
|
+
return this._reloadCoordinator.scheduleReload(intent);
|
|
162069
|
+
}
|
|
162070
|
+
_handleReloadFailure(error) {
|
|
162071
|
+
if (!this._isDisposed)
|
|
162072
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMessage(error));
|
|
162073
|
+
if (this._hasEverBeenReady && !this._isDisposed) {
|
|
162074
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, "Reload failed — restoring previous ready state. Cached specs may be stale.");
|
|
162075
|
+
this._isReady = true;
|
|
161653
162076
|
}
|
|
161654
|
-
this._reloadInFlight = false;
|
|
161655
162077
|
}
|
|
161656
162078
|
/** Execute the reload work for a given intent. All reload logic is centralized here.
|
|
161657
162079
|
* @internal
|
|
@@ -161660,47 +162082,51 @@ class QuantityFormatter {
|
|
|
161660
162082
|
switch (intent.scope) {
|
|
161661
162083
|
case "full":
|
|
161662
162084
|
await this._reloadCore();
|
|
162085
|
+
return;
|
|
162086
|
+
case "formatsChanged":
|
|
162087
|
+
await this._rebuildRegistryFromProvider(intent.args);
|
|
161663
162088
|
break;
|
|
161664
|
-
case "formatsChanged": {
|
|
161665
|
-
const { args } = intent;
|
|
161666
|
-
await this._rebuildRegistryFromProvider(args);
|
|
161667
|
-
if (args.impliedUnitSystem && args.impliedUnitSystem !== this._activeUnitSystem) {
|
|
161668
|
-
this._activeUnitSystem = args.impliedUnitSystem;
|
|
161669
|
-
}
|
|
161670
|
-
await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
|
|
161671
|
-
if (args.impliedUnitSystem) {
|
|
161672
|
-
this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
|
|
161673
|
-
}
|
|
161674
|
-
break;
|
|
161675
|
-
}
|
|
161676
|
-
case "activeSystem":
|
|
161677
|
-
await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
|
|
161678
|
-
if (intent.emitSystemChanged) {
|
|
161679
|
-
this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
|
|
161680
|
-
}
|
|
161681
|
-
break;
|
|
161682
162089
|
}
|
|
162090
|
+
// Build the active specs in temporary maps so readers keep using complete specs until the new ones are ready.
|
|
162091
|
+
const nextFormatSpecs = new Map();
|
|
162092
|
+
const nextParserSpecs = new Map();
|
|
162093
|
+
this._activeFormatSpecsTarget = nextFormatSpecs;
|
|
162094
|
+
this._activeParserSpecsTarget = nextParserSpecs;
|
|
162095
|
+
try {
|
|
162096
|
+
await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
|
|
162097
|
+
}
|
|
162098
|
+
finally {
|
|
162099
|
+
this._activeFormatSpecsTarget = undefined;
|
|
162100
|
+
this._activeParserSpecsTarget = undefined;
|
|
162101
|
+
}
|
|
162102
|
+
this._activeFormatSpecsByType = nextFormatSpecs;
|
|
162103
|
+
this._activeParserSpecsByType = nextParserSpecs;
|
|
161683
162104
|
}
|
|
161684
162105
|
/** Called when the reload queue is fully drained after a successful reload.
|
|
161685
162106
|
* Sets `isReady` to true, resolves `whenInitialized` (one-shot), and emits ready events.
|
|
161686
162107
|
* @internal
|
|
161687
162108
|
*/
|
|
161688
162109
|
async finalizeReload() {
|
|
162110
|
+
if (this._isDisposed)
|
|
162111
|
+
return;
|
|
161689
162112
|
// Phase 1: Let providers register async work
|
|
161690
162113
|
const collector = new _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.FormattingReadyCollector();
|
|
161691
162114
|
this.onBeforeFormattingReady.raiseEvent(collector);
|
|
161692
162115
|
await collector.awaitAll();
|
|
162116
|
+
if (this._isDisposed)
|
|
162117
|
+
return;
|
|
161693
162118
|
// Phase 2: Signal ready to consumers
|
|
161694
162119
|
this._isReady = true;
|
|
161695
162120
|
this._hasEverBeenReady = true;
|
|
161696
162121
|
this._resolveInitialized();
|
|
161697
162122
|
this.onFormattingReady.emit();
|
|
161698
|
-
|
|
162123
|
+
if (this._isDisposed)
|
|
162124
|
+
return;
|
|
162125
|
+
// Phase 3: Emit unit-system-changed if the unit system was changed since the last ready state, reporting the system that is now active.
|
|
161699
162126
|
// This fires after isReady === true so listeners can safely use the formatter.
|
|
161700
|
-
if (this.
|
|
161701
|
-
|
|
161702
|
-
this.
|
|
161703
|
-
this.onActiveFormattingUnitSystemChanged.emit(args);
|
|
162127
|
+
if (this._emitSystemChangedOnReady) {
|
|
162128
|
+
this._emitSystemChangedOnReady = false;
|
|
162129
|
+
this.onActiveFormattingUnitSystemChanged.emit({ system: this._activeUnitSystem });
|
|
161704
162130
|
}
|
|
161705
162131
|
}
|
|
161706
162132
|
getOverrideFormatPropsByQuantityType(quantityTypeKey, unitSystem) {
|
|
@@ -161771,8 +162197,8 @@ class QuantityFormatter {
|
|
|
161771
162197
|
async loadFormatAndParserSpec(quantityTypeDefinition, formatProps) {
|
|
161772
162198
|
const formatterSpec = await quantityTypeDefinition.generateFormatterSpec(formatProps, this.unitsProvider);
|
|
161773
162199
|
const parserSpec = await quantityTypeDefinition.generateParserSpec(formatProps, this.unitsProvider, this.alternateUnitLabelsProvider);
|
|
161774
|
-
this._activeFormatSpecsByType.set(quantityTypeDefinition.key, formatterSpec);
|
|
161775
|
-
this._activeParserSpecsByType.set(quantityTypeDefinition.key, parserSpec);
|
|
162200
|
+
(this._activeFormatSpecsTarget ?? this._activeFormatSpecsByType).set(quantityTypeDefinition.key, formatterSpec);
|
|
162201
|
+
(this._activeParserSpecsTarget ?? this._activeParserSpecsByType).set(quantityTypeDefinition.key, parserSpec);
|
|
161776
162202
|
}
|
|
161777
162203
|
// repopulate formatSpec and parserSpec entries using only default format
|
|
161778
162204
|
async loadDefaultFormatAndParserSpecForQuantity(typeKey) {
|
|
@@ -161829,17 +162255,20 @@ class QuantityFormatter {
|
|
|
161829
162255
|
* @internal
|
|
161830
162256
|
*/
|
|
161831
162257
|
async onInitialized() {
|
|
162258
|
+
// Register once, before the first reload, so provider changes made while a units-provider reload is running are not missed.
|
|
162259
|
+
this._removeFormatsProviderListener ??= _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.onFormatsChanged.addListener((args) => {
|
|
162260
|
+
if (args.impliedUnitSystem && args.impliedUnitSystem !== this._activeUnitSystem) {
|
|
162261
|
+
this._activeUnitSystem = args.impliedUnitSystem;
|
|
162262
|
+
this._emitSystemChangedOnReady = true;
|
|
162263
|
+
}
|
|
162264
|
+
void this.scheduleReload({ scope: "formatsChanged", args });
|
|
162265
|
+
});
|
|
161832
162266
|
await this.scheduleReload({ scope: "full" });
|
|
161833
162267
|
}
|
|
161834
162268
|
/** Core reload logic — does all async I/O and cache rebuilding without events or state management.
|
|
161835
162269
|
* @internal
|
|
161836
162270
|
*/
|
|
161837
162271
|
async _reloadCore() {
|
|
161838
|
-
// Remove any existing listener before re-registering to avoid duplicates when called via setUnitsProvider.
|
|
161839
|
-
if (this._removeFormatsProviderListener) {
|
|
161840
|
-
this._removeFormatsProviderListener();
|
|
161841
|
-
this._removeFormatsProviderListener = undefined;
|
|
161842
|
-
}
|
|
161843
162272
|
await this.initializeQuantityTypesRegistry();
|
|
161844
162273
|
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"]];
|
|
161845
162274
|
for (const entry of initialKoQs) {
|
|
@@ -161852,10 +162281,6 @@ class QuantityFormatter {
|
|
|
161852
162281
|
}
|
|
161853
162282
|
}
|
|
161854
162283
|
}
|
|
161855
|
-
// Register formatsProvider listener that triggers a queued reload when formats change
|
|
161856
|
-
this._removeFormatsProviderListener = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.onFormatsChanged.addListener((args) => {
|
|
161857
|
-
void this.scheduleReload({ scope: "formatsChanged", args });
|
|
161858
|
-
});
|
|
161859
162284
|
// initialize default format and parsing specs
|
|
161860
162285
|
await this.loadFormatAndParsingMapsForSystem();
|
|
161861
162286
|
}
|
|
@@ -161949,6 +162374,9 @@ class QuantityFormatter {
|
|
|
161949
162374
|
await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.resetToUseInternalUnitsProvider();
|
|
161950
162375
|
return;
|
|
161951
162376
|
}
|
|
162377
|
+
// Disposal can occur while the reload is awaited, so do not notify afterward.
|
|
162378
|
+
if (this._isDisposed)
|
|
162379
|
+
return;
|
|
161952
162380
|
this.onUnitsProviderChanged.emit();
|
|
161953
162381
|
}
|
|
161954
162382
|
/**
|
|
@@ -161988,7 +162416,11 @@ class QuantityFormatter {
|
|
|
161988
162416
|
this._overrideFormatPropsByUnitSystem = overrideFormatPropsByUnitSystem;
|
|
161989
162417
|
}
|
|
161990
162418
|
unitSystemKey && (this._activeUnitSystem = unitSystemKey);
|
|
161991
|
-
|
|
162419
|
+
if (fireUnitSystemChanged)
|
|
162420
|
+
this._emitSystemChangedOnReady = true;
|
|
162421
|
+
await this.scheduleReload({ scope: "activeSystem" });
|
|
162422
|
+
if (this._isDisposed)
|
|
162423
|
+
return;
|
|
161992
162424
|
_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin && startDefaultTool && await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.startDefaultTool();
|
|
161993
162425
|
}
|
|
161994
162426
|
/** Set the Active unit system to one of the supported types. This will asynchronously load the formatter and parser specs for the activated system. */
|
|
@@ -162001,7 +162433,10 @@ class QuantityFormatter {
|
|
|
162001
162433
|
if (this._activeUnitSystem === systemType)
|
|
162002
162434
|
return;
|
|
162003
162435
|
this._activeUnitSystem = systemType;
|
|
162004
|
-
|
|
162436
|
+
this._emitSystemChangedOnReady = true;
|
|
162437
|
+
await this.scheduleReload({ scope: "activeSystem" });
|
|
162438
|
+
if (this._isDisposed)
|
|
162439
|
+
return;
|
|
162005
162440
|
// allow settings provider to store the change
|
|
162006
162441
|
await this._unitFormattingSettingsProvider?.storeUnitSystemSetting({ system: systemType });
|
|
162007
162442
|
if (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin && restartActiveTool)
|
|
@@ -162126,7 +162561,7 @@ class QuantityFormatter {
|
|
|
162126
162561
|
const entry = this.quantityTypesRegistry.get(quantityKey);
|
|
162127
162562
|
if (!entry)
|
|
162128
162563
|
throw new Error(`Unable to find registered quantity type with key ${quantityKey}`);
|
|
162129
|
-
return entry.generateParserSpec(this.getFormatPropsByQuantityTypeEntryAndSystem(entry, requestedSystem), this.unitsProvider);
|
|
162564
|
+
return entry.generateParserSpec(this.getFormatPropsByQuantityTypeEntryAndSystem(entry, requestedSystem), this.unitsProvider, this.alternateUnitLabelsProvider);
|
|
162130
162565
|
}
|
|
162131
162566
|
/** Asynchronous Call to get a ParserSpec for a QuantityType.
|
|
162132
162567
|
* @param type One of the built-in quantity types supported.
|
|
@@ -162274,7 +162709,7 @@ class QuantityFormatter {
|
|
|
162274
162709
|
const { persistenceUnitName, formatProps, formatName } = props;
|
|
162275
162710
|
const persistenceUnitProps = await this._unitsProvider.findUnitByName(persistenceUnitName);
|
|
162276
162711
|
const format = await _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.Format.createFromJSON(formatName ?? "temp", this._unitsProvider, formatProps);
|
|
162277
|
-
return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, this._unitsProvider, persistenceUnitProps);
|
|
162712
|
+
return _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.ParserSpec.create(format, this._unitsProvider, persistenceUnitProps, this.alternateUnitLabelsProvider);
|
|
162278
162713
|
}
|
|
162279
162714
|
/**
|
|
162280
162715
|
* @beta
|
|
@@ -162816,6 +163251,9 @@ const UNIT_EXTRA_DATA = [
|
|
|
162816
163251
|
{ name: "Units.CUB_US_SURVEY_FT", altDisplayLabels: ["cf"] },
|
|
162817
163252
|
{ name: "Units.CUB_YRD", altDisplayLabels: ["cy"] },
|
|
162818
163253
|
{ name: "Units.CUB_M", altDisplayLabels: ["cm"] },
|
|
163254
|
+
// Velocity ( base unit m/s )
|
|
163255
|
+
{ name: "Units.KM_PER_HR", altDisplayLabels: ["kph", "kmh"] },
|
|
163256
|
+
{ name: "Units.MPH", altDisplayLabels: ["mph"] },
|
|
162819
163257
|
];
|
|
162820
163258
|
|
|
162821
163259
|
|
|
@@ -172723,6 +173161,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
172723
173161
|
/* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAccessTokenAndEndpointUrl),
|
|
172724
173162
|
/* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAssetUrl),
|
|
172725
173163
|
/* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumOSMBuildingsUrl),
|
|
173164
|
+
/* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainEndpointErrorDescription),
|
|
172726
173165
|
/* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainProvider),
|
|
172727
173166
|
/* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.getGcsConverterAvailable),
|
|
172728
173167
|
/* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
|
|
@@ -172738,6 +173177,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
172738
173177
|
/* harmony export */ readImdlContent: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readImdlContent),
|
|
172739
173178
|
/* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPntsColors),
|
|
172740
173179
|
/* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPointCloudTileContent),
|
|
173180
|
+
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.resolveCesiumTerrainEndpoint),
|
|
172741
173181
|
/* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_78__.tileTreeReferenceFromRenderGraphic),
|
|
172742
173182
|
/* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.tryGetOrigin)
|
|
172743
173183
|
/* harmony export */ });
|
|
@@ -173118,7 +173558,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
173118
173558
|
/* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* binding */ getCesiumAccessTokenAndEndpointUrl),
|
|
173119
173559
|
/* harmony export */ getCesiumAssetUrl: () => (/* binding */ getCesiumAssetUrl),
|
|
173120
173560
|
/* harmony export */ getCesiumOSMBuildingsUrl: () => (/* binding */ getCesiumOSMBuildingsUrl),
|
|
173121
|
-
/* harmony export */
|
|
173561
|
+
/* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* binding */ getCesiumTerrainEndpointErrorDescription),
|
|
173562
|
+
/* harmony export */ getCesiumTerrainProvider: () => (/* binding */ getCesiumTerrainProvider),
|
|
173563
|
+
/* harmony export */ resolveCesiumTerrainEndpoint: () => (/* binding */ resolveCesiumTerrainEndpoint)
|
|
173122
173564
|
/* harmony export */ });
|
|
173123
173565
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
173124
173566
|
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
@@ -173185,45 +173627,76 @@ function computeCesiumTokenTimeoutInterval(expiresAt) {
|
|
|
173185
173627
|
return cesiumTokenTimeoutInterval;
|
|
173186
173628
|
return _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeDuration.fromMilliseconds(Math.max(remainingMs, cesiumMinTokenTimeoutInterval.milliseconds));
|
|
173187
173629
|
}
|
|
173630
|
+
/** HTTP statuses Cesium Ion returns when the access token is invalid or lacks access to the asset. */
|
|
173631
|
+
const cesiumRejectedKeyStatuses = [401, 403, 404];
|
|
173188
173632
|
/** @internal */
|
|
173189
173633
|
async function getCesiumAccessTokenAndEndpointUrl(assetId, requestKey) {
|
|
173190
173634
|
if (undefined === requestKey) {
|
|
173191
173635
|
requestKey = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.tileAdmin.cesiumIonKey;
|
|
173192
173636
|
if (undefined === requestKey)
|
|
173193
|
-
return {};
|
|
173637
|
+
return { failure: "missingKey" };
|
|
173194
173638
|
}
|
|
173195
173639
|
const requestTemplate = `https://api.cesium.com/v1/assets/${assetId}/endpoint?access_token={CesiumRequestToken}`;
|
|
173196
173640
|
const apiUrl = requestTemplate.replace("{CesiumRequestToken}", requestKey);
|
|
173197
173641
|
try {
|
|
173198
173642
|
const apiResponse = await (0,_request_Request__WEBPACK_IMPORTED_MODULE_4__.request)(apiUrl, "json");
|
|
173199
|
-
|
|
173200
|
-
|
|
173201
|
-
|
|
173202
|
-
|
|
173203
|
-
return {
|
|
173643
|
+
const url = apiResponse?.url;
|
|
173644
|
+
const accessToken = apiResponse?.accessToken;
|
|
173645
|
+
if (typeof url !== "string" || !url || typeof accessToken !== "string" || !accessToken)
|
|
173646
|
+
return { failure: "unavailable" };
|
|
173647
|
+
return { endpoint: { accessToken, url } };
|
|
173648
|
+
}
|
|
173649
|
+
catch (err) {
|
|
173650
|
+
// Expected when offline or when the key is rejected - not a programming error.
|
|
173651
|
+
if (err instanceof _request_Request__WEBPACK_IMPORTED_MODULE_4__.HttpResponseError && cesiumRejectedKeyStatuses.includes(err.status))
|
|
173652
|
+
return { failure: "rejected" };
|
|
173653
|
+
return { failure: "unavailable" };
|
|
173654
|
+
}
|
|
173655
|
+
}
|
|
173656
|
+
const terrainFailureMessageKeys = {
|
|
173657
|
+
missingKey: "MissingCesiumToken",
|
|
173658
|
+
rejected: "InvalidCesiumToken",
|
|
173659
|
+
unavailable: "TerrainServiceUnavailable",
|
|
173660
|
+
};
|
|
173661
|
+
/** Returns the localized detail message to display when a Cesium terrain endpoint cannot be resolved.
|
|
173662
|
+
* @internal
|
|
173663
|
+
*/
|
|
173664
|
+
function getCesiumTerrainEndpointErrorDescription(failure) {
|
|
173665
|
+
return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.${terrainFailureMessageKeys[failure]}`);
|
|
173666
|
+
}
|
|
173667
|
+
/** Resolve the terrain asset endpoint. A custom [[CesiumAccessClient]] cannot report why it failed, so its
|
|
173668
|
+
* failures are reported as `unavailable`; the built-in Cesium Ion client reports the specific reason.
|
|
173669
|
+
* @internal
|
|
173670
|
+
*/
|
|
173671
|
+
async function resolveCesiumTerrainEndpoint(assetId, iTwinId) {
|
|
173672
|
+
const customClient = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.tileAdmin.cesiumAccess;
|
|
173673
|
+
if (!customClient)
|
|
173674
|
+
return getCesiumAccessTokenAndEndpointUrl(assetId);
|
|
173675
|
+
try {
|
|
173676
|
+
const endpoint = await customClient.getAssetEndpoint(assetId, iTwinId);
|
|
173677
|
+
return endpoint ? { endpoint } : { failure: "unavailable" };
|
|
173204
173678
|
}
|
|
173205
173679
|
catch {
|
|
173206
|
-
;
|
|
173207
|
-
return {};
|
|
173680
|
+
return { failure: "unavailable" };
|
|
173208
173681
|
}
|
|
173209
173682
|
}
|
|
173210
173683
|
let notifiedTerrainError = false;
|
|
173211
173684
|
// Notify - once per session - of failure to obtain Cesium terrain provider.
|
|
173212
|
-
function notifyTerrainError(
|
|
173685
|
+
function notifyTerrainError(failure) {
|
|
173213
173686
|
if (notifiedTerrainError)
|
|
173214
173687
|
return;
|
|
173215
173688
|
notifiedTerrainError = true;
|
|
173216
|
-
_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.displayMessage(_itwin_appui_abstract__WEBPACK_IMPORTED_MODULE_3__.MessageSeverity.Information, _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`),
|
|
173689
|
+
_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.displayMessage(_itwin_appui_abstract__WEBPACK_IMPORTED_MODULE_3__.MessageSeverity.Information, _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`), getCesiumTerrainEndpointErrorDescription(failure));
|
|
173217
173690
|
}
|
|
173218
173691
|
/** @internal */
|
|
173219
173692
|
async function getCesiumTerrainProvider(opts) {
|
|
173220
173693
|
const assetId = opts.dataSource || _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.CesiumTerrainAssetId.Default;
|
|
173221
|
-
const
|
|
173222
|
-
|
|
173223
|
-
|
|
173224
|
-
notifyTerrainError(_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.MissingCesiumToken`));
|
|
173694
|
+
const result = await resolveCesiumTerrainEndpoint(assetId, opts.iTwinId);
|
|
173695
|
+
if ("failure" in result) {
|
|
173696
|
+
notifyTerrainError(result.failure);
|
|
173225
173697
|
return undefined;
|
|
173226
173698
|
}
|
|
173699
|
+
const endpoint = result.endpoint;
|
|
173227
173700
|
// Resource paths (layer.json, tiles) are appended directly to the base URL, so ensure it ends with a slash.
|
|
173228
173701
|
const baseUrl = endpoint.url.endsWith("/") ? endpoint.url : `${endpoint.url}/`;
|
|
173229
173702
|
let layers;
|
|
@@ -173233,11 +173706,10 @@ async function getCesiumTerrainProvider(opts) {
|
|
|
173233
173706
|
layers = await (0,_request_Request__WEBPACK_IMPORTED_MODULE_4__.request)(layerUrl, "json", layerRequestOptions);
|
|
173234
173707
|
}
|
|
173235
173708
|
catch {
|
|
173236
|
-
|
|
173237
|
-
return undefined;
|
|
173709
|
+
layers = undefined;
|
|
173238
173710
|
}
|
|
173239
|
-
if (undefined === layers
|
|
173240
|
-
notifyTerrainError();
|
|
173711
|
+
if (undefined === layers?.tiles || undefined === layers.version) {
|
|
173712
|
+
notifyTerrainError("unavailable");
|
|
173241
173713
|
return undefined;
|
|
173242
173714
|
}
|
|
173243
173715
|
const tilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_8__.GeographicTilingScheme();
|
|
@@ -173567,9 +174039,7 @@ class CesiumTerrainProvider extends _internal__WEBPACK_IMPORTED_MODULE_8__.Terra
|
|
|
173567
174039
|
class CesiumIonClient {
|
|
173568
174040
|
async getAssetEndpoint(assetId, _iTwinId) {
|
|
173569
174041
|
const result = await getCesiumAccessTokenAndEndpointUrl(assetId);
|
|
173570
|
-
|
|
173571
|
-
return undefined;
|
|
173572
|
-
return { accessToken: result.token, url: result.url };
|
|
174042
|
+
return "endpoint" in result ? result.endpoint : undefined;
|
|
173573
174043
|
}
|
|
173574
174044
|
}
|
|
173575
174045
|
|
|
@@ -189589,7 +190059,14 @@ class ToolAdmin {
|
|
|
189589
190059
|
return false;
|
|
189590
190060
|
if (!await this.finishEditCommandForTxnOperation())
|
|
189591
190061
|
return false;
|
|
189592
|
-
|
|
190062
|
+
try {
|
|
190063
|
+
await imodel.txns.reverseSingleTxnAsync();
|
|
190064
|
+
return true;
|
|
190065
|
+
}
|
|
190066
|
+
catch (error) {
|
|
190067
|
+
await this.onTxnOperationError("undo", error);
|
|
190068
|
+
return false;
|
|
190069
|
+
}
|
|
189593
190070
|
}
|
|
189594
190071
|
/** Called to redo previous data button for primitive tools or undo last write operation. */
|
|
189595
190072
|
async doRedoOperation() {
|
|
@@ -189604,8 +190081,22 @@ class ToolAdmin {
|
|
|
189604
190081
|
return false;
|
|
189605
190082
|
if (!await this.finishEditCommandForTxnOperation())
|
|
189606
190083
|
return false;
|
|
189607
|
-
|
|
190084
|
+
try {
|
|
190085
|
+
await imodel.txns.reinstateTxnAsync();
|
|
190086
|
+
return true;
|
|
190087
|
+
}
|
|
190088
|
+
catch (error) {
|
|
190089
|
+
await this.onTxnOperationError("redo", error);
|
|
190090
|
+
return false;
|
|
190091
|
+
}
|
|
189608
190092
|
}
|
|
190093
|
+
/** Called when [[doUndoOperation]] or [[doRedoOperation]] fails to reverse or reinstate a Txn.
|
|
190094
|
+
* @param _operation The operation that failed.
|
|
190095
|
+
* @param _error The error thrown by [[BriefcaseTxns.reverseSingleTxnAsync]] or [[BriefcaseTxns.reinstateTxnAsync]].
|
|
190096
|
+
* @note Implementations should not throw. Any exception thrown by this method propagates to the caller of [[doUndoOperation]] or [[doRedoOperation]].
|
|
190097
|
+
* @beta
|
|
190098
|
+
*/
|
|
190099
|
+
async onTxnOperationError(_operation, _error) { }
|
|
189609
190100
|
onActiveToolChanged(tool, start) {
|
|
189610
190101
|
this.clearMotionPromises();
|
|
189611
190102
|
this.activeToolChanged.raiseEvent(tool, start);
|
|
@@ -206988,6 +207479,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
206988
207479
|
/* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
|
|
206989
207480
|
/* harmony export */ EllipticalArcApproximationOptions: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.EllipticalArcApproximationOptions),
|
|
206990
207481
|
/* harmony export */ EllipticalArcSampleMethod: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.EllipticalArcSampleMethod),
|
|
207482
|
+
/* harmony export */ ExteriorFractionSelector: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector),
|
|
206991
207483
|
/* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_113__.FacetFaceData),
|
|
206992
207484
|
/* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_115__.FacetIntersectOptions),
|
|
206993
207485
|
/* harmony export */ FacetLocationDetailPair: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_115__.FacetLocationDetailPair),
|
|
@@ -211269,6 +211761,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
211269
211761
|
/* harmony export */ CurveExtendOptions: () => (/* binding */ CurveExtendOptions)
|
|
211270
211762
|
/* harmony export */ });
|
|
211271
211763
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
211764
|
+
/* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
|
|
211272
211765
|
/*---------------------------------------------------------------------------------------------
|
|
211273
211766
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
211274
211767
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -211277,6 +211770,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
211277
211770
|
* @module Curve
|
|
211278
211771
|
*/
|
|
211279
211772
|
|
|
211773
|
+
|
|
211280
211774
|
/**
|
|
211281
211775
|
* Enumeration of condition for extending a curve beyond start or end point.
|
|
211282
211776
|
* * Not all CurvePrimitives support these modes.
|
|
@@ -211344,27 +211838,21 @@ class CurveExtendOptions {
|
|
|
211344
211838
|
* the sweep extended per `extendParam`.
|
|
211345
211839
|
*/
|
|
211346
211840
|
static resolveRadiansToValidSweepFraction(extendParam, radians, sweep) {
|
|
211347
|
-
|
|
211348
|
-
let fraction = sweep.radiansToSignedPeriodicFraction(radians);
|
|
211841
|
+
let fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Closer);
|
|
211349
211842
|
let isValid = true;
|
|
211350
|
-
if (!
|
|
211351
|
-
const fractionPeriod = sweep.fractionPeriod();
|
|
211843
|
+
if (!_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isIn01(fraction)) {
|
|
211352
211844
|
const mode0 = CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extendParam, 0);
|
|
211353
211845
|
const mode1 = CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extendParam, 1);
|
|
211354
|
-
if (mode0
|
|
211355
|
-
if (mode1 === CurveExtendMode.None) { // only extend to negative
|
|
211356
|
-
if (fraction > 1.0)
|
|
211357
|
-
fraction -= fractionPeriod;
|
|
211358
|
-
}
|
|
211359
|
-
}
|
|
211360
|
-
else if (mode1 !== CurveExtendMode.None) { // only extend to positive
|
|
211361
|
-
if (fraction < 0.0)
|
|
211362
|
-
fraction += fractionPeriod;
|
|
211363
|
-
}
|
|
211364
|
-
else { // no extension allowed
|
|
211846
|
+
if (mode0 === CurveExtendMode.None && mode1 === CurveExtendMode.None) {
|
|
211365
211847
|
fraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(fraction, 0, 1);
|
|
211366
211848
|
isValid = false;
|
|
211367
211849
|
}
|
|
211850
|
+
else if (mode1 === CurveExtendMode.None && mode0 !== CurveExtendMode.None) {
|
|
211851
|
+
fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Negative);
|
|
211852
|
+
}
|
|
211853
|
+
else if (mode0 === CurveExtendMode.None && mode1 !== CurveExtendMode.None) {
|
|
211854
|
+
fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Positive);
|
|
211855
|
+
}
|
|
211368
211856
|
}
|
|
211369
211857
|
return { fraction, isValid };
|
|
211370
211858
|
}
|
|
@@ -212720,7 +213208,22 @@ class CurveLocationDetail {
|
|
|
212720
213208
|
if (detailA) {
|
|
212721
213209
|
if (!detailB)
|
|
212722
213210
|
return detailA;
|
|
212723
|
-
|
|
213211
|
+
// tiebreakers (exact comparison!)
|
|
213212
|
+
if (detailA.a === detailB.a) {
|
|
213213
|
+
// prefer interior to exterior
|
|
213214
|
+
const isInteriorA = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isIn01(detailA.fraction);
|
|
213215
|
+
const isInteriorB = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isIn01(detailB.fraction);
|
|
213216
|
+
if (isInteriorA && !isInteriorB)
|
|
213217
|
+
return detailA;
|
|
213218
|
+
if (!isInteriorA && isInteriorB)
|
|
213219
|
+
return detailB;
|
|
213220
|
+
if (!isInteriorA && !isInteriorB) { // prefer exterior closer to [0,1]
|
|
213221
|
+
const distFrom01A = detailA.fraction < 0 ? -detailA.fraction : detailA.fraction - 1;
|
|
213222
|
+
const distFrom01B = detailB.fraction < 0 ? -detailB.fraction : detailB.fraction - 1;
|
|
213223
|
+
return (distFrom01A <= distFrom01B) ? detailA : detailB;
|
|
213224
|
+
}
|
|
213225
|
+
}
|
|
213226
|
+
return detailA.a < detailB.a ? detailA : detailB;
|
|
212724
213227
|
}
|
|
212725
213228
|
return detailB;
|
|
212726
213229
|
}
|
|
@@ -233811,7 +234314,8 @@ class Angle {
|
|
|
233811
234314
|
"use strict";
|
|
233812
234315
|
__webpack_require__.r(__webpack_exports__);
|
|
233813
234316
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
233814
|
-
/* harmony export */ AngleSweep: () => (/* binding */ AngleSweep)
|
|
234317
|
+
/* harmony export */ AngleSweep: () => (/* binding */ AngleSweep),
|
|
234318
|
+
/* harmony export */ ExteriorFractionSelector: () => (/* binding */ ExteriorFractionSelector)
|
|
233815
234319
|
/* harmony export */ });
|
|
233816
234320
|
/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
|
|
233817
234321
|
/* harmony import */ var _Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
|
|
@@ -233824,6 +234328,22 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
233824
234328
|
*/
|
|
233825
234329
|
|
|
233826
234330
|
|
|
234331
|
+
/**
|
|
234332
|
+
* Selector for how to convert an angle outside of a sweep to an exterior fraction.
|
|
234333
|
+
* @see [[AngleSweep.radiansToSignedPeriodicFractionStartEnd]], [[AngleSweep.angleToSignedPeriodicFraction]], [[AngleSweep.radiansToSignedPeriodicFraction]]
|
|
234334
|
+
* @public
|
|
234335
|
+
*/
|
|
234336
|
+
var ExteriorFractionSelector;
|
|
234337
|
+
(function (ExteriorFractionSelector) {
|
|
234338
|
+
/** Request [[Positive]] or [[Negative]] based on input sign. */
|
|
234339
|
+
ExteriorFractionSelector[ExteriorFractionSelector["SameSign"] = -1] = "SameSign";
|
|
234340
|
+
/** Request positive exterior fraction within one period of 1. */
|
|
234341
|
+
ExteriorFractionSelector[ExteriorFractionSelector["Positive"] = 0] = "Positive";
|
|
234342
|
+
/** Request negative exterior fraction within one period of 0. */
|
|
234343
|
+
ExteriorFractionSelector[ExteriorFractionSelector["Negative"] = 1] = "Negative";
|
|
234344
|
+
/** Request the period-shifted exterior fraction closest to [0,1]. */
|
|
234345
|
+
ExteriorFractionSelector[ExteriorFractionSelector["Closer"] = 2] = "Closer";
|
|
234346
|
+
})(ExteriorFractionSelector || (ExteriorFractionSelector = {}));
|
|
233827
234347
|
/**
|
|
233828
234348
|
* An `AngleSweep` is a pair of angles at start and end of an interval.
|
|
233829
234349
|
*
|
|
@@ -234208,9 +234728,12 @@ class AngleSweep {
|
|
|
234208
234728
|
* @param radians0 start angle of sweep (in radians)
|
|
234209
234729
|
* @param radians1 end angle of sweep (in radians)
|
|
234210
234730
|
* @param zeroSweepDefault return value when the sweep is empty (default 0)
|
|
234731
|
+
* @param selector how to handle an angle outside of the sweep. Default value is
|
|
234732
|
+
* [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
|
|
234733
|
+
* as the unbounded fraction `(radians - radians0) / (radians1 - radians0)`.
|
|
234211
234734
|
* @returns fraction, or `zeroSweepDefault` if the sweep is empty.
|
|
234212
234735
|
*/
|
|
234213
|
-
static radiansToSignedPeriodicFractionStartEnd(radians, radians0, radians1, zeroSweepDefault = 0.0) {
|
|
234736
|
+
static radiansToSignedPeriodicFractionStartEnd(radians, radians0, radians1, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
|
|
234214
234737
|
const sweep = radians1 - radians0;
|
|
234215
234738
|
if (_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.isAlmostEqualRadiansNoPeriodShift(0, sweep))
|
|
234216
234739
|
return zeroSweepDefault;
|
|
@@ -234228,7 +234751,14 @@ class AngleSweep {
|
|
|
234228
234751
|
return 1.0;
|
|
234229
234752
|
}
|
|
234230
234753
|
const fraction = (radians - radians0) / sweep;
|
|
234231
|
-
|
|
234754
|
+
let toNegativeFraction;
|
|
234755
|
+
if (selector === ExteriorFractionSelector.Negative)
|
|
234756
|
+
toNegativeFraction = true;
|
|
234757
|
+
else if (selector === ExteriorFractionSelector.Positive)
|
|
234758
|
+
toNegativeFraction = false;
|
|
234759
|
+
else if (selector === ExteriorFractionSelector.SameSign)
|
|
234760
|
+
toNegativeFraction = fraction < 0;
|
|
234761
|
+
return this.fractionToSignedPeriodicFractionStartEnd(fraction, radians0, radians1, toNegativeFraction);
|
|
234232
234762
|
}
|
|
234233
234763
|
/**
|
|
234234
234764
|
* Return the fractionalized position of the given angle (as radians) computed with consideration of
|
|
@@ -234241,10 +234771,13 @@ class AngleSweep {
|
|
|
234241
234771
|
* * allows period shift
|
|
234242
234772
|
* @param radians input angle (in radians)
|
|
234243
234773
|
* @param zeroSweepDefault return value when this sweep is empty (default 0)
|
|
234774
|
+
* @param selector how to handle an angle outside of the sweep. Default value is
|
|
234775
|
+
* [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
|
|
234776
|
+
* as the unbounded fraction `(radians - startRadians) / sweepRadians`.
|
|
234244
234777
|
* @returns fraction, or `zeroSweepDefault` if this sweep is empty.
|
|
234245
234778
|
*/
|
|
234246
|
-
radiansToSignedPeriodicFraction(radians, zeroSweepDefault = 0.0) {
|
|
234247
|
-
return AngleSweep.radiansToSignedPeriodicFractionStartEnd(radians, this._radians0, this._radians1, zeroSweepDefault);
|
|
234779
|
+
radiansToSignedPeriodicFraction(radians, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
|
|
234780
|
+
return AngleSweep.radiansToSignedPeriodicFractionStartEnd(radians, this._radians0, this._radians1, zeroSweepDefault, selector);
|
|
234248
234781
|
}
|
|
234249
234782
|
/**
|
|
234250
234783
|
* Return the fractionalized position of the given angle (as Angle) computed with consideration of
|
|
@@ -234257,10 +234790,13 @@ class AngleSweep {
|
|
|
234257
234790
|
* * allows period shift
|
|
234258
234791
|
* @param theta input angle
|
|
234259
234792
|
* @param zeroSweepDefault return value when this sweep is empty (default 0)
|
|
234793
|
+
* @param selector how to handle an angle outside of the sweep. Default value is
|
|
234794
|
+
* [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
|
|
234795
|
+
* as the fraction returned by `angleToUnboundedFraction(theta)`.
|
|
234260
234796
|
* @returns fraction, or `zeroSweepDefault` if this sweep is empty.
|
|
234261
234797
|
*/
|
|
234262
|
-
angleToSignedPeriodicFraction(theta, zeroSweepDefault = 0.0) {
|
|
234263
|
-
return this.radiansToSignedPeriodicFraction(theta.radians, zeroSweepDefault);
|
|
234798
|
+
angleToSignedPeriodicFraction(theta, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
|
|
234799
|
+
return this.radiansToSignedPeriodicFraction(theta.radians, zeroSweepDefault, selector);
|
|
234264
234800
|
}
|
|
234265
234801
|
/**
|
|
234266
234802
|
* Return the fractionalized position of the given radian angle with respect to the sweep.
|
|
@@ -296069,7 +296605,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
296069
296605
|
/* harmony export */ });
|
|
296070
296606
|
/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! i18next */ "../../common/temp/node_modules/.pnpm/i18next@21.10.0/node_modules/i18next/dist/esm/i18next.js");
|
|
296071
296607
|
/* harmony import */ var i18next_browser_languagedetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! i18next-browser-languagedetector */ "../../common/temp/node_modules/.pnpm/i18next-browser-languagedetector@6.1.8/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js");
|
|
296072
|
-
/* harmony import */ var i18next_http_backend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! i18next-http-backend */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@
|
|
296608
|
+
/* harmony import */ var i18next_http_backend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! i18next-http-backend */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@4.0.5/node_modules/i18next-http-backend/esm/index.js");
|
|
296073
296609
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
296074
296610
|
/*---------------------------------------------------------------------------------------------
|
|
296075
296611
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
@@ -316784,7 +317320,16 @@ class Parser {
|
|
|
316784
317320
|
// Don't add space when the wip token is empty.
|
|
316785
317321
|
continue;
|
|
316786
317322
|
}
|
|
316787
|
-
|
|
317323
|
+
// A slash directly between two label characters (e.g. "km/h") is part of the label, not a division.
|
|
317324
|
+
const nextCharCode = str.charCodeAt(i + 1);
|
|
317325
|
+
const isUnitLabelSlash = charCode === _Constants__WEBPACK_IMPORTED_MODULE_1__.QuantityConstants.CHAR_SLASH &&
|
|
317326
|
+
wipToken.length > 0 &&
|
|
317327
|
+
i + 1 < str.length &&
|
|
317328
|
+
!/\s/.test(str[i - 1]) &&
|
|
317329
|
+
!/\s/.test(str[i + 1]) &&
|
|
317330
|
+
!Parser.isDigitOrDecimalSeparator(nextCharCode, format) &&
|
|
317331
|
+
!isOperator(nextCharCode);
|
|
317332
|
+
if (isCharOperator && !isUnitLabelSlash) {
|
|
316788
317333
|
if (wipToken.length > 0) {
|
|
316789
317334
|
// There is a token is progress, process it now, before adding the new operator token.
|
|
316790
317335
|
tokens.push(new ParseToken(wipToken));
|
|
@@ -316954,11 +317499,18 @@ class Parser {
|
|
|
316954
317499
|
}
|
|
316955
317500
|
return undefined;
|
|
316956
317501
|
}
|
|
317502
|
+
/** Get the Unit Conversion for a known unit. Matches by unit name first because labels can differ between units providers
|
|
317503
|
+
* (e.g. an unlabeled schema unit may have an empty label in one provider and a name-derived label in another). Falls back to label lookup.
|
|
317504
|
+
*/
|
|
317505
|
+
static tryFindUnitConversionForUnit(unit, unitsConversions) {
|
|
317506
|
+
const byName = unitsConversions.find((conversion) => conversion.name === unit.name);
|
|
317507
|
+
return byName ? byName.conversion : Parser.tryFindUnitConversion(unit.label, unitsConversions, unit);
|
|
317508
|
+
}
|
|
316957
317509
|
/**
|
|
316958
317510
|
* Get what the unit conversion is for a unitless value.
|
|
316959
317511
|
*/
|
|
316960
317512
|
static getDefaultUnitConversion(tokens, unitsConversions, defaultUnit) {
|
|
316961
|
-
let unitConversion = defaultUnit ? Parser.
|
|
317513
|
+
let unitConversion = defaultUnit ? Parser.tryFindUnitConversionForUnit(defaultUnit, unitsConversions) : undefined;
|
|
316962
317514
|
if (!unitConversion) {
|
|
316963
317515
|
// No default unit conversion, take the first valid unit.
|
|
316964
317516
|
const uniqueUnitLabels = [...new Set(tokens.filter((token) => token.isString).map((token) => token.value))];
|
|
@@ -317078,7 +317630,7 @@ class Parser {
|
|
|
317078
317630
|
if (compositeUnitIndex > 0 && format.units && format.units.length > compositeUnitIndex) {
|
|
317079
317631
|
// if this is not the first token, and we have a composite spec, look up the unit from the current index
|
|
317080
317632
|
const presUnitAtIndex = format.units[compositeUnitIndex][0];
|
|
317081
|
-
conversion = Parser.
|
|
317633
|
+
conversion = Parser.tryFindUnitConversionForUnit(presUnitAtIndex, unitsConversions);
|
|
317082
317634
|
}
|
|
317083
317635
|
else if (defaultUnitConversion) {
|
|
317084
317636
|
conversion = defaultUnitConversion;
|
|
@@ -317371,7 +317923,7 @@ class Parser {
|
|
|
317371
317923
|
}
|
|
317372
317924
|
// Original flow for 1-unit composite - use Quantity.convertTo for proper unit conversion
|
|
317373
317925
|
const defaultUnit = spec.format.units && spec.format.units.length > 0 ? spec.format.units[0][0] : undefined;
|
|
317374
|
-
const unitConversion = defaultUnit ? Parser.
|
|
317926
|
+
const unitConversion = defaultUnit ? Parser.tryFindUnitConversionForUnit(defaultUnit, spec.unitConversions) : undefined;
|
|
317375
317927
|
if (!unitConversion) {
|
|
317376
317928
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_2__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_2__.QuantityStatus.MissingRequiredProperty, `Missing input unit or unit conversion for interpreting ${spec.format.name}.`);
|
|
317377
317929
|
}
|
|
@@ -318408,7 +318960,6 @@ function isCompatible(fromUnit, toUnit) {
|
|
|
318408
318960
|
/** Returns the package's default built-in persistence unit for a supported bundled built-in phenomenon.
|
|
318409
318961
|
*
|
|
318410
318962
|
* This helper is intentionally limited to the built-in canonical unit set shipped with `@itwin/core-quantity`.
|
|
318411
|
-
* `Phenomena.LENGTH_RATIO` is intentionally excluded because the bundled built-in unit set does not yet provide an agreed default for that phenomenon.
|
|
318412
318963
|
* For schema-defined, custom, or iModel-specific persistence units, use a `UnitsProvider`-based workflow instead.
|
|
318413
318964
|
*
|
|
318414
318965
|
* @beta
|
|
@@ -318832,6 +319383,11 @@ const Units = {
|
|
|
318832
319383
|
US_SURVEY_YRD: "Units.US_SURVEY_YRD",
|
|
318833
319384
|
YRD: "Units.YRD",
|
|
318834
319385
|
},
|
|
319386
|
+
LENGTH_RATIO: {
|
|
319387
|
+
DECIMAL_LENGTH_RATIO: "Units.DECIMAL_LENGTH_RATIO",
|
|
319388
|
+
IN_PER_FT_LENGTH_RATIO: "Units.IN_PER_FT_LENGTH_RATIO",
|
|
319389
|
+
M_PER_M_LENGTH_RATIO: "Units.M_PER_M_LENGTH_RATIO",
|
|
319390
|
+
},
|
|
318835
319391
|
LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION: {
|
|
318836
319392
|
STRAIN_PER_CELSIUS: "Units.STRAIN_PER_CELSIUS",
|
|
318837
319393
|
STRAIN_PER_FAHRENHEIT: "Units.STRAIN_PER_FAHRENHEIT",
|
|
@@ -319618,6 +320174,7 @@ const basicUnitConversionData = {
|
|
|
319618
320174
|
"Units.CUB_YRD": ["Units.VOLUME", 1.30795061931439, 0],
|
|
319619
320175
|
"Units.DAY": ["Units.TIME", 0.0000115740740740741, 0],
|
|
319620
320176
|
"Units.DECAN": ["Units.FORCE", 0.1, 0],
|
|
320177
|
+
"Units.DECIMAL_LENGTH_RATIO": ["Units.LENGTH_RATIO", 1, 0],
|
|
319621
320178
|
"Units.DECIMAL_PERCENT": ["Units.PERCENTAGE", 0.01, 0],
|
|
319622
320179
|
"Units.DEG_PER_HR": ["Units.ANGULAR_VELOCITY", 206264.806247096, 0],
|
|
319623
320180
|
"Units.DEG_PER_MIN": ["Units.ANGULAR_VELOCITY", 3437.74677078494, 0],
|
|
@@ -319701,6 +320258,7 @@ const basicUnitConversionData = {
|
|
|
319701
320258
|
"Units.IN_PER_DAY": ["Units.VELOCITY", 3401574.80314961, 0],
|
|
319702
320259
|
"Units.IN_PER_DEGREE": ["Units.THREAD_PITCH", 0.687137500785169, 0],
|
|
319703
320260
|
"Units.IN_PER_FT": ["Units.SLOPE", 12, 0],
|
|
320261
|
+
"Units.IN_PER_FT_LENGTH_RATIO": ["Units.LENGTH_RATIO", 12, 0],
|
|
319704
320262
|
"Units.IN_PER_HR": ["Units.VELOCITY", 141732.283464567, 0],
|
|
319705
320263
|
"Units.IN_PER_MIN": ["Units.VELOCITY", 2362.20472440945, 0],
|
|
319706
320264
|
"Units.IN_PER_SEC": ["Units.VELOCITY", 39.3700787401575, 0],
|
|
@@ -319835,6 +320393,7 @@ const basicUnitConversionData = {
|
|
|
319835
320393
|
"Units.M_PER_KM": ["Units.SLOPE", 1000, 0],
|
|
319836
320394
|
"Units.M_PER_KN": ["Units.FORCE_DISPLAY_SCALE", 1000, 0],
|
|
319837
320395
|
"Units.M_PER_M": ["Units.SLOPE", 1, 0],
|
|
320396
|
+
"Units.M_PER_M_LENGTH_RATIO": ["Units.LENGTH_RATIO", 1, 0],
|
|
319838
320397
|
"Units.M_PER_MIN": ["Units.VELOCITY", 60, 0],
|
|
319839
320398
|
"Units.M_PER_N": ["Units.FORCE_DISPLAY_SCALE", 1, 0],
|
|
319840
320399
|
"Units.M_PER_RAD": ["Units.THREAD_PITCH", 1, 0],
|
|
@@ -320144,6 +320703,7 @@ const defaultPersistenceUnits = {
|
|
|
320144
320703
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.ILLUMINANCE]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.ILLUMINANCE.LUX,
|
|
320145
320704
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.KINEMATIC_VISCOSITY]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.KINEMATIC_VISCOSITY.SQ_M_PER_SEC,
|
|
320146
320705
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LENGTH]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LENGTH.M,
|
|
320706
|
+
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LENGTH_RATIO]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LENGTH_RATIO.M_PER_M_LENGTH_RATIO,
|
|
320147
320707
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION.STRAIN_PER_KELVIN,
|
|
320148
320708
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_DENSITY]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_DENSITY.KG_PER_M,
|
|
320149
320709
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_LOAD]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_LOAD.N_PER_M,
|
|
@@ -320194,7 +320754,6 @@ const defaultPersistenceUnits = {
|
|
|
320194
320754
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.VOLUME_RATIO]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.VOLUME_RATIO.CUB_M_PER_CUB_M,
|
|
320195
320755
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.VOLUMETRIC_FLOW]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.VOLUMETRIC_FLOW.CUB_M_PER_SEC,
|
|
320196
320756
|
[_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.WORK]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.WORK.J,
|
|
320197
|
-
// Phenomena.LENGTH_RATIO is intentionally omitted because the bundled built-in unit set does not yet provide an agreed default for that phenomenon.
|
|
320198
320757
|
};
|
|
320199
320758
|
|
|
320200
320759
|
|
|
@@ -332733,534 +333292,377 @@ const isSafeIterable = (thing) =>
|
|
|
332733
333292
|
|
|
332734
333293
|
/***/ },
|
|
332735
333294
|
|
|
332736
|
-
/***/ "../../common/temp/node_modules/.pnpm/i18next-http-backend@
|
|
332737
|
-
/*!**********************************************************************************************************************!*\
|
|
332738
|
-
!*** ../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/index.js ***!
|
|
332739
|
-
\**********************************************************************************************************************/
|
|
332740
|
-
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
332741
|
-
|
|
332742
|
-
"use strict";
|
|
332743
|
-
__webpack_require__.r(__webpack_exports__);
|
|
332744
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
332745
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
332746
|
-
/* harmony export */ });
|
|
332747
|
-
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/utils.js");
|
|
332748
|
-
/* harmony import */ var _request_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./request.js */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/request.js");
|
|
332749
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
332750
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
332751
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
332752
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
332753
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
332754
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
332755
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
332756
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
332757
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
332758
|
-
;
|
|
332759
|
-
|
|
332760
|
-
var getDefaults = function getDefaults() {
|
|
332761
|
-
return {
|
|
332762
|
-
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
|
332763
|
-
addPath: '/locales/add/{{lng}}/{{ns}}',
|
|
332764
|
-
parse: function parse(data) {
|
|
332765
|
-
return JSON.parse(data);
|
|
332766
|
-
},
|
|
332767
|
-
stringify: JSON.stringify,
|
|
332768
|
-
parsePayload: function parsePayload(namespace, key, fallbackValue) {
|
|
332769
|
-
return _defineProperty({}, key, fallbackValue || '');
|
|
332770
|
-
},
|
|
332771
|
-
parseLoadPayload: function parseLoadPayload(languages, namespaces) {
|
|
332772
|
-
return undefined;
|
|
332773
|
-
},
|
|
332774
|
-
request: _request_js__WEBPACK_IMPORTED_MODULE_1__["default"],
|
|
332775
|
-
reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,
|
|
332776
|
-
customHeaders: {},
|
|
332777
|
-
queryStringParams: {},
|
|
332778
|
-
crossDomain: false,
|
|
332779
|
-
withCredentials: false,
|
|
332780
|
-
overrideMimeType: false,
|
|
332781
|
-
requestOptions: {
|
|
332782
|
-
mode: 'cors',
|
|
332783
|
-
credentials: 'same-origin',
|
|
332784
|
-
cache: 'default'
|
|
332785
|
-
}
|
|
332786
|
-
};
|
|
332787
|
-
};
|
|
332788
|
-
var Backend = function () {
|
|
332789
|
-
function Backend(services) {
|
|
332790
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
332791
|
-
var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
332792
|
-
_classCallCheck(this, Backend);
|
|
332793
|
-
this.services = services;
|
|
332794
|
-
this.options = options;
|
|
332795
|
-
this.allOptions = allOptions;
|
|
332796
|
-
this.type = 'backend';
|
|
332797
|
-
this.init(services, options, allOptions);
|
|
332798
|
-
}
|
|
332799
|
-
return _createClass(Backend, [{
|
|
332800
|
-
key: "init",
|
|
332801
|
-
value: function init(services) {
|
|
332802
|
-
var _this = this;
|
|
332803
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
332804
|
-
var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
332805
|
-
this.services = services;
|
|
332806
|
-
this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options || {}), options);
|
|
332807
|
-
this.allOptions = allOptions;
|
|
332808
|
-
if (this.services && this.options.reloadInterval) {
|
|
332809
|
-
var timer = setInterval(function () {
|
|
332810
|
-
return _this.reload();
|
|
332811
|
-
}, this.options.reloadInterval);
|
|
332812
|
-
if (_typeof(timer) === 'object' && typeof timer.unref === 'function') timer.unref();
|
|
332813
|
-
}
|
|
332814
|
-
}
|
|
332815
|
-
}, {
|
|
332816
|
-
key: "readMulti",
|
|
332817
|
-
value: function readMulti(languages, namespaces, callback) {
|
|
332818
|
-
this._readAny(languages, languages, namespaces, namespaces, callback);
|
|
332819
|
-
}
|
|
332820
|
-
}, {
|
|
332821
|
-
key: "read",
|
|
332822
|
-
value: function read(language, namespace, callback) {
|
|
332823
|
-
this._readAny([language], language, [namespace], namespace, callback);
|
|
332824
|
-
}
|
|
332825
|
-
}, {
|
|
332826
|
-
key: "_readAny",
|
|
332827
|
-
value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {
|
|
332828
|
-
var _this2 = this;
|
|
332829
|
-
var loadPath = this.options.loadPath;
|
|
332830
|
-
if (typeof this.options.loadPath === 'function') {
|
|
332831
|
-
loadPath = this.options.loadPath(languages, namespaces);
|
|
332832
|
-
}
|
|
332833
|
-
loadPath = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.makePromise)(loadPath);
|
|
332834
|
-
loadPath.then(function (resolvedLoadPath) {
|
|
332835
|
-
if (!resolvedLoadPath) return callback(null, {});
|
|
332836
|
-
var url = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.interpolateUrl)(resolvedLoadPath, {
|
|
332837
|
-
lng: languages.join('+'),
|
|
332838
|
-
ns: namespaces.join('+')
|
|
332839
|
-
});
|
|
332840
|
-
if (url == null) {
|
|
332841
|
-
var safeLngs = languages.map(_utils_js__WEBPACK_IMPORTED_MODULE_0__.sanitizeLogValue).join(', ');
|
|
332842
|
-
var safeNss = namespaces.map(_utils_js__WEBPACK_IMPORTED_MODULE_0__.sanitizeLogValue).join(', ');
|
|
332843
|
-
return callback(new Error('i18next-http-backend: unsafe lng/ns value — refusing to build request URL for languages=[' + safeLngs + '] namespaces=[' + safeNss + ']'), false);
|
|
332844
|
-
}
|
|
332845
|
-
_this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);
|
|
332846
|
-
});
|
|
332847
|
-
}
|
|
332848
|
-
}, {
|
|
332849
|
-
key: "loadUrl",
|
|
332850
|
-
value: function loadUrl(url, callback, languages, namespaces) {
|
|
332851
|
-
var _this3 = this;
|
|
332852
|
-
var lng = typeof languages === 'string' ? [languages] : languages;
|
|
332853
|
-
var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;
|
|
332854
|
-
var payload = this.options.parseLoadPayload(lng, ns);
|
|
332855
|
-
var safeUrl = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.sanitizeLogValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.redactUrlCredentials)(url));
|
|
332856
|
-
this.options.request(this.options, url, payload, function (err, res) {
|
|
332857
|
-
if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + safeUrl + '; status code: ' + res.status, true);
|
|
332858
|
-
if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + safeUrl + '; status code: ' + res.status, false);
|
|
332859
|
-
if (!res && err && err.message) {
|
|
332860
|
-
var errorMessage = err.message.toLowerCase();
|
|
332861
|
-
var isNetworkError = ['failed', 'fetch', 'network', 'load'].find(function (term) {
|
|
332862
|
-
return errorMessage.indexOf(term) > -1;
|
|
332863
|
-
});
|
|
332864
|
-
if (isNetworkError) {
|
|
332865
|
-
return callback('failed loading ' + safeUrl + ': ' + (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.sanitizeLogValue)(err.message), true);
|
|
332866
|
-
}
|
|
332867
|
-
}
|
|
332868
|
-
if (err) return callback(err, false);
|
|
332869
|
-
var ret, parseErr;
|
|
332870
|
-
try {
|
|
332871
|
-
if (typeof res.data === 'string') {
|
|
332872
|
-
ret = _this3.options.parse(res.data, languages, namespaces);
|
|
332873
|
-
} else {
|
|
332874
|
-
ret = res.data;
|
|
332875
|
-
}
|
|
332876
|
-
} catch (e) {
|
|
332877
|
-
parseErr = 'failed parsing ' + safeUrl + ' to json';
|
|
332878
|
-
}
|
|
332879
|
-
if (parseErr) return callback(parseErr, false);
|
|
332880
|
-
callback(null, ret);
|
|
332881
|
-
});
|
|
332882
|
-
}
|
|
332883
|
-
}, {
|
|
332884
|
-
key: "create",
|
|
332885
|
-
value: function create(languages, namespace, key, fallbackValue, callback) {
|
|
332886
|
-
var _this4 = this;
|
|
332887
|
-
if (!this.options.addPath) return;
|
|
332888
|
-
if (typeof languages === 'string') languages = [languages];
|
|
332889
|
-
var payload = this.options.parsePayload(namespace, key, fallbackValue);
|
|
332890
|
-
var finished = 0;
|
|
332891
|
-
var dataArray = [];
|
|
332892
|
-
var resArray = [];
|
|
332893
|
-
languages.forEach(function (lng) {
|
|
332894
|
-
var addPath = _this4.options.addPath;
|
|
332895
|
-
if (typeof _this4.options.addPath === 'function') {
|
|
332896
|
-
addPath = _this4.options.addPath(lng, namespace);
|
|
332897
|
-
}
|
|
332898
|
-
var url = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.interpolateUrl)(addPath, {
|
|
332899
|
-
lng: lng,
|
|
332900
|
-
ns: namespace
|
|
332901
|
-
});
|
|
332902
|
-
if (url == null) {
|
|
332903
|
-
finished += 1;
|
|
332904
|
-
if (callback && finished === languages.length) callback(dataArray, resArray);
|
|
332905
|
-
return;
|
|
332906
|
-
}
|
|
332907
|
-
_this4.options.request(_this4.options, url, payload, function (data, res) {
|
|
332908
|
-
finished += 1;
|
|
332909
|
-
dataArray.push(data);
|
|
332910
|
-
resArray.push(res);
|
|
332911
|
-
if (finished === languages.length) {
|
|
332912
|
-
if (typeof callback === 'function') callback(dataArray, resArray);
|
|
332913
|
-
}
|
|
332914
|
-
});
|
|
332915
|
-
});
|
|
332916
|
-
}
|
|
332917
|
-
}, {
|
|
332918
|
-
key: "reload",
|
|
332919
|
-
value: function reload() {
|
|
332920
|
-
var _this5 = this;
|
|
332921
|
-
var _this$services = this.services,
|
|
332922
|
-
backendConnector = _this$services.backendConnector,
|
|
332923
|
-
languageUtils = _this$services.languageUtils,
|
|
332924
|
-
logger = _this$services.logger;
|
|
332925
|
-
var currentLanguage = backendConnector.language;
|
|
332926
|
-
if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;
|
|
332927
|
-
var toLoad = [];
|
|
332928
|
-
var append = function append(lng) {
|
|
332929
|
-
var lngs = languageUtils.toResolveHierarchy(lng);
|
|
332930
|
-
lngs.forEach(function (l) {
|
|
332931
|
-
if (toLoad.indexOf(l) < 0) toLoad.push(l);
|
|
332932
|
-
});
|
|
332933
|
-
};
|
|
332934
|
-
append(currentLanguage);
|
|
332935
|
-
if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {
|
|
332936
|
-
return append(l);
|
|
332937
|
-
});
|
|
332938
|
-
toLoad.forEach(function (lng) {
|
|
332939
|
-
_this5.allOptions.ns.forEach(function (ns) {
|
|
332940
|
-
backendConnector.read(lng, ns, 'read', null, null, function (err, data) {
|
|
332941
|
-
if (err) logger.warn("loading namespace ".concat(ns, " for language ").concat(lng, " failed"), err);
|
|
332942
|
-
if (!err && data) logger.log("loaded namespace ".concat(ns, " for language ").concat(lng), data);
|
|
332943
|
-
backendConnector.loaded("".concat(lng, "|").concat(ns), err, data);
|
|
332944
|
-
});
|
|
332945
|
-
});
|
|
332946
|
-
});
|
|
332947
|
-
}
|
|
332948
|
-
}]);
|
|
332949
|
-
}();
|
|
332950
|
-
Backend.type = 'backend';
|
|
332951
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Backend);
|
|
332952
|
-
|
|
332953
|
-
/***/ },
|
|
332954
|
-
|
|
332955
|
-
/***/ "../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/request.js"
|
|
332956
|
-
/*!************************************************************************************************************************!*\
|
|
332957
|
-
!*** ../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/request.js ***!
|
|
332958
|
-
\************************************************************************************************************************/
|
|
332959
|
-
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
332960
|
-
|
|
332961
|
-
"use strict";
|
|
332962
|
-
__webpack_require__.r(__webpack_exports__);
|
|
332963
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
332964
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
332965
|
-
/* harmony export */ });
|
|
332966
|
-
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/utils.js");
|
|
332967
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
332968
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
332969
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
332970
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
332971
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
332972
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
332973
|
-
;
|
|
332974
|
-
var fetchApi = typeof fetch === 'function' ? fetch : undefined;
|
|
332975
|
-
if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.fetch) {
|
|
332976
|
-
fetchApi = __webpack_require__.g.fetch;
|
|
332977
|
-
} else if (typeof window !== 'undefined' && window.fetch) {
|
|
332978
|
-
fetchApi = window.fetch;
|
|
332979
|
-
}
|
|
332980
|
-
var XmlHttpRequestApi;
|
|
332981
|
-
if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.hasXMLHttpRequest)()) {
|
|
332982
|
-
if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.XMLHttpRequest) {
|
|
332983
|
-
XmlHttpRequestApi = __webpack_require__.g.XMLHttpRequest;
|
|
332984
|
-
} else if (typeof window !== 'undefined' && window.XMLHttpRequest) {
|
|
332985
|
-
XmlHttpRequestApi = window.XMLHttpRequest;
|
|
332986
|
-
}
|
|
332987
|
-
}
|
|
332988
|
-
var ActiveXObjectApi;
|
|
332989
|
-
if (typeof ActiveXObject === 'function') {
|
|
332990
|
-
if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.ActiveXObject) {
|
|
332991
|
-
ActiveXObjectApi = __webpack_require__.g.ActiveXObject;
|
|
332992
|
-
} else if (typeof window !== 'undefined' && window.ActiveXObject) {
|
|
332993
|
-
ActiveXObjectApi = window.ActiveXObject;
|
|
332994
|
-
}
|
|
332995
|
-
}
|
|
332996
|
-
if (typeof fetchApi !== 'function') fetchApi = undefined;
|
|
332997
|
-
if (!fetchApi && !XmlHttpRequestApi && !ActiveXObjectApi) {
|
|
332998
|
-
try {
|
|
332999
|
-
__webpack_require__.e(/*! import() */ "vendors-common_temp_node_modules_pnpm_cross-fetch_4_1_0_node_modules_cross-fetch_dist_browser-44272f").then(() => (__webpack_require__.t(/*! cross-fetch */ "../../common/temp/node_modules/.pnpm/cross-fetch@4.1.0/node_modules/cross-fetch/dist/browser-ponyfill.js", 19))).then(function (mod) {
|
|
333000
|
-
fetchApi = mod.default;
|
|
333001
|
-
}).catch(function () {});
|
|
333002
|
-
} catch (e) {}
|
|
333003
|
-
}
|
|
333004
|
-
var UNSAFE_KEYS = ['__proto__', 'constructor', 'prototype'];
|
|
333005
|
-
var addQueryString = function addQueryString(url, params) {
|
|
333006
|
-
if (params && _typeof(params) === 'object') {
|
|
333007
|
-
var queryString = '';
|
|
333008
|
-
for (var _i = 0, _Object$keys = Object.keys(params); _i < _Object$keys.length; _i++) {
|
|
333009
|
-
var paramName = _Object$keys[_i];
|
|
333010
|
-
if (UNSAFE_KEYS.indexOf(paramName) > -1) continue;
|
|
333011
|
-
queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);
|
|
333012
|
-
}
|
|
333013
|
-
if (!queryString) return url;
|
|
333014
|
-
url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);
|
|
333015
|
-
}
|
|
333016
|
-
return url;
|
|
333017
|
-
};
|
|
333018
|
-
var fetchIt = function fetchIt(url, fetchOptions, callback, altFetch) {
|
|
333019
|
-
var resolver = function resolver(response) {
|
|
333020
|
-
if (!response.ok) return callback(response.statusText || 'Error', {
|
|
333021
|
-
status: response.status
|
|
333022
|
-
});
|
|
333023
|
-
response.text().then(function (data) {
|
|
333024
|
-
callback(null, {
|
|
333025
|
-
status: response.status,
|
|
333026
|
-
data: data
|
|
333027
|
-
});
|
|
333028
|
-
}).catch(callback);
|
|
333029
|
-
};
|
|
333030
|
-
if (altFetch) {
|
|
333031
|
-
var altResponse = altFetch(url, fetchOptions);
|
|
333032
|
-
if (altResponse instanceof Promise) {
|
|
333033
|
-
altResponse.then(resolver).catch(callback);
|
|
333034
|
-
return;
|
|
333035
|
-
}
|
|
333036
|
-
}
|
|
333037
|
-
if (typeof fetch === 'function') {
|
|
333038
|
-
fetch(url, fetchOptions).then(resolver).catch(callback);
|
|
333039
|
-
} else {
|
|
333040
|
-
fetchApi(url, fetchOptions).then(resolver).catch(callback);
|
|
333041
|
-
}
|
|
333042
|
-
};
|
|
333043
|
-
var requestWithFetch = function requestWithFetch(options, url, payload, callback) {
|
|
333044
|
-
if (options.queryStringParams) {
|
|
333045
|
-
url = addQueryString(url, options.queryStringParams);
|
|
333046
|
-
}
|
|
333047
|
-
var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);
|
|
333048
|
-
if (typeof window === 'undefined' && typeof __webpack_require__.g !== 'undefined' && typeof __webpack_require__.g.process !== 'undefined' && __webpack_require__.g.process.versions && __webpack_require__.g.process.versions.node) {
|
|
333049
|
-
headers['User-Agent'] = "i18next-http-backend (node/".concat(__webpack_require__.g.process.version, "; ").concat(__webpack_require__.g.process.platform, " ").concat(__webpack_require__.g.process.arch, ")");
|
|
333050
|
-
}
|
|
333051
|
-
if (payload) headers['Content-Type'] = 'application/json';
|
|
333052
|
-
var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;
|
|
333053
|
-
var fetchOptions = _objectSpread({
|
|
333054
|
-
method: payload ? 'POST' : 'GET',
|
|
333055
|
-
body: payload ? options.stringify(payload) : undefined,
|
|
333056
|
-
headers: headers
|
|
333057
|
-
}, options._omitFetchOptions ? {} : reqOptions);
|
|
333058
|
-
var altFetch = typeof options.alternateFetch === 'function' && options.alternateFetch.length >= 1 ? options.alternateFetch : undefined;
|
|
333059
|
-
try {
|
|
333060
|
-
fetchIt(url, fetchOptions, callback, altFetch);
|
|
333061
|
-
} catch (e) {
|
|
333062
|
-
if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {
|
|
333063
|
-
return callback(e);
|
|
333064
|
-
}
|
|
333065
|
-
try {
|
|
333066
|
-
Object.keys(reqOptions).forEach(function (opt) {
|
|
333067
|
-
delete fetchOptions[opt];
|
|
333068
|
-
});
|
|
333069
|
-
fetchIt(url, fetchOptions, callback, altFetch);
|
|
333070
|
-
options._omitFetchOptions = true;
|
|
333071
|
-
} catch (err) {
|
|
333072
|
-
callback(err);
|
|
333073
|
-
}
|
|
333074
|
-
}
|
|
333075
|
-
};
|
|
333076
|
-
var requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {
|
|
333077
|
-
if (payload && _typeof(payload) === 'object') {
|
|
333078
|
-
payload = addQueryString('', payload).slice(1);
|
|
333079
|
-
}
|
|
333080
|
-
if (options.queryStringParams) {
|
|
333081
|
-
url = addQueryString(url, options.queryStringParams);
|
|
333082
|
-
}
|
|
333083
|
-
try {
|
|
333084
|
-
var x = XmlHttpRequestApi ? new XmlHttpRequestApi() : new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');
|
|
333085
|
-
x.open(payload ? 'POST' : 'GET', url, 1);
|
|
333086
|
-
if (!options.crossDomain) {
|
|
333087
|
-
x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
|
333088
|
-
}
|
|
333089
|
-
x.withCredentials = !!options.withCredentials;
|
|
333090
|
-
if (payload) {
|
|
333091
|
-
x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
|
333092
|
-
}
|
|
333093
|
-
if (x.overrideMimeType) {
|
|
333094
|
-
x.overrideMimeType('application/json');
|
|
333095
|
-
}
|
|
333096
|
-
var h = options.customHeaders;
|
|
333097
|
-
h = typeof h === 'function' ? h() : h;
|
|
333098
|
-
if (h) {
|
|
333099
|
-
for (var _i2 = 0, _Object$keys2 = Object.keys(h); _i2 < _Object$keys2.length; _i2++) {
|
|
333100
|
-
var i = _Object$keys2[_i2];
|
|
333101
|
-
if (UNSAFE_KEYS.indexOf(i) > -1) continue;
|
|
333102
|
-
x.setRequestHeader(i, h[i]);
|
|
333103
|
-
}
|
|
333104
|
-
}
|
|
333105
|
-
x.onreadystatechange = function () {
|
|
333106
|
-
x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {
|
|
333107
|
-
status: x.status,
|
|
333108
|
-
data: x.responseText
|
|
333109
|
-
});
|
|
333110
|
-
};
|
|
333111
|
-
x.send(payload);
|
|
333112
|
-
} catch (e) {
|
|
333113
|
-
console && console.log(e);
|
|
333114
|
-
}
|
|
333115
|
-
};
|
|
333116
|
-
var request = function request(options, url, payload, callback) {
|
|
333117
|
-
if (typeof payload === 'function') {
|
|
333118
|
-
callback = payload;
|
|
333119
|
-
payload = undefined;
|
|
333120
|
-
}
|
|
333121
|
-
callback = callback || function () {};
|
|
333122
|
-
if (fetchApi && url.indexOf('file:') !== 0) {
|
|
333123
|
-
return requestWithFetch(options, url, payload, callback);
|
|
333124
|
-
}
|
|
333125
|
-
if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.hasXMLHttpRequest)() || typeof ActiveXObject === 'function') {
|
|
333126
|
-
return requestWithXmlHttpRequest(options, url, payload, callback);
|
|
333127
|
-
}
|
|
333128
|
-
callback(new Error('No fetch and no xhr implementation found!'));
|
|
333129
|
-
};
|
|
333130
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (request);
|
|
333131
|
-
|
|
333132
|
-
/***/ },
|
|
333133
|
-
|
|
333134
|
-
/***/ "../../common/temp/node_modules/.pnpm/i18next-http-backend@3.0.6/node_modules/i18next-http-backend/esm/utils.js"
|
|
333295
|
+
/***/ "../../common/temp/node_modules/.pnpm/i18next-http-backend@4.0.5/node_modules/i18next-http-backend/esm/index.js"
|
|
333135
333296
|
/*!**********************************************************************************************************************!*\
|
|
333136
|
-
!*** ../../common/temp/node_modules/.pnpm/i18next-http-backend@
|
|
333297
|
+
!*** ../../common/temp/node_modules/.pnpm/i18next-http-backend@4.0.5/node_modules/i18next-http-backend/esm/index.js ***!
|
|
333137
333298
|
\**********************************************************************************************************************/
|
|
333138
333299
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
333139
333300
|
|
|
333140
333301
|
"use strict";
|
|
333141
333302
|
__webpack_require__.r(__webpack_exports__);
|
|
333142
333303
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
333143
|
-
/* harmony export */
|
|
333144
|
-
/* harmony export */ hasXMLHttpRequest: () => (/* binding */ hasXMLHttpRequest),
|
|
333145
|
-
/* harmony export */ interpolate: () => (/* binding */ interpolate),
|
|
333146
|
-
/* harmony export */ interpolateUrl: () => (/* binding */ interpolateUrl),
|
|
333147
|
-
/* harmony export */ isSafeLangUrlSegment: () => (/* binding */ isSafeLangUrlSegment),
|
|
333148
|
-
/* harmony export */ isSafeNsUrlSegment: () => (/* binding */ isSafeNsUrlSegment),
|
|
333149
|
-
/* harmony export */ isSafeUrlSegment: () => (/* binding */ isSafeUrlSegment),
|
|
333150
|
-
/* harmony export */ makePromise: () => (/* binding */ makePromise),
|
|
333151
|
-
/* harmony export */ redactUrlCredentials: () => (/* binding */ redactUrlCredentials),
|
|
333152
|
-
/* harmony export */ sanitizeLogValue: () => (/* binding */ sanitizeLogValue)
|
|
333304
|
+
/* harmony export */ "default": () => (/* binding */ Backend)
|
|
333153
333305
|
/* harmony export */ });
|
|
333154
|
-
|
|
333155
|
-
|
|
333156
|
-
|
|
333157
|
-
|
|
333158
|
-
|
|
333159
|
-
|
|
333160
|
-
|
|
333161
|
-
|
|
333162
|
-
|
|
333163
|
-
each.call(slice.call(arguments, 1), function (source) {
|
|
333164
|
-
if (source) {
|
|
333165
|
-
for (var _i = 0, _Object$keys = Object.keys(source); _i < _Object$keys.length; _i++) {
|
|
333166
|
-
var prop = _Object$keys[_i];
|
|
333167
|
-
if (UNSAFE_KEYS.indexOf(prop) > -1) continue;
|
|
333168
|
-
if (obj[prop] === undefined) obj[prop] = source[prop];
|
|
333169
|
-
}
|
|
333170
|
-
}
|
|
333171
|
-
});
|
|
333172
|
-
return obj;
|
|
333173
|
-
}
|
|
333306
|
+
//#region lib/utils.js
|
|
333307
|
+
const arr = [];
|
|
333308
|
+
arr.forEach;
|
|
333309
|
+
arr.slice;
|
|
333310
|
+
const UNSAFE_KEYS$1 = [
|
|
333311
|
+
"__proto__",
|
|
333312
|
+
"constructor",
|
|
333313
|
+
"prototype"
|
|
333314
|
+
];
|
|
333174
333315
|
function isSafeUrlSegmentBase(v) {
|
|
333175
|
-
|
|
333176
|
-
|
|
333177
|
-
|
|
333178
|
-
|
|
333179
|
-
|
|
333180
|
-
|
|
333181
|
-
|
|
333182
|
-
|
|
333316
|
+
if (typeof v !== "string") return false;
|
|
333317
|
+
if (v.length === 0 || v.length > 128) return false;
|
|
333318
|
+
if (UNSAFE_KEYS$1.indexOf(v) > -1) return false;
|
|
333319
|
+
if (v.indexOf("..") > -1) return false;
|
|
333320
|
+
if (v.indexOf("\\") > -1) return false;
|
|
333321
|
+
if (/[?#%:&=;\s]/.test(v)) return false;
|
|
333322
|
+
if (/[\x00-\x1F\x7F]/.test(v)) return false;
|
|
333323
|
+
return true;
|
|
333183
333324
|
}
|
|
333184
333325
|
function isSafeLangUrlSegment(v) {
|
|
333185
|
-
|
|
333186
|
-
|
|
333187
|
-
|
|
333326
|
+
if (!isSafeUrlSegmentBase(v)) return false;
|
|
333327
|
+
if (v.indexOf("/") > -1 || v.indexOf("@") > -1) return false;
|
|
333328
|
+
return true;
|
|
333188
333329
|
}
|
|
333189
333330
|
function isSafeNsUrlSegment(v) {
|
|
333190
|
-
|
|
333331
|
+
if (!isSafeUrlSegmentBase(v)) return false;
|
|
333332
|
+
if (v.indexOf("//") > -1) return false;
|
|
333333
|
+
return true;
|
|
333191
333334
|
}
|
|
333192
|
-
|
|
333193
|
-
|
|
333194
|
-
|
|
333195
|
-
ns: isSafeNsUrlSegment
|
|
333335
|
+
const SAFETY_CHECK_BY_KEY = {
|
|
333336
|
+
lng: isSafeLangUrlSegment,
|
|
333337
|
+
ns: isSafeNsUrlSegment
|
|
333196
333338
|
};
|
|
333197
333339
|
function sanitizeLogValue(v) {
|
|
333198
|
-
|
|
333199
|
-
|
|
333340
|
+
if (typeof v !== "string") return v;
|
|
333341
|
+
return v.replace(/[\r\n\x00-\x1F\x7F]/g, " ");
|
|
333200
333342
|
}
|
|
333201
333343
|
function redactUrlCredentials(u) {
|
|
333202
|
-
|
|
333203
|
-
|
|
333204
|
-
|
|
333205
|
-
|
|
333206
|
-
|
|
333207
|
-
|
|
333208
|
-
|
|
333209
|
-
|
|
333210
|
-
|
|
333211
|
-
|
|
333212
|
-
|
|
333213
|
-
|
|
333344
|
+
if (typeof u !== "string" || u.length === 0) return u;
|
|
333345
|
+
try {
|
|
333346
|
+
const parsed = new URL(u);
|
|
333347
|
+
if (parsed.username || parsed.password) {
|
|
333348
|
+
parsed.username = "";
|
|
333349
|
+
parsed.password = "";
|
|
333350
|
+
return parsed.toString();
|
|
333351
|
+
}
|
|
333352
|
+
return u;
|
|
333353
|
+
} catch (e) {
|
|
333354
|
+
return u.replace(/(\/\/)[^/@\s]+@/g, "$1");
|
|
333355
|
+
}
|
|
333214
333356
|
}
|
|
333215
333357
|
function hasXMLHttpRequest() {
|
|
333216
|
-
|
|
333358
|
+
return typeof XMLHttpRequest === "function" || typeof XMLHttpRequest === "object";
|
|
333217
333359
|
}
|
|
333360
|
+
/**
|
|
333361
|
+
* Determine whether the given `maybePromise` is a Promise.
|
|
333362
|
+
*
|
|
333363
|
+
* @param {*} maybePromise
|
|
333364
|
+
*
|
|
333365
|
+
* @returns {Boolean}
|
|
333366
|
+
*/
|
|
333218
333367
|
function isPromise(maybePromise) {
|
|
333219
|
-
|
|
333368
|
+
return !!maybePromise && typeof maybePromise.then === "function";
|
|
333220
333369
|
}
|
|
333370
|
+
/**
|
|
333371
|
+
* Convert any value to a Promise than will resolve to this value.
|
|
333372
|
+
*
|
|
333373
|
+
* @param {*} maybePromise
|
|
333374
|
+
*
|
|
333375
|
+
* @returns {Promise}
|
|
333376
|
+
*/
|
|
333221
333377
|
function makePromise(maybePromise) {
|
|
333222
|
-
|
|
333223
|
-
|
|
333224
|
-
}
|
|
333225
|
-
return Promise.resolve(maybePromise);
|
|
333226
|
-
}
|
|
333227
|
-
var interpolationRegexp = /\{\{(.+?)\}\}/g;
|
|
333228
|
-
function interpolate(str, data) {
|
|
333229
|
-
return str.replace(interpolationRegexp, function (match, key) {
|
|
333230
|
-
var k = key.trim();
|
|
333231
|
-
if (UNSAFE_KEYS.indexOf(k) > -1) return match;
|
|
333232
|
-
var value = data[k];
|
|
333233
|
-
return value != null ? value : match;
|
|
333234
|
-
});
|
|
333378
|
+
if (isPromise(maybePromise)) return maybePromise;
|
|
333379
|
+
return Promise.resolve(maybePromise);
|
|
333235
333380
|
}
|
|
333381
|
+
const interpolationRegexp = /\{\{(.+?)\}\}/g;
|
|
333382
|
+
const LEADING_DOUBLE_SLASH = /^[/\\]{2}/;
|
|
333236
333383
|
function interpolateUrl(str, data) {
|
|
333237
|
-
|
|
333238
|
-
|
|
333239
|
-
|
|
333240
|
-
|
|
333241
|
-
|
|
333242
|
-
|
|
333243
|
-
|
|
333244
|
-
|
|
333245
|
-
|
|
333246
|
-
|
|
333247
|
-
|
|
333248
|
-
|
|
333249
|
-
|
|
333250
|
-
|
|
333251
|
-
|
|
333252
|
-
|
|
333253
|
-
|
|
333254
|
-
|
|
333255
|
-
|
|
333256
|
-
|
|
333257
|
-
|
|
333258
|
-
|
|
333259
|
-
|
|
333260
|
-
|
|
333261
|
-
|
|
333262
|
-
|
|
333263
|
-
|
|
333384
|
+
let unsafe = false;
|
|
333385
|
+
const result = str.replace(interpolationRegexp, (match, key) => {
|
|
333386
|
+
const k = key.trim();
|
|
333387
|
+
if (UNSAFE_KEYS$1.indexOf(k) > -1) return match;
|
|
333388
|
+
const value = data[k];
|
|
333389
|
+
if (value == null) return match;
|
|
333390
|
+
const check = SAFETY_CHECK_BY_KEY[k] || isSafeLangUrlSegment;
|
|
333391
|
+
const segments = String(value).split("+");
|
|
333392
|
+
for (const seg of segments) if (!check(seg)) {
|
|
333393
|
+
unsafe = true;
|
|
333394
|
+
return match;
|
|
333395
|
+
}
|
|
333396
|
+
return segments.join("+");
|
|
333397
|
+
});
|
|
333398
|
+
if (unsafe) return null;
|
|
333399
|
+
if (LEADING_DOUBLE_SLASH.test(result) && !LEADING_DOUBLE_SLASH.test(str)) return null;
|
|
333400
|
+
return result;
|
|
333401
|
+
}
|
|
333402
|
+
//#endregion
|
|
333403
|
+
//#region lib/request.js
|
|
333404
|
+
const g = typeof globalThis !== "undefined" ? globalThis : typeof __webpack_require__.g !== "undefined" ? __webpack_require__.g : typeof window !== "undefined" ? window : void 0;
|
|
333405
|
+
let fetchApi;
|
|
333406
|
+
if (typeof fetch === "function") fetchApi = fetch;
|
|
333407
|
+
else if (g && typeof g.fetch === "function") fetchApi = g.fetch;
|
|
333408
|
+
const XmlHttpRequestApi = hasXMLHttpRequest() && g ? g.XMLHttpRequest : void 0;
|
|
333409
|
+
const ActiveXObjectApi = typeof ActiveXObject === "function" && g ? g.ActiveXObject : void 0;
|
|
333410
|
+
const UNSAFE_KEYS = [
|
|
333411
|
+
"__proto__",
|
|
333412
|
+
"constructor",
|
|
333413
|
+
"prototype"
|
|
333414
|
+
];
|
|
333415
|
+
const addQueryString = (url, params) => {
|
|
333416
|
+
if (params && typeof params === "object") {
|
|
333417
|
+
let queryString = "";
|
|
333418
|
+
for (const paramName of Object.keys(params)) {
|
|
333419
|
+
if (UNSAFE_KEYS.indexOf(paramName) > -1) continue;
|
|
333420
|
+
queryString += "&" + encodeURIComponent(paramName) + "=" + encodeURIComponent(params[paramName]);
|
|
333421
|
+
}
|
|
333422
|
+
if (!queryString) return url;
|
|
333423
|
+
url = url + (url.indexOf("?") !== -1 ? "&" : "?") + queryString.slice(1);
|
|
333424
|
+
}
|
|
333425
|
+
return url;
|
|
333426
|
+
};
|
|
333427
|
+
const fetchIt = (url, fetchOptions, callback, altFetch) => {
|
|
333428
|
+
const resolver = (response) => {
|
|
333429
|
+
if (!response.ok) return callback(response.statusText || "Error", { status: response.status });
|
|
333430
|
+
response.text().then((data) => {
|
|
333431
|
+
callback(null, {
|
|
333432
|
+
status: response.status,
|
|
333433
|
+
data
|
|
333434
|
+
});
|
|
333435
|
+
}).catch(callback);
|
|
333436
|
+
};
|
|
333437
|
+
if (altFetch) {
|
|
333438
|
+
const altResponse = altFetch(url, fetchOptions);
|
|
333439
|
+
if (altResponse instanceof Promise) {
|
|
333440
|
+
altResponse.then(resolver).catch(callback);
|
|
333441
|
+
return;
|
|
333442
|
+
}
|
|
333443
|
+
}
|
|
333444
|
+
if (typeof fetch === "function") fetch(url, fetchOptions).then(resolver).catch(callback);
|
|
333445
|
+
else fetchApi(url, fetchOptions).then(resolver).catch(callback);
|
|
333446
|
+
};
|
|
333447
|
+
const requestWithFetch = (options, url, payload, callback) => {
|
|
333448
|
+
if (options.queryStringParams) url = addQueryString(url, options.queryStringParams);
|
|
333449
|
+
const headers = { ...typeof options.customHeaders === "function" ? options.customHeaders() : options.customHeaders };
|
|
333450
|
+
if (typeof window === "undefined" && typeof __webpack_require__.g !== "undefined" && typeof __webpack_require__.g.process !== "undefined" && __webpack_require__.g.process.versions && __webpack_require__.g.process.versions.node) headers["User-Agent"] = `i18next-http-backend (node/${__webpack_require__.g.process.version}; ${__webpack_require__.g.process.platform} ${__webpack_require__.g.process.arch})`;
|
|
333451
|
+
if (payload) headers["Content-Type"] = "application/json";
|
|
333452
|
+
const reqOptions = typeof options.requestOptions === "function" ? options.requestOptions(payload) : options.requestOptions;
|
|
333453
|
+
const fetchOptions = {
|
|
333454
|
+
method: payload ? "POST" : "GET",
|
|
333455
|
+
body: payload ? options.stringify(payload) : void 0,
|
|
333456
|
+
headers,
|
|
333457
|
+
...options._omitFetchOptions ? {} : reqOptions
|
|
333458
|
+
};
|
|
333459
|
+
const altFetch = typeof options.alternateFetch === "function" && options.alternateFetch.length >= 1 ? options.alternateFetch : void 0;
|
|
333460
|
+
try {
|
|
333461
|
+
fetchIt(url, fetchOptions, callback, altFetch);
|
|
333462
|
+
} catch (e) {
|
|
333463
|
+
if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf("not implemented") < 0) return callback(e);
|
|
333464
|
+
try {
|
|
333465
|
+
Object.keys(reqOptions).forEach((opt) => {
|
|
333466
|
+
delete fetchOptions[opt];
|
|
333467
|
+
});
|
|
333468
|
+
fetchIt(url, fetchOptions, callback, altFetch);
|
|
333469
|
+
options._omitFetchOptions = true;
|
|
333470
|
+
} catch (err) {
|
|
333471
|
+
callback(err);
|
|
333472
|
+
}
|
|
333473
|
+
}
|
|
333474
|
+
};
|
|
333475
|
+
const requestWithXmlHttpRequest = (options, url, payload, callback) => {
|
|
333476
|
+
if (payload && typeof payload === "object") payload = addQueryString("", payload).slice(1);
|
|
333477
|
+
if (options.queryStringParams) url = addQueryString(url, options.queryStringParams);
|
|
333478
|
+
try {
|
|
333479
|
+
const x = XmlHttpRequestApi ? new XmlHttpRequestApi() : new ActiveXObjectApi("MSXML2.XMLHTTP.3.0");
|
|
333480
|
+
x.open(payload ? "POST" : "GET", url, 1);
|
|
333481
|
+
if (!options.crossDomain) x.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
|
333482
|
+
x.withCredentials = !!options.withCredentials;
|
|
333483
|
+
if (payload) x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
333484
|
+
if (x.overrideMimeType) x.overrideMimeType("application/json");
|
|
333485
|
+
let h = options.customHeaders;
|
|
333486
|
+
h = typeof h === "function" ? h() : h;
|
|
333487
|
+
if (h) for (const i of Object.keys(h)) {
|
|
333488
|
+
if (UNSAFE_KEYS.indexOf(i) > -1) continue;
|
|
333489
|
+
x.setRequestHeader(i, h[i]);
|
|
333490
|
+
}
|
|
333491
|
+
x.onreadystatechange = () => {
|
|
333492
|
+
x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {
|
|
333493
|
+
status: x.status,
|
|
333494
|
+
data: x.responseText
|
|
333495
|
+
});
|
|
333496
|
+
};
|
|
333497
|
+
x.send(payload);
|
|
333498
|
+
} catch (e) {
|
|
333499
|
+
console && console.log(e);
|
|
333500
|
+
}
|
|
333501
|
+
};
|
|
333502
|
+
const request = (options, url, payload, callback) => {
|
|
333503
|
+
if (typeof payload === "function") {
|
|
333504
|
+
callback = payload;
|
|
333505
|
+
payload = void 0;
|
|
333506
|
+
}
|
|
333507
|
+
callback = callback || (() => {});
|
|
333508
|
+
if (fetchApi && url.indexOf("file:") !== 0) return requestWithFetch(options, url, payload, callback);
|
|
333509
|
+
if (hasXMLHttpRequest() || typeof ActiveXObject === "function") return requestWithXmlHttpRequest(options, url, payload, callback);
|
|
333510
|
+
callback(/* @__PURE__ */ new Error("No fetch and no xhr implementation found!"));
|
|
333511
|
+
};
|
|
333512
|
+
//#endregion
|
|
333513
|
+
//#region lib/index.js
|
|
333514
|
+
const getDefaults = () => {
|
|
333515
|
+
return {
|
|
333516
|
+
loadPath: "/locales/{{lng}}/{{ns}}.json",
|
|
333517
|
+
addPath: "/locales/add/{{lng}}/{{ns}}",
|
|
333518
|
+
parse: (data) => JSON.parse(data),
|
|
333519
|
+
stringify: JSON.stringify,
|
|
333520
|
+
parsePayload: (namespace, key, fallbackValue) => ({ [key]: fallbackValue || "" }),
|
|
333521
|
+
parseLoadPayload: (languages, namespaces) => void 0,
|
|
333522
|
+
request,
|
|
333523
|
+
reloadInterval: typeof window !== "undefined" ? false : 3600 * 1e3,
|
|
333524
|
+
customHeaders: {},
|
|
333525
|
+
queryStringParams: {},
|
|
333526
|
+
crossDomain: false,
|
|
333527
|
+
withCredentials: false,
|
|
333528
|
+
overrideMimeType: false,
|
|
333529
|
+
requestOptions: {
|
|
333530
|
+
mode: "cors",
|
|
333531
|
+
credentials: "same-origin",
|
|
333532
|
+
cache: "default"
|
|
333533
|
+
}
|
|
333534
|
+
};
|
|
333535
|
+
};
|
|
333536
|
+
var Backend = class {
|
|
333537
|
+
constructor(services, options = {}, allOptions = {}) {
|
|
333538
|
+
this.services = services;
|
|
333539
|
+
this.options = options;
|
|
333540
|
+
this.allOptions = allOptions;
|
|
333541
|
+
this.type = "backend";
|
|
333542
|
+
this.init(services, options, allOptions);
|
|
333543
|
+
}
|
|
333544
|
+
init(services, options = {}, allOptions = {}) {
|
|
333545
|
+
this.services = services;
|
|
333546
|
+
this.options = {
|
|
333547
|
+
...getDefaults(),
|
|
333548
|
+
...this.options || {},
|
|
333549
|
+
...options
|
|
333550
|
+
};
|
|
333551
|
+
this.allOptions = allOptions;
|
|
333552
|
+
if (this.services && this.options.reloadInterval) {
|
|
333553
|
+
const timer = setInterval(() => this.reload(), this.options.reloadInterval);
|
|
333554
|
+
if (typeof timer === "object" && typeof timer.unref === "function") timer.unref();
|
|
333555
|
+
}
|
|
333556
|
+
}
|
|
333557
|
+
readMulti(languages, namespaces, callback) {
|
|
333558
|
+
this._readAny(languages, languages, namespaces, namespaces, callback);
|
|
333559
|
+
}
|
|
333560
|
+
read(language, namespace, callback) {
|
|
333561
|
+
this._readAny([language], language, [namespace], namespace, callback);
|
|
333562
|
+
}
|
|
333563
|
+
_readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {
|
|
333564
|
+
let loadPath = this.options.loadPath;
|
|
333565
|
+
if (typeof this.options.loadPath === "function") loadPath = this.options.loadPath(languages, namespaces);
|
|
333566
|
+
loadPath = makePromise(loadPath);
|
|
333567
|
+
loadPath.then((resolvedLoadPath) => {
|
|
333568
|
+
if (!resolvedLoadPath) return callback(null, {});
|
|
333569
|
+
const url = interpolateUrl(resolvedLoadPath, {
|
|
333570
|
+
lng: languages.join("+"),
|
|
333571
|
+
ns: namespaces.join("+")
|
|
333572
|
+
});
|
|
333573
|
+
if (url == null) {
|
|
333574
|
+
const safeLngs = languages.map(sanitizeLogValue).join(", ");
|
|
333575
|
+
const safeNss = namespaces.map(sanitizeLogValue).join(", ");
|
|
333576
|
+
return callback(/* @__PURE__ */ new Error("i18next-http-backend: unsafe lng/ns value — refusing to build request URL for languages=[" + safeLngs + "] namespaces=[" + safeNss + "]"), false);
|
|
333577
|
+
}
|
|
333578
|
+
this.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);
|
|
333579
|
+
}, (err) => callback(err, false));
|
|
333580
|
+
}
|
|
333581
|
+
loadUrl(url, callback, languages, namespaces) {
|
|
333582
|
+
const lng = typeof languages === "string" ? [languages] : languages;
|
|
333583
|
+
const ns = typeof namespaces === "string" ? [namespaces] : namespaces;
|
|
333584
|
+
const payload = this.options.parseLoadPayload(lng, ns);
|
|
333585
|
+
const safeUrl = sanitizeLogValue(redactUrlCredentials(url));
|
|
333586
|
+
this.options.request(this.options, url, payload, (err, res) => {
|
|
333587
|
+
if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback("failed loading " + safeUrl + "; status code: " + res.status, true);
|
|
333588
|
+
if (res && res.status >= 400 && res.status < 500) return callback("failed loading " + safeUrl + "; status code: " + res.status, false);
|
|
333589
|
+
if (!res && err && err.message) {
|
|
333590
|
+
const errorMessage = err.message.toLowerCase();
|
|
333591
|
+
if ([
|
|
333592
|
+
"failed",
|
|
333593
|
+
"fetch",
|
|
333594
|
+
"network",
|
|
333595
|
+
"load"
|
|
333596
|
+
].find((term) => errorMessage.indexOf(term) > -1)) return callback("failed loading " + safeUrl + ": " + sanitizeLogValue(err.message), true);
|
|
333597
|
+
}
|
|
333598
|
+
if (err) return callback(err, false);
|
|
333599
|
+
let ret, parseErr;
|
|
333600
|
+
try {
|
|
333601
|
+
if (typeof res.data === "string") ret = this.options.parse(res.data, languages, namespaces);
|
|
333602
|
+
else ret = res.data;
|
|
333603
|
+
} catch (e) {
|
|
333604
|
+
parseErr = "failed parsing " + safeUrl + " to json";
|
|
333605
|
+
}
|
|
333606
|
+
if (parseErr) return callback(parseErr, false);
|
|
333607
|
+
callback(null, ret);
|
|
333608
|
+
});
|
|
333609
|
+
}
|
|
333610
|
+
create(languages, namespace, key, fallbackValue, callback) {
|
|
333611
|
+
if (!this.options.addPath) return;
|
|
333612
|
+
if (typeof languages === "string") languages = [languages];
|
|
333613
|
+
const payload = this.options.parsePayload(namespace, key, fallbackValue);
|
|
333614
|
+
let finished = 0;
|
|
333615
|
+
const dataArray = [];
|
|
333616
|
+
const resArray = [];
|
|
333617
|
+
languages.forEach((lng) => {
|
|
333618
|
+
let addPath = this.options.addPath;
|
|
333619
|
+
if (typeof this.options.addPath === "function") addPath = this.options.addPath(lng, namespace);
|
|
333620
|
+
const url = interpolateUrl(addPath, {
|
|
333621
|
+
lng,
|
|
333622
|
+
ns: namespace
|
|
333623
|
+
});
|
|
333624
|
+
if (url == null) {
|
|
333625
|
+
finished += 1;
|
|
333626
|
+
if (callback && finished === languages.length) callback(dataArray, resArray);
|
|
333627
|
+
return;
|
|
333628
|
+
}
|
|
333629
|
+
this.options.request(this.options, url, payload, (data, res) => {
|
|
333630
|
+
finished += 1;
|
|
333631
|
+
dataArray.push(data);
|
|
333632
|
+
resArray.push(res);
|
|
333633
|
+
if (finished === languages.length) {
|
|
333634
|
+
if (typeof callback === "function") callback(dataArray, resArray);
|
|
333635
|
+
}
|
|
333636
|
+
});
|
|
333637
|
+
});
|
|
333638
|
+
}
|
|
333639
|
+
reload() {
|
|
333640
|
+
const { backendConnector, languageUtils, logger } = this.services;
|
|
333641
|
+
const currentLanguage = backendConnector.language;
|
|
333642
|
+
if (currentLanguage && currentLanguage.toLowerCase() === "cimode") return;
|
|
333643
|
+
const toLoad = [];
|
|
333644
|
+
const append = (lng) => {
|
|
333645
|
+
languageUtils.toResolveHierarchy(lng).forEach((l) => {
|
|
333646
|
+
if (toLoad.indexOf(l) < 0) toLoad.push(l);
|
|
333647
|
+
});
|
|
333648
|
+
};
|
|
333649
|
+
append(currentLanguage);
|
|
333650
|
+
if (this.allOptions.preload) this.allOptions.preload.forEach((l) => append(l));
|
|
333651
|
+
toLoad.forEach((lng) => {
|
|
333652
|
+
this.allOptions.ns.forEach((ns) => {
|
|
333653
|
+
backendConnector.read(lng, ns, "read", null, null, (err, data) => {
|
|
333654
|
+
if (err) logger.warn(`loading namespace ${ns} for language ${lng} failed`, err);
|
|
333655
|
+
if (!err && data) logger.log(`loaded namespace ${ns} for language ${lng}`, data);
|
|
333656
|
+
backendConnector.loaded(`${lng}|${ns}`, err, data);
|
|
333657
|
+
});
|
|
333658
|
+
});
|
|
333659
|
+
});
|
|
333660
|
+
}
|
|
333661
|
+
};
|
|
333662
|
+
Backend.type = "backend";
|
|
333663
|
+
//#endregion
|
|
333664
|
+
|
|
333665
|
+
|
|
333264
333666
|
|
|
333265
333667
|
/***/ },
|
|
333266
333668
|
|
|
@@ -337329,7 +337731,7 @@ class WMS {
|
|
|
337329
337731
|
(module) {
|
|
337330
337732
|
|
|
337331
337733
|
"use strict";
|
|
337332
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.15.0-dev.
|
|
337734
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.15.0-dev.20","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 build:workers && npm run -s copy:draco","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:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./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 && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","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","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 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":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.12","@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/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.4","vitest":"^4.1.10"},"//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/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
|
|
337333
337735
|
|
|
337334
337736
|
/***/ },
|
|
337335
337737
|
|
|
@@ -337340,7 +337742,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","versio
|
|
|
337340
337742
|
(module) {
|
|
337341
337743
|
|
|
337342
337744
|
"use strict";
|
|
337343
|
-
module.exports = /*#__PURE__*/JSON.parse('{"version":"01.00.00","sourceEcSchemaVersion":"01.00.11","name":"Units","alias":"u","label":"Units","description":"Standard Set of Unit definitions for the system","items":{"SI":{"schemaItemType":"UnitSystem"},"CGS":{"schemaItemType":"UnitSystem"},"METRIC":{"schemaItemType":"UnitSystem"},"IMPERIAL":{"schemaItemType":"UnitSystem"},"MARITIME":{"schemaItemType":"UnitSystem"},"USSURVEY":{"schemaItemType":"UnitSystem"},"INDUSTRIAL":{"schemaItemType":"UnitSystem"},"INTERNATIONAL":{"schemaItemType":"UnitSystem"},"USCUSTOM":{"schemaItemType":"UnitSystem"},"STATISTICS":{"schemaItemType":"UnitSystem"},"FINANCE":{"schemaItemType":"UnitSystem"},"CONSTANT":{"schemaItemType":"UnitSystem"},"APPARENT_POWER":{"schemaItemType":"Phenomenon","label":"Apparent Power","definition":"ELECTRIC_POTENTIAL*CURRENT"},"AREA":{"schemaItemType":"Phenomenon","label":"Area","definition":"LENGTH(2)"},"VOLUME":{"schemaItemType":"Phenomenon","label":"Volume","definition":"LENGTH(3)"},"VELOCITY":{"schemaItemType":"Phenomenon","label":"Velocity","definition":"LENGTH*TIME(-1)"},"ANGULAR_VELOCITY":{"schemaItemType":"Phenomenon","label":"Angular Velocity","definition":"ANGLE*TIME(-1)"},"ACCELERATION":{"schemaItemType":"Phenomenon","label":"Acceleration","definition":"LENGTH*TIME(-2)"},"FORCE":{"schemaItemType":"Phenomenon","label":"Force","definition":"MASS*ACCELERATION"},"PRESSURE":{"schemaItemType":"Phenomenon","label":"Pressure","definition":"FORCE*AREA(-1)"},"FORCE_DENSITY":{"schemaItemType":"Phenomenon","label":"Force Density","definition":"FORCE*VOLUME(-1)"},"PRESSURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Pressure Gradient","definition":"PRESSURE*LENGTH(-1)"},"TORQUE":{"schemaItemType":"Phenomenon","label":"Torque","definition":"FORCE*LENGTH*ANGLE(-1)"},"LINEAR_TORQUE":{"schemaItemType":"Phenomenon","label":"Linear Torque","definition":"TORQUE*LENGTH(-1)"},"AREA_TORQUE":{"schemaItemType":"Phenomenon","label":"Area Torque","definition":"TORQUE*AREA(-1)"},"AREA_MOMENT_INERTIA":{"schemaItemType":"Phenomenon","label":"Area Moment Inertia","definition":"LENGTH(4)"},"MASS_RATIO":{"schemaItemType":"Phenomenon","label":"Mass Ratio","definition":"MASS*MASS(-1)"},"DENSITY":{"schemaItemType":"Phenomenon","label":"Density","definition":"MASS*VOLUME(-1)"},"SPECIFIC_VOLUME":{"schemaItemType":"Phenomenon","label":"Specific Volume","definition":"VOLUME*MASS(-1)"},"LINEAR_DENSITY":{"schemaItemType":"Phenomenon","label":"Linear Density","definition":"MASS*LENGTH(-1)"},"SURFACE_DENSITY":{"schemaItemType":"Phenomenon","label":"Surface Density","definition":"MASS*AREA(-1)"},"WORK":{"schemaItemType":"Phenomenon","label":"Work","definition":"FORCE*LENGTH"},"POWER":{"schemaItemType":"Phenomenon","label":"Power","definition":"WORK*TIME(-1)"},"VOLUMETRIC_FLOW":{"schemaItemType":"Phenomenon","label":"Volumetric Flow","definition":"VOLUME*TIME(-1)"},"FLOW_DENSITY_PER_AREA":{"schemaItemType":"Phenomenon","label":"Flow Density per Area","description":"Flow demanded by or discharged to a Water/Sewer network per area.","definition":"VOLUMETRIC_FLOW*AREA(-1)"},"MASS_FLOW":{"schemaItemType":"Phenomenon","label":"Mass Flow","definition":"MASS*TIME(-1)"},"MOLAR_FLOW":{"schemaItemType":"Phenomenon","label":"Molar Flow","definition":"MOLE*TIME(-1)"},"DYNAMIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Dynamic Viscosity","definition":"PRESSURE*TIME"},"KINEMATIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Kinematic Viscosity","definition":"DYNAMIC_VISCOSITY*DENSITY(-1)"},"ELECTRIC_CHARGE":{"schemaItemType":"Phenomenon","label":"Electric Charge","definition":"CURRENT*TIME"},"ELECTRIC_POTENTIAL":{"schemaItemType":"Phenomenon","label":"Electric Potential","definition":"POWER*CURRENT(-1)"},"LUMINOUS_FLUX":{"schemaItemType":"Phenomenon","label":"Luminous Flux","definition":"LUMINOSITY*SOLIDANGLE"},"ILLUMINANCE":{"schemaItemType":"Phenomenon","label":"Illuminance","definition":"LUMINOUS_FLUX*LENGTH(-2)"},"ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Rotational Spring Constant","definition":"TORQUE*ANGLE(-1)"},"LINEAR_ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Rotational Spring Constant","definition":"FORCE*ANGLE(-1)"},"SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Spring Constant","definition":"FORCE*LENGTH(-1)"},"LINEAR_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Spring Constant","definition":"SPRING_CONSTANT*LENGTH(-1)"},"AREA_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Area Spring Constant","definition":"SPRING_CONSTANT*AREA(-1)"},"PIPE_DIAMETER_LENGTH":{"schemaItemType":"Phenomenon","label":"Pipe Diameter-Length","description":"The diameter of a pipe multiplied by its length, used as a coefficient for pipe-infiltration calculations.","definition":"LENGTH*LENGTH"},"THERMAL_CONDUCTIVITY":{"schemaItemType":"Phenomenon","label":"Thermal Conductivity","definition":"POWER*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"THERMAL_INSULANCE":{"schemaItemType":"Phenomenon","label":"Thermal Resistance","definition":"AREA*TEMPERATURE_CHANGE*POWER(-1)"},"TEMPERATURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Temperature Gradient","definition":"TEMPERATURE_CHANGE*LENGTH(-1)"},"MOLAR_VOLUME":{"schemaItemType":"Phenomenon","label":"Molar Volume","definition":"VOLUME*MOLE(-1)"},"MOLAR_CONCENTRATION":{"schemaItemType":"Phenomenon","label":"Molar Concentration","definition":"MOLE*VOLUME(-1)"},"SLOPE":{"schemaItemType":"Phenomenon","label":"Slope","definition":"LENGTH*LENGTH(-1)"},"HEAT_TRANSFER":{"schemaItemType":"Phenomenon","label":"Heat Transfer","description":"https://en.wikipedia.org/wiki/Heat_transfer_coefficient","definition":"POWER*AREA(-1)*TEMPERATURE_CHANGE(-1)"},"HEAT_FLUX_DENSITY":{"schemaItemType":"Phenomenon","label":"Heat Flux Density","description":"https://en.wikipedia.org/wiki/Heat_flux see description of heat flux density","definition":"POWER*AREA(-1)"},"TORSIONAL_WARPING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Torsional Warping Constant","definition":"LENGTH(6)"},"POPULATION_DENSITY":{"schemaItemType":"Phenomenon","label":"Population Density","definition":"CAPITA*AREA(-1)"},"FREQUENCY":{"schemaItemType":"Phenomenon","label":"Frequency","definition":"TIME(-1)"},"LINEAR_LOAD":{"schemaItemType":"Phenomenon","label":"Linear Load","definition":"FORCE*LENGTH(-1)"},"ENERGY_DENSITY":{"schemaItemType":"Phenomenon","label":"Energy Density","definition":"WORK*VOLUME(-1)"},"ELECTRICAL_RESISTANCE":{"schemaItemType":"Phenomenon","label":"Electrical Resistance","definition":"ELECTRIC_POTENTIAL*CURRENT(-1)"},"ELECTRICAL_RESISTIVITY":{"schemaItemType":"Phenomenon","label":"Electrical Resistivity","definition":"ELECTRICAL_RESISTANCE*LENGTH"},"SPECIFIC_ENERGY":{"schemaItemType":"Phenomenon","label":"Specific Energy","definition":"WORK*MASS(-1)"},"SPECIFIC_HEAT_CAPACITY":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity","definition":"WORK*MASS(-1)*TEMPERATURE_CHANGE(-1)"},"SPECIFIC_HEAT_CAPACITY_MOLAR":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity Molar","definition":"WORK*MOLE(-1)*TEMPERATURE_CHANGE(-1)"},"PERCENTAGE":{"schemaItemType":"Phenomenon","label":"Percentage","definition":"NUMBER"},"PROBABILITY":{"schemaItemType":"Phenomenon","label":"Probability","definition":"NUMBER"},"LINEAR_RATE":{"schemaItemType":"Phenomenon","label":"Linear Rate","definition":"NUMBER*LENGTH(-1)"},"LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION":{"schemaItemType":"Phenomenon","label":"Linear Coefficient Of Thermal Expansion","definition":"LENGTH*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"VOLUME_RATIO":{"schemaItemType":"Phenomenon","label":"Volume Ratio","definition":"VOLUME*VOLUME(-1)"},"LENGTH_RATIO":{"schemaItemType":"Phenomenon","definition":"LENGTH*LENGTH(-1)"},"VOLUME_PER_LENGTH":{"schemaItemType":"Phenomenon","label":"Volume per Unit Length","definition":"VOLUME*LENGTH(-1)"},"LENGTH":{"schemaItemType":"Phenomenon","label":"Length","definition":"LENGTH"},"MASS":{"schemaItemType":"Phenomenon","label":"Mass","definition":"MASS"},"TIME":{"schemaItemType":"Phenomenon","label":"Time","definition":"TIME"},"TEMPERATURE":{"schemaItemType":"Phenomenon","label":"Temperature","definition":"TEMPERATURE"},"TEMPERATURE_CHANGE":{"schemaItemType":"Phenomenon","label":"Temperature Change","definition":"TEMPERATURE_CHANGE"},"CURRENT":{"schemaItemType":"Phenomenon","label":"Current","definition":"CURRENT"},"MOLE":{"schemaItemType":"Phenomenon","label":"Mole","definition":"MOLE"},"LUMINOSITY":{"schemaItemType":"Phenomenon","label":"Luminosity","definition":"LUMINOSITY"},"ANGLE":{"schemaItemType":"Phenomenon","label":"Angle","definition":"ANGLE"},"HORIZONTAL_DIRECTION":{"schemaItemType":"Phenomenon","label":"Horizontal Direction","definition":"HORIZONTAL_DIRECTION"},"SOLIDANGLE":{"schemaItemType":"Phenomenon","label":"Solid Angle","definition":"SOLIDANGLE"},"CURRENCY":{"schemaItemType":"Phenomenon","definition":"CURRENCY"},"CAPITA":{"schemaItemType":"Phenomenon","label":"Capita","definition":"CAPITA"},"NUMBER":{"schemaItemType":"Phenomenon","label":"Number","definition":"NUMBER"},"THREAD_PITCH":{"schemaItemType":"Phenomenon","label":"Thread Pitch","definition":"LENGTH*ANGLE(-1)"},"ENTROPY":{"schemaItemType":"Phenomenon","label":"Entropy","definition":"WORK*TEMPERATURE_CHANGE(-1)"},"LUMINOUS_EFFICACY":{"schemaItemType":"Phenomenon","label":"Luminous Efficacy","definition":"LUMINOUS_FLUX*POWER(-1)"},"MOMENT_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Moment Scale","description":"Display size of the linear moment","definition":"FORCE(-1)"},"FORCE_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Force Scale","description":"Display size of the force","definition":"LINEAR_LOAD(-1)"},"PI":{"schemaItemType":"Constant","label":"Pi","phenomenon":"Units.LENGTH_RATIO","definition":"ONE","numerator":3.141592653589793},"QUARTER_PI":{"schemaItemType":"Constant","label":"Pi/4","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":4},"HALF_PI":{"schemaItemType":"Constant","label":"Pi/2","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":2},"TWO_PI":{"schemaItemType":"Constant","label":"2Pi","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":2},"DEG360":{"schemaItemType":"Constant","label":"360°","phenomenon":"Units.ANGLE","definition":"ARC_DEG","numerator":360},"STD_G":{"schemaItemType":"Constant","label":"ɡ0","phenomenon":"Units.ACCELERATION","definition":"M*S(-2)","numerator":9.80665},"DECI":{"schemaItemType":"Constant","label":"deci","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.1},"CENTI":{"schemaItemType":"Constant","label":"centi","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.01},"MILLI":{"schemaItemType":"Constant","label":"milli","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.001},"MICRO":{"schemaItemType":"Constant","label":"micro","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.000001},"NANO":{"schemaItemType":"Constant","label":"nano","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-9},"PICO":{"schemaItemType":"Constant","label":"pico","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-12},"FEMTO":{"schemaItemType":"Constant","label":"femto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-15},"ATTO":{"schemaItemType":"Constant","label":"atto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-18},"ZEPTO":{"schemaItemType":"Constant","label":"zepto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-21},"YOCTO":{"schemaItemType":"Constant","label":"yocto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-24},"DECA":{"schemaItemType":"Constant","phenomenon":"Units.NUMBER","definition":"ONE","numerator":10},"HECTO":{"schemaItemType":"Constant","label":"hecto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":100},"KILO":{"schemaItemType":"Constant","label":"kilo","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000},"MEGA":{"schemaItemType":"Constant","label":"mega","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000},"GIGA":{"schemaItemType":"Constant","label":"giga","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000},"TERA":{"schemaItemType":"Constant","label":"tera","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000},"PETA":{"schemaItemType":"Constant","label":"peta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000},"EXA":{"schemaItemType":"Constant","label":"exa","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000000},"ZETTA":{"schemaItemType":"Constant","label":"zetta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+21},"YOTTA":{"schemaItemType":"Constant","label":"yotta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+24},"MM":{"schemaItemType":"Unit","label":"mm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MILLI]*M"},"CM":{"schemaItemType":"Unit","label":"cm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[CENTI]*M"},"DM":{"schemaItemType":"Unit","label":"dm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[DECI]*M"},"KM":{"schemaItemType":"Unit","label":"km","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[KILO]*M"},"UM":{"schemaItemType":"Unit","label":"µm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MICRO]*M"},"MILLIINCH":{"schemaItemType":"Unit","label":"mil","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*IN"},"MICROINCH":{"schemaItemType":"Unit","label":"µin","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MICRO]*IN"},"MILLIFOOT":{"schemaItemType":"Unit","label":"mft","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*FT"},"IN":{"schemaItemType":"Unit","label":"in","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.1, Page B-10","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"MM","numerator":25.4},"FT":{"schemaItemType":"Unit","label":"ft","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"IN","numerator":12},"YRD":{"schemaItemType":"Unit","label":"yd","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":3},"CHAIN":{"schemaItemType":"Unit","label":"chain","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":66},"MILE":{"schemaItemType":"Unit","label":"mi","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"YRD","numerator":1760},"US_SURVEY_IN":{"schemaItemType":"Unit","label":"in (US Survey)","description":"100/3937 Derived from the definition of us survey foot in terms of meters. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"M","numerator":100,"denominator":3937},"US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN","numerator":12},"US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":3},"US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":66},"US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mi (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD","numerator":1760},"NAUT_MILE":{"schemaItemType":"Unit","label":"nmi","description":"International Nautical Mile. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.MARITIME","definition":"M","numerator":1852},"G":{"schemaItemType":"Unit","label":"g","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*KG"},"MG":{"schemaItemType":"Unit","label":"mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*G"},"MKG":{"schemaItemType":"Unit","label":"µg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MICRO]*G"},"NG":{"schemaItemType":"Unit","label":"ng","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[NANO]*G"},"MEGAGRAM":{"schemaItemType":"Unit","label":"Mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MEGA]*G"},"TONNE":{"schemaItemType":"Unit","label":"tonne","description":"Also known as a metric ton http://phyMETRICcs.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[KILO]*KG"},"LBM":{"schemaItemType":"Unit","label":"lb","description":"Is Avoirdupois Pound. Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Footnote 22","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"KG","numerator":0.45359237},"SLUG":{"schemaItemType":"Unit","label":"slug","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBF*S(2)*FT(-1)"},"GRM":{"schemaItemType":"Unit","label":"gr","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.2, Page B-10","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":7000},"SHORT_TON_MASS":{"schemaItemType":"Unit","label":"tn (short)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2000},"LONG_TON_MASS":{"schemaItemType":"Unit","label":"tn (long)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2240},"KIPM":{"schemaItemType":"Unit","label":"kipm","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBM"},"OZM":{"schemaItemType":"Unit","label":"oz","description":"1/16 Exact, https://en.wikipedia.org/wiki/Ounce","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":16},"MIN":{"schemaItemType":"Unit","label":"min","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":60},"HR":{"schemaItemType":"Unit","label":"h","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"MIN","numerator":60},"DAY":{"schemaItemType":"Unit","label":"days","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"HR","numerator":24},"WEEK":{"schemaItemType":"Unit","label":"week","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":7},"YR":{"schemaItemType":"Unit","label":"years","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Year is 3.1536 E+07 seconds which is equal to 365 * 24 * 60 * 60","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":365},"YEAR_SIDEREAL":{"schemaItemType":"Unit","label":"Year (Sidereal)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31558150},"YEAR_TROPICAL":{"schemaItemType":"Unit","label":"Year (Tropical)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31556930},"MS":{"schemaItemType":"Unit","label":"ms","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MILLI]*S"},"MKS":{"schemaItemType":"Unit","label":"µs","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MICRO]*S"},"CELSIUS":{"schemaItemType":"Unit","label":"°C","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.METRIC","definition":"K","offset":273.15},"FAHRENHEIT":{"schemaItemType":"Unit","label":"°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"CELSIUS","numerator":5,"denominator":9,"offset":-32},"RANKINE":{"schemaItemType":"Unit","label":"°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"K","numerator":5,"denominator":9},"DELTA_CELSIUS":{"schemaItemType":"Unit","label":"Δ°C","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.METRIC","definition":"DELTA_KELVIN"},"DELTA_FAHRENHEIT":{"schemaItemType":"Unit","label":"Δ°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_CELSIUS","numerator":5,"denominator":9},"DELTA_RANKINE":{"schemaItemType":"Unit","label":"Δ°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_KELVIN","numerator":5,"denominator":9},"KELVIN_PER_M":{"schemaItemType":"Unit","label":"ΔK/m","phenomenon":"Units.TEMPERATURE_GRADIENT","unitSystem":"Units.SI","definition":"DELTA_KELVIN*M(-1)"},"STRAIN_PER_KELVIN":{"schemaItemType":"Unit","label":"1/ΔK","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.SI","definition":"DELTA_KELVIN(-1)"},"STRAIN_PER_CELSIUS":{"schemaItemType":"Unit","label":"1/Δ°C","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.METRIC","definition":"DELTA_CELSIUS(-1)"},"STRAIN_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"1/Δ°F","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_FAHRENHEIT(-1)"},"STRAIN_PER_RANKINE":{"schemaItemType":"Unit","label":"1/Δ°R","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_RANKINE(-1)"},"LUMEN":{"schemaItemType":"Unit","label":"lm","phenomenon":"Units.LUMINOUS_FLUX","unitSystem":"Units.SI","definition":"CD*STERAD"},"LUX":{"schemaItemType":"Unit","label":"lx","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.SI","definition":"LUMEN*M(-2)"},"LUMEN_PER_SQ_FT":{"schemaItemType":"Unit","label":"lm/ft²","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.USCUSTOM","definition":"LUMEN*FT(-2)"},"KMOL":{"schemaItemType":"Unit","label":"kmol","phenomenon":"Units.MOLE","unitSystem":"Units.METRIC","definition":"[KILO]*MOL"},"LB_MOL":{"schemaItemType":"Unit","label":"lb-mol","description":"ASTM SI 10 standard SI1-.phhc8328.pdf page 29, 35 and http://en.wikipedia.org/wiki/Mole_%28unit%29","phenomenon":"Units.MOLE","unitSystem":"Units.USCUSTOM","definition":"MOL","numerator":453.59237},"HUNDRED_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[HECTO]*PERSON"},"THOUSAND_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[KILO]*PERSON"},"N_M_PER_RAD":{"schemaItemType":"Unit","label":"N·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N_M*RAD(-1)"},"KN_M_PER_RAD":{"schemaItemType":"Unit","label":"kN·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*RAD(-1)"},"N_M_PER_DEG":{"schemaItemType":"Unit","label":"N·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"N_M*ARC_DEG(-1)"},"KN_M_PER_DEG":{"schemaItemType":"Unit","label":"kN·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*ARC_DEG(-1)"},"KPF_FT_PER_RAD":{"schemaItemType":"Unit","label":"kpf·ft/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*RAD(-1)"},"KPF_FT_PER_DEG":{"schemaItemType":"Unit","label":"kpf·ft/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*ARC_DEG(-1)"},"N_PER_RAD":{"schemaItemType":"Unit","label":"N/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*RAD(-1)"},"KN_PER_RAD":{"schemaItemType":"Unit","label":"kN/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*RAD(-1)"},"KPF_PER_RAD":{"schemaItemType":"Unit","label":"kpf/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*RAD(-1)"},"SPRING_CONSTANT_N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*M(-1)"},"SPRING_CONSTANT_KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"SPRING_CONSTANT_KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"LINEAR_SPRING_CONSTANT_N_PER_SQ_M":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KN_PER_SQ_M":{"schemaItemType":"Unit","label":"kN/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KPF_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf/ft²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*FT(-1)"},"AREA_SPRING_CONSTANT_N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*SQ_FT(-1)"},"M_PER_SEC_SQ":{"schemaItemType":"Unit","label":"m/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.SI","definition":"M*S(-2)"},"CM_PER_SEC_SQ":{"schemaItemType":"Unit","label":"cm/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.METRIC","definition":"CM*S(-2)"},"FT_PER_SEC_SQ":{"schemaItemType":"Unit","label":"ft/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.USCUSTOM","definition":"FT*S(-2)"},"ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":180},"ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":60},"ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":3600},"ARC_QUADRANT":{"schemaItemType":"Unit","label":"quadrants","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[HALF_PI]*RAD"},"GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":200},"REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD"},"HORIZONTAL_DIR_ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":180},"HORIZONTAL_DIR_ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":60},"HORIZONTAL_DIR_ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":3600},"HORIZONTAL_DIR_GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":200},"HORIZONTAL_DIR_MILLIRAD":{"schemaItemType":"Unit","label":"mrad","description":"1/1000","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":1000},"HORIZONTAL_DIR_REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[TWO_PI]*HORIZONTAL_DIR_RAD"},"SQ_M":{"schemaItemType":"Unit","label":"m²","phenomenon":"Units.AREA","unitSystem":"Units.SI","definition":"M(2)"},"SQ_UM":{"schemaItemType":"Unit","label":"um²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"UM(2)"},"SQ_MM":{"schemaItemType":"Unit","label":"mm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"MM(2)"},"SQ_CM":{"schemaItemType":"Unit","label":"cm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"CM(2)"},"SQ_DM":{"schemaItemType":"Unit","label":"dm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"DM(2)"},"SQ_KM":{"schemaItemType":"Unit","label":"km²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"KM(2)"},"ARE":{"schemaItemType":"Unit","label":"are","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*M(2)"},"HECTARE":{"schemaItemType":"Unit","label":"ha","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*ARE"},"SQ_IN":{"schemaItemType":"Unit","label":"in²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"IN(2)"},"SQ_FT":{"schemaItemType":"Unit","label":"ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"FT(2)"},"THOUSAND_SQ_FT":{"schemaItemType":"Unit","label":"thousand ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"[KILO]*FT(2)"},"SQ_YRD":{"schemaItemType":"Unit","label":"yd²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"YRD(2)"},"SQ_MILE":{"schemaItemType":"Unit","label":"mi²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"MILE(2)"},"SQ_CHAIN":{"schemaItemType":"Unit","label":"chain²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)"},"ACRE":{"schemaItemType":"Unit","label":"acres","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)","numerator":10},"SQ_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(2)"},"SQ_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(2)"},"SQ_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(2)"},"SQ_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(2)"},"SQ_US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)"},"US_SURVEY_ACRE":{"schemaItemType":"Unit","label":"acre (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)","numerator":10},"IN_MILE":{"schemaItemType":"Unit","label":"in·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*MILE"},"FT_MILE":{"schemaItemType":"Unit","label":"ft·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*MILE"},"FT_FT":{"schemaItemType":"Unit","label":"ft·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*FT"},"IN_FT":{"schemaItemType":"Unit","label":"in·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*FT"},"IN_M":{"schemaItemType":"Unit","label":"in·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*M"},"MM_KM":{"schemaItemType":"Unit","label":"mm·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*KM"},"MM_M":{"schemaItemType":"Unit","label":"mm·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*M"},"MM_MILE":{"schemaItemType":"Unit","label":"mm·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*MILE"},"M_KM":{"schemaItemType":"Unit","label":"m·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"M*KM"},"M_M":{"schemaItemType":"Unit","label":"m·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.SI","definition":"M*M"},"KG_PER_CUB_M":{"schemaItemType":"Unit","label":"kg/m³","phenomenon":"Units.DENSITY","unitSystem":"Units.SI","definition":"KG*M(-3)"},"KG_PER_CUB_CM":{"schemaItemType":"Unit","label":"kg/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*CM(-3)"},"KG_PER_LITRE":{"schemaItemType":"Unit","label":"kg/dm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*DM(-3)"},"G_PER_CUB_CM":{"schemaItemType":"Unit","label":"g/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"G*CM(-3)"},"MKG_PER_LITRE":{"schemaItemType":"Unit","label":"µg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MKG*DM(-3)"},"MG_PER_LITRE":{"schemaItemType":"Unit","label":"mg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MG*DM(-3)"},"LBM_PER_CUB_FT":{"schemaItemType":"Unit","label":"lb/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-3)"},"LBM_PER_GALLON":{"schemaItemType":"Unit","label":"lb/gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*GALLON(-1)"},"LBM_PER_GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"lb/gal (imp)","phenomenon":"Units.DENSITY","unitSystem":"Units.IMPERIAL","definition":"LBM*GALLON_IMPERIAL(-1)"},"LBM_PER_CUB_IN":{"schemaItemType":"Unit","label":"lb/in³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*IN(-3)"},"LBM_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"lb/million gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*[MEGA](-1)*GALLON(-1)"},"SLUG_PER_CUB_FT":{"schemaItemType":"Unit","label":"slug/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SLUG*FT(-3)"},"KIP_PER_CUB_FT":{"schemaItemType":"Unit","label":"kip/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"KIPM*FT(-3)"},"SHORT_TON_PER_CUB_FT":{"schemaItemType":"Unit","label":"tn (short)/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*FT(-3)"},"N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.SI","definition":"N*M(-3)"},"KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.METRIC","definition":"[KILO]*N*M(-3)"},"KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-3)"},"N_PER_CUB_FT":{"schemaItemType":"Unit","label":"N/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"N*FT(-3)"},"KN_PER_CUB_FT":{"schemaItemType":"Unit","label":"kN/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"[KILO]*N*FT(-3)"},"PERSON_PER_SQ_M":{"schemaItemType":"Unit","label":"p/m²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.SI","definition":"PERSON*M(-2)"},"PERSON_PER_HECTARE":{"schemaItemType":"Unit","label":"p/ha","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*HECTARE(-1)"},"PERSON_PER_SQ_KM":{"schemaItemType":"Unit","label":"p/km²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*KM(-2)"},"PERSON_PER_ACRE":{"schemaItemType":"Unit","label":"p/acre","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*ACRE(-1)"},"PERSON_PER_SQ_FT":{"schemaItemType":"Unit","label":"p/ft²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*FT(-2)"},"PERSON_PER_SQ_MILE":{"schemaItemType":"Unit","label":"p/mi²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*MILE(-2)"},"KILOAMPERE":{"schemaItemType":"Unit","label":"KA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[KILO]*A"},"MILLIAMPERE":{"schemaItemType":"Unit","label":"mA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MILLI]*A"},"MICROAMPERE":{"schemaItemType":"Unit","label":"µA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MICRO]*A"},"COULOMB":{"schemaItemType":"Unit","label":"C","phenomenon":"Units.ELECTRIC_CHARGE","unitSystem":"Units.SI","definition":"A*S"},"VOLT":{"schemaItemType":"Unit","label":"V","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.SI","definition":"N*M*COULOMB(-1)"},"KILOVOLT":{"schemaItemType":"Unit","label":"KV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[KILO]*VOLT"},"MEGAVOLT":{"schemaItemType":"Unit","label":"MV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[MEGA]*VOLT"},"J":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.SI","definition":"N*M"},"KJ":{"schemaItemType":"Unit","label":"kJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[KILO]*J"},"MEGAJ":{"schemaItemType":"Unit","label":"MJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[MEGA]*J"},"GJ":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[GIGA]*J"},"FT_PDL":{"schemaItemType":"Unit","label":"ft*pdl","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"PDL*FT"},"BTU":{"schemaItemType":"Unit","label":"Btu","description":"Is IT BTU. http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. See foot note #9: ","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"J","numerator":1055.05585262},"KILOBTU":{"schemaItemType":"Unit","label":"kBtu","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU"},"WATT_SECOND":{"schemaItemType":"Unit","label":"Ws","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"W*S"},"KWH":{"schemaItemType":"Unit","label":"kW·h","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"KW*HR"},"MEGAWH":{"schemaItemType":"Unit","label":"MWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"MEGAW*HR"},"GWH":{"schemaItemType":"Unit","label":"GWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"GW*HR"},"J_PER_CUB_M":{"schemaItemType":"Unit","label":"J/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.SI","definition":"J*M(-3)"},"KJ_PER_CUB_M":{"schemaItemType":"Unit","label":"kJ/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KJ*M(-3)"},"KWH_PER_CUB_M":{"schemaItemType":"Unit","label":"kW·h/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KWH*M(-3)"},"KWH_PER_CUB_FT":{"schemaItemType":"Unit","label":"kWh/ft³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*FT(-3)"},"KWH_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"kW·h/million gal","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*[MEGA](-1)*GALLON(-1)"},"J_PER_KG":{"schemaItemType":"Unit","label":"J/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.SI","definition":"J*KG(-1)"},"KJ_PER_KG":{"schemaItemType":"Unit","label":"kJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"KJ*KG(-1)"},"MEGAJ_PER_KG":{"schemaItemType":"Unit","label":"MJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"MEGAJ*KG(-1)"},"BTU_PER_LBM":{"schemaItemType":"Unit","label":"Btu/lb","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)"},"J_PER_KG_K":{"schemaItemType":"Unit","label":"J/(kg·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.SI","definition":"J*KG(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LBM_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lbm·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)*DELTA_RANKINE(-1)"},"J_PER_G_CELSIUS":{"schemaItemType":"Unit","label":"J/(g·Δ°C)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.METRIC","definition":"J*G(-1)*DELTA_CELSIUS(-1)"},"J_PER_MOL_K":{"schemaItemType":"Unit","label":"J/(mol*K)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.SI","definition":"J*MOL(-1)*DELTA_KELVIN(-1)"},"J_PER_KMOL_K":{"schemaItemType":"Unit","label":"J/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"J*KMOL(-1)*DELTA_KELVIN(-1)"},"KJ_PER_KMOL_K":{"schemaItemType":"Unit","label":"kJ/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"KJ*KMOL(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LB_MOL_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lb-mol·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.USCUSTOM","definition":"BTU*LB_MOL(-1)*DELTA_RANKINE(-1)"},"CUB_M_PER_SEC":{"schemaItemType":"Unit","label":"m³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.SI","definition":"M(3)*S(-1)"},"CUB_M_PER_MIN":{"schemaItemType":"Unit","label":"m³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*MIN(-1)"},"CUB_M_PER_HR":{"schemaItemType":"Unit","label":"m³/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*HR(-1)"},"CUB_M_PER_DAY":{"schemaItemType":"Unit","label":"m³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*DAY(-1)"},"LITRE_PER_SEC":{"schemaItemType":"Unit","label":"L/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*S(-1)"},"LITRE_PER_MIN":{"schemaItemType":"Unit","label":"L/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*MIN(-1)"},"LITRE_PER_HR":{"schemaItemType":"Unit","label":"L/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*HR(-1)"},"LITRE_PER_DAY":{"schemaItemType":"Unit","label":"L/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*DAY(-1)"},"CUB_IN_PER_SEC":{"schemaItemType":"Unit","label":"in³/sec","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*S(-1)"},"CUB_IN_PER_MIN":{"schemaItemType":"Unit","label":"in³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*MIN(-1)"},"CUB_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*S(-1)"},"CUB_FT_PER_MIN":{"schemaItemType":"Unit","label":"ft³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*MIN(-1)"},"CUB_FT_PER_DAY":{"schemaItemType":"Unit","label":"ft³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*DAY(-1)"},"ACRE_FT_PER_DAY":{"schemaItemType":"Unit","label":"acre·ft/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*DAY(-1)"},"ACRE_FT_PER_HR":{"schemaItemType":"Unit","label":"acre·ft/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*HR(-1)"},"ACRE_FT_PER_MIN":{"schemaItemType":"Unit","label":"acre·ft/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*MIN(-1)"},"ACRE_IN_PER_DAY":{"schemaItemType":"Unit","label":"acre_in/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*DAY(-1)"},"ACRE_IN_PER_HR":{"schemaItemType":"Unit","label":"acre·in/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*HR(-1)"},"ACRE_IN_PER_MIN":{"schemaItemType":"Unit","label":"acre·in/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*MIN(-1)"},"GALLON_IMPERIAL_PER_SEC":{"schemaItemType":"Unit","label":"gal (imp)/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*S(-1)"},"GALLON_IMPERIAL_PER_MIN":{"schemaItemType":"Unit","label":"gal (imp)/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*MIN(-1)"},"GALLON_IMPERIAL_PER_HR":{"schemaItemType":"Unit","label":"gal (imp)/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*HR(-1)"},"GALLON_IMPERIAL_PER_DAY":{"schemaItemType":"Unit","label":"gal (imp)/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*DAY(-1)"},"GALLON_PER_SEC":{"schemaItemType":"Unit","label":"gal/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*S(-1)"},"GALLON_PER_MIN":{"schemaItemType":"Unit","label":"gal/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)"},"GALLON_PER_HR":{"schemaItemType":"Unit","label":"gal/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*HR(-1)"},"GALLON_PER_DAY":{"schemaItemType":"Unit","label":"gal/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)"},"HZ":{"schemaItemType":"Unit","label":"Hz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.SI","definition":"S(-1)"},"KHZ":{"schemaItemType":"Unit","label":"KHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[KILO]*S(-1)"},"MHZ":{"schemaItemType":"Unit","label":"MHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[MEGA]*S(-1)"},"CUB_M_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"m³/(m²*sec)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.SI","definition":"M*S(-1)"},"CUB_M_PER_SQ_M_DAY":{"schemaItemType":"Unit","label":"m³/(m²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"CUB_M_PER_HECTARE_DAY":{"schemaItemType":"Unit","label":"m³/(ha·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*HECTARE(-1)*DAY(-1)"},"CUB_M_PER_SQ_KM_DAY":{"schemaItemType":"Unit","label":"m³/(km²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*KM(-2)*DAY(-1)"},"LITRE_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"L/(m²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"LITRE*M(-2)*S(-1)"},"CUB_FT_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"ft³/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"CUB_FT_PER_SQ_FT_SEC":{"schemaItemType":"Unit","label":"ft³/(ft²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"CUB_FT_PER_SQ_MILE_SEC":{"schemaItemType":"Unit","label":"ft³/(mi²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*MILE(-2)*S(-1)"},"CUB_FT_PER_ACRE_SEC":{"schemaItemType":"Unit","label":"ft³/(acres·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*ACRE(-1)*S(-1)"},"GALLON_PER_ACRE_DAY":{"schemaItemType":"Unit","label":"gal/(acre·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*ACRE(-1)"},"GALLON_PER_ACRE_MIN":{"schemaItemType":"Unit","label":"gal/(acre·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*ACRE(-1)"},"GALLON_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"gal/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*FT(-2)"},"GALLON_PER_SQ_FT_DAY":{"schemaItemType":"Unit","label":"gal/(ft²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*FT(-2)"},"GALLON_PER_SQ_MILE_MIN":{"schemaItemType":"Unit","label":"gal/(mi²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*MILE(-2)"},"GALLON_PER_SQ_MILE_DAY":{"schemaItemType":"Unit","label":"gal/(mi²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*MILE(-2)"},"KG_PER_KG":{"schemaItemType":"Unit","label":"kg/kg","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.SI","definition":"KG*KG(-1)"},"GRM_PER_LBM":{"schemaItemType":"Unit","label":"gr/lb","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.USCUSTOM","definition":"GRM*LBM(-1)"},"KG_PER_SEC":{"schemaItemType":"Unit","label":"kg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.SI","definition":"KG*S(-1)"},"KG_PER_MIN":{"schemaItemType":"Unit","label":"kg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*MIN(-1)"},"KG_PER_HR":{"schemaItemType":"Unit","label":"kg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*HR(-1)"},"KG_PER_DAY":{"schemaItemType":"Unit","label":"kg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*DAY(-1)"},"G_PER_SEC":{"schemaItemType":"Unit","label":"g/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*S(-1)"},"G_PER_MIN":{"schemaItemType":"Unit","label":"g/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*MIN(-1)"},"G_PER_HR":{"schemaItemType":"Unit","label":"g/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*HR(-1)"},"MG_PER_SEC":{"schemaItemType":"Unit","label":"mg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*S(-1)"},"MG_PER_MIN":{"schemaItemType":"Unit","label":"mg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*MIN(-1)"},"MG_PER_HR":{"schemaItemType":"Unit","label":"mg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*HR(-1)"},"MG_PER_DAY":{"schemaItemType":"Unit","label":"mg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*DAY(-1)"},"MKG_PER_SEC":{"schemaItemType":"Unit","label":"µg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*S(-1)"},"MKG_PER_MIN":{"schemaItemType":"Unit","label":"µg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*MIN(-1)"},"MKG_PER_HR":{"schemaItemType":"Unit","label":"µg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*HR(-1)"},"MKG_PER_DAY":{"schemaItemType":"Unit","label":"µg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*DAY(-1)"},"TONNE_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"TONNE*HR(-1)"},"LBM_PER_SEC":{"schemaItemType":"Unit","label":"lb/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*S(-1)"},"LBM_PER_MIN":{"schemaItemType":"Unit","label":"lb/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*MIN(-1)"},"LBM_PER_HR":{"schemaItemType":"Unit","label":"lb/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*HR(-1)"},"LBM_PER_DAY":{"schemaItemType":"Unit","label":"lb/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*DAY(-1)"},"SHORT_TON_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*HR(-1)"},"MOL_PER_SEC":{"schemaItemType":"Unit","label":"mol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.SI","definition":"MOL*S(-1)"},"KMOL_PER_SEC":{"schemaItemType":"Unit","label":"kmol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*S(-1)"},"N":{"schemaItemType":"Unit","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"KG*M*S(-2)"},"DECAN":{"schemaItemType":"Unit","label":"daN","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"[DECA]*N"},"KN":{"schemaItemType":"Unit","label":"kN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[KILO]*N"},"MN":{"schemaItemType":"Unit","label":"mN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MILLI]*N"},"MEGAN":{"schemaItemType":"Unit","label":"MN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MEGA]*N"},"KGF":{"schemaItemType":"Unit","label":"kgf","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[STD_G]*KG"},"DYNE":{"schemaItemType":"Unit","label":"dyn","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"G*CM*S(-2)"},"PDL":{"schemaItemType":"Unit","label":"pdl","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"LBM*FT*S(-2)"},"SHORT_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (short)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*SHORT_TON_MASS"},"LONG_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (long)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LONG_TON_MASS"},"LBF":{"schemaItemType":"Unit","label":"lbf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LBM"},"OZF":{"schemaItemType":"Unit","label":"ozf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*OZM"},"KPF":{"schemaItemType":"Unit","label":"kpf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBF"},"W_PER_SQ_M":{"schemaItemType":"Unit","label":"W/m²","phenomenon":"Units.HEAT_FLUX_DENSITY","unitSystem":"Units.SI","definition":"W*M(-2)"},"W_PER_SQ_M_K":{"schemaItemType":"Unit","label":"W/(m²·ΔK)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.SI","definition":"W*M(-2)*DELTA_KELVIN(-1)"},"W_PER_SQ_M_CELSIUS":{"schemaItemType":"Unit","label":"W/(m²·Δ°C)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.METRIC","definition":"W*M(-2)*DELTA_CELSIUS(-1)"},"BTU_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/(ft²·h·Δ°F)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.USCUSTOM","definition":"BTU*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"KG_PER_M":{"schemaItemType":"Unit","label":"kg/m","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-1)"},"KG_PER_MM":{"schemaItemType":"Unit","label":"kg/mm","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.METRIC","definition":"KG*MM(-1)"},"LBM_PER_FT":{"schemaItemType":"Unit","label":"lb/ft","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)"},"N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.SI","definition":"N*M(-1)"},"KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"MEGAN_PER_M":{"schemaItemType":"Unit","label":"MN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"MEGAN*M(-1)"},"N_PER_MM":{"schemaItemType":"Unit","label":"N/mm","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"N*MM(-1)"},"LBF_PER_IN":{"schemaItemType":"Unit","label":"lbf/in","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-1)"},"LBF_PER_FT":{"schemaItemType":"Unit","label":"lbf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-1)"},"KGF_PER_M":{"schemaItemType":"Unit","label":"kgf/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KGF*M(-1)"},"KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"PER_M":{"schemaItemType":"Unit","label":"1/m","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.SI","definition":"M(-1)"},"PER_MM":{"schemaItemType":"Unit","label":"1/mm","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"MM(-1)"},"PER_KM":{"schemaItemType":"Unit","label":"1/km","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"KM(-1)"},"PER_FT":{"schemaItemType":"Unit","label":"1/ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)"},"PER_MILE":{"schemaItemType":"Unit","label":"1/mile","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"MILE(-1)"},"PER_THOUSAND_FT":{"schemaItemType":"Unit","label":"1/1000 ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)","numerator":0.001},"N_M":{"schemaItemType":"Unit","label":"N·m","phenomenon":"Units.TORQUE","unitSystem":"Units.SI","definition":"N*M*RAD(-1)"},"KN_M":{"schemaItemType":"Unit","label":"kN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KN*M*RAD(-1)"},"MEGAN_M":{"schemaItemType":"Unit","label":"MN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN*M*RAD(-1)"},"N_CM":{"schemaItemType":"Unit","label":"N·cm","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"N*CM*RAD(-1)"},"LBF_FT":{"schemaItemType":"Unit","label":"lbf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*RAD(-1)"},"LBF_IN":{"schemaItemType":"Unit","label":"lbf·in","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN*RAD(-1)"},"KGF_M":{"schemaItemType":"Unit","label":"kgf·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KGF*M*RAD(-1)"},"KPF_FT":{"schemaItemType":"Unit","label":"kpf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT*RAD(-1)"},"N_M_PER_M":{"schemaItemType":"Unit","label":"N·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-1)"},"KN_M_PER_M":{"schemaItemType":"Unit","label":"kN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-1)"},"MEGAN_M_PER_M":{"schemaItemType":"Unit","label":"MN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-1)"},"N_CM_PER_CM":{"schemaItemType":"Unit","label":"N·cm/cm","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-1)"},"LBF_IN_PER_IN":{"schemaItemType":"Unit","label":"lbf·in/in","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-1)"},"LBF_FT_PER_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-1)"},"KPF_FT_PER_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-1)"},"N_M_PER_SQ_M":{"schemaItemType":"Unit","label":"N·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-2)"},"KN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"kN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-2)"},"MEGAN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"MN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-2)"},"N_CM_PER_SQ_CM":{"schemaItemType":"Unit","label":"N·cm/cm²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-2)"},"LBF_IN_PER_SQ_IN":{"schemaItemType":"Unit","label":"lbf·in/in²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-2)"},"LBF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-2)"},"KPF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-2)"},"CUB_M_PER_MOL":{"schemaItemType":"Unit","label":"m³/mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.SI","definition":"CUB_M*MOL(-1)"},"CUB_M_PER_KMOL":{"schemaItemType":"Unit","label":"m³/kmol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.METRIC","definition":"CUB_M*[KILO](-1)*MOL(-1)"},"CUB_FT_PER_LB_MOL":{"schemaItemType":"Unit","label":"ft³/lb-mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*LB_MOL(-1)"},"MOL_PER_CUB_M":{"schemaItemType":"Unit","label":"mol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.SI","definition":"MOL*CUB_M(-1)"},"KMOL_PER_CUB_M":{"schemaItemType":"Unit","label":"kmol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*CUB_M(-1)"},"MOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"mol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"MOL*CUB_DM(-1)"},"MICROMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"µmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[MICRO]*MOL*CUB_DM(-1)"},"NMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"nmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[NANO]*MOL*CUB_DM(-1)"},"PICOMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"picomol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[PICO]*MOL*CUB_DM(-1)"},"MOL_PER_CUB_FT":{"schemaItemType":"Unit","label":"mol/ft³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.USCUSTOM","definition":"MOL*CUB_FT(-1)"},"MM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"mm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"MM(4)"},"M_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"m⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.SI","definition":"M(4)"},"CM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"cm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"CM(4)"},"IN_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"in⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"IN(4)"},"FT_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"ft⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"FT(4)"},"W":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.SI","definition":"N*M*S(-1)"},"KW":{"schemaItemType":"Unit","label":"kW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[KILO]*W"},"MEGAW":{"schemaItemType":"Unit","label":"MW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*W"},"GW":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[GIGA]*W"},"BTU_PER_HR":{"schemaItemType":"Unit","label":"Btu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"BTU*HR(-1)"},"KILOBTU_PER_HR":{"schemaItemType":"Unit","label":"kBtu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU*HR(-1)"},"HP":{"schemaItemType":"Unit","label":"hp","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*S(-1)","numerator":550},"PA":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.SI","definition":"N*M(-2)"},"PA_GAUGE":{"schemaItemType":"Unit","label":"Pa (gauge)","description":"Offset is one standard atmosphere in PA. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":1,"offset":101325},"HECTOPASCAL":{"schemaItemType":"Unit","label":"hPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[HECTO]*PA"},"KILOPASCAL":{"schemaItemType":"Unit","label":"kPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*PA"},"MICROPASCAL":{"schemaItemType":"Unit","label":"µPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MICRO]*PA"},"KILOPASCAL_GAUGE":{"schemaItemType":"Unit","label":"kPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to kilopascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[KILO]*PA","numerator":1,"offset":101.325},"MEGAPASCAL":{"schemaItemType":"Unit","label":"MPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MEGA]*PA"},"MEGAPASCAL_GAUGE":{"schemaItemType":"Unit","label":"MPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to megapascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[MEGA]*PA","numerator":1,"offset":0.101325},"AT":{"schemaItemType":"Unit","label":"kgf/cm²","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*CM(-2)"},"AT_GAUGE":{"schemaItemType":"Unit","label":"kgf/cm² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to atmosphere-technical (AT). Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"AT","offset":1.033227452799886},"KGF_PER_SQ_M":{"schemaItemType":"Unit","label":"kgf/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*M(-2)"},"ATM":{"schemaItemType":"Unit","label":"atm","description":"Standard atmosphere, see AT for atmosphere-technical. Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":101325},"BAR":{"schemaItemType":"Unit","label":"bar","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":100000},"BAR_GAUGE":{"schemaItemType":"Unit","label":"bar (Gauge)","description":"Offset is one standard atmosphere converted to BAR. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":100000,"offset":1.01325},"MBAR":{"schemaItemType":"Unit","label":"mBar","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MILLI]*BAR"},"BARYE":{"schemaItemType":"Unit","label":"ba","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"DYNE*CM(-2)"},"PSI":{"schemaItemType":"Unit","label":"lbf/in²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)"},"PSF":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"PSIG":{"schemaItemType":"Unit","label":"lbf/in² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to PSI","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)","numerator":1,"offset":14.695948775513449},"KSI":{"schemaItemType":"Unit","label":"ksi","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*IN(-2)"},"KSF":{"schemaItemType":"Unit","label":"ksf","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-2)"},"LBF_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"TORR":{"schemaItemType":"Unit","label":"torr","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. for approx conversion and Table 11 for a reference to the exact conversion","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":101325,"denominator":760},"M_H2O":{"schemaItemType":"Unit","label":"mH2O (Conv)","description":"Meter of H2O Conventional","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*MM_H2O"},"MM_H2O":{"schemaItemType":"Unit","label":"mmH2O (Conv)","description":"Millimeter of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":9.80665},"MM_HG_AT_32F":{"schemaItemType":"Unit","label":"mmHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. Used centimeter of mercury (0 C) to pascal","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":133.322},"FT_H2O":{"schemaItemType":"Unit","label":"ft H2O (Conv)","description":"foot of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":2989.067},"IN_H2O_AT_32F":{"schemaItemType":"Unit","label":"inH2O@32°F","description":"Inch of H2O at 32 Fahrenheit, Water is assumed to be in a liquid state. Equal to water at 0C. No verified source","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.1083},"IN_H2O_AT_39_2F":{"schemaItemType":"Unit","label":"inH2O@39.2°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.082},"IN_H2O_AT_60F":{"schemaItemType":"Unit","label":"inH2O@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":248.84},"IN_HG":{"schemaItemType":"Unit","label":"inHg (Conv)","description":"Inch of HG conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.389},"IN_HG_AT_32F":{"schemaItemType":"Unit","label":"inHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.38},"IN_HG_AT_60F":{"schemaItemType":"Unit","label":"inHg@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3376.85},"PA_PER_M":{"schemaItemType":"Unit","label":"Pa/m","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.SI","definition":"PA*M(-1)"},"BAR_PER_KM":{"schemaItemType":"Unit","label":"bar/km","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.METRIC","definition":"BAR*KM(-1)"},"PERCENT":{"schemaItemType":"Unit","label":"%","description":"Unit used to show a ratio as a percentage in the UI.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"DECIMAL_PERCENT":{"schemaItemType":"Unit","label":"decimal percent","description":"Unit suitable for storing a decimal number that represents an unspecified ratio.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"PERCENT","numerator":100},"PROBABILITY_FRACTION":{"schemaItemType":"Unit","label":"","phenomenon":"Units.PROBABILITY","unitSystem":"Units.SI","definition":"ONE"},"PROBABILITY_PERCENT":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.PROBABILITY","unitSystem":"Units.INTERNATIONAL","definition":"PROBABILITY_FRACTION","denominator":100},"M_PER_M":{"schemaItemType":"Unit","label":"m/m","phenomenon":"Units.SLOPE","unitSystem":"Units.SI","definition":"M*M(-1)"},"CM_PER_M":{"schemaItemType":"Unit","label":"cm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"CM*M(-1)"},"MM_PER_M":{"schemaItemType":"Unit","label":"mm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"MM*M(-1)"},"M_PER_KM":{"schemaItemType":"Unit","label":"m/km","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"M*KM(-1)"},"FT_PER_THOUSAND_FOOT":{"schemaItemType":"Unit","label":"ft/1000ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*[KILO](-1)*FT(-1)"},"FT_PER_FT":{"schemaItemType":"Unit","label":"ft/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*FT(-1)"},"IN_PER_FT":{"schemaItemType":"Unit","label":"in/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"FT_PER_IN":{"schemaItemType":"Unit","label":"ft/in","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*IN(-1)"},"FT_PER_MILE":{"schemaItemType":"Unit","label":"ft/mi","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*MILE(-1)"},"VERTICAL_PER_HORIZONTAL":{"schemaItemType":"Unit","label":"slope","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"M_PER_M"},"PERCENT_SLOPE":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"DECIMAL_PERCENT(-1)*M_PER_M"},"HORIZONTAL_PER_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.VERTICAL_PER_HORIZONTAL","unitSystem":"Units.INTERNATIONAL"},"FT_HORIZONTAL_PER_FT_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.FT_PER_FT","unitSystem":"Units.USCUSTOM"},"M_HORIZONTAL_PER_M_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.M_PER_M","unitSystem":"Units.SI"},"KG_PER_SQ_M":{"schemaItemType":"Unit","label":"kg/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-2)"},"G_PER_SQ_M":{"schemaItemType":"Unit","label":"g/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"G*M(-2)"},"KG_PER_HECTARE":{"schemaItemType":"Unit","label":"kg/ha","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"KG*HECTARE(-1)"},"LBM_PER_ACRE":{"schemaItemType":"Unit","label":"lb/acre","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*ACRE(-1)"},"W_PER_M_K":{"schemaItemType":"Unit","label":"W/(m·K)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.SI","definition":"W*M(-1)*DELTA_KELVIN(-1)"},"W_PER_M_C":{"schemaItemType":"Unit","label":"W/(m·Δ°C)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.METRIC","definition":"W*M(-1)*DELTA_CELSIUS(-1)"},"BTU_IN_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu·in/(ft²·h·Δ°F)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.USCUSTOM","definition":"BTU*IN*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"SQ_M_KELVIN_PER_WATT":{"schemaItemType":"Unit","label":"m²·ΔK/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.SI","definition":"M(2)*DELTA_KELVIN*W(-1)"},"SQ_M_CELSIUS_PER_WATT":{"schemaItemType":"Unit","label":"m²·Δ°C/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.METRIC","definition":"M(2)*DELTA_CELSIUS*W(-1)"},"SQ_FT_HR_FAHRENHEIT_PER_BTU":{"schemaItemType":"Unit","label":"ft²·h·Δ°F/Btu","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.USCUSTOM","definition":"FT(2)*HR*DELTA_FAHRENHEIT*BTU(-1)"},"M_PER_SEC":{"schemaItemType":"Unit","label":"m/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.SI","definition":"M*S(-1)"},"M_PER_MIN":{"schemaItemType":"Unit","label":"m/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*MIN(-1)"},"M_PER_HR":{"schemaItemType":"Unit","label":"m/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*HR(-1)"},"M_PER_DAy":{"schemaItemType":"Unit","label":"m/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"MM_PER_SEC":{"schemaItemType":"Unit","label":"mm/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*S(-1)"},"MM_PER_MIN":{"schemaItemType":"Unit","label":"mm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*MIN(-1)"},"MM_PER_HR":{"schemaItemType":"Unit","label":"mm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*HR(-1)"},"MM_PER_DAY":{"schemaItemType":"Unit","label":"mm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*DAY(-1)"},"CM_PER_SEC":{"schemaItemType":"Unit","label":"cm/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*S(-1)"},"CM_PER_MIN":{"schemaItemType":"Unit","label":"cm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*MIN(-1)"},"CM_PER_HR":{"schemaItemType":"Unit","label":"cm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*HR(-1)"},"CM_PER_DAY":{"schemaItemType":"Unit","label":"cm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*DAY(-1)"},"KM_PER_SEC":{"schemaItemType":"Unit","label":"km/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*S(-1)"},"KM_PER_HR":{"schemaItemType":"Unit","label":"km/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*HR(-1)"},"IN_PER_SEC":{"schemaItemType":"Unit","label":"in/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*S(-1)"},"IN_PER_MIN":{"schemaItemType":"Unit","label":"in/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*MIN(-1)"},"IN_PER_HR":{"schemaItemType":"Unit","label":"in/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*HR(-1)"},"IN_PER_DAY":{"schemaItemType":"Unit","label":"in/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*DAY(-1)"},"FT_PER_SEC":{"schemaItemType":"Unit","label":"ft/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"FT_PER_MIN":{"schemaItemType":"Unit","label":"ft/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"FT_PER_HR":{"schemaItemType":"Unit","label":"ft/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*HR(-1)"},"FT_PER_DAY":{"schemaItemType":"Unit","label":"ft/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*DAY(-1)"},"YRD_PER_SEC":{"schemaItemType":"Unit","label":"yrd/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"YRD*S(-1)"},"MPH":{"schemaItemType":"Unit","label":"mi/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"MILE*HR(-1)"},"KNOT_INTERNATIONAL":{"schemaItemType":"Unit","label":"knot (Int.)","phenomenon":"Units.VELOCITY","unitSystem":"Units.MARITIME","definition":"NAUT_MILE*HR(-1)"},"RAD_PER_SEC":{"schemaItemType":"Unit","label":"rad/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.SI","definition":"RAD*S(-1)"},"RAD_PER_MIN":{"schemaItemType":"Unit","label":"rad/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*MIN(-1)"},"RAD_PER_HR":{"schemaItemType":"Unit","label":"rad/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*HR(-1)"},"RPS":{"schemaItemType":"Unit","label":"cycle/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*S(-1)"},"RPM":{"schemaItemType":"Unit","label":"cycle/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*MIN(-1)"},"RPH":{"schemaItemType":"Unit","label":"cycle/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*HR(-1)"},"DEG_PER_SEC":{"schemaItemType":"Unit","label":"deg/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*S(-1)"},"DEG_PER_MIN":{"schemaItemType":"Unit","label":"deg/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*MIN(-1)"},"DEG_PER_HR":{"schemaItemType":"Unit","label":"deg/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*HR(-1)"},"PA_S":{"schemaItemType":"Unit","label":"Pa·s","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.SI","definition":"PA*S"},"POISE":{"schemaItemType":"Unit","label":"poise","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[DECI]*PA_S"},"CENTIPOISE":{"schemaItemType":"Unit","label":"cP","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[CENTI]*POISE"},"LBM_PER_FT_S":{"schemaItemType":"Unit","label":"lbm/(ft*s)","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)*S(-1)"},"SQ_M_PER_SEC":{"schemaItemType":"Unit","label":"m²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.SI","definition":"M(2)*S(-1)"},"SQ_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"FT(2)*S(-1)"},"STOKE":{"schemaItemType":"Unit","label":"St","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"CM(2)*S(-1)"},"CENTISTOKE":{"schemaItemType":"Unit","label":"cSt","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"MM(2)*S(-1)"},"CUB_M":{"schemaItemType":"Unit","label":"m³","phenomenon":"Units.VOLUME","unitSystem":"Units.SI","definition":"M(3)"},"CUB_UM":{"schemaItemType":"Unit","label":"um³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"UM(3)"},"CUB_MM":{"schemaItemType":"Unit","label":"mm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"MM(3)"},"CUB_CM":{"schemaItemType":"Unit","label":"cm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CM(3)"},"CUB_DM":{"schemaItemType":"Unit","label":"dm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"DM(3)"},"CUB_KM":{"schemaItemType":"Unit","label":"km³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"KM(3)"},"LITRE":{"schemaItemType":"Unit","label":"L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CUB_DM"},"THOUSAND_LITRE":{"schemaItemType":"Unit","label":"thousand L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[KILO]*LITRE"},"MILLION_LITRE":{"schemaItemType":"Unit","label":"million L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MEGA]*LITRE"},"MILLILITRE":{"schemaItemType":"Unit","label":"mL","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MILLI]*LITRE"},"MICROLITRE":{"schemaItemType":"Unit","label":"µliter","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MICRO]*LITRE"},"CUB_IN":{"schemaItemType":"Unit","label":"in³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)"},"CUB_FT":{"schemaItemType":"Unit","label":"ft³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)"},"CUB_YRD":{"schemaItemType":"Unit","label":"yd³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"YRD(3)"},"CUB_MILE":{"schemaItemType":"Unit","label":"mile³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"MILE(3)"},"ACRE_IN":{"schemaItemType":"Unit","label":"acre·in","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*IN"},"ACRE_FT":{"schemaItemType":"Unit","label":"acre·ft","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*FT"},"GALLON":{"schemaItemType":"Unit","label":"gal","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-11","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)","numerator":231},"THOUSAND_GALLON":{"schemaItemType":"Unit","label":"thousand gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[KILO]*GALLON"},"MILLION_GALLON":{"schemaItemType":"Unit","label":"million gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[MEGA]*GALLON"},"CUB_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(3)"},"CUB_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(3)"},"CUB_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(3)"},"CUB_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(3)"},"GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"gal (imp)","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.VOLUME","unitSystem":"Units.IMPERIAL","definition":"LITRE","numerator":4.54609},"CUB_M_PER_CUB_M":{"schemaItemType":"Unit","label":"m³/m³","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.SI","definition":"M(3)*M(-3)"},"LITRE_PER_LITRE":{"schemaItemType":"Unit","label":"liter/liter","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.METRIC","definition":"LITRE*LITRE(-1)"},"CUB_M_PER_KG":{"schemaItemType":"Unit","label":"m³/kg","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.SI","definition":"M(3)*KG(-1)"},"CUB_FT_PER_LBM":{"schemaItemType":"Unit","label":"ft³/lm","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)*LBM(-1)"},"CUB_M_PER_M":{"schemaItemType":"Unit","label":"m³/m","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.SI","definition":"M(3)*M(-1)"},"CUB_FT_PER_FT":{"schemaItemType":"Unit","label":"ft³/ft","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT(3)*FT(-1)"},"M_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"m⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.SI","definition":"M(6)"},"MM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"mm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"MM(6)"},"CM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"cm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"CM(6)"},"IN_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"in⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"IN(6)"},"FT_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"ft⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"FT(6)"},"VA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.SI","definition":"VOLT*A"},"KVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[KILO]*VA"},"MVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*VA"},"M":{"schemaItemType":"Unit","label":"m","phenomenon":"Units.LENGTH","unitSystem":"Units.SI","definition":"M"},"KG":{"schemaItemType":"Unit","label":"kg","phenomenon":"Units.MASS","unitSystem":"Units.SI","definition":"KG"},"S":{"schemaItemType":"Unit","label":"s","phenomenon":"Units.TIME","unitSystem":"Units.SI","definition":"S"},"K":{"schemaItemType":"Unit","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.SI","definition":"K"},"DELTA_KELVIN":{"schemaItemType":"Unit","label":"ΔK","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.SI","definition":"DELTA_KELVIN"},"A":{"schemaItemType":"Unit","phenomenon":"Units.CURRENT","unitSystem":"Units.SI","definition":"A"},"MOL":{"schemaItemType":"Unit","label":"mol","description":"Where mol is the SI gram mol or gmol.","phenomenon":"Units.MOLE","unitSystem":"Units.SI","definition":"MOL"},"CD":{"schemaItemType":"Unit","label":"cd","phenomenon":"Units.LUMINOSITY","unitSystem":"Units.SI","definition":"CD"},"RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.ANGLE","unitSystem":"Units.SI","definition":"RAD"},"HORIZONTAL_DIR_RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.SI","definition":"HORIZONTAL_DIR_RAD"},"STERAD":{"schemaItemType":"Unit","label":"sterad","phenomenon":"Units.SOLIDANGLE","unitSystem":"Units.SI","definition":"STERAD"},"US_DOLLAR":{"schemaItemType":"Unit","label":"$","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"US_DOLLAR"},"MONETARY_UNIT":{"schemaItemType":"Unit","label":"¤","description":"For money of an unspecified denomination","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"MONETARY_UNIT"},"PERSON":{"schemaItemType":"Unit","label":"person","phenomenon":"Units.CAPITA","unitSystem":"Units.SI","definition":"PERSON"},"ONE":{"schemaItemType":"Unit","label":"one","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"COEFFICIENT":{"schemaItemType":"Unit","label":"coefficient","description":"For unitless coefficients","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"OHM":{"schemaItemType":"Unit","label":"Ω","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.SI","definition":"VOLT*A(-1)"},"KOHM":{"schemaItemType":"Unit","label":"kΩ","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.METRIC","definition":"[KILO]*OHM"},"OHM_M":{"schemaItemType":"Unit","label":"Ω·m","phenomenon":"Units.ELECTRICAL_RESISTIVITY","unitSystem":"Units.SI","definition":"OHM*M"},"M_PER_REVOLUTION":{"schemaItemType":"Unit","label":"m/r","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.INTERNATIONAL","definition":"M*REVOLUTION(-1)"},"M_PER_RAD":{"schemaItemType":"Unit","label":"m/rad","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.SI","definition":"M*RAD(-1)"},"IN_PER_DEGREE":{"schemaItemType":"Unit","label":"in/degree","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.USCUSTOM","definition":"IN*ARC_DEG(-1)"},"J_PER_K":{"schemaItemType":"Unit","label":"J/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.SI","definition":"J*DELTA_KELVIN(-1)"},"KJ_PER_K":{"schemaItemType":"Unit","label":"KJ/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.METRIC","definition":"[KILO]*J*DELTA_KELVIN(-1)"},"BTU_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/°F","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.8, page 46.","phenomenon":"Units.ENTROPY","unitSystem":"Units.USCUSTOM","definition":"BTU*DELTA_FAHRENHEIT(-1)"},"LUMEN_PER_W":{"schemaItemType":"Unit","label":"lm/W","phenomenon":"Units.LUMINOUS_EFFICACY","unitSystem":"Units.SI","definition":"LUMEN*W(-1)"},"INVERSE_N":{"schemaItemType":"Unit","label":"1/N","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N(-1)"},"INVERSE_KN":{"schemaItemType":"Unit","label":"1/kN","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN(-1)"},"INVERSE_KPF":{"schemaItemType":"Unit","label":"1/kpf","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.USCUSTOM","definition":"KPF(-1)"},"M_PER_N":{"schemaItemType":"Unit","label":"m/N","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N_PER_M(-1)"},"M_PER_KN":{"schemaItemType":"Unit","label":"m/kN","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN_PER_M(-1)"}}}');
|
|
337745
|
+
module.exports = /*#__PURE__*/JSON.parse('{"version":"01.00.00","sourceEcSchemaVersion":"01.00.12","name":"Units","alias":"u","label":"Units","description":"Standard Set of Unit definitions for the system","items":{"SI":{"schemaItemType":"UnitSystem"},"CGS":{"schemaItemType":"UnitSystem"},"METRIC":{"schemaItemType":"UnitSystem"},"IMPERIAL":{"schemaItemType":"UnitSystem"},"MARITIME":{"schemaItemType":"UnitSystem"},"USSURVEY":{"schemaItemType":"UnitSystem"},"INDUSTRIAL":{"schemaItemType":"UnitSystem"},"INTERNATIONAL":{"schemaItemType":"UnitSystem"},"USCUSTOM":{"schemaItemType":"UnitSystem"},"STATISTICS":{"schemaItemType":"UnitSystem"},"FINANCE":{"schemaItemType":"UnitSystem"},"CONSTANT":{"schemaItemType":"UnitSystem"},"APPARENT_POWER":{"schemaItemType":"Phenomenon","label":"Apparent Power","definition":"ELECTRIC_POTENTIAL*CURRENT"},"AREA":{"schemaItemType":"Phenomenon","label":"Area","definition":"LENGTH(2)"},"VOLUME":{"schemaItemType":"Phenomenon","label":"Volume","definition":"LENGTH(3)"},"VELOCITY":{"schemaItemType":"Phenomenon","label":"Velocity","definition":"LENGTH*TIME(-1)"},"ANGULAR_VELOCITY":{"schemaItemType":"Phenomenon","label":"Angular Velocity","definition":"ANGLE*TIME(-1)"},"ACCELERATION":{"schemaItemType":"Phenomenon","label":"Acceleration","definition":"LENGTH*TIME(-2)"},"FORCE":{"schemaItemType":"Phenomenon","label":"Force","definition":"MASS*ACCELERATION"},"PRESSURE":{"schemaItemType":"Phenomenon","label":"Pressure","definition":"FORCE*AREA(-1)"},"FORCE_DENSITY":{"schemaItemType":"Phenomenon","label":"Force Density","definition":"FORCE*VOLUME(-1)"},"PRESSURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Pressure Gradient","definition":"PRESSURE*LENGTH(-1)"},"TORQUE":{"schemaItemType":"Phenomenon","label":"Torque","definition":"FORCE*LENGTH*ANGLE(-1)"},"LINEAR_TORQUE":{"schemaItemType":"Phenomenon","label":"Linear Torque","definition":"TORQUE*LENGTH(-1)"},"AREA_TORQUE":{"schemaItemType":"Phenomenon","label":"Area Torque","definition":"TORQUE*AREA(-1)"},"AREA_MOMENT_INERTIA":{"schemaItemType":"Phenomenon","label":"Area Moment Inertia","definition":"LENGTH(4)"},"MASS_RATIO":{"schemaItemType":"Phenomenon","label":"Mass Ratio","definition":"MASS*MASS(-1)"},"DENSITY":{"schemaItemType":"Phenomenon","label":"Density","definition":"MASS*VOLUME(-1)"},"SPECIFIC_VOLUME":{"schemaItemType":"Phenomenon","label":"Specific Volume","definition":"VOLUME*MASS(-1)"},"LINEAR_DENSITY":{"schemaItemType":"Phenomenon","label":"Linear Density","definition":"MASS*LENGTH(-1)"},"SURFACE_DENSITY":{"schemaItemType":"Phenomenon","label":"Surface Density","definition":"MASS*AREA(-1)"},"WORK":{"schemaItemType":"Phenomenon","label":"Work","definition":"FORCE*LENGTH"},"POWER":{"schemaItemType":"Phenomenon","label":"Power","definition":"WORK*TIME(-1)"},"VOLUMETRIC_FLOW":{"schemaItemType":"Phenomenon","label":"Volumetric Flow","definition":"VOLUME*TIME(-1)"},"FLOW_DENSITY_PER_AREA":{"schemaItemType":"Phenomenon","label":"Flow Density per Area","description":"Flow demanded by or discharged to a Water/Sewer network per area.","definition":"VOLUMETRIC_FLOW*AREA(-1)"},"MASS_FLOW":{"schemaItemType":"Phenomenon","label":"Mass Flow","definition":"MASS*TIME(-1)"},"MOLAR_FLOW":{"schemaItemType":"Phenomenon","label":"Molar Flow","definition":"MOLE*TIME(-1)"},"DYNAMIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Dynamic Viscosity","definition":"PRESSURE*TIME"},"KINEMATIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Kinematic Viscosity","definition":"DYNAMIC_VISCOSITY*DENSITY(-1)"},"ELECTRIC_CHARGE":{"schemaItemType":"Phenomenon","label":"Electric Charge","definition":"CURRENT*TIME"},"ELECTRIC_POTENTIAL":{"schemaItemType":"Phenomenon","label":"Electric Potential","definition":"POWER*CURRENT(-1)"},"LUMINOUS_FLUX":{"schemaItemType":"Phenomenon","label":"Luminous Flux","definition":"LUMINOSITY*SOLIDANGLE"},"ILLUMINANCE":{"schemaItemType":"Phenomenon","label":"Illuminance","definition":"LUMINOUS_FLUX*LENGTH(-2)"},"ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Rotational Spring Constant","definition":"TORQUE*ANGLE(-1)"},"LINEAR_ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Rotational Spring Constant","definition":"FORCE*ANGLE(-1)"},"SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Spring Constant","definition":"FORCE*LENGTH(-1)"},"LINEAR_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Spring Constant","definition":"SPRING_CONSTANT*LENGTH(-1)"},"AREA_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Area Spring Constant","definition":"SPRING_CONSTANT*AREA(-1)"},"PIPE_DIAMETER_LENGTH":{"schemaItemType":"Phenomenon","label":"Pipe Diameter-Length","description":"The diameter of a pipe multiplied by its length, used as a coefficient for pipe-infiltration calculations.","definition":"LENGTH*LENGTH"},"THERMAL_CONDUCTIVITY":{"schemaItemType":"Phenomenon","label":"Thermal Conductivity","definition":"POWER*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"THERMAL_INSULANCE":{"schemaItemType":"Phenomenon","label":"Thermal Resistance","definition":"AREA*TEMPERATURE_CHANGE*POWER(-1)"},"TEMPERATURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Temperature Gradient","definition":"TEMPERATURE_CHANGE*LENGTH(-1)"},"MOLAR_VOLUME":{"schemaItemType":"Phenomenon","label":"Molar Volume","definition":"VOLUME*MOLE(-1)"},"MOLAR_CONCENTRATION":{"schemaItemType":"Phenomenon","label":"Molar Concentration","definition":"MOLE*VOLUME(-1)"},"SLOPE":{"schemaItemType":"Phenomenon","label":"Slope","definition":"LENGTH*LENGTH(-1)"},"HEAT_TRANSFER":{"schemaItemType":"Phenomenon","label":"Heat Transfer","description":"https://en.wikipedia.org/wiki/Heat_transfer_coefficient","definition":"POWER*AREA(-1)*TEMPERATURE_CHANGE(-1)"},"HEAT_FLUX_DENSITY":{"schemaItemType":"Phenomenon","label":"Heat Flux Density","description":"https://en.wikipedia.org/wiki/Heat_flux see description of heat flux density","definition":"POWER*AREA(-1)"},"TORSIONAL_WARPING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Torsional Warping Constant","definition":"LENGTH(6)"},"POPULATION_DENSITY":{"schemaItemType":"Phenomenon","label":"Population Density","definition":"CAPITA*AREA(-1)"},"FREQUENCY":{"schemaItemType":"Phenomenon","label":"Frequency","definition":"TIME(-1)"},"LINEAR_LOAD":{"schemaItemType":"Phenomenon","label":"Linear Load","definition":"FORCE*LENGTH(-1)"},"ENERGY_DENSITY":{"schemaItemType":"Phenomenon","label":"Energy Density","definition":"WORK*VOLUME(-1)"},"ELECTRICAL_RESISTANCE":{"schemaItemType":"Phenomenon","label":"Electrical Resistance","definition":"ELECTRIC_POTENTIAL*CURRENT(-1)"},"ELECTRICAL_RESISTIVITY":{"schemaItemType":"Phenomenon","label":"Electrical Resistivity","definition":"ELECTRICAL_RESISTANCE*LENGTH"},"SPECIFIC_ENERGY":{"schemaItemType":"Phenomenon","label":"Specific Energy","definition":"WORK*MASS(-1)"},"SPECIFIC_HEAT_CAPACITY":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity","definition":"WORK*MASS(-1)*TEMPERATURE_CHANGE(-1)"},"SPECIFIC_HEAT_CAPACITY_MOLAR":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity Molar","definition":"WORK*MOLE(-1)*TEMPERATURE_CHANGE(-1)"},"PERCENTAGE":{"schemaItemType":"Phenomenon","label":"Percentage","definition":"NUMBER"},"PROBABILITY":{"schemaItemType":"Phenomenon","label":"Probability","definition":"NUMBER"},"LINEAR_RATE":{"schemaItemType":"Phenomenon","label":"Linear Rate","definition":"NUMBER*LENGTH(-1)"},"LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION":{"schemaItemType":"Phenomenon","label":"Linear Coefficient Of Thermal Expansion","definition":"LENGTH*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"VOLUME_RATIO":{"schemaItemType":"Phenomenon","label":"Volume Ratio","definition":"VOLUME*VOLUME(-1)"},"LENGTH_RATIO":{"schemaItemType":"Phenomenon","definition":"LENGTH*LENGTH(-1)"},"VOLUME_PER_LENGTH":{"schemaItemType":"Phenomenon","label":"Volume per Unit Length","definition":"VOLUME*LENGTH(-1)"},"LENGTH":{"schemaItemType":"Phenomenon","label":"Length","definition":"LENGTH"},"MASS":{"schemaItemType":"Phenomenon","label":"Mass","definition":"MASS"},"TIME":{"schemaItemType":"Phenomenon","label":"Time","definition":"TIME"},"TEMPERATURE":{"schemaItemType":"Phenomenon","label":"Temperature","definition":"TEMPERATURE"},"TEMPERATURE_CHANGE":{"schemaItemType":"Phenomenon","label":"Temperature Change","definition":"TEMPERATURE_CHANGE"},"CURRENT":{"schemaItemType":"Phenomenon","label":"Current","definition":"CURRENT"},"MOLE":{"schemaItemType":"Phenomenon","label":"Mole","definition":"MOLE"},"LUMINOSITY":{"schemaItemType":"Phenomenon","label":"Luminosity","definition":"LUMINOSITY"},"ANGLE":{"schemaItemType":"Phenomenon","label":"Angle","definition":"ANGLE"},"HORIZONTAL_DIRECTION":{"schemaItemType":"Phenomenon","label":"Horizontal Direction","definition":"HORIZONTAL_DIRECTION"},"SOLIDANGLE":{"schemaItemType":"Phenomenon","label":"Solid Angle","definition":"SOLIDANGLE"},"CURRENCY":{"schemaItemType":"Phenomenon","definition":"CURRENCY"},"CAPITA":{"schemaItemType":"Phenomenon","label":"Capita","definition":"CAPITA"},"NUMBER":{"schemaItemType":"Phenomenon","label":"Number","definition":"NUMBER"},"THREAD_PITCH":{"schemaItemType":"Phenomenon","label":"Thread Pitch","definition":"LENGTH*ANGLE(-1)"},"ENTROPY":{"schemaItemType":"Phenomenon","label":"Entropy","definition":"WORK*TEMPERATURE_CHANGE(-1)"},"LUMINOUS_EFFICACY":{"schemaItemType":"Phenomenon","label":"Luminous Efficacy","definition":"LUMINOUS_FLUX*POWER(-1)"},"MOMENT_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Moment Scale","description":"Display size of the linear moment","definition":"FORCE(-1)"},"FORCE_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Force Scale","description":"Display size of the force","definition":"LINEAR_LOAD(-1)"},"PI":{"schemaItemType":"Constant","label":"Pi","phenomenon":"Units.LENGTH_RATIO","definition":"ONE","numerator":3.141592653589793},"QUARTER_PI":{"schemaItemType":"Constant","label":"Pi/4","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":4},"HALF_PI":{"schemaItemType":"Constant","label":"Pi/2","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":2},"TWO_PI":{"schemaItemType":"Constant","label":"2Pi","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":2},"DEG360":{"schemaItemType":"Constant","label":"360°","phenomenon":"Units.ANGLE","definition":"ARC_DEG","numerator":360},"STD_G":{"schemaItemType":"Constant","label":"ɡ0","phenomenon":"Units.ACCELERATION","definition":"M*S(-2)","numerator":9.80665},"DECI":{"schemaItemType":"Constant","label":"deci","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.1},"CENTI":{"schemaItemType":"Constant","label":"centi","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.01},"MILLI":{"schemaItemType":"Constant","label":"milli","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.001},"MICRO":{"schemaItemType":"Constant","label":"micro","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.000001},"NANO":{"schemaItemType":"Constant","label":"nano","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-9},"PICO":{"schemaItemType":"Constant","label":"pico","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-12},"FEMTO":{"schemaItemType":"Constant","label":"femto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-15},"ATTO":{"schemaItemType":"Constant","label":"atto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-18},"ZEPTO":{"schemaItemType":"Constant","label":"zepto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-21},"YOCTO":{"schemaItemType":"Constant","label":"yocto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-24},"DECA":{"schemaItemType":"Constant","phenomenon":"Units.NUMBER","definition":"ONE","numerator":10},"HECTO":{"schemaItemType":"Constant","label":"hecto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":100},"KILO":{"schemaItemType":"Constant","label":"kilo","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000},"MEGA":{"schemaItemType":"Constant","label":"mega","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000},"GIGA":{"schemaItemType":"Constant","label":"giga","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000},"TERA":{"schemaItemType":"Constant","label":"tera","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000},"PETA":{"schemaItemType":"Constant","label":"peta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000},"EXA":{"schemaItemType":"Constant","label":"exa","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000000},"ZETTA":{"schemaItemType":"Constant","label":"zetta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+21},"YOTTA":{"schemaItemType":"Constant","label":"yotta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+24},"MM":{"schemaItemType":"Unit","label":"mm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MILLI]*M"},"CM":{"schemaItemType":"Unit","label":"cm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[CENTI]*M"},"DM":{"schemaItemType":"Unit","label":"dm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[DECI]*M"},"KM":{"schemaItemType":"Unit","label":"km","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[KILO]*M"},"UM":{"schemaItemType":"Unit","label":"µm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MICRO]*M"},"MILLIINCH":{"schemaItemType":"Unit","label":"mil","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*IN"},"MICROINCH":{"schemaItemType":"Unit","label":"µin","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MICRO]*IN"},"MILLIFOOT":{"schemaItemType":"Unit","label":"mft","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*FT"},"IN":{"schemaItemType":"Unit","label":"in","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.1, Page B-10","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"MM","numerator":25.4},"FT":{"schemaItemType":"Unit","label":"ft","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"IN","numerator":12},"YRD":{"schemaItemType":"Unit","label":"yd","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":3},"CHAIN":{"schemaItemType":"Unit","label":"chain","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":66},"MILE":{"schemaItemType":"Unit","label":"mi","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"YRD","numerator":1760},"US_SURVEY_IN":{"schemaItemType":"Unit","label":"in (US Survey)","description":"100/3937 Derived from the definition of us survey foot in terms of meters. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"M","numerator":100,"denominator":3937},"US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN","numerator":12},"US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":3},"US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":66},"US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mi (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD","numerator":1760},"NAUT_MILE":{"schemaItemType":"Unit","label":"nmi","description":"International Nautical Mile. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.MARITIME","definition":"M","numerator":1852},"G":{"schemaItemType":"Unit","label":"g","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*KG"},"MG":{"schemaItemType":"Unit","label":"mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*G"},"MKG":{"schemaItemType":"Unit","label":"µg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MICRO]*G"},"NG":{"schemaItemType":"Unit","label":"ng","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[NANO]*G"},"MEGAGRAM":{"schemaItemType":"Unit","label":"Mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MEGA]*G"},"TONNE":{"schemaItemType":"Unit","label":"tonne","description":"Also known as a metric ton http://phyMETRICcs.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[KILO]*KG"},"LBM":{"schemaItemType":"Unit","label":"lb","description":"Is Avoirdupois Pound. Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Footnote 22","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"KG","numerator":0.45359237},"SLUG":{"schemaItemType":"Unit","label":"slug","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBF*S(2)*FT(-1)"},"GRM":{"schemaItemType":"Unit","label":"gr","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.2, Page B-10","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":7000},"SHORT_TON_MASS":{"schemaItemType":"Unit","label":"tn (short)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2000},"LONG_TON_MASS":{"schemaItemType":"Unit","label":"tn (long)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2240},"KIPM":{"schemaItemType":"Unit","label":"kipm","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBM"},"OZM":{"schemaItemType":"Unit","label":"oz","description":"1/16 Exact, https://en.wikipedia.org/wiki/Ounce","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":16},"MIN":{"schemaItemType":"Unit","label":"min","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":60},"HR":{"schemaItemType":"Unit","label":"h","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"MIN","numerator":60},"DAY":{"schemaItemType":"Unit","label":"days","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"HR","numerator":24},"WEEK":{"schemaItemType":"Unit","label":"week","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":7},"YR":{"schemaItemType":"Unit","label":"years","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Year is 3.1536 E+07 seconds which is equal to 365 * 24 * 60 * 60","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":365},"YEAR_SIDEREAL":{"schemaItemType":"Unit","label":"Year (Sidereal)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31558150},"YEAR_TROPICAL":{"schemaItemType":"Unit","label":"Year (Tropical)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31556930},"MS":{"schemaItemType":"Unit","label":"ms","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MILLI]*S"},"MKS":{"schemaItemType":"Unit","label":"µs","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MICRO]*S"},"CELSIUS":{"schemaItemType":"Unit","label":"°C","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.METRIC","definition":"K","offset":273.15},"FAHRENHEIT":{"schemaItemType":"Unit","label":"°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"CELSIUS","numerator":5,"denominator":9,"offset":-32},"RANKINE":{"schemaItemType":"Unit","label":"°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"K","numerator":5,"denominator":9},"DELTA_CELSIUS":{"schemaItemType":"Unit","label":"Δ°C","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.METRIC","definition":"DELTA_KELVIN"},"DELTA_FAHRENHEIT":{"schemaItemType":"Unit","label":"Δ°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_CELSIUS","numerator":5,"denominator":9},"DELTA_RANKINE":{"schemaItemType":"Unit","label":"Δ°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_KELVIN","numerator":5,"denominator":9},"KELVIN_PER_M":{"schemaItemType":"Unit","label":"ΔK/m","phenomenon":"Units.TEMPERATURE_GRADIENT","unitSystem":"Units.SI","definition":"DELTA_KELVIN*M(-1)"},"STRAIN_PER_KELVIN":{"schemaItemType":"Unit","label":"1/ΔK","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.SI","definition":"DELTA_KELVIN(-1)"},"STRAIN_PER_CELSIUS":{"schemaItemType":"Unit","label":"1/Δ°C","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.METRIC","definition":"DELTA_CELSIUS(-1)"},"STRAIN_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"1/Δ°F","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_FAHRENHEIT(-1)"},"STRAIN_PER_RANKINE":{"schemaItemType":"Unit","label":"1/Δ°R","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_RANKINE(-1)"},"LUMEN":{"schemaItemType":"Unit","label":"lm","phenomenon":"Units.LUMINOUS_FLUX","unitSystem":"Units.SI","definition":"CD*STERAD"},"LUX":{"schemaItemType":"Unit","label":"lx","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.SI","definition":"LUMEN*M(-2)"},"LUMEN_PER_SQ_FT":{"schemaItemType":"Unit","label":"lm/ft²","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.USCUSTOM","definition":"LUMEN*FT(-2)"},"KMOL":{"schemaItemType":"Unit","label":"kmol","phenomenon":"Units.MOLE","unitSystem":"Units.METRIC","definition":"[KILO]*MOL"},"LB_MOL":{"schemaItemType":"Unit","label":"lb-mol","description":"ASTM SI 10 standard SI1-.phhc8328.pdf page 29, 35 and http://en.wikipedia.org/wiki/Mole_%28unit%29","phenomenon":"Units.MOLE","unitSystem":"Units.USCUSTOM","definition":"MOL","numerator":453.59237},"HUNDRED_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[HECTO]*PERSON"},"THOUSAND_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[KILO]*PERSON"},"N_M_PER_RAD":{"schemaItemType":"Unit","label":"N·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N_M*RAD(-1)"},"KN_M_PER_RAD":{"schemaItemType":"Unit","label":"kN·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*RAD(-1)"},"N_M_PER_DEG":{"schemaItemType":"Unit","label":"N·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"N_M*ARC_DEG(-1)"},"KN_M_PER_DEG":{"schemaItemType":"Unit","label":"kN·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*ARC_DEG(-1)"},"KPF_FT_PER_RAD":{"schemaItemType":"Unit","label":"kpf·ft/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*RAD(-1)"},"KPF_FT_PER_DEG":{"schemaItemType":"Unit","label":"kpf·ft/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*ARC_DEG(-1)"},"N_PER_RAD":{"schemaItemType":"Unit","label":"N/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*RAD(-1)"},"KN_PER_RAD":{"schemaItemType":"Unit","label":"kN/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*RAD(-1)"},"KPF_PER_RAD":{"schemaItemType":"Unit","label":"kpf/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*RAD(-1)"},"SPRING_CONSTANT_N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*M(-1)"},"SPRING_CONSTANT_KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"SPRING_CONSTANT_KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"LINEAR_SPRING_CONSTANT_N_PER_SQ_M":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KN_PER_SQ_M":{"schemaItemType":"Unit","label":"kN/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KPF_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf/ft²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*FT(-1)"},"AREA_SPRING_CONSTANT_N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*SQ_FT(-1)"},"M_PER_SEC_SQ":{"schemaItemType":"Unit","label":"m/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.SI","definition":"M*S(-2)"},"CM_PER_SEC_SQ":{"schemaItemType":"Unit","label":"cm/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.METRIC","definition":"CM*S(-2)"},"FT_PER_SEC_SQ":{"schemaItemType":"Unit","label":"ft/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.USCUSTOM","definition":"FT*S(-2)"},"ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":180},"ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":60},"ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":3600},"ARC_QUADRANT":{"schemaItemType":"Unit","label":"quadrants","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[HALF_PI]*RAD"},"GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":200},"REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD"},"HORIZONTAL_DIR_ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":180},"HORIZONTAL_DIR_ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":60},"HORIZONTAL_DIR_ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":3600},"HORIZONTAL_DIR_GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":200},"HORIZONTAL_DIR_MILLIRAD":{"schemaItemType":"Unit","label":"mrad","description":"1/1000","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":1000},"HORIZONTAL_DIR_REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[TWO_PI]*HORIZONTAL_DIR_RAD"},"SQ_M":{"schemaItemType":"Unit","label":"m²","phenomenon":"Units.AREA","unitSystem":"Units.SI","definition":"M(2)"},"SQ_UM":{"schemaItemType":"Unit","label":"um²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"UM(2)"},"SQ_MM":{"schemaItemType":"Unit","label":"mm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"MM(2)"},"SQ_CM":{"schemaItemType":"Unit","label":"cm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"CM(2)"},"SQ_DM":{"schemaItemType":"Unit","label":"dm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"DM(2)"},"SQ_KM":{"schemaItemType":"Unit","label":"km²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"KM(2)"},"ARE":{"schemaItemType":"Unit","label":"are","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*M(2)"},"HECTARE":{"schemaItemType":"Unit","label":"ha","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*ARE"},"SQ_IN":{"schemaItemType":"Unit","label":"in²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"IN(2)"},"SQ_FT":{"schemaItemType":"Unit","label":"ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"FT(2)"},"THOUSAND_SQ_FT":{"schemaItemType":"Unit","label":"thousand ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"[KILO]*FT(2)"},"SQ_YRD":{"schemaItemType":"Unit","label":"yd²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"YRD(2)"},"SQ_MILE":{"schemaItemType":"Unit","label":"mi²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"MILE(2)"},"SQ_CHAIN":{"schemaItemType":"Unit","label":"chain²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)"},"ACRE":{"schemaItemType":"Unit","label":"acres","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)","numerator":10},"SQ_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(2)"},"SQ_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(2)"},"SQ_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(2)"},"SQ_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(2)"},"SQ_US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)"},"US_SURVEY_ACRE":{"schemaItemType":"Unit","label":"acre (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)","numerator":10},"IN_MILE":{"schemaItemType":"Unit","label":"in·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*MILE"},"FT_MILE":{"schemaItemType":"Unit","label":"ft·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*MILE"},"FT_FT":{"schemaItemType":"Unit","label":"ft·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*FT"},"IN_FT":{"schemaItemType":"Unit","label":"in·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*FT"},"IN_M":{"schemaItemType":"Unit","label":"in·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*M"},"MM_KM":{"schemaItemType":"Unit","label":"mm·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*KM"},"MM_M":{"schemaItemType":"Unit","label":"mm·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*M"},"MM_MILE":{"schemaItemType":"Unit","label":"mm·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*MILE"},"M_KM":{"schemaItemType":"Unit","label":"m·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"M*KM"},"M_M":{"schemaItemType":"Unit","label":"m·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.SI","definition":"M*M"},"KG_PER_CUB_M":{"schemaItemType":"Unit","label":"kg/m³","phenomenon":"Units.DENSITY","unitSystem":"Units.SI","definition":"KG*M(-3)"},"KG_PER_CUB_CM":{"schemaItemType":"Unit","label":"kg/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*CM(-3)"},"KG_PER_LITRE":{"schemaItemType":"Unit","label":"kg/dm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*DM(-3)"},"G_PER_CUB_CM":{"schemaItemType":"Unit","label":"g/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"G*CM(-3)"},"MKG_PER_LITRE":{"schemaItemType":"Unit","label":"µg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MKG*DM(-3)"},"MG_PER_LITRE":{"schemaItemType":"Unit","label":"mg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MG*DM(-3)"},"LBM_PER_CUB_FT":{"schemaItemType":"Unit","label":"lb/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-3)"},"LBM_PER_GALLON":{"schemaItemType":"Unit","label":"lb/gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*GALLON(-1)"},"LBM_PER_GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"lb/gal (imp)","phenomenon":"Units.DENSITY","unitSystem":"Units.IMPERIAL","definition":"LBM*GALLON_IMPERIAL(-1)"},"LBM_PER_CUB_IN":{"schemaItemType":"Unit","label":"lb/in³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*IN(-3)"},"LBM_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"lb/million gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*[MEGA](-1)*GALLON(-1)"},"SLUG_PER_CUB_FT":{"schemaItemType":"Unit","label":"slug/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SLUG*FT(-3)"},"KIP_PER_CUB_FT":{"schemaItemType":"Unit","label":"kip/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"KIPM*FT(-3)"},"SHORT_TON_PER_CUB_FT":{"schemaItemType":"Unit","label":"tn (short)/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*FT(-3)"},"N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.SI","definition":"N*M(-3)"},"KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.METRIC","definition":"[KILO]*N*M(-3)"},"KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-3)"},"N_PER_CUB_FT":{"schemaItemType":"Unit","label":"N/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"N*FT(-3)"},"KN_PER_CUB_FT":{"schemaItemType":"Unit","label":"kN/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"[KILO]*N*FT(-3)"},"PERSON_PER_SQ_M":{"schemaItemType":"Unit","label":"p/m²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.SI","definition":"PERSON*M(-2)"},"PERSON_PER_HECTARE":{"schemaItemType":"Unit","label":"p/ha","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*HECTARE(-1)"},"PERSON_PER_SQ_KM":{"schemaItemType":"Unit","label":"p/km²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*KM(-2)"},"PERSON_PER_ACRE":{"schemaItemType":"Unit","label":"p/acre","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*ACRE(-1)"},"PERSON_PER_SQ_FT":{"schemaItemType":"Unit","label":"p/ft²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*FT(-2)"},"PERSON_PER_SQ_MILE":{"schemaItemType":"Unit","label":"p/mi²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*MILE(-2)"},"KILOAMPERE":{"schemaItemType":"Unit","label":"KA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[KILO]*A"},"MILLIAMPERE":{"schemaItemType":"Unit","label":"mA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MILLI]*A"},"MICROAMPERE":{"schemaItemType":"Unit","label":"µA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MICRO]*A"},"COULOMB":{"schemaItemType":"Unit","label":"C","phenomenon":"Units.ELECTRIC_CHARGE","unitSystem":"Units.SI","definition":"A*S"},"VOLT":{"schemaItemType":"Unit","label":"V","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.SI","definition":"N*M*COULOMB(-1)"},"KILOVOLT":{"schemaItemType":"Unit","label":"KV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[KILO]*VOLT"},"MEGAVOLT":{"schemaItemType":"Unit","label":"MV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[MEGA]*VOLT"},"J":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.SI","definition":"N*M"},"KJ":{"schemaItemType":"Unit","label":"kJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[KILO]*J"},"MEGAJ":{"schemaItemType":"Unit","label":"MJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[MEGA]*J"},"GJ":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[GIGA]*J"},"FT_PDL":{"schemaItemType":"Unit","label":"ft*pdl","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"PDL*FT"},"BTU":{"schemaItemType":"Unit","label":"Btu","description":"Is IT BTU. http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. See foot note #9: ","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"J","numerator":1055.05585262},"KILOBTU":{"schemaItemType":"Unit","label":"kBtu","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU"},"WATT_SECOND":{"schemaItemType":"Unit","label":"Ws","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"W*S"},"KWH":{"schemaItemType":"Unit","label":"kW·h","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"KW*HR"},"MEGAWH":{"schemaItemType":"Unit","label":"MWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"MEGAW*HR"},"GWH":{"schemaItemType":"Unit","label":"GWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"GW*HR"},"J_PER_CUB_M":{"schemaItemType":"Unit","label":"J/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.SI","definition":"J*M(-3)"},"KJ_PER_CUB_M":{"schemaItemType":"Unit","label":"kJ/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KJ*M(-3)"},"KWH_PER_CUB_M":{"schemaItemType":"Unit","label":"kW·h/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KWH*M(-3)"},"KWH_PER_CUB_FT":{"schemaItemType":"Unit","label":"kWh/ft³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*FT(-3)"},"KWH_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"kW·h/million gal","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*[MEGA](-1)*GALLON(-1)"},"J_PER_KG":{"schemaItemType":"Unit","label":"J/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.SI","definition":"J*KG(-1)"},"KJ_PER_KG":{"schemaItemType":"Unit","label":"kJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"KJ*KG(-1)"},"MEGAJ_PER_KG":{"schemaItemType":"Unit","label":"MJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"MEGAJ*KG(-1)"},"BTU_PER_LBM":{"schemaItemType":"Unit","label":"Btu/lb","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)"},"J_PER_KG_K":{"schemaItemType":"Unit","label":"J/(kg·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.SI","definition":"J*KG(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LBM_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lbm·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)*DELTA_RANKINE(-1)"},"J_PER_G_CELSIUS":{"schemaItemType":"Unit","label":"J/(g·Δ°C)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.METRIC","definition":"J*G(-1)*DELTA_CELSIUS(-1)"},"J_PER_MOL_K":{"schemaItemType":"Unit","label":"J/(mol*K)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.SI","definition":"J*MOL(-1)*DELTA_KELVIN(-1)"},"J_PER_KMOL_K":{"schemaItemType":"Unit","label":"J/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"J*KMOL(-1)*DELTA_KELVIN(-1)"},"KJ_PER_KMOL_K":{"schemaItemType":"Unit","label":"kJ/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"KJ*KMOL(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LB_MOL_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lb-mol·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.USCUSTOM","definition":"BTU*LB_MOL(-1)*DELTA_RANKINE(-1)"},"CUB_M_PER_SEC":{"schemaItemType":"Unit","label":"m³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.SI","definition":"M(3)*S(-1)"},"CUB_M_PER_MIN":{"schemaItemType":"Unit","label":"m³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*MIN(-1)"},"CUB_M_PER_HR":{"schemaItemType":"Unit","label":"m³/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*HR(-1)"},"CUB_M_PER_DAY":{"schemaItemType":"Unit","label":"m³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*DAY(-1)"},"LITRE_PER_SEC":{"schemaItemType":"Unit","label":"L/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*S(-1)"},"LITRE_PER_MIN":{"schemaItemType":"Unit","label":"L/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*MIN(-1)"},"LITRE_PER_HR":{"schemaItemType":"Unit","label":"L/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*HR(-1)"},"LITRE_PER_DAY":{"schemaItemType":"Unit","label":"L/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*DAY(-1)"},"CUB_IN_PER_SEC":{"schemaItemType":"Unit","label":"in³/sec","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*S(-1)"},"CUB_IN_PER_MIN":{"schemaItemType":"Unit","label":"in³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*MIN(-1)"},"CUB_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*S(-1)"},"CUB_FT_PER_MIN":{"schemaItemType":"Unit","label":"ft³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*MIN(-1)"},"CUB_FT_PER_DAY":{"schemaItemType":"Unit","label":"ft³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*DAY(-1)"},"ACRE_FT_PER_DAY":{"schemaItemType":"Unit","label":"acre·ft/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*DAY(-1)"},"ACRE_FT_PER_HR":{"schemaItemType":"Unit","label":"acre·ft/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*HR(-1)"},"ACRE_FT_PER_MIN":{"schemaItemType":"Unit","label":"acre·ft/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*MIN(-1)"},"ACRE_IN_PER_DAY":{"schemaItemType":"Unit","label":"acre_in/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*DAY(-1)"},"ACRE_IN_PER_HR":{"schemaItemType":"Unit","label":"acre·in/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*HR(-1)"},"ACRE_IN_PER_MIN":{"schemaItemType":"Unit","label":"acre·in/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*MIN(-1)"},"GALLON_IMPERIAL_PER_SEC":{"schemaItemType":"Unit","label":"gal (imp)/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*S(-1)"},"GALLON_IMPERIAL_PER_MIN":{"schemaItemType":"Unit","label":"gal (imp)/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*MIN(-1)"},"GALLON_IMPERIAL_PER_HR":{"schemaItemType":"Unit","label":"gal (imp)/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*HR(-1)"},"GALLON_IMPERIAL_PER_DAY":{"schemaItemType":"Unit","label":"gal (imp)/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*DAY(-1)"},"GALLON_PER_SEC":{"schemaItemType":"Unit","label":"gal/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*S(-1)"},"GALLON_PER_MIN":{"schemaItemType":"Unit","label":"gal/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)"},"GALLON_PER_HR":{"schemaItemType":"Unit","label":"gal/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*HR(-1)"},"GALLON_PER_DAY":{"schemaItemType":"Unit","label":"gal/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)"},"HZ":{"schemaItemType":"Unit","label":"Hz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.SI","definition":"S(-1)"},"KHZ":{"schemaItemType":"Unit","label":"KHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[KILO]*S(-1)"},"MHZ":{"schemaItemType":"Unit","label":"MHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[MEGA]*S(-1)"},"CUB_M_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"m³/(m²*sec)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.SI","definition":"M*S(-1)"},"CUB_M_PER_SQ_M_DAY":{"schemaItemType":"Unit","label":"m³/(m²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"CUB_M_PER_HECTARE_DAY":{"schemaItemType":"Unit","label":"m³/(ha·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*HECTARE(-1)*DAY(-1)"},"CUB_M_PER_SQ_KM_DAY":{"schemaItemType":"Unit","label":"m³/(km²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*KM(-2)*DAY(-1)"},"LITRE_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"L/(m²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"LITRE*M(-2)*S(-1)"},"CUB_FT_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"ft³/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"CUB_FT_PER_SQ_FT_SEC":{"schemaItemType":"Unit","label":"ft³/(ft²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"CUB_FT_PER_SQ_MILE_SEC":{"schemaItemType":"Unit","label":"ft³/(mi²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*MILE(-2)*S(-1)"},"CUB_FT_PER_ACRE_SEC":{"schemaItemType":"Unit","label":"ft³/(acres·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*ACRE(-1)*S(-1)"},"GALLON_PER_ACRE_DAY":{"schemaItemType":"Unit","label":"gal/(acre·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*ACRE(-1)"},"GALLON_PER_ACRE_MIN":{"schemaItemType":"Unit","label":"gal/(acre·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*ACRE(-1)"},"GALLON_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"gal/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*FT(-2)"},"GALLON_PER_SQ_FT_DAY":{"schemaItemType":"Unit","label":"gal/(ft²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*FT(-2)"},"GALLON_PER_SQ_MILE_MIN":{"schemaItemType":"Unit","label":"gal/(mi²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*MILE(-2)"},"GALLON_PER_SQ_MILE_DAY":{"schemaItemType":"Unit","label":"gal/(mi²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*MILE(-2)"},"KG_PER_KG":{"schemaItemType":"Unit","label":"kg/kg","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.SI","definition":"KG*KG(-1)"},"GRM_PER_LBM":{"schemaItemType":"Unit","label":"gr/lb","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.USCUSTOM","definition":"GRM*LBM(-1)"},"KG_PER_SEC":{"schemaItemType":"Unit","label":"kg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.SI","definition":"KG*S(-1)"},"KG_PER_MIN":{"schemaItemType":"Unit","label":"kg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*MIN(-1)"},"KG_PER_HR":{"schemaItemType":"Unit","label":"kg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*HR(-1)"},"KG_PER_DAY":{"schemaItemType":"Unit","label":"kg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*DAY(-1)"},"G_PER_SEC":{"schemaItemType":"Unit","label":"g/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*S(-1)"},"G_PER_MIN":{"schemaItemType":"Unit","label":"g/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*MIN(-1)"},"G_PER_HR":{"schemaItemType":"Unit","label":"g/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*HR(-1)"},"MG_PER_SEC":{"schemaItemType":"Unit","label":"mg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*S(-1)"},"MG_PER_MIN":{"schemaItemType":"Unit","label":"mg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*MIN(-1)"},"MG_PER_HR":{"schemaItemType":"Unit","label":"mg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*HR(-1)"},"MG_PER_DAY":{"schemaItemType":"Unit","label":"mg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*DAY(-1)"},"MKG_PER_SEC":{"schemaItemType":"Unit","label":"µg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*S(-1)"},"MKG_PER_MIN":{"schemaItemType":"Unit","label":"µg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*MIN(-1)"},"MKG_PER_HR":{"schemaItemType":"Unit","label":"µg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*HR(-1)"},"MKG_PER_DAY":{"schemaItemType":"Unit","label":"µg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*DAY(-1)"},"TONNE_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"TONNE*HR(-1)"},"LBM_PER_SEC":{"schemaItemType":"Unit","label":"lb/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*S(-1)"},"LBM_PER_MIN":{"schemaItemType":"Unit","label":"lb/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*MIN(-1)"},"LBM_PER_HR":{"schemaItemType":"Unit","label":"lb/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*HR(-1)"},"LBM_PER_DAY":{"schemaItemType":"Unit","label":"lb/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*DAY(-1)"},"SHORT_TON_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*HR(-1)"},"MOL_PER_SEC":{"schemaItemType":"Unit","label":"mol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.SI","definition":"MOL*S(-1)"},"KMOL_PER_SEC":{"schemaItemType":"Unit","label":"kmol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*S(-1)"},"N":{"schemaItemType":"Unit","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"KG*M*S(-2)"},"DECAN":{"schemaItemType":"Unit","label":"daN","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"[DECA]*N"},"KN":{"schemaItemType":"Unit","label":"kN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[KILO]*N"},"MN":{"schemaItemType":"Unit","label":"mN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MILLI]*N"},"MEGAN":{"schemaItemType":"Unit","label":"MN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MEGA]*N"},"KGF":{"schemaItemType":"Unit","label":"kgf","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[STD_G]*KG"},"DYNE":{"schemaItemType":"Unit","label":"dyn","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"G*CM*S(-2)"},"PDL":{"schemaItemType":"Unit","label":"pdl","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"LBM*FT*S(-2)"},"SHORT_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (short)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*SHORT_TON_MASS"},"LONG_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (long)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LONG_TON_MASS"},"LBF":{"schemaItemType":"Unit","label":"lbf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LBM"},"OZF":{"schemaItemType":"Unit","label":"ozf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*OZM"},"KPF":{"schemaItemType":"Unit","label":"kpf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBF"},"W_PER_SQ_M":{"schemaItemType":"Unit","label":"W/m²","phenomenon":"Units.HEAT_FLUX_DENSITY","unitSystem":"Units.SI","definition":"W*M(-2)"},"W_PER_SQ_M_K":{"schemaItemType":"Unit","label":"W/(m²·ΔK)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.SI","definition":"W*M(-2)*DELTA_KELVIN(-1)"},"W_PER_SQ_M_CELSIUS":{"schemaItemType":"Unit","label":"W/(m²·Δ°C)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.METRIC","definition":"W*M(-2)*DELTA_CELSIUS(-1)"},"BTU_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/(ft²·h·Δ°F)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.USCUSTOM","definition":"BTU*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"KG_PER_M":{"schemaItemType":"Unit","label":"kg/m","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-1)"},"KG_PER_MM":{"schemaItemType":"Unit","label":"kg/mm","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.METRIC","definition":"KG*MM(-1)"},"LBM_PER_FT":{"schemaItemType":"Unit","label":"lb/ft","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)"},"N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.SI","definition":"N*M(-1)"},"KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"MEGAN_PER_M":{"schemaItemType":"Unit","label":"MN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"MEGAN*M(-1)"},"N_PER_MM":{"schemaItemType":"Unit","label":"N/mm","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"N*MM(-1)"},"LBF_PER_IN":{"schemaItemType":"Unit","label":"lbf/in","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-1)"},"LBF_PER_FT":{"schemaItemType":"Unit","label":"lbf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-1)"},"KGF_PER_M":{"schemaItemType":"Unit","label":"kgf/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KGF*M(-1)"},"KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"PER_M":{"schemaItemType":"Unit","label":"1/m","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.SI","definition":"M(-1)"},"PER_MM":{"schemaItemType":"Unit","label":"1/mm","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"MM(-1)"},"PER_KM":{"schemaItemType":"Unit","label":"1/km","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"KM(-1)"},"PER_FT":{"schemaItemType":"Unit","label":"1/ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)"},"PER_MILE":{"schemaItemType":"Unit","label":"1/mile","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"MILE(-1)"},"PER_THOUSAND_FT":{"schemaItemType":"Unit","label":"1/1000 ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)","numerator":0.001},"N_M":{"schemaItemType":"Unit","label":"N·m","phenomenon":"Units.TORQUE","unitSystem":"Units.SI","definition":"N*M*RAD(-1)"},"KN_M":{"schemaItemType":"Unit","label":"kN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KN*M*RAD(-1)"},"MEGAN_M":{"schemaItemType":"Unit","label":"MN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN*M*RAD(-1)"},"N_CM":{"schemaItemType":"Unit","label":"N·cm","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"N*CM*RAD(-1)"},"LBF_FT":{"schemaItemType":"Unit","label":"lbf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*RAD(-1)"},"LBF_IN":{"schemaItemType":"Unit","label":"lbf·in","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN*RAD(-1)"},"KGF_M":{"schemaItemType":"Unit","label":"kgf·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KGF*M*RAD(-1)"},"KPF_FT":{"schemaItemType":"Unit","label":"kpf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT*RAD(-1)"},"N_M_PER_M":{"schemaItemType":"Unit","label":"N·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-1)"},"KN_M_PER_M":{"schemaItemType":"Unit","label":"kN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-1)"},"MEGAN_M_PER_M":{"schemaItemType":"Unit","label":"MN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-1)"},"N_CM_PER_CM":{"schemaItemType":"Unit","label":"N·cm/cm","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-1)"},"LBF_IN_PER_IN":{"schemaItemType":"Unit","label":"lbf·in/in","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-1)"},"LBF_FT_PER_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-1)"},"KPF_FT_PER_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-1)"},"N_M_PER_SQ_M":{"schemaItemType":"Unit","label":"N·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-2)"},"KN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"kN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-2)"},"MEGAN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"MN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-2)"},"N_CM_PER_SQ_CM":{"schemaItemType":"Unit","label":"N·cm/cm²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-2)"},"LBF_IN_PER_SQ_IN":{"schemaItemType":"Unit","label":"lbf·in/in²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-2)"},"LBF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-2)"},"KPF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-2)"},"CUB_M_PER_MOL":{"schemaItemType":"Unit","label":"m³/mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.SI","definition":"CUB_M*MOL(-1)"},"CUB_M_PER_KMOL":{"schemaItemType":"Unit","label":"m³/kmol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.METRIC","definition":"CUB_M*[KILO](-1)*MOL(-1)"},"CUB_FT_PER_LB_MOL":{"schemaItemType":"Unit","label":"ft³/lb-mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*LB_MOL(-1)"},"MOL_PER_CUB_M":{"schemaItemType":"Unit","label":"mol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.SI","definition":"MOL*CUB_M(-1)"},"KMOL_PER_CUB_M":{"schemaItemType":"Unit","label":"kmol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*CUB_M(-1)"},"MOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"mol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"MOL*CUB_DM(-1)"},"MICROMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"µmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[MICRO]*MOL*CUB_DM(-1)"},"NMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"nmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[NANO]*MOL*CUB_DM(-1)"},"PICOMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"picomol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[PICO]*MOL*CUB_DM(-1)"},"MOL_PER_CUB_FT":{"schemaItemType":"Unit","label":"mol/ft³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.USCUSTOM","definition":"MOL*CUB_FT(-1)"},"MM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"mm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"MM(4)"},"M_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"m⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.SI","definition":"M(4)"},"CM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"cm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"CM(4)"},"IN_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"in⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"IN(4)"},"FT_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"ft⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"FT(4)"},"W":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.SI","definition":"N*M*S(-1)"},"KW":{"schemaItemType":"Unit","label":"kW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[KILO]*W"},"MEGAW":{"schemaItemType":"Unit","label":"MW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*W"},"GW":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[GIGA]*W"},"BTU_PER_HR":{"schemaItemType":"Unit","label":"Btu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"BTU*HR(-1)"},"KILOBTU_PER_HR":{"schemaItemType":"Unit","label":"kBtu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU*HR(-1)"},"HP":{"schemaItemType":"Unit","label":"hp","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*S(-1)","numerator":550},"PA":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.SI","definition":"N*M(-2)"},"PA_GAUGE":{"schemaItemType":"Unit","label":"Pa (gauge)","description":"Offset is one standard atmosphere in PA. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":1,"offset":101325},"HECTOPASCAL":{"schemaItemType":"Unit","label":"hPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[HECTO]*PA"},"KILOPASCAL":{"schemaItemType":"Unit","label":"kPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*PA"},"MICROPASCAL":{"schemaItemType":"Unit","label":"µPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MICRO]*PA"},"KILOPASCAL_GAUGE":{"schemaItemType":"Unit","label":"kPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to kilopascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[KILO]*PA","numerator":1,"offset":101.325},"MEGAPASCAL":{"schemaItemType":"Unit","label":"MPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MEGA]*PA"},"MEGAPASCAL_GAUGE":{"schemaItemType":"Unit","label":"MPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to megapascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[MEGA]*PA","numerator":1,"offset":0.101325},"AT":{"schemaItemType":"Unit","label":"kgf/cm²","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*CM(-2)"},"AT_GAUGE":{"schemaItemType":"Unit","label":"kgf/cm² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to atmosphere-technical (AT). Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"AT","offset":1.033227452799886},"KGF_PER_SQ_M":{"schemaItemType":"Unit","label":"kgf/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*M(-2)"},"ATM":{"schemaItemType":"Unit","label":"atm","description":"Standard atmosphere, see AT for atmosphere-technical. Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":101325},"BAR":{"schemaItemType":"Unit","label":"bar","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":100000},"BAR_GAUGE":{"schemaItemType":"Unit","label":"bar (Gauge)","description":"Offset is one standard atmosphere converted to BAR. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":100000,"offset":1.01325},"MBAR":{"schemaItemType":"Unit","label":"mBar","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MILLI]*BAR"},"BARYE":{"schemaItemType":"Unit","label":"ba","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"DYNE*CM(-2)"},"PSI":{"schemaItemType":"Unit","label":"lbf/in²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)"},"PSF":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"PSIG":{"schemaItemType":"Unit","label":"lbf/in² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to PSI","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)","numerator":1,"offset":14.695948775513449},"KSI":{"schemaItemType":"Unit","label":"ksi","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*IN(-2)"},"KSF":{"schemaItemType":"Unit","label":"ksf","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-2)"},"LBF_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"TORR":{"schemaItemType":"Unit","label":"torr","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. for approx conversion and Table 11 for a reference to the exact conversion","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":101325,"denominator":760},"M_H2O":{"schemaItemType":"Unit","label":"mH2O (Conv)","description":"Meter of H2O Conventional","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*MM_H2O"},"MM_H2O":{"schemaItemType":"Unit","label":"mmH2O (Conv)","description":"Millimeter of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":9.80665},"MM_HG_AT_32F":{"schemaItemType":"Unit","label":"mmHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. Used centimeter of mercury (0 C) to pascal","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":133.322},"FT_H2O":{"schemaItemType":"Unit","label":"ft H2O (Conv)","description":"foot of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":2989.067},"IN_H2O_AT_32F":{"schemaItemType":"Unit","label":"inH2O@32°F","description":"Inch of H2O at 32 Fahrenheit, Water is assumed to be in a liquid state. Equal to water at 0C. No verified source","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.1083},"IN_H2O_AT_39_2F":{"schemaItemType":"Unit","label":"inH2O@39.2°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.082},"IN_H2O_AT_60F":{"schemaItemType":"Unit","label":"inH2O@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":248.84},"IN_HG":{"schemaItemType":"Unit","label":"inHg (Conv)","description":"Inch of HG conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.389},"IN_HG_AT_32F":{"schemaItemType":"Unit","label":"inHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.38},"IN_HG_AT_60F":{"schemaItemType":"Unit","label":"inHg@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3376.85},"PA_PER_M":{"schemaItemType":"Unit","label":"Pa/m","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.SI","definition":"PA*M(-1)"},"BAR_PER_KM":{"schemaItemType":"Unit","label":"bar/km","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.METRIC","definition":"BAR*KM(-1)"},"PERCENT":{"schemaItemType":"Unit","label":"%","description":"Unit used to show a ratio as a percentage in the UI.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"DECIMAL_PERCENT":{"schemaItemType":"Unit","label":"decimal percent","description":"Unit suitable for storing a decimal number that represents an unspecified ratio.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"PERCENT","numerator":100},"PROBABILITY_FRACTION":{"schemaItemType":"Unit","label":"","phenomenon":"Units.PROBABILITY","unitSystem":"Units.SI","definition":"ONE"},"PROBABILITY_PERCENT":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.PROBABILITY","unitSystem":"Units.INTERNATIONAL","definition":"PROBABILITY_FRACTION","denominator":100},"DECIMAL_LENGTH_RATIO":{"schemaItemType":"Unit","label":"decimal length ratio","description":"Unitless decimal number representing a ratio of two lengths, equivalent to M_PER_M_LENGTH_RATIO. For drawing scales, value = paper length / model length, e.g. 1:100 is stored as 0.01.","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"M_PER_M_LENGTH_RATIO":{"schemaItemType":"Unit","label":"m:m","description":"Ratio of two lengths, such as a drawing scale. Value = paper length / model length, e.g. 1:100 is stored as 0.01 and 1/4 in = 1 ft is stored as 1/48 (0.0208333...).","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.SI","definition":"M*M(-1)"},"IN_PER_FT_LENGTH_RATIO":{"schemaItemType":"Unit","label":"in:ft","description":"Ratio of a length in inches to a length in feet, such as an architectural drawing scale. Value = paper length (in) / model length (ft), e.g. 1/4 in = 1 ft is stored as 0.25.","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"M_PER_M":{"schemaItemType":"Unit","label":"m/m","phenomenon":"Units.SLOPE","unitSystem":"Units.SI","definition":"M*M(-1)"},"CM_PER_M":{"schemaItemType":"Unit","label":"cm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"CM*M(-1)"},"MM_PER_M":{"schemaItemType":"Unit","label":"mm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"MM*M(-1)"},"M_PER_KM":{"schemaItemType":"Unit","label":"m/km","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"M*KM(-1)"},"FT_PER_THOUSAND_FOOT":{"schemaItemType":"Unit","label":"ft/1000ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*[KILO](-1)*FT(-1)"},"FT_PER_FT":{"schemaItemType":"Unit","label":"ft/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*FT(-1)"},"IN_PER_FT":{"schemaItemType":"Unit","label":"in/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"FT_PER_IN":{"schemaItemType":"Unit","label":"ft/in","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*IN(-1)"},"FT_PER_MILE":{"schemaItemType":"Unit","label":"ft/mi","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*MILE(-1)"},"VERTICAL_PER_HORIZONTAL":{"schemaItemType":"Unit","label":"slope","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"M_PER_M"},"PERCENT_SLOPE":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"DECIMAL_PERCENT(-1)*M_PER_M"},"HORIZONTAL_PER_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.VERTICAL_PER_HORIZONTAL","unitSystem":"Units.INTERNATIONAL"},"FT_HORIZONTAL_PER_FT_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.FT_PER_FT","unitSystem":"Units.USCUSTOM"},"M_HORIZONTAL_PER_M_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.M_PER_M","unitSystem":"Units.SI"},"KG_PER_SQ_M":{"schemaItemType":"Unit","label":"kg/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-2)"},"G_PER_SQ_M":{"schemaItemType":"Unit","label":"g/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"G*M(-2)"},"KG_PER_HECTARE":{"schemaItemType":"Unit","label":"kg/ha","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"KG*HECTARE(-1)"},"LBM_PER_ACRE":{"schemaItemType":"Unit","label":"lb/acre","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*ACRE(-1)"},"W_PER_M_K":{"schemaItemType":"Unit","label":"W/(m·K)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.SI","definition":"W*M(-1)*DELTA_KELVIN(-1)"},"W_PER_M_C":{"schemaItemType":"Unit","label":"W/(m·Δ°C)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.METRIC","definition":"W*M(-1)*DELTA_CELSIUS(-1)"},"BTU_IN_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu·in/(ft²·h·Δ°F)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.USCUSTOM","definition":"BTU*IN*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"SQ_M_KELVIN_PER_WATT":{"schemaItemType":"Unit","label":"m²·ΔK/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.SI","definition":"M(2)*DELTA_KELVIN*W(-1)"},"SQ_M_CELSIUS_PER_WATT":{"schemaItemType":"Unit","label":"m²·Δ°C/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.METRIC","definition":"M(2)*DELTA_CELSIUS*W(-1)"},"SQ_FT_HR_FAHRENHEIT_PER_BTU":{"schemaItemType":"Unit","label":"ft²·h·Δ°F/Btu","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.USCUSTOM","definition":"FT(2)*HR*DELTA_FAHRENHEIT*BTU(-1)"},"M_PER_SEC":{"schemaItemType":"Unit","label":"m/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.SI","definition":"M*S(-1)"},"M_PER_MIN":{"schemaItemType":"Unit","label":"m/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*MIN(-1)"},"M_PER_HR":{"schemaItemType":"Unit","label":"m/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*HR(-1)"},"M_PER_DAy":{"schemaItemType":"Unit","label":"m/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"MM_PER_SEC":{"schemaItemType":"Unit","label":"mm/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*S(-1)"},"MM_PER_MIN":{"schemaItemType":"Unit","label":"mm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*MIN(-1)"},"MM_PER_HR":{"schemaItemType":"Unit","label":"mm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*HR(-1)"},"MM_PER_DAY":{"schemaItemType":"Unit","label":"mm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*DAY(-1)"},"CM_PER_SEC":{"schemaItemType":"Unit","label":"cm/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*S(-1)"},"CM_PER_MIN":{"schemaItemType":"Unit","label":"cm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*MIN(-1)"},"CM_PER_HR":{"schemaItemType":"Unit","label":"cm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*HR(-1)"},"CM_PER_DAY":{"schemaItemType":"Unit","label":"cm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*DAY(-1)"},"KM_PER_SEC":{"schemaItemType":"Unit","label":"km/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*S(-1)"},"KM_PER_HR":{"schemaItemType":"Unit","label":"km/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*HR(-1)"},"IN_PER_SEC":{"schemaItemType":"Unit","label":"in/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*S(-1)"},"IN_PER_MIN":{"schemaItemType":"Unit","label":"in/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*MIN(-1)"},"IN_PER_HR":{"schemaItemType":"Unit","label":"in/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*HR(-1)"},"IN_PER_DAY":{"schemaItemType":"Unit","label":"in/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*DAY(-1)"},"FT_PER_SEC":{"schemaItemType":"Unit","label":"ft/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"FT_PER_MIN":{"schemaItemType":"Unit","label":"ft/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"FT_PER_HR":{"schemaItemType":"Unit","label":"ft/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*HR(-1)"},"FT_PER_DAY":{"schemaItemType":"Unit","label":"ft/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*DAY(-1)"},"YRD_PER_SEC":{"schemaItemType":"Unit","label":"yrd/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"YRD*S(-1)"},"MPH":{"schemaItemType":"Unit","label":"mi/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"MILE*HR(-1)"},"KNOT_INTERNATIONAL":{"schemaItemType":"Unit","label":"knot (Int.)","phenomenon":"Units.VELOCITY","unitSystem":"Units.MARITIME","definition":"NAUT_MILE*HR(-1)"},"RAD_PER_SEC":{"schemaItemType":"Unit","label":"rad/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.SI","definition":"RAD*S(-1)"},"RAD_PER_MIN":{"schemaItemType":"Unit","label":"rad/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*MIN(-1)"},"RAD_PER_HR":{"schemaItemType":"Unit","label":"rad/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*HR(-1)"},"RPS":{"schemaItemType":"Unit","label":"cycle/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*S(-1)"},"RPM":{"schemaItemType":"Unit","label":"cycle/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*MIN(-1)"},"RPH":{"schemaItemType":"Unit","label":"cycle/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*HR(-1)"},"DEG_PER_SEC":{"schemaItemType":"Unit","label":"deg/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*S(-1)"},"DEG_PER_MIN":{"schemaItemType":"Unit","label":"deg/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*MIN(-1)"},"DEG_PER_HR":{"schemaItemType":"Unit","label":"deg/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*HR(-1)"},"PA_S":{"schemaItemType":"Unit","label":"Pa·s","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.SI","definition":"PA*S"},"POISE":{"schemaItemType":"Unit","label":"poise","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[DECI]*PA_S"},"CENTIPOISE":{"schemaItemType":"Unit","label":"cP","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[CENTI]*POISE"},"LBM_PER_FT_S":{"schemaItemType":"Unit","label":"lbm/(ft*s)","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)*S(-1)"},"SQ_M_PER_SEC":{"schemaItemType":"Unit","label":"m²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.SI","definition":"M(2)*S(-1)"},"SQ_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"FT(2)*S(-1)"},"STOKE":{"schemaItemType":"Unit","label":"St","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"CM(2)*S(-1)"},"CENTISTOKE":{"schemaItemType":"Unit","label":"cSt","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"MM(2)*S(-1)"},"CUB_M":{"schemaItemType":"Unit","label":"m³","phenomenon":"Units.VOLUME","unitSystem":"Units.SI","definition":"M(3)"},"CUB_UM":{"schemaItemType":"Unit","label":"um³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"UM(3)"},"CUB_MM":{"schemaItemType":"Unit","label":"mm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"MM(3)"},"CUB_CM":{"schemaItemType":"Unit","label":"cm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CM(3)"},"CUB_DM":{"schemaItemType":"Unit","label":"dm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"DM(3)"},"CUB_KM":{"schemaItemType":"Unit","label":"km³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"KM(3)"},"LITRE":{"schemaItemType":"Unit","label":"L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CUB_DM"},"THOUSAND_LITRE":{"schemaItemType":"Unit","label":"thousand L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[KILO]*LITRE"},"MILLION_LITRE":{"schemaItemType":"Unit","label":"million L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MEGA]*LITRE"},"MILLILITRE":{"schemaItemType":"Unit","label":"mL","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MILLI]*LITRE"},"MICROLITRE":{"schemaItemType":"Unit","label":"µliter","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MICRO]*LITRE"},"CUB_IN":{"schemaItemType":"Unit","label":"in³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)"},"CUB_FT":{"schemaItemType":"Unit","label":"ft³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)"},"CUB_YRD":{"schemaItemType":"Unit","label":"yd³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"YRD(3)"},"CUB_MILE":{"schemaItemType":"Unit","label":"mile³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"MILE(3)"},"ACRE_IN":{"schemaItemType":"Unit","label":"acre·in","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*IN"},"ACRE_FT":{"schemaItemType":"Unit","label":"acre·ft","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*FT"},"GALLON":{"schemaItemType":"Unit","label":"gal","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-11","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)","numerator":231},"THOUSAND_GALLON":{"schemaItemType":"Unit","label":"thousand gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[KILO]*GALLON"},"MILLION_GALLON":{"schemaItemType":"Unit","label":"million gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[MEGA]*GALLON"},"CUB_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(3)"},"CUB_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(3)"},"CUB_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(3)"},"CUB_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(3)"},"GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"gal (imp)","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.VOLUME","unitSystem":"Units.IMPERIAL","definition":"LITRE","numerator":4.54609},"CUB_M_PER_CUB_M":{"schemaItemType":"Unit","label":"m³/m³","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.SI","definition":"M(3)*M(-3)"},"LITRE_PER_LITRE":{"schemaItemType":"Unit","label":"liter/liter","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.METRIC","definition":"LITRE*LITRE(-1)"},"CUB_M_PER_KG":{"schemaItemType":"Unit","label":"m³/kg","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.SI","definition":"M(3)*KG(-1)"},"CUB_FT_PER_LBM":{"schemaItemType":"Unit","label":"ft³/lm","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)*LBM(-1)"},"CUB_M_PER_M":{"schemaItemType":"Unit","label":"m³/m","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.SI","definition":"M(3)*M(-1)"},"CUB_FT_PER_FT":{"schemaItemType":"Unit","label":"ft³/ft","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT(3)*FT(-1)"},"M_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"m⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.SI","definition":"M(6)"},"MM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"mm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"MM(6)"},"CM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"cm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"CM(6)"},"IN_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"in⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"IN(6)"},"FT_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"ft⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"FT(6)"},"VA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.SI","definition":"VOLT*A"},"KVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[KILO]*VA"},"MVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*VA"},"M":{"schemaItemType":"Unit","label":"m","phenomenon":"Units.LENGTH","unitSystem":"Units.SI","definition":"M"},"KG":{"schemaItemType":"Unit","label":"kg","phenomenon":"Units.MASS","unitSystem":"Units.SI","definition":"KG"},"S":{"schemaItemType":"Unit","label":"s","phenomenon":"Units.TIME","unitSystem":"Units.SI","definition":"S"},"K":{"schemaItemType":"Unit","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.SI","definition":"K"},"DELTA_KELVIN":{"schemaItemType":"Unit","label":"ΔK","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.SI","definition":"DELTA_KELVIN"},"A":{"schemaItemType":"Unit","phenomenon":"Units.CURRENT","unitSystem":"Units.SI","definition":"A"},"MOL":{"schemaItemType":"Unit","label":"mol","description":"Where mol is the SI gram mol or gmol.","phenomenon":"Units.MOLE","unitSystem":"Units.SI","definition":"MOL"},"CD":{"schemaItemType":"Unit","label":"cd","phenomenon":"Units.LUMINOSITY","unitSystem":"Units.SI","definition":"CD"},"RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.ANGLE","unitSystem":"Units.SI","definition":"RAD"},"HORIZONTAL_DIR_RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.SI","definition":"HORIZONTAL_DIR_RAD"},"STERAD":{"schemaItemType":"Unit","label":"sterad","phenomenon":"Units.SOLIDANGLE","unitSystem":"Units.SI","definition":"STERAD"},"US_DOLLAR":{"schemaItemType":"Unit","label":"$","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"US_DOLLAR"},"MONETARY_UNIT":{"schemaItemType":"Unit","label":"¤","description":"For money of an unspecified denomination","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"MONETARY_UNIT"},"PERSON":{"schemaItemType":"Unit","label":"person","phenomenon":"Units.CAPITA","unitSystem":"Units.SI","definition":"PERSON"},"ONE":{"schemaItemType":"Unit","label":"one","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"COEFFICIENT":{"schemaItemType":"Unit","label":"coefficient","description":"For unitless coefficients","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"OHM":{"schemaItemType":"Unit","label":"Ω","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.SI","definition":"VOLT*A(-1)"},"KOHM":{"schemaItemType":"Unit","label":"kΩ","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.METRIC","definition":"[KILO]*OHM"},"OHM_M":{"schemaItemType":"Unit","label":"Ω·m","phenomenon":"Units.ELECTRICAL_RESISTIVITY","unitSystem":"Units.SI","definition":"OHM*M"},"M_PER_REVOLUTION":{"schemaItemType":"Unit","label":"m/r","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.INTERNATIONAL","definition":"M*REVOLUTION(-1)"},"M_PER_RAD":{"schemaItemType":"Unit","label":"m/rad","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.SI","definition":"M*RAD(-1)"},"IN_PER_DEGREE":{"schemaItemType":"Unit","label":"in/degree","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.USCUSTOM","definition":"IN*ARC_DEG(-1)"},"J_PER_K":{"schemaItemType":"Unit","label":"J/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.SI","definition":"J*DELTA_KELVIN(-1)"},"KJ_PER_K":{"schemaItemType":"Unit","label":"KJ/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.METRIC","definition":"[KILO]*J*DELTA_KELVIN(-1)"},"BTU_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/°F","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.8, page 46.","phenomenon":"Units.ENTROPY","unitSystem":"Units.USCUSTOM","definition":"BTU*DELTA_FAHRENHEIT(-1)"},"LUMEN_PER_W":{"schemaItemType":"Unit","label":"lm/W","phenomenon":"Units.LUMINOUS_EFFICACY","unitSystem":"Units.SI","definition":"LUMEN*W(-1)"},"INVERSE_N":{"schemaItemType":"Unit","label":"1/N","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N(-1)"},"INVERSE_KN":{"schemaItemType":"Unit","label":"1/kN","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN(-1)"},"INVERSE_KPF":{"schemaItemType":"Unit","label":"1/kpf","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.USCUSTOM","definition":"KPF(-1)"},"M_PER_N":{"schemaItemType":"Unit","label":"m/N","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N_PER_M(-1)"},"M_PER_KN":{"schemaItemType":"Unit","label":"m/kN","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN_PER_M(-1)"}}}');
|
|
337344
337746
|
|
|
337345
337747
|
/***/ }
|
|
337346
337748
|
|
|
@@ -337390,36 +337792,6 @@ module.exports = /*#__PURE__*/JSON.parse('{"version":"01.00.00","sourceEcSchemaV
|
|
|
337390
337792
|
/******/ return getter;
|
|
337391
337793
|
/******/ };
|
|
337392
337794
|
/******/
|
|
337393
|
-
/******/ /* webpack/runtime/create fake namespace object */
|
|
337394
|
-
/******/ (() => {
|
|
337395
|
-
/******/ const getProto = Object.getPrototypeOf;
|
|
337396
|
-
/******/ let leafPrototypes;
|
|
337397
|
-
/******/ // create a fake namespace object
|
|
337398
|
-
/******/ // mode & 1: value is a module id, require it
|
|
337399
|
-
/******/ // mode & 2: merge all properties of value into the ns
|
|
337400
|
-
/******/ // mode & 4: return value when already ns object
|
|
337401
|
-
/******/ // mode & 16: return value when it's Promise-like
|
|
337402
|
-
/******/ // mode & 8|1: behave like require
|
|
337403
|
-
/******/ __webpack_require__.t = function(value, mode) {
|
|
337404
|
-
/******/ if(mode & 1) value = this(value);
|
|
337405
|
-
/******/ if(mode & 8) return value;
|
|
337406
|
-
/******/ if(typeof value === 'object' && value) {
|
|
337407
|
-
/******/ if((mode & 4) && value.__esModule) return value;
|
|
337408
|
-
/******/ if((mode & 16) && typeof value.then === 'function') return value;
|
|
337409
|
-
/******/ }
|
|
337410
|
-
/******/ const ns = Object.create(null);
|
|
337411
|
-
/******/ __webpack_require__.r(ns);
|
|
337412
|
-
/******/ const def = {};
|
|
337413
|
-
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
|
|
337414
|
-
/******/ for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {
|
|
337415
|
-
/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
|
|
337416
|
-
/******/ }
|
|
337417
|
-
/******/ def['default'] = () => (value);
|
|
337418
|
-
/******/ __webpack_require__.d(ns, def);
|
|
337419
|
-
/******/ return ns;
|
|
337420
|
-
/******/ };
|
|
337421
|
-
/******/ })();
|
|
337422
|
-
/******/
|
|
337423
337795
|
/******/ /* webpack/runtime/define property getters */
|
|
337424
337796
|
/******/ // define getter/value functions for harmony exports
|
|
337425
337797
|
/******/ __webpack_require__.d = (exports, definition) => {
|