@itwin/presentation-core-interop 1.4.0-alpha.6 → 1.4.0-alpha.8

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @itwin/presentation-core-interop
2
2
 
3
+ ## 1.4.0-alpha.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1250](https://github.com/iTwin/presentation/pull/1250): React to changes in `@itwin/presentation-shared`.
8
+ - Updated dependencies:
9
+ - @itwin/presentation-shared@2.0.0-alpha.9
10
+
11
+ ## 1.4.0-alpha.7
12
+
13
+ ### Patch Changes
14
+
15
+ - [#1229](https://github.com/iTwin/presentation/pull/1229): Version bump
16
+ - Updated dependencies:
17
+ - @itwin/presentation-shared@2.0.0-alpha.8
18
+
3
19
  ## 1.4.0-alpha.6
4
20
 
5
21
  ### Patch Changes
@@ -51,6 +67,7 @@
51
67
  ### Minor Changes
52
68
 
53
69
  - [#954](https://github.com/iTwin/presentation/pull/954): Add additional requirements for types in `EC` metadata namespace, whose objects are returned by `ECSchemaProvider`.
70
+
54
71
  - `EC.Schema`, `EC.Class` and `EC.Property` now all have an async `getCustomAttributes()` method that returns an `EC.CustomAttributeSet`, allowing consumers to access custom attributes of these schema items.
55
72
  - `EC.Class` now additionally has these members:
56
73
  - `baseClass: Promise<Class | undefined>`
@@ -65,6 +82,22 @@
65
82
  - Updated dependencies:
66
83
  - @itwin/presentation-shared@2.0.0-alpha.0
67
84
 
85
+ ## 1.3.10
86
+
87
+ ### Patch Changes
88
+
89
+ - [#1242](https://github.com/iTwin/presentation/pull/1242): Bump dependencies.
90
+ - Updated dependencies:
91
+ - @itwin/presentation-shared@1.2.10
92
+
93
+ ## 1.3.9
94
+
95
+ ### Patch Changes
96
+
97
+ - [#1215](https://github.com/iTwin/presentation/pull/1215): Update dependencies.
98
+ - Updated dependencies:
99
+ - @itwin/presentation-shared@1.2.9
100
+
68
101
  ## 1.3.8
69
102
 
70
103
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataInternal.d.ts","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,OAAO,IAAI,SAAS,EAUpB,QAAQ,IAAI,YAAY,EAGxB,MAAM,IAAI,UAAU,EAMrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,CAY5D;AAwBD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAYhF;AA2GD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAqB3F"}
1
+ {"version":3,"file":"MetadataInternal.d.ts","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,OAAO,IAAI,SAAS,EAUpB,QAAQ,IAAI,YAAY,EAGxB,MAAM,IAAI,UAAU,EAMrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,CAY5D;AAwBD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAYhF;AA2GD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAqB3F"}
@@ -43,6 +43,7 @@ exports.createECProperty = createECProperty;
43
43
  const core_bentley_1 = require("@itwin/core-bentley");
44
44
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
45
45
  const ecschemaMetadata = __importStar(require("@itwin/ecschema-metadata"));
46
+ const presentation_shared_1 = require("@itwin/presentation-shared");
46
47
  /** @internal */
47
48
  function createECSchema(schema) {
48
49
  return {
@@ -68,7 +69,7 @@ class ECSchemaItemImpl {
68
69
  return this._schema;
69
70
  }
70
71
  get fullName() {
71
- return this._coreSchemaItem.fullName;
72
+ return (0, presentation_shared_1.normalizeFullClassName)(this._coreSchemaItem.fullName);
72
73
  }
73
74
  get name() {
74
75
  return this._coreSchemaItem.name;
@@ -386,7 +387,19 @@ async function createCustomAttributesSet(coreCustomAttributes) {
386
387
  if (!coreCustomAttributes) {
387
388
  return EMPTY_MAP;
388
389
  }
389
- return coreCustomAttributes;
390
+ return {
391
+ *[Symbol.iterator]() {
392
+ for (const [className, ca] of coreCustomAttributes) {
393
+ const normalizedClassName = (0, presentation_shared_1.normalizeFullClassName)(className);
394
+ yield [normalizedClassName, { ...ca, className: normalizedClassName }];
395
+ }
396
+ },
397
+ get(className) {
398
+ const normalizedClassName = (0, presentation_shared_1.normalizeFullClassName)(className);
399
+ const coreCustomAttribute = coreCustomAttributes.get(normalizedClassName);
400
+ return coreCustomAttribute ? { ...coreCustomAttribute, className: normalizedClassName } : undefined;
401
+ },
402
+ };
390
403
  }
391
404
  class ECRelationshipConstraintImpl {
392
405
  _coreConstraint;
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataInternal.js","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.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 *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { PrimitiveType, SchemaItemType, StrengthDirection } from \"@itwin/ecschema-metadata\";\nimport * as ecschemaMetadata from \"@itwin/ecschema-metadata\";\n\nimport type {\n ECClass as CoreClass,\n EntityClass as CoreEntityClass,\n Enumeration as CoreEnumeration,\n EnumerationArrayProperty as CoreEnumerationArrayProperty,\n EnumerationProperty as CoreEnumerationProperty,\n KindOfQuantity as CoreKindOfQuantity,\n Mixin as CoreMixin,\n NavigationProperty as CoreNavigationProperty,\n PrimitiveArrayProperty as CorePrimitiveArrayProperty,\n PrimitiveProperty as CorePrimitiveProperty,\n Property as CoreProperty,\n RelationshipClass as CoreRelationshipClass,\n RelationshipConstraint as CoreRelationshipConstraint,\n Schema as CoreSchema,\n SchemaItem as CoreSchemaItem,\n StructArrayProperty as CoreStructArrayProperty,\n StructClass as CoreStructClass,\n StructProperty as CoreStructProperty,\n LazyLoadedSchemaItem,\n} from \"@itwin/ecschema-metadata\";\nimport type { EC } from \"@itwin/presentation-shared\";\n\n/** @internal */\nexport function createECSchema(schema: CoreSchema): EC.Schema {\n return {\n name: schema.name,\n async getClass(name) {\n // TODO: replace with `schema.getItem(name, CoreClass)` when itwinjs-core 4.x is dropped\n const item = await schema.getItem(name);\n return item ? createECClass(item as CoreClass, this) : undefined;\n },\n async getCustomAttributes() {\n return createCustomAttributesSet(schema.customAttributes);\n },\n };\n}\n\nabstract class ECSchemaItemImpl<TCoreSchemaItem extends CoreSchemaItem> implements EC.SchemaItem {\n private _schema: EC.Schema;\n protected constructor(\n protected _coreSchemaItem: TCoreSchemaItem,\n schema?: EC.Schema,\n ) {\n this._schema = schema ?? createECSchema(this._coreSchemaItem.schema);\n }\n public get schema() {\n return this._schema;\n }\n public get fullName() {\n return this._coreSchemaItem.fullName;\n }\n public get name() {\n return this._coreSchemaItem.name;\n }\n public get label() {\n return this._coreSchemaItem.label;\n }\n}\n\n/** @internal */\nexport function createECClass(coreClass: CoreClass, schema?: EC.Schema): EC.Class {\n switch (coreClass.schemaItemType) {\n case SchemaItemType.EntityClass:\n return new ECEntityClassImpl(coreClass as CoreEntityClass, schema);\n case SchemaItemType.RelationshipClass:\n return new ECRelationshipClassImpl(coreClass as CoreRelationshipClass, schema);\n case SchemaItemType.StructClass:\n return new ECStructClassImpl(coreClass as CoreStructClass, schema);\n case SchemaItemType.Mixin:\n return new ECMixinImpl(coreClass as CoreMixin, schema);\n }\n throw new Error(`Invalid class type \"${coreClass.schemaItemType}\" for class ${coreClass.fullName}`);\n}\n\nabstract class ECClassImpl<TCoreClass extends CoreClass> extends ECSchemaItemImpl<TCoreClass> implements EC.Class {\n protected constructor(coreClass: TCoreClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public isEntityClass(): this is EC.EntityClass {\n return false;\n }\n public isRelationshipClass(): this is EC.RelationshipClass {\n return false;\n }\n public isStructClass(): this is EC.StructClass {\n return false;\n }\n public isMixin(): this is EC.Mixin {\n return false;\n }\n public get baseClass(): Promise<EC.Class | undefined> {\n return createFromOptionalLazyLoaded(this._coreSchemaItem.baseClass, (coreBaseClass) => createECClass(coreBaseClass, this.schema));\n }\n public async is(classOrClassName: EC.Class | string, schemaName?: string) {\n if (typeof classOrClassName === \"string\") {\n return this._coreSchemaItem.is(classOrClassName, schemaName!);\n }\n return this._coreSchemaItem.is(classOrClassName.name, classOrClassName.schema.name);\n }\n public async getProperty(name: string): Promise<EC.Property | undefined> {\n const coreProperty = await this._coreSchemaItem.getProperty(\n name,\n // TODO: remove this when itwinjs-core 4.x support is dropped.\n // `SchemaFormatsProvider` was introduced around the same time the meaning of this second argument was changed\n // from `includeInherited` to `excludeInherited` - we're using its existence to determine what we need to pass to get\n // inherited properties.\n /* c8 ignore next 2 */\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ecschemaMetadata.SchemaFormatsProvider ? false : true,\n );\n return coreProperty ? createECProperty(coreProperty, this) : undefined;\n }\n public async getProperties(): Promise<Array<EC.Property>> {\n const coreProperties = await this._coreSchemaItem.getProperties();\n const result = new Array<EC.Property>();\n for (const coreProperty of coreProperties) {\n result.push(createECProperty(coreProperty, this));\n }\n return result;\n }\n public async getDerivedClasses(): Promise<EC.Class[]> {\n const coreDerivedClasses = await this._coreSchemaItem.getDerivedClasses();\n return coreDerivedClasses ? coreDerivedClasses.map((coreClass) => createECClass(coreClass, this.schema)) : [];\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreSchemaItem.customAttributes);\n }\n}\n\nclass ECEntityClassImpl extends ECClassImpl<CoreEntityClass> implements EC.EntityClass {\n constructor(coreClass: CoreEntityClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isEntityClass(): this is EC.EntityClass {\n return true;\n }\n}\n\nclass ECRelationshipClassImpl extends ECClassImpl<CoreRelationshipClass> implements EC.RelationshipClass {\n constructor(coreClass: CoreRelationshipClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isRelationshipClass(): this is EC.RelationshipClass {\n return true;\n }\n public get direction() {\n switch (this._coreSchemaItem.strengthDirection) {\n case StrengthDirection.Forward:\n return \"Forward\";\n case StrengthDirection.Backward:\n return \"Backward\";\n }\n }\n public get source() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.source, this.schema);\n }\n public get target() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.target, this.schema);\n }\n}\n\nclass ECStructClassImpl extends ECClassImpl<CoreStructClass> implements EC.StructClass {\n constructor(coreClass: CoreStructClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isStructClass(): this is EC.StructClass {\n return true;\n }\n}\n\nclass ECMixinImpl extends ECClassImpl<CoreMixin> implements EC.Mixin {\n constructor(coreClass: CoreMixin, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isMixin(): this is EC.Mixin {\n return true;\n }\n}\n\n/** @internal */\nexport function createECProperty(coreProperty: CoreProperty, ecClass: EC.Class): EC.Property {\n if (coreProperty.isArray()) {\n if (coreProperty.isPrimitive()) {\n return new ECPrimitivesArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationArrayPropertyImpl(coreProperty, ecClass);\n }\n return new ECStructArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isStruct()) {\n return new ECStructPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isNavigation()) {\n return new ECNavigationPropertyImpl(coreProperty, ecClass);\n }\n assert(coreProperty.isPrimitive());\n return new ECPrimitivePropertyImpl(coreProperty, ecClass);\n}\n\nabstract class ECPropertyImpl<TCoreProperty extends CoreProperty> implements EC.Property {\n protected constructor(\n protected _coreProperty: TCoreProperty,\n protected _class: EC.Class,\n ) {}\n public isArray(): this is EC.ArrayProperty {\n return false;\n }\n public isStruct(): this is EC.StructProperty {\n return false;\n }\n public isPrimitive(): this is EC.PrimitiveProperty {\n return false;\n }\n public isEnumeration(): this is EC.EnumerationProperty {\n return false;\n }\n public isNavigation(): this is EC.NavigationProperty {\n return false;\n }\n public get class() {\n return this._class;\n }\n public get name() {\n return this._coreProperty.name;\n }\n public get label() {\n return this._coreProperty.label;\n }\n public get kindOfQuantity(): Promise<EC.KindOfQuantity | undefined> {\n return createFromOptionalLazyLoaded(this._coreProperty.kindOfQuantity, (coreKindOfQuantity) => new ECKindOfQuantityImpl(coreKindOfQuantity));\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreProperty.customAttributes);\n }\n}\n\nclass ECPrimitivePropertyImpl<TCoreProperty extends CorePrimitiveProperty> extends ECPropertyImpl<TCoreProperty> implements EC.PrimitiveProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isPrimitive(): this is EC.PrimitiveProperty {\n return true;\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n public get primitiveType() {\n switch (this._coreProperty.primitiveType) {\n case PrimitiveType.Binary:\n return \"Binary\";\n case PrimitiveType.Boolean:\n return \"Boolean\";\n case PrimitiveType.DateTime:\n return \"DateTime\";\n case PrimitiveType.Double:\n return \"Double\";\n case PrimitiveType.IGeometry:\n return \"IGeometry\";\n case PrimitiveType.Integer:\n return \"Integer\";\n case PrimitiveType.Long:\n return \"Long\";\n case PrimitiveType.Point2d:\n return \"Point2d\";\n case PrimitiveType.Point3d:\n return \"Point3d\";\n case PrimitiveType.String:\n return \"String\";\n }\n throw new Error(\"Primitive property is not initialized\");\n }\n}\n\nclass ECNavigationPropertyImpl extends ECPropertyImpl<CoreNavigationProperty> implements EC.NavigationProperty {\n constructor(coreProperty: CoreNavigationProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isNavigation(): this is EC.NavigationProperty {\n return true;\n }\n public get relationshipClass() {\n return createFromLazyLoaded(this._coreProperty.relationshipClass, (r) => new ECRelationshipClassImpl(r));\n }\n public get direction() {\n switch (this._coreProperty.direction) {\n case StrengthDirection.Backward:\n return \"Backward\";\n case StrengthDirection.Forward:\n return \"Forward\";\n }\n }\n}\n\nclass ECEnumerationPropertyImpl<TCoreProperty extends CoreEnumerationProperty> extends ECPropertyImpl<TCoreProperty> implements EC.EnumerationProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isEnumeration(): this is EC.EnumerationProperty {\n return true;\n }\n public get enumeration() {\n return createFromOptionalLazyLoaded(this._coreProperty.enumeration, (coreEnumeration) => new ECEnumerationImpl(coreEnumeration));\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n}\n\nclass ECStructPropertyImpl<TCoreProperty extends CoreStructProperty> extends ECPropertyImpl<TCoreProperty> implements EC.StructProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isStruct(): this is EC.StructProperty {\n return true;\n }\n public get structClass(): EC.StructClass {\n return new ECStructClassImpl(this._coreProperty.structClass);\n }\n}\n\nclass ECPrimitivesArrayPropertyImpl extends ECPrimitivePropertyImpl<CorePrimitiveArrayProperty> implements EC.PrimitiveArrayProperty {\n constructor(coreProperty: CorePrimitiveArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECEnumerationArrayPropertyImpl extends ECEnumerationPropertyImpl<CoreEnumerationArrayProperty> implements EC.EnumerationArrayProperty {\n constructor(coreProperty: CoreEnumerationArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECStructArrayPropertyImpl extends ECStructPropertyImpl<CoreStructArrayProperty> implements EC.StructArrayProperty {\n constructor(coreProperty: CoreStructArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nasync function createFromLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource>,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget> {\n return source.then(convert);\n}\n\nasync function createFromOptionalLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource> | undefined,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget | undefined> {\n if (!source) {\n return undefined;\n }\n return source.then(convert);\n}\n\nconst EMPTY_MAP: ReadonlyMap<string, EC.CustomAttribute> = new Map();\nasync function createCustomAttributesSet(coreCustomAttributes: CoreClass[\"customAttributes\"]): Promise<EC.CustomAttributeSet> {\n if (!coreCustomAttributes) {\n return EMPTY_MAP;\n }\n return coreCustomAttributes;\n}\n\nclass ECRelationshipConstraintImpl implements EC.RelationshipConstraint {\n constructor(\n private _coreConstraint: CoreRelationshipConstraint,\n private _schema: EC.Schema,\n ) {}\n public get multiplicity() {\n return this._coreConstraint.multiplicity;\n }\n public get polymorphic() {\n return this._coreConstraint.polymorphic;\n }\n public get abstractConstraint(): Promise<EC.EntityClass | EC.Mixin | EC.RelationshipClass | undefined> {\n return createFromOptionalLazyLoaded(this._coreConstraint.abstractConstraint, (coreConstraint) => createECClass(coreConstraint, this._schema));\n }\n}\n\nclass ECKindOfQuantityImpl extends ECSchemaItemImpl<CoreKindOfQuantity> implements EC.KindOfQuantity {\n constructor(coreKindOfQuantity: CoreKindOfQuantity) {\n super(coreKindOfQuantity);\n }\n}\n\nclass ECEnumerationImpl extends ECSchemaItemImpl<CoreEnumeration> implements EC.Enumeration {\n constructor(coreEnumeration: CoreEnumeration) {\n super(coreEnumeration);\n }\n public get enumerators() {\n return this._coreSchemaItem.enumerators.map((coreEnumerator) => ({ ...coreEnumerator }));\n }\n public get type() {\n switch (this._coreSchemaItem.type) {\n case PrimitiveType.String:\n return \"String\";\n case PrimitiveType.Integer:\n default:\n return \"Number\";\n }\n }\n public get isStrict() {\n return this._coreSchemaItem.isStrict;\n }\n}\n"]}
1
+ {"version":3,"file":"MetadataInternal.js","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.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 *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { PrimitiveType, SchemaItemType, StrengthDirection } from \"@itwin/ecschema-metadata\";\nimport * as ecschemaMetadata from \"@itwin/ecschema-metadata\";\nimport { normalizeFullClassName } from \"@itwin/presentation-shared\";\n\nimport type {\n ECClass as CoreClass,\n EntityClass as CoreEntityClass,\n Enumeration as CoreEnumeration,\n EnumerationArrayProperty as CoreEnumerationArrayProperty,\n EnumerationProperty as CoreEnumerationProperty,\n KindOfQuantity as CoreKindOfQuantity,\n Mixin as CoreMixin,\n NavigationProperty as CoreNavigationProperty,\n PrimitiveArrayProperty as CorePrimitiveArrayProperty,\n PrimitiveProperty as CorePrimitiveProperty,\n Property as CoreProperty,\n RelationshipClass as CoreRelationshipClass,\n RelationshipConstraint as CoreRelationshipConstraint,\n Schema as CoreSchema,\n SchemaItem as CoreSchemaItem,\n StructArrayProperty as CoreStructArrayProperty,\n StructClass as CoreStructClass,\n StructProperty as CoreStructProperty,\n LazyLoadedSchemaItem,\n} from \"@itwin/ecschema-metadata\";\nimport type { EC } from \"@itwin/presentation-shared\";\n\n/** @internal */\nexport function createECSchema(schema: CoreSchema): EC.Schema {\n return {\n name: schema.name,\n async getClass(name) {\n // TODO: replace with `schema.getItem(name, CoreClass)` when itwinjs-core 4.x is dropped\n const item = await schema.getItem(name);\n return item ? createECClass(item as CoreClass, this) : undefined;\n },\n async getCustomAttributes() {\n return createCustomAttributesSet(schema.customAttributes);\n },\n };\n}\n\nabstract class ECSchemaItemImpl<TCoreSchemaItem extends CoreSchemaItem> implements EC.SchemaItem {\n private _schema: EC.Schema;\n protected constructor(\n protected _coreSchemaItem: TCoreSchemaItem,\n schema?: EC.Schema,\n ) {\n this._schema = schema ?? createECSchema(this._coreSchemaItem.schema);\n }\n public get schema() {\n return this._schema;\n }\n public get fullName() {\n return normalizeFullClassName(this._coreSchemaItem.fullName);\n }\n public get name() {\n return this._coreSchemaItem.name;\n }\n public get label() {\n return this._coreSchemaItem.label;\n }\n}\n\n/** @internal */\nexport function createECClass(coreClass: CoreClass, schema?: EC.Schema): EC.Class {\n switch (coreClass.schemaItemType) {\n case SchemaItemType.EntityClass:\n return new ECEntityClassImpl(coreClass as CoreEntityClass, schema);\n case SchemaItemType.RelationshipClass:\n return new ECRelationshipClassImpl(coreClass as CoreRelationshipClass, schema);\n case SchemaItemType.StructClass:\n return new ECStructClassImpl(coreClass as CoreStructClass, schema);\n case SchemaItemType.Mixin:\n return new ECMixinImpl(coreClass as CoreMixin, schema);\n }\n throw new Error(`Invalid class type \"${coreClass.schemaItemType}\" for class ${coreClass.fullName}`);\n}\n\nabstract class ECClassImpl<TCoreClass extends CoreClass> extends ECSchemaItemImpl<TCoreClass> implements EC.Class {\n protected constructor(coreClass: TCoreClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public isEntityClass(): this is EC.EntityClass {\n return false;\n }\n public isRelationshipClass(): this is EC.RelationshipClass {\n return false;\n }\n public isStructClass(): this is EC.StructClass {\n return false;\n }\n public isMixin(): this is EC.Mixin {\n return false;\n }\n public get baseClass(): Promise<EC.Class | undefined> {\n return createFromOptionalLazyLoaded(this._coreSchemaItem.baseClass, (coreBaseClass) => createECClass(coreBaseClass, this.schema));\n }\n public async is(classOrClassName: EC.Class | string, schemaName?: string) {\n if (typeof classOrClassName === \"string\") {\n return this._coreSchemaItem.is(classOrClassName, schemaName!);\n }\n return this._coreSchemaItem.is(classOrClassName.name, classOrClassName.schema.name);\n }\n public async getProperty(name: string): Promise<EC.Property | undefined> {\n const coreProperty = await this._coreSchemaItem.getProperty(\n name,\n // TODO: remove this when itwinjs-core 4.x support is dropped.\n // `SchemaFormatsProvider` was introduced around the same time the meaning of this second argument was changed\n // from `includeInherited` to `excludeInherited` - we're using its existence to determine what we need to pass to get\n // inherited properties.\n /* c8 ignore next 2 */\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ecschemaMetadata.SchemaFormatsProvider ? false : true,\n );\n return coreProperty ? createECProperty(coreProperty, this) : undefined;\n }\n public async getProperties(): Promise<Array<EC.Property>> {\n const coreProperties = await this._coreSchemaItem.getProperties();\n const result = new Array<EC.Property>();\n for (const coreProperty of coreProperties) {\n result.push(createECProperty(coreProperty, this));\n }\n return result;\n }\n public async getDerivedClasses(): Promise<EC.Class[]> {\n const coreDerivedClasses = await this._coreSchemaItem.getDerivedClasses();\n return coreDerivedClasses ? coreDerivedClasses.map((coreClass) => createECClass(coreClass, this.schema)) : [];\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreSchemaItem.customAttributes);\n }\n}\n\nclass ECEntityClassImpl extends ECClassImpl<CoreEntityClass> implements EC.EntityClass {\n constructor(coreClass: CoreEntityClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isEntityClass(): this is EC.EntityClass {\n return true;\n }\n}\n\nclass ECRelationshipClassImpl extends ECClassImpl<CoreRelationshipClass> implements EC.RelationshipClass {\n constructor(coreClass: CoreRelationshipClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isRelationshipClass(): this is EC.RelationshipClass {\n return true;\n }\n public get direction() {\n switch (this._coreSchemaItem.strengthDirection) {\n case StrengthDirection.Forward:\n return \"Forward\";\n case StrengthDirection.Backward:\n return \"Backward\";\n }\n }\n public get source() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.source, this.schema);\n }\n public get target() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.target, this.schema);\n }\n}\n\nclass ECStructClassImpl extends ECClassImpl<CoreStructClass> implements EC.StructClass {\n constructor(coreClass: CoreStructClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isStructClass(): this is EC.StructClass {\n return true;\n }\n}\n\nclass ECMixinImpl extends ECClassImpl<CoreMixin> implements EC.Mixin {\n constructor(coreClass: CoreMixin, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isMixin(): this is EC.Mixin {\n return true;\n }\n}\n\n/** @internal */\nexport function createECProperty(coreProperty: CoreProperty, ecClass: EC.Class): EC.Property {\n if (coreProperty.isArray()) {\n if (coreProperty.isPrimitive()) {\n return new ECPrimitivesArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationArrayPropertyImpl(coreProperty, ecClass);\n }\n return new ECStructArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isStruct()) {\n return new ECStructPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isNavigation()) {\n return new ECNavigationPropertyImpl(coreProperty, ecClass);\n }\n assert(coreProperty.isPrimitive());\n return new ECPrimitivePropertyImpl(coreProperty, ecClass);\n}\n\nabstract class ECPropertyImpl<TCoreProperty extends CoreProperty> implements EC.Property {\n protected constructor(\n protected _coreProperty: TCoreProperty,\n protected _class: EC.Class,\n ) {}\n public isArray(): this is EC.ArrayProperty {\n return false;\n }\n public isStruct(): this is EC.StructProperty {\n return false;\n }\n public isPrimitive(): this is EC.PrimitiveProperty {\n return false;\n }\n public isEnumeration(): this is EC.EnumerationProperty {\n return false;\n }\n public isNavigation(): this is EC.NavigationProperty {\n return false;\n }\n public get class() {\n return this._class;\n }\n public get name() {\n return this._coreProperty.name;\n }\n public get label() {\n return this._coreProperty.label;\n }\n public get kindOfQuantity(): Promise<EC.KindOfQuantity | undefined> {\n return createFromOptionalLazyLoaded(this._coreProperty.kindOfQuantity, (coreKindOfQuantity) => new ECKindOfQuantityImpl(coreKindOfQuantity));\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreProperty.customAttributes);\n }\n}\n\nclass ECPrimitivePropertyImpl<TCoreProperty extends CorePrimitiveProperty> extends ECPropertyImpl<TCoreProperty> implements EC.PrimitiveProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isPrimitive(): this is EC.PrimitiveProperty {\n return true;\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n public get primitiveType() {\n switch (this._coreProperty.primitiveType) {\n case PrimitiveType.Binary:\n return \"Binary\";\n case PrimitiveType.Boolean:\n return \"Boolean\";\n case PrimitiveType.DateTime:\n return \"DateTime\";\n case PrimitiveType.Double:\n return \"Double\";\n case PrimitiveType.IGeometry:\n return \"IGeometry\";\n case PrimitiveType.Integer:\n return \"Integer\";\n case PrimitiveType.Long:\n return \"Long\";\n case PrimitiveType.Point2d:\n return \"Point2d\";\n case PrimitiveType.Point3d:\n return \"Point3d\";\n case PrimitiveType.String:\n return \"String\";\n }\n throw new Error(\"Primitive property is not initialized\");\n }\n}\n\nclass ECNavigationPropertyImpl extends ECPropertyImpl<CoreNavigationProperty> implements EC.NavigationProperty {\n constructor(coreProperty: CoreNavigationProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isNavigation(): this is EC.NavigationProperty {\n return true;\n }\n public get relationshipClass() {\n return createFromLazyLoaded(this._coreProperty.relationshipClass, (r) => new ECRelationshipClassImpl(r));\n }\n public get direction() {\n switch (this._coreProperty.direction) {\n case StrengthDirection.Backward:\n return \"Backward\";\n case StrengthDirection.Forward:\n return \"Forward\";\n }\n }\n}\n\nclass ECEnumerationPropertyImpl<TCoreProperty extends CoreEnumerationProperty> extends ECPropertyImpl<TCoreProperty> implements EC.EnumerationProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isEnumeration(): this is EC.EnumerationProperty {\n return true;\n }\n public get enumeration() {\n return createFromOptionalLazyLoaded(this._coreProperty.enumeration, (coreEnumeration) => new ECEnumerationImpl(coreEnumeration));\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n}\n\nclass ECStructPropertyImpl<TCoreProperty extends CoreStructProperty> extends ECPropertyImpl<TCoreProperty> implements EC.StructProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isStruct(): this is EC.StructProperty {\n return true;\n }\n public get structClass(): EC.StructClass {\n return new ECStructClassImpl(this._coreProperty.structClass);\n }\n}\n\nclass ECPrimitivesArrayPropertyImpl extends ECPrimitivePropertyImpl<CorePrimitiveArrayProperty> implements EC.PrimitiveArrayProperty {\n constructor(coreProperty: CorePrimitiveArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECEnumerationArrayPropertyImpl extends ECEnumerationPropertyImpl<CoreEnumerationArrayProperty> implements EC.EnumerationArrayProperty {\n constructor(coreProperty: CoreEnumerationArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECStructArrayPropertyImpl extends ECStructPropertyImpl<CoreStructArrayProperty> implements EC.StructArrayProperty {\n constructor(coreProperty: CoreStructArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nasync function createFromLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource>,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget> {\n return source.then(convert);\n}\n\nasync function createFromOptionalLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource> | undefined,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget | undefined> {\n if (!source) {\n return undefined;\n }\n return source.then(convert);\n}\n\nconst EMPTY_MAP: ReadonlyMap<EC.FullClassName, EC.CustomAttribute> = new Map();\nasync function createCustomAttributesSet(coreCustomAttributes: CoreClass[\"customAttributes\"]): Promise<EC.CustomAttributeSet> {\n if (!coreCustomAttributes) {\n return EMPTY_MAP;\n }\n return {\n *[Symbol.iterator]() {\n for (const [className, ca] of coreCustomAttributes) {\n const normalizedClassName = normalizeFullClassName(className);\n yield [normalizedClassName, { ...ca, className: normalizedClassName }];\n }\n },\n get(className: EC.FullClassName) {\n const normalizedClassName = normalizeFullClassName(className);\n const coreCustomAttribute = coreCustomAttributes.get(normalizedClassName);\n return coreCustomAttribute ? { ...coreCustomAttribute, className: normalizedClassName } : undefined;\n },\n };\n}\n\nclass ECRelationshipConstraintImpl implements EC.RelationshipConstraint {\n constructor(\n private _coreConstraint: CoreRelationshipConstraint,\n private _schema: EC.Schema,\n ) {}\n public get multiplicity() {\n return this._coreConstraint.multiplicity;\n }\n public get polymorphic() {\n return this._coreConstraint.polymorphic;\n }\n public get abstractConstraint(): Promise<EC.EntityClass | EC.Mixin | EC.RelationshipClass | undefined> {\n return createFromOptionalLazyLoaded(this._coreConstraint.abstractConstraint, (coreConstraint) => createECClass(coreConstraint, this._schema));\n }\n}\n\nclass ECKindOfQuantityImpl extends ECSchemaItemImpl<CoreKindOfQuantity> implements EC.KindOfQuantity {\n constructor(coreKindOfQuantity: CoreKindOfQuantity) {\n super(coreKindOfQuantity);\n }\n}\n\nclass ECEnumerationImpl extends ECSchemaItemImpl<CoreEnumeration> implements EC.Enumeration {\n constructor(coreEnumeration: CoreEnumeration) {\n super(coreEnumeration);\n }\n public get enumerators() {\n return this._coreSchemaItem.enumerators.map((coreEnumerator) => ({ ...coreEnumerator }));\n }\n public get type() {\n switch (this._coreSchemaItem.type) {\n case PrimitiveType.String:\n return \"String\";\n case PrimitiveType.Integer:\n default:\n return \"Number\";\n }\n }\n public get isStrict() {\n return this._coreSchemaItem.isStrict;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataInternal.d.ts","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,OAAO,IAAI,SAAS,EAUpB,QAAQ,IAAI,YAAY,EAGxB,MAAM,IAAI,UAAU,EAMrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,CAY5D;AAwBD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAYhF;AA2GD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAqB3F"}
1
+ {"version":3,"file":"MetadataInternal.d.ts","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,OAAO,IAAI,SAAS,EAUpB,QAAQ,IAAI,YAAY,EAGxB,MAAM,IAAI,UAAU,EAMrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,CAY5D;AAwBD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAYhF;AA2GD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,CAqB3F"}
@@ -5,6 +5,7 @@
5
5
  import { assert } from "@itwin/core-bentley";
6
6
  import { PrimitiveType, SchemaItemType, StrengthDirection } from "@itwin/ecschema-metadata";
7
7
  import * as ecschemaMetadata from "@itwin/ecschema-metadata";
8
+ import { normalizeFullClassName } from "@itwin/presentation-shared";
8
9
  /** @internal */
9
10
  export function createECSchema(schema) {
10
11
  return {
@@ -30,7 +31,7 @@ class ECSchemaItemImpl {
30
31
  return this._schema;
31
32
  }
32
33
  get fullName() {
33
- return this._coreSchemaItem.fullName;
34
+ return normalizeFullClassName(this._coreSchemaItem.fullName);
34
35
  }
35
36
  get name() {
36
37
  return this._coreSchemaItem.name;
@@ -348,7 +349,19 @@ async function createCustomAttributesSet(coreCustomAttributes) {
348
349
  if (!coreCustomAttributes) {
349
350
  return EMPTY_MAP;
350
351
  }
351
- return coreCustomAttributes;
352
+ return {
353
+ *[Symbol.iterator]() {
354
+ for (const [className, ca] of coreCustomAttributes) {
355
+ const normalizedClassName = normalizeFullClassName(className);
356
+ yield [normalizedClassName, { ...ca, className: normalizedClassName }];
357
+ }
358
+ },
359
+ get(className) {
360
+ const normalizedClassName = normalizeFullClassName(className);
361
+ const coreCustomAttribute = coreCustomAttributes.get(normalizedClassName);
362
+ return coreCustomAttribute ? { ...coreCustomAttribute, className: normalizedClassName } : undefined;
363
+ },
364
+ };
352
365
  }
353
366
  class ECRelationshipConstraintImpl {
354
367
  _coreConstraint;
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataInternal.js","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.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 *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { PrimitiveType, SchemaItemType, StrengthDirection } from \"@itwin/ecschema-metadata\";\nimport * as ecschemaMetadata from \"@itwin/ecschema-metadata\";\n\nimport type {\n ECClass as CoreClass,\n EntityClass as CoreEntityClass,\n Enumeration as CoreEnumeration,\n EnumerationArrayProperty as CoreEnumerationArrayProperty,\n EnumerationProperty as CoreEnumerationProperty,\n KindOfQuantity as CoreKindOfQuantity,\n Mixin as CoreMixin,\n NavigationProperty as CoreNavigationProperty,\n PrimitiveArrayProperty as CorePrimitiveArrayProperty,\n PrimitiveProperty as CorePrimitiveProperty,\n Property as CoreProperty,\n RelationshipClass as CoreRelationshipClass,\n RelationshipConstraint as CoreRelationshipConstraint,\n Schema as CoreSchema,\n SchemaItem as CoreSchemaItem,\n StructArrayProperty as CoreStructArrayProperty,\n StructClass as CoreStructClass,\n StructProperty as CoreStructProperty,\n LazyLoadedSchemaItem,\n} from \"@itwin/ecschema-metadata\";\nimport type { EC } from \"@itwin/presentation-shared\";\n\n/** @internal */\nexport function createECSchema(schema: CoreSchema): EC.Schema {\n return {\n name: schema.name,\n async getClass(name) {\n // TODO: replace with `schema.getItem(name, CoreClass)` when itwinjs-core 4.x is dropped\n const item = await schema.getItem(name);\n return item ? createECClass(item as CoreClass, this) : undefined;\n },\n async getCustomAttributes() {\n return createCustomAttributesSet(schema.customAttributes);\n },\n };\n}\n\nabstract class ECSchemaItemImpl<TCoreSchemaItem extends CoreSchemaItem> implements EC.SchemaItem {\n private _schema: EC.Schema;\n protected constructor(\n protected _coreSchemaItem: TCoreSchemaItem,\n schema?: EC.Schema,\n ) {\n this._schema = schema ?? createECSchema(this._coreSchemaItem.schema);\n }\n public get schema() {\n return this._schema;\n }\n public get fullName() {\n return this._coreSchemaItem.fullName;\n }\n public get name() {\n return this._coreSchemaItem.name;\n }\n public get label() {\n return this._coreSchemaItem.label;\n }\n}\n\n/** @internal */\nexport function createECClass(coreClass: CoreClass, schema?: EC.Schema): EC.Class {\n switch (coreClass.schemaItemType) {\n case SchemaItemType.EntityClass:\n return new ECEntityClassImpl(coreClass as CoreEntityClass, schema);\n case SchemaItemType.RelationshipClass:\n return new ECRelationshipClassImpl(coreClass as CoreRelationshipClass, schema);\n case SchemaItemType.StructClass:\n return new ECStructClassImpl(coreClass as CoreStructClass, schema);\n case SchemaItemType.Mixin:\n return new ECMixinImpl(coreClass as CoreMixin, schema);\n }\n throw new Error(`Invalid class type \"${coreClass.schemaItemType}\" for class ${coreClass.fullName}`);\n}\n\nabstract class ECClassImpl<TCoreClass extends CoreClass> extends ECSchemaItemImpl<TCoreClass> implements EC.Class {\n protected constructor(coreClass: TCoreClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public isEntityClass(): this is EC.EntityClass {\n return false;\n }\n public isRelationshipClass(): this is EC.RelationshipClass {\n return false;\n }\n public isStructClass(): this is EC.StructClass {\n return false;\n }\n public isMixin(): this is EC.Mixin {\n return false;\n }\n public get baseClass(): Promise<EC.Class | undefined> {\n return createFromOptionalLazyLoaded(this._coreSchemaItem.baseClass, (coreBaseClass) => createECClass(coreBaseClass, this.schema));\n }\n public async is(classOrClassName: EC.Class | string, schemaName?: string) {\n if (typeof classOrClassName === \"string\") {\n return this._coreSchemaItem.is(classOrClassName, schemaName!);\n }\n return this._coreSchemaItem.is(classOrClassName.name, classOrClassName.schema.name);\n }\n public async getProperty(name: string): Promise<EC.Property | undefined> {\n const coreProperty = await this._coreSchemaItem.getProperty(\n name,\n // TODO: remove this when itwinjs-core 4.x support is dropped.\n // `SchemaFormatsProvider` was introduced around the same time the meaning of this second argument was changed\n // from `includeInherited` to `excludeInherited` - we're using its existence to determine what we need to pass to get\n // inherited properties.\n /* c8 ignore next 2 */\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ecschemaMetadata.SchemaFormatsProvider ? false : true,\n );\n return coreProperty ? createECProperty(coreProperty, this) : undefined;\n }\n public async getProperties(): Promise<Array<EC.Property>> {\n const coreProperties = await this._coreSchemaItem.getProperties();\n const result = new Array<EC.Property>();\n for (const coreProperty of coreProperties) {\n result.push(createECProperty(coreProperty, this));\n }\n return result;\n }\n public async getDerivedClasses(): Promise<EC.Class[]> {\n const coreDerivedClasses = await this._coreSchemaItem.getDerivedClasses();\n return coreDerivedClasses ? coreDerivedClasses.map((coreClass) => createECClass(coreClass, this.schema)) : [];\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreSchemaItem.customAttributes);\n }\n}\n\nclass ECEntityClassImpl extends ECClassImpl<CoreEntityClass> implements EC.EntityClass {\n constructor(coreClass: CoreEntityClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isEntityClass(): this is EC.EntityClass {\n return true;\n }\n}\n\nclass ECRelationshipClassImpl extends ECClassImpl<CoreRelationshipClass> implements EC.RelationshipClass {\n constructor(coreClass: CoreRelationshipClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isRelationshipClass(): this is EC.RelationshipClass {\n return true;\n }\n public get direction() {\n switch (this._coreSchemaItem.strengthDirection) {\n case StrengthDirection.Forward:\n return \"Forward\";\n case StrengthDirection.Backward:\n return \"Backward\";\n }\n }\n public get source() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.source, this.schema);\n }\n public get target() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.target, this.schema);\n }\n}\n\nclass ECStructClassImpl extends ECClassImpl<CoreStructClass> implements EC.StructClass {\n constructor(coreClass: CoreStructClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isStructClass(): this is EC.StructClass {\n return true;\n }\n}\n\nclass ECMixinImpl extends ECClassImpl<CoreMixin> implements EC.Mixin {\n constructor(coreClass: CoreMixin, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isMixin(): this is EC.Mixin {\n return true;\n }\n}\n\n/** @internal */\nexport function createECProperty(coreProperty: CoreProperty, ecClass: EC.Class): EC.Property {\n if (coreProperty.isArray()) {\n if (coreProperty.isPrimitive()) {\n return new ECPrimitivesArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationArrayPropertyImpl(coreProperty, ecClass);\n }\n return new ECStructArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isStruct()) {\n return new ECStructPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isNavigation()) {\n return new ECNavigationPropertyImpl(coreProperty, ecClass);\n }\n assert(coreProperty.isPrimitive());\n return new ECPrimitivePropertyImpl(coreProperty, ecClass);\n}\n\nabstract class ECPropertyImpl<TCoreProperty extends CoreProperty> implements EC.Property {\n protected constructor(\n protected _coreProperty: TCoreProperty,\n protected _class: EC.Class,\n ) {}\n public isArray(): this is EC.ArrayProperty {\n return false;\n }\n public isStruct(): this is EC.StructProperty {\n return false;\n }\n public isPrimitive(): this is EC.PrimitiveProperty {\n return false;\n }\n public isEnumeration(): this is EC.EnumerationProperty {\n return false;\n }\n public isNavigation(): this is EC.NavigationProperty {\n return false;\n }\n public get class() {\n return this._class;\n }\n public get name() {\n return this._coreProperty.name;\n }\n public get label() {\n return this._coreProperty.label;\n }\n public get kindOfQuantity(): Promise<EC.KindOfQuantity | undefined> {\n return createFromOptionalLazyLoaded(this._coreProperty.kindOfQuantity, (coreKindOfQuantity) => new ECKindOfQuantityImpl(coreKindOfQuantity));\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreProperty.customAttributes);\n }\n}\n\nclass ECPrimitivePropertyImpl<TCoreProperty extends CorePrimitiveProperty> extends ECPropertyImpl<TCoreProperty> implements EC.PrimitiveProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isPrimitive(): this is EC.PrimitiveProperty {\n return true;\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n public get primitiveType() {\n switch (this._coreProperty.primitiveType) {\n case PrimitiveType.Binary:\n return \"Binary\";\n case PrimitiveType.Boolean:\n return \"Boolean\";\n case PrimitiveType.DateTime:\n return \"DateTime\";\n case PrimitiveType.Double:\n return \"Double\";\n case PrimitiveType.IGeometry:\n return \"IGeometry\";\n case PrimitiveType.Integer:\n return \"Integer\";\n case PrimitiveType.Long:\n return \"Long\";\n case PrimitiveType.Point2d:\n return \"Point2d\";\n case PrimitiveType.Point3d:\n return \"Point3d\";\n case PrimitiveType.String:\n return \"String\";\n }\n throw new Error(\"Primitive property is not initialized\");\n }\n}\n\nclass ECNavigationPropertyImpl extends ECPropertyImpl<CoreNavigationProperty> implements EC.NavigationProperty {\n constructor(coreProperty: CoreNavigationProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isNavigation(): this is EC.NavigationProperty {\n return true;\n }\n public get relationshipClass() {\n return createFromLazyLoaded(this._coreProperty.relationshipClass, (r) => new ECRelationshipClassImpl(r));\n }\n public get direction() {\n switch (this._coreProperty.direction) {\n case StrengthDirection.Backward:\n return \"Backward\";\n case StrengthDirection.Forward:\n return \"Forward\";\n }\n }\n}\n\nclass ECEnumerationPropertyImpl<TCoreProperty extends CoreEnumerationProperty> extends ECPropertyImpl<TCoreProperty> implements EC.EnumerationProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isEnumeration(): this is EC.EnumerationProperty {\n return true;\n }\n public get enumeration() {\n return createFromOptionalLazyLoaded(this._coreProperty.enumeration, (coreEnumeration) => new ECEnumerationImpl(coreEnumeration));\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n}\n\nclass ECStructPropertyImpl<TCoreProperty extends CoreStructProperty> extends ECPropertyImpl<TCoreProperty> implements EC.StructProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isStruct(): this is EC.StructProperty {\n return true;\n }\n public get structClass(): EC.StructClass {\n return new ECStructClassImpl(this._coreProperty.structClass);\n }\n}\n\nclass ECPrimitivesArrayPropertyImpl extends ECPrimitivePropertyImpl<CorePrimitiveArrayProperty> implements EC.PrimitiveArrayProperty {\n constructor(coreProperty: CorePrimitiveArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECEnumerationArrayPropertyImpl extends ECEnumerationPropertyImpl<CoreEnumerationArrayProperty> implements EC.EnumerationArrayProperty {\n constructor(coreProperty: CoreEnumerationArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECStructArrayPropertyImpl extends ECStructPropertyImpl<CoreStructArrayProperty> implements EC.StructArrayProperty {\n constructor(coreProperty: CoreStructArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nasync function createFromLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource>,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget> {\n return source.then(convert);\n}\n\nasync function createFromOptionalLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource> | undefined,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget | undefined> {\n if (!source) {\n return undefined;\n }\n return source.then(convert);\n}\n\nconst EMPTY_MAP: ReadonlyMap<string, EC.CustomAttribute> = new Map();\nasync function createCustomAttributesSet(coreCustomAttributes: CoreClass[\"customAttributes\"]): Promise<EC.CustomAttributeSet> {\n if (!coreCustomAttributes) {\n return EMPTY_MAP;\n }\n return coreCustomAttributes;\n}\n\nclass ECRelationshipConstraintImpl implements EC.RelationshipConstraint {\n constructor(\n private _coreConstraint: CoreRelationshipConstraint,\n private _schema: EC.Schema,\n ) {}\n public get multiplicity() {\n return this._coreConstraint.multiplicity;\n }\n public get polymorphic() {\n return this._coreConstraint.polymorphic;\n }\n public get abstractConstraint(): Promise<EC.EntityClass | EC.Mixin | EC.RelationshipClass | undefined> {\n return createFromOptionalLazyLoaded(this._coreConstraint.abstractConstraint, (coreConstraint) => createECClass(coreConstraint, this._schema));\n }\n}\n\nclass ECKindOfQuantityImpl extends ECSchemaItemImpl<CoreKindOfQuantity> implements EC.KindOfQuantity {\n constructor(coreKindOfQuantity: CoreKindOfQuantity) {\n super(coreKindOfQuantity);\n }\n}\n\nclass ECEnumerationImpl extends ECSchemaItemImpl<CoreEnumeration> implements EC.Enumeration {\n constructor(coreEnumeration: CoreEnumeration) {\n super(coreEnumeration);\n }\n public get enumerators() {\n return this._coreSchemaItem.enumerators.map((coreEnumerator) => ({ ...coreEnumerator }));\n }\n public get type() {\n switch (this._coreSchemaItem.type) {\n case PrimitiveType.String:\n return \"String\";\n case PrimitiveType.Integer:\n default:\n return \"Number\";\n }\n }\n public get isStrict() {\n return this._coreSchemaItem.isStrict;\n }\n}\n"]}
1
+ {"version":3,"file":"MetadataInternal.js","sourceRoot":"","sources":["../../../src/core-interop/MetadataInternal.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 *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { PrimitiveType, SchemaItemType, StrengthDirection } from \"@itwin/ecschema-metadata\";\nimport * as ecschemaMetadata from \"@itwin/ecschema-metadata\";\nimport { normalizeFullClassName } from \"@itwin/presentation-shared\";\n\nimport type {\n ECClass as CoreClass,\n EntityClass as CoreEntityClass,\n Enumeration as CoreEnumeration,\n EnumerationArrayProperty as CoreEnumerationArrayProperty,\n EnumerationProperty as CoreEnumerationProperty,\n KindOfQuantity as CoreKindOfQuantity,\n Mixin as CoreMixin,\n NavigationProperty as CoreNavigationProperty,\n PrimitiveArrayProperty as CorePrimitiveArrayProperty,\n PrimitiveProperty as CorePrimitiveProperty,\n Property as CoreProperty,\n RelationshipClass as CoreRelationshipClass,\n RelationshipConstraint as CoreRelationshipConstraint,\n Schema as CoreSchema,\n SchemaItem as CoreSchemaItem,\n StructArrayProperty as CoreStructArrayProperty,\n StructClass as CoreStructClass,\n StructProperty as CoreStructProperty,\n LazyLoadedSchemaItem,\n} from \"@itwin/ecschema-metadata\";\nimport type { EC } from \"@itwin/presentation-shared\";\n\n/** @internal */\nexport function createECSchema(schema: CoreSchema): EC.Schema {\n return {\n name: schema.name,\n async getClass(name) {\n // TODO: replace with `schema.getItem(name, CoreClass)` when itwinjs-core 4.x is dropped\n const item = await schema.getItem(name);\n return item ? createECClass(item as CoreClass, this) : undefined;\n },\n async getCustomAttributes() {\n return createCustomAttributesSet(schema.customAttributes);\n },\n };\n}\n\nabstract class ECSchemaItemImpl<TCoreSchemaItem extends CoreSchemaItem> implements EC.SchemaItem {\n private _schema: EC.Schema;\n protected constructor(\n protected _coreSchemaItem: TCoreSchemaItem,\n schema?: EC.Schema,\n ) {\n this._schema = schema ?? createECSchema(this._coreSchemaItem.schema);\n }\n public get schema() {\n return this._schema;\n }\n public get fullName() {\n return normalizeFullClassName(this._coreSchemaItem.fullName);\n }\n public get name() {\n return this._coreSchemaItem.name;\n }\n public get label() {\n return this._coreSchemaItem.label;\n }\n}\n\n/** @internal */\nexport function createECClass(coreClass: CoreClass, schema?: EC.Schema): EC.Class {\n switch (coreClass.schemaItemType) {\n case SchemaItemType.EntityClass:\n return new ECEntityClassImpl(coreClass as CoreEntityClass, schema);\n case SchemaItemType.RelationshipClass:\n return new ECRelationshipClassImpl(coreClass as CoreRelationshipClass, schema);\n case SchemaItemType.StructClass:\n return new ECStructClassImpl(coreClass as CoreStructClass, schema);\n case SchemaItemType.Mixin:\n return new ECMixinImpl(coreClass as CoreMixin, schema);\n }\n throw new Error(`Invalid class type \"${coreClass.schemaItemType}\" for class ${coreClass.fullName}`);\n}\n\nabstract class ECClassImpl<TCoreClass extends CoreClass> extends ECSchemaItemImpl<TCoreClass> implements EC.Class {\n protected constructor(coreClass: TCoreClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public isEntityClass(): this is EC.EntityClass {\n return false;\n }\n public isRelationshipClass(): this is EC.RelationshipClass {\n return false;\n }\n public isStructClass(): this is EC.StructClass {\n return false;\n }\n public isMixin(): this is EC.Mixin {\n return false;\n }\n public get baseClass(): Promise<EC.Class | undefined> {\n return createFromOptionalLazyLoaded(this._coreSchemaItem.baseClass, (coreBaseClass) => createECClass(coreBaseClass, this.schema));\n }\n public async is(classOrClassName: EC.Class | string, schemaName?: string) {\n if (typeof classOrClassName === \"string\") {\n return this._coreSchemaItem.is(classOrClassName, schemaName!);\n }\n return this._coreSchemaItem.is(classOrClassName.name, classOrClassName.schema.name);\n }\n public async getProperty(name: string): Promise<EC.Property | undefined> {\n const coreProperty = await this._coreSchemaItem.getProperty(\n name,\n // TODO: remove this when itwinjs-core 4.x support is dropped.\n // `SchemaFormatsProvider` was introduced around the same time the meaning of this second argument was changed\n // from `includeInherited` to `excludeInherited` - we're using its existence to determine what we need to pass to get\n // inherited properties.\n /* c8 ignore next 2 */\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ecschemaMetadata.SchemaFormatsProvider ? false : true,\n );\n return coreProperty ? createECProperty(coreProperty, this) : undefined;\n }\n public async getProperties(): Promise<Array<EC.Property>> {\n const coreProperties = await this._coreSchemaItem.getProperties();\n const result = new Array<EC.Property>();\n for (const coreProperty of coreProperties) {\n result.push(createECProperty(coreProperty, this));\n }\n return result;\n }\n public async getDerivedClasses(): Promise<EC.Class[]> {\n const coreDerivedClasses = await this._coreSchemaItem.getDerivedClasses();\n return coreDerivedClasses ? coreDerivedClasses.map((coreClass) => createECClass(coreClass, this.schema)) : [];\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreSchemaItem.customAttributes);\n }\n}\n\nclass ECEntityClassImpl extends ECClassImpl<CoreEntityClass> implements EC.EntityClass {\n constructor(coreClass: CoreEntityClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isEntityClass(): this is EC.EntityClass {\n return true;\n }\n}\n\nclass ECRelationshipClassImpl extends ECClassImpl<CoreRelationshipClass> implements EC.RelationshipClass {\n constructor(coreClass: CoreRelationshipClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isRelationshipClass(): this is EC.RelationshipClass {\n return true;\n }\n public get direction() {\n switch (this._coreSchemaItem.strengthDirection) {\n case StrengthDirection.Forward:\n return \"Forward\";\n case StrengthDirection.Backward:\n return \"Backward\";\n }\n }\n public get source() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.source, this.schema);\n }\n public get target() {\n return new ECRelationshipConstraintImpl(this._coreSchemaItem.target, this.schema);\n }\n}\n\nclass ECStructClassImpl extends ECClassImpl<CoreStructClass> implements EC.StructClass {\n constructor(coreClass: CoreStructClass, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isStructClass(): this is EC.StructClass {\n return true;\n }\n}\n\nclass ECMixinImpl extends ECClassImpl<CoreMixin> implements EC.Mixin {\n constructor(coreClass: CoreMixin, schema?: EC.Schema) {\n super(coreClass, schema);\n }\n public override isMixin(): this is EC.Mixin {\n return true;\n }\n}\n\n/** @internal */\nexport function createECProperty(coreProperty: CoreProperty, ecClass: EC.Class): EC.Property {\n if (coreProperty.isArray()) {\n if (coreProperty.isPrimitive()) {\n return new ECPrimitivesArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationArrayPropertyImpl(coreProperty, ecClass);\n }\n return new ECStructArrayPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isStruct()) {\n return new ECStructPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isEnumeration()) {\n return new ECEnumerationPropertyImpl(coreProperty, ecClass);\n }\n if (coreProperty.isNavigation()) {\n return new ECNavigationPropertyImpl(coreProperty, ecClass);\n }\n assert(coreProperty.isPrimitive());\n return new ECPrimitivePropertyImpl(coreProperty, ecClass);\n}\n\nabstract class ECPropertyImpl<TCoreProperty extends CoreProperty> implements EC.Property {\n protected constructor(\n protected _coreProperty: TCoreProperty,\n protected _class: EC.Class,\n ) {}\n public isArray(): this is EC.ArrayProperty {\n return false;\n }\n public isStruct(): this is EC.StructProperty {\n return false;\n }\n public isPrimitive(): this is EC.PrimitiveProperty {\n return false;\n }\n public isEnumeration(): this is EC.EnumerationProperty {\n return false;\n }\n public isNavigation(): this is EC.NavigationProperty {\n return false;\n }\n public get class() {\n return this._class;\n }\n public get name() {\n return this._coreProperty.name;\n }\n public get label() {\n return this._coreProperty.label;\n }\n public get kindOfQuantity(): Promise<EC.KindOfQuantity | undefined> {\n return createFromOptionalLazyLoaded(this._coreProperty.kindOfQuantity, (coreKindOfQuantity) => new ECKindOfQuantityImpl(coreKindOfQuantity));\n }\n public async getCustomAttributes(): Promise<EC.CustomAttributeSet> {\n return createCustomAttributesSet(this._coreProperty.customAttributes);\n }\n}\n\nclass ECPrimitivePropertyImpl<TCoreProperty extends CorePrimitiveProperty> extends ECPropertyImpl<TCoreProperty> implements EC.PrimitiveProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isPrimitive(): this is EC.PrimitiveProperty {\n return true;\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n public get primitiveType() {\n switch (this._coreProperty.primitiveType) {\n case PrimitiveType.Binary:\n return \"Binary\";\n case PrimitiveType.Boolean:\n return \"Boolean\";\n case PrimitiveType.DateTime:\n return \"DateTime\";\n case PrimitiveType.Double:\n return \"Double\";\n case PrimitiveType.IGeometry:\n return \"IGeometry\";\n case PrimitiveType.Integer:\n return \"Integer\";\n case PrimitiveType.Long:\n return \"Long\";\n case PrimitiveType.Point2d:\n return \"Point2d\";\n case PrimitiveType.Point3d:\n return \"Point3d\";\n case PrimitiveType.String:\n return \"String\";\n }\n throw new Error(\"Primitive property is not initialized\");\n }\n}\n\nclass ECNavigationPropertyImpl extends ECPropertyImpl<CoreNavigationProperty> implements EC.NavigationProperty {\n constructor(coreProperty: CoreNavigationProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isNavigation(): this is EC.NavigationProperty {\n return true;\n }\n public get relationshipClass() {\n return createFromLazyLoaded(this._coreProperty.relationshipClass, (r) => new ECRelationshipClassImpl(r));\n }\n public get direction() {\n switch (this._coreProperty.direction) {\n case StrengthDirection.Backward:\n return \"Backward\";\n case StrengthDirection.Forward:\n return \"Forward\";\n }\n }\n}\n\nclass ECEnumerationPropertyImpl<TCoreProperty extends CoreEnumerationProperty> extends ECPropertyImpl<TCoreProperty> implements EC.EnumerationProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isEnumeration(): this is EC.EnumerationProperty {\n return true;\n }\n public get enumeration() {\n return createFromOptionalLazyLoaded(this._coreProperty.enumeration, (coreEnumeration) => new ECEnumerationImpl(coreEnumeration));\n }\n public get extendedTypeName() {\n return this._coreProperty.extendedTypeName;\n }\n}\n\nclass ECStructPropertyImpl<TCoreProperty extends CoreStructProperty> extends ECPropertyImpl<TCoreProperty> implements EC.StructProperty {\n constructor(coreProperty: TCoreProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isStruct(): this is EC.StructProperty {\n return true;\n }\n public get structClass(): EC.StructClass {\n return new ECStructClassImpl(this._coreProperty.structClass);\n }\n}\n\nclass ECPrimitivesArrayPropertyImpl extends ECPrimitivePropertyImpl<CorePrimitiveArrayProperty> implements EC.PrimitiveArrayProperty {\n constructor(coreProperty: CorePrimitiveArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECEnumerationArrayPropertyImpl extends ECEnumerationPropertyImpl<CoreEnumerationArrayProperty> implements EC.EnumerationArrayProperty {\n constructor(coreProperty: CoreEnumerationArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nclass ECStructArrayPropertyImpl extends ECStructPropertyImpl<CoreStructArrayProperty> implements EC.StructArrayProperty {\n constructor(coreProperty: CoreStructArrayProperty, c: EC.Class) {\n super(coreProperty, c);\n }\n public override isArray(): this is EC.ArrayProperty {\n return true;\n }\n public get minOccurs() {\n return this._coreProperty.minOccurs;\n }\n public get maxOccurs() {\n return this._coreProperty.maxOccurs;\n }\n}\n\nasync function createFromLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource>,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget> {\n return source.then(convert);\n}\n\nasync function createFromOptionalLazyLoaded<TSource extends CoreSchemaItem, TTarget>(\n source: LazyLoadedSchemaItem<TSource> | undefined,\n convert: (source: TSource) => TTarget,\n): Promise<TTarget | undefined> {\n if (!source) {\n return undefined;\n }\n return source.then(convert);\n}\n\nconst EMPTY_MAP: ReadonlyMap<EC.FullClassName, EC.CustomAttribute> = new Map();\nasync function createCustomAttributesSet(coreCustomAttributes: CoreClass[\"customAttributes\"]): Promise<EC.CustomAttributeSet> {\n if (!coreCustomAttributes) {\n return EMPTY_MAP;\n }\n return {\n *[Symbol.iterator]() {\n for (const [className, ca] of coreCustomAttributes) {\n const normalizedClassName = normalizeFullClassName(className);\n yield [normalizedClassName, { ...ca, className: normalizedClassName }];\n }\n },\n get(className: EC.FullClassName) {\n const normalizedClassName = normalizeFullClassName(className);\n const coreCustomAttribute = coreCustomAttributes.get(normalizedClassName);\n return coreCustomAttribute ? { ...coreCustomAttribute, className: normalizedClassName } : undefined;\n },\n };\n}\n\nclass ECRelationshipConstraintImpl implements EC.RelationshipConstraint {\n constructor(\n private _coreConstraint: CoreRelationshipConstraint,\n private _schema: EC.Schema,\n ) {}\n public get multiplicity() {\n return this._coreConstraint.multiplicity;\n }\n public get polymorphic() {\n return this._coreConstraint.polymorphic;\n }\n public get abstractConstraint(): Promise<EC.EntityClass | EC.Mixin | EC.RelationshipClass | undefined> {\n return createFromOptionalLazyLoaded(this._coreConstraint.abstractConstraint, (coreConstraint) => createECClass(coreConstraint, this._schema));\n }\n}\n\nclass ECKindOfQuantityImpl extends ECSchemaItemImpl<CoreKindOfQuantity> implements EC.KindOfQuantity {\n constructor(coreKindOfQuantity: CoreKindOfQuantity) {\n super(coreKindOfQuantity);\n }\n}\n\nclass ECEnumerationImpl extends ECSchemaItemImpl<CoreEnumeration> implements EC.Enumeration {\n constructor(coreEnumeration: CoreEnumeration) {\n super(coreEnumeration);\n }\n public get enumerators() {\n return this._coreSchemaItem.enumerators.map((coreEnumerator) => ({ ...coreEnumerator }));\n }\n public get type() {\n switch (this._coreSchemaItem.type) {\n case PrimitiveType.String:\n return \"String\";\n case PrimitiveType.Integer:\n default:\n return \"Number\";\n }\n }\n public get isStrict() {\n return this._coreSchemaItem.isStrict;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/presentation-core-interop",
3
- "version": "1.4.0-alpha.6",
3
+ "version": "1.4.0-alpha.8",
4
4
  "description": "The package acts as a layer between iTwin.js Core and Presentation packages.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "rxjs": "^7.8.2",
34
- "@itwin/presentation-shared": "~2.0.0-alpha.7"
34
+ "@itwin/presentation-shared": "~2.0.0-alpha.9"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@itwin/core-bentley": "^4.1.0 || ^5.0.0",
@@ -41,12 +41,12 @@
41
41
  "@itwin/ecschema-metadata": "^4.1.0 || ^5.0.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@itwin/build-tools": "^5.5.2",
45
- "@itwin/core-bentley": "5.6.0-dev.17",
46
- "@itwin/core-common": "5.6.0-dev.17",
47
- "@itwin/core-geometry": "5.6.0-dev.17",
48
- "@itwin/core-quantity": "5.6.0-dev.17",
49
- "@itwin/ecschema-metadata": "5.6.0-dev.17",
44
+ "@itwin/build-tools": "^5.7.2",
45
+ "@itwin/core-bentley": "^5.7.2",
46
+ "@itwin/core-common": "^5.7.2",
47
+ "@itwin/core-geometry": "^5.7.2",
48
+ "@itwin/core-quantity": "^5.7.2",
49
+ "@itwin/ecschema-metadata": "^5.7.2",
50
50
  "@itwin/eslint-plugin": "5.1.0",
51
51
  "@types/chai": "^5.2.3",
52
52
  "@types/chai-as-promised": "^8.0.2",
@@ -57,9 +57,9 @@
57
57
  "chai": "^5.3.3",
58
58
  "chai-as-promised": "^8.0.2",
59
59
  "cpx2": "^7.0.2",
60
- "eslint": "^9.39.2",
60
+ "eslint": "^9.39.4",
61
61
  "mocha": "^11.7.5",
62
- "rimraf": "^6.1.2",
62
+ "rimraf": "^6.1.3",
63
63
  "rxjs-for-await": "^1.0.0",
64
64
  "sinon": "^19.0.5",
65
65
  "sinon-chai": "^4.0.1",