@itwin/ecschema-editing 4.6.0-dev.6 → 4.6.0-dev.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/lib/cjs/Differencing/SchemaConflicts.d.ts +2 -2
- package/lib/cjs/Differencing/SchemaConflicts.js +1 -1
- package/lib/cjs/Differencing/SchemaConflicts.js.map +1 -1
- package/lib/cjs/Differencing/SchemaDiagnosticVisitor.d.ts +9 -6
- package/lib/cjs/Differencing/SchemaDiagnosticVisitor.d.ts.map +1 -1
- package/lib/cjs/Differencing/SchemaDiagnosticVisitor.js +213 -161
- package/lib/cjs/Differencing/SchemaDiagnosticVisitor.js.map +1 -1
- package/lib/cjs/Differencing/SchemaDifference.d.ts +354 -78
- package/lib/cjs/Differencing/SchemaDifference.d.ts.map +1 -1
- package/lib/cjs/Differencing/SchemaDifference.js +184 -11
- package/lib/cjs/Differencing/SchemaDifference.js.map +1 -1
- package/lib/cjs/Editing/Constants.js.map +1 -1
- package/lib/cjs/Editing/CustomAttributes.js.map +1 -1
- package/lib/cjs/Editing/ECClasses.js.map +1 -1
- package/lib/cjs/Editing/Editor.js.map +1 -1
- package/lib/cjs/Editing/Entities.js.map +1 -1
- package/lib/cjs/Editing/Enumerations.js.map +1 -1
- package/lib/cjs/Editing/Formats.js.map +1 -1
- package/lib/cjs/Editing/InvertedUnits.js.map +1 -1
- package/lib/cjs/Editing/KindOfQuantities.js.map +1 -1
- package/lib/cjs/Editing/Mixins.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableArrayProperty.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableConstant.d.ts +1 -0
- package/lib/cjs/Editing/Mutable/MutableConstant.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableEnumeration.d.ts +1 -0
- package/lib/cjs/Editing/Mutable/MutableEnumeration.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.d.ts +2 -0
- package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutablePhenomenon.d.ts +1 -0
- package/lib/cjs/Editing/Mutable/MutablePhenomenon.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutablePrimitiveOrEnumProperty.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutablePropertyCategory.d.ts +1 -0
- package/lib/cjs/Editing/Mutable/MutablePropertyCategory.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableSchema.d.ts +2 -0
- package/lib/cjs/Editing/Mutable/MutableSchema.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableUnitSystem.d.ts +1 -0
- package/lib/cjs/Editing/Mutable/MutableUnitSystem.d.ts.map +1 -1
- package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -1
- package/lib/cjs/Editing/Phenomena.js.map +1 -1
- package/lib/cjs/Editing/PropertyCategories.js.map +1 -1
- package/lib/cjs/Editing/RelationshipClasses.js.map +1 -1
- package/lib/cjs/Editing/SchemaItems.js.map +1 -1
- package/lib/cjs/Editing/Structs.js.map +1 -1
- package/lib/cjs/Editing/UnitSystems.js.map +1 -1
- package/lib/cjs/Editing/Units.js.map +1 -1
- package/lib/cjs/Merging/CAClassMerger.d.ts +4 -7
- package/lib/cjs/Merging/CAClassMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/CAClassMerger.js +26 -23
- package/lib/cjs/Merging/CAClassMerger.js.map +1 -1
- package/lib/cjs/Merging/ClassMerger.d.ts +10 -18
- package/lib/cjs/Merging/ClassMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/ClassMerger.js +148 -155
- package/lib/cjs/Merging/ClassMerger.js.map +1 -1
- package/lib/cjs/Merging/ConstantMerger.d.ts +4 -8
- package/lib/cjs/Merging/ConstantMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/ConstantMerger.js +59 -40
- package/lib/cjs/Merging/ConstantMerger.js.map +1 -1
- package/lib/cjs/Merging/CustomAttributeMerger.d.ts +16 -13
- package/lib/cjs/Merging/CustomAttributeMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/CustomAttributeMerger.js +66 -34
- package/lib/cjs/Merging/CustomAttributeMerger.js.map +1 -1
- package/lib/cjs/Merging/EntityClassMerger.d.ts +10 -7
- package/lib/cjs/Merging/EntityClassMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/EntityClassMerger.js +41 -29
- package/lib/cjs/Merging/EntityClassMerger.js.map +1 -1
- package/lib/cjs/Merging/EnumerationMerger.d.ts +9 -9
- package/lib/cjs/Merging/EnumerationMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/EnumerationMerger.js +77 -48
- package/lib/cjs/Merging/EnumerationMerger.js.map +1 -1
- package/lib/cjs/Merging/KindOfQuantityMerger.d.ts +4 -11
- package/lib/cjs/Merging/KindOfQuantityMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/KindOfQuantityMerger.js +57 -53
- package/lib/cjs/Merging/KindOfQuantityMerger.js.map +1 -1
- package/lib/cjs/Merging/MixinMerger.d.ts +4 -7
- package/lib/cjs/Merging/MixinMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/MixinMerger.js +24 -25
- package/lib/cjs/Merging/MixinMerger.js.map +1 -1
- package/lib/cjs/Merging/PhenomenonMerger.d.ts +8 -0
- package/lib/cjs/Merging/PhenomenonMerger.d.ts.map +1 -0
- package/lib/cjs/Merging/PhenomenonMerger.js +37 -0
- package/lib/cjs/Merging/PhenomenonMerger.js.map +1 -0
- package/lib/cjs/Merging/PropertyCategoryMerger.d.ts +8 -0
- package/lib/cjs/Merging/PropertyCategoryMerger.d.ts.map +1 -0
- package/lib/cjs/Merging/PropertyCategoryMerger.js +34 -0
- package/lib/cjs/Merging/PropertyCategoryMerger.js.map +1 -0
- package/lib/cjs/Merging/PropertyMerger.d.ts +6 -14
- package/lib/cjs/Merging/PropertyMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/PropertyMerger.js +212 -287
- package/lib/cjs/Merging/PropertyMerger.js.map +1 -1
- package/lib/cjs/Merging/RelationshipClassMerger.d.ts +16 -10
- package/lib/cjs/Merging/RelationshipClassMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/RelationshipClassMerger.js +121 -112
- package/lib/cjs/Merging/RelationshipClassMerger.js.map +1 -1
- package/lib/cjs/Merging/SchemaItemMerger.d.ts +26 -51
- package/lib/cjs/Merging/SchemaItemMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/SchemaItemMerger.js +106 -88
- package/lib/cjs/Merging/SchemaItemMerger.js.map +1 -1
- package/lib/cjs/Merging/SchemaMerger.d.ts +21 -9
- package/lib/cjs/Merging/SchemaMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/SchemaMerger.js +74 -88
- package/lib/cjs/Merging/SchemaMerger.js.map +1 -1
- package/lib/cjs/Merging/SchemaReferenceMerger.d.ts +5 -5
- package/lib/cjs/Merging/SchemaReferenceMerger.d.ts.map +1 -1
- package/lib/cjs/Merging/SchemaReferenceMerger.js +33 -15
- package/lib/cjs/Merging/SchemaReferenceMerger.js.map +1 -1
- package/lib/cjs/Merging/UnitSystemMerger.d.ts +8 -0
- package/lib/cjs/Merging/UnitSystemMerger.d.ts.map +1 -0
- package/lib/cjs/Merging/UnitSystemMerger.js +26 -0
- package/lib/cjs/Merging/UnitSystemMerger.js.map +1 -0
- package/lib/cjs/Validation/Diagnostic.js.map +1 -1
- package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -1
- package/lib/cjs/Validation/ECRules.d.ts +23 -23
- package/lib/cjs/Validation/ECRules.d.ts.map +1 -1
- package/lib/cjs/Validation/ECRules.js +1 -1
- package/lib/cjs/Validation/ECRules.js.map +1 -1
- package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -1
- package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -1
- package/lib/cjs/Validation/Rules.js.map +1 -1
- package/lib/cjs/Validation/SchemaChanges.js +1 -1
- package/lib/cjs/Validation/SchemaChanges.js.map +1 -1
- package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -1
- package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -1
- package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -1
- package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -1
- package/lib/cjs/Validation/SchemaComparer.d.ts.map +1 -1
- package/lib/cjs/Validation/SchemaComparer.js +3 -3
- package/lib/cjs/Validation/SchemaComparer.js.map +1 -1
- package/lib/cjs/Validation/SchemaValidater.js.map +1 -1
- package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -1
- package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
- package/lib/cjs/ecschema-editing.js.map +1 -1
- package/package.json +9 -9
- package/public/locales/en/ECSchemaEditing.json +26 -26
- package/lib/cjs/Merging/SchemaItemFactory.d.ts +0 -15
- package/lib/cjs/Merging/SchemaItemFactory.d.ts.map +0 -1
- package/lib/cjs/Merging/SchemaItemFactory.js +0 -82
- package/lib/cjs/Merging/SchemaItemFactory.js.map +0 -1
- package/lib/cjs/Merging/StructClassMerger.d.ts +0 -10
- package/lib/cjs/Merging/StructClassMerger.d.ts.map +0 -1
- package/lib/cjs/Merging/StructClassMerger.js +0 -13
- package/lib/cjs/Merging/StructClassMerger.js.map +0 -1
|
@@ -1,66 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
5
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
6
|
-
*--------------------------------------------------------------------------------------------*/
|
|
7
|
-
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
3
|
+
exports.kindOfQuantityMerger = void 0;
|
|
8
4
|
const SchemaItemMerger_1 = require("./SchemaItemMerger");
|
|
9
5
|
/**
|
|
6
|
+
* Defines a merge handler to merge KindOfQuantity schema items.
|
|
10
7
|
* @internal
|
|
11
8
|
*/
|
|
12
|
-
|
|
13
|
-
async
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
for (const [unit, label] of format.units) {
|
|
26
|
-
const targetUnit = await this.lookup(unit);
|
|
27
|
-
if (targetUnit === undefined) {
|
|
28
|
-
throw new Error(`Unable to locate the unit class ${unit.name} in the merged schema.`);
|
|
29
|
-
}
|
|
30
|
-
unitAndLabels.push([targetUnit, label]);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const overrideFormat = await this.context.editor.kindOfQuantities.createFormatOverride(itemKey, parentFormat.key, format.precision, unitAndLabels);
|
|
34
|
-
await this.context.editor.kindOfQuantities.addPresentationOverrideFormat(itemKey, overrideFormat, isDefault);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const targetFormat = await this.lookup(format);
|
|
38
|
-
if (targetFormat === undefined) {
|
|
39
|
-
throw new Error(`Unable to locate the format class ${format.name} in the merged schema.`);
|
|
40
|
-
}
|
|
41
|
-
await this.context.editor.kindOfQuantities.addPresentationFormat(itemKey, targetFormat.key, isDefault);
|
|
9
|
+
exports.kindOfQuantityMerger = {
|
|
10
|
+
async add(context, change) {
|
|
11
|
+
if (change.difference.persistenceUnit === undefined) {
|
|
12
|
+
return { errorMessage: "KindOfQuantity must define persistenceUnit" };
|
|
13
|
+
}
|
|
14
|
+
if (change.difference.relativeError === undefined) {
|
|
15
|
+
return { errorMessage: "KindOfQuantity must define relativeError" };
|
|
16
|
+
}
|
|
17
|
+
change.difference.persistenceUnit = await (0, SchemaItemMerger_1.updateSchemaItemFullName)(context, change.difference.persistenceUnit);
|
|
18
|
+
if (change.difference.presentationUnits) {
|
|
19
|
+
if (Array.isArray(change.difference.presentationUnits)) {
|
|
20
|
+
for (let index = 0; index < change.difference.presentationUnits.length; index++) {
|
|
21
|
+
change.difference.presentationUnits[index] = await updateOverrideFormat(context, change.difference.presentationUnits[index]);
|
|
42
22
|
}
|
|
43
23
|
}
|
|
24
|
+
else {
|
|
25
|
+
change.difference.presentationUnits = await updateOverrideFormat(context, change.difference.presentationUnits);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return context.editor.kindOfQuantities.createFromProps(context.targetSchemaKey, {
|
|
29
|
+
...change.difference,
|
|
30
|
+
name: change.itemName,
|
|
31
|
+
schemaItemType: change.schemaType,
|
|
32
|
+
persistenceUnit: change.difference.persistenceUnit,
|
|
33
|
+
presentationUnits: change.difference.presentationUnits,
|
|
34
|
+
relativeError: change.difference.relativeError,
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
async modify(_context, change, itemKey, item) {
|
|
38
|
+
if (change.difference.label !== undefined) {
|
|
39
|
+
item.setDisplayLabel(change.difference.label);
|
|
44
40
|
}
|
|
41
|
+
if (change.difference.description !== undefined) {
|
|
42
|
+
item.setDescription(change.difference.description);
|
|
43
|
+
}
|
|
44
|
+
if (change.difference.relativeError !== undefined) {
|
|
45
|
+
item.setRelativeError(change.difference.relativeError);
|
|
46
|
+
}
|
|
47
|
+
if (change.difference.persistenceUnit !== undefined) {
|
|
48
|
+
// TODO: It should be checked if the unit is the same, but referring to the source schema.
|
|
49
|
+
throw new Error(`Changing the kind of quantity '${itemKey.name}' persistenceUnit is not supported.`);
|
|
50
|
+
}
|
|
51
|
+
return { itemKey };
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
async function updateOverrideFormat(context, formatString) {
|
|
55
|
+
// https://www.itwinjs.org/v1/bis/ec/kindofquantity/#format-string
|
|
56
|
+
const match = formatString.match(/^([^(]+)\((\d+)\)\[(.*)\]$/);
|
|
57
|
+
if (match === null) {
|
|
58
|
+
return formatString;
|
|
45
59
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (oldValue !== undefined && oldValue !== newValue) {
|
|
54
|
-
throw new Error(`Changing the kind of quantity '${targetItemKey.name}' persistenceUnit is not supported.`);
|
|
55
|
-
}
|
|
56
|
-
const [schemaName, itemName] = ecschema_metadata_1.SchemaItem.parseFullName(newValue);
|
|
57
|
-
if (this.context.targetSchema.getReferenceSync(schemaName) === undefined) {
|
|
58
|
-
return `${targetItemKey.schemaName}.${itemName}`;
|
|
59
|
-
}
|
|
60
|
-
return newValue;
|
|
61
|
-
},
|
|
62
|
-
};
|
|
60
|
+
const originalFormat = match[1];
|
|
61
|
+
const updatedFormat = await (0, SchemaItemMerger_1.updateSchemaItemFullName)(context, originalFormat);
|
|
62
|
+
const unitOverrides = match[3].split("][");
|
|
63
|
+
for (let index = 0; index < unitOverrides.length; index++) {
|
|
64
|
+
const [unit, label] = unitOverrides[index].split("|");
|
|
65
|
+
const updatedUnit = await (0, SchemaItemMerger_1.updateSchemaItemFullName)(context, unit);
|
|
66
|
+
unitOverrides[index] = `${updatedUnit}${label ? `|${label}` : ""}`;
|
|
63
67
|
}
|
|
68
|
+
return `${updatedFormat}(${match[2]})[${unitOverrides.join("][")}]`;
|
|
64
69
|
}
|
|
65
|
-
exports.default = KindOfQuantityMerger;
|
|
66
70
|
//# sourceMappingURL=KindOfQuantityMerger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KindOfQuantityMerger.js","sourceRoot":"","sources":["../../../src/Merging/KindOfQuantityMerger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KindOfQuantityMerger.js","sourceRoot":"","sources":["../../../src/Merging/KindOfQuantityMerger.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 { type KindOfQuantityDifference } from \"../Differencing/SchemaDifference\";\nimport { type SchemaItemMergerHandler, updateSchemaItemFullName } from \"./SchemaItemMerger\";\nimport { type MutableKindOfQuantity } from \"../Editing/Mutable/MutableKindOfQuantity\";\nimport { SchemaMergeContext } from \"./SchemaMerger\";\n\n/**\n * Defines a merge handler to merge KindOfQuantity schema items.\n * @internal\n */\nexport const kindOfQuantityMerger: SchemaItemMergerHandler<KindOfQuantityDifference> = {\n async add(context, change) {\n if (change.difference.persistenceUnit === undefined) {\n return { errorMessage: \"KindOfQuantity must define persistenceUnit\" };\n }\n if (change.difference.relativeError === undefined) {\n return { errorMessage: \"KindOfQuantity must define relativeError\" };\n }\n change.difference.persistenceUnit = await updateSchemaItemFullName(context, change.difference.persistenceUnit);\n if(change.difference.presentationUnits) {\n if(Array.isArray(change.difference.presentationUnits)) {\n for(let index = 0; index < change.difference.presentationUnits.length; index++) {\n change.difference.presentationUnits[index] = await updateOverrideFormat(context, change.difference.presentationUnits[index]);\n }\n } else {\n change.difference.presentationUnits = await updateOverrideFormat(context, change.difference.presentationUnits);\n }\n }\n\n return context.editor.kindOfQuantities.createFromProps(context.targetSchemaKey, {\n ...change.difference,\n name: change.itemName,\n schemaItemType: change.schemaType,\n persistenceUnit: change.difference.persistenceUnit,\n presentationUnits: change.difference.presentationUnits,\n relativeError: change.difference.relativeError,\n });\n },\n async modify(_context, change, itemKey, item: MutableKindOfQuantity) {\n if(change.difference.label !== undefined) {\n item.setDisplayLabel(change.difference.label);\n }\n if(change.difference.description !== undefined) {\n item.setDescription(change.difference.description);\n }\n if(change.difference.relativeError !== undefined) {\n item.setRelativeError(change.difference.relativeError);\n }\n if(change.difference.persistenceUnit !== undefined) {\n // TODO: It should be checked if the unit is the same, but referring to the source schema.\n throw new Error(`Changing the kind of quantity '${itemKey.name}' persistenceUnit is not supported.`);\n }\n return { itemKey };\n },\n};\n\nasync function updateOverrideFormat(context: SchemaMergeContext, formatString: string) {\n // https://www.itwinjs.org/v1/bis/ec/kindofquantity/#format-string\n const match = formatString.match(/^([^(]+)\\((\\d+)\\)\\[(.*)\\]$/);\n if(match === null) {\n return formatString;\n }\n\n const originalFormat = match[1];\n const updatedFormat = await updateSchemaItemFullName(context, originalFormat);\n\n const unitOverrides = match[3].split(\"][\");\n for(let index=0; index< unitOverrides.length; index++) {\n const [unit, label] = unitOverrides[index].split(\"|\");\n const updatedUnit = await updateSchemaItemFullName(context, unit);\n unitOverrides[index] = `${updatedUnit}${label ? `|${label}` : \"\"}`;\n }\n\n return `${updatedFormat}(${match[2]})[${unitOverrides.join(\"][\")}]`;\n}\n"]}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ClassMerger } from "./ClassMerger";
|
|
1
|
+
import { type MixinClassDifference } from "../Differencing/SchemaDifference";
|
|
2
|
+
import { type SchemaItemMergerHandler } from "./SchemaItemMerger";
|
|
4
3
|
/**
|
|
4
|
+
* Defines a merge handler to merge Mixin schema items.
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
8
|
-
protected create(schemaKey: SchemaKey, ecClass: Mixin): Promise<SchemaItemEditResults>;
|
|
9
|
-
protected mergeAttributes(ecClass: Mixin, attributeName: string, attributeNewValue: any, attributeOldValue: any): Promise<SchemaItemEditResults | boolean>;
|
|
10
|
-
}
|
|
7
|
+
export declare const mixinClassMerger: SchemaItemMergerHandler<MixinClassDifference>;
|
|
11
8
|
//# sourceMappingURL=MixinMerger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MixinMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"MixinMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,KAAK,uBAAuB,EAAiD,MAAM,oBAAoB,CAAC;AAIjH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,uBAAuB,CAAC,oBAAoB,CAsB1E,CAAC"}
|
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
6
|
-
*--------------------------------------------------------------------------------------------*/
|
|
7
|
-
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
3
|
+
exports.mixinClassMerger = void 0;
|
|
4
|
+
const SchemaItemMerger_1 = require("./SchemaItemMerger");
|
|
8
5
|
const ClassMerger_1 = require("./ClassMerger");
|
|
9
6
|
/**
|
|
7
|
+
* Defines a merge handler to merge Mixin schema items.
|
|
10
8
|
* @internal
|
|
11
9
|
*/
|
|
12
|
-
|
|
13
|
-
async
|
|
14
|
-
if (
|
|
15
|
-
return { errorMessage:
|
|
10
|
+
exports.mixinClassMerger = {
|
|
11
|
+
async add(context, change) {
|
|
12
|
+
if (change.difference.appliesTo === undefined) {
|
|
13
|
+
return { errorMessage: "Mixin must define appliesTo" };
|
|
16
14
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
return context.editor.mixins.createFromProps(context.targetSchemaKey, {
|
|
16
|
+
...change.difference,
|
|
17
|
+
name: change.itemName,
|
|
18
|
+
schemaItemType: change.schemaType,
|
|
19
|
+
appliesTo: await (0, SchemaItemMerger_1.updateSchemaItemFullName)(context, change.difference.appliesTo),
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
async modify(context, change, itemKey, item) {
|
|
23
|
+
if (change.difference.appliesTo !== undefined) {
|
|
24
|
+
const appliesTo = await (0, SchemaItemMerger_1.updateSchemaItemKey)(context, change.difference.appliesTo);
|
|
25
|
+
const currentValue = await item.appliesTo;
|
|
26
|
+
if (currentValue !== undefined && !appliesTo.matches(currentValue.key)) {
|
|
27
|
+
return { errorMessage: `Changing the mixin '${itemKey.name}' appliesTo is not supported.` };
|
|
28
|
+
}
|
|
29
29
|
}
|
|
30
|
-
return
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.default = MixinMerger;
|
|
30
|
+
return (0, ClassMerger_1.modifyClass)(context, change, itemKey, item);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
34
33
|
//# sourceMappingURL=MixinMerger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MixinMerger.js","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MixinMerger.js","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":";;;AAKA,yDAAiH;AAEjH,+CAA4C;AAE5C;;;GAGG;AACU,QAAA,gBAAgB,GAAkD;IAC7E,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM;QACvB,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE;YAC7C,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,CAAC;SACxD;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;YACpE,GAAG,MAAM,CAAC,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,SAAS,EAAE,MAAM,IAAA,2CAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;SAChF,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAkB;QACvD,IAAG,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE;YAC5C,MAAM,SAAS,GAAG,MAAM,IAAA,sCAAmB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAClF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;gBACtE,OAAO,EAAE,YAAY,EAAE,uBAAuB,OAAO,CAAC,IAAI,+BAA+B,EAAE,CAAC;aAC7F;SACF;QACD,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;CACF,CAAC","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 { type MixinClassDifference } from \"../Differencing/SchemaDifference\";\nimport { type SchemaItemMergerHandler, updateSchemaItemFullName, updateSchemaItemKey } from \"./SchemaItemMerger\";\nimport { type MutableMixin } from \"../Editing/Mutable/MutableMixin\";\nimport { modifyClass } from \"./ClassMerger\";\n\n/**\n * Defines a merge handler to merge Mixin schema items.\n * @internal\n */\nexport const mixinClassMerger: SchemaItemMergerHandler<MixinClassDifference> = {\n async add(context, change) {\n if (change.difference.appliesTo === undefined) {\n return { errorMessage: \"Mixin must define appliesTo\" };\n }\n return context.editor.mixins.createFromProps(context.targetSchemaKey, {\n ...change.difference,\n name: change.itemName,\n schemaItemType: change.schemaType,\n appliesTo: await updateSchemaItemFullName(context, change.difference.appliesTo),\n });\n },\n async modify(context, change, itemKey, item: MutableMixin) {\n if(change.difference.appliesTo !== undefined) {\n const appliesTo = await updateSchemaItemKey(context, change.difference.appliesTo);\n const currentValue = await item.appliesTo;\n if (currentValue !== undefined && !appliesTo.matches(currentValue.key)) {\n return { errorMessage: `Changing the mixin '${itemKey.name}' appliesTo is not supported.` };\n }\n }\n return modifyClass(context, change, itemKey, item);\n },\n};\n\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type PhenomenonDifference } from "../Differencing/SchemaDifference";
|
|
2
|
+
import { type SchemaItemMergerHandler } from "./SchemaItemMerger";
|
|
3
|
+
/**
|
|
4
|
+
* Defines a merge handler to merge Phenomenon schema items.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare const phenomenonMerger: SchemaItemMergerHandler<PhenomenonDifference>;
|
|
8
|
+
//# sourceMappingURL=PhenomenonMerger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhenomenonMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PhenomenonMerger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,KAAK,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAGjE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,uBAAuB,CAAC,oBAAoB,CA6B1E,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.phenomenonMerger = void 0;
|
|
4
|
+
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
5
|
+
/**
|
|
6
|
+
* Defines a merge handler to merge Phenomenon schema items.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.phenomenonMerger = {
|
|
10
|
+
add: async (context, change) => {
|
|
11
|
+
if (change.difference.definition === undefined) {
|
|
12
|
+
return { errorMessage: "Phenomenon must define definition" };
|
|
13
|
+
}
|
|
14
|
+
return context.editor.phenomenons.createFromProps(context.targetSchemaKey, {
|
|
15
|
+
...change.difference,
|
|
16
|
+
name: change.itemName,
|
|
17
|
+
schemaItemType: change.schemaType,
|
|
18
|
+
definition: change.difference.definition,
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
modify: async (_context, change, itemKey, phenomenon) => {
|
|
22
|
+
if (change.difference.label !== undefined) {
|
|
23
|
+
phenomenon.setDisplayLabel(change.difference.label);
|
|
24
|
+
}
|
|
25
|
+
if (change.difference.description !== undefined) {
|
|
26
|
+
phenomenon.setDescription(change.difference.description);
|
|
27
|
+
}
|
|
28
|
+
if (change.difference.definition !== undefined) {
|
|
29
|
+
// It would be better if the validation would be part of phenomenon.setDefinition.
|
|
30
|
+
if (phenomenon.definition !== "" && change.difference.definition.toLowerCase() !== phenomenon.definition.toLowerCase())
|
|
31
|
+
throw new ecschema_metadata_1.ECObjectsError(ecschema_metadata_1.ECObjectsStatus.InvalidECJson, `The Phenomenon ${itemKey.name} has an invalid 'definition' attribute.`);
|
|
32
|
+
await phenomenon.setDefinition(change.difference.definition);
|
|
33
|
+
}
|
|
34
|
+
return { itemKey };
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=PhenomenonMerger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhenomenonMerger.js","sourceRoot":"","sources":["../../../src/Merging/PhenomenonMerger.ts"],"names":[],"mappings":";;;AAOA,gEAA2E;AAE3E;;;GAGG;AACU,QAAA,gBAAgB,GAAkD;IAC7E,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;YAC9C,OAAO,EAAE,YAAY,EAAE,mCAAmC,EAAE,CAAC;SAC9D;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;YACzE,GAAG,MAAM,CAAC,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;SACzC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAA6B,EAAE,EAAE;QACzE,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;YACxC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACrD;QACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE;YAC9C,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC1D;QACD,IAAG,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE;YAC7C,kFAAkF;YAClF,IAAI,UAAU,CAAC,UAAU,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;gBACpH,MAAM,IAAI,kCAAc,CAAC,mCAAe,CAAC,aAAa,EAAE,kBAAkB,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC;YAEnI,MAAM,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAC9D;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAC","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 { type PhenomenonDifference } from \"../Differencing/SchemaDifference\";\nimport { type MutablePhenomenon } from \"../Editing/Mutable/MutablePhenomenon\";\nimport { type SchemaItemMergerHandler} from \"./SchemaItemMerger\";\nimport { ECObjectsError, ECObjectsStatus } from \"@itwin/ecschema-metadata\";\n\n/**\n * Defines a merge handler to merge Phenomenon schema items.\n * @internal\n */\nexport const phenomenonMerger: SchemaItemMergerHandler<PhenomenonDifference> = {\n add: async (context, change) => {\n if (change.difference.definition === undefined) {\n return { errorMessage: \"Phenomenon must define definition\" };\n }\n\n return context.editor.phenomenons.createFromProps(context.targetSchemaKey, {\n ...change.difference,\n name: change.itemName,\n schemaItemType: change.schemaType,\n definition: change.difference.definition,\n });\n },\n modify: async (_context, change, itemKey, phenomenon: MutablePhenomenon) => {\n if(change.difference.label !== undefined) {\n phenomenon.setDisplayLabel(change.difference.label);\n }\n if(change.difference.description !== undefined) {\n phenomenon.setDescription(change.difference.description);\n }\n if(change.difference.definition !== undefined) {\n // It would be better if the validation would be part of phenomenon.setDefinition.\n if (phenomenon.definition !== \"\" && change.difference.definition.toLowerCase() !== phenomenon.definition.toLowerCase())\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Phenomenon ${itemKey.name} has an invalid 'definition' attribute.`);\n\n await phenomenon.setDefinition(change.difference.definition);\n }\n return { itemKey };\n },\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type PropertyCategoryDifference } from "../Differencing/SchemaDifference";
|
|
2
|
+
import { type SchemaItemMergerHandler } from "./SchemaItemMerger";
|
|
3
|
+
/**
|
|
4
|
+
* Defines a merge handler to merge PropertyCategory schema items.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare const propertyCategoryMerger: SchemaItemMergerHandler<PropertyCategoryDifference>;
|
|
8
|
+
//# sourceMappingURL=PropertyCategoryMerger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyCategoryMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PropertyCategoryMerger.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,CAAC,0BAA0B,CA0BtF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.propertyCategoryMerger = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Defines a merge handler to merge PropertyCategory schema items.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.propertyCategoryMerger = {
|
|
9
|
+
async add(context, change) {
|
|
10
|
+
if (change.difference.priority === undefined) {
|
|
11
|
+
return { errorMessage: "PropertyCategory must define priority" };
|
|
12
|
+
}
|
|
13
|
+
return context.editor.propertyCategories.createFromProps(context.targetSchemaKey, {
|
|
14
|
+
...change.difference,
|
|
15
|
+
name: change.itemName,
|
|
16
|
+
schemaItemType: change.schemaType,
|
|
17
|
+
priority: change.difference.priority,
|
|
18
|
+
});
|
|
19
|
+
},
|
|
20
|
+
async modify(context, change, itemKey, item) {
|
|
21
|
+
if (change.difference.label !== undefined) {
|
|
22
|
+
item.setDisplayLabel(change.difference.label);
|
|
23
|
+
}
|
|
24
|
+
if (change.difference.description !== undefined) {
|
|
25
|
+
item.setDescription(change.difference.description);
|
|
26
|
+
}
|
|
27
|
+
if (change.difference.priority !== undefined) {
|
|
28
|
+
// TODO: inconsistency: setPriority does not return a result whether the priority was set successfully.
|
|
29
|
+
await context.editor.propertyCategories.setPriority(itemKey, change.difference.priority);
|
|
30
|
+
}
|
|
31
|
+
return { itemKey };
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=PropertyCategoryMerger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyCategoryMerger.js","sourceRoot":"","sources":["../../../src/Merging/PropertyCategoryMerger.ts"],"names":[],"mappings":";;;AAQA;;;GAGG;AACU,QAAA,sBAAsB,GAAwD;IACzF,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM;QACvB,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC5C,OAAO,EAAE,YAAY,EAAE,uCAAuC,EAAE,CAAC;SAClE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;YAChF,GAAG,MAAM,CAAC,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;YACrB,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;SACrC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAA6B;QAClE,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;YACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC/C;QACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE;YAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SACpD;QACD,IAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC3C,uGAAuG;YACvG,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC1F;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAC","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 { type MutablePropertyCategory } from \"../Editing/Mutable/MutablePropertyCategory\";\nimport { type PropertyCategoryDifference } from \"../Differencing/SchemaDifference\";\nimport { type SchemaItemMergerHandler } from \"./SchemaItemMerger\";\n\n/**\n * Defines a merge handler to merge PropertyCategory schema items.\n * @internal\n */\nexport const propertyCategoryMerger: SchemaItemMergerHandler<PropertyCategoryDifference> = {\n async add(context, change) {\n if (change.difference.priority === undefined) {\n return { errorMessage: \"PropertyCategory must define priority\" };\n }\n\n return context.editor.propertyCategories.createFromProps(context.targetSchemaKey, {\n ...change.difference,\n name: change.itemName,\n schemaItemType: change.schemaType,\n priority: change.difference.priority,\n });\n },\n async modify(context, change, itemKey, item: MutablePropertyCategory) {\n if(change.difference.label !== undefined) {\n item.setDisplayLabel(change.difference.label);\n }\n if(change.difference.description !== undefined) {\n item.setDescription(change.difference.description);\n }\n if(change.difference.priority !== undefined) {\n // TODO: inconsistency: setPriority does not return a result whether the priority was set successfully.\n await context.editor.propertyCategories.setPriority(itemKey, change.difference.priority);\n }\n return { itemKey };\n },\n};\n"]}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SchemaMergeContext } from "./SchemaMerger";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { SchemaEditResults } from "../ecschema-editing";
|
|
2
|
+
import type { SchemaMergeContext } from "./SchemaMerger";
|
|
3
|
+
import type { ClassItemDifference, ClassPropertyDifference } from "../Differencing/SchemaDifference";
|
|
4
|
+
import { SchemaItemKey } from "@itwin/ecschema-metadata";
|
|
5
5
|
/**
|
|
6
|
-
* Updates property with attribute value changes.
|
|
7
|
-
* @param context The current merging context.
|
|
8
|
-
* @param property The Property object to be changed.
|
|
9
|
-
* @param propertyValueChanges The changes to be applied to the property.
|
|
10
6
|
* @internal
|
|
11
7
|
*/
|
|
12
|
-
export declare function
|
|
8
|
+
export declare function mergePropertyDifference(context: SchemaMergeContext, change: ClassPropertyDifference): Promise<SchemaEditResults>;
|
|
13
9
|
/**
|
|
14
|
-
* Creates a Property through a PropertyProps.
|
|
15
|
-
* @param context The current merging context.
|
|
16
|
-
* @param classKey The SchemaItemKey of the class.
|
|
17
|
-
* @param property The Property object to be cloned.
|
|
18
10
|
* @internal
|
|
19
11
|
*/
|
|
20
|
-
export declare function
|
|
12
|
+
export declare function mergeClassProperties(context: SchemaMergeContext, change: ClassItemDifference, itemKey: SchemaItemKey): Promise<SchemaEditResults>;
|
|
21
13
|
//# sourceMappingURL=PropertyMerger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PropertyMerger.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"PropertyMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PropertyMerger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAkB,MAAM,kCAAkC,CAAC;AACrH,OAAO,EAA8M,aAAa,EAAoD,MAAM,0BAA0B,CAAC;AAiBvT;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAMtI;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQvJ"}
|