@itwin/ecschema-editing 4.10.0-dev.9 → 4.10.1

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.
Files changed (155) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/lib/cjs/Differencing/Errors.d.ts +3 -3
  3. package/lib/cjs/Differencing/Errors.d.ts.map +1 -1
  4. package/lib/cjs/Differencing/Errors.js.map +1 -1
  5. package/lib/cjs/Differencing/SchemaConflicts.d.ts +17 -15
  6. package/lib/cjs/Differencing/SchemaConflicts.d.ts.map +1 -1
  7. package/lib/cjs/Differencing/SchemaConflicts.js +1 -0
  8. package/lib/cjs/Differencing/SchemaConflicts.js.map +1 -1
  9. package/lib/cjs/Differencing/SchemaDiagnosticVisitor.d.ts +3 -2
  10. package/lib/cjs/Differencing/SchemaDiagnosticVisitor.d.ts.map +1 -1
  11. package/lib/cjs/Differencing/SchemaDiagnosticVisitor.js +30 -11
  12. package/lib/cjs/Differencing/SchemaDiagnosticVisitor.js.map +1 -1
  13. package/lib/cjs/Differencing/SchemaDifference.d.ts +16 -5
  14. package/lib/cjs/Differencing/SchemaDifference.d.ts.map +1 -1
  15. package/lib/cjs/Differencing/SchemaDifference.js +3 -2
  16. package/lib/cjs/Differencing/SchemaDifference.js.map +1 -1
  17. package/lib/cjs/Differencing/SchemaDifferenceValidator.d.ts +2 -2
  18. package/lib/cjs/Differencing/SchemaDifferenceValidator.d.ts.map +1 -1
  19. package/lib/cjs/Differencing/SchemaDifferenceValidator.js +37 -44
  20. package/lib/cjs/Differencing/SchemaDifferenceValidator.js.map +1 -1
  21. package/lib/cjs/Differencing/SchemaDifferenceVisitor.d.ts.map +1 -1
  22. package/lib/cjs/Differencing/SchemaDifferenceVisitor.js +2 -0
  23. package/lib/cjs/Differencing/SchemaDifferenceVisitor.js.map +1 -1
  24. package/lib/cjs/Differencing/Utils.js +21 -22
  25. package/lib/cjs/Differencing/Utils.js.map +1 -1
  26. package/lib/cjs/Editing/Constants.js.map +1 -1
  27. package/lib/cjs/Editing/CustomAttributes.js.map +1 -1
  28. package/lib/cjs/Editing/ECClasses.js.map +1 -1
  29. package/lib/cjs/Editing/Editor.js.map +1 -1
  30. package/lib/cjs/Editing/Entities.js.map +1 -1
  31. package/lib/cjs/Editing/Enumerations.js.map +1 -1
  32. package/lib/cjs/Editing/Exception.d.ts.map +1 -1
  33. package/lib/cjs/Editing/Exception.js.map +1 -1
  34. package/lib/cjs/Editing/Formats.js.map +1 -1
  35. package/lib/cjs/Editing/InvertedUnits.js.map +1 -1
  36. package/lib/cjs/Editing/KindOfQuantities.d.ts +1 -2
  37. package/lib/cjs/Editing/KindOfQuantities.d.ts.map +1 -1
  38. package/lib/cjs/Editing/KindOfQuantities.js +2 -4
  39. package/lib/cjs/Editing/KindOfQuantities.js.map +1 -1
  40. package/lib/cjs/Editing/Mixins.js.map +1 -1
  41. package/lib/cjs/Editing/Mutable/MutableArrayProperty.js.map +1 -1
  42. package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -1
  43. package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -1
  44. package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -1
  45. package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -1
  46. package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -1
  47. package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -1
  48. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
  49. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
  50. package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -1
  51. package/lib/cjs/Editing/Mutable/MutableNavigationProperty.js.map +1 -1
  52. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -1
  53. package/lib/cjs/Editing/Mutable/MutablePrimitiveOrEnumProperty.js.map +1 -1
  54. package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -1
  55. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
  56. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.d.ts.map +1 -1
  57. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
  58. package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -1
  59. package/lib/cjs/Editing/Mutable/MutableSchemaItem.js.map +1 -1
  60. package/lib/cjs/Editing/Mutable/MutableStructProperty.js.map +1 -1
  61. package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -1
  62. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -1
  63. package/lib/cjs/Editing/Phenomena.js.map +1 -1
  64. package/lib/cjs/Editing/Properties.js +2 -2
  65. package/lib/cjs/Editing/Properties.js.map +1 -1
  66. package/lib/cjs/Editing/PropertyCategories.js.map +1 -1
  67. package/lib/cjs/Editing/RelationshipClasses.js.map +1 -1
  68. package/lib/cjs/Editing/SchemaItems.js.map +1 -1
  69. package/lib/cjs/Editing/Structs.js.map +1 -1
  70. package/lib/cjs/Editing/UnitSystems.js.map +1 -1
  71. package/lib/cjs/Editing/Units.js.map +1 -1
  72. package/lib/cjs/Merging/ClassMerger.js +1 -2
  73. package/lib/cjs/Merging/ClassMerger.js.map +1 -1
  74. package/lib/cjs/Merging/ConstantMerger.js +2 -3
  75. package/lib/cjs/Merging/ConstantMerger.js.map +1 -1
  76. package/lib/cjs/Merging/CustomAttributeClassMerger.js +2 -3
  77. package/lib/cjs/Merging/CustomAttributeClassMerger.js.map +1 -1
  78. package/lib/cjs/Merging/CustomAttributeMerger.d.ts.map +1 -1
  79. package/lib/cjs/Merging/CustomAttributeMerger.js +7 -6
  80. package/lib/cjs/Merging/CustomAttributeMerger.js.map +1 -1
  81. package/lib/cjs/Merging/Edits/RenameEditHandler.js +4 -5
  82. package/lib/cjs/Merging/Edits/RenameEditHandler.js.map +1 -1
  83. package/lib/cjs/Merging/Edits/SchemaEdits.js.map +1 -1
  84. package/lib/cjs/Merging/Edits/SkipEditHandler.d.ts.map +1 -1
  85. package/lib/cjs/Merging/Edits/SkipEditHandler.js +6 -6
  86. package/lib/cjs/Merging/Edits/SkipEditHandler.js.map +1 -1
  87. package/lib/cjs/Merging/EntityClassMerger.js +3 -4
  88. package/lib/cjs/Merging/EntityClassMerger.js.map +1 -1
  89. package/lib/cjs/Merging/EnumerationMerger.js +2 -3
  90. package/lib/cjs/Merging/EnumerationMerger.js.map +1 -1
  91. package/lib/cjs/Merging/EnumeratorMerger.js +2 -3
  92. package/lib/cjs/Merging/EnumeratorMerger.js.map +1 -1
  93. package/lib/cjs/Merging/KindOfQuantityMerger.d.ts +7 -2
  94. package/lib/cjs/Merging/KindOfQuantityMerger.d.ts.map +1 -1
  95. package/lib/cjs/Merging/KindOfQuantityMerger.js +38 -17
  96. package/lib/cjs/Merging/KindOfQuantityMerger.js.map +1 -1
  97. package/lib/cjs/Merging/MixinMerger.js +2 -3
  98. package/lib/cjs/Merging/MixinMerger.js.map +1 -1
  99. package/lib/cjs/Merging/PhenomenonMerger.js +2 -3
  100. package/lib/cjs/Merging/PhenomenonMerger.js.map +1 -1
  101. package/lib/cjs/Merging/PropertyCategoryMerger.js +2 -3
  102. package/lib/cjs/Merging/PropertyCategoryMerger.js.map +1 -1
  103. package/lib/cjs/Merging/PropertyMerger.d.ts.map +1 -1
  104. package/lib/cjs/Merging/PropertyMerger.js +9 -29
  105. package/lib/cjs/Merging/PropertyMerger.js.map +1 -1
  106. package/lib/cjs/Merging/RelationshipClassMerger.js +4 -5
  107. package/lib/cjs/Merging/RelationshipClassMerger.js.map +1 -1
  108. package/lib/cjs/Merging/SchemaMerger.js.map +1 -1
  109. package/lib/cjs/Merging/SchemaMergingVisitor.d.ts +6 -1
  110. package/lib/cjs/Merging/SchemaMergingVisitor.d.ts.map +1 -1
  111. package/lib/cjs/Merging/SchemaMergingVisitor.js +9 -0
  112. package/lib/cjs/Merging/SchemaMergingVisitor.js.map +1 -1
  113. package/lib/cjs/Merging/SchemaMergingWalker.d.ts.map +1 -1
  114. package/lib/cjs/Merging/SchemaMergingWalker.js +1 -0
  115. package/lib/cjs/Merging/SchemaMergingWalker.js.map +1 -1
  116. package/lib/cjs/Merging/SchemaReferenceMerger.js +2 -3
  117. package/lib/cjs/Merging/SchemaReferenceMerger.js.map +1 -1
  118. package/lib/cjs/Merging/StructClassMerger.js +2 -3
  119. package/lib/cjs/Merging/StructClassMerger.js.map +1 -1
  120. package/lib/cjs/Merging/UnitSystemMerger.js +2 -3
  121. package/lib/cjs/Merging/UnitSystemMerger.js.map +1 -1
  122. package/lib/cjs/Merging/Utils.d.ts +6 -1
  123. package/lib/cjs/Merging/Utils.d.ts.map +1 -1
  124. package/lib/cjs/Merging/Utils.js +26 -4
  125. package/lib/cjs/Merging/Utils.js.map +1 -1
  126. package/lib/cjs/Validation/Diagnostic.d.ts +2 -2
  127. package/lib/cjs/Validation/Diagnostic.d.ts.map +1 -1
  128. package/lib/cjs/Validation/Diagnostic.js +9 -9
  129. package/lib/cjs/Validation/Diagnostic.js.map +1 -1
  130. package/lib/cjs/Validation/DiagnosticReporter.js +1 -1
  131. package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -1
  132. package/lib/cjs/Validation/ECRules.js +19 -19
  133. package/lib/cjs/Validation/ECRules.js.map +1 -1
  134. package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -1
  135. package/lib/cjs/Validation/RuleSuppressionSet.d.ts +2 -2
  136. package/lib/cjs/Validation/RuleSuppressionSet.d.ts.map +1 -1
  137. package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -1
  138. package/lib/cjs/Validation/Rules.d.ts +1 -1
  139. package/lib/cjs/Validation/Rules.d.ts.map +1 -1
  140. package/lib/cjs/Validation/Rules.js.map +1 -1
  141. package/lib/cjs/Validation/SchemaChanges.js.map +1 -1
  142. package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -1
  143. package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -1
  144. package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -1
  145. package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -1
  146. package/lib/cjs/Validation/SchemaComparer.js +6 -6
  147. package/lib/cjs/Validation/SchemaComparer.js.map +1 -1
  148. package/lib/cjs/Validation/SchemaValidater.js.map +1 -1
  149. package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -1
  150. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  151. package/lib/cjs/ecschema-editing.d.ts.map +1 -1
  152. package/lib/cjs/ecschema-editing.js +0 -1
  153. package/lib/cjs/ecschema-editing.js.map +1 -1
  154. package/package.json +14 -14
  155. package/public/locales/en/ECSchemaEditing.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"file":"EntityClassMerger.js","sourceRoot":"","sources":["../../../src/Merging/EntityClassMerger.ts"],"names":[],"mappings":";;;AAOA,gEAAyD;AACzD,+CAA4C;AAC5C,mCAA8C;AAE9C;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAA6B;IAC7F,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACrE,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QAEjC,GAAG,MAAM,CAAC,UAAU;KACrB,CAAC,CAAC;AACL,CAAC;AAPD,wCAOC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,MAA6B,EAAE,OAAsB;IACxH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAuB,CAAC;IAClF,IAAG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAVD,8CAUC;AAED;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAAkC;IAClG,KAAI,MAAM,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,iCAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAND,wCAMC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { EntityClassDifference, EntityClassMixinDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { MutableEntityClass } from \"../Editing/Mutable/MutableEntityClass\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport { SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\nimport { modifyClass } from \"./ClassMerger\";\r\nimport { updateSchemaItemKey } from \"./Utils\";\r\n\r\n/**\r\n * Merges a new EntityClass into the target schema.\r\n * @internal\r\n */\r\nexport async function addEntityClass(context: SchemaMergeContext, change: EntityClassDifference) {\r\n await context.editor.entities.createFromProps(context.targetSchemaKey, {\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n\r\n ...change.difference,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing EntityClass in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyEntityClass(context: SchemaMergeContext, change: EntityClassDifference, itemKey: SchemaItemKey) {\r\n const item = await context.targetSchema.lookupItem(itemKey) as MutableEntityClass;\r\n if(change.difference.mixins !== undefined) {\r\n for(const mixin of change.difference.mixins) {\r\n const mixinKey = await updateSchemaItemKey(context, mixin);\r\n await context.editor.entities.addMixin(itemKey, mixinKey);\r\n }\r\n }\r\n\r\n return modifyClass(context, change, itemKey, item);\r\n}\r\n\r\n/**\r\n * Merges Mixins to Entity Class schema items.\r\n * @internal\r\n */\r\nexport async function addClassMixins(context: SchemaMergeContext, change: EntityClassMixinDifference): Promise<void> {\r\n for(const mixinFullName of change.difference) {\r\n const mixinKey = await updateSchemaItemKey(context, mixinFullName);\r\n const entityKey = new SchemaItemKey(change.itemName, context.targetSchemaKey);\r\n await context.editor.entities.addMixin(entityKey, mixinKey);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"EntityClassMerger.js","sourceRoot":"","sources":["../../../src/Merging/EntityClassMerger.ts"],"names":[],"mappings":";;AAeA,wCAOC;AAMD,8CAUC;AAMD,wCAMC;AA3CD,gEAAyD;AACzD,+CAA4C;AAC5C,mCAA8C;AAE9C;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAA6B;IAC7F,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACrE,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QAEjC,GAAG,MAAM,CAAC,UAAU;KACrB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,MAA6B,EAAE,OAAsB;IACxH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAuB,CAAC;IAClF,IAAG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAAkC;IAClG,KAAI,MAAM,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,iCAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;AACH,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 { EntityClassDifference, EntityClassMixinDifference } from \"../Differencing/SchemaDifference\";\nimport type { MutableEntityClass } from \"../Editing/Mutable/MutableEntityClass\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport { SchemaItemKey } from \"@itwin/ecschema-metadata\";\nimport { modifyClass } from \"./ClassMerger\";\nimport { updateSchemaItemKey } from \"./Utils\";\n\n/**\n * Merges a new EntityClass into the target schema.\n * @internal\n */\nexport async function addEntityClass(context: SchemaMergeContext, change: EntityClassDifference) {\n await context.editor.entities.createFromProps(context.targetSchemaKey, {\n name: change.itemName,\n schemaItemType: change.schemaType,\n\n ...change.difference,\n });\n}\n\n/**\n * Merges differences to an existing EntityClass in the target schema.\n * @internal\n */\nexport async function modifyEntityClass(context: SchemaMergeContext, change: EntityClassDifference, itemKey: SchemaItemKey) {\n const item = await context.targetSchema.lookupItem(itemKey) as MutableEntityClass;\n if(change.difference.mixins !== undefined) {\n for(const mixin of change.difference.mixins) {\n const mixinKey = await updateSchemaItemKey(context, mixin);\n await context.editor.entities.addMixin(itemKey, mixinKey);\n }\n }\n\n return modifyClass(context, change, itemKey, item);\n}\n\n/**\n * Merges Mixins to Entity Class schema items.\n * @internal\n */\nexport async function addClassMixins(context: SchemaMergeContext, change: EntityClassMixinDifference): Promise<void> {\n for(const mixinFullName of change.difference) {\n const mixinKey = await updateSchemaItemKey(context, mixinFullName);\n const entityKey = new SchemaItemKey(change.itemName, context.targetSchemaKey);\n await context.editor.entities.addMixin(entityKey, mixinKey);\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyEnumeration = exports.addEnumeration = void 0;
3
+ exports.addEnumeration = addEnumeration;
4
+ exports.modifyEnumeration = modifyEnumeration;
4
5
  /*---------------------------------------------------------------------------------------------
5
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -29,7 +30,6 @@ async function addEnumeration(context, change) {
29
30
  enumerators: change.difference.enumerators,
30
31
  });
31
32
  }
32
- exports.addEnumeration = addEnumeration;
33
33
  /**
34
34
  * Merges differences to an existing Enumeration in the target schema.
35
35
  * @internal
@@ -49,5 +49,4 @@ async function modifyEnumeration(context, change, itemKey) {
49
49
  enumeration.setIsStrict(change.difference.isStrict);
50
50
  }
51
51
  }
52
- exports.modifyEnumeration = modifyEnumeration;
53
52
  //# sourceMappingURL=EnumerationMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumerationMerger.js","sourceRoot":"","sources":["../../../src/Merging/EnumerationMerger.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,gEAAqF;AAKrF;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAA6B;IAC7F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACzE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;QAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;QACpC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;KAC3C,CAAC,CAAC;AACL,CAAC;AAnBD,wCAmBC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,MAA6B,EAAE,OAAsB;IACxH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAuB,CAAC;IACzF,IAAG,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,0CAA0C,IAAA,yCAAqB,EAAC,WAAW,CAAC,IAAK,CAAC,WAAW,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1K,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5C,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAdD,8CAcC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { primitiveTypeToString, type SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\nimport type { EnumerationDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport type { MutableEnumeration } from \"../Editing/Mutable/MutableEnumeration\";\r\n\r\n/**\r\n * Merges a new Enumeration into the target schema.\r\n * @internal\r\n */\r\nexport async function addEnumeration(context: SchemaMergeContext, change: EnumerationDifference) {\r\n if (change.difference.type === undefined) {\r\n throw new Error(\"Enumerations must define a type property\");\r\n }\r\n if (change.difference.isStrict === undefined) {\r\n throw new Error(\"Enumerations must define whether enumeration is strict.\");\r\n }\r\n if (change.difference.enumerators === undefined) {\r\n throw new Error(\"Enumerations must define at least ine enumerator.\");\r\n }\r\n\r\n await context.editor.enumerations.createFromProps(context.targetSchemaKey, {\r\n ...change.difference,\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n type: change.difference.type,\r\n isStrict: change.difference.isStrict,\r\n enumerators: change.difference.enumerators,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing Enumeration in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyEnumeration(context: SchemaMergeContext, change: EnumerationDifference, itemKey: SchemaItemKey) {\r\n const enumeration = await context.targetSchema.lookupItem(itemKey) as MutableEnumeration;\r\n if(change.difference.type !== undefined) {\r\n throw new Error(`The Enumeration ${itemKey.name} has an incompatible type. It must be \"${primitiveTypeToString(enumeration.type!)}\", not \"${change.difference.type}\".`);\r\n }\r\n if(change.difference.label !== undefined) {\r\n await context.editor.enumerations.setDisplayLabel(itemKey, change.difference.label);\r\n }\r\n if(change.difference.description !== undefined) {\r\n await context.editor.enumerations.setDescription(itemKey, change.difference.description);\r\n }\r\n if(change.difference.isStrict !== undefined) {\r\n enumeration.setIsStrict(change.difference.isStrict);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"EnumerationMerger.js","sourceRoot":"","sources":["../../../src/Merging/EnumerationMerger.ts"],"names":[],"mappings":";;AAaA,wCAmBC;AAMD,8CAcC;AApDD;;;+FAG+F;AAC/F,gEAAqF;AAKrF;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,MAA6B;IAC7F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACzE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;QAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;QACpC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,MAA6B,EAAE,OAAsB;IACxH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAuB,CAAC;IACzF,IAAG,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,0CAA0C,IAAA,yCAAqB,EAAC,WAAW,CAAC,IAAK,CAAC,WAAW,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1K,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5C,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,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 { primitiveTypeToString, type SchemaItemKey } from \"@itwin/ecschema-metadata\";\nimport type { EnumerationDifference } from \"../Differencing/SchemaDifference\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport type { MutableEnumeration } from \"../Editing/Mutable/MutableEnumeration\";\n\n/**\n * Merges a new Enumeration into the target schema.\n * @internal\n */\nexport async function addEnumeration(context: SchemaMergeContext, change: EnumerationDifference) {\n if (change.difference.type === undefined) {\n throw new Error(\"Enumerations must define a type property\");\n }\n if (change.difference.isStrict === undefined) {\n throw new Error(\"Enumerations must define whether enumeration is strict.\");\n }\n if (change.difference.enumerators === undefined) {\n throw new Error(\"Enumerations must define at least ine enumerator.\");\n }\n\n await context.editor.enumerations.createFromProps(context.targetSchemaKey, {\n ...change.difference,\n name: change.itemName,\n schemaItemType: change.schemaType,\n type: change.difference.type,\n isStrict: change.difference.isStrict,\n enumerators: change.difference.enumerators,\n });\n}\n\n/**\n * Merges differences to an existing Enumeration in the target schema.\n * @internal\n */\nexport async function modifyEnumeration(context: SchemaMergeContext, change: EnumerationDifference, itemKey: SchemaItemKey) {\n const enumeration = await context.targetSchema.lookupItem(itemKey) as MutableEnumeration;\n if(change.difference.type !== undefined) {\n throw new Error(`The Enumeration ${itemKey.name} has an incompatible type. It must be \"${primitiveTypeToString(enumeration.type!)}\", not \"${change.difference.type}\".`);\n }\n if(change.difference.label !== undefined) {\n await context.editor.enumerations.setDisplayLabel(itemKey, change.difference.label);\n }\n if(change.difference.description !== undefined) {\n await context.editor.enumerations.setDescription(itemKey, change.difference.description);\n }\n if(change.difference.isStrict !== undefined) {\n enumeration.setIsStrict(change.difference.isStrict);\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyEnumerator = exports.addEnumerator = void 0;
3
+ exports.addEnumerator = addEnumerator;
4
+ exports.modifyEnumerator = modifyEnumerator;
4
5
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
5
6
  /**
6
7
  * Merges a new Enumerator into the target schema.
@@ -21,7 +22,6 @@ async function addEnumerator(context, change) {
21
22
  description: change.difference.description,
22
23
  });
23
24
  }
24
- exports.addEnumerator = addEnumerator;
25
25
  /**
26
26
  * Merges differences to an existing Enumerator in the target schema.
27
27
  * @internal
@@ -37,5 +37,4 @@ async function modifyEnumerator(context, change, itemKey) {
37
37
  await context.editor.enumerations.setEnumeratorLabel(itemKey, change.path, change.difference.label);
38
38
  }
39
39
  }
40
- exports.modifyEnumerator = modifyEnumerator;
41
40
  //# sourceMappingURL=EnumeratorMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumeratorMerger.js","sourceRoot":"","sources":["../../../src/Merging/EnumeratorMerger.ts"],"names":[],"mappings":";;;AAMA,gEAAyD;AAEzD;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,iCAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5E,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE;QACvD,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;QAC5B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;QAC9B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;QAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;KAC3C,CAAC,CAAC;AACL,CAAC;AAfD,sCAeC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC7G,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAClH,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAVD,4CAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { EnumeratorDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport { SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\n\r\n/**\r\n * Merges a new Enumerator into the target schema.\r\n * @internal\r\n */\r\nexport async function addEnumerator(context: SchemaMergeContext, change: EnumeratorDifference) {\r\n if (change.difference.name === undefined) {\r\n throw new Error(\"Enumerators must define a name\");\r\n }\r\n if (change.difference.value === undefined) {\r\n throw new Error(\"Enumerators must define a value\");\r\n }\r\n\r\n const itemKey = new SchemaItemKey(change.itemName, context.targetSchemaKey);\r\n await context.editor.enumerations.addEnumerator(itemKey, {\r\n name: change.difference.name,\r\n value: change.difference.value,\r\n label: change.difference.label,\r\n description: change.difference.description,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing Enumerator in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyEnumerator(context: SchemaMergeContext, change: EnumeratorDifference, itemKey: SchemaItemKey) {\r\n if(change.difference.value !== undefined) {\r\n throw new Error(`Failed to merge enumerator attribute, Enumerator \"${change.path}\" has different values.`);\r\n }\r\n if(change.difference.description !== undefined) {\r\n await context.editor.enumerations.setEnumeratorDescription(itemKey, change.path, change.difference.description);\r\n }\r\n if(change.difference.label !== undefined) {\r\n await context.editor.enumerations.setEnumeratorLabel(itemKey, change.path, change.difference.label);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"EnumeratorMerger.js","sourceRoot":"","sources":["../../../src/Merging/EnumeratorMerger.ts"],"names":[],"mappings":";;AAYA,sCAeC;AAMD,4CAUC;AArCD,gEAAyD;AAEzD;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,iCAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5E,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE;QACvD,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;QAC5B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;QAC9B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;QAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;KAC3C,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC7G,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAClH,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC;AACH,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 { EnumeratorDifference } from \"../Differencing/SchemaDifference\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport { SchemaItemKey } from \"@itwin/ecschema-metadata\";\n\n/**\n * Merges a new Enumerator into the target schema.\n * @internal\n */\nexport async function addEnumerator(context: SchemaMergeContext, change: EnumeratorDifference) {\n if (change.difference.name === undefined) {\n throw new Error(\"Enumerators must define a name\");\n }\n if (change.difference.value === undefined) {\n throw new Error(\"Enumerators must define a value\");\n }\n\n const itemKey = new SchemaItemKey(change.itemName, context.targetSchemaKey);\n await context.editor.enumerations.addEnumerator(itemKey, {\n name: change.difference.name,\n value: change.difference.value,\n label: change.difference.label,\n description: change.difference.description,\n });\n}\n\n/**\n * Merges differences to an existing Enumerator in the target schema.\n * @internal\n */\nexport async function modifyEnumerator(context: SchemaMergeContext, change: EnumeratorDifference, itemKey: SchemaItemKey) {\n if(change.difference.value !== undefined) {\n throw new Error(`Failed to merge enumerator attribute, Enumerator \"${change.path}\" has different values.`);\n }\n if(change.difference.description !== undefined) {\n await context.editor.enumerations.setEnumeratorDescription(itemKey, change.path, change.difference.description);\n }\n if(change.difference.label !== undefined) {\n await context.editor.enumerations.setEnumeratorLabel(itemKey, change.path, change.difference.label);\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { KindOfQuantityDifference } from "../Differencing/SchemaDifference";
1
+ import type { KindOfQuantityDifference, KindOfQuantityPresentationFormatDifference } from "../Differencing/SchemaDifference";
2
2
  import type { SchemaMergeContext } from "./SchemaMerger";
3
- import type { SchemaItemKey } from "@itwin/ecschema-metadata";
3
+ import { SchemaItemKey } from "@itwin/ecschema-metadata";
4
4
  /**
5
5
  * Merges a new KindOfQuantity into the target schema.
6
6
  * @internal
@@ -11,4 +11,9 @@ export declare function addKindOfQuantity(context: SchemaMergeContext, change: K
11
11
  * @internal
12
12
  */
13
13
  export declare function modifyKindOfQuantity(context: SchemaMergeContext, change: KindOfQuantityDifference, itemKey: SchemaItemKey): Promise<void>;
14
+ /**
15
+ * Merges a new presentation format into the target kind of quantity
16
+ * @internal
17
+ */
18
+ export declare function addPresentationFormat(context: SchemaMergeContext, change: KindOfQuantityPresentationFormatDifference): Promise<void>;
14
19
  //# sourceMappingURL=KindOfQuantityMerger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KindOfQuantityMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/KindOfQuantityMerger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,iBA0BpG;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,aAAa,iBAe/H"}
1
+ {"version":3,"file":"KindOfQuantityMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/KindOfQuantityMerger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,0CAA0C,EAAE,MAAM,kCAAkC,CAAC;AAE7H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAwC,aAAa,EAAQ,MAAM,0BAA0B,CAAC;AAGrG;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,iBA4BpG;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,aAAa,iBAe/H;AACD;;;EAGE;AACF,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,0CAA0C,iBAU1H"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyKindOfQuantity = exports.addKindOfQuantity = void 0;
3
+ exports.addKindOfQuantity = addKindOfQuantity;
4
+ exports.modifyKindOfQuantity = modifyKindOfQuantity;
5
+ exports.addPresentationFormat = addPresentationFormat;
6
+ const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
4
7
  const Utils_1 = require("./Utils");
5
8
  /**
6
9
  * Merges a new KindOfQuantity into the target schema.
@@ -17,11 +20,13 @@ async function addKindOfQuantity(context, change) {
17
20
  if (change.difference.presentationUnits) {
18
21
  if (Array.isArray(change.difference.presentationUnits)) {
19
22
  for (let index = 0; index < change.difference.presentationUnits.length; index++) {
20
- change.difference.presentationUnits[index] = await updateOverrideFormat(context, change.difference.presentationUnits[index]);
23
+ const presentationFormat = await updateOverrideFormat(context, change.difference.presentationUnits[index]);
24
+ change.difference.presentationUnits[index] = presentationFormat.fullName;
21
25
  }
22
26
  }
23
27
  else {
24
- change.difference.presentationUnits = await updateOverrideFormat(context, change.difference.presentationUnits);
28
+ const presentationFormat = await updateOverrideFormat(context, change.difference.presentationUnits);
29
+ change.difference.presentationUnits = presentationFormat.name;
25
30
  }
26
31
  }
27
32
  await context.editor.kindOfQuantities.createFromProps(context.targetSchemaKey, {
@@ -33,7 +38,6 @@ async function addKindOfQuantity(context, change) {
33
38
  relativeError: change.difference.relativeError,
34
39
  });
35
40
  }
36
- exports.addKindOfQuantity = addKindOfQuantity;
37
41
  /**
38
42
  * Merges differences to an existing KindOfQuantity in the target schema.
39
43
  * @internal
@@ -54,21 +58,38 @@ async function modifyKindOfQuantity(context, change, itemKey) {
54
58
  throw new Error(`Changing the kind of quantity '${itemKey.name}' persistenceUnit is not supported.`);
55
59
  }
56
60
  }
57
- exports.modifyKindOfQuantity = modifyKindOfQuantity;
61
+ /**
62
+ * Merges a new presentation format into the target kind of quantity
63
+ * @internal
64
+ */
65
+ async function addPresentationFormat(context, change) {
66
+ for (const formatString of change.difference) {
67
+ const koqKey = new ecschema_metadata_1.SchemaItemKey(change.itemName, context.targetSchemaKey);
68
+ const presentationFormat = await updateOverrideFormat(context, formatString);
69
+ if (ecschema_metadata_1.OverrideFormat.isOverrideFormat(presentationFormat)) {
70
+ await context.editor.kindOfQuantities.addPresentationOverrideFormat(koqKey, presentationFormat);
71
+ }
72
+ else {
73
+ await context.editor.kindOfQuantities.addPresentationFormat(koqKey, presentationFormat.key);
74
+ }
75
+ }
76
+ }
58
77
  async function updateOverrideFormat(context, formatString) {
59
78
  // https://www.itwinjs.org/v1/bis/ec/kindofquantity/#format-string
60
- const match = formatString.match(/^([^(]+)\((\d+)\)\[(.*)\]$/);
61
- if (match === null) {
62
- return formatString;
63
- }
64
- const originalFormat = match[1];
65
- const updatedFormat = await (0, Utils_1.updateSchemaItemFullName)(context, originalFormat);
66
- const unitOverrides = match[3].split("][");
67
- for (let index = 0; index < unitOverrides.length; index++) {
68
- const [unit, label] = unitOverrides[index].split("|");
69
- const updatedUnit = await (0, Utils_1.updateSchemaItemFullName)(context, unit);
70
- unitOverrides[index] = `${updatedUnit}${label ? `|${label}` : ""}`;
79
+ const match = ecschema_metadata_1.OverrideFormat.parseFormatString(formatString);
80
+ const formatKey = await (0, Utils_1.updateSchemaItemKey)(context, match.name);
81
+ const format = await context.targetSchema.lookupItem(formatKey);
82
+ if (undefined === match.precision && undefined === match.unitAndLabels)
83
+ return format;
84
+ let unitAndLabels;
85
+ if (undefined !== match.unitAndLabels) {
86
+ unitAndLabels = [];
87
+ for (const unitOverride of match.unitAndLabels) {
88
+ const unitKey = await (0, Utils_1.updateSchemaItemKey)(context, unitOverride[0]);
89
+ const unit = await context.targetSchema.lookupItem(unitKey);
90
+ unitAndLabels.push([unit, unitOverride[1]]);
91
+ }
71
92
  }
72
- return `${updatedFormat}(${match[2]})[${unitOverrides.join("][")}]`;
93
+ return context.editor.kindOfQuantities.createFormatOverride(formatKey, match.precision, unitAndLabels);
73
94
  }
74
95
  //# sourceMappingURL=KindOfQuantityMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KindOfQuantityMerger.js","sourceRoot":"","sources":["../../../src/Merging/KindOfQuantityMerger.ts"],"names":[],"mappings":";;;AAQA,mCAAmD;AAEnD;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,MAAgC;IACnG,IAAI,MAAM,CAAC,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,MAAM,IAAA,gCAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/G,IAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtD,KAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/E,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QAC7E,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;QAClD,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB;QACtD,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;KAC/C,CAAC,CAAC;AACL,CAAC;AA1BD,8CA0BC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CAAC,OAA2B,EAAE,MAAgC,EAAE,OAAsB;IAC9H,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAA0B,CAAC;IAC/F,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACjD,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACnD,0FAA0F;QAC1F,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,CAAC,IAAI,qCAAqC,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAfD,oDAeC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAA2B,EAAE,YAAoB;IACnF,kEAAkE;IAClE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC/D,IAAG,KAAK,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,IAAA,gCAAwB,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAE9E,MAAM,aAAa,GAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAI,IAAI,KAAK,GAAC,CAAC,EAAE,KAAK,GAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAwB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { KindOfQuantityDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { MutableKindOfQuantity } from \"../Editing/Mutable/MutableKindOfQuantity\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport type { SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\nimport { updateSchemaItemFullName } from \"./Utils\";\r\n\r\n/**\r\n * Merges a new KindOfQuantity into the target schema.\r\n * @internal\r\n */\r\nexport async function addKindOfQuantity(context: SchemaMergeContext, change: KindOfQuantityDifference) {\r\n if (change.difference.persistenceUnit === undefined) {\r\n throw new Error(\"KindOfQuantity must define persistenceUnit\");\r\n }\r\n if (change.difference.relativeError === undefined) {\r\n throw new Error(\"KindOfQuantity must define relativeError\");\r\n }\r\n change.difference.persistenceUnit = await updateSchemaItemFullName(context, change.difference.persistenceUnit);\r\n if(change.difference.presentationUnits) {\r\n if(Array.isArray(change.difference.presentationUnits)) {\r\n for(let index = 0; index < change.difference.presentationUnits.length; index++) {\r\n change.difference.presentationUnits[index] = await updateOverrideFormat(context, change.difference.presentationUnits[index]);\r\n }\r\n } else {\r\n change.difference.presentationUnits = await updateOverrideFormat(context, change.difference.presentationUnits);\r\n }\r\n }\r\n\r\n await context.editor.kindOfQuantities.createFromProps(context.targetSchemaKey, {\r\n ...change.difference,\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n persistenceUnit: change.difference.persistenceUnit,\r\n presentationUnits: change.difference.presentationUnits,\r\n relativeError: change.difference.relativeError,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing KindOfQuantity in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyKindOfQuantity(context: SchemaMergeContext, change: KindOfQuantityDifference, itemKey: SchemaItemKey) {\r\n const kindOfQuantity = await context.targetSchema.lookupItem(itemKey) as MutableKindOfQuantity;\r\n if(change.difference.label !== undefined) {\r\n await context.editor.kindOfQuantities.setDisplayLabel(itemKey, change.difference.label);\r\n }\r\n if(change.difference.description !== undefined) {\r\n await context.editor.kindOfQuantities.setDescription(itemKey, change.difference.description);\r\n }\r\n if(change.difference.relativeError !== undefined) {\r\n kindOfQuantity.setRelativeError(change.difference.relativeError);\r\n }\r\n if(change.difference.persistenceUnit !== undefined) {\r\n // TODO: It should be checked if the unit is the same, but referring to the source schema.\r\n throw new Error(`Changing the kind of quantity '${itemKey.name}' persistenceUnit is not supported.`);\r\n }\r\n}\r\n\r\nasync function updateOverrideFormat(context: SchemaMergeContext, formatString: string) {\r\n // https://www.itwinjs.org/v1/bis/ec/kindofquantity/#format-string\r\n const match = formatString.match(/^([^(]+)\\((\\d+)\\)\\[(.*)\\]$/);\r\n if(match === null) {\r\n return formatString;\r\n }\r\n\r\n const originalFormat = match[1];\r\n const updatedFormat = await updateSchemaItemFullName(context, originalFormat);\r\n\r\n const unitOverrides = match[3].split(\"][\");\r\n for(let index=0; index< unitOverrides.length; index++) {\r\n const [unit, label] = unitOverrides[index].split(\"|\");\r\n const updatedUnit = await updateSchemaItemFullName(context, unit);\r\n unitOverrides[index] = `${updatedUnit}${label ? `|${label}` : \"\"}`;\r\n }\r\n\r\n return `${updatedFormat}(${match[2]})[${unitOverrides.join(\"][\")}]`;\r\n}\r\n"]}
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, KindOfQuantityPresentationFormatDifference } from \"../Differencing/SchemaDifference\";\nimport type { MutableKindOfQuantity } from \"../Editing/Mutable/MutableKindOfQuantity\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport { Format, InvertedUnit, OverrideFormat, SchemaItemKey, Unit } from \"@itwin/ecschema-metadata\";\nimport { updateSchemaItemFullName, updateSchemaItemKey } from \"./Utils\";\n\n/**\n * Merges a new KindOfQuantity into the target schema.\n * @internal\n */\nexport async function addKindOfQuantity(context: SchemaMergeContext, change: KindOfQuantityDifference) {\n if (change.difference.persistenceUnit === undefined) {\n throw new Error(\"KindOfQuantity must define persistenceUnit\");\n }\n if (change.difference.relativeError === undefined) {\n throw new Error(\"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 const presentationFormat = await updateOverrideFormat(context, change.difference.presentationUnits[index]);\n change.difference.presentationUnits[index] = presentationFormat.fullName;\n }\n } else {\n const presentationFormat = await updateOverrideFormat(context, change.difference.presentationUnits);\n change.difference.presentationUnits = presentationFormat.name;\n }\n }\n\n await 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\n/**\n * Merges differences to an existing KindOfQuantity in the target schema.\n * @internal\n */\nexport async function modifyKindOfQuantity(context: SchemaMergeContext, change: KindOfQuantityDifference, itemKey: SchemaItemKey) {\n const kindOfQuantity = await context.targetSchema.lookupItem(itemKey) as MutableKindOfQuantity;\n if(change.difference.label !== undefined) {\n await context.editor.kindOfQuantities.setDisplayLabel(itemKey, change.difference.label);\n }\n if(change.difference.description !== undefined) {\n await context.editor.kindOfQuantities.setDescription(itemKey, change.difference.description);\n }\n if(change.difference.relativeError !== undefined) {\n kindOfQuantity.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}\n/**\n * Merges a new presentation format into the target kind of quantity\n * @internal\n*/\nexport async function addPresentationFormat(context: SchemaMergeContext, change: KindOfQuantityPresentationFormatDifference) {\n for (const formatString of change.difference) {\n const koqKey = new SchemaItemKey(change.itemName, context.targetSchemaKey);\n const presentationFormat = await updateOverrideFormat(context, formatString);\n if (OverrideFormat.isOverrideFormat(presentationFormat)) {\n await context.editor.kindOfQuantities.addPresentationOverrideFormat(koqKey, presentationFormat);\n } else {\n await context.editor.kindOfQuantities.addPresentationFormat(koqKey, presentationFormat.key);\n }\n }\n}\n\nasync function updateOverrideFormat(context: SchemaMergeContext, formatString: string): Promise<Format | OverrideFormat> {\n // https://www.itwinjs.org/v1/bis/ec/kindofquantity/#format-string\n const match = OverrideFormat.parseFormatString(formatString);\n const formatKey = await updateSchemaItemKey(context, match.name);\n const format = await context.targetSchema.lookupItem(formatKey) as Format;\n\n if (undefined === match.precision && undefined === match.unitAndLabels)\n return format;\n\n let unitAndLabels: Array<[Unit | InvertedUnit, string | undefined]> | undefined;\n if (undefined !== match.unitAndLabels) {\n unitAndLabels = [];\n for (const unitOverride of match.unitAndLabels) {\n const unitKey = await updateSchemaItemKey(context, unitOverride[0]);\n const unit = await context.targetSchema.lookupItem(unitKey) as Unit | InvertedUnit;\n unitAndLabels.push([unit, unitOverride[1]]);\n }\n }\n return context.editor.kindOfQuantities.createFormatOverride(formatKey, match.precision, unitAndLabels);\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyMixinClass = exports.addMixinClass = void 0;
3
+ exports.addMixinClass = addMixinClass;
4
+ exports.modifyMixinClass = modifyMixinClass;
4
5
  const Utils_1 = require("./Utils");
5
6
  const ClassMerger_1 = require("./ClassMerger");
6
7
  /**
@@ -18,7 +19,6 @@ async function addMixinClass(context, change) {
18
19
  appliesTo: await (0, Utils_1.updateSchemaItemFullName)(context, change.difference.appliesTo),
19
20
  });
20
21
  }
21
- exports.addMixinClass = addMixinClass;
22
22
  /**
23
23
  * Merges differences to an existing Mixin in the target schema.
24
24
  * @internal
@@ -34,5 +34,4 @@ async function modifyMixinClass(context, change, itemKey) {
34
34
  }
35
35
  return (0, ClassMerger_1.modifyClass)(context, change, itemKey, mixin);
36
36
  }
37
- exports.modifyMixinClass = modifyMixinClass;
38
37
  //# sourceMappingURL=MixinMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MixinMerger.js","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":";;;AAQA,mCAAwE;AACxE,+CAA4C;AAE5C;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACnE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,SAAS,EAAE,MAAM,IAAA,gCAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChF,CAAC,CAAC;AACL,CAAC;AAVD,sCAUC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAiB,CAAC;IAC7E,IAAG,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;QAC3C,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAXD,4CAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { MixinClassDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { MutableMixin } from \"../Editing/Mutable/MutableMixin\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport type { SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\nimport { updateSchemaItemFullName, updateSchemaItemKey } from \"./Utils\";\r\nimport { modifyClass } from \"./ClassMerger\";\r\n\r\n/**\r\n * Merges a new Mixin into the target schema.\r\n * @internal\r\n */\r\nexport async function addMixinClass(context: SchemaMergeContext, change: MixinClassDifference) {\r\n if (change.difference.appliesTo === undefined) {\r\n throw new Error(\"Mixin must define appliesTo\");\r\n }\r\n await context.editor.mixins.createFromProps(context.targetSchemaKey, {\r\n ...change.difference,\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n appliesTo: await updateSchemaItemFullName(context, change.difference.appliesTo),\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing Mixin in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyMixinClass(context: SchemaMergeContext, change: MixinClassDifference, itemKey: SchemaItemKey) {\r\n const mixin = await context.targetSchema.lookupItem(itemKey) as MutableMixin;\r\n if(change.difference.appliesTo !== undefined) {\r\n const appliesTo = await updateSchemaItemKey(context, change.difference.appliesTo);\r\n const currentValue = await mixin.appliesTo;\r\n if (currentValue !== undefined && !appliesTo.matches(currentValue.key)) {\r\n throw new Error(`Changing the mixin '${itemKey.name}' appliesTo is not supported.`);\r\n }\r\n }\r\n\r\n return modifyClass(context, change, itemKey, mixin);\r\n}\r\n"]}
1
+ {"version":3,"file":"MixinMerger.js","sourceRoot":"","sources":["../../../src/Merging/MixinMerger.ts"],"names":[],"mappings":";;AAeA,sCAUC;AAMD,4CAWC;AAlCD,mCAAwE;AACxE,+CAA4C;AAE5C;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACnE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,SAAS,EAAE,MAAM,IAAA,gCAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAiB,CAAC;IAC7E,IAAG,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;QAC3C,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,OAAO,IAAA,yBAAW,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtD,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 { MutableMixin } from \"../Editing/Mutable/MutableMixin\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport type { SchemaItemKey } from \"@itwin/ecschema-metadata\";\nimport { updateSchemaItemFullName, updateSchemaItemKey } from \"./Utils\";\nimport { modifyClass } from \"./ClassMerger\";\n\n/**\n * Merges a new Mixin into the target schema.\n * @internal\n */\nexport async function addMixinClass(context: SchemaMergeContext, change: MixinClassDifference) {\n if (change.difference.appliesTo === undefined) {\n throw new Error(\"Mixin must define appliesTo\");\n }\n await 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\n/**\n * Merges differences to an existing Mixin in the target schema.\n * @internal\n */\nexport async function modifyMixinClass(context: SchemaMergeContext, change: MixinClassDifference, itemKey: SchemaItemKey) {\n const mixin = await context.targetSchema.lookupItem(itemKey) as MutableMixin;\n if(change.difference.appliesTo !== undefined) {\n const appliesTo = await updateSchemaItemKey(context, change.difference.appliesTo);\n const currentValue = await mixin.appliesTo;\n if (currentValue !== undefined && !appliesTo.matches(currentValue.key)) {\n throw new Error(`Changing the mixin '${itemKey.name}' appliesTo is not supported.`);\n }\n }\n\n return modifyClass(context, change, itemKey, mixin);\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyPhenomenon = exports.addPhenomenon = void 0;
3
+ exports.addPhenomenon = addPhenomenon;
4
+ exports.modifyPhenomenon = modifyPhenomenon;
4
5
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
5
6
  /**
6
7
  * Merges a new Phenomenon into the target schema.
@@ -17,7 +18,6 @@ async function addPhenomenon(context, change) {
17
18
  definition: change.difference.definition,
18
19
  });
19
20
  }
20
- exports.addPhenomenon = addPhenomenon;
21
21
  /**
22
22
  * Merges differences to an existing Phenomenon in the target schema.
23
23
  * @internal
@@ -37,5 +37,4 @@ async function modifyPhenomenon(context, change, itemKey) {
37
37
  await phenomenon.setDefinition(change.difference.definition);
38
38
  }
39
39
  }
40
- exports.modifyPhenomenon = modifyPhenomenon;
41
40
  //# sourceMappingURL=PhenomenonMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhenomenonMerger.js","sourceRoot":"","sources":["../../../src/Merging/PhenomenonMerger.ts"],"names":[],"mappings":";;;AAOA,gEAA+F;AAE/F;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACxE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;KACzC,CAAC,CAAC;AACL,CAAC;AAXD,sCAWC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAsB,CAAC;IACvF,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,IAAG,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9C,kFAAkF;QAClF,IAAI,UAAU,CAAC,UAAU,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;YACpH,MAAM,IAAI,kCAAc,CAAC,mCAAe,CAAC,aAAa,EAAE,kBAAkB,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC;QAEnI,MAAM,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAhBD,4CAgBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { PhenomenonDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { MutablePhenomenon } from \"../Editing/Mutable/MutablePhenomenon\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport { ECObjectsError, ECObjectsStatus, type SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\n\r\n/**\r\n * Merges a new Phenomenon into the target schema.\r\n * @internal\r\n */\r\nexport async function addPhenomenon(context: SchemaMergeContext, change: PhenomenonDifference) {\r\n if (change.difference.definition === undefined) {\r\n throw new Error(\"Phenomenon must define definition\");\r\n }\r\n\r\n await context.editor.phenomenons.createFromProps(context.targetSchemaKey, {\r\n ...change.difference,\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n definition: change.difference.definition,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing Phenomenon in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyPhenomenon(context: SchemaMergeContext, change: PhenomenonDifference, itemKey: SchemaItemKey) {\r\n const phenomenon = await context.targetSchema.lookupItem(itemKey) as MutablePhenomenon;\r\n if(change.difference.label !== undefined) {\r\n await context.editor.phenomenons.setDisplayLabel(itemKey, change.difference.label);\r\n }\r\n if(change.difference.description !== undefined) {\r\n await context.editor.phenomenons.setDescription(itemKey, change.difference.description);\r\n }\r\n\r\n if(change.difference.definition !== undefined) {\r\n // It would be better if the validation would be part of phenomenon.setDefinition.\r\n if (phenomenon.definition !== \"\" && change.difference.definition.toLowerCase() !== phenomenon.definition.toLowerCase())\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Phenomenon ${itemKey.name} has an invalid 'definition' attribute.`);\r\n\r\n await phenomenon.setDefinition(change.difference.definition);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PhenomenonMerger.js","sourceRoot":"","sources":["../../../src/Merging/PhenomenonMerger.ts"],"names":[],"mappings":";;AAaA,sCAWC;AAMD,4CAgBC;AAvCD,gEAA+F;AAE/F;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,MAA4B;IAC3F,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QACxE,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,MAA4B,EAAE,OAAsB;IACtH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAsB,CAAC;IACvF,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,IAAG,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9C,kFAAkF;QAClF,IAAI,UAAU,CAAC,UAAU,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;YACpH,MAAM,IAAI,kCAAc,CAAC,mCAAe,CAAC,aAAa,EAAE,kBAAkB,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC;QAEnI,MAAM,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;AACH,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 { SchemaMergeContext } from \"./SchemaMerger\";\nimport { ECObjectsError, ECObjectsStatus, type SchemaItemKey } from \"@itwin/ecschema-metadata\";\n\n/**\n * Merges a new Phenomenon into the target schema.\n * @internal\n */\nexport async function addPhenomenon(context: SchemaMergeContext, change: PhenomenonDifference) {\n if (change.difference.definition === undefined) {\n throw new Error(\"Phenomenon must define definition\");\n }\n\n await 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\n/**\n * Merges differences to an existing Phenomenon in the target schema.\n * @internal\n */\nexport async function modifyPhenomenon(context: SchemaMergeContext, change: PhenomenonDifference, itemKey: SchemaItemKey) {\n const phenomenon = await context.targetSchema.lookupItem(itemKey) as MutablePhenomenon;\n if(change.difference.label !== undefined) {\n await context.editor.phenomenons.setDisplayLabel(itemKey, change.difference.label);\n }\n if(change.difference.description !== undefined) {\n await context.editor.phenomenons.setDescription(itemKey, change.difference.description);\n }\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}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modifyPropertyCategory = exports.addPropertyCategory = void 0;
3
+ exports.addPropertyCategory = addPropertyCategory;
4
+ exports.modifyPropertyCategory = modifyPropertyCategory;
4
5
  /**
5
6
  * Merges a new PropertyCategory into the target schema.
6
7
  * @internal
@@ -16,7 +17,6 @@ async function addPropertyCategory(context, change) {
16
17
  priority: change.difference.priority,
17
18
  });
18
19
  }
19
- exports.addPropertyCategory = addPropertyCategory;
20
20
  /**
21
21
  * Merges differences to an existing PropertyCategory in the target schema.
22
22
  * @internal
@@ -32,5 +32,4 @@ async function modifyPropertyCategory(context, change, itemKey) {
32
32
  await context.editor.propertyCategories.setPriority(itemKey, change.difference.priority);
33
33
  }
34
34
  }
35
- exports.modifyPropertyCategory = modifyPropertyCategory;
36
35
  //# sourceMappingURL=PropertyCategoryMerger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyCategoryMerger.js","sourceRoot":"","sources":["../../../src/Merging/PropertyCategoryMerger.ts"],"names":[],"mappings":";;;AAQA;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAA2B,EAAE,MAAkC;IACvG,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QAC/E,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;KACrC,CAAC,CAAC;AACL,CAAC;AAXD,kDAWC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAA2B,EAAE,MAAkC,EAAE,OAAsB;IAClI,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACjG,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAVD,wDAUC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport type { PropertyCategoryDifference } from \"../Differencing/SchemaDifference\";\r\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\r\nimport type { SchemaItemKey } from \"@itwin/ecschema-metadata\";\r\n\r\n/**\r\n * Merges a new PropertyCategory into the target schema.\r\n * @internal\r\n */\r\nexport async function addPropertyCategory(context: SchemaMergeContext, change: PropertyCategoryDifference) {\r\n if (change.difference.priority === undefined) {\r\n throw new Error(\"PropertyCategory must define priority\");\r\n }\r\n\r\n await context.editor.propertyCategories.createFromProps(context.targetSchemaKey, {\r\n ...change.difference,\r\n name: change.itemName,\r\n schemaItemType: change.schemaType,\r\n priority: change.difference.priority,\r\n });\r\n}\r\n\r\n/**\r\n * Merges differences to an existing PropertyCategory in the target schema.\r\n * @internal\r\n */\r\nexport async function modifyPropertyCategory(context: SchemaMergeContext, change: PropertyCategoryDifference, itemKey: SchemaItemKey) {\r\n if(change.difference.label !== undefined) {\r\n await context.editor.propertyCategories.setDisplayLabel(itemKey, change.difference.label);\r\n }\r\n if(change.difference.description !== undefined) {\r\n await context.editor.propertyCategories.setDescription(itemKey, change.difference.description);\r\n }\r\n if(change.difference.priority !== undefined) {\r\n await context.editor.propertyCategories.setPriority(itemKey, change.difference.priority);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PropertyCategoryMerger.js","sourceRoot":"","sources":["../../../src/Merging/PropertyCategoryMerger.ts"],"names":[],"mappings":";;AAYA,kDAWC;AAMD,wDAUC;AA/BD;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAA2B,EAAE,MAAkC;IACvG,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE;QAC/E,GAAG,MAAM,CAAC,UAAU;QACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAA2B,EAAE,MAAkC,EAAE,OAAsB;IAClI,IAAG,MAAM,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACjG,CAAC;IACD,IAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3F,CAAC;AACH,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 { PropertyCategoryDifference } from \"../Differencing/SchemaDifference\";\nimport type { SchemaMergeContext } from \"./SchemaMerger\";\nimport type { SchemaItemKey } from \"@itwin/ecschema-metadata\";\n\n/**\n * Merges a new PropertyCategory into the target schema.\n * @internal\n */\nexport async function addPropertyCategory(context: SchemaMergeContext, change: PropertyCategoryDifference) {\n if (change.difference.priority === undefined) {\n throw new Error(\"PropertyCategory must define priority\");\n }\n\n await 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\n/**\n * Merges differences to an existing PropertyCategory in the target schema.\n * @internal\n */\nexport async function modifyPropertyCategory(context: SchemaMergeContext, change: PropertyCategoryDifference, itemKey: SchemaItemKey) {\n if(change.difference.label !== undefined) {\n await context.editor.propertyCategories.setDisplayLabel(itemKey, change.difference.label);\n }\n if(change.difference.description !== undefined) {\n await context.editor.propertyCategories.setDescription(itemKey, change.difference.description);\n }\n if(change.difference.priority !== undefined) {\n await context.editor.propertyCategories.setPriority(itemKey, change.difference.priority);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PropertyMerger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAkB,MAAM,kCAAkC,CAAC;AACxH,OAAO,EAA8M,aAAa,EAAoD,MAAM,0BAA0B,CAAC;AAgBvT;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzH;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7I"}
1
+ {"version":3,"file":"PropertyMerger.d.ts","sourceRoot":"","sources":["../../../src/Merging/PropertyMerger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAkB,MAAM,kCAAkC,CAAC;AACxH,OAAO,EAA8M,aAAa,EAAoD,MAAM,0BAA0B,CAAC;AAevT;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzH;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7I"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeClassProperties = exports.mergePropertyDifference = void 0;
3
+ exports.mergePropertyDifference = mergePropertyDifference;
4
+ exports.mergeClassProperties = mergeClassProperties;
4
5
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
5
6
  const Utils_1 = require("./Utils");
6
7
  const CustomAttributeMerger_1 = require("./CustomAttributeMerger");
@@ -14,7 +15,6 @@ async function mergePropertyDifference(context, change) {
14
15
  name: change.path,
15
16
  });
16
17
  }
17
- exports.mergePropertyDifference = mergePropertyDifference;
18
18
  /**
19
19
  * @internal
20
20
  */
@@ -23,7 +23,6 @@ async function mergeClassProperties(context, change, itemKey) {
23
23
  await mergeClassProperty(context, change, itemKey, property);
24
24
  }
25
25
  }
26
- exports.mergeClassProperties = mergeClassProperties;
27
26
  async function mergeClassProperty(context, change, itemKey, property) {
28
27
  return change.changeType === "add"
29
28
  ? addClassProperty(context, itemKey, property)
@@ -39,7 +38,7 @@ async function addClassProperty(context, itemKey, property) {
39
38
  await createProperty(context, itemKey, property);
40
39
  if (property.customAttributes !== undefined) {
41
40
  await (0, CustomAttributeMerger_1.applyCustomAttributes)(context, property.customAttributes, async (ca) => {
42
- const classEditor = await getClassEditor(context, itemKey);
41
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
43
42
  await classEditor.properties.addCustomAttribute(itemKey, property.name, ca);
44
43
  });
45
44
  }
@@ -68,7 +67,7 @@ async function modifyClassProperty(context, itemKey, propertyProps) {
68
67
  if (propertyProps.type !== undefined) {
69
68
  throw new Error(`Changing the property '${property.fullName}' type is not supported.`);
70
69
  }
71
- const classEditor = await getClassEditor(context, ecClass);
70
+ const classEditor = await (0, Utils_1.getClassEditor)(context, ecClass);
72
71
  if (propertyProps.description !== undefined) {
73
72
  await classEditor.properties.setDescription(itemKey, propertyProps.name, propertyProps.description);
74
73
  }
@@ -104,31 +103,12 @@ async function modifyClassProperty(context, itemKey, propertyProps) {
104
103
  return structProperty.merge(context, itemKey, property, propertyProps);
105
104
  }
106
105
  }
107
- async function getClassEditor(context, ecClass) {
108
- const schemaItemType = ecschema_metadata_1.ECClass.isECClass(ecClass)
109
- ? ecClass.schemaItemType
110
- : (await context.editor.schemaContext.getSchemaItem(ecClass))?.schemaItemType;
111
- switch (schemaItemType) {
112
- case ecschema_metadata_1.SchemaItemType.EntityClass:
113
- return context.editor.entities;
114
- case ecschema_metadata_1.SchemaItemType.Mixin:
115
- return context.editor.mixins;
116
- case ecschema_metadata_1.SchemaItemType.StructClass:
117
- return context.editor.structs;
118
- case ecschema_metadata_1.SchemaItemType.CustomAttributeClass:
119
- return context.editor.customAttributes;
120
- case ecschema_metadata_1.SchemaItemType.RelationshipClass:
121
- return context.editor.relationships;
122
- default:
123
- throw new Error("SchemaItemType not supported");
124
- }
125
- }
126
106
  const arrayProperty = {
127
107
  is(property) {
128
108
  return "minOccurs" in property && "maxOccurs" in property;
129
109
  },
130
110
  async merge(context, itemKey, propertyName, props) {
131
- const classEditor = await getClassEditor(context, itemKey);
111
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
132
112
  if (props.minOccurs !== undefined) {
133
113
  await classEditor.arrayProperties.setMinOccurs(itemKey, propertyName, props.minOccurs);
134
114
  }
@@ -148,7 +128,7 @@ const enumerationProperty = {
148
128
  throw new Error(`Unable to locate the enumeration class ${enumerationKey.name} in the context schema.`);
149
129
  }
150
130
  property.typeName = enumerationKey.fullName;
151
- const classEditor = await getClassEditor(context, itemKey);
131
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
152
132
  arrayProperty.is(property)
153
133
  ? await classEditor.createEnumerationArrayPropertyFromProps(itemKey, property.name, enumerationType, property)
154
134
  : await classEditor.createEnumerationPropertyFromProps(itemKey, property.name, enumerationType, property);
@@ -198,7 +178,7 @@ const primitiveProperty = {
198
178
  if (propertyType === undefined) {
199
179
  throw new Error(`Invalid property type ${property.typeName} on property ${property.name}`);
200
180
  }
201
- const classEditor = await getClassEditor(context, itemKey);
181
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
202
182
  return arrayProperty.is(property)
203
183
  ? classEditor.createPrimitiveArrayPropertyFromProps(itemKey, property.name, propertyType, property)
204
184
  : classEditor.createPrimitivePropertyFromProps(itemKey, property.name, propertyType, property);
@@ -207,7 +187,7 @@ const primitiveProperty = {
207
187
  if (props.typeName) {
208
188
  throw new Error(`Changing the property '${property.fullName}' primitiveType is not supported.`);
209
189
  }
210
- const classEditor = await getClassEditor(context, itemKey);
190
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
211
191
  if (props.extendedTypeName !== undefined) {
212
192
  await classEditor.primitiveProperties.setExtendedTypeName(itemKey, property.name, props.extendedTypeName);
213
193
  }
@@ -236,7 +216,7 @@ const structProperty = {
236
216
  throw new Error(`Unable to locate the struct ${structKey.name} in the context schema.`);
237
217
  }
238
218
  property.typeName = structKey.fullName;
239
- const classEditor = await getClassEditor(context, itemKey);
219
+ const classEditor = await (0, Utils_1.getClassEditor)(context, itemKey);
240
220
  return arrayProperty.is(property)
241
221
  ? classEditor.createStructArrayPropertyFromProps(itemKey, property.name, structType, property)
242
222
  : classEditor.createStructPropertyFromProps(itemKey, property.name, structType, property);