@itwin/ecschema-rpcinterface-tests 5.14.0-dev.8 → 5.14.0
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 +708 -324
- 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();
|
|
@@ -35922,6 +35922,7 @@ function isBinaryImageSource(source) {
|
|
|
35922
35922
|
__webpack_require__.r(__webpack_exports__);
|
|
35923
35923
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
35924
35924
|
/* harmony export */ getPullChangesIpcChannel: () => (/* binding */ getPullChangesIpcChannel),
|
|
35925
|
+
/* harmony export */ getPushChangesIpcChannel: () => (/* binding */ getPushChangesIpcChannel),
|
|
35925
35926
|
/* harmony export */ ipcAppChannels: () => (/* binding */ ipcAppChannels)
|
|
35926
35927
|
/* harmony export */ });
|
|
35927
35928
|
/*---------------------------------------------------------------------------------------------
|
|
@@ -35932,9 +35933,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35932
35933
|
* @module NativeApp
|
|
35933
35934
|
*/
|
|
35934
35935
|
/** Get IPC channel name used for reporting progress of pulling changes into iModel.
|
|
35936
|
+
* @param key the key of the briefcase being pulled into.
|
|
35935
35937
|
* @internal
|
|
35936
35938
|
*/
|
|
35937
|
-
const getPullChangesIpcChannel = (
|
|
35939
|
+
const getPullChangesIpcChannel = (key) => `${ipcAppChannels.functions}/pullChanges/${key}`;
|
|
35940
|
+
/** Get IPC channel name used for reporting the progress of the changeset download that [[IpcAppFunctions.pushChanges]] performs before
|
|
35941
|
+
* uploading. Kept distinct from [[getPullChangesIpcChannel]] so that a listener attached for a pull never observes a push's download.
|
|
35942
|
+
* @param key the key of the briefcase being pushed from.
|
|
35943
|
+
* @internal
|
|
35944
|
+
*/
|
|
35945
|
+
const getPushChangesIpcChannel = (key) => `${ipcAppChannels.functions}/pushChanges/pullProgress/${key}`;
|
|
35938
35946
|
/** @internal */
|
|
35939
35947
|
const ipcAppChannels = {
|
|
35940
35948
|
functions: "itwinjs-core/ipc-app",
|
|
@@ -44624,6 +44632,11 @@ class TabRun extends TextBlockComponent {
|
|
|
44624
44632
|
return other instanceof TabRun && super.equals(other);
|
|
44625
44633
|
}
|
|
44626
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
|
+
}
|
|
44627
44640
|
/** A [[Run]] that displays the formatted value of a property of some [Element]($backend).
|
|
44628
44641
|
* When a [[TextBlock]] containing a [[FieldRun]] is written into the iModel as an [ITextAnnotation]($backend) element,
|
|
44629
44642
|
* a dependency is established between the two elements via the [ElementDrivesTextAnnotation]($backend) relationship such that
|
|
@@ -44713,12 +44726,10 @@ class FieldRun extends TextBlockComponent {
|
|
|
44713
44726
|
if (this.propertyPath.propertyName !== other.propertyPath.propertyName) {
|
|
44714
44727
|
return false;
|
|
44715
44728
|
}
|
|
44716
|
-
|
|
44717
|
-
const otherAccessors = other.propertyPath.accessors ?? [];
|
|
44718
|
-
if (thisAccessors.length !== otherAccessors.length) {
|
|
44729
|
+
if (!accessorsEqual(this.propertyPath.accessors, other.propertyPath.accessors)) {
|
|
44719
44730
|
return false;
|
|
44720
44731
|
}
|
|
44721
|
-
if (!
|
|
44732
|
+
if (!accessorsEqual(this.propertyPath.jsonAccessors, other.propertyPath.jsonAccessors)) {
|
|
44722
44733
|
return false;
|
|
44723
44734
|
}
|
|
44724
44735
|
if (this.formatOptions && other.formatOptions) {
|
|
@@ -45770,6 +45781,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
45770
45781
|
/* harmony export */ getMarkerText: () => (/* reexport safe */ _annotation_TextBlock__WEBPACK_IMPORTED_MODULE_3__.getMarkerText),
|
|
45771
45782
|
/* harmony export */ getMaximumMajorTileFormatVersion: () => (/* reexport safe */ _tile_TileMetadata__WEBPACK_IMPORTED_MODULE_163__.getMaximumMajorTileFormatVersion),
|
|
45772
45783
|
/* harmony export */ getPullChangesIpcChannel: () => (/* reexport safe */ _IpcAppProps__WEBPACK_IMPORTED_MODULE_80__.getPullChangesIpcChannel),
|
|
45784
|
+
/* harmony export */ getPushChangesIpcChannel: () => (/* reexport safe */ _IpcAppProps__WEBPACK_IMPORTED_MODULE_80__.getPushChangesIpcChannel),
|
|
45773
45785
|
/* harmony export */ getTileObjectReference: () => (/* reexport safe */ _TileProps__WEBPACK_IMPORTED_MODULE_122__.getTileObjectReference),
|
|
45774
45786
|
/* harmony export */ iModelTileTreeIdToString: () => (/* reexport safe */ _tile_TileMetadata__WEBPACK_IMPORTED_MODULE_163__.iModelTileTreeIdToString),
|
|
45775
45787
|
/* harmony export */ iTwinChannel: () => (/* reexport safe */ _ipc_IpcSocket__WEBPACK_IMPORTED_MODULE_74__.iTwinChannel),
|
|
@@ -55863,9 +55875,8 @@ const formatters = {
|
|
|
55863
55875
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55864
55876
|
"string": (v, o) => formatString(v.toString(), o),
|
|
55865
55877
|
"datetime": (v, o) => formatString(formatDateTime(v, o?.dateTime), o),
|
|
55866
|
-
|
|
55867
|
-
"
|
|
55868
|
-
"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),
|
|
55869
55880
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55870
55881
|
"boolean": (v, o) => formatString(v.toString(), o),
|
|
55871
55882
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
@@ -55906,27 +55917,58 @@ function formatDateTime(v, o) {
|
|
|
55906
55917
|
}
|
|
55907
55918
|
return undefined;
|
|
55908
55919
|
}
|
|
55909
|
-
|
|
55910
|
-
|
|
55911
|
-
|
|
55912
|
-
|
|
55913
|
-
|
|
55914
|
-
|
|
55915
|
-
parts.push(z);
|
|
55916
|
-
}
|
|
55917
|
-
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);
|
|
55918
55926
|
}
|
|
55919
|
-
|
|
55927
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
55928
|
+
return v.toString();
|
|
55920
55929
|
}
|
|
55921
|
-
/**
|
|
55922
|
-
|
|
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 }) {
|
|
55923
55949
|
const formatter = formatters[value.type];
|
|
55924
|
-
return formatter ? formatter(value.value, options) : undefined;
|
|
55950
|
+
return formatter ? formatter(value.value, options, formatMagnitude) : undefined;
|
|
55925
55951
|
}
|
|
55926
|
-
/**
|
|
55952
|
+
/** Type guard for [[FieldPropertyType]] strings that have a built-in per-type formatter.
|
|
55953
|
+
* @internal
|
|
55954
|
+
*/
|
|
55927
55955
|
function isKnownFieldPropertyType(type) {
|
|
55928
55956
|
return type in formatters;
|
|
55929
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
|
+
}
|
|
55930
55972
|
|
|
55931
55973
|
|
|
55932
55974
|
/***/ },
|
|
@@ -57417,7 +57459,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
57417
57459
|
/* harmony export */ RpcNotFoundResponse: () => (/* binding */ RpcNotFoundResponse),
|
|
57418
57460
|
/* harmony export */ RpcPendingResponse: () => (/* binding */ RpcPendingResponse)
|
|
57419
57461
|
/* harmony export */ });
|
|
57420
|
-
/* 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");
|
|
57421
57463
|
/* harmony import */ var _RpcInterface__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../RpcInterface */ "../../core/common/lib/esm/RpcInterface.js");
|
|
57422
57464
|
/* harmony import */ var _RpcManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../RpcManager */ "../../core/common/lib/esm/RpcManager.js");
|
|
57423
57465
|
/* harmony import */ var _RpcConfiguration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RpcConfiguration */ "../../core/common/lib/esm/rpc/core/RpcConfiguration.js");
|
|
@@ -65967,9 +66009,17 @@ class ECName {
|
|
|
65967
66009
|
}
|
|
65968
66010
|
return new ECName(output);
|
|
65969
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
|
+
}
|
|
65970
66020
|
/** Decode this ECName, replacing encoded special characters with the characters they encode. */
|
|
65971
66021
|
decode() {
|
|
65972
|
-
return this.name
|
|
66022
|
+
return ECName.decode(this.name);
|
|
65973
66023
|
}
|
|
65974
66024
|
}
|
|
65975
66025
|
|
|
@@ -66658,48 +66708,79 @@ class FormatSetFormatsProvider {
|
|
|
66658
66708
|
this._fallbackProvider = undefined;
|
|
66659
66709
|
}
|
|
66660
66710
|
/**
|
|
66661
|
-
* Retrieves a format definition
|
|
66662
|
-
* 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.
|
|
66663
66712
|
*/
|
|
66664
|
-
async getFormat(input, system) {
|
|
66665
|
-
|
|
66666
|
-
|
|
66667
|
-
|
|
66713
|
+
async getFormat(input, system, context) {
|
|
66714
|
+
const lookupContext = extendProviderContext(context, this);
|
|
66715
|
+
if (!lookupContext)
|
|
66716
|
+
return undefined;
|
|
66717
|
+
const name = normalizeFormatName(input);
|
|
66668
66718
|
const format = this._formatSet.formats[name];
|
|
66669
66719
|
if (format !== undefined) {
|
|
66670
|
-
|
|
66671
|
-
|
|
66672
|
-
return this.resolveReference(format, undefined, system);
|
|
66673
|
-
}
|
|
66720
|
+
if (typeof format === "string")
|
|
66721
|
+
return this.resolveReference(format, new Set(), system, lookupContext);
|
|
66674
66722
|
return format;
|
|
66675
66723
|
}
|
|
66676
|
-
|
|
66677
|
-
|
|
66678
|
-
|
|
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;
|
|
66679
66752
|
}
|
|
66680
66753
|
/**
|
|
66681
66754
|
* Resolves a string reference to its FormatDefinition, following chains of references.
|
|
66682
66755
|
* @param reference The string reference to resolve
|
|
66683
66756
|
* @param visited Set of visited references to detect circular references
|
|
66684
66757
|
* @param system Optional unit system override
|
|
66758
|
+
* @param context Lookup context to forward to the fallback provider
|
|
66685
66759
|
*/
|
|
66686
|
-
async resolveReference(reference, visited
|
|
66760
|
+
async resolveReference(reference, visited, system, context) {
|
|
66687
66761
|
// Prevent infinite loops from circular references
|
|
66688
66762
|
if (visited.has(reference)) {
|
|
66689
66763
|
return undefined;
|
|
66690
66764
|
}
|
|
66691
66765
|
visited.add(reference);
|
|
66692
66766
|
const format = this._formatSet.formats[reference];
|
|
66693
|
-
if (format === undefined)
|
|
66694
|
-
|
|
66695
|
-
|
|
66696
|
-
|
|
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)) {
|
|
66697
66776
|
return undefined;
|
|
66698
66777
|
}
|
|
66699
|
-
|
|
66700
|
-
|
|
66701
|
-
|
|
66702
|
-
|
|
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);
|
|
66703
66784
|
return format;
|
|
66704
66785
|
}
|
|
66705
66786
|
/**
|
|
@@ -66735,6 +66816,18 @@ class FormatSetFormatsProvider {
|
|
|
66735
66816
|
return referencingFormats;
|
|
66736
66817
|
}
|
|
66737
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
|
+
}
|
|
66738
66831
|
|
|
66739
66832
|
|
|
66740
66833
|
/***/ },
|
|
@@ -66752,11 +66845,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66752
66845
|
/* harmony export */ });
|
|
66753
66846
|
/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Context */ "../../core/ecschema-metadata/lib/esm/Context.js");
|
|
66754
66847
|
/* harmony import */ var _SchemaKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SchemaKey */ "../../core/ecschema-metadata/lib/esm/SchemaKey.js");
|
|
66755
|
-
/* harmony import */ var
|
|
66756
|
-
/* harmony import */ var
|
|
66757
|
-
/* harmony import */ var
|
|
66758
|
-
/* 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");
|
|
66759
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");
|
|
66760
66858
|
/*---------------------------------------------------------------------------------------------
|
|
66761
66859
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
66762
66860
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -66771,6 +66869,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66771
66869
|
|
|
66772
66870
|
|
|
66773
66871
|
|
|
66872
|
+
|
|
66873
|
+
|
|
66874
|
+
|
|
66875
|
+
|
|
66876
|
+
|
|
66774
66877
|
const loggerCategory = "SchemaFormatsProvider";
|
|
66775
66878
|
/**
|
|
66776
66879
|
* Provides default formats and kind of quantities from a given SchemaContext or SchemaLocater.
|
|
@@ -66780,7 +66883,7 @@ class SchemaFormatsProvider {
|
|
|
66780
66883
|
_context;
|
|
66781
66884
|
_unitSystem;
|
|
66782
66885
|
_formatsRetrieved = new Set();
|
|
66783
|
-
onFormatsChanged = new
|
|
66886
|
+
onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.BeEvent();
|
|
66784
66887
|
/**
|
|
66785
66888
|
*
|
|
66786
66889
|
* @param contextOrLocater The SchemaContext or a different ISchemaLocater implementation used to retrieve the schema. The SchemaContext
|
|
@@ -66827,71 +66930,58 @@ class SchemaFormatsProvider {
|
|
|
66827
66930
|
async getKindOfQuantityFormatFromSchema(itemKey, systemOverride) {
|
|
66828
66931
|
let kindOfQuantity;
|
|
66829
66932
|
try {
|
|
66830
|
-
kindOfQuantity = await this._context.getSchemaItem(itemKey,
|
|
66933
|
+
kindOfQuantity = await this._context.getSchemaItem(itemKey, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__.KindOfQuantity);
|
|
66831
66934
|
}
|
|
66832
66935
|
catch {
|
|
66833
|
-
|
|
66936
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find KindOfQuantity ${itemKey.fullName}`);
|
|
66834
66937
|
return undefined;
|
|
66835
66938
|
}
|
|
66836
|
-
if (!kindOfQuantity)
|
|
66939
|
+
if (!kindOfQuantity)
|
|
66837
66940
|
return undefined;
|
|
66838
|
-
|
|
66839
|
-
|
|
66840
|
-
|
|
66841
|
-
|
|
66842
|
-
|
|
66843
|
-
|
|
66844
|
-
|
|
66845
|
-
|
|
66846
|
-
|
|
66847
|
-
|
|
66848
|
-
|
|
66849
|
-
|
|
66850
|
-
|
|
66851
|
-
|
|
66852
|
-
|
|
66853
|
-
|
|
66854
|
-
const props = (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format);
|
|
66855
|
-
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66856
|
-
}
|
|
66857
|
-
}
|
|
66858
|
-
}
|
|
66859
|
-
// If no matching presentation format was found, fall back to persistence unit format
|
|
66860
|
-
// only if it matches the requested unit system.
|
|
66861
|
-
const persistenceUnit = await kindOfQuantity.persistenceUnit;
|
|
66862
|
-
const persistenceUnitSystem = await persistenceUnit?.unitSystem;
|
|
66863
|
-
if (persistenceUnit && persistenceUnitSystem && unitSystemMatchers.some((matcher) => matcher(persistenceUnitSystem))) {
|
|
66864
|
-
this._formatsRetrieved.add(itemKey.fullName);
|
|
66865
|
-
const props = getPersistenceUnitFormatProps(persistenceUnit);
|
|
66866
|
-
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);
|
|
66867
66957
|
}
|
|
66868
|
-
|
|
66869
|
-
|
|
66870
|
-
|
|
66871
|
-
|
|
66872
|
-
|
|
66873
|
-
|
|
66874
|
-
|
|
66875
|
-
|
|
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;
|
|
66876
66966
|
}
|
|
66877
66967
|
return undefined;
|
|
66878
66968
|
}
|
|
66879
66969
|
/**
|
|
66880
|
-
* Retrieves a
|
|
66881
|
-
*
|
|
66882
|
-
*
|
|
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.
|
|
66883
66973
|
* @param name The full name of the Format or KindOfQuantity.
|
|
66884
|
-
* @
|
|
66974
|
+
* @param system Optional unit system used to select a KindOfQuantity format.
|
|
66885
66975
|
*/
|
|
66886
66976
|
async getFormat(name, system) {
|
|
66887
|
-
const [schemaName, schemaItemName] =
|
|
66977
|
+
const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem.parseFullName(name);
|
|
66888
66978
|
const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
|
|
66889
66979
|
let schema;
|
|
66890
66980
|
try {
|
|
66891
66981
|
schema = await this._context.getSchema(schemaKey);
|
|
66892
66982
|
}
|
|
66893
66983
|
catch {
|
|
66894
|
-
|
|
66984
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find schema ${schemaName}`);
|
|
66895
66985
|
return undefined;
|
|
66896
66986
|
}
|
|
66897
66987
|
if (!schema) {
|
|
@@ -66901,10 +66991,10 @@ class SchemaFormatsProvider {
|
|
|
66901
66991
|
if (schema.name === "Formats") {
|
|
66902
66992
|
let format;
|
|
66903
66993
|
try {
|
|
66904
|
-
format = await this._context.getSchemaItem(itemKey,
|
|
66994
|
+
format = await this._context.getSchemaItem(itemKey, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
66905
66995
|
}
|
|
66906
66996
|
catch {
|
|
66907
|
-
|
|
66997
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find Format ${itemKey.fullName}`);
|
|
66908
66998
|
return undefined;
|
|
66909
66999
|
}
|
|
66910
67000
|
if (!format) {
|
|
@@ -66914,11 +67004,138 @@ class SchemaFormatsProvider {
|
|
|
66914
67004
|
}
|
|
66915
67005
|
return this.getKindOfQuantityFormatFromSchema(itemKey, system);
|
|
66916
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;
|
|
66917
67134
|
}
|
|
66918
67135
|
function getUnitSystemGroupMatchers(groupKey) {
|
|
66919
67136
|
function createMatcher(name) {
|
|
66920
67137
|
const names = Array.isArray(name) ? name : [name];
|
|
66921
|
-
return (
|
|
67138
|
+
return (unitSystemName) => names.some((n) => n === unitSystemName.toUpperCase());
|
|
66922
67139
|
}
|
|
66923
67140
|
switch (groupKey) {
|
|
66924
67141
|
case "imperial":
|
|
@@ -75850,15 +76067,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75850
76067
|
* @module Schema
|
|
75851
76068
|
*/
|
|
75852
76069
|
/** The reference graph of every schema in one iModel - names, versions and reference edges, without
|
|
75853
|
-
*
|
|
75854
|
-
*
|
|
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.
|
|
75855
76072
|
*
|
|
75856
|
-
*
|
|
75857
|
-
* The
|
|
75858
|
-
*
|
|
75859
|
-
* @
|
|
75860
|
-
* and filters the result of {@link SchemaManifest.getSchemaClosure} itself.
|
|
75861
|
-
* @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
|
|
75862
76077
|
*/
|
|
75863
76078
|
class SchemaManifest {
|
|
75864
76079
|
_entries;
|
|
@@ -75874,7 +76089,7 @@ class SchemaManifest {
|
|
|
75874
76089
|
/** Build a manifest from raw ECDbMeta query rows, so a `SchemaViewDataProvider` only has to run
|
|
75875
76090
|
* the two queries and hand the rows over. Reference rows whose endpoints are unknown or
|
|
75876
76091
|
* self-referential are skipped; that cannot happen for a well-formed iModel.
|
|
75877
|
-
* @
|
|
76092
|
+
* @beta
|
|
75878
76093
|
*/
|
|
75879
76094
|
static fromRows(schemaRows, referenceRows) {
|
|
75880
76095
|
const entries = [];
|
|
@@ -75913,8 +76128,7 @@ class SchemaManifest {
|
|
|
75913
76128
|
return this._byLowerName.get(name.toLowerCase());
|
|
75914
76129
|
}
|
|
75915
76130
|
/** The transitive reference closure of the requested schemas, as a flat, duplicate-free list of
|
|
75916
|
-
* names: the full set
|
|
75917
|
-
* {@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.
|
|
75918
76132
|
* @note Requested names the iModel does not contain are ignored; check
|
|
75919
76133
|
* {@link SchemaManifest.findByName} first to detect them.
|
|
75920
76134
|
*/
|
|
@@ -75985,6 +76199,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75985
76199
|
/* harmony export */ });
|
|
75986
76200
|
/* harmony import */ var _SchemaViewInterfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SchemaViewInterfaces */ "../../core/ecschema-metadata/lib/esm/SchemaView/SchemaViewInterfaces.js");
|
|
75987
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");
|
|
75988
76203
|
/*---------------------------------------------------------------------------------------------
|
|
75989
76204
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
75990
76205
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -75994,6 +76209,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75994
76209
|
*/
|
|
75995
76210
|
|
|
75996
76211
|
|
|
76212
|
+
|
|
75997
76213
|
// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in
|
|
75998
76214
|
// core-backend/src/internal/Symbols.ts (e.g. `_nativeDb` on IModelDb): the data is reachable
|
|
75999
76215
|
// only by code in this module, since the symbol is not exported and not registered globally.
|
|
@@ -76006,8 +76222,9 @@ const _storage = Symbol("SchemaView.storage");
|
|
|
76006
76222
|
* stateless wrappers that hold a reference to this view plus an index. They allocate nothing
|
|
76007
76223
|
* and cache nothing.
|
|
76008
76224
|
*
|
|
76009
|
-
*
|
|
76010
|
-
*
|
|
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.
|
|
76011
76228
|
* @beta
|
|
76012
76229
|
*/
|
|
76013
76230
|
class SchemaView {
|
|
@@ -76092,7 +76309,8 @@ class SchemaView {
|
|
|
76092
76309
|
return idx !== undefined ? new SchemaView.PropertyCategory(this, idx) : undefined;
|
|
76093
76310
|
}
|
|
76094
76311
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
76095
|
-
* @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.
|
|
76096
76314
|
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
76097
76315
|
* @beta
|
|
76098
76316
|
*/
|
|
@@ -76297,9 +76515,10 @@ class SchemaView {
|
|
|
76297
76515
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76298
76516
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76299
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. */
|
|
76300
76519
|
get label() {
|
|
76301
76520
|
const sid = this._data.labelStringIdx;
|
|
76302
|
-
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);
|
|
76303
76522
|
}
|
|
76304
76523
|
get description() {
|
|
76305
76524
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76393,9 +76612,10 @@ class SchemaView {
|
|
|
76393
76612
|
*/
|
|
76394
76613
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76395
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. */
|
|
76396
76616
|
get label() {
|
|
76397
76617
|
const sid = this._data.labelStringIdx;
|
|
76398
|
-
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);
|
|
76399
76619
|
}
|
|
76400
76620
|
get description() {
|
|
76401
76621
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76504,7 +76724,8 @@ class SchemaView {
|
|
|
76504
76724
|
return true;
|
|
76505
76725
|
return this._ctx.getTransitiveBases(this.idx).has(targetIdx);
|
|
76506
76726
|
}
|
|
76507
|
-
/** 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). */
|
|
76508
76729
|
get derivedClasses() {
|
|
76509
76730
|
const map = this._ctx.buildDerivedClassMap();
|
|
76510
76731
|
const indices = map.get(this.idx);
|
|
@@ -76599,11 +76820,11 @@ class SchemaView {
|
|
|
76599
76820
|
*/
|
|
76600
76821
|
get ecInstanceId() { return this._ref.ecInstanceId; }
|
|
76601
76822
|
get name() { return this._ctx[_storage].strings[this._def.nameStringIdx]; }
|
|
76602
|
-
/** Display label
|
|
76823
|
+
/** Display label, or the decoded property name when the label is absent or empty.
|
|
76603
76824
|
* Labels are stored per-reference (not per-definition) because EC allows class overrides. */
|
|
76604
76825
|
get label() {
|
|
76605
76826
|
const labelStringIdx = this._ref.labelStringIdx;
|
|
76606
|
-
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);
|
|
76607
76828
|
}
|
|
76608
76829
|
get description() {
|
|
76609
76830
|
const sid = this._def.descriptionStringIdx;
|
|
@@ -76782,9 +77003,10 @@ class SchemaView {
|
|
|
76782
77003
|
*/
|
|
76783
77004
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76784
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. */
|
|
76785
77007
|
get label() {
|
|
76786
77008
|
const sid = this._data.labelStringIdx;
|
|
76787
|
-
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);
|
|
76788
77010
|
}
|
|
76789
77011
|
get description() {
|
|
76790
77012
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76839,9 +77061,10 @@ class SchemaView {
|
|
|
76839
77061
|
}
|
|
76840
77062
|
get _data() { return this._ctx[_storage].enumerators[this.idx]; }
|
|
76841
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. */
|
|
76842
77065
|
get label() {
|
|
76843
77066
|
const sid = this._data.labelStringIdx;
|
|
76844
|
-
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);
|
|
76845
77068
|
}
|
|
76846
77069
|
get description() {
|
|
76847
77070
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76888,9 +77111,10 @@ class SchemaView {
|
|
|
76888
77111
|
*/
|
|
76889
77112
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76890
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. */
|
|
76891
77115
|
get label() {
|
|
76892
77116
|
const sid = this._data.labelStringIdx;
|
|
76893
|
-
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);
|
|
76894
77118
|
}
|
|
76895
77119
|
get description() {
|
|
76896
77120
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76965,9 +77189,10 @@ class SchemaView {
|
|
|
76965
77189
|
*/
|
|
76966
77190
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76967
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. */
|
|
76968
77193
|
get label() {
|
|
76969
77194
|
const sid = this._data.labelStringIdx;
|
|
76970
|
-
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);
|
|
76971
77196
|
}
|
|
76972
77197
|
get description() {
|
|
76973
77198
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -78033,10 +78258,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
78033
78258
|
*/
|
|
78034
78259
|
|
|
78035
78260
|
/** Owns the lifetime of one iModel's {@link (SchemaView:class)}: lazy loading, incremental (filtered)
|
|
78036
|
-
*
|
|
78037
|
-
*
|
|
78038
|
-
*
|
|
78039
|
-
* @
|
|
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
|
|
78040
78269
|
*/
|
|
78041
78270
|
class SchemaViewManager {
|
|
78042
78271
|
_dataProvider;
|
|
@@ -78052,9 +78281,9 @@ class SchemaViewManager {
|
|
|
78052
78281
|
constructor(dataProvider) {
|
|
78053
78282
|
this._dataProvider = dataProvider;
|
|
78054
78283
|
}
|
|
78055
|
-
/** Get the schema view, loading
|
|
78056
|
-
*
|
|
78057
|
-
*
|
|
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.
|
|
78058
78287
|
*/
|
|
78059
78288
|
async getSchemaView(args) {
|
|
78060
78289
|
const previous = this._viewPromise;
|
|
@@ -78102,10 +78331,6 @@ class SchemaViewManager {
|
|
|
78102
78331
|
}
|
|
78103
78332
|
if (existing === undefined)
|
|
78104
78333
|
return undefined;
|
|
78105
|
-
// A view without a token (e.g. built directly from a SchemaViewBuilder) cannot be verified by
|
|
78106
|
-
// token; views loaded through this manager always carry one.
|
|
78107
|
-
if (existing.schemaToken === "")
|
|
78108
|
-
return existing;
|
|
78109
78334
|
try {
|
|
78110
78335
|
if (await this._dataProvider.fetchSchemaToken() === existing.schemaToken)
|
|
78111
78336
|
return existing;
|
|
@@ -85540,29 +85765,38 @@ class BriefcaseConnection extends _IModelConnection__WEBPACK_IMPORTED_MODULE_5__
|
|
|
85540
85765
|
async abandonChanges() {
|
|
85541
85766
|
await _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.abandonChanges(this.key); // eslint-disable-line @typescript-eslint/no-deprecated
|
|
85542
85767
|
}
|
|
85768
|
+
/** Subscribes to changeset download progress events on `channel` and wires `abortSignal` to `cancel`.
|
|
85769
|
+
* @returns a function that removes every listener that was added.
|
|
85770
|
+
*/
|
|
85771
|
+
listenForChangesetDownloadProgress(args) {
|
|
85772
|
+
const { channel, cancel, downloadProgressCallback, abortSignal } = args;
|
|
85773
|
+
const removeListeners = [];
|
|
85774
|
+
if (downloadProgressCallback) {
|
|
85775
|
+
const handleProgress = (_evt, data) => downloadProgressCallback(data);
|
|
85776
|
+
removeListeners.push(_IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.addListener(channel, handleProgress));
|
|
85777
|
+
}
|
|
85778
|
+
if (abortSignal) {
|
|
85779
|
+
const abort = () => void cancel();
|
|
85780
|
+
abortSignal.addEventListener("abort", abort);
|
|
85781
|
+
removeListeners.push(() => abortSignal.removeEventListener("abort", abort));
|
|
85782
|
+
}
|
|
85783
|
+
return () => removeListeners.forEach((remove) => remove());
|
|
85784
|
+
}
|
|
85543
85785
|
/** Pull (and potentially merge if there are local changes) up to a specified changeset from iModelHub into this briefcase
|
|
85544
85786
|
* @param toIndex The changeset index to pull changes to. If `undefined`, pull all changes.
|
|
85545
85787
|
* @param options Options for pulling changes.
|
|
85546
85788
|
* @see [[BriefcaseTxns.onChangesPulled]] for the event dispatched after changes are pulled.
|
|
85547
85789
|
*/
|
|
85548
85790
|
async pullChanges(toIndex, options) {
|
|
85549
|
-
const removeListeners = [];
|
|
85550
|
-
const shouldReportProgress = !!options?.downloadProgressCallback;
|
|
85551
|
-
if (shouldReportProgress) {
|
|
85552
|
-
const handleProgress = (_evt, data) => {
|
|
85553
|
-
options?.downloadProgressCallback?.(data);
|
|
85554
|
-
};
|
|
85555
|
-
const removeProgressListener = _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.addListener((0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.getPullChangesIpcChannel)(this.iModelId), handleProgress);
|
|
85556
|
-
removeListeners.push(removeProgressListener);
|
|
85557
|
-
}
|
|
85558
|
-
if (options?.abortSignal) {
|
|
85559
|
-
const abort = () => void _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.cancelPullChangesRequest(this.key);
|
|
85560
|
-
options?.abortSignal.addEventListener("abort", abort);
|
|
85561
|
-
removeListeners.push(() => options?.abortSignal?.removeEventListener("abort", abort));
|
|
85562
|
-
}
|
|
85563
85791
|
this.requireTimeline();
|
|
85792
|
+
const removeListeners = this.listenForChangesetDownloadProgress({
|
|
85793
|
+
channel: (0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.getPullChangesIpcChannel)(this.key),
|
|
85794
|
+
cancel: async () => _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.cancelPullChangesRequest(this.key),
|
|
85795
|
+
downloadProgressCallback: options?.downloadProgressCallback,
|
|
85796
|
+
abortSignal: options?.abortSignal,
|
|
85797
|
+
});
|
|
85564
85798
|
const ipcAppOptions = {
|
|
85565
|
-
reportProgress:
|
|
85799
|
+
reportProgress: !!options?.downloadProgressCallback,
|
|
85566
85800
|
progressInterval: options?.progressInterval,
|
|
85567
85801
|
enableCancellation: !!options?.abortSignal,
|
|
85568
85802
|
};
|
|
@@ -85570,18 +85804,29 @@ class BriefcaseConnection extends _IModelConnection__WEBPACK_IMPORTED_MODULE_5__
|
|
|
85570
85804
|
this.changeset = await _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.pullChanges(this.key, toIndex, ipcAppOptions);
|
|
85571
85805
|
}
|
|
85572
85806
|
finally {
|
|
85573
|
-
removeListeners
|
|
85807
|
+
removeListeners();
|
|
85574
85808
|
}
|
|
85575
85809
|
await this.invalidateSchemaViewIfChanged();
|
|
85576
85810
|
}
|
|
85577
|
-
|
|
85578
|
-
* @param description The description for the changeset
|
|
85579
|
-
* @returns the changesetId of the pushed changes
|
|
85580
|
-
* @see [[BriefcaseTxns.onChangesPushed]] for the event dispatched after changes are pushed.
|
|
85581
|
-
*/
|
|
85582
|
-
async pushChanges(description) {
|
|
85811
|
+
async pushChanges(description, options) {
|
|
85583
85812
|
this.requireTimeline();
|
|
85584
|
-
|
|
85813
|
+
const removeListeners = this.listenForChangesetDownloadProgress({
|
|
85814
|
+
channel: (0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.getPushChangesIpcChannel)(this.key),
|
|
85815
|
+
cancel: async () => _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.cancelPushChangesRequest(this.key),
|
|
85816
|
+
downloadProgressCallback: options?.downloadProgressCallback,
|
|
85817
|
+
abortSignal: options?.abortSignal,
|
|
85818
|
+
});
|
|
85819
|
+
const ipcAppOptions = {
|
|
85820
|
+
reportDownloadProgress: !!options?.downloadProgressCallback,
|
|
85821
|
+
downloadProgressInterval: options?.downloadProgressInterval,
|
|
85822
|
+
enableCancellation: !!options?.abortSignal,
|
|
85823
|
+
};
|
|
85824
|
+
try {
|
|
85825
|
+
return this.changeset = await _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.appFunctionIpc.pushChanges(this.key, description, ipcAppOptions);
|
|
85826
|
+
}
|
|
85827
|
+
finally {
|
|
85828
|
+
removeListeners();
|
|
85829
|
+
}
|
|
85585
85830
|
}
|
|
85586
85831
|
/** The current graphical editing scope, if one is in progress.
|
|
85587
85832
|
* @see [[enterEditingScope]] to begin graphical editing.
|
|
@@ -90263,6 +90508,7 @@ class CoordinateConverter {
|
|
|
90263
90508
|
_maxPointsPerRequest;
|
|
90264
90509
|
_isIModelClosed;
|
|
90265
90510
|
_requestPoints;
|
|
90511
|
+
_direction;
|
|
90266
90512
|
// If true, [[dispatch]] will schedule another dispatch after it receives a response.
|
|
90267
90513
|
// This is needed when all the points requested after the most recent dispatch were included in the currently-in-flight request -
|
|
90268
90514
|
// _pending will be empty but new callers will be awaiting the results of the in-flight request.
|
|
@@ -90287,6 +90533,7 @@ class CoordinateConverter {
|
|
|
90287
90533
|
this._maxPointsPerRequest = Math.max(1, opts.maxPointsPerRequest ?? 300);
|
|
90288
90534
|
this._isIModelClosed = opts.isIModelClosed;
|
|
90289
90535
|
this._requestPoints = opts.requestPoints;
|
|
90536
|
+
this._direction = opts.direction;
|
|
90290
90537
|
this._cache = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Dictionary(compareXYAndZ, cloneXYAndZ);
|
|
90291
90538
|
this._pending = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.SortedArray(compareXYAndZ, false, cloneXYAndZ);
|
|
90292
90539
|
this._inflight = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.SortedArray(compareXYAndZ, false, cloneXYAndZ);
|
|
@@ -90321,7 +90568,10 @@ class CoordinateConverter {
|
|
|
90321
90568
|
this._cache.set(requests[j], results[j]);
|
|
90322
90569
|
}
|
|
90323
90570
|
}).catch((err) => {
|
|
90324
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.geoservices`, err)
|
|
90571
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.geoservices`, err, () => ({
|
|
90572
|
+
direction: this._direction,
|
|
90573
|
+
pointCount: requests.length,
|
|
90574
|
+
}));
|
|
90325
90575
|
});
|
|
90326
90576
|
promises.push(promise);
|
|
90327
90577
|
}
|
|
@@ -90417,10 +90667,12 @@ class GeoConverter {
|
|
|
90417
90667
|
constructor(opts) {
|
|
90418
90668
|
const isIModelClosed = opts.isIModelClosed;
|
|
90419
90669
|
this._geoToIModel = new CoordinateConverter({
|
|
90670
|
+
direction: "geoToIModel",
|
|
90420
90671
|
isIModelClosed,
|
|
90421
90672
|
requestPoints: async (geoCoords) => opts.toIModelCoords({ source: opts.datum, geoCoords }),
|
|
90422
90673
|
});
|
|
90423
90674
|
this._iModelToGeo = new CoordinateConverter({
|
|
90675
|
+
direction: "iModelToGeo",
|
|
90424
90676
|
isIModelClosed,
|
|
90425
90677
|
requestPoints: async (iModelCoords) => opts.fromIModelCoords({ target: opts.datum, iModelCoords }),
|
|
90426
90678
|
});
|
|
@@ -92220,6 +92472,7 @@ class IModelApp {
|
|
|
92220
92472
|
});
|
|
92221
92473
|
}
|
|
92222
92474
|
/** Format the tooltip strings returned by [[IModelConnection.getToolTipMessage]].
|
|
92475
|
+
* @note Each string is interpreted as HTML. Any untrusted content must be HTML-escaped or sanitized before calling this method.
|
|
92223
92476
|
* @alpha
|
|
92224
92477
|
*/
|
|
92225
92478
|
static formatElementToolTip(msg) {
|
|
@@ -92907,7 +93160,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92907
93160
|
const result = await reader.next();
|
|
92908
93161
|
if (result.done)
|
|
92909
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");
|
|
92910
|
-
|
|
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;
|
|
92911
93167
|
},
|
|
92912
93168
|
};
|
|
92913
93169
|
}
|
|
@@ -92926,7 +93182,9 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92926
93182
|
const token = result.value.schemaToken;
|
|
92927
93183
|
if (data === undefined || data === null)
|
|
92928
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`);
|
|
92929
|
-
|
|
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 };
|
|
92930
93188
|
}
|
|
92931
93189
|
}
|
|
92932
93190
|
/** A connection that exists without an iModel. Useful for connecting to Reality Data services.
|
|
@@ -116164,6 +116422,45 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116164
116422
|
*/
|
|
116165
116423
|
|
|
116166
116424
|
|
|
116425
|
+
/** The Extensions loading system has the following goals:
|
|
116426
|
+
* 1. Only fetch what is needed when it is required
|
|
116427
|
+
* 1. Load a manifest file
|
|
116428
|
+
* 2. Load the the main module when necessary (usually at an activation event)
|
|
116429
|
+
* 2. Download the extension's files
|
|
116430
|
+
*
|
|
116431
|
+
* 3 ways to load an Extension into the system:
|
|
116432
|
+
*
|
|
116433
|
+
* 1. Load both the Extension Manifest and import the main module of the extension from a local file/package.
|
|
116434
|
+
* 2. A minimum set of properties to get the manifest and javascript from a remote server.
|
|
116435
|
+
* 3. A minimum set of properties to get the manifest and javascript from Bentley's Extension Service.
|
|
116436
|
+
*
|
|
116437
|
+
* An Extension must be added to ExtensionAdmin before it can be executed during activation events.
|
|
116438
|
+
*/
|
|
116439
|
+
/**
|
|
116440
|
+
* Normalizes hostnames for comparison.
|
|
116441
|
+
* @returns The normalized hostname of a URL or bare hostname.
|
|
116442
|
+
* @throws Error if the input cannot be parsed, or does not contain a hostname.
|
|
116443
|
+
*/
|
|
116444
|
+
function normalizeHostname(input) {
|
|
116445
|
+
const invalid = () => new Error(`"${input}" is not a valid URL or hostname (i.e. http://localhost:3000, yourdomain.com, etc.).`);
|
|
116446
|
+
// inputs without a scheme (e.g., https://) will throw an error in the URL constructor
|
|
116447
|
+
const inputWithScheme = /^[a-z][a-z0-9+\-.]*:\/\//i.test(input) ? input : `https://${input}`;
|
|
116448
|
+
let hostname;
|
|
116449
|
+
try {
|
|
116450
|
+
hostname = new URL(inputWithScheme).hostname.toLowerCase();
|
|
116451
|
+
}
|
|
116452
|
+
catch {
|
|
116453
|
+
throw invalid();
|
|
116454
|
+
}
|
|
116455
|
+
// strip only a leading "www." label - removing "www" anywhere would make unrelated
|
|
116456
|
+
// hosts like "wwwexample.com" compare equal to "example.com"
|
|
116457
|
+
const normalized = hostname.startsWith("www.") ? hostname.substring("www.".length) : hostname;
|
|
116458
|
+
// schemes with an optional or opaque host (e.g. file:///, data:) parse successfully but carry no
|
|
116459
|
+
// hostname, and an input of just "www." normalizes to nothing. Neither can identify a host.
|
|
116460
|
+
if (normalized.length === 0)
|
|
116461
|
+
throw invalid();
|
|
116462
|
+
return normalized;
|
|
116463
|
+
}
|
|
116167
116464
|
/** The Extension Admin controls the list of currently loaded Extensions.
|
|
116168
116465
|
*
|
|
116169
116466
|
* @alpha
|
|
@@ -116188,10 +116485,10 @@ class ExtensionAdmin {
|
|
|
116188
116485
|
* @alpha
|
|
116189
116486
|
*/
|
|
116190
116487
|
async addExtension(provider) {
|
|
116191
|
-
if (provider.hostname) {
|
|
116192
|
-
const
|
|
116193
|
-
if (this._hosts.
|
|
116194
|
-
throw new Error(`Error loading extension: ${
|
|
116488
|
+
if (provider.hostname !== undefined && this._hosts.length > 0) {
|
|
116489
|
+
const hostname = normalizeHostname(provider.hostname);
|
|
116490
|
+
if (this._hosts.indexOf(hostname) < 0) {
|
|
116491
|
+
throw new Error(`Error loading extension: ${provider.hostname} was not registered.`);
|
|
116195
116492
|
}
|
|
116196
116493
|
}
|
|
116197
116494
|
try {
|
|
@@ -116222,28 +116519,11 @@ class ExtensionAdmin {
|
|
|
116222
116519
|
* @param hostUrl (string) Accepts both URLs and hostnames (e.g., http://localhost:3000, yourdomain.com, https://www.yourdomain.com, etc.).
|
|
116223
116520
|
*/
|
|
116224
116521
|
registerHost(hostUrl) {
|
|
116225
|
-
const hostname =
|
|
116522
|
+
const hostname = normalizeHostname(hostUrl);
|
|
116226
116523
|
if (this._hosts.indexOf(hostname) < 0) {
|
|
116227
116524
|
this._hosts.push(hostname);
|
|
116228
116525
|
}
|
|
116229
116526
|
}
|
|
116230
|
-
/** Returns the hostname of an input string. Throws an error if input is not a valid hostname (or URL). */
|
|
116231
|
-
getHostName(inputUrl) {
|
|
116232
|
-
// inputs without a protocol (e.g., http://) will throw an error in URL constructor
|
|
116233
|
-
const inputWithProtocol = /(http|https):\/\//.test(inputUrl) ?
|
|
116234
|
-
inputUrl :
|
|
116235
|
-
`https://${inputUrl}`;
|
|
116236
|
-
try {
|
|
116237
|
-
const hostname = new URL(inputWithProtocol).hostname.replace("www.", "");
|
|
116238
|
-
return hostname;
|
|
116239
|
-
}
|
|
116240
|
-
catch (e) {
|
|
116241
|
-
if (e instanceof TypeError) {
|
|
116242
|
-
throw new Error("Argument hostUrl should be a valid URL or hostname (i.e. http://localhost:3000, yourdomain.com, etc.).");
|
|
116243
|
-
}
|
|
116244
|
-
throw e;
|
|
116245
|
-
}
|
|
116246
|
-
}
|
|
116247
116527
|
/** Loops over all enabled Extensions and triggers each one if the provided event is defined. */
|
|
116248
116528
|
async activateExtensionEvents(event) {
|
|
116249
116529
|
for (const extension of this._extensions.values()) {
|
|
@@ -116328,6 +116608,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116328
116608
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
116329
116609
|
/* eslint-disable @itwin/no-internal-barrel-imports */
|
|
116330
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 */
|
|
116331
116612
|
|
|
116332
116613
|
const globalSymbol = Symbol.for("itwin.core.frontend.globals");
|
|
116333
116614
|
if (globalThis[globalSymbol]) {
|
|
@@ -116721,11 +117002,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
116721
117002
|
*/
|
|
116722
117003
|
class RemoteExtensionProvider {
|
|
116723
117004
|
_props;
|
|
116724
|
-
/** The
|
|
117005
|
+
/** The hostname of the server where the extension is hosted. */
|
|
116725
117006
|
hostname;
|
|
116726
117007
|
constructor(_props) {
|
|
116727
117008
|
this._props = _props;
|
|
116728
|
-
this.hostname = new URL(this._props.jsUrl).hostname
|
|
117009
|
+
this.hostname = new URL(this._props.jsUrl).hostname;
|
|
116729
117010
|
}
|
|
116730
117011
|
/**
|
|
116731
117012
|
* Attempts to execute an extension.
|
|
@@ -131614,8 +131895,8 @@ class FrameBuffers {
|
|
|
131614
131895
|
idsAndZComposite;
|
|
131615
131896
|
idsAndAltZComposite;
|
|
131616
131897
|
edlDrawCol;
|
|
131617
|
-
init(textures, depth, depthMS) {
|
|
131618
|
-
if (!this.initPotentialMSFbos(textures, depth, depthMS))
|
|
131898
|
+
init(textures, depth, depthMS, boundColor) {
|
|
131899
|
+
if (!this.initPotentialMSFbos(textures, depth, depthMS, boundColor))
|
|
131619
131900
|
return false;
|
|
131620
131901
|
this.depthAndOrder = _FrameBuffer__WEBPACK_IMPORTED_MODULE_9__.FrameBuffer.create([(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.expectDefined)(textures.depthAndOrder)], depth);
|
|
131621
131902
|
this.hilite = _FrameBuffer__WEBPACK_IMPORTED_MODULE_9__.FrameBuffer.create([(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.expectDefined)(textures.hilite)], depth);
|
|
@@ -131623,7 +131904,7 @@ class FrameBuffers {
|
|
|
131623
131904
|
if (!this.depthAndOrder || !this.hilite || !this.hiliteUsingStencil)
|
|
131624
131905
|
return false;
|
|
131625
131906
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined === this.opaqueAll);
|
|
131626
|
-
if (!this.initPotentialMSMRTFbos(textures, depth, depthMS))
|
|
131907
|
+
if (!this.initPotentialMSMRTFbos(textures, depth, depthMS, boundColor))
|
|
131627
131908
|
return false;
|
|
131628
131909
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== textures.accumulation && undefined !== textures.revealage);
|
|
131629
131910
|
const colors = [textures.accumulation, textures.revealage];
|
|
@@ -131640,9 +131921,8 @@ class FrameBuffers {
|
|
|
131640
131921
|
&& undefined !== this.clearTranslucent
|
|
131641
131922
|
&& undefined !== this.pingPong;
|
|
131642
131923
|
}
|
|
131643
|
-
initPotentialMSFbos(textures, depth, depthMS) {
|
|
131644
|
-
|
|
131645
|
-
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== boundColor && undefined !== textures.color);
|
|
131924
|
+
initPotentialMSFbos(textures, depth, depthMS, boundColor) {
|
|
131925
|
+
;(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== textures.color);
|
|
131646
131926
|
if (undefined === depthMS) {
|
|
131647
131927
|
this.opaqueColor = _FrameBuffer__WEBPACK_IMPORTED_MODULE_9__.FrameBuffer.create([boundColor], depth);
|
|
131648
131928
|
this.opaqueAndCompositeColor = _FrameBuffer__WEBPACK_IMPORTED_MODULE_9__.FrameBuffer.create([textures.color], depth);
|
|
@@ -131655,10 +131935,8 @@ class FrameBuffers {
|
|
|
131655
131935
|
return undefined !== this.opaqueColor
|
|
131656
131936
|
&& undefined !== this.opaqueAndCompositeColor;
|
|
131657
131937
|
}
|
|
131658
|
-
initPotentialMSMRTFbos(textures, depth, depthMs) {
|
|
131659
|
-
|
|
131660
|
-
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== boundColor &&
|
|
131661
|
-
undefined !== textures.color &&
|
|
131938
|
+
initPotentialMSMRTFbos(textures, depth, depthMs, boundColor) {
|
|
131939
|
+
;(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== textures.color &&
|
|
131662
131940
|
undefined !== textures.featureId &&
|
|
131663
131941
|
undefined !== textures.depthAndOrder &&
|
|
131664
131942
|
undefined !== textures.accumulation &&
|
|
@@ -131772,23 +132050,23 @@ class FrameBuffers {
|
|
|
131772
132050
|
this.idsAndAltZComposite = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.idsAndAltZComposite);
|
|
131773
132051
|
}
|
|
131774
132052
|
}
|
|
131775
|
-
enableMultiSampling(textures, depth, depthMS) {
|
|
132053
|
+
enableMultiSampling(textures, depth, depthMS, boundColor) {
|
|
131776
132054
|
this.opaqueColor = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueColor);
|
|
131777
132055
|
this.opaqueAndCompositeColor = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAndCompositeColor);
|
|
131778
|
-
let rVal = this.initPotentialMSFbos(textures, depth, depthMS);
|
|
132056
|
+
let rVal = this.initPotentialMSFbos(textures, depth, depthMS, boundColor);
|
|
131779
132057
|
this.opaqueAll = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAll);
|
|
131780
132058
|
this.opaqueAndCompositeAll = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAndCompositeAll);
|
|
131781
|
-
rVal = this.initPotentialMSMRTFbos(textures, depth, depthMS);
|
|
132059
|
+
rVal = this.initPotentialMSMRTFbos(textures, depth, depthMS, boundColor);
|
|
131782
132060
|
return rVal;
|
|
131783
132061
|
}
|
|
131784
|
-
disableMultiSampling(textures, depth) {
|
|
132062
|
+
disableMultiSampling(textures, depth, boundColor) {
|
|
131785
132063
|
this.opaqueAll = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAll);
|
|
131786
132064
|
this.opaqueAndCompositeAll = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAndCompositeAll);
|
|
131787
|
-
if (!this.initPotentialMSMRTFbos(textures, depth, undefined))
|
|
132065
|
+
if (!this.initPotentialMSMRTFbos(textures, depth, undefined, boundColor))
|
|
131788
132066
|
return false;
|
|
131789
132067
|
this.opaqueColor = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueColor);
|
|
131790
132068
|
this.opaqueAndCompositeColor = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this.opaqueAndCompositeColor);
|
|
131791
|
-
return this.initPotentialMSFbos(textures, depth, undefined);
|
|
132069
|
+
return this.initPotentialMSFbos(textures, depth, undefined, boundColor);
|
|
131792
132070
|
}
|
|
131793
132071
|
get isDisposed() {
|
|
131794
132072
|
return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder
|
|
@@ -132831,7 +133109,7 @@ class Compositor extends SceneCompositor {
|
|
|
132831
133109
|
this._depthMS = undefined;
|
|
132832
133110
|
if (this._depth !== undefined) {
|
|
132833
133111
|
return this._textures.init(this._width, this._height, this._antialiasSamples)
|
|
132834
|
-
&& this._fbos.init(this._textures, this._depth, this._depthMS)
|
|
133112
|
+
&& this._fbos.init(this._textures, this._depth, this._depthMS, (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.expectDefined)(this.target.outputColorTexture))
|
|
132835
133113
|
&& this._geom.init(this._textures)
|
|
132836
133114
|
&& this.eyeDomeLighting.init(this._width, this._height, this._depth);
|
|
132837
133115
|
}
|
|
@@ -132846,11 +133124,11 @@ class Compositor extends SceneCompositor {
|
|
|
132846
133124
|
if (!this._textures.enableMultiSampling(this._width, this._height, this._antialiasSamples))
|
|
132847
133125
|
return false;
|
|
132848
133126
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== this._depth && undefined !== this._depthMS);
|
|
132849
|
-
return this._fbos.enableMultiSampling(this._textures, this._depth, this._depthMS);
|
|
133127
|
+
return this._fbos.enableMultiSampling(this._textures, this._depth, this._depthMS, (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.expectDefined)(this.target.outputColorTexture));
|
|
132850
133128
|
}
|
|
132851
133129
|
disableMultiSampling() {
|
|
132852
133130
|
;(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(undefined !== this._depth);
|
|
132853
|
-
if (!this._fbos.disableMultiSampling(this._textures, this._depth))
|
|
133131
|
+
if (!this._fbos.disableMultiSampling(this._textures, this._depth, (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.expectDefined)(this.target.outputColorTexture)))
|
|
132854
133132
|
return false;
|
|
132855
133133
|
// Want to disable multisampling without deleting & reallocating other stuff.
|
|
132856
133134
|
this._depthMS = (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(this._depthMS);
|
|
@@ -137382,6 +137660,7 @@ class Target extends _render_RenderTarget__WEBPACK_IMPORTED_MODULE_7__.RenderTar
|
|
|
137382
137660
|
this._antialiasSamples = (undefined !== _System__WEBPACK_IMPORTED_MODULE_24__.System.instance.options.antialiasSamples ? _System__WEBPACK_IMPORTED_MODULE_24__.System.instance.options.antialiasSamples : 1);
|
|
137383
137661
|
}
|
|
137384
137662
|
get compositor() { return this._compositor; }
|
|
137663
|
+
get outputColorTexture() { return this._fbo?.getColor(0); }
|
|
137385
137664
|
get isReadPixelsInProgress() { return this._isReadPixelsInProgress; }
|
|
137386
137665
|
get readPixelsSelector() { return this._readPixelsSelector; }
|
|
137387
137666
|
get drawNonLocatable() { return this._drawNonLocatable; }
|
|
@@ -153706,7 +153985,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
153706
153985
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
153707
153986
|
/* harmony export */ OrbitGtTileTree: () => (/* binding */ OrbitGtTileTree),
|
|
153708
153987
|
/* harmony export */ OrbitGtTreeReference: () => (/* binding */ OrbitGtTreeReference),
|
|
153709
|
-
/* harmony export */
|
|
153988
|
+
/* harmony export */ computeVerticalDatumShift: () => (/* binding */ computeVerticalDatumShift),
|
|
153710
153989
|
/* harmony export */ createOrbitGtTileTreeReference: () => (/* binding */ createOrbitGtTileTreeReference)
|
|
153711
153990
|
/* harmony export */ });
|
|
153712
153991
|
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
@@ -154013,20 +154292,44 @@ class OrbitGtTileTree extends _tile_internal__WEBPACK_IMPORTED_MODULE_10__.TileT
|
|
|
154013
154292
|
}
|
|
154014
154293
|
}
|
|
154015
154294
|
/** Computes the vertical shift, in meters along geodetic up, to correctly place a point cloud whose CRS does not
|
|
154016
|
-
*
|
|
154295
|
+
* say whether its heights are ellipsoidal or orthometric. We assume they use the same vertical datum as the iModel.
|
|
154017
154296
|
*
|
|
154018
|
-
* The
|
|
154019
|
-
*
|
|
154020
|
-
*
|
|
154297
|
+
* The caller already placed the point cloud assuming its heights are ellipsoidal
|
|
154298
|
+
* (`heightAsEllipsoidalDbZ`). This function checks whether that assumption needs correcting:
|
|
154299
|
+
*
|
|
154300
|
+
* - If the iModel uses a geoid-based vertical datum (GEOID, NAVD88, or NGVD29), the cloud's
|
|
154301
|
+
* heights are assumed to be geoid-based too, so we compute how far off the ellipsoidal
|
|
154302
|
+
* placement is from the correct (geoid-based) one, and return that difference as a shift.
|
|
154303
|
+
* - If the iModel is ellipsoidal (or the datum is unknown), no correction is needed -
|
|
154304
|
+
* the original ellipsoidal placement was already right, so this returns zero.
|
|
154305
|
+
* - If the shift can't be computed (e.g. conversion fails), also returns zero.
|
|
154021
154306
|
* Exported strictly for tests.
|
|
154022
154307
|
* @internal
|
|
154023
154308
|
*/
|
|
154024
|
-
async function
|
|
154025
|
-
|
|
154026
|
-
|
|
154309
|
+
async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iModel) {
|
|
154310
|
+
if (iModel.noGcsDefined)
|
|
154311
|
+
return 0;
|
|
154312
|
+
// The backend always resolves the vertical datum id. Convert against the iModel's own datum.
|
|
154313
|
+
let source;
|
|
154314
|
+
const verticalDatum = iModel.geographicCoordinateSystem?.verticalCRS?.id;
|
|
154315
|
+
switch (verticalDatum) {
|
|
154316
|
+
// Pair GEOID with a WGS84 horizontal CRS (EPSG:4326).
|
|
154317
|
+
case "GEOID":
|
|
154318
|
+
source = { horizontalCRS: { epsg: 4326 }, verticalCRS: { id: "GEOID" } };
|
|
154319
|
+
break;
|
|
154320
|
+
// Native rejects NAVD88 and NGVD29 with WGS84; pair them with NAD83 (EPSG:4269).
|
|
154321
|
+
case "NAVD88":
|
|
154322
|
+
case "NGVD29":
|
|
154323
|
+
source = { horizontalCRS: { epsg: 4269 }, verticalCRS: { id: verticalDatum } };
|
|
154324
|
+
break;
|
|
154325
|
+
default:
|
|
154326
|
+
return 0;
|
|
154327
|
+
}
|
|
154328
|
+
const converter = iModel.geoServices.getConverter(source);
|
|
154329
|
+
if (undefined === converter)
|
|
154027
154330
|
return 0;
|
|
154028
154331
|
try {
|
|
154029
|
-
const response = await
|
|
154332
|
+
const response = await converter.getIModelCoordinatesFromGeoCoordinates([geoOrigin]);
|
|
154030
154333
|
if (response.iModelCoords[0].s !== _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.Success) {
|
|
154031
154334
|
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_5__.FrontendLoggerCategory.RealityData, `Failed to compute orthometric height correction for point cloud (status ${response.iModelCoords[0].s}); heights will be treated as ellipsoidal`);
|
|
154032
154335
|
return 0;
|
|
@@ -154136,11 +154439,11 @@ async function computeOrthometricVerticalShift(geoOrigin, heightAsEllipsoidalDbZ
|
|
|
154136
154439
|
const response = await geoConverter.getIModelCoordinatesFromGeoCoordinates([geoOrigin]);
|
|
154137
154440
|
if (response.iModelCoords[0].s === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.GeoCoordStatus.Success) {
|
|
154138
154441
|
const dbOriginFromGcs = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Point3d.fromJSON(response.iModelCoords[0].p);
|
|
154139
|
-
// A projected CRS
|
|
154140
|
-
//
|
|
154141
|
-
//
|
|
154442
|
+
// A projected CRS doesn't say whether heights are ellipsoidal or orthometric, so assume they match the iModel.
|
|
154443
|
+
// pointCloudToEcef above treated them as ellipsoidal; shift by the difference if the iModel is geoid-based.
|
|
154444
|
+
// Compound CRSs can't currently be loaded, so they don't get here. If that changes, their heights are orthometric and need separate handling.
|
|
154142
154445
|
if (_itwin_core_orbitgt__WEBPACK_IMPORTED_MODULE_3__.CRSManager.ENGINE.isProjectedCRS(pointCloudCRS)) {
|
|
154143
|
-
const verticalShift = await
|
|
154446
|
+
const verticalShift = await computeVerticalDatumShift(geoOrigin, dbOriginFromGcs.z, iModel);
|
|
154144
154447
|
if (0 !== verticalShift) {
|
|
154145
154448
|
const upVector = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Vector3d.createStartEnd(cartographicOrigin.toEcef(), _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.Cartographic.fromRadians({ longitude: cartographicOrigin.longitude, latitude: cartographicOrigin.latitude, height: cartographicOrigin.height + 1 }).toEcef()).normalize();
|
|
154146
154449
|
if (undefined !== upVector) {
|
|
@@ -161168,8 +161471,13 @@ class FormatsProviderManager {
|
|
|
161168
161471
|
this.onFormatsChanged.raiseEvent(args);
|
|
161169
161472
|
});
|
|
161170
161473
|
}
|
|
161171
|
-
async getFormat(name, system) {
|
|
161172
|
-
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;
|
|
161173
161481
|
}
|
|
161174
161482
|
get formatsProvider() { return this; }
|
|
161175
161483
|
set formatsProvider(formatsProvider) {
|
|
@@ -166315,7 +166623,7 @@ class GltfReader {
|
|
|
166315
166623
|
}
|
|
166316
166624
|
readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
|
|
166317
166625
|
const meshMode = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.asInt(primitive.mode, _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Triangles);
|
|
166318
|
-
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) {
|
|
166319
166627
|
const pointCloud = this.readPointCloud2(primitive, undefined !== featureTable);
|
|
166320
166628
|
if (pointCloud)
|
|
166321
166629
|
return pointCloud;
|
|
@@ -166794,6 +167102,8 @@ class GltfReader {
|
|
|
166794
167102
|
vertexCount = bufferData.count ?? 0;
|
|
166795
167103
|
featureIdBuffers.set(featureIdDesc.attribute, { buffer, stride: bufferView.stride });
|
|
166796
167104
|
}
|
|
167105
|
+
if (featureIdBuffers.size === 0)
|
|
167106
|
+
return undefined;
|
|
166797
167107
|
const itwinFeatureIndices = [];
|
|
166798
167108
|
const vertexPropsMap = new Map();
|
|
166799
167109
|
for (let vertexId = 0; vertexId < vertexCount; vertexId++) {
|
|
@@ -172391,7 +172701,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
172391
172701
|
/* harmony export */ collectMaskRefs: () => (/* reexport safe */ _internal_tile_PrimaryTileTree__WEBPACK_IMPORTED_MODULE_82__.collectMaskRefs),
|
|
172392
172702
|
/* harmony export */ compareMapLayer: () => (/* reexport safe */ _internal_render_webgl_MapLayerParams__WEBPACK_IMPORTED_MODULE_94__.compareMapLayer),
|
|
172393
172703
|
/* harmony export */ computeCesiumTokenTimeoutInterval: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.computeCesiumTokenTimeoutInterval),
|
|
172394
|
-
/* harmony export */
|
|
172704
|
+
/* harmony export */ computeVerticalDatumShift: () => (/* reexport safe */ _internal_tile_OrbitGtTileTree__WEBPACK_IMPORTED_MODULE_84__.computeVerticalDatumShift),
|
|
172395
172705
|
/* harmony export */ createClassifierTileTreeReference: () => (/* reexport safe */ _internal_tile_ClassifierTileTree__WEBPACK_IMPORTED_MODULE_83__.createClassifierTileTreeReference),
|
|
172396
172706
|
/* harmony export */ createDefaultViewFlagOverrides: () => (/* reexport safe */ _internal_tile_ViewFlagOverrides__WEBPACK_IMPORTED_MODULE_0__.createDefaultViewFlagOverrides),
|
|
172397
172707
|
/* harmony export */ createGraphicFromDescription: () => (/* reexport safe */ _internal_tile_ImdlGraphicsCreator__WEBPACK_IMPORTED_MODULE_37__.createGraphicFromDescription),
|
|
@@ -295925,23 +296235,9 @@ class ITwinLocalization {
|
|
|
295925
296235
|
this.i18next.loadNamespaces(name, (err) => {
|
|
295926
296236
|
if (!err)
|
|
295927
296237
|
return resolve();
|
|
295928
|
-
//
|
|
295929
|
-
|
|
295930
|
-
|
|
295931
|
-
// Using Backend from i18next-http-backend, err will be an array of strings of each namespace it tried to read and its locale.
|
|
295932
|
-
// There might be errs for some other namespaces as well as this one. We resolve the promise unless there's an error for each possible locale.
|
|
295933
|
-
let locales = this.getLanguageList().map((thisLocale) => `/${thisLocale}/`);
|
|
295934
|
-
try {
|
|
295935
|
-
for (const thisError of err) {
|
|
295936
|
-
if (typeof thisError === "string")
|
|
295937
|
-
locales = locales.filter((thisLocale) => !thisError.includes(thisLocale));
|
|
295938
|
-
}
|
|
295939
|
-
}
|
|
295940
|
-
catch {
|
|
295941
|
-
locales = [];
|
|
295942
|
-
}
|
|
295943
|
-
// if we removed every locale from the array, it wasn't loaded.
|
|
295944
|
-
if (locales.length === 0)
|
|
296238
|
+
// i18next can return errors from other concurrent namespace loads in this callback.
|
|
296239
|
+
const wasLoaded = this.getLanguageList().some((language) => this.i18next.hasResourceBundle(language, name));
|
|
296240
|
+
if (!wasLoaded)
|
|
295945
296241
|
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_3__.Logger.logError("i18n", `No resources for namespace ${name} could be loaded`);
|
|
295946
296242
|
resolve();
|
|
295947
296243
|
});
|
|
@@ -313764,16 +314060,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
313764
314060
|
/* harmony import */ var _Unit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Unit */ "../../core/quantity/lib/esm/Unit.js");
|
|
313765
314061
|
/* harmony import */ var _internal_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
313766
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");
|
|
313767
314064
|
|
|
313768
314065
|
|
|
313769
314066
|
|
|
314067
|
+
|
|
314068
|
+
const bundledSchema = _assets_Units_json__WEBPACK_IMPORTED_MODULE_3__;
|
|
313770
314069
|
async function resolveState() {
|
|
313771
|
-
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsData)(async () =>
|
|
313772
|
-
|
|
313773
|
-
|
|
313774
|
-
|
|
313775
|
-
return schema;
|
|
313776
|
-
});
|
|
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);
|
|
313777
314074
|
}
|
|
313778
314075
|
/** @internal — test use only. Resets the shared module-level lazy cache. */
|
|
313779
314076
|
function _testResetUnitsCache() {
|
|
@@ -313782,12 +314079,11 @@ function _testResetUnitsCache() {
|
|
|
313782
314079
|
/**
|
|
313783
314080
|
* A `UnitsProvider` backed by the full BIS `Units.ecschema.json` bundled as a JSON asset.
|
|
313784
314081
|
*
|
|
313785
|
-
* The bundled
|
|
313786
|
-
*
|
|
313787
|
-
* 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.
|
|
313788
314084
|
*
|
|
313789
|
-
* If
|
|
313790
|
-
*
|
|
314085
|
+
* If resolving the bundled data fails, the next provider call retries instead of retaining a failed
|
|
314086
|
+
* module-level state.
|
|
313791
314087
|
*
|
|
313792
314088
|
* This is the zero-dependency default for backends, tools, and any frontend that doesn't need
|
|
313793
314089
|
* iModel overrides. Equivalent to calling `createUnitsProvider()` with no arguments.
|
|
@@ -313796,6 +314092,16 @@ function _testResetUnitsCache() {
|
|
|
313796
314092
|
* @beta
|
|
313797
314093
|
*/
|
|
313798
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
|
+
}
|
|
313799
314105
|
// ── UnitsProvider implementation ─────────────────────────────────────
|
|
313800
314106
|
/** Find a unit by its display label, optionally filtering by schema name, phenomenon, and unit system.
|
|
313801
314107
|
* @param unitLabel - The display label to search for (case-insensitive).
|
|
@@ -314227,7 +314533,7 @@ class BaseFormat {
|
|
|
314227
314533
|
_stationBaseFactor; // optional positive integer base factor for station formatting; default is 1
|
|
314228
314534
|
_ratioType; // required if type is ratio; options: oneToN, NToOne, ValueBased, useGreatestCommonDivisor
|
|
314229
314535
|
_ratioFormatType; // defaults to Decimal if not specified
|
|
314230
|
-
_ratioSeparator; // default is ":"; separator
|
|
314536
|
+
_ratioSeparator; // default is ":"; separator string used in ratio formatting
|
|
314231
314537
|
_azimuthBase; // value always clockwise from north
|
|
314232
314538
|
_azimuthBaseUnit; // unit for azimuthBase value
|
|
314233
314539
|
_azimuthCounterClockwise; // if set to true, azimuth values are returned counter-clockwise from base
|
|
@@ -314329,11 +314635,12 @@ class BaseFormat {
|
|
|
314329
314635
|
if (undefined === formatProps.ratioType)
|
|
314330
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.`);
|
|
314331
314637
|
this._ratioType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseRatioType)(formatProps.ratioType, this.name);
|
|
314332
|
-
if (undefined !== formatProps.ratioSeparator) { // optional; default is
|
|
314638
|
+
if (undefined !== formatProps.ratioSeparator) { // optional; default is ":"
|
|
314333
314639
|
if (typeof (formatProps.ratioSeparator) !== "string")
|
|
314334
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'.`);
|
|
314335
|
-
|
|
314336
|
-
|
|
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.`);
|
|
314337
314644
|
this._ratioSeparator = formatProps.ratioSeparator;
|
|
314338
314645
|
}
|
|
314339
314646
|
else {
|
|
@@ -314567,6 +314874,12 @@ class Format extends BaseFormat {
|
|
|
314567
314874
|
await actualFormat.fromJSON(unitsProvider, formatProps);
|
|
314568
314875
|
return actualFormat;
|
|
314569
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
|
+
}
|
|
314570
314883
|
static createFromFullyResolvedJSON(name, formatProps) {
|
|
314571
314884
|
const actualFormat = new Format(name);
|
|
314572
314885
|
actualFormat.fromFullyResolvedJSON(formatProps);
|
|
@@ -314633,52 +314946,50 @@ class Format extends BaseFormat {
|
|
|
314633
314946
|
return baseFormatProps;
|
|
314634
314947
|
}
|
|
314635
314948
|
}
|
|
314636
|
-
|
|
314949
|
+
function validateCompositeUnitInput(name, label) {
|
|
314637
314950
|
if (typeof name !== "string" || (undefined !== label && typeof label !== "string")) {
|
|
314638
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.`);
|
|
314639
314952
|
}
|
|
314640
|
-
|
|
314953
|
+
}
|
|
314954
|
+
function validateResolvedUnit(unit, errorMessage) {
|
|
314641
314955
|
if (!unit || !unit.isValid) {
|
|
314642
|
-
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);
|
|
314643
314957
|
}
|
|
314644
314958
|
return unit;
|
|
314645
314959
|
}
|
|
314646
|
-
|
|
314960
|
+
function getAzimuthBearingUnitName(formatName, jsonObj, key) {
|
|
314647
314961
|
const unitName = jsonObj[key];
|
|
314648
|
-
if (undefined !== unitName) {
|
|
314649
|
-
|
|
314650
|
-
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'.`);
|
|
314651
|
-
}
|
|
314652
|
-
const unit = await provider.findUnitByName(unitName);
|
|
314653
|
-
if (!unit || !unit.isValid) {
|
|
314654
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314655
|
-
}
|
|
314656
|
-
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'.`);
|
|
314657
314964
|
}
|
|
314658
|
-
return
|
|
314965
|
+
return unitName;
|
|
314659
314966
|
}
|
|
314660
|
-
async function
|
|
314661
|
-
|
|
314662
|
-
|
|
314663
|
-
|
|
314664
|
-
|
|
314665
|
-
|
|
314666
|
-
|
|
314667
|
-
|
|
314668
|
-
|
|
314669
|
-
|
|
314670
|
-
|
|
314671
|
-
|
|
314672
|
-
|
|
314673
|
-
|
|
314674
|
-
|
|
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}'.`);
|
|
314675
314990
|
}
|
|
314676
314991
|
}
|
|
314677
|
-
|
|
314678
|
-
const type = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314679
|
-
if (type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314680
|
-
azimuthBaseUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
314681
|
-
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) {
|
|
314682
314993
|
if (!revolutionUnit) {
|
|
314683
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.`);
|
|
314684
314995
|
}
|
|
@@ -314686,6 +314997,8 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314686
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.`);
|
|
314687
314998
|
}
|
|
314688
314999
|
}
|
|
315000
|
+
}
|
|
315001
|
+
function createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit) {
|
|
314689
315002
|
return {
|
|
314690
315003
|
...jsonObj,
|
|
314691
315004
|
azimuthBaseUnit,
|
|
@@ -314696,6 +315009,38 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314696
315009
|
} : undefined,
|
|
314697
315010
|
};
|
|
314698
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
|
+
}
|
|
314699
315044
|
|
|
314700
315045
|
|
|
314701
315046
|
/***/ },
|
|
@@ -315840,15 +316185,12 @@ class FormatterSpec {
|
|
|
315840
316185
|
get azimuthBaseConversion() { return this._azimuthBaseConversion; }
|
|
315841
316186
|
get revolutionConversion() { return this._revolutionConversion; }
|
|
315842
316187
|
/** Build conversion specs for ratio format with 2 composite units (numerator/denominator). */
|
|
315843
|
-
static
|
|
316188
|
+
static *buildRatioUnitConversions(units, persistenceUnit) {
|
|
315844
316189
|
const conversions = [];
|
|
315845
316190
|
const [numeratorUnit, numeratorLabel] = units[0];
|
|
315846
316191
|
const [denominatorUnit, denominatorLabel] = units[1];
|
|
315847
316192
|
// Compute ratio scale: how many numerator units per denominator unit (e.g., IN:FT = 12)
|
|
315848
|
-
const denominatorToNumerator =
|
|
315849
|
-
if (denominatorToNumerator.error) {
|
|
315850
|
-
_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.`);
|
|
315851
|
-
}
|
|
316193
|
+
const denominatorToNumerator = yield* requestConversion(denominatorUnit, numeratorUnit);
|
|
315852
316194
|
const displayRatioScale = denominatorToNumerator.factor;
|
|
315853
316195
|
// Avoid double-scaling: if persistence unit already encodes the display ratio, use factor 1.
|
|
315854
316196
|
// Check by name heuristic (e.g., IN_PER_FT with ratioUnits [IN, FT] → no scaling needed)
|
|
@@ -315864,7 +316206,7 @@ class FormatterSpec {
|
|
|
315864
316206
|
name: `${numeratorUnit.name}_per_${denominatorUnit.name}`,
|
|
315865
316207
|
label: "",
|
|
315866
316208
|
system: numeratorUnit.system,
|
|
315867
|
-
conversion:
|
|
316209
|
+
conversion: createRatioConversionProps(ratioScaleFactor, denominatorToNumerator),
|
|
315868
316210
|
};
|
|
315869
316211
|
conversions.push(ratioConversionSpec);
|
|
315870
316212
|
// Numerator unit for label lookup
|
|
@@ -315887,6 +316229,9 @@ class FormatterSpec {
|
|
|
315887
316229
|
}
|
|
315888
316230
|
/** Get an array of UnitConversionSpecs, one for each unit that is to be shown in the formatted quantity string. */
|
|
315889
316231
|
static async getUnitConversions(format, unitsProvider, inputUnit) {
|
|
316232
|
+
return runAsync(FormatterSpec.buildUnitConversions(format, inputUnit), unitsProvider);
|
|
316233
|
+
}
|
|
316234
|
+
static *buildUnitConversions(format, inputUnit) {
|
|
315890
316235
|
const conversions = [];
|
|
315891
316236
|
let persistenceUnit = inputUnit;
|
|
315892
316237
|
if (!persistenceUnit) {
|
|
@@ -315900,17 +316245,14 @@ class FormatterSpec {
|
|
|
315900
316245
|
}
|
|
315901
316246
|
// Handle 2-unit composite for ratio formats (scale factors)
|
|
315902
316247
|
if (format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio && format.units && format.units.length === 2) {
|
|
315903
|
-
return FormatterSpec.
|
|
316248
|
+
return yield* FormatterSpec.buildRatioUnitConversions(format.units, persistenceUnit);
|
|
315904
316249
|
}
|
|
315905
316250
|
if (format.units) {
|
|
315906
316251
|
let convertFromUnit = inputUnit;
|
|
315907
316252
|
for (const unit of format.units) {
|
|
315908
316253
|
let unitConversion;
|
|
315909
316254
|
if (convertFromUnit) {
|
|
315910
|
-
unitConversion =
|
|
315911
|
-
if (unitConversion.error) {
|
|
315912
|
-
_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.`);
|
|
315913
|
-
}
|
|
316255
|
+
unitConversion = yield* requestConversion(convertFromUnit, unit[0]);
|
|
315914
316256
|
}
|
|
315915
316257
|
else {
|
|
315916
316258
|
unitConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -315941,14 +316283,18 @@ class FormatterSpec {
|
|
|
315941
316283
|
* @see BaseFormat.revolutionUnit
|
|
315942
316284
|
*/
|
|
315943
316285
|
static async create(name, format, unitsProvider, inputUnit) {
|
|
315944
|
-
|
|
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);
|
|
315945
316294
|
let azimuthBaseConversion;
|
|
315946
316295
|
if (format.azimuthBaseUnit !== undefined) {
|
|
315947
316296
|
if (inputUnit !== undefined) {
|
|
315948
|
-
azimuthBaseConversion =
|
|
315949
|
-
if (azimuthBaseConversion.error) {
|
|
315950
|
-
_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.`);
|
|
315951
|
-
}
|
|
316297
|
+
azimuthBaseConversion = yield* requestConversion(format.azimuthBaseUnit, inputUnit);
|
|
315952
316298
|
}
|
|
315953
316299
|
else {
|
|
315954
316300
|
azimuthBaseConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -315957,10 +316303,7 @@ class FormatterSpec {
|
|
|
315957
316303
|
let revolutionConversion;
|
|
315958
316304
|
if (format.revolutionUnit !== undefined) {
|
|
315959
316305
|
if (inputUnit !== undefined) {
|
|
315960
|
-
revolutionConversion =
|
|
315961
|
-
if (revolutionConversion.error) {
|
|
315962
|
-
_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.`);
|
|
315963
|
-
}
|
|
316306
|
+
revolutionConversion = yield* requestConversion(format.revolutionUnit, inputUnit);
|
|
315964
316307
|
}
|
|
315965
316308
|
else {
|
|
315966
316309
|
revolutionConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -315973,6 +316316,30 @@ class FormatterSpec {
|
|
|
315973
316316
|
return _Formatter__WEBPACK_IMPORTED_MODULE_3__.Formatter.formatQuantity(magnitude, this);
|
|
315974
316317
|
}
|
|
315975
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
|
+
}
|
|
315976
316343
|
|
|
315977
316344
|
|
|
315978
316345
|
/***/ },
|
|
@@ -316965,8 +317332,8 @@ class Parser {
|
|
|
316965
317332
|
static parseRatioFormat(inString, spec) {
|
|
316966
317333
|
if (!inString)
|
|
316967
317334
|
return { ok: false, error: ParseError.NoValueOrUnitFoundInString };
|
|
316968
|
-
const separator = spec.format.ratioSeparator
|
|
316969
|
-
const parts = inString.split(separator);
|
|
317335
|
+
const separator = spec.format.ratioSeparator?.split(" ").join("") || ":";
|
|
317336
|
+
const parts = inString.split(separator).map((p) => p.trim());
|
|
316970
317337
|
if (parts.length > 2)
|
|
316971
317338
|
return { ok: false, error: ParseError.UnableToConvertParseTokensToQuantity };
|
|
316972
317339
|
// If the string doesn't contain the expected separator but contains other ratio-like separators,
|
|
@@ -319681,7 +320048,8 @@ const basicUnitConversionData = {
|
|
|
319681
320048
|
__webpack_require__.r(__webpack_exports__);
|
|
319682
320049
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
319683
320050
|
/* harmony export */ _testResetResolvedBasicUnitsDataCache: () => (/* binding */ _testResetResolvedBasicUnitsDataCache),
|
|
319684
|
-
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData)
|
|
320051
|
+
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData),
|
|
320052
|
+
/* harmony export */ resolveBasicUnitsDataSync: () => (/* binding */ resolveBasicUnitsDataSync)
|
|
319685
320053
|
/* harmony export */ });
|
|
319686
320054
|
/* harmony import */ var _BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
319687
320055
|
|
|
@@ -319708,6 +320076,12 @@ async function resolveBasicUnitsData(loadSchema) {
|
|
|
319708
320076
|
}
|
|
319709
320077
|
return _resolvePromise;
|
|
319710
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
|
+
}
|
|
319711
320085
|
/** @internal — test use only. Resets the shared module-level lazy cache.
|
|
319712
320086
|
* This stays in source rather than under a test folder because the public test seam
|
|
319713
320087
|
* `BasicUnitsProvider._testResetUnitsCache()` lives in source and delegates here.
|
|
@@ -324599,9 +324973,9 @@ flatbuffers.ByteBuffer.prototype.createLong = function(low, high) {
|
|
|
324599
324973
|
|
|
324600
324974
|
/***/ },
|
|
324601
324975
|
|
|
324602
|
-
/***/ "../../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"
|
|
324603
324977
|
/*!**********************************************************************************************!*\
|
|
324604
|
-
!*** ../../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 ***!
|
|
324605
324979
|
\**********************************************************************************************/
|
|
324606
324980
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
324607
324981
|
|
|
@@ -324641,7 +325015,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
324641
325015
|
*
|
|
324642
325016
|
* @author Dan Kogai (https://github.com/dankogai)
|
|
324643
325017
|
*/
|
|
324644
|
-
const version = '3.9.
|
|
325018
|
+
const version = '3.9.4';
|
|
324645
325019
|
/**
|
|
324646
325020
|
* @deprecated use lowercase `version`.
|
|
324647
325021
|
*/
|
|
@@ -336955,7 +337329,18 @@ class WMS {
|
|
|
336955
337329
|
(module) {
|
|
336956
337330
|
|
|
336957
337331
|
"use strict";
|
|
336958
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0
|
|
337332
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0","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)"}}}');
|
|
336959
337344
|
|
|
336960
337345
|
/***/ }
|
|
336961
337346
|
|
|
@@ -337050,10 +337435,9 @@ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","versio
|
|
|
337050
337435
|
/******/ // This file contains only the entry chunk.
|
|
337051
337436
|
/******/ // The chunk loading function for additional chunks
|
|
337052
337437
|
/******/ __webpack_require__.e = (chunkId) => {
|
|
337053
|
-
/******/
|
|
337054
|
-
/******/
|
|
337055
|
-
/******/
|
|
337056
|
-
/******/ }, []));
|
|
337438
|
+
/******/ const promises = [];
|
|
337439
|
+
/******/ __webpack_require__.f.j(chunkId, promises);
|
|
337440
|
+
/******/ return Promise.all(promises);
|
|
337057
337441
|
/******/ };
|
|
337058
337442
|
/******/
|
|
337059
337443
|
/******/ /* webpack/runtime/get javascript chunk filename */
|