@itwin/ecschema-rpcinterface-tests 5.14.0-dev.21 → 5.14.0-dev.23
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 +542 -225
- 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_cross-fetch_4_1_0_node_modules_cross-fetch_dist_browser-44272f.bundled-tests.js.map +1 -1
- package/lib/dist/vendors-common_temp_node_modules_pnpm_loaders_gl_draco_4_4_5__loaders_gl_core_4_4_5_node_modu-5e3596.bundled-tests.js.map +1 -1
- package/package.json +16 -16
- package/lib/dist/core_quantity_lib_esm_assets_Units_json.bundled-tests.js +0 -14
|
@@ -26343,7 +26343,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26343
26343
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
26344
26344
|
/* harmony export */ Base64EncodedString: () => (/* binding */ Base64EncodedString)
|
|
26345
26345
|
/* harmony export */ });
|
|
26346
|
-
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.
|
|
26346
|
+
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.4/node_modules/js-base64/base64.mjs");
|
|
26347
26347
|
/*---------------------------------------------------------------------------------------------
|
|
26348
26348
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
26349
26349
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -28139,7 +28139,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
28139
28139
|
/* harmony export */ });
|
|
28140
28140
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
28141
28141
|
/* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
|
|
28142
|
-
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.
|
|
28142
|
+
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.4/node_modules/js-base64/base64.mjs");
|
|
28143
28143
|
/*---------------------------------------------------------------------------------------------
|
|
28144
28144
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
28145
28145
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -28396,7 +28396,7 @@ var QueryParamType;
|
|
|
28396
28396
|
* @see
|
|
28397
28397
|
* - [ECSQL Parameters]($docs/learning/ECSQL.md#ecsql-parameters)
|
|
28398
28398
|
* - [ECSQL Parameter Types]($docs/learning/ECSQLParameterTypes)
|
|
28399
|
-
* - [ECSQL Code Examples]($docs/learning/
|
|
28399
|
+
* - [ECSQL Code Examples]($docs/learning/ECSQLCodeExamples#parameter-bindings)
|
|
28400
28400
|
*
|
|
28401
28401
|
* @public
|
|
28402
28402
|
*/
|
|
@@ -30756,7 +30756,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30756
30756
|
* There are three primary ways to interact with and read the results:
|
|
30757
30757
|
* - Stream them using ECSqlReader as an asynchronous iterator.
|
|
30758
30758
|
* - Iterator over them manually using [[ECSqlReader.step]].
|
|
30759
|
-
* - Capture all of the results at once in an array using [[
|
|
30759
|
+
* - Capture all of the results at once in an array using [[ECSqlReader.toArray]].
|
|
30760
30760
|
*
|
|
30761
30761
|
* @see
|
|
30762
30762
|
* - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
|
|
@@ -30798,7 +30798,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30798
30798
|
this.reset(options);
|
|
30799
30799
|
}
|
|
30800
30800
|
/**
|
|
30801
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30801
|
+
* @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.
|
|
30802
30802
|
*/
|
|
30803
30803
|
setParams(param) {
|
|
30804
30804
|
if (this._lockArgs) {
|
|
@@ -30807,7 +30807,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30807
30807
|
this._param = param.serialize();
|
|
30808
30808
|
}
|
|
30809
30809
|
/**
|
|
30810
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30810
|
+
* @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
30811
|
*/
|
|
30812
30812
|
reset(options) {
|
|
30813
30813
|
if (options) {
|
|
@@ -30831,7 +30831,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30831
30831
|
}
|
|
30832
30832
|
/**
|
|
30833
30833
|
* Clear all bindings.
|
|
30834
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30834
|
+
* @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
30835
|
*/
|
|
30836
30836
|
resetBindings() {
|
|
30837
30837
|
this._param = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryBinder().serialize();
|
|
@@ -44632,6 +44632,11 @@ class TabRun extends TextBlockComponent {
|
|
|
44632
44632
|
return other instanceof TabRun && super.equals(other);
|
|
44633
44633
|
}
|
|
44634
44634
|
}
|
|
44635
|
+
function accessorsEqual(a, b) {
|
|
44636
|
+
const lhs = a ?? [];
|
|
44637
|
+
const rhs = b ?? [];
|
|
44638
|
+
return lhs.length === rhs.length && lhs.every((value, index) => value === rhs[index]);
|
|
44639
|
+
}
|
|
44635
44640
|
/** A [[Run]] that displays the formatted value of a property of some [Element]($backend).
|
|
44636
44641
|
* When a [[TextBlock]] containing a [[FieldRun]] is written into the iModel as an [ITextAnnotation]($backend) element,
|
|
44637
44642
|
* a dependency is established between the two elements via the [ElementDrivesTextAnnotation]($backend) relationship such that
|
|
@@ -44721,12 +44726,10 @@ class FieldRun extends TextBlockComponent {
|
|
|
44721
44726
|
if (this.propertyPath.propertyName !== other.propertyPath.propertyName) {
|
|
44722
44727
|
return false;
|
|
44723
44728
|
}
|
|
44724
|
-
|
|
44725
|
-
const otherAccessors = other.propertyPath.accessors ?? [];
|
|
44726
|
-
if (thisAccessors.length !== otherAccessors.length) {
|
|
44729
|
+
if (!accessorsEqual(this.propertyPath.accessors, other.propertyPath.accessors)) {
|
|
44727
44730
|
return false;
|
|
44728
44731
|
}
|
|
44729
|
-
if (!
|
|
44732
|
+
if (!accessorsEqual(this.propertyPath.jsonAccessors, other.propertyPath.jsonAccessors)) {
|
|
44730
44733
|
return false;
|
|
44731
44734
|
}
|
|
44732
44735
|
if (this.formatOptions && other.formatOptions) {
|
|
@@ -55872,9 +55875,8 @@ const formatters = {
|
|
|
55872
55875
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55873
55876
|
"string": (v, o) => formatString(v.toString(), o),
|
|
55874
55877
|
"datetime": (v, o) => formatString(formatDateTime(v, o?.dateTime), o),
|
|
55875
|
-
|
|
55876
|
-
"
|
|
55877
|
-
"coordinate": (v, o) => formatString(formatPointBasic(v), o),
|
|
55878
|
+
"quantity": (v, o, fm) => formatString(formatMagnitudeValue(v, fm), o),
|
|
55879
|
+
"coordinate": (v, o, fm) => formatString(formatPoint(v, fm), o),
|
|
55878
55880
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55879
55881
|
"boolean": (v, o) => formatString(v.toString(), o),
|
|
55880
55882
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
@@ -55915,27 +55917,58 @@ function formatDateTime(v, o) {
|
|
|
55915
55917
|
}
|
|
55916
55918
|
return undefined;
|
|
55917
55919
|
}
|
|
55918
|
-
|
|
55919
|
-
|
|
55920
|
-
|
|
55921
|
-
|
|
55922
|
-
|
|
55923
|
-
|
|
55924
|
-
parts.push(z);
|
|
55925
|
-
}
|
|
55926
|
-
return `(${parts.join(", ")})`;
|
|
55920
|
+
/** A `"quantity"` magnitude rendered through `formatMagnitude`, or its raw string
|
|
55921
|
+
* representation when no callback was supplied or the value is not a number.
|
|
55922
|
+
*/
|
|
55923
|
+
function formatMagnitudeValue(v, formatMagnitude) {
|
|
55924
|
+
if (formatMagnitude && typeof v === "number") {
|
|
55925
|
+
return formatMagnitude(v);
|
|
55927
55926
|
}
|
|
55928
|
-
|
|
55927
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55928
|
+
return v.toString();
|
|
55929
55929
|
}
|
|
55930
|
-
/**
|
|
55931
|
-
|
|
55930
|
+
/** A coordinate rendered as `(x, y[, z])`, each component passed through `formatMagnitude` when
|
|
55931
|
+
* one is supplied. Without a callback the components render bare, with no unit labels — Core
|
|
55932
|
+
* carries no built-in coordinate format.
|
|
55933
|
+
*/
|
|
55934
|
+
function formatPoint(v, formatMagnitude) {
|
|
55935
|
+
const magnitudes = getCoordinateMagnitudes(v);
|
|
55936
|
+
if (!magnitudes) {
|
|
55937
|
+
return undefined;
|
|
55938
|
+
}
|
|
55939
|
+
return `(${magnitudes.map((m) => formatMagnitude ? formatMagnitude(m) : `${m}`).join(", ")})`;
|
|
55940
|
+
}
|
|
55941
|
+
/** Formats `value` through the per-type entry in [[formatters]], wrapping the result with
|
|
55942
|
+
* prefix/suffix/case.
|
|
55943
|
+
*
|
|
55944
|
+
* `formatMagnitude` is consulted only by the `"quantity"` and `"coordinate"` branches. Omitting
|
|
55945
|
+
* it falls those values back to `value.toString()`.
|
|
55946
|
+
* @internal
|
|
55947
|
+
*/
|
|
55948
|
+
function formatFieldValue({ value, options, formatMagnitude }) {
|
|
55932
55949
|
const formatter = formatters[value.type];
|
|
55933
|
-
return formatter ? formatter(value.value, options) : undefined;
|
|
55950
|
+
return formatter ? formatter(value.value, options, formatMagnitude) : undefined;
|
|
55934
55951
|
}
|
|
55935
|
-
/**
|
|
55952
|
+
/** Type guard for [[FieldPropertyType]] strings that have a built-in per-type formatter.
|
|
55953
|
+
* @internal
|
|
55954
|
+
*/
|
|
55936
55955
|
function isKnownFieldPropertyType(type) {
|
|
55937
55956
|
return type in formatters;
|
|
55938
55957
|
}
|
|
55958
|
+
/** The `x`, `y` and (when present) `z` components of a coordinate value, or `undefined` if `v` is
|
|
55959
|
+
* not one.
|
|
55960
|
+
*/
|
|
55961
|
+
function getCoordinateMagnitudes(v) {
|
|
55962
|
+
if (typeof v !== "object" || !("x" in v) || !("y" in v)) {
|
|
55963
|
+
return undefined;
|
|
55964
|
+
}
|
|
55965
|
+
const parts = [v.x, v.y];
|
|
55966
|
+
const z = "z" in v ? v.z : undefined;
|
|
55967
|
+
if (undefined !== z) {
|
|
55968
|
+
parts.push(z);
|
|
55969
|
+
}
|
|
55970
|
+
return parts;
|
|
55971
|
+
}
|
|
55939
55972
|
|
|
55940
55973
|
|
|
55941
55974
|
/***/ },
|
|
@@ -57426,7 +57459,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
57426
57459
|
/* harmony export */ RpcNotFoundResponse: () => (/* binding */ RpcNotFoundResponse),
|
|
57427
57460
|
/* harmony export */ RpcPendingResponse: () => (/* binding */ RpcPendingResponse)
|
|
57428
57461
|
/* harmony export */ });
|
|
57429
|
-
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.
|
|
57462
|
+
/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-base64 */ "../../common/temp/node_modules/.pnpm/js-base64@3.9.4/node_modules/js-base64/base64.mjs");
|
|
57430
57463
|
/* harmony import */ var _RpcInterface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../RpcInterface */ "../../core/common/lib/esm/RpcInterface.js");
|
|
57431
57464
|
/* harmony import */ var _RpcManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../RpcManager */ "../../core/common/lib/esm/RpcManager.js");
|
|
57432
57465
|
/* harmony import */ var _RpcConfiguration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RpcConfiguration */ "../../core/common/lib/esm/rpc/core/RpcConfiguration.js");
|
|
@@ -65976,9 +66009,17 @@ class ECName {
|
|
|
65976
66009
|
}
|
|
65977
66010
|
return new ECName(output);
|
|
65978
66011
|
}
|
|
66012
|
+
/** Decode EC name escape sequences without requiring a valid EC identifier.
|
|
66013
|
+
* @internal
|
|
66014
|
+
*/
|
|
66015
|
+
static decode(name) {
|
|
66016
|
+
if (!name.includes("__x"))
|
|
66017
|
+
return name;
|
|
66018
|
+
return name.replace(ecNameReplacerRegex, (_match, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
|
|
66019
|
+
}
|
|
65979
66020
|
/** Decode this ECName, replacing encoded special characters with the characters they encode. */
|
|
65980
66021
|
decode() {
|
|
65981
|
-
return this.name
|
|
66022
|
+
return ECName.decode(this.name);
|
|
65982
66023
|
}
|
|
65983
66024
|
}
|
|
65984
66025
|
|
|
@@ -66667,48 +66708,79 @@ class FormatSetFormatsProvider {
|
|
|
66667
66708
|
this._fallbackProvider = undefined;
|
|
66668
66709
|
}
|
|
66669
66710
|
/**
|
|
66670
|
-
* Retrieves a format definition
|
|
66671
|
-
* If the format is a string reference to another format, it resolves the reference and returns the FormatDefinition.
|
|
66711
|
+
* Retrieves a format definition from the format set, resolving string references and consulting the fallback provider when needed.
|
|
66672
66712
|
*/
|
|
66673
|
-
async getFormat(input, system) {
|
|
66674
|
-
|
|
66675
|
-
|
|
66676
|
-
|
|
66713
|
+
async getFormat(input, system, context) {
|
|
66714
|
+
const lookupContext = extendProviderContext(context, this);
|
|
66715
|
+
if (!lookupContext)
|
|
66716
|
+
return undefined;
|
|
66717
|
+
const name = normalizeFormatName(input);
|
|
66677
66718
|
const format = this._formatSet.formats[name];
|
|
66678
66719
|
if (format !== undefined) {
|
|
66679
|
-
|
|
66680
|
-
|
|
66681
|
-
return this.resolveReference(format, undefined, system);
|
|
66682
|
-
}
|
|
66720
|
+
if (typeof format === "string")
|
|
66721
|
+
return this.resolveReference(format, new Set(), system, lookupContext);
|
|
66683
66722
|
return format;
|
|
66684
66723
|
}
|
|
66685
|
-
|
|
66686
|
-
|
|
66687
|
-
|
|
66724
|
+
return this.getFormatFromFallback(name, system, lookupContext);
|
|
66725
|
+
}
|
|
66726
|
+
async getFormatFromFallback(name, system, context) {
|
|
66727
|
+
const fallbackProvider = this._fallbackProvider;
|
|
66728
|
+
if (!fallbackProvider)
|
|
66729
|
+
return undefined;
|
|
66730
|
+
return fallbackProvider.getFormat(name, system, context);
|
|
66731
|
+
}
|
|
66732
|
+
/**
|
|
66733
|
+
* Retrieves a format definition from the format set without awaiting a provider. String references are resolved
|
|
66734
|
+
* locally; a fallback is used only when it implements `SyncFormatsProvider`.
|
|
66735
|
+
*/
|
|
66736
|
+
getFormatSync(input, system, context) {
|
|
66737
|
+
const lookupContext = extendProviderContext(context, this);
|
|
66738
|
+
if (!lookupContext)
|
|
66739
|
+
return undefined;
|
|
66740
|
+
const name = normalizeFormatName(input);
|
|
66741
|
+
const format = this._formatSet.formats[name];
|
|
66742
|
+
if (format !== undefined) {
|
|
66743
|
+
if (typeof format === "string")
|
|
66744
|
+
return this.resolveReferenceSync(format, new Set(), system, lookupContext);
|
|
66745
|
+
return format;
|
|
66746
|
+
}
|
|
66747
|
+
return this.getFormatSyncFromFallback(name, system, lookupContext);
|
|
66748
|
+
}
|
|
66749
|
+
getFormatSyncFromFallback(name, system, context) {
|
|
66750
|
+
const fallbackProvider = this._fallbackProvider;
|
|
66751
|
+
return typeof fallbackProvider?.getFormatSync === "function" ? fallbackProvider.getFormatSync(name, system, context) : undefined;
|
|
66688
66752
|
}
|
|
66689
66753
|
/**
|
|
66690
66754
|
* Resolves a string reference to its FormatDefinition, following chains of references.
|
|
66691
66755
|
* @param reference The string reference to resolve
|
|
66692
66756
|
* @param visited Set of visited references to detect circular references
|
|
66693
66757
|
* @param system Optional unit system override
|
|
66758
|
+
* @param context Lookup context to forward to the fallback provider
|
|
66694
66759
|
*/
|
|
66695
|
-
async resolveReference(reference, visited
|
|
66760
|
+
async resolveReference(reference, visited, system, context) {
|
|
66696
66761
|
// Prevent infinite loops from circular references
|
|
66697
66762
|
if (visited.has(reference)) {
|
|
66698
66763
|
return undefined;
|
|
66699
66764
|
}
|
|
66700
66765
|
visited.add(reference);
|
|
66701
66766
|
const format = this._formatSet.formats[reference];
|
|
66702
|
-
if (format === undefined)
|
|
66703
|
-
|
|
66704
|
-
|
|
66705
|
-
|
|
66767
|
+
if (format === undefined)
|
|
66768
|
+
return this.getFormatFromFallback(reference, system, context);
|
|
66769
|
+
if (typeof format === "string")
|
|
66770
|
+
return this.resolveReference(format, visited, system, context);
|
|
66771
|
+
return format;
|
|
66772
|
+
}
|
|
66773
|
+
resolveReferenceSync(reference, visited, system, context) {
|
|
66774
|
+
// Prevent infinite loops from circular references
|
|
66775
|
+
if (visited.has(reference)) {
|
|
66706
66776
|
return undefined;
|
|
66707
66777
|
}
|
|
66708
|
-
|
|
66709
|
-
|
|
66710
|
-
|
|
66711
|
-
|
|
66778
|
+
visited.add(reference);
|
|
66779
|
+
const format = this._formatSet.formats[reference];
|
|
66780
|
+
if (format === undefined)
|
|
66781
|
+
return this.getFormatSyncFromFallback(reference, system, context);
|
|
66782
|
+
if (typeof format === "string")
|
|
66783
|
+
return this.resolveReferenceSync(format, visited, system, context);
|
|
66712
66784
|
return format;
|
|
66713
66785
|
}
|
|
66714
66786
|
/**
|
|
@@ -66744,6 +66816,18 @@ class FormatSetFormatsProvider {
|
|
|
66744
66816
|
return referencingFormats;
|
|
66745
66817
|
}
|
|
66746
66818
|
}
|
|
66819
|
+
function extendProviderContext(context, provider) {
|
|
66820
|
+
const providerChain = new Set(context?.providerChain);
|
|
66821
|
+
if (providerChain.has(provider))
|
|
66822
|
+
return undefined;
|
|
66823
|
+
providerChain.add(provider);
|
|
66824
|
+
return { providerChain };
|
|
66825
|
+
}
|
|
66826
|
+
function normalizeFormatName(input) {
|
|
66827
|
+
// Convert node-addon names from `schemaName:schemaItemName` to the dot-separated key used by FormatSet.
|
|
66828
|
+
const [schemaName, itemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_1__.SchemaItem.parseFullName(input);
|
|
66829
|
+
return schemaName === "" ? itemName : `${schemaName}.${itemName}`;
|
|
66830
|
+
}
|
|
66747
66831
|
|
|
66748
66832
|
|
|
66749
66833
|
/***/ },
|
|
@@ -66761,11 +66845,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66761
66845
|
/* harmony export */ });
|
|
66762
66846
|
/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Context */ "../../core/ecschema-metadata/lib/esm/Context.js");
|
|
66763
66847
|
/* harmony import */ var _SchemaKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SchemaKey */ "../../core/ecschema-metadata/lib/esm/SchemaKey.js");
|
|
66764
|
-
/* harmony import */ var
|
|
66765
|
-
/* harmony import */ var
|
|
66766
|
-
/* harmony import */ var
|
|
66767
|
-
/* harmony import */ var
|
|
66848
|
+
/* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
|
|
66849
|
+
/* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
|
|
66850
|
+
/* harmony import */ var _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Metadata/SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
|
|
66851
|
+
/* harmony import */ var _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Metadata/Format */ "../../core/ecschema-metadata/lib/esm/Metadata/Format.js");
|
|
66768
66852
|
/* harmony import */ var _Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Metadata/OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
|
|
66853
|
+
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
66854
|
+
/* harmony import */ var _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Metadata/KindOfQuantity */ "../../core/ecschema-metadata/lib/esm/Metadata/KindOfQuantity.js");
|
|
66855
|
+
/* harmony import */ var _Metadata_Unit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Metadata/Unit */ "../../core/ecschema-metadata/lib/esm/Metadata/Unit.js");
|
|
66856
|
+
/* harmony import */ var _Metadata_InvertedUnit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Metadata/InvertedUnit */ "../../core/ecschema-metadata/lib/esm/Metadata/InvertedUnit.js");
|
|
66857
|
+
/* harmony import */ var _Metadata_UnitSystem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Metadata/UnitSystem */ "../../core/ecschema-metadata/lib/esm/Metadata/UnitSystem.js");
|
|
66769
66858
|
/*---------------------------------------------------------------------------------------------
|
|
66770
66859
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
66771
66860
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -66780,6 +66869,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66780
66869
|
|
|
66781
66870
|
|
|
66782
66871
|
|
|
66872
|
+
|
|
66873
|
+
|
|
66874
|
+
|
|
66875
|
+
|
|
66876
|
+
|
|
66783
66877
|
const loggerCategory = "SchemaFormatsProvider";
|
|
66784
66878
|
/**
|
|
66785
66879
|
* Provides default formats and kind of quantities from a given SchemaContext or SchemaLocater.
|
|
@@ -66789,7 +66883,7 @@ class SchemaFormatsProvider {
|
|
|
66789
66883
|
_context;
|
|
66790
66884
|
_unitSystem;
|
|
66791
66885
|
_formatsRetrieved = new Set();
|
|
66792
|
-
onFormatsChanged = new
|
|
66886
|
+
onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.BeEvent();
|
|
66793
66887
|
/**
|
|
66794
66888
|
*
|
|
66795
66889
|
* @param contextOrLocater The SchemaContext or a different ISchemaLocater implementation used to retrieve the schema. The SchemaContext
|
|
@@ -66836,71 +66930,58 @@ class SchemaFormatsProvider {
|
|
|
66836
66930
|
async getKindOfQuantityFormatFromSchema(itemKey, systemOverride) {
|
|
66837
66931
|
let kindOfQuantity;
|
|
66838
66932
|
try {
|
|
66839
|
-
kindOfQuantity = await this._context.getSchemaItem(itemKey,
|
|
66933
|
+
kindOfQuantity = await this._context.getSchemaItem(itemKey, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__.KindOfQuantity);
|
|
66840
66934
|
}
|
|
66841
66935
|
catch {
|
|
66842
|
-
|
|
66936
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find KindOfQuantity ${itemKey.fullName}`);
|
|
66843
66937
|
return undefined;
|
|
66844
66938
|
}
|
|
66845
|
-
if (!kindOfQuantity)
|
|
66939
|
+
if (!kindOfQuantity)
|
|
66846
66940
|
return undefined;
|
|
66847
|
-
|
|
66848
|
-
|
|
66849
|
-
|
|
66850
|
-
|
|
66851
|
-
|
|
66852
|
-
|
|
66853
|
-
|
|
66854
|
-
|
|
66855
|
-
|
|
66856
|
-
|
|
66857
|
-
|
|
66858
|
-
|
|
66859
|
-
|
|
66860
|
-
|
|
66861
|
-
|
|
66862
|
-
|
|
66863
|
-
const props = (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format);
|
|
66864
|
-
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66865
|
-
}
|
|
66866
|
-
}
|
|
66867
|
-
}
|
|
66868
|
-
// If no matching presentation format was found, fall back to persistence unit format
|
|
66869
|
-
// only if it matches the requested unit system.
|
|
66870
|
-
const persistenceUnit = await kindOfQuantity.persistenceUnit;
|
|
66871
|
-
const persistenceUnitSystem = await persistenceUnit?.unitSystem;
|
|
66872
|
-
if (persistenceUnit && persistenceUnitSystem && unitSystemMatchers.some((matcher) => matcher(persistenceUnitSystem))) {
|
|
66873
|
-
this._formatsRetrieved.add(itemKey.fullName);
|
|
66874
|
-
const props = getPersistenceUnitFormatProps(persistenceUnit);
|
|
66875
|
-
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66941
|
+
const props = await this.getKindOfQuantityFormatProps(kindOfQuantity, systemOverride);
|
|
66942
|
+
if (!props)
|
|
66943
|
+
return undefined;
|
|
66944
|
+
this._formatsRetrieved.add(itemKey.fullName);
|
|
66945
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66946
|
+
}
|
|
66947
|
+
async getKindOfQuantityFormatProps(kindOfQuantity, systemOverride) {
|
|
66948
|
+
// Cache each unit once per lookup because matchers may revisit it. Lazy formats already resolve only once.
|
|
66949
|
+
const unitCache = new Map();
|
|
66950
|
+
const getUnit = (unit) => {
|
|
66951
|
+
if (!unit)
|
|
66952
|
+
return undefined;
|
|
66953
|
+
let resolved = unitCache.get(unit);
|
|
66954
|
+
if (!resolved) {
|
|
66955
|
+
resolved = resolveUnitAsync(unit);
|
|
66956
|
+
unitCache.set(unit, resolved);
|
|
66876
66957
|
}
|
|
66877
|
-
|
|
66878
|
-
|
|
66879
|
-
|
|
66880
|
-
|
|
66881
|
-
|
|
66882
|
-
|
|
66883
|
-
|
|
66884
|
-
|
|
66958
|
+
return resolved;
|
|
66959
|
+
};
|
|
66960
|
+
for (const candidate of getFormatSelectionCandidates(kindOfQuantity, systemOverride ?? this._unitSystem)) {
|
|
66961
|
+
const format = candidate.type === "persistence" ? undefined : await candidate.format;
|
|
66962
|
+
const unit = candidate.type === "default" ? undefined : await getUnit(candidate.type === "persistence" ? candidate.unit : format?.units?.[0]?.[0]);
|
|
66963
|
+
const props = getFormatPropsForCandidate(candidate, format, unit);
|
|
66964
|
+
if (props)
|
|
66965
|
+
return props;
|
|
66885
66966
|
}
|
|
66886
66967
|
return undefined;
|
|
66887
66968
|
}
|
|
66888
66969
|
/**
|
|
66889
|
-
* Retrieves a
|
|
66890
|
-
*
|
|
66891
|
-
*
|
|
66970
|
+
* Retrieves a format definition from the schema context.
|
|
66971
|
+
*
|
|
66972
|
+
* For a KindOfQuantity with a unit system, matching presentation formats are checked first, followed by the persistence unit and then the default presentation format. Without a unit system, the default presentation format is used.
|
|
66892
66973
|
* @param name The full name of the Format or KindOfQuantity.
|
|
66893
|
-
* @
|
|
66974
|
+
* @param system Optional unit system used to select a KindOfQuantity format.
|
|
66894
66975
|
*/
|
|
66895
66976
|
async getFormat(name, system) {
|
|
66896
|
-
const [schemaName, schemaItemName] =
|
|
66977
|
+
const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem.parseFullName(name);
|
|
66897
66978
|
const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
|
|
66898
66979
|
let schema;
|
|
66899
66980
|
try {
|
|
66900
66981
|
schema = await this._context.getSchema(schemaKey);
|
|
66901
66982
|
}
|
|
66902
66983
|
catch {
|
|
66903
|
-
|
|
66984
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find schema ${schemaName}`);
|
|
66904
66985
|
return undefined;
|
|
66905
66986
|
}
|
|
66906
66987
|
if (!schema) {
|
|
@@ -66910,10 +66991,10 @@ class SchemaFormatsProvider {
|
|
|
66910
66991
|
if (schema.name === "Formats") {
|
|
66911
66992
|
let format;
|
|
66912
66993
|
try {
|
|
66913
|
-
format = await this._context.getSchemaItem(itemKey,
|
|
66994
|
+
format = await this._context.getSchemaItem(itemKey, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
66914
66995
|
}
|
|
66915
66996
|
catch {
|
|
66916
|
-
|
|
66997
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find Format ${itemKey.fullName}`);
|
|
66917
66998
|
return undefined;
|
|
66918
66999
|
}
|
|
66919
67000
|
if (!format) {
|
|
@@ -66923,11 +67004,138 @@ class SchemaFormatsProvider {
|
|
|
66923
67004
|
}
|
|
66924
67005
|
return this.getKindOfQuantityFormatFromSchema(itemKey, system);
|
|
66925
67006
|
}
|
|
67007
|
+
/**
|
|
67008
|
+
* Retrieves a format definition using only schema metadata already loaded in the context.
|
|
67009
|
+
* It follows the same selection order as `getFormat` but never asks a locater to load a schema. Returns `undefined` when required metadata is not cached.
|
|
67010
|
+
* Unlike `getFormat`, which logs lookup errors and returns `undefined`, this method treats only a schema that is still loading as a cache miss and rethrows other errors.
|
|
67011
|
+
*/
|
|
67012
|
+
getFormatSync(name, system) {
|
|
67013
|
+
const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem.parseFullName(name);
|
|
67014
|
+
const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
|
|
67015
|
+
const schema = getCachedSchemaSync(this._context, schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
|
|
67016
|
+
if (!schema)
|
|
67017
|
+
return undefined;
|
|
67018
|
+
const itemKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaItemKey(schemaItemName, schema.schemaKey);
|
|
67019
|
+
if (schema.name === "Formats") {
|
|
67020
|
+
const format = schema.getItemSync(itemKey.name, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
67021
|
+
return format?.toJSON(true);
|
|
67022
|
+
}
|
|
67023
|
+
return this.getKindOfQuantityFormatFromSchemaSync(itemKey, system);
|
|
67024
|
+
}
|
|
67025
|
+
getKindOfQuantityFormatFromSchemaSync(itemKey, systemOverride) {
|
|
67026
|
+
const schema = getCachedSchemaSync(this._context, itemKey.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
|
|
67027
|
+
const kindOfQuantity = schema?.getItemSync(itemKey.name, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__.KindOfQuantity);
|
|
67028
|
+
if (!kindOfQuantity)
|
|
67029
|
+
return undefined;
|
|
67030
|
+
const props = this.getKindOfQuantityFormatPropsSync(kindOfQuantity, systemOverride);
|
|
67031
|
+
if (!props)
|
|
67032
|
+
return undefined;
|
|
67033
|
+
this._formatsRetrieved.add(itemKey.fullName);
|
|
67034
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
67035
|
+
}
|
|
67036
|
+
getKindOfQuantityFormatPropsSync(kindOfQuantity, systemOverride) {
|
|
67037
|
+
const formatCache = new Map();
|
|
67038
|
+
const unitCache = new Map();
|
|
67039
|
+
const getFormat = (format) => {
|
|
67040
|
+
if (!formatCache.has(format))
|
|
67041
|
+
formatCache.set(format, resolveFormatSync(this._context, format));
|
|
67042
|
+
return formatCache.get(format);
|
|
67043
|
+
};
|
|
67044
|
+
const getUnit = (unit) => {
|
|
67045
|
+
if (!unit)
|
|
67046
|
+
return undefined;
|
|
67047
|
+
if (!unitCache.has(unit))
|
|
67048
|
+
unitCache.set(unit, resolveUnitSync(this._context, unit));
|
|
67049
|
+
return unitCache.get(unit);
|
|
67050
|
+
};
|
|
67051
|
+
// A reference that cannot be resolved means metadata is not cached. Stop there: async lookup would resolve it and never reach a later candidate.
|
|
67052
|
+
for (const candidate of getFormatSelectionCandidates(kindOfQuantity, systemOverride ?? this._unitSystem)) {
|
|
67053
|
+
const format = candidate.type === "persistence" ? undefined : getFormat(candidate.format);
|
|
67054
|
+
if (candidate.type !== "persistence" && !format)
|
|
67055
|
+
return undefined;
|
|
67056
|
+
const unitReference = candidate.type === "presentation" ? format?.units?.[0]?.[0] : candidate.type === "persistence" ? candidate.unit : undefined;
|
|
67057
|
+
const unit = getUnit(unitReference);
|
|
67058
|
+
if (unitReference && !unit)
|
|
67059
|
+
return undefined;
|
|
67060
|
+
const props = getFormatPropsForCandidate(candidate, format, unit);
|
|
67061
|
+
if (props)
|
|
67062
|
+
return props;
|
|
67063
|
+
}
|
|
67064
|
+
return undefined;
|
|
67065
|
+
}
|
|
67066
|
+
}
|
|
67067
|
+
/**
|
|
67068
|
+
* Produces candidates in lookup order: presentation formats by unit-system priority, then the persistence unit,
|
|
67069
|
+
* then the default presentation format. The generator defers each candidate until the lookup reaches it.
|
|
67070
|
+
*/
|
|
67071
|
+
function* getFormatSelectionCandidates(kindOfQuantity, effectiveSystem) {
|
|
67072
|
+
if (effectiveSystem) {
|
|
67073
|
+
const matchers = getUnitSystemGroupMatchers(effectiveSystem);
|
|
67074
|
+
for (const matcher of matchers) {
|
|
67075
|
+
for (const format of kindOfQuantity.presentationFormats)
|
|
67076
|
+
yield { type: "presentation", format, matcher };
|
|
67077
|
+
}
|
|
67078
|
+
yield { type: "persistence", unit: kindOfQuantity.persistenceUnit, matchers };
|
|
67079
|
+
}
|
|
67080
|
+
const defaultFormat = kindOfQuantity.defaultPresentationFormat;
|
|
67081
|
+
if (defaultFormat)
|
|
67082
|
+
yield { type: "default", format: defaultFormat };
|
|
67083
|
+
}
|
|
67084
|
+
function getFormatPropsForCandidate(candidate, format, unit) {
|
|
67085
|
+
const unitSystemName = unit?.unitSystemName;
|
|
67086
|
+
switch (candidate.type) {
|
|
67087
|
+
case "presentation":
|
|
67088
|
+
return format && unitSystemName && candidate.matcher(unitSystemName) ? (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format) : undefined;
|
|
67089
|
+
case "persistence":
|
|
67090
|
+
return unit && unitSystemName && candidate.matchers.some((matcher) => matcher(unitSystemName)) ? getPersistenceUnitFormatProps(unit.unit) : undefined;
|
|
67091
|
+
case "default":
|
|
67092
|
+
return format ? (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format) : undefined;
|
|
67093
|
+
}
|
|
67094
|
+
}
|
|
67095
|
+
function resolveFormatSync(context, format) {
|
|
67096
|
+
if (_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.OverrideFormat.isOverrideFormat(format))
|
|
67097
|
+
return format;
|
|
67098
|
+
const schema = getCachedSchemaSync(context, format.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact);
|
|
67099
|
+
return schema?.getItemSync(format.name, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
67100
|
+
}
|
|
67101
|
+
async function resolveUnitAsync(unit) {
|
|
67102
|
+
const resolvedUnit = await unit;
|
|
67103
|
+
const unitSystem = await resolvedUnit.unitSystem;
|
|
67104
|
+
return { unit: resolvedUnit, unitSystemName: unitSystem?.name };
|
|
67105
|
+
}
|
|
67106
|
+
function resolveUnitSync(context, unit) {
|
|
67107
|
+
const resolvedUnit = getLoadedUnitSync(context, unit);
|
|
67108
|
+
if (!resolvedUnit)
|
|
67109
|
+
return undefined;
|
|
67110
|
+
const unitSystem = resolvedUnit.unitSystem;
|
|
67111
|
+
if (!unitSystem)
|
|
67112
|
+
return { unit: resolvedUnit };
|
|
67113
|
+
const unitSystemName = getCachedSchemaSync(context, unitSystem.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact)?.getItemSync(unitSystem.name, _Metadata_UnitSystem__WEBPACK_IMPORTED_MODULE_11__.UnitSystem)?.name;
|
|
67114
|
+
return unitSystemName ? { unit: resolvedUnit, unitSystemName } : undefined;
|
|
67115
|
+
}
|
|
67116
|
+
/**
|
|
67117
|
+
* Name-only lookups use `SchemaMatchType.Latest`. References use `SchemaMatchType.Exact` because they carry the version
|
|
67118
|
+
* the loaded item resolved; matching by name alone could return an item from a different cached version.
|
|
67119
|
+
*/
|
|
67120
|
+
function getCachedSchemaSync(context, schemaKey, matchType) {
|
|
67121
|
+
try {
|
|
67122
|
+
return context.getCachedSchemaSync(schemaKey, matchType);
|
|
67123
|
+
}
|
|
67124
|
+
catch (error) {
|
|
67125
|
+
if (error instanceof _Exception__WEBPACK_IMPORTED_MODULE_3__.ECSchemaError && error.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_3__.ECSchemaStatus.UnableToLoadSchema)
|
|
67126
|
+
return undefined;
|
|
67127
|
+
throw error;
|
|
67128
|
+
}
|
|
67129
|
+
}
|
|
67130
|
+
function getLoadedUnitSync(context, unit) {
|
|
67131
|
+
const schema = getCachedSchemaSync(context, unit.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact);
|
|
67132
|
+
const item = schema?.getItemSync(unit.name);
|
|
67133
|
+
return _Metadata_Unit__WEBPACK_IMPORTED_MODULE_9__.Unit.isUnit(item) || _Metadata_InvertedUnit__WEBPACK_IMPORTED_MODULE_10__.InvertedUnit.isInvertedUnit(item) ? item : undefined;
|
|
66926
67134
|
}
|
|
66927
67135
|
function getUnitSystemGroupMatchers(groupKey) {
|
|
66928
67136
|
function createMatcher(name) {
|
|
66929
67137
|
const names = Array.isArray(name) ? name : [name];
|
|
66930
|
-
return (
|
|
67138
|
+
return (unitSystemName) => names.some((n) => n === unitSystemName.toUpperCase());
|
|
66931
67139
|
}
|
|
66932
67140
|
switch (groupKey) {
|
|
66933
67141
|
case "imperial":
|
|
@@ -75859,15 +76067,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75859
76067
|
* @module Schema
|
|
75860
76068
|
*/
|
|
75861
76069
|
/** The reference graph of every schema in one iModel - names, versions and reference edges, without
|
|
75862
|
-
*
|
|
75863
|
-
*
|
|
76070
|
+
* schema items. A {@link SchemaViewDataProvider} builds it from ECDbMeta rows via
|
|
76071
|
+
* {@link SchemaManifest.fromRows}. It includes schemas excluded from SchemaView's binary data.
|
|
75864
76072
|
*
|
|
75865
|
-
*
|
|
75866
|
-
* The
|
|
75867
|
-
*
|
|
75868
|
-
* @
|
|
75869
|
-
* and filters the result of {@link SchemaManifest.getSchemaClosure} itself.
|
|
75870
|
-
* @internal
|
|
76073
|
+
* {@link SchemaViewManager} uses this graph to determine which schemas a filtered request needs.
|
|
76074
|
+
* The manifest does not track which schemas are already loaded; the manager filters the result of
|
|
76075
|
+
* {@link SchemaManifest.getSchemaClosure} itself.
|
|
76076
|
+
* @beta
|
|
75871
76077
|
*/
|
|
75872
76078
|
class SchemaManifest {
|
|
75873
76079
|
_entries;
|
|
@@ -75883,7 +76089,7 @@ class SchemaManifest {
|
|
|
75883
76089
|
/** Build a manifest from raw ECDbMeta query rows, so a `SchemaViewDataProvider` only has to run
|
|
75884
76090
|
* the two queries and hand the rows over. Reference rows whose endpoints are unknown or
|
|
75885
76091
|
* self-referential are skipped; that cannot happen for a well-formed iModel.
|
|
75886
|
-
* @
|
|
76092
|
+
* @beta
|
|
75887
76093
|
*/
|
|
75888
76094
|
static fromRows(schemaRows, referenceRows) {
|
|
75889
76095
|
const entries = [];
|
|
@@ -75922,8 +76128,7 @@ class SchemaManifest {
|
|
|
75922
76128
|
return this._byLowerName.get(name.toLowerCase());
|
|
75923
76129
|
}
|
|
75924
76130
|
/** The transitive reference closure of the requested schemas, as a flat, duplicate-free list of
|
|
75925
|
-
* names: the full set
|
|
75926
|
-
* {@link SchemaManifest.sortInDependencyOrder} on the result when a load order is needed.
|
|
76131
|
+
* names: the full set to request in a standalone fragment. The order is unspecified.
|
|
75927
76132
|
* @note Requested names the iModel does not contain are ignored; check
|
|
75928
76133
|
* {@link SchemaManifest.findByName} first to detect them.
|
|
75929
76134
|
*/
|
|
@@ -75994,6 +76199,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75994
76199
|
/* harmony export */ });
|
|
75995
76200
|
/* harmony import */ var _SchemaViewInterfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SchemaViewInterfaces */ "../../core/ecschema-metadata/lib/esm/SchemaView/SchemaViewInterfaces.js");
|
|
75996
76201
|
/* harmony import */ var _SchemaViewBinaryReader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SchemaViewBinaryReader */ "../../core/ecschema-metadata/lib/esm/SchemaView/SchemaViewBinaryReader.js");
|
|
76202
|
+
/* harmony import */ var _ECName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECName */ "../../core/ecschema-metadata/lib/esm/ECName.js");
|
|
75997
76203
|
/*---------------------------------------------------------------------------------------------
|
|
75998
76204
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
75999
76205
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -76003,6 +76209,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
76003
76209
|
*/
|
|
76004
76210
|
|
|
76005
76211
|
|
|
76212
|
+
|
|
76006
76213
|
// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in
|
|
76007
76214
|
// core-backend/src/internal/Symbols.ts (e.g. `_nativeDb` on IModelDb): the data is reachable
|
|
76008
76215
|
// only by code in this module, since the symbol is not exported and not registered globally.
|
|
@@ -76015,8 +76222,9 @@ const _storage = Symbol("SchemaView.storage");
|
|
|
76015
76222
|
* stateless wrappers that hold a reference to this view plus an index. They allocate nothing
|
|
76016
76223
|
* and cache nothing.
|
|
76017
76224
|
*
|
|
76018
|
-
*
|
|
76019
|
-
*
|
|
76225
|
+
* Use {@link SchemaViewManager} to load schemas incrementally into one view, or parse a standalone
|
|
76226
|
+
* binary blob via {@link (SchemaView:class).fromBinary}. Consumers cannot modify the metadata; a manager
|
|
76227
|
+
* can extend its view with additional schemas while previously obtained view objects remain valid.
|
|
76020
76228
|
* @beta
|
|
76021
76229
|
*/
|
|
76022
76230
|
class SchemaView {
|
|
@@ -76101,7 +76309,8 @@ class SchemaView {
|
|
|
76101
76309
|
return idx !== undefined ? new SchemaView.PropertyCategory(this, idx) : undefined;
|
|
76102
76310
|
}
|
|
76103
76311
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
76104
|
-
* @param blob - The binary blob from `PRAGMA schema_view
|
|
76312
|
+
* @param blob - The binary blob from `PRAGMA schema_view`, or a standalone `PRAGMA schema_view_fragment`
|
|
76313
|
+
* containing the requested schemas and their references.
|
|
76105
76314
|
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
76106
76315
|
* @beta
|
|
76107
76316
|
*/
|
|
@@ -76306,9 +76515,10 @@ class SchemaView {
|
|
|
76306
76515
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76307
76516
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76308
76517
|
get alias() { return this._ctx[_storage].strings[this._data.aliasStringIdx]; }
|
|
76518
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76309
76519
|
get label() {
|
|
76310
76520
|
const sid = this._data.labelStringIdx;
|
|
76311
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
76521
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76312
76522
|
}
|
|
76313
76523
|
get description() {
|
|
76314
76524
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76402,9 +76612,10 @@ class SchemaView {
|
|
|
76402
76612
|
*/
|
|
76403
76613
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76404
76614
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76615
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76405
76616
|
get label() {
|
|
76406
76617
|
const sid = this._data.labelStringIdx;
|
|
76407
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
76618
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76408
76619
|
}
|
|
76409
76620
|
get description() {
|
|
76410
76621
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76513,7 +76724,8 @@ class SchemaView {
|
|
|
76513
76724
|
return true;
|
|
76514
76725
|
return this._ctx.getTransitiveBases(this.idx).has(targetIdx);
|
|
76515
76726
|
}
|
|
76516
|
-
/** Direct derived classes
|
|
76727
|
+
/** Direct derived classes among the currently loaded schemas. A partial view may omit derived
|
|
76728
|
+
* classes from other schemas. Expensive on first call (builds reverse map across all loaded classes). */
|
|
76517
76729
|
get derivedClasses() {
|
|
76518
76730
|
const map = this._ctx.buildDerivedClassMap();
|
|
76519
76731
|
const indices = map.get(this.idx);
|
|
@@ -76608,11 +76820,11 @@ class SchemaView {
|
|
|
76608
76820
|
*/
|
|
76609
76821
|
get ecInstanceId() { return this._ref.ecInstanceId; }
|
|
76610
76822
|
get name() { return this._ctx[_storage].strings[this._def.nameStringIdx]; }
|
|
76611
|
-
/** Display label
|
|
76823
|
+
/** Display label, or the decoded property name when the label is absent or empty.
|
|
76612
76824
|
* Labels are stored per-reference (not per-definition) because EC allows class overrides. */
|
|
76613
76825
|
get label() {
|
|
76614
76826
|
const labelStringIdx = this._ref.labelStringIdx;
|
|
76615
|
-
return labelStringIdx !== 0 ? this._ctx[_storage].strings[labelStringIdx] : this.name;
|
|
76827
|
+
return labelStringIdx !== 0 ? this._ctx[_storage].strings[labelStringIdx] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76616
76828
|
}
|
|
76617
76829
|
get description() {
|
|
76618
76830
|
const sid = this._def.descriptionStringIdx;
|
|
@@ -76791,9 +77003,10 @@ class SchemaView {
|
|
|
76791
77003
|
*/
|
|
76792
77004
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76793
77005
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77006
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76794
77007
|
get label() {
|
|
76795
77008
|
const sid = this._data.labelStringIdx;
|
|
76796
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77009
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76797
77010
|
}
|
|
76798
77011
|
get description() {
|
|
76799
77012
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76848,9 +77061,10 @@ class SchemaView {
|
|
|
76848
77061
|
}
|
|
76849
77062
|
get _data() { return this._ctx[_storage].enumerators[this.idx]; }
|
|
76850
77063
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77064
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76851
77065
|
get label() {
|
|
76852
77066
|
const sid = this._data.labelStringIdx;
|
|
76853
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77067
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76854
77068
|
}
|
|
76855
77069
|
get description() {
|
|
76856
77070
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76897,9 +77111,10 @@ class SchemaView {
|
|
|
76897
77111
|
*/
|
|
76898
77112
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76899
77113
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77114
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76900
77115
|
get label() {
|
|
76901
77116
|
const sid = this._data.labelStringIdx;
|
|
76902
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77117
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76903
77118
|
}
|
|
76904
77119
|
get description() {
|
|
76905
77120
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76974,9 +77189,10 @@ class SchemaView {
|
|
|
76974
77189
|
*/
|
|
76975
77190
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76976
77191
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77192
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76977
77193
|
get label() {
|
|
76978
77194
|
const sid = this._data.labelStringIdx;
|
|
76979
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77195
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76980
77196
|
}
|
|
76981
77197
|
get description() {
|
|
76982
77198
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -78042,10 +78258,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
78042
78258
|
*/
|
|
78043
78259
|
|
|
78044
78260
|
/** Owns the lifetime of one iModel's {@link (SchemaView:class)}: lazy loading, incremental (filtered)
|
|
78045
|
-
*
|
|
78046
|
-
*
|
|
78047
|
-
*
|
|
78048
|
-
* @
|
|
78261
|
+
* loading, serialization of concurrent requests, and invalidation. All data access goes through the
|
|
78262
|
+
* supplied {@link SchemaViewDataProvider}.
|
|
78263
|
+
*
|
|
78264
|
+
* Keep one manager per iModel connection. Calls to {@link SchemaViewManager.getSchemaView} reuse
|
|
78265
|
+
* one accumulating view until it is invalidated. The manager does not monitor schema changes;
|
|
78266
|
+
* call {@link SchemaViewManager.reset} after a known change, or await
|
|
78267
|
+
* {@link SchemaViewManager.invalidateIfChanged} after an operation that may have changed schemas.
|
|
78268
|
+
* @beta
|
|
78049
78269
|
*/
|
|
78050
78270
|
class SchemaViewManager {
|
|
78051
78271
|
_dataProvider;
|
|
@@ -78061,9 +78281,9 @@ class SchemaViewManager {
|
|
|
78061
78281
|
constructor(dataProvider) {
|
|
78062
78282
|
this._dataProvider = dataProvider;
|
|
78063
78283
|
}
|
|
78064
|
-
/** Get the schema view, loading
|
|
78065
|
-
*
|
|
78066
|
-
*
|
|
78284
|
+
/** Get the schema view, loading the requested schemas and their references that are not present
|
|
78285
|
+
* yet. Omitting the schema filter loads every schema. Calls accumulate into the same view until
|
|
78286
|
+
* it is invalidated. See {@link GetSchemaViewArgs} for filtering semantics.
|
|
78067
78287
|
*/
|
|
78068
78288
|
async getSchemaView(args) {
|
|
78069
78289
|
const previous = this._viewPromise;
|
|
@@ -78111,10 +78331,6 @@ class SchemaViewManager {
|
|
|
78111
78331
|
}
|
|
78112
78332
|
if (existing === undefined)
|
|
78113
78333
|
return undefined;
|
|
78114
|
-
// A view without a token (e.g. built directly from a SchemaViewBuilder) cannot be verified by
|
|
78115
|
-
// token; views loaded through this manager always carry one.
|
|
78116
|
-
if (existing.schemaToken === "")
|
|
78117
|
-
return existing;
|
|
78118
78334
|
try {
|
|
78119
78335
|
if (await this._dataProvider.fetchSchemaToken() === existing.schemaToken)
|
|
78120
78336
|
return existing;
|
|
@@ -92944,7 +93160,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92944
93160
|
const result = await reader.next();
|
|
92945
93161
|
if (result.done)
|
|
92946
93162
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, "PRAGMA checksum(schema_token) returned no rows");
|
|
92947
|
-
|
|
93163
|
+
const token = result.value.sha3_256;
|
|
93164
|
+
if (typeof token !== "string")
|
|
93165
|
+
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, "PRAGMA checksum(schema_token) returned an invalid sha3_256 column");
|
|
93166
|
+
return token;
|
|
92948
93167
|
},
|
|
92949
93168
|
};
|
|
92950
93169
|
}
|
|
@@ -92963,7 +93182,9 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92963
93182
|
const token = result.value.schemaToken;
|
|
92964
93183
|
if (data === undefined || data === null)
|
|
92965
93184
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, `${pragma} returned null data column`);
|
|
92966
|
-
|
|
93185
|
+
if (typeof token !== "string")
|
|
93186
|
+
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, `${pragma} returned an invalid schemaToken column`);
|
|
93187
|
+
return { data, schemaToken: token };
|
|
92967
93188
|
}
|
|
92968
93189
|
}
|
|
92969
93190
|
/** A connection that exists without an iModel. Useful for connecting to Reality Data services.
|
|
@@ -116387,6 +116608,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116387
116608
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
116388
116609
|
/* eslint-disable @itwin/no-internal-barrel-imports */
|
|
116389
116610
|
/* eslint-disable sort-imports */
|
|
116611
|
+
/* eslint-disable @typescript-eslint/no-deprecated -- the extension runtime must keep exposing deprecated public APIs until they are removed */
|
|
116390
116612
|
|
|
116391
116613
|
const globalSymbol = Symbol.for("itwin.core.frontend.globals");
|
|
116392
116614
|
if (globalThis[globalSymbol]) {
|
|
@@ -161249,8 +161471,13 @@ class FormatsProviderManager {
|
|
|
161249
161471
|
this.onFormatsChanged.raiseEvent(args);
|
|
161250
161472
|
});
|
|
161251
161473
|
}
|
|
161252
|
-
async getFormat(name, system) {
|
|
161253
|
-
return this._formatsProvider.getFormat(name, system);
|
|
161474
|
+
async getFormat(name, system, context) {
|
|
161475
|
+
return this._formatsProvider.getFormat(name, system, context);
|
|
161476
|
+
}
|
|
161477
|
+
/** Returns `undefined` when the current provider cannot look up formats synchronously. */
|
|
161478
|
+
getFormatSync(name, system, context) {
|
|
161479
|
+
const provider = this._formatsProvider;
|
|
161480
|
+
return typeof provider.getFormatSync === "function" ? provider.getFormatSync(name, system, context) : undefined;
|
|
161254
161481
|
}
|
|
161255
161482
|
get formatsProvider() { return this; }
|
|
161256
161483
|
set formatsProvider(formatsProvider) {
|
|
@@ -166396,7 +166623,7 @@ class GltfReader {
|
|
|
166396
166623
|
}
|
|
166397
166624
|
readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
|
|
166398
166625
|
const meshMode = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.asInt(primitive.mode, _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Triangles);
|
|
166399
|
-
if (meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points &&
|
|
166626
|
+
if (meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points && primitive.indices === undefined) {
|
|
166400
166627
|
const pointCloud = this.readPointCloud2(primitive, undefined !== featureTable);
|
|
166401
166628
|
if (pointCloud)
|
|
166402
166629
|
return pointCloud;
|
|
@@ -166875,6 +167102,8 @@ class GltfReader {
|
|
|
166875
167102
|
vertexCount = bufferData.count ?? 0;
|
|
166876
167103
|
featureIdBuffers.set(featureIdDesc.attribute, { buffer, stride: bufferView.stride });
|
|
166877
167104
|
}
|
|
167105
|
+
if (featureIdBuffers.size === 0)
|
|
167106
|
+
return undefined;
|
|
166878
167107
|
const itwinFeatureIndices = [];
|
|
166879
167108
|
const vertexPropsMap = new Map();
|
|
166880
167109
|
for (let vertexId = 0; vertexId < vertexCount; vertexId++) {
|
|
@@ -313831,16 +314060,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
313831
314060
|
/* harmony import */ var _Unit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Unit */ "../../core/quantity/lib/esm/Unit.js");
|
|
313832
314061
|
/* harmony import */ var _internal_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
313833
314062
|
/* harmony import */ var _internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/BasicUnitsResolvedStateCache */ "../../core/quantity/lib/esm/internal/BasicUnitsResolvedStateCache.js");
|
|
314063
|
+
/* harmony import */ var _assets_Units_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assets/Units.json */ "../../core/quantity/lib/esm/assets/Units.json");
|
|
313834
314064
|
|
|
313835
314065
|
|
|
313836
314066
|
|
|
314067
|
+
|
|
314068
|
+
const bundledSchema = _assets_Units_json__WEBPACK_IMPORTED_MODULE_3__;
|
|
313837
314069
|
async function resolveState() {
|
|
313838
|
-
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsData)(async () =>
|
|
313839
|
-
|
|
313840
|
-
|
|
313841
|
-
|
|
313842
|
-
return schema;
|
|
313843
|
-
});
|
|
314070
|
+
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsData)(async () => bundledSchema);
|
|
314071
|
+
}
|
|
314072
|
+
function resolveStateSync() {
|
|
314073
|
+
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsDataSync)(bundledSchema);
|
|
313844
314074
|
}
|
|
313845
314075
|
/** @internal — test use only. Resets the shared module-level lazy cache. */
|
|
313846
314076
|
function _testResetUnitsCache() {
|
|
@@ -313849,12 +314079,11 @@ function _testResetUnitsCache() {
|
|
|
313849
314079
|
/**
|
|
313850
314080
|
* A `UnitsProvider` backed by the full BIS `Units.ecschema.json` bundled as a JSON asset.
|
|
313851
314081
|
*
|
|
313852
|
-
* The bundled
|
|
313853
|
-
*
|
|
313854
|
-
* share the same immutable lookup indexes.
|
|
314082
|
+
* The bundled data is available locally. The provider builds its immutable lookup indexes on the
|
|
314083
|
+
* first call and caches them at module scope, so multiple instances share the same indexes.
|
|
313855
314084
|
*
|
|
313856
|
-
* If
|
|
313857
|
-
*
|
|
314085
|
+
* If resolving the bundled data fails, the next provider call retries instead of retaining a failed
|
|
314086
|
+
* module-level state.
|
|
313858
314087
|
*
|
|
313859
314088
|
* This is the zero-dependency default for backends, tools, and any frontend that doesn't need
|
|
313860
314089
|
* iModel overrides. Equivalent to calling `createUnitsProvider()` with no arguments.
|
|
@@ -313863,6 +314092,16 @@ function _testResetUnitsCache() {
|
|
|
313863
314092
|
* @beta
|
|
313864
314093
|
*/
|
|
313865
314094
|
class BasicUnitsProvider {
|
|
314095
|
+
/** Find a built-in unit by fully qualified name using local data. */
|
|
314096
|
+
findUnitByNameSync(unitName) {
|
|
314097
|
+
const state = resolveStateSync();
|
|
314098
|
+
const entry = state.nameMap.get(unitName);
|
|
314099
|
+
return entry ? entry.props : new _Unit__WEBPACK_IMPORTED_MODULE_0__.BadUnit();
|
|
314100
|
+
}
|
|
314101
|
+
/** Compute a conversion between built-in units using the same bundled data as [[getConversion]]. */
|
|
314102
|
+
getConversionSync(fromUnit, toUnit) {
|
|
314103
|
+
return (0,_internal_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_1__.getBasicUnitConversion)(resolveStateSync(), fromUnit, toUnit);
|
|
314104
|
+
}
|
|
313866
314105
|
// ── UnitsProvider implementation ─────────────────────────────────────
|
|
313867
314106
|
/** Find a unit by its display label, optionally filtering by schema name, phenomenon, and unit system.
|
|
313868
314107
|
* @param unitLabel - The display label to search for (case-insensitive).
|
|
@@ -314294,7 +314533,7 @@ class BaseFormat {
|
|
|
314294
314533
|
_stationBaseFactor; // optional positive integer base factor for station formatting; default is 1
|
|
314295
314534
|
_ratioType; // required if type is ratio; options: oneToN, NToOne, ValueBased, useGreatestCommonDivisor
|
|
314296
314535
|
_ratioFormatType; // defaults to Decimal if not specified
|
|
314297
|
-
_ratioSeparator; // default is ":"; separator
|
|
314536
|
+
_ratioSeparator; // default is ":"; separator string used in ratio formatting
|
|
314298
314537
|
_azimuthBase; // value always clockwise from north
|
|
314299
314538
|
_azimuthBaseUnit; // unit for azimuthBase value
|
|
314300
314539
|
_azimuthCounterClockwise; // if set to true, azimuth values are returned counter-clockwise from base
|
|
@@ -314396,11 +314635,12 @@ class BaseFormat {
|
|
|
314396
314635
|
if (undefined === formatProps.ratioType)
|
|
314397
314636
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} is 'Ratio' type therefore the attribute 'ratioType' is required.`);
|
|
314398
314637
|
this._ratioType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseRatioType)(formatProps.ratioType, this.name);
|
|
314399
|
-
if (undefined !== formatProps.ratioSeparator) { // optional; default is
|
|
314638
|
+
if (undefined !== formatProps.ratioSeparator) { // optional; default is ":"
|
|
314400
314639
|
if (typeof (formatProps.ratioSeparator) !== "string")
|
|
314401
314640
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} has an invalid 'ratioSeparator' attribute. It should be of type 'string'.`);
|
|
314402
|
-
|
|
314403
|
-
|
|
314641
|
+
const nonSpaceCharacters = [...formatProps.ratioSeparator].filter((character) => character !== " ");
|
|
314642
|
+
if (nonSpaceCharacters.length !== 1 || nonSpaceCharacters[0].trim().length === 0)
|
|
314643
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${this.name} has an invalid 'ratioSeparator' attribute. It should contain exactly one non-space character, optionally surrounded by spaces.`);
|
|
314404
314644
|
this._ratioSeparator = formatProps.ratioSeparator;
|
|
314405
314645
|
}
|
|
314406
314646
|
else {
|
|
@@ -314634,6 +314874,12 @@ class Format extends BaseFormat {
|
|
|
314634
314874
|
await actualFormat.fromJSON(unitsProvider, formatProps);
|
|
314635
314875
|
return actualFormat;
|
|
314636
314876
|
}
|
|
314877
|
+
/** Create a `Format` from `FormatProps` using a synchronous unit provider. */
|
|
314878
|
+
static createFromJSONSync(name, unitsProvider, formatProps) {
|
|
314879
|
+
const actualFormat = new Format(name);
|
|
314880
|
+
actualFormat.fromFullyResolvedJSON(resolveFormatPropsSync(name, unitsProvider, formatProps));
|
|
314881
|
+
return actualFormat;
|
|
314882
|
+
}
|
|
314637
314883
|
static createFromFullyResolvedJSON(name, formatProps) {
|
|
314638
314884
|
const actualFormat = new Format(name);
|
|
314639
314885
|
actualFormat.fromFullyResolvedJSON(formatProps);
|
|
@@ -314700,52 +314946,50 @@ class Format extends BaseFormat {
|
|
|
314700
314946
|
return baseFormatProps;
|
|
314701
314947
|
}
|
|
314702
314948
|
}
|
|
314703
|
-
|
|
314949
|
+
function validateCompositeUnitInput(name, label) {
|
|
314704
314950
|
if (typeof name !== "string" || (undefined !== label && typeof label !== "string")) {
|
|
314705
314951
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `This Composite has a unit with an invalid 'name' or 'label' attribute.`);
|
|
314706
314952
|
}
|
|
314707
|
-
|
|
314953
|
+
}
|
|
314954
|
+
function validateResolvedUnit(unit, errorMessage) {
|
|
314708
314955
|
if (!unit || !unit.isValid) {
|
|
314709
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson,
|
|
314956
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, errorMessage);
|
|
314710
314957
|
}
|
|
314711
314958
|
return unit;
|
|
314712
314959
|
}
|
|
314713
|
-
|
|
314960
|
+
function getAzimuthBearingUnitName(formatName, jsonObj, key) {
|
|
314714
314961
|
const unitName = jsonObj[key];
|
|
314715
|
-
if (undefined !== unitName) {
|
|
314716
|
-
|
|
314717
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid '${key}' attribute. It should be of type 'string'.`);
|
|
314718
|
-
}
|
|
314719
|
-
const unit = await provider.findUnitByName(unitName);
|
|
314720
|
-
if (!unit || !unit.isValid) {
|
|
314721
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314722
|
-
}
|
|
314723
|
-
return unit;
|
|
314962
|
+
if (undefined !== unitName && typeof unitName !== "string") {
|
|
314963
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid '${key}' attribute. It should be of type 'string'.`);
|
|
314724
314964
|
}
|
|
314725
|
-
return
|
|
314965
|
+
return unitName;
|
|
314726
314966
|
}
|
|
314727
|
-
async function
|
|
314728
|
-
|
|
314729
|
-
|
|
314730
|
-
|
|
314731
|
-
|
|
314732
|
-
|
|
314733
|
-
|
|
314734
|
-
|
|
314735
|
-
|
|
314736
|
-
|
|
314737
|
-
|
|
314738
|
-
|
|
314739
|
-
|
|
314740
|
-
|
|
314741
|
-
|
|
314967
|
+
async function resolveCompositeUnit(provider, name, label) {
|
|
314968
|
+
validateCompositeUnitInput(name, label);
|
|
314969
|
+
return validateResolvedUnit(await provider.findUnitByName(name), `Invalid unit name '${name}'.`);
|
|
314970
|
+
}
|
|
314971
|
+
function resolveCompositeUnitSync(provider, name, label) {
|
|
314972
|
+
validateCompositeUnitInput(name, label);
|
|
314973
|
+
return validateResolvedUnit(provider.findUnitByNameSync(name), `Invalid unit name '${name}'.`);
|
|
314974
|
+
}
|
|
314975
|
+
async function resolveAzimuthBearingUnit(formatName, jsonObj, key, provider) {
|
|
314976
|
+
const unitName = getAzimuthBearingUnitName(formatName, jsonObj, key);
|
|
314977
|
+
return undefined === unitName ? undefined : validateResolvedUnit(await provider.findUnitByName(unitName), `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314978
|
+
}
|
|
314979
|
+
function resolveAzimuthBearingUnitSync(formatName, jsonObj, key, provider) {
|
|
314980
|
+
const unitName = getAzimuthBearingUnitName(formatName, jsonObj, key);
|
|
314981
|
+
return undefined === unitName ? undefined : validateResolvedUnit(provider.findUnitByNameSync(unitName), `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314982
|
+
}
|
|
314983
|
+
function validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit) {
|
|
314984
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314985
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio && units?.length === 2) {
|
|
314986
|
+
const phenomenon1 = units[0].unit.phenomenon;
|
|
314987
|
+
const phenomenon2 = units[1].unit.phenomenon;
|
|
314988
|
+
if (phenomenon1 !== phenomenon2) {
|
|
314989
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has 2-unit composite with different phenomena. Both units must have the same phenomenon. Found '${phenomenon1}' and '${phenomenon2}'.`);
|
|
314742
314990
|
}
|
|
314743
314991
|
}
|
|
314744
|
-
|
|
314745
|
-
const type = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314746
|
-
if (type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314747
|
-
azimuthBaseUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
314748
|
-
revolutionUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
314992
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314749
314993
|
if (!revolutionUnit) {
|
|
314750
314994
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} is 'Azimuth' or 'Bearing' type therefore the attribute 'revolutionUnit' is required.`);
|
|
314751
314995
|
}
|
|
@@ -314753,6 +314997,8 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314753
314997
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an 'azimuthBase' attribute therefore the attribute 'azimuthBaseUnit' is required.`);
|
|
314754
314998
|
}
|
|
314755
314999
|
}
|
|
315000
|
+
}
|
|
315001
|
+
function createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit) {
|
|
314756
315002
|
return {
|
|
314757
315003
|
...jsonObj,
|
|
314758
315004
|
azimuthBaseUnit,
|
|
@@ -314763,6 +315009,38 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314763
315009
|
} : undefined,
|
|
314764
315010
|
};
|
|
314765
315011
|
}
|
|
315012
|
+
async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
315013
|
+
const units = undefined === jsonObj.composite?.units ? undefined : await Promise.all(jsonObj.composite.units.map(async (entry) => ({
|
|
315014
|
+
// Label is intentionally not validated, matching master: existing JSON may carry a non-string label (e.g. null).
|
|
315015
|
+
unit: await resolveCompositeUnit(unitsProvider, entry.name),
|
|
315016
|
+
label: entry.label,
|
|
315017
|
+
})));
|
|
315018
|
+
let azimuthBaseUnit;
|
|
315019
|
+
let revolutionUnit;
|
|
315020
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
315021
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
315022
|
+
azimuthBaseUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
315023
|
+
revolutionUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
315024
|
+
}
|
|
315025
|
+
validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315026
|
+
return createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315027
|
+
}
|
|
315028
|
+
function resolveFormatPropsSync(formatName, unitsProvider, jsonObj) {
|
|
315029
|
+
const units = undefined === jsonObj.composite?.units ? undefined : jsonObj.composite.units.map((entry) => ({
|
|
315030
|
+
// Keep in sync with resolveFormatProps: label is intentionally not validated.
|
|
315031
|
+
unit: resolveCompositeUnitSync(unitsProvider, entry.name),
|
|
315032
|
+
label: entry.label,
|
|
315033
|
+
}));
|
|
315034
|
+
let azimuthBaseUnit;
|
|
315035
|
+
let revolutionUnit;
|
|
315036
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
315037
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
315038
|
+
azimuthBaseUnit = resolveAzimuthBearingUnitSync(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
315039
|
+
revolutionUnit = resolveAzimuthBearingUnitSync(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
315040
|
+
}
|
|
315041
|
+
validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315042
|
+
return createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315043
|
+
}
|
|
314766
315044
|
|
|
314767
315045
|
|
|
314768
315046
|
/***/ },
|
|
@@ -315907,15 +316185,12 @@ class FormatterSpec {
|
|
|
315907
316185
|
get azimuthBaseConversion() { return this._azimuthBaseConversion; }
|
|
315908
316186
|
get revolutionConversion() { return this._revolutionConversion; }
|
|
315909
316187
|
/** Build conversion specs for ratio format with 2 composite units (numerator/denominator). */
|
|
315910
|
-
static
|
|
316188
|
+
static *buildRatioUnitConversions(units, persistenceUnit) {
|
|
315911
316189
|
const conversions = [];
|
|
315912
316190
|
const [numeratorUnit, numeratorLabel] = units[0];
|
|
315913
316191
|
const [denominatorUnit, denominatorLabel] = units[1];
|
|
315914
316192
|
// Compute ratio scale: how many numerator units per denominator unit (e.g., IN:FT = 12)
|
|
315915
|
-
const denominatorToNumerator =
|
|
315916
|
-
if (denominatorToNumerator.error) {
|
|
315917
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${denominatorUnit.name}" to "${numeratorUnit.name}" could not be resolved.`);
|
|
315918
|
-
}
|
|
316193
|
+
const denominatorToNumerator = yield* requestConversion(denominatorUnit, numeratorUnit);
|
|
315919
316194
|
const displayRatioScale = denominatorToNumerator.factor;
|
|
315920
316195
|
// Avoid double-scaling: if persistence unit already encodes the display ratio, use factor 1.
|
|
315921
316196
|
// Check by name heuristic (e.g., IN_PER_FT with ratioUnits [IN, FT] → no scaling needed)
|
|
@@ -315931,7 +316206,7 @@ class FormatterSpec {
|
|
|
315931
316206
|
name: `${numeratorUnit.name}_per_${denominatorUnit.name}`,
|
|
315932
316207
|
label: "",
|
|
315933
316208
|
system: numeratorUnit.system,
|
|
315934
|
-
conversion:
|
|
316209
|
+
conversion: createRatioConversionProps(ratioScaleFactor, denominatorToNumerator),
|
|
315935
316210
|
};
|
|
315936
316211
|
conversions.push(ratioConversionSpec);
|
|
315937
316212
|
// Numerator unit for label lookup
|
|
@@ -315954,6 +316229,9 @@ class FormatterSpec {
|
|
|
315954
316229
|
}
|
|
315955
316230
|
/** Get an array of UnitConversionSpecs, one for each unit that is to be shown in the formatted quantity string. */
|
|
315956
316231
|
static async getUnitConversions(format, unitsProvider, inputUnit) {
|
|
316232
|
+
return runAsync(FormatterSpec.buildUnitConversions(format, inputUnit), unitsProvider);
|
|
316233
|
+
}
|
|
316234
|
+
static *buildUnitConversions(format, inputUnit) {
|
|
315957
316235
|
const conversions = [];
|
|
315958
316236
|
let persistenceUnit = inputUnit;
|
|
315959
316237
|
if (!persistenceUnit) {
|
|
@@ -315967,17 +316245,14 @@ class FormatterSpec {
|
|
|
315967
316245
|
}
|
|
315968
316246
|
// Handle 2-unit composite for ratio formats (scale factors)
|
|
315969
316247
|
if (format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio && format.units && format.units.length === 2) {
|
|
315970
|
-
return FormatterSpec.
|
|
316248
|
+
return yield* FormatterSpec.buildRatioUnitConversions(format.units, persistenceUnit);
|
|
315971
316249
|
}
|
|
315972
316250
|
if (format.units) {
|
|
315973
316251
|
let convertFromUnit = inputUnit;
|
|
315974
316252
|
for (const unit of format.units) {
|
|
315975
316253
|
let unitConversion;
|
|
315976
316254
|
if (convertFromUnit) {
|
|
315977
|
-
unitConversion =
|
|
315978
|
-
if (unitConversion.error) {
|
|
315979
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${convertFromUnit.name}" to "${unit[0].name}" could not be resolved.`);
|
|
315980
|
-
}
|
|
316255
|
+
unitConversion = yield* requestConversion(convertFromUnit, unit[0]);
|
|
315981
316256
|
}
|
|
315982
316257
|
else {
|
|
315983
316258
|
unitConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316008,14 +316283,18 @@ class FormatterSpec {
|
|
|
316008
316283
|
* @see BaseFormat.revolutionUnit
|
|
316009
316284
|
*/
|
|
316010
316285
|
static async create(name, format, unitsProvider, inputUnit) {
|
|
316011
|
-
|
|
316286
|
+
return runAsync(FormatterSpec.buildFormatterSpec(name, format, inputUnit), unitsProvider);
|
|
316287
|
+
}
|
|
316288
|
+
/** Create a `FormatterSpec` using a synchronous unit provider. */
|
|
316289
|
+
static createSync(name, format, unitsProvider, inputUnit) {
|
|
316290
|
+
return runSync(FormatterSpec.buildFormatterSpec(name, format, inputUnit), unitsProvider);
|
|
316291
|
+
}
|
|
316292
|
+
static *buildFormatterSpec(name, format, inputUnit) {
|
|
316293
|
+
const conversions = yield* FormatterSpec.buildUnitConversions(format, inputUnit);
|
|
316012
316294
|
let azimuthBaseConversion;
|
|
316013
316295
|
if (format.azimuthBaseUnit !== undefined) {
|
|
316014
316296
|
if (inputUnit !== undefined) {
|
|
316015
|
-
azimuthBaseConversion =
|
|
316016
|
-
if (azimuthBaseConversion.error) {
|
|
316017
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${format.azimuthBaseUnit.name}" to "${inputUnit.name}" could not be resolved.`);
|
|
316018
|
-
}
|
|
316297
|
+
azimuthBaseConversion = yield* requestConversion(format.azimuthBaseUnit, inputUnit);
|
|
316019
316298
|
}
|
|
316020
316299
|
else {
|
|
316021
316300
|
azimuthBaseConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316024,10 +316303,7 @@ class FormatterSpec {
|
|
|
316024
316303
|
let revolutionConversion;
|
|
316025
316304
|
if (format.revolutionUnit !== undefined) {
|
|
316026
316305
|
if (inputUnit !== undefined) {
|
|
316027
|
-
revolutionConversion =
|
|
316028
|
-
if (revolutionConversion.error) {
|
|
316029
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${format.revolutionUnit.name}" to "${inputUnit.name}" could not be resolved.`);
|
|
316030
|
-
}
|
|
316306
|
+
revolutionConversion = yield* requestConversion(format.revolutionUnit, inputUnit);
|
|
316031
316307
|
}
|
|
316032
316308
|
else {
|
|
316033
316309
|
revolutionConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316040,6 +316316,30 @@ class FormatterSpec {
|
|
|
316040
316316
|
return _Formatter__WEBPACK_IMPORTED_MODULE_3__.Formatter.formatQuantity(magnitude, this);
|
|
316041
316317
|
}
|
|
316042
316318
|
}
|
|
316319
|
+
function* requestConversion(fromUnit, toUnit) {
|
|
316320
|
+
const conversion = yield [fromUnit, toUnit];
|
|
316321
|
+
if (conversion.error) {
|
|
316322
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${fromUnit.name}" to "${toUnit.name}" could not be resolved.`);
|
|
316323
|
+
}
|
|
316324
|
+
return conversion;
|
|
316325
|
+
}
|
|
316326
|
+
async function runAsync(builder, unitsProvider) {
|
|
316327
|
+
let step = builder.next();
|
|
316328
|
+
while (!step.done)
|
|
316329
|
+
step = builder.next(await unitsProvider.getConversion(...step.value));
|
|
316330
|
+
return step.value;
|
|
316331
|
+
}
|
|
316332
|
+
function runSync(builder, unitsProvider) {
|
|
316333
|
+
let step = builder.next();
|
|
316334
|
+
while (!step.done)
|
|
316335
|
+
step = builder.next(unitsProvider.getConversionSync(...step.value));
|
|
316336
|
+
return step.value;
|
|
316337
|
+
}
|
|
316338
|
+
function createRatioConversionProps(ratioScaleFactor, sourceConversion) {
|
|
316339
|
+
return sourceConversion.error
|
|
316340
|
+
? { factor: ratioScaleFactor, offset: 0.0, error: true }
|
|
316341
|
+
: { factor: ratioScaleFactor, offset: 0.0 };
|
|
316342
|
+
}
|
|
316043
316343
|
|
|
316044
316344
|
|
|
316045
316345
|
/***/ },
|
|
@@ -317032,8 +317332,8 @@ class Parser {
|
|
|
317032
317332
|
static parseRatioFormat(inString, spec) {
|
|
317033
317333
|
if (!inString)
|
|
317034
317334
|
return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
|
|
317035
|
-
const separator = spec.format.ratioSeparator
|
|
317036
|
-
const parts = inString.split(separator);
|
|
317335
|
+
const separator = spec.format.ratioSeparator?.split(" ").join("") || ":";
|
|
317336
|
+
const parts = inString.split(separator).map((p) => p.trim());
|
|
317037
317337
|
if (parts.length > 2)
|
|
317038
317338
|
return { ok: false, error: ParseError.UnableToConvertParseTokensToQuantity };
|
|
317039
317339
|
// If the string doesn't contain the expected separator but contains other ratio-like separators,
|
|
@@ -319748,7 +320048,8 @@ const basicUnitConversionData = {
|
|
|
319748
320048
|
__webpack_require__.r(__webpack_exports__);
|
|
319749
320049
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
319750
320050
|
/* harmony export */ _testResetResolvedBasicUnitsDataCache: () => (/* binding */ _testResetResolvedBasicUnitsDataCache),
|
|
319751
|
-
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData)
|
|
320051
|
+
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData),
|
|
320052
|
+
/* harmony export */ resolveBasicUnitsDataSync: () => (/* binding */ resolveBasicUnitsDataSync)
|
|
319752
320053
|
/* harmony export */ });
|
|
319753
320054
|
/* harmony import */ var _BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
319754
320055
|
|
|
@@ -319775,6 +320076,12 @@ async function resolveBasicUnitsData(loadSchema) {
|
|
|
319775
320076
|
}
|
|
319776
320077
|
return _resolvePromise;
|
|
319777
320078
|
}
|
|
320079
|
+
/** Return shared resolved data for built-in units, building it synchronously on first use.
|
|
320080
|
+
* @internal
|
|
320081
|
+
*/
|
|
320082
|
+
function resolveBasicUnitsDataSync(schema) {
|
|
320083
|
+
return _resolvedData ??= (0,_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_0__.buildResolvedBasicUnitsData)(schema);
|
|
320084
|
+
}
|
|
319778
320085
|
/** @internal — test use only. Resets the shared module-level lazy cache.
|
|
319779
320086
|
* This stays in source rather than under a test folder because the public test seam
|
|
319780
320087
|
* `BasicUnitsProvider._testResetUnitsCache()` lives in source and delegates here.
|
|
@@ -324666,9 +324973,9 @@ flatbuffers.ByteBuffer.prototype.createLong = function(low, high) {
|
|
|
324666
324973
|
|
|
324667
324974
|
/***/ },
|
|
324668
324975
|
|
|
324669
|
-
/***/ "../../common/temp/node_modules/.pnpm/js-base64@3.9.
|
|
324976
|
+
/***/ "../../common/temp/node_modules/.pnpm/js-base64@3.9.4/node_modules/js-base64/base64.mjs"
|
|
324670
324977
|
/*!**********************************************************************************************!*\
|
|
324671
|
-
!*** ../../common/temp/node_modules/.pnpm/js-base64@3.9.
|
|
324978
|
+
!*** ../../common/temp/node_modules/.pnpm/js-base64@3.9.4/node_modules/js-base64/base64.mjs ***!
|
|
324672
324979
|
\**********************************************************************************************/
|
|
324673
324980
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
324674
324981
|
|
|
@@ -324708,7 +325015,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
324708
325015
|
*
|
|
324709
325016
|
* @author Dan Kogai (https://github.com/dankogai)
|
|
324710
325017
|
*/
|
|
324711
|
-
const version = '3.9.
|
|
325018
|
+
const version = '3.9.4';
|
|
324712
325019
|
/**
|
|
324713
325020
|
* @deprecated use lowercase `version`.
|
|
324714
325021
|
*/
|
|
@@ -337022,7 +337329,18 @@ class WMS {
|
|
|
337022
337329
|
(module) {
|
|
337023
337330
|
|
|
337024
337331
|
"use strict";
|
|
337025
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0-dev.
|
|
337332
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0-dev.23","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.11","@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.3","vitest":"^4.1.10","vite-plugin-static-copy":"2.2.0"},"//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
|
+
|
|
337334
|
+
/***/ },
|
|
337335
|
+
|
|
337336
|
+
/***/ "../../core/quantity/lib/esm/assets/Units.json"
|
|
337337
|
+
/*!*****************************************************!*\
|
|
337338
|
+
!*** ../../core/quantity/lib/esm/assets/Units.json ***!
|
|
337339
|
+
\*****************************************************/
|
|
337340
|
+
(module) {
|
|
337341
|
+
|
|
337342
|
+
"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)"}}}');
|
|
337026
337344
|
|
|
337027
337345
|
/***/ }
|
|
337028
337346
|
|
|
@@ -337117,10 +337435,9 @@ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","versio
|
|
|
337117
337435
|
/******/ // This file contains only the entry chunk.
|
|
337118
337436
|
/******/ // The chunk loading function for additional chunks
|
|
337119
337437
|
/******/ __webpack_require__.e = (chunkId) => {
|
|
337120
|
-
/******/
|
|
337121
|
-
/******/
|
|
337122
|
-
/******/
|
|
337123
|
-
/******/ }, []));
|
|
337438
|
+
/******/ const promises = [];
|
|
337439
|
+
/******/ __webpack_require__.f.j(chunkId, promises);
|
|
337440
|
+
/******/ return Promise.all(promises);
|
|
337124
337441
|
/******/ };
|
|
337125
337442
|
/******/
|
|
337126
337443
|
/******/ /* webpack/runtime/get javascript chunk filename */
|