@itwin/ecschema-metadata 5.10.0-dev.1 → 5.10.0-dev.4
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/cjs/Constants.js.map +1 -1
- package/lib/cjs/DelayedPromise.js.map +1 -1
- package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
- package/lib/cjs/Deserialization/Helper.js.map +1 -1
- package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
- package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/cjs/ECName.js.map +1 -1
- package/lib/cjs/ECObjects.js.map +1 -1
- package/lib/cjs/Exception.js.map +1 -1
- package/lib/cjs/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/cjs/Formatting/SchemaFormatsProvider.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +466 -466
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +309 -309
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Metadata/Class.js.map +1 -1
- package/lib/cjs/Metadata/Constant.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/cjs/Metadata/EntityClass.js.map +1 -1
- package/lib/cjs/Metadata/Enumeration.js.map +1 -1
- package/lib/cjs/Metadata/Format.js.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/cjs/Metadata/Mixin.js.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
- package/lib/cjs/Metadata/Property.js.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
- package/lib/cjs/Metadata/Schema.js.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.js.map +1 -1
- package/lib/cjs/SchemaJsonLocater.js.map +1 -1
- package/lib/cjs/SchemaKey.js.map +1 -1
- package/lib/cjs/SchemaLoader.js.map +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitConverter.d.ts +1 -1
- package/lib/cjs/UnitConversion/UnitConverter.d.ts.map +1 -1
- package/lib/cjs/UnitConversion/UnitConverter.js +4 -4
- package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitTree.d.ts +3 -4
- package/lib/cjs/UnitConversion/UnitTree.d.ts.map +1 -1
- package/lib/cjs/UnitConversion/UnitTree.js +10 -10
- package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +3 -0
- package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js +3 -0
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
- package/lib/cjs/ecschema-metadata.d.ts +0 -1
- package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
- package/lib/cjs/ecschema-metadata.js +0 -1
- package/lib/cjs/ecschema-metadata.js.map +1 -1
- package/lib/cjs/utils/ECClassHierarchy.js.map +1 -1
- package/lib/cjs/utils/SchemaGraph.js.map +1 -1
- package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
- package/lib/esm/Constants.js.map +1 -1
- package/lib/esm/DelayedPromise.js.map +1 -1
- package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
- package/lib/esm/Deserialization/Helper.js.map +1 -1
- package/lib/esm/Deserialization/JsonParser.js.map +1 -1
- package/lib/esm/Deserialization/JsonProps.js.map +1 -1
- package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/esm/Deserialization/XmlParser.js.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/esm/ECName.js.map +1 -1
- package/lib/esm/ECObjects.js.map +1 -1
- package/lib/esm/Exception.js.map +1 -1
- package/lib/esm/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/esm/Formatting/SchemaFormatsProvider.js.map +1 -1
- package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js +466 -466
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js +309 -309
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Metadata/Class.js.map +1 -1
- package/lib/esm/Metadata/Constant.js.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/esm/Metadata/EntityClass.js.map +1 -1
- package/lib/esm/Metadata/Enumeration.js.map +1 -1
- package/lib/esm/Metadata/Format.js.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/esm/Metadata/Mixin.js.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
- package/lib/esm/Metadata/Phenomenon.js.map +1 -1
- package/lib/esm/Metadata/Property.js.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
- package/lib/esm/Metadata/Schema.js.map +1 -1
- package/lib/esm/Metadata/SchemaItem.js.map +1 -1
- package/lib/esm/Metadata/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.js.map +1 -1
- package/lib/esm/SchemaJsonLocater.js.map +1 -1
- package/lib/esm/SchemaKey.js.map +1 -1
- package/lib/esm/SchemaLoader.js.map +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/esm/UnitConversion/UnitConverter.d.ts +1 -1
- package/lib/esm/UnitConversion/UnitConverter.d.ts.map +1 -1
- package/lib/esm/UnitConversion/UnitConverter.js +1 -1
- package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/esm/UnitConversion/UnitTree.d.ts +3 -4
- package/lib/esm/UnitConversion/UnitTree.d.ts.map +1 -1
- package/lib/esm/UnitConversion/UnitTree.js +5 -5
- package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.d.ts +3 -0
- package/lib/esm/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.js +3 -0
- package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/esm/Validation/SchemaWalker.js.map +1 -1
- package/lib/esm/ecschema-metadata.d.ts +0 -1
- package/lib/esm/ecschema-metadata.d.ts.map +1 -1
- package/lib/esm/ecschema-metadata.js +0 -1
- package/lib/esm/ecschema-metadata.js.map +1 -1
- package/lib/esm/utils/ECClassHierarchy.js.map +1 -1
- package/lib/esm/utils/SchemaGraph.js.map +1 -1
- package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
- package/package.json +6 -6
- package/lib/cjs/UnitConversion/Graph.d.ts +0 -35
- package/lib/cjs/UnitConversion/Graph.d.ts.map +0 -1
- package/lib/cjs/UnitConversion/Graph.js +0 -88
- package/lib/cjs/UnitConversion/Graph.js.map +0 -1
- package/lib/cjs/UnitConversion/Parser.d.ts +0 -9
- package/lib/cjs/UnitConversion/Parser.d.ts.map +0 -1
- package/lib/cjs/UnitConversion/Parser.js +0 -44
- package/lib/cjs/UnitConversion/Parser.js.map +0 -1
- package/lib/cjs/UnitConversion/UnitConversion.d.ts +0 -46
- package/lib/cjs/UnitConversion/UnitConversion.d.ts.map +0 -1
- package/lib/cjs/UnitConversion/UnitConversion.js +0 -76
- package/lib/cjs/UnitConversion/UnitConversion.js.map +0 -1
- package/lib/esm/UnitConversion/Graph.d.ts +0 -35
- package/lib/esm/UnitConversion/Graph.d.ts.map +0 -1
- package/lib/esm/UnitConversion/Graph.js +0 -84
- package/lib/esm/UnitConversion/Graph.js.map +0 -1
- package/lib/esm/UnitConversion/Parser.d.ts +0 -9
- package/lib/esm/UnitConversion/Parser.d.ts.map +0 -1
- package/lib/esm/UnitConversion/Parser.js +0 -41
- package/lib/esm/UnitConversion/Parser.js.map +0 -1
- package/lib/esm/UnitConversion/UnitConversion.d.ts +0 -46
- package/lib/esm/UnitConversion/UnitConversion.d.ts.map +0 -1
- package/lib/esm/UnitConversion/UnitConversion.js +0 -72
- package/lib/esm/UnitConversion/UnitConversion.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECClassHierarchy.js","sourceRoot":"","sources":["../../../src/utils/ECClassHierarchy.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"ECClassHierarchy.js","sourceRoot":"","sources":["../../../src/utils/ECClassHierarchy.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { SchemaItemKey } from \"../SchemaKey\";\n\ninterface ClassEntry {\n readonly baseClasses: BaseClassEntry[];\n readonly derivedClasses: SchemaItemKey[];\n}\n\n/** Interface for a Baseclass entry in the hierarchy */\ninterface BaseClassEntry {\n readonly baseClassKey: SchemaItemKey;\n readonly isMixin: boolean;\n}\n\n/**\n * The class hierarchy is a helper class that maintains the relationships between ECClasses and their base classes\n * within a SchemaContext. It allows for efficient retrieval of base and derived classes based on their schema item\n * keys to support lazy loaded classes properly.\n * @internal\n */\nexport class ECClassHierarchy {\n private _hierarchy = new Map<string, ClassEntry>();\n\n private addClassEntry(classKey: SchemaItemKey): ClassEntry {\n const classEntry: ClassEntry = { baseClasses: [], derivedClasses: [] };\n this._hierarchy.set(classKey.fullName, classEntry);\n return classEntry;\n }\n\n public addBaseClass(classKey: SchemaItemKey, baseClassKey: SchemaItemKey, isMixin: boolean = false): void {\n const classEntry = this._hierarchy.get(classKey.fullName) ?? this.addClassEntry(classKey);\n\n if (!classEntry.baseClasses.find((entry) => entry.baseClassKey.matches(baseClassKey))) {\n classEntry.baseClasses.push({ baseClassKey, isMixin });\n }\n\n if (!isMixin) {\n this.addDerivedClass(baseClassKey, classKey);\n }\n }\n\n private addDerivedClass(baseClassKey: SchemaItemKey, classKey: SchemaItemKey): void {\n const baseClassEntry = this._hierarchy.get(baseClassKey.fullName) ?? this.addClassEntry(baseClassKey);\n if (!baseClassEntry.derivedClasses.find((derivedKey) => derivedKey.matches(classKey))) {\n baseClassEntry.derivedClasses.push(classKey);\n }\n }\n\n public removeBaseClass(classKey: SchemaItemKey, baseClassKey: SchemaItemKey): void {\n const classEntry = this._hierarchy.get(classKey.fullName);\n if (!classEntry) {\n return;\n }\n const index = classEntry.baseClasses.findIndex((entry) => entry.baseClassKey.matches(baseClassKey));\n if (index !== -1) {\n classEntry.baseClasses.splice(index, 1);\n }\n\n this.removedDerivedClass(baseClassKey, classKey);\n }\n\n private removedDerivedClass(baseClassKey: SchemaItemKey, classKey: SchemaItemKey): void {\n const baseClassEntry = this._hierarchy.get(baseClassKey.fullName);\n if (!baseClassEntry) {\n return;\n }\n const derivedIndex = baseClassEntry.derivedClasses.findIndex((derivedKey) => derivedKey.matches(classKey));\n if (derivedIndex !== -1) {\n baseClassEntry.derivedClasses.splice(derivedIndex, 1);\n }\n }\n\n public getBaseClassKeys(classKey: SchemaItemKey): ReadonlyArray<SchemaItemKey> {\n const classEntry = this._hierarchy.get(classKey.fullName);\n if (!classEntry) {\n return [];\n }\n\n const baseClassKeys: SchemaItemKey[] = [];\n for (const entry of classEntry.baseClasses) {\n baseClassKeys.push(entry.baseClassKey);\n baseClassKeys.push(...this.getBaseClassKeys(entry.baseClassKey));\n }\n\n return baseClassKeys;\n }\n\n public getDerivedClassKeys(classKey: SchemaItemKey): ReadonlyArray<SchemaItemKey> {\n const classEntry = this._hierarchy.get(classKey.fullName);\n if (!classEntry) {\n return [];\n }\n\n const derivedClassKeys: SchemaItemKey[] = [...classEntry.derivedClasses];\n for (const derivedClassKey of classEntry.derivedClasses) {\n derivedClassKeys.push(...this.getDerivedClassKeys(derivedClassKey));\n }\n return derivedClassKeys;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaGraph.js","sourceRoot":"","sources":["../../../src/utils/SchemaGraph.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"SchemaGraph.js","sourceRoot":"","sources":["../../../src/utils/SchemaGraph.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAG/F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAc7D;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,QAAQ,GAAiB,EAAE,CAAC;IAEpC,gBAAwB,CAAC;IAEjB,IAAI,CAAC,SAAoB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,QAAQ,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxH,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,2BAA2B,MAAM,EAAE,CAAC,CAAC;QACvI,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC5D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,MAAkB,EAAE,OAAY,EAAE,QAAa,EAAE,MAAwB;QAC/F,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACtC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,SAAS,KAAK,SAAS;oBACzB,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,kBAAkB,EAAE,iDAAiD,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;oBAClG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnC,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnC,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU;YACb,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAE1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAkB,EAAE,OAAsB;QAC1E,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAa,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzB,OAAO;YAET,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvB,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;oBACxG,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,oBAAoB,EACzD,2CAA2C,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,kCAAkC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;oBACpM,CAAC;oBACD,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,MAAc;QAC5C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzB,OAAO;YAET,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvB,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;oBAClC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;CAEF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { SchemaContext } from \"../Context\";\nimport { SchemaMatchType } from \"../ECObjects\";\nimport { ECSchemaError, ECSchemaStatus } from \"../Exception\";\nimport { SchemaInfo } from \"../Interfaces\";\nimport { Schema } from \"../Metadata/Schema\";\nimport { SchemaKey } from \"../SchemaKey\";\n\n/**\n * A schema and it's reference that make up part of a schema cycle\n * @internal\n */\nexport interface ReferenceCycle {\n schema: SchemaInfo;\n refSchema: SchemaInfo;\n}\n\n/**\n * Utility class for detecting cyclic references in a Schema graph.\n * @internal\n */\nexport class SchemaGraph {\n private _schemas: SchemaInfo[] = [];\n\n private constructor() { }\n\n private find(schemaKey: SchemaKey) {\n return this._schemas.find((info: SchemaInfo) => info.schemaKey.matches(schemaKey, SchemaMatchType.Latest));\n }\n\n /**\n * Detected cyclic references in a schema and throw an exception if a cycle is found.\n */\n public throwIfCycles() {\n const cycles = this.detectCycles();\n if (cycles) {\n const result = cycles.map((cycle) => `${cycle.schema.schemaKey.name} --> ${cycle.refSchema.schemaKey.name}`).join(\", \");\n throw new ECSchemaError(ECSchemaStatus.InvalidECJson, `Schema '${this._schemas[0].schemaKey.name}' has reference cycles: ${result}`);\n }\n }\n\n /**\n * Detected cyclic references in a schema.\n * @returns An array describing the cycle if there is a cycle or undefined if no cycles found.\n */\n public detectCycles(): ReferenceCycle[] | undefined {\n const visited = {};\n const recStack = {};\n const cycles: ReferenceCycle[] = [];\n\n for (const schema of this._schemas) {\n if (this.detectCycleUtil(schema, visited, recStack, cycles)) {\n return cycles.length > 0 ? cycles : undefined;\n }\n }\n\n return undefined;\n }\n\n private detectCycleUtil(schema: SchemaInfo, visited: any, recStack: any, cycles: ReferenceCycle[]): boolean {\n let cycleFound = false;\n\n if (!visited[schema.schemaKey.name]) {\n visited[schema.schemaKey.name] = true;\n recStack[schema.schemaKey.name] = true;\n\n for (const refKey of schema.references) {\n const refSchema = this.find(refKey.schemaKey);\n if (undefined === refSchema)\n throw new ECSchemaError(ECSchemaStatus.UnableToLoadSchema, `Could not find the schema info for ref schema ${refKey.schemaKey.toString()} for schema ${schema.schemaKey.toString()}`);\n if (!visited[refKey.schemaKey.name] && this.detectCycleUtil(refSchema, visited, recStack, cycles)) {\n cycles.push({ schema, refSchema });\n cycleFound = true;\n } else if (recStack[refKey.schemaKey.name]) {\n cycles.push({ schema, refSchema });\n cycleFound = true;\n }\n }\n }\n if (!cycleFound)\n recStack[schema.schemaKey.name] = false;\n\n return cycleFound;\n }\n\n /**\n * Generates a SchemaGraph for the input schema using the context to find info on referenced schemas. Use the generateGraphSync if you have the fully loaded Schema.\n * @param schema The SchemaInfo to build the graph from\n * @param context The SchemaContext used to locate info on the referenced schemas\n * @returns A SchemaGraph that can be used to detect schema cycles\n */\n public static async generateGraph(schema: SchemaInfo, context: SchemaContext): Promise<SchemaGraph> {\n const graph = new SchemaGraph();\n\n const genGraph = async (s: SchemaInfo) => {\n if (graph.find(s.schemaKey))\n return;\n\n graph._schemas.push(s);\n\n for (const refSchema of s.references) {\n if (!graph.find(refSchema.schemaKey)) {\n const refInfo = await context.getSchemaInfo(refSchema.schemaKey, SchemaMatchType.LatestWriteCompatible);\n if (undefined === refInfo) {\n throw new ECSchemaError(ECSchemaStatus.UnableToLocateSchema,\n `Could not locate the referenced schema, ${refSchema.schemaKey.name}.${refSchema.schemaKey.version.toString()}, of ${s.schemaKey.name} when populating the graph for ${schema.schemaKey.name}`);\n }\n await genGraph(refInfo);\n }\n }\n };\n\n await genGraph(schema);\n return graph;\n }\n\n /**\n * Generates a SchemaGraph for the input schema. Use the generateGraph if you just have schema info.\n * @param schema The Schema to build the graph from.\n * @returns A SchemaGraph that can be used to detect schema cycles\n */\n public static generateGraphSync(schema: Schema): SchemaGraph {\n const graph = new SchemaGraph();\n\n const genGraph = (s: Schema) => {\n if (graph.find(s.schemaKey))\n return;\n\n graph._schemas.push(s);\n\n for (const refSchema of s.references) {\n if (!graph.find(refSchema.schemaKey))\n genGraph(refSchema);\n }\n };\n\n genGraph(schema);\n return graph;\n }\n\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLoadingController.js","sourceRoot":"","sources":["../../../src/utils/SchemaLoadingController.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAC1B,SAAS,CAAC;IACV,WAAW,CAAC;IACZ,QAAQ,CAAiB;IAEjC;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU,CAAC,KAAc;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH;QACE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAsB;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,8FAA8F;YAC9F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"SchemaLoadingController.js","sourceRoot":"","sources":["../../../src/utils/SchemaLoadingController.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAC1B,SAAS,CAAC;IACV,WAAW,CAAC;IACZ,QAAQ,CAAiB;IAEjC;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU,CAAC,KAAc;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH;QACE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAsB;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,8FAA8F;YAC9F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/**\n * Assists in tracking the loading progress of Schemas and SchemaItems. An instance of this\n * class is set in Schema and SchemaItem instances.\n * @internal\n */\nexport class SchemaLoadingController {\n private _complete;\n private _inProgress;\n private _promise?: Promise<void>;\n\n /**\n * Indicates of the Schema or SchemaItem has been fully loaded.\n */\n public get isComplete() {\n return this._complete;\n }\n\n /**\n * Marks that a Schema or SchemaItem has been fully loaded.\n */\n public set isComplete(value: boolean) {\n this._complete = value;\n }\n\n /**\n * Indicates that the loading of a Schema or SchemaItem is still in progress\n */\n public get inProgress() {\n return this._inProgress;\n }\n\n /**\n * Initializes a new SchemaLoadingController instance.\n */\n constructor() {\n this._complete = false;\n this._inProgress = false;\n }\n\n /**\n * Call this method when starting to load a Schema or SchemaItem\n * @param promise The promise used to update the controller state when the promise is resolved.\n */\n public start(promise: Promise<void>) {\n this._inProgress = true;\n promise.then(() => {\n this._complete = true;\n this._inProgress = false;\n }).catch(() => {\n // Errors are handled when wait() is called. This catch prevents unhandled rejection warnings.\n this._complete = false;\n this._inProgress = false;\n });\n this._promise = promise;\n }\n\n /**\n * Waits on the Promise given in SchemaLoadingController.start().\n * @returns A Promised that can be awaited while the Schema or SchemaItem is being loaded.\n */\n public async wait(): Promise<void> {\n if (!this._promise)\n throw new Error(\"LoadingController 'start' must be called before 'wait'\");\n return this._promise;\n }\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/ecschema-metadata",
|
|
3
|
-
"version": "5.10.0-dev.
|
|
3
|
+
"version": "5.10.0-dev.4",
|
|
4
4
|
"description": "ECObjects core concepts in typescript",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/cjs/ecschema-metadata.js",
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"rimraf": "^6.0.1",
|
|
42
42
|
"typescript": "~5.6.2",
|
|
43
43
|
"vitest": "^3.0.6",
|
|
44
|
-
"@itwin/build-tools": "5.10.0-dev.
|
|
45
|
-
"@itwin/core-
|
|
46
|
-
"@itwin/core-
|
|
44
|
+
"@itwin/build-tools": "5.10.0-dev.4",
|
|
45
|
+
"@itwin/core-quantity": "5.10.0-dev.4",
|
|
46
|
+
"@itwin/core-bentley": "5.10.0-dev.4"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@itwin/core-bentley": "5.10.0-dev.
|
|
50
|
-
"@itwin/core-quantity": "5.10.0-dev.
|
|
49
|
+
"@itwin/core-bentley": "5.10.0-dev.4",
|
|
50
|
+
"@itwin/core-quantity": "5.10.0-dev.4"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"build": "npm run -s build:cjs && npm run -s build:esm",
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export declare class Graph<T> {
|
|
3
|
-
private _edgeKeyDelim;
|
|
4
|
-
private _label;
|
|
5
|
-
private _nodeCount;
|
|
6
|
-
private _edgeCount;
|
|
7
|
-
private _nodes;
|
|
8
|
-
private _edgeObjs;
|
|
9
|
-
private _edgeLabels;
|
|
10
|
-
private _outEdges;
|
|
11
|
-
constructor();
|
|
12
|
-
setGraph: (label: string) => Graph<T>;
|
|
13
|
-
graph: () => string;
|
|
14
|
-
nodeCount: () => number;
|
|
15
|
-
nodes: () => string[];
|
|
16
|
-
setNode: (nodeKey: string, nodeValue: T) => void;
|
|
17
|
-
node: (nodeKey: string) => T;
|
|
18
|
-
hasNode: (nodeKey: string) => boolean;
|
|
19
|
-
edgeCount: () => number;
|
|
20
|
-
edges: () => {
|
|
21
|
-
v: string;
|
|
22
|
-
w: string;
|
|
23
|
-
}[];
|
|
24
|
-
setEdge: (v: string, w: string, value: {
|
|
25
|
-
exponent: number;
|
|
26
|
-
}) => void;
|
|
27
|
-
edge: (v: string, w: string) => {
|
|
28
|
-
exponent: number;
|
|
29
|
-
};
|
|
30
|
-
outEdges: (v: string) => {
|
|
31
|
-
v: string;
|
|
32
|
-
w: string;
|
|
33
|
-
}[];
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=Graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/UnitConversion/Graph.ts"],"names":[],"mappings":"AA8CA,gBAAgB;AAChB,qBAAa,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAc;;IASxB,QAAQ,UAAW,MAAM,KAAG,KAAK,CAAC,CAAC,CAAC,CAGzC;IAEK,KAAK,eAEV;IAEK,SAAS,eAEd;IAEK,KAAK,iBAEV;IAEK,OAAO,YAAa,MAAM,aAAa,CAAC,UAQ7C;IAEK,IAAI,YAAa,MAAM,OAE5B;IAEK,OAAO,YAAa,MAAM,aAE/B;IAEK,SAAS,eAEd;IAEK,KAAK;WAnFP,MAAM;WACN,MAAM;QAoFT;IAEK,OAAO,MAAO,MAAM,KAAK,MAAM,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,UAkBjE;IAEK,IAAI,MAAO,MAAM,KAAK,MAAM;kBAjGP,MAAM;MAoGhC;IAEK,QAAQ,MAAO,MAAM;WA5FrB,MAAM;WACN,MAAM;QA+FX;CACH"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
// Following https://github.com/dagrejs/graphlib/blob/master/lib/graph.js
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.Graph = void 0;
|
|
9
|
-
/** @internal */
|
|
10
|
-
class Graph {
|
|
11
|
-
_edgeKeyDelim = "\x01";
|
|
12
|
-
_label = "";
|
|
13
|
-
_nodeCount = 0;
|
|
14
|
-
_edgeCount = 0;
|
|
15
|
-
_nodes;
|
|
16
|
-
_edgeObjs;
|
|
17
|
-
_edgeLabels;
|
|
18
|
-
_outEdges;
|
|
19
|
-
constructor() {
|
|
20
|
-
this._nodes = {};
|
|
21
|
-
this._edgeObjs = {};
|
|
22
|
-
this._edgeLabels = {};
|
|
23
|
-
this._outEdges = {};
|
|
24
|
-
}
|
|
25
|
-
setGraph = (label) => {
|
|
26
|
-
this._label = label;
|
|
27
|
-
return this;
|
|
28
|
-
};
|
|
29
|
-
graph = () => {
|
|
30
|
-
return this._label;
|
|
31
|
-
};
|
|
32
|
-
nodeCount = () => {
|
|
33
|
-
return this._nodeCount;
|
|
34
|
-
};
|
|
35
|
-
nodes = () => {
|
|
36
|
-
return Object.keys(this._nodes);
|
|
37
|
-
};
|
|
38
|
-
setNode = (nodeKey, nodeValue) => {
|
|
39
|
-
if (nodeKey in this._nodes) {
|
|
40
|
-
this._nodes[nodeKey] = nodeValue;
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
this._nodes[nodeKey] = nodeValue;
|
|
44
|
-
this._outEdges[nodeKey] = {};
|
|
45
|
-
++this._nodeCount;
|
|
46
|
-
};
|
|
47
|
-
node = (nodeKey) => {
|
|
48
|
-
return this._nodes[nodeKey];
|
|
49
|
-
};
|
|
50
|
-
hasNode = (nodeKey) => {
|
|
51
|
-
return nodeKey in this._nodes;
|
|
52
|
-
};
|
|
53
|
-
edgeCount = () => {
|
|
54
|
-
return this._edgeCount;
|
|
55
|
-
};
|
|
56
|
-
edges = () => {
|
|
57
|
-
return Object.values(this._edgeObjs);
|
|
58
|
-
};
|
|
59
|
-
setEdge = (v, w, value) => {
|
|
60
|
-
const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;
|
|
61
|
-
if (edgeId in this._edgeLabels) {
|
|
62
|
-
// this._edgeLabels[edgeId] = value;
|
|
63
|
-
// Update exponent, specific to this graph's use case
|
|
64
|
-
this._edgeLabels[edgeId].exponent += value.exponent;
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
this._edgeLabels[edgeId] = value;
|
|
68
|
-
const edgeObj = {
|
|
69
|
-
v,
|
|
70
|
-
w,
|
|
71
|
-
};
|
|
72
|
-
this._edgeObjs[edgeId] = edgeObj;
|
|
73
|
-
// setNode should have ran first, so this.outEdges[v] shouldn't be undefined
|
|
74
|
-
this._outEdges[v][edgeId] = edgeObj;
|
|
75
|
-
this._edgeCount++;
|
|
76
|
-
};
|
|
77
|
-
edge = (v, w) => {
|
|
78
|
-
const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;
|
|
79
|
-
return this._edgeLabels[edgeId];
|
|
80
|
-
};
|
|
81
|
-
outEdges = (v) => {
|
|
82
|
-
const outV = this._outEdges[v];
|
|
83
|
-
const edges = Object.values(outV);
|
|
84
|
-
return edges;
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
exports.Graph = Graph;
|
|
88
|
-
//# sourceMappingURL=Graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../../src/UnitConversion/Graph.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n// Following https://github.com/dagrejs/graphlib/blob/master/lib/graph.js\r\n\r\n/**\r\n * Using generics for nodes - T represents Unit | Constant in our use case\r\n * @internal\r\n */\r\ninterface NodesMap<T> {\r\n [node: string]: T;\r\n}\r\n\r\n/**\r\n * Describe edges based on its node endpoints (v, w)\r\n * @internal\r\n */\r\ninterface EdgeObjsMap {\r\n [edge: string]: {\r\n v: string;\r\n w: string;\r\n };\r\n}\r\n\r\n/**\r\n * Describe edges based on the exponent they carry\r\n * @internal\r\n */\r\ninterface EdgeLabelsMap {\r\n [edge: string]: { exponent: number };\r\n}\r\n\r\n/**\r\n * List each node with outgoing edges in outer map; describe each node's outgoing edges in inner map\r\n * @internal\r\n */\r\ninterface OutEdgesMap {\r\n [node: string]: {\r\n [edges: string]: {\r\n v: string;\r\n w: string;\r\n };\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport class Graph<T> {\r\n private _edgeKeyDelim = \"\\x01\";\r\n private _label = \"\";\r\n private _nodeCount = 0;\r\n private _edgeCount = 0;\r\n private _nodes: NodesMap<T>;\r\n private _edgeObjs: EdgeObjsMap;\r\n private _edgeLabels: EdgeLabelsMap;\r\n private _outEdges: OutEdgesMap;\r\n\r\n constructor() {\r\n this._nodes = {};\r\n this._edgeObjs = {};\r\n this._edgeLabels = {};\r\n this._outEdges = {};\r\n }\r\n\r\n public setGraph = (label: string): Graph<T> => {\r\n this._label = label;\r\n return this;\r\n };\r\n\r\n public graph = () => {\r\n return this._label;\r\n };\r\n\r\n public nodeCount = () => {\r\n return this._nodeCount;\r\n };\r\n\r\n public nodes = () => {\r\n return Object.keys(this._nodes);\r\n };\r\n\r\n public setNode = (nodeKey: string, nodeValue: T) => {\r\n if (nodeKey in this._nodes) {\r\n this._nodes[nodeKey] = nodeValue;\r\n return;\r\n }\r\n this._nodes[nodeKey] = nodeValue;\r\n this._outEdges[nodeKey] = {};\r\n ++this._nodeCount;\r\n };\r\n\r\n public node = (nodeKey: string) => {\r\n return this._nodes[nodeKey];\r\n };\r\n\r\n public hasNode = (nodeKey: string) => {\r\n return nodeKey in this._nodes;\r\n };\r\n\r\n public edgeCount = () => {\r\n return this._edgeCount;\r\n };\r\n\r\n public edges = () => {\r\n return Object.values(this._edgeObjs);\r\n };\r\n\r\n public setEdge = (v: string, w: string, value: { exponent: number }) => {\r\n const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;\r\n if (edgeId in this._edgeLabels) {\r\n // this._edgeLabels[edgeId] = value;\r\n // Update exponent, specific to this graph's use case\r\n this._edgeLabels[edgeId].exponent += value.exponent;\r\n return;\r\n }\r\n\r\n this._edgeLabels[edgeId] = value;\r\n const edgeObj = {\r\n v,\r\n w,\r\n };\r\n this._edgeObjs[edgeId] = edgeObj;\r\n // setNode should have ran first, so this.outEdges[v] shouldn't be undefined\r\n this._outEdges[v][edgeId] = edgeObj;\r\n this._edgeCount++;\r\n };\r\n\r\n public edge = (v: string, w: string) => {\r\n const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;\r\n return this._edgeLabels[edgeId];\r\n };\r\n\r\n public outEdges = (v: string) => {\r\n const outV = this._outEdges[v];\r\n const edges = Object.values(outV);\r\n return edges;\r\n };\r\n}\r\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export interface DefinitionFragment {
|
|
3
|
-
name: string;
|
|
4
|
-
exponent: number;
|
|
5
|
-
constant: boolean;
|
|
6
|
-
}
|
|
7
|
-
/** @internal */
|
|
8
|
-
export declare function parseDefinition(definition: string): Map<string, DefinitionFragment>;
|
|
9
|
-
//# sourceMappingURL=Parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../../src/UnitConversion/Parser.ts"],"names":[],"mappings":"AAeA,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAwBnF"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseDefinition = parseDefinition;
|
|
4
|
-
/*---------------------------------------------------------------------------------------------
|
|
5
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
-
*--------------------------------------------------------------------------------------------*/
|
|
8
|
-
const expressionRgx = /^(([A-Z]\w*:)?([A-Z]\w*|\[([A-Z]\w*:)?[A-Z]\w*\])(\(-?\d+\))?(\*(?!$)|$))+$/i;
|
|
9
|
-
const tokenRgx = /(?:(\[)?((?:[A-Z]\w*:)?[A-Z]\w*)\]?)(?:\((-?\d+)\))?/i;
|
|
10
|
-
const sp = "*";
|
|
11
|
-
/** @internal */
|
|
12
|
-
var Tokens;
|
|
13
|
-
(function (Tokens) {
|
|
14
|
-
Tokens[Tokens["Bracket"] = 1] = "Bracket";
|
|
15
|
-
Tokens[Tokens["Word"] = 2] = "Word";
|
|
16
|
-
Tokens[Tokens["Exponent"] = 3] = "Exponent";
|
|
17
|
-
})(Tokens || (Tokens = {}));
|
|
18
|
-
/** @internal */
|
|
19
|
-
function parseDefinition(definition) {
|
|
20
|
-
const unitMap = new Map();
|
|
21
|
-
if (expressionRgx.test(definition)) {
|
|
22
|
-
for (const unit of definition.split(sp)) {
|
|
23
|
-
const tokens = unit.split(tokenRgx);
|
|
24
|
-
const name = tokens[Tokens.Word];
|
|
25
|
-
const exponent = tokens[Tokens.Exponent] ? Number(tokens[Tokens.Exponent]) : 1;
|
|
26
|
-
const constant = tokens[Tokens.Bracket] !== undefined;
|
|
27
|
-
if (unitMap.has(name)) {
|
|
28
|
-
const currentDefinition = unitMap.get(name);
|
|
29
|
-
if (currentDefinition) {
|
|
30
|
-
currentDefinition.exponent += exponent;
|
|
31
|
-
unitMap.set(name, currentDefinition);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
unitMap.set(name, { name, exponent, constant });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return unitMap;
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
throw new Error("Invalid definition expression.");
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=Parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../src/UnitConversion/Parser.ts"],"names":[],"mappings":";;AAuBA,0CAwBC;AA/CD;;;+FAG+F;AAC/F,MAAM,aAAa,GAAG,8EAA8E,CAAC;AACrG,MAAM,QAAQ,GAAG,uDAAuD,CAAC;AACzE,MAAM,EAAE,GAAG,GAAG,CAAC;AAEf,gBAAgB;AAChB,IAAK,MAIJ;AAJD,WAAK,MAAM;IACT,yCAAW,CAAA;IACX,mCAAQ,CAAA;IACR,2CAAY,CAAA;AACd,CAAC,EAJI,MAAM,KAAN,MAAM,QAIV;AASD,gBAAgB;AAChB,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,OAAO,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE3D,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;YACtD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,iBAAiB,EAAE,CAAC;oBACtB,iBAAiB,CAAC,QAAQ,IAAI,QAAQ,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nconst expressionRgx = /^(([A-Z]\\w*:)?([A-Z]\\w*|\\[([A-Z]\\w*:)?[A-Z]\\w*\\])(\\(-?\\d+\\))?(\\*(?!$)|$))+$/i;\r\nconst tokenRgx = /(?:(\\[)?((?:[A-Z]\\w*:)?[A-Z]\\w*)\\]?)(?:\\((-?\\d+)\\))?/i;\r\nconst sp = \"*\";\r\n\r\n/** @internal */\r\nenum Tokens {\r\n Bracket = 1,\r\n Word = 2,\r\n Exponent = 3,\r\n}\r\n\r\n/** @internal */\r\nexport interface DefinitionFragment {\r\n name: string;\r\n exponent: number;\r\n constant: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport function parseDefinition(definition: string): Map<string, DefinitionFragment> {\r\n const unitMap: Map<string, DefinitionFragment> = new Map();\r\n\r\n if (expressionRgx.test(definition)) {\r\n for (const unit of definition.split(sp)) {\r\n const tokens = unit.split(tokenRgx);\r\n const name = tokens[Tokens.Word];\r\n const exponent = tokens[Tokens.Exponent] ? Number(tokens[Tokens.Exponent]) : 1;\r\n const constant = tokens[Tokens.Bracket] !== undefined;\r\n if (unitMap.has(name)) {\r\n const currentDefinition = unitMap.get(name);\r\n if (currentDefinition) {\r\n currentDefinition.exponent += exponent;\r\n unitMap.set(name, currentDefinition);\r\n }\r\n } else {\r\n unitMap.set(name, { name, exponent, constant });\r\n }\r\n }\r\n\r\n return unitMap;\r\n } else {\r\n throw new Error(\"Invalid definition expression.\");\r\n }\r\n}\r\n"]}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Constant } from "../Metadata/Constant";
|
|
2
|
-
import { Unit } from "../Metadata/Unit";
|
|
3
|
-
/**
|
|
4
|
-
* Class used for storing calculated conversion between two Units [[UnitConverter.calculateConversion]] and converting values from one Unit to another [[UnitConverter.evaluate]]
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export declare class UnitConversion {
|
|
8
|
-
readonly factor: number;
|
|
9
|
-
readonly offset: number;
|
|
10
|
-
constructor(factor?: number, offset?: number);
|
|
11
|
-
/**
|
|
12
|
-
* Converts x using UnitConversion
|
|
13
|
-
* @param x Input magnitude to be converted
|
|
14
|
-
* @returns Output magnitude after conversion
|
|
15
|
-
*/
|
|
16
|
-
evaluate(x: number): number;
|
|
17
|
-
/**
|
|
18
|
-
* Used to invert source's UnitConversion so that it can be composed with target's UnitConversion cleanly
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
inverse(): UnitConversion;
|
|
22
|
-
/**
|
|
23
|
-
* Combines two UnitConversions
|
|
24
|
-
* Used to combine source's UnitConversion and target's UnitConversion for a final UnitConversion that can be evaluated
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
compose(conversion: UnitConversion): UnitConversion;
|
|
28
|
-
/**
|
|
29
|
-
* Multiples two UnitConversions together to calculate factor during reducing
|
|
30
|
-
* @internal
|
|
31
|
-
*/
|
|
32
|
-
multiply(conversion: UnitConversion): UnitConversion;
|
|
33
|
-
/**
|
|
34
|
-
* Raise UnitConversion's factor with power exponent to calculate factor during reducing
|
|
35
|
-
* @internal
|
|
36
|
-
*/
|
|
37
|
-
raise(power: number): UnitConversion;
|
|
38
|
-
/** @internal */
|
|
39
|
-
static identity: UnitConversion;
|
|
40
|
-
/**
|
|
41
|
-
* Returns UnitConversion with unit's numerator and denominator in factor and unit's offset in offset for reducing
|
|
42
|
-
* @internal
|
|
43
|
-
*/
|
|
44
|
-
static from(unitOrConstant: Unit | Constant): UnitConversion;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=UnitConversion.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UnitConversion.d.ts","sourceRoot":"","sources":["../../../src/UnitConversion/UnitConversion.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC;;;GAGG;AACH,qBAAa,cAAc;aACG,MAAM,EAAE,MAAM;aAAwB,MAAM,EAAE,MAAM;gBAApD,MAAM,GAAE,MAAY,EAAkB,MAAM,GAAE,MAAY;IAEtF;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACI,OAAO,IAAI,cAAc;IAKhC;;;;OAIG;IACI,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc;IAO1D;;;OAGG;IACI,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc;IAO3D;;;OAGG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAY3C,gBAAgB;IAChB,OAAc,QAAQ,iBAAwB;IAE9C;;;OAGG;WACW,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,GAAG,cAAc;CAMpE"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnitConversion = void 0;
|
|
4
|
-
const Unit_1 = require("../Metadata/Unit");
|
|
5
|
-
const core_quantity_1 = require("@itwin/core-quantity");
|
|
6
|
-
/**
|
|
7
|
-
* Class used for storing calculated conversion between two Units [[UnitConverter.calculateConversion]] and converting values from one Unit to another [[UnitConverter.evaluate]]
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
class UnitConversion {
|
|
11
|
-
factor;
|
|
12
|
-
offset;
|
|
13
|
-
constructor(factor = 1.0, offset = 0.0) {
|
|
14
|
-
this.factor = factor;
|
|
15
|
-
this.offset = offset;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Converts x using UnitConversion
|
|
19
|
-
* @param x Input magnitude to be converted
|
|
20
|
-
* @returns Output magnitude after conversion
|
|
21
|
-
*/
|
|
22
|
-
evaluate(x) {
|
|
23
|
-
return this.factor * x + this.offset;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Used to invert source's UnitConversion so that it can be composed with target's UnitConversion cleanly
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
inverse() {
|
|
30
|
-
const inverseFactor = 1.0 / this.factor;
|
|
31
|
-
return new UnitConversion(inverseFactor, -this.offset * inverseFactor);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Combines two UnitConversions
|
|
35
|
-
* Used to combine source's UnitConversion and target's UnitConversion for a final UnitConversion that can be evaluated
|
|
36
|
-
* @internal
|
|
37
|
-
*/
|
|
38
|
-
compose(conversion) {
|
|
39
|
-
return new UnitConversion(this.factor * conversion.factor, conversion.factor * this.offset + conversion.offset);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Multiples two UnitConversions together to calculate factor during reducing
|
|
43
|
-
* @internal
|
|
44
|
-
*/
|
|
45
|
-
multiply(conversion) {
|
|
46
|
-
if ((0, core_quantity_1.almostEqual)(conversion.offset, 0.0) && (0, core_quantity_1.almostEqual)(this.offset, 0.0))
|
|
47
|
-
return new UnitConversion(this.factor * conversion.factor, 0.0);
|
|
48
|
-
throw new Error("Cannot multiply two maps with non-zero offsets");
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Raise UnitConversion's factor with power exponent to calculate factor during reducing
|
|
52
|
-
* @internal
|
|
53
|
-
*/
|
|
54
|
-
raise(power) {
|
|
55
|
-
if ((0, core_quantity_1.almostEqual)(power, 1.0))
|
|
56
|
-
return new UnitConversion(this.factor, this.offset);
|
|
57
|
-
else if ((0, core_quantity_1.almostEqual)(power, 0.0))
|
|
58
|
-
return new UnitConversion(1.0, 0.0);
|
|
59
|
-
if ((0, core_quantity_1.almostEqual)(this.offset, 0.0))
|
|
60
|
-
return new UnitConversion(this.factor ** power, 0.0);
|
|
61
|
-
throw new Error("Cannot raise map with non-zero offset");
|
|
62
|
-
}
|
|
63
|
-
/** @internal */
|
|
64
|
-
static identity = new UnitConversion();
|
|
65
|
-
/**
|
|
66
|
-
* Returns UnitConversion with unit's numerator and denominator in factor and unit's offset in offset for reducing
|
|
67
|
-
* @internal
|
|
68
|
-
*/
|
|
69
|
-
static from(unitOrConstant) {
|
|
70
|
-
if (Unit_1.Unit.isUnit(unitOrConstant))
|
|
71
|
-
return new UnitConversion(unitOrConstant.denominator / unitOrConstant.numerator, -unitOrConstant.offset);
|
|
72
|
-
return new UnitConversion(unitOrConstant.denominator / unitOrConstant.numerator, 0.0);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.UnitConversion = UnitConversion;
|
|
76
|
-
//# sourceMappingURL=UnitConversion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UnitConversion.js","sourceRoot":"","sources":["../../../src/UnitConversion/UnitConversion.ts"],"names":[],"mappings":";;;AAKA,2CAAwC;AACxC,wDAAmD;AAEnD;;;GAGG;AACH,MAAa,cAAc;IACG;IAAsC;IAAlE,YAA4B,SAAiB,GAAG,EAAkB,SAAiB,GAAG;QAA1D,WAAM,GAAN,MAAM,CAAc;QAAkB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE1F;;;;OAIG;IACI,QAAQ,CAAC,CAAS;QACvB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,UAA0B;QACvC,OAAO,IAAI,cAAc,CACvB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAC/B,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CACpD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,UAA0B;QACxC,IAAI,IAAA,2BAAW,EAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAA,2BAAW,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;YACtE,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAElE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAa;QACxB,IAAI,IAAA,2BAAW,EAAC,KAAK,EAAE,GAAG,CAAC;YACzB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACjD,IAAI,IAAA,2BAAW,EAAC,KAAK,EAAE,GAAG,CAAC;YAC9B,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,IAAA,2BAAW,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;YAC/B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IAE9C;;;OAGG;IACI,MAAM,CAAC,IAAI,CAAC,cAA+B;QAChD,IAAI,WAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAC7B,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3G,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxF,CAAC;;AAxEH,wCAyEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Constant } from \"../Metadata/Constant\";\r\nimport { Unit } from \"../Metadata/Unit\";\r\nimport { almostEqual } from \"@itwin/core-quantity\";\r\n\r\n/**\r\n * Class used for storing calculated conversion between two Units [[UnitConverter.calculateConversion]] and converting values from one Unit to another [[UnitConverter.evaluate]]\r\n * @internal\r\n */\r\nexport class UnitConversion {\r\n constructor(public readonly factor: number = 1.0, public readonly offset: number = 0.0) {}\r\n\r\n /**\r\n * Converts x using UnitConversion\r\n * @param x Input magnitude to be converted\r\n * @returns Output magnitude after conversion\r\n */\r\n public evaluate(x: number): number {\r\n return this.factor * x + this.offset;\r\n }\r\n\r\n /**\r\n * Used to invert source's UnitConversion so that it can be composed with target's UnitConversion cleanly\r\n * @internal\r\n */\r\n public inverse(): UnitConversion {\r\n const inverseFactor = 1.0 / this.factor;\r\n return new UnitConversion(inverseFactor, -this.offset * inverseFactor);\r\n }\r\n\r\n /**\r\n * Combines two UnitConversions\r\n * Used to combine source's UnitConversion and target's UnitConversion for a final UnitConversion that can be evaluated\r\n * @internal\r\n */\r\n public compose(conversion: UnitConversion): UnitConversion {\r\n return new UnitConversion(\r\n this.factor * conversion.factor,\r\n conversion.factor * this.offset + conversion.offset,\r\n );\r\n }\r\n\r\n /**\r\n * Multiples two UnitConversions together to calculate factor during reducing\r\n * @internal\r\n */\r\n public multiply(conversion: UnitConversion): UnitConversion {\r\n if (almostEqual(conversion.offset, 0.0) && almostEqual(this.offset, 0.0))\r\n return new UnitConversion(this.factor * conversion.factor, 0.0);\r\n\r\n throw new Error(\"Cannot multiply two maps with non-zero offsets\");\r\n }\r\n\r\n /**\r\n * Raise UnitConversion's factor with power exponent to calculate factor during reducing\r\n * @internal\r\n */\r\n public raise(power: number): UnitConversion {\r\n if (almostEqual(power, 1.0))\r\n return new UnitConversion(this.factor, this.offset);\r\n else if (almostEqual(power, 0.0))\r\n return new UnitConversion(1.0, 0.0);\r\n\r\n if (almostEqual(this.offset, 0.0))\r\n return new UnitConversion(this.factor ** power, 0.0);\r\n\r\n throw new Error(\"Cannot raise map with non-zero offset\");\r\n }\r\n\r\n /** @internal */\r\n public static identity = new UnitConversion();\r\n\r\n /**\r\n * Returns UnitConversion with unit's numerator and denominator in factor and unit's offset in offset for reducing\r\n * @internal\r\n */\r\n public static from(unitOrConstant: Unit | Constant): UnitConversion {\r\n if (Unit.isUnit(unitOrConstant))\r\n return new UnitConversion(unitOrConstant.denominator / unitOrConstant.numerator, -unitOrConstant.offset);\r\n\r\n return new UnitConversion(unitOrConstant.denominator / unitOrConstant.numerator, 0.0);\r\n }\r\n}\r\n"]}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/** @internal */
|
|
2
|
-
export declare class Graph<T> {
|
|
3
|
-
private _edgeKeyDelim;
|
|
4
|
-
private _label;
|
|
5
|
-
private _nodeCount;
|
|
6
|
-
private _edgeCount;
|
|
7
|
-
private _nodes;
|
|
8
|
-
private _edgeObjs;
|
|
9
|
-
private _edgeLabels;
|
|
10
|
-
private _outEdges;
|
|
11
|
-
constructor();
|
|
12
|
-
setGraph: (label: string) => Graph<T>;
|
|
13
|
-
graph: () => string;
|
|
14
|
-
nodeCount: () => number;
|
|
15
|
-
nodes: () => string[];
|
|
16
|
-
setNode: (nodeKey: string, nodeValue: T) => void;
|
|
17
|
-
node: (nodeKey: string) => T;
|
|
18
|
-
hasNode: (nodeKey: string) => boolean;
|
|
19
|
-
edgeCount: () => number;
|
|
20
|
-
edges: () => {
|
|
21
|
-
v: string;
|
|
22
|
-
w: string;
|
|
23
|
-
}[];
|
|
24
|
-
setEdge: (v: string, w: string, value: {
|
|
25
|
-
exponent: number;
|
|
26
|
-
}) => void;
|
|
27
|
-
edge: (v: string, w: string) => {
|
|
28
|
-
exponent: number;
|
|
29
|
-
};
|
|
30
|
-
outEdges: (v: string) => {
|
|
31
|
-
v: string;
|
|
32
|
-
w: string;
|
|
33
|
-
}[];
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=Graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.d.ts","sourceRoot":"","sources":["../../../src/UnitConversion/Graph.ts"],"names":[],"mappings":"AA8CA,gBAAgB;AAChB,qBAAa,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAc;;IASxB,QAAQ,UAAW,MAAM,KAAG,KAAK,CAAC,CAAC,CAAC,CAGzC;IAEK,KAAK,eAEV;IAEK,SAAS,eAEd;IAEK,KAAK,iBAEV;IAEK,OAAO,YAAa,MAAM,aAAa,CAAC,UAQ7C;IAEK,IAAI,YAAa,MAAM,OAE5B;IAEK,OAAO,YAAa,MAAM,aAE/B;IAEK,SAAS,eAEd;IAEK,KAAK;WAnFP,MAAM;WACN,MAAM;QAoFT;IAEK,OAAO,MAAO,MAAM,KAAK,MAAM,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,UAkBjE;IAEK,IAAI,MAAO,MAAM,KAAK,MAAM;kBAjGP,MAAM;MAoGhC;IAEK,QAAQ,MAAO,MAAM;WA5FrB,MAAM;WACN,MAAM;QA+FX;CACH"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
// Following https://github.com/dagrejs/graphlib/blob/master/lib/graph.js
|
|
6
|
-
/** @internal */
|
|
7
|
-
export class Graph {
|
|
8
|
-
_edgeKeyDelim = "\x01";
|
|
9
|
-
_label = "";
|
|
10
|
-
_nodeCount = 0;
|
|
11
|
-
_edgeCount = 0;
|
|
12
|
-
_nodes;
|
|
13
|
-
_edgeObjs;
|
|
14
|
-
_edgeLabels;
|
|
15
|
-
_outEdges;
|
|
16
|
-
constructor() {
|
|
17
|
-
this._nodes = {};
|
|
18
|
-
this._edgeObjs = {};
|
|
19
|
-
this._edgeLabels = {};
|
|
20
|
-
this._outEdges = {};
|
|
21
|
-
}
|
|
22
|
-
setGraph = (label) => {
|
|
23
|
-
this._label = label;
|
|
24
|
-
return this;
|
|
25
|
-
};
|
|
26
|
-
graph = () => {
|
|
27
|
-
return this._label;
|
|
28
|
-
};
|
|
29
|
-
nodeCount = () => {
|
|
30
|
-
return this._nodeCount;
|
|
31
|
-
};
|
|
32
|
-
nodes = () => {
|
|
33
|
-
return Object.keys(this._nodes);
|
|
34
|
-
};
|
|
35
|
-
setNode = (nodeKey, nodeValue) => {
|
|
36
|
-
if (nodeKey in this._nodes) {
|
|
37
|
-
this._nodes[nodeKey] = nodeValue;
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
this._nodes[nodeKey] = nodeValue;
|
|
41
|
-
this._outEdges[nodeKey] = {};
|
|
42
|
-
++this._nodeCount;
|
|
43
|
-
};
|
|
44
|
-
node = (nodeKey) => {
|
|
45
|
-
return this._nodes[nodeKey];
|
|
46
|
-
};
|
|
47
|
-
hasNode = (nodeKey) => {
|
|
48
|
-
return nodeKey in this._nodes;
|
|
49
|
-
};
|
|
50
|
-
edgeCount = () => {
|
|
51
|
-
return this._edgeCount;
|
|
52
|
-
};
|
|
53
|
-
edges = () => {
|
|
54
|
-
return Object.values(this._edgeObjs);
|
|
55
|
-
};
|
|
56
|
-
setEdge = (v, w, value) => {
|
|
57
|
-
const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;
|
|
58
|
-
if (edgeId in this._edgeLabels) {
|
|
59
|
-
// this._edgeLabels[edgeId] = value;
|
|
60
|
-
// Update exponent, specific to this graph's use case
|
|
61
|
-
this._edgeLabels[edgeId].exponent += value.exponent;
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this._edgeLabels[edgeId] = value;
|
|
65
|
-
const edgeObj = {
|
|
66
|
-
v,
|
|
67
|
-
w,
|
|
68
|
-
};
|
|
69
|
-
this._edgeObjs[edgeId] = edgeObj;
|
|
70
|
-
// setNode should have ran first, so this.outEdges[v] shouldn't be undefined
|
|
71
|
-
this._outEdges[v][edgeId] = edgeObj;
|
|
72
|
-
this._edgeCount++;
|
|
73
|
-
};
|
|
74
|
-
edge = (v, w) => {
|
|
75
|
-
const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;
|
|
76
|
-
return this._edgeLabels[edgeId];
|
|
77
|
-
};
|
|
78
|
-
outEdges = (v) => {
|
|
79
|
-
const outV = this._outEdges[v];
|
|
80
|
-
const edges = Object.values(outV);
|
|
81
|
-
return edges;
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=Graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../../src/UnitConversion/Graph.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n// Following https://github.com/dagrejs/graphlib/blob/master/lib/graph.js\r\n\r\n/**\r\n * Using generics for nodes - T represents Unit | Constant in our use case\r\n * @internal\r\n */\r\ninterface NodesMap<T> {\r\n [node: string]: T;\r\n}\r\n\r\n/**\r\n * Describe edges based on its node endpoints (v, w)\r\n * @internal\r\n */\r\ninterface EdgeObjsMap {\r\n [edge: string]: {\r\n v: string;\r\n w: string;\r\n };\r\n}\r\n\r\n/**\r\n * Describe edges based on the exponent they carry\r\n * @internal\r\n */\r\ninterface EdgeLabelsMap {\r\n [edge: string]: { exponent: number };\r\n}\r\n\r\n/**\r\n * List each node with outgoing edges in outer map; describe each node's outgoing edges in inner map\r\n * @internal\r\n */\r\ninterface OutEdgesMap {\r\n [node: string]: {\r\n [edges: string]: {\r\n v: string;\r\n w: string;\r\n };\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport class Graph<T> {\r\n private _edgeKeyDelim = \"\\x01\";\r\n private _label = \"\";\r\n private _nodeCount = 0;\r\n private _edgeCount = 0;\r\n private _nodes: NodesMap<T>;\r\n private _edgeObjs: EdgeObjsMap;\r\n private _edgeLabels: EdgeLabelsMap;\r\n private _outEdges: OutEdgesMap;\r\n\r\n constructor() {\r\n this._nodes = {};\r\n this._edgeObjs = {};\r\n this._edgeLabels = {};\r\n this._outEdges = {};\r\n }\r\n\r\n public setGraph = (label: string): Graph<T> => {\r\n this._label = label;\r\n return this;\r\n };\r\n\r\n public graph = () => {\r\n return this._label;\r\n };\r\n\r\n public nodeCount = () => {\r\n return this._nodeCount;\r\n };\r\n\r\n public nodes = () => {\r\n return Object.keys(this._nodes);\r\n };\r\n\r\n public setNode = (nodeKey: string, nodeValue: T) => {\r\n if (nodeKey in this._nodes) {\r\n this._nodes[nodeKey] = nodeValue;\r\n return;\r\n }\r\n this._nodes[nodeKey] = nodeValue;\r\n this._outEdges[nodeKey] = {};\r\n ++this._nodeCount;\r\n };\r\n\r\n public node = (nodeKey: string) => {\r\n return this._nodes[nodeKey];\r\n };\r\n\r\n public hasNode = (nodeKey: string) => {\r\n return nodeKey in this._nodes;\r\n };\r\n\r\n public edgeCount = () => {\r\n return this._edgeCount;\r\n };\r\n\r\n public edges = () => {\r\n return Object.values(this._edgeObjs);\r\n };\r\n\r\n public setEdge = (v: string, w: string, value: { exponent: number }) => {\r\n const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;\r\n if (edgeId in this._edgeLabels) {\r\n // this._edgeLabels[edgeId] = value;\r\n // Update exponent, specific to this graph's use case\r\n this._edgeLabels[edgeId].exponent += value.exponent;\r\n return;\r\n }\r\n\r\n this._edgeLabels[edgeId] = value;\r\n const edgeObj = {\r\n v,\r\n w,\r\n };\r\n this._edgeObjs[edgeId] = edgeObj;\r\n // setNode should have ran first, so this.outEdges[v] shouldn't be undefined\r\n this._outEdges[v][edgeId] = edgeObj;\r\n this._edgeCount++;\r\n };\r\n\r\n public edge = (v: string, w: string) => {\r\n const edgeId = v + this._edgeKeyDelim + w + this._edgeKeyDelim;\r\n return this._edgeLabels[edgeId];\r\n };\r\n\r\n public outEdges = (v: string) => {\r\n const outV = this._outEdges[v];\r\n const edges = Object.values(outV);\r\n return edges;\r\n };\r\n}\r\n"]}
|