@itwin/ecschema-metadata 3.0.0-dev.77 → 3.0.0-dev.81

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 (271) hide show
  1. package/lib/{Constants.d.ts → cjs/Constants.d.ts} +0 -0
  2. package/lib/cjs/Constants.d.ts.map +1 -0
  3. package/lib/{Constants.js → cjs/Constants.js} +0 -0
  4. package/lib/cjs/Constants.js.map +1 -0
  5. package/lib/{Context.d.ts → cjs/Context.d.ts} +0 -0
  6. package/lib/cjs/Context.d.ts.map +1 -0
  7. package/lib/{Context.js → cjs/Context.js} +0 -0
  8. package/lib/cjs/Context.js.map +1 -0
  9. package/lib/{DelayedPromise.d.ts → cjs/DelayedPromise.d.ts} +0 -0
  10. package/lib/cjs/DelayedPromise.d.ts.map +1 -0
  11. package/lib/{DelayedPromise.js → cjs/DelayedPromise.js} +0 -0
  12. package/lib/cjs/DelayedPromise.js.map +1 -0
  13. package/lib/{Deserialization → cjs/Deserialization}/AbstractParser.d.ts +0 -0
  14. package/lib/cjs/Deserialization/AbstractParser.d.ts.map +1 -0
  15. package/lib/{Deserialization → cjs/Deserialization}/AbstractParser.js +0 -0
  16. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -0
  17. package/lib/{Deserialization → cjs/Deserialization}/Helper.d.ts +0 -0
  18. package/lib/cjs/Deserialization/Helper.d.ts.map +1 -0
  19. package/lib/{Deserialization → cjs/Deserialization}/Helper.js +0 -0
  20. package/lib/cjs/Deserialization/Helper.js.map +1 -0
  21. package/lib/{Deserialization → cjs/Deserialization}/JsonParser.d.ts +0 -0
  22. package/lib/cjs/Deserialization/JsonParser.d.ts.map +1 -0
  23. package/lib/{Deserialization → cjs/Deserialization}/JsonParser.js +0 -0
  24. package/lib/cjs/Deserialization/JsonParser.js.map +1 -0
  25. package/lib/{Deserialization → cjs/Deserialization}/JsonProps.d.ts +0 -0
  26. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -0
  27. package/lib/{Deserialization → cjs/Deserialization}/JsonProps.js +0 -0
  28. package/lib/cjs/Deserialization/JsonProps.js.map +1 -0
  29. package/lib/{Deserialization → cjs/Deserialization}/SchemaGraphUtil.d.ts +0 -0
  30. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts.map +1 -0
  31. package/lib/{Deserialization → cjs/Deserialization}/SchemaGraphUtil.js +0 -0
  32. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -0
  33. package/lib/{Deserialization → cjs/Deserialization}/XmlParser.d.ts +0 -0
  34. package/lib/cjs/Deserialization/XmlParser.d.ts.map +1 -0
  35. package/lib/{Deserialization → cjs/Deserialization}/XmlParser.js +84 -29
  36. package/lib/cjs/Deserialization/XmlParser.js.map +1 -0
  37. package/lib/{Deserialization → cjs/Deserialization}/XmlSerializationUtils.d.ts +0 -0
  38. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts.map +1 -0
  39. package/lib/{Deserialization → cjs/Deserialization}/XmlSerializationUtils.js +0 -0
  40. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -0
  41. package/lib/{ECName.d.ts → cjs/ECName.d.ts} +0 -0
  42. package/lib/cjs/ECName.d.ts.map +1 -0
  43. package/lib/{ECName.js → cjs/ECName.js} +0 -0
  44. package/lib/cjs/ECName.js.map +1 -0
  45. package/lib/{ECObjects.d.ts → cjs/ECObjects.d.ts} +0 -0
  46. package/lib/cjs/ECObjects.d.ts.map +1 -0
  47. package/lib/{ECObjects.js → cjs/ECObjects.js} +0 -0
  48. package/lib/cjs/ECObjects.js.map +1 -0
  49. package/lib/{Exception.d.ts → cjs/Exception.d.ts} +0 -0
  50. package/lib/cjs/Exception.d.ts.map +1 -0
  51. package/lib/{Exception.js → cjs/Exception.js} +0 -0
  52. package/lib/cjs/Exception.js.map +1 -0
  53. package/lib/{Interfaces.d.ts → cjs/Interfaces.d.ts} +0 -0
  54. package/lib/cjs/Interfaces.d.ts.map +1 -0
  55. package/lib/{Interfaces.js → cjs/Interfaces.js} +0 -0
  56. package/lib/cjs/Interfaces.js.map +1 -0
  57. package/lib/{Metadata → cjs/Metadata}/Class.d.ts +0 -0
  58. package/lib/cjs/Metadata/Class.d.ts.map +1 -0
  59. package/lib/{Metadata → cjs/Metadata}/Class.js +18 -50
  60. package/lib/cjs/Metadata/Class.js.map +1 -0
  61. package/lib/{Metadata → cjs/Metadata}/Constant.d.ts +0 -0
  62. package/lib/cjs/Metadata/Constant.d.ts.map +1 -0
  63. package/lib/{Metadata → cjs/Metadata}/Constant.js +0 -0
  64. package/lib/cjs/Metadata/Constant.js.map +1 -0
  65. package/lib/{Metadata → cjs/Metadata}/CustomAttribute.d.ts +0 -0
  66. package/lib/cjs/Metadata/CustomAttribute.d.ts.map +1 -0
  67. package/lib/{Metadata → cjs/Metadata}/CustomAttribute.js +0 -0
  68. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -0
  69. package/lib/{Metadata → cjs/Metadata}/CustomAttributeClass.d.ts +0 -0
  70. package/lib/cjs/Metadata/CustomAttributeClass.d.ts.map +1 -0
  71. package/lib/{Metadata → cjs/Metadata}/CustomAttributeClass.js +0 -0
  72. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -0
  73. package/lib/{Metadata → cjs/Metadata}/EntityClass.d.ts +0 -0
  74. package/lib/cjs/Metadata/EntityClass.d.ts.map +1 -0
  75. package/lib/{Metadata → cjs/Metadata}/EntityClass.js +0 -0
  76. package/lib/cjs/Metadata/EntityClass.js.map +1 -0
  77. package/lib/{Metadata → cjs/Metadata}/Enumeration.d.ts +0 -0
  78. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -0
  79. package/lib/{Metadata → cjs/Metadata}/Enumeration.js +0 -0
  80. package/lib/cjs/Metadata/Enumeration.js.map +1 -0
  81. package/lib/{Metadata → cjs/Metadata}/Format.d.ts +0 -0
  82. package/lib/cjs/Metadata/Format.d.ts.map +1 -0
  83. package/lib/{Metadata → cjs/Metadata}/Format.js +0 -0
  84. package/lib/cjs/Metadata/Format.js.map +1 -0
  85. package/lib/{Metadata → cjs/Metadata}/InvertedUnit.d.ts +0 -0
  86. package/lib/cjs/Metadata/InvertedUnit.d.ts.map +1 -0
  87. package/lib/{Metadata → cjs/Metadata}/InvertedUnit.js +0 -0
  88. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -0
  89. package/lib/{Metadata → cjs/Metadata}/KindOfQuantity.d.ts +0 -0
  90. package/lib/cjs/Metadata/KindOfQuantity.d.ts.map +1 -0
  91. package/lib/{Metadata → cjs/Metadata}/KindOfQuantity.js +0 -0
  92. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -0
  93. package/lib/{Metadata → cjs/Metadata}/Mixin.d.ts +0 -0
  94. package/lib/cjs/Metadata/Mixin.d.ts.map +1 -0
  95. package/lib/{Metadata → cjs/Metadata}/Mixin.js +0 -0
  96. package/lib/cjs/Metadata/Mixin.js.map +1 -0
  97. package/lib/{Metadata → cjs/Metadata}/OverrideFormat.d.ts +0 -0
  98. package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -0
  99. package/lib/{Metadata → cjs/Metadata}/OverrideFormat.js +0 -0
  100. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -0
  101. package/lib/{Metadata → cjs/Metadata}/Phenomenon.d.ts +0 -0
  102. package/lib/cjs/Metadata/Phenomenon.d.ts.map +1 -0
  103. package/lib/{Metadata → cjs/Metadata}/Phenomenon.js +0 -0
  104. package/lib/cjs/Metadata/Phenomenon.js.map +1 -0
  105. package/lib/{Metadata → cjs/Metadata}/Property.d.ts +0 -0
  106. package/lib/cjs/Metadata/Property.d.ts.map +1 -0
  107. package/lib/{Metadata → cjs/Metadata}/Property.js +0 -0
  108. package/lib/cjs/Metadata/Property.js.map +1 -0
  109. package/lib/{Metadata → cjs/Metadata}/PropertyCategory.d.ts +0 -0
  110. package/lib/cjs/Metadata/PropertyCategory.d.ts.map +1 -0
  111. package/lib/{Metadata → cjs/Metadata}/PropertyCategory.js +0 -0
  112. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -0
  113. package/lib/{Metadata → cjs/Metadata}/RelationshipClass.d.ts +0 -0
  114. package/lib/cjs/Metadata/RelationshipClass.d.ts.map +1 -0
  115. package/lib/{Metadata → cjs/Metadata}/RelationshipClass.js +0 -0
  116. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -0
  117. package/lib/{Metadata → cjs/Metadata}/Schema.d.ts +0 -0
  118. package/lib/cjs/Metadata/Schema.d.ts.map +1 -0
  119. package/lib/{Metadata → cjs/Metadata}/Schema.js +0 -0
  120. package/lib/cjs/Metadata/Schema.js.map +1 -0
  121. package/lib/{Metadata → cjs/Metadata}/SchemaItem.d.ts +0 -0
  122. package/lib/cjs/Metadata/SchemaItem.d.ts.map +1 -0
  123. package/lib/{Metadata → cjs/Metadata}/SchemaItem.js +0 -0
  124. package/lib/cjs/Metadata/SchemaItem.js.map +1 -0
  125. package/lib/{Metadata → cjs/Metadata}/Unit.d.ts +0 -0
  126. package/lib/cjs/Metadata/Unit.d.ts.map +1 -0
  127. package/lib/{Metadata → cjs/Metadata}/Unit.js +0 -0
  128. package/lib/cjs/Metadata/Unit.js.map +1 -0
  129. package/lib/{Metadata → cjs/Metadata}/UnitSystem.d.ts +0 -0
  130. package/lib/cjs/Metadata/UnitSystem.d.ts.map +1 -0
  131. package/lib/{Metadata → cjs/Metadata}/UnitSystem.js +0 -0
  132. package/lib/cjs/Metadata/UnitSystem.js.map +1 -0
  133. package/lib/{PropertyTypes.d.ts → cjs/PropertyTypes.d.ts} +0 -0
  134. package/lib/cjs/PropertyTypes.d.ts.map +1 -0
  135. package/lib/{PropertyTypes.js → cjs/PropertyTypes.js} +0 -0
  136. package/lib/cjs/PropertyTypes.js.map +1 -0
  137. package/lib/{SchemaKey.d.ts → cjs/SchemaKey.d.ts} +4 -0
  138. package/lib/cjs/SchemaKey.d.ts.map +1 -0
  139. package/lib/{SchemaKey.js → cjs/SchemaKey.js} +1 -1
  140. package/lib/cjs/SchemaKey.js.map +1 -0
  141. package/lib/{SchemaPartVisitorDelegate.d.ts → cjs/SchemaPartVisitorDelegate.d.ts} +0 -0
  142. package/lib/cjs/SchemaPartVisitorDelegate.d.ts.map +1 -0
  143. package/lib/{SchemaPartVisitorDelegate.js → cjs/SchemaPartVisitorDelegate.js} +0 -0
  144. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -0
  145. package/lib/{UnitConversion → cjs/UnitConversion}/Graph.d.ts +0 -0
  146. package/lib/cjs/UnitConversion/Graph.d.ts.map +1 -0
  147. package/lib/{UnitConversion → cjs/UnitConversion}/Graph.js +0 -0
  148. package/lib/cjs/UnitConversion/Graph.js.map +1 -0
  149. package/lib/{UnitConversion → cjs/UnitConversion}/Parser.d.ts +0 -0
  150. package/lib/cjs/UnitConversion/Parser.d.ts.map +1 -0
  151. package/lib/{UnitConversion → cjs/UnitConversion}/Parser.js +0 -0
  152. package/lib/cjs/UnitConversion/Parser.js.map +1 -0
  153. package/lib/{UnitConversion → cjs/UnitConversion}/UnitConversion.d.ts +0 -0
  154. package/lib/cjs/UnitConversion/UnitConversion.d.ts.map +1 -0
  155. package/lib/{UnitConversion → cjs/UnitConversion}/UnitConversion.js +0 -0
  156. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -0
  157. package/lib/{UnitConversion → cjs/UnitConversion}/UnitConverter.d.ts +0 -0
  158. package/lib/cjs/UnitConversion/UnitConverter.d.ts.map +1 -0
  159. package/lib/{UnitConversion → cjs/UnitConversion}/UnitConverter.js +0 -0
  160. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -0
  161. package/lib/{UnitConversion → cjs/UnitConversion}/UnitTree.d.ts +0 -0
  162. package/lib/cjs/UnitConversion/UnitTree.d.ts.map +1 -0
  163. package/lib/{UnitConversion → cjs/UnitConversion}/UnitTree.js +0 -0
  164. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -0
  165. package/lib/{Validation → cjs/Validation}/SchemaWalker.d.ts +0 -0
  166. package/lib/cjs/Validation/SchemaWalker.d.ts.map +1 -0
  167. package/lib/{Validation → cjs/Validation}/SchemaWalker.js +0 -0
  168. package/lib/cjs/Validation/SchemaWalker.js.map +1 -0
  169. package/lib/{ecschema-metadata.d.ts → cjs/ecschema-metadata.d.ts} +0 -0
  170. package/lib/cjs/ecschema-metadata.d.ts.map +1 -0
  171. package/lib/{ecschema-metadata.js → cjs/ecschema-metadata.js} +0 -0
  172. package/lib/cjs/ecschema-metadata.js.map +1 -0
  173. package/lib/{utils → cjs/utils}/FormatEnums.d.ts +0 -0
  174. package/lib/cjs/utils/FormatEnums.d.ts.map +1 -0
  175. package/lib/{utils → cjs/utils}/FormatEnums.js +0 -0
  176. package/lib/cjs/utils/FormatEnums.js.map +1 -0
  177. package/lib/{utils → cjs/utils}/SchemaGraph.d.ts +0 -0
  178. package/lib/cjs/utils/SchemaGraph.d.ts.map +1 -0
  179. package/lib/{utils → cjs/utils}/SchemaGraph.js +0 -0
  180. package/lib/cjs/utils/SchemaGraph.js.map +1 -0
  181. package/package.json +10 -9
  182. package/lib/Constants.d.ts.map +0 -1
  183. package/lib/Constants.js.map +0 -1
  184. package/lib/Context.d.ts.map +0 -1
  185. package/lib/Context.js.map +0 -1
  186. package/lib/DelayedPromise.d.ts.map +0 -1
  187. package/lib/DelayedPromise.js.map +0 -1
  188. package/lib/Deserialization/AbstractParser.d.ts.map +0 -1
  189. package/lib/Deserialization/AbstractParser.js.map +0 -1
  190. package/lib/Deserialization/Helper.d.ts.map +0 -1
  191. package/lib/Deserialization/Helper.js.map +0 -1
  192. package/lib/Deserialization/JsonParser.d.ts.map +0 -1
  193. package/lib/Deserialization/JsonParser.js.map +0 -1
  194. package/lib/Deserialization/JsonProps.d.ts.map +0 -1
  195. package/lib/Deserialization/JsonProps.js.map +0 -1
  196. package/lib/Deserialization/SchemaGraphUtil.d.ts.map +0 -1
  197. package/lib/Deserialization/SchemaGraphUtil.js.map +0 -1
  198. package/lib/Deserialization/XmlParser.d.ts.map +0 -1
  199. package/lib/Deserialization/XmlParser.js.map +0 -1
  200. package/lib/Deserialization/XmlSerializationUtils.d.ts.map +0 -1
  201. package/lib/Deserialization/XmlSerializationUtils.js.map +0 -1
  202. package/lib/ECName.d.ts.map +0 -1
  203. package/lib/ECName.js.map +0 -1
  204. package/lib/ECObjects.d.ts.map +0 -1
  205. package/lib/ECObjects.js.map +0 -1
  206. package/lib/Exception.d.ts.map +0 -1
  207. package/lib/Exception.js.map +0 -1
  208. package/lib/Interfaces.d.ts.map +0 -1
  209. package/lib/Interfaces.js.map +0 -1
  210. package/lib/Metadata/Class.d.ts.map +0 -1
  211. package/lib/Metadata/Class.js.map +0 -1
  212. package/lib/Metadata/Constant.d.ts.map +0 -1
  213. package/lib/Metadata/Constant.js.map +0 -1
  214. package/lib/Metadata/CustomAttribute.d.ts.map +0 -1
  215. package/lib/Metadata/CustomAttribute.js.map +0 -1
  216. package/lib/Metadata/CustomAttributeClass.d.ts.map +0 -1
  217. package/lib/Metadata/CustomAttributeClass.js.map +0 -1
  218. package/lib/Metadata/EntityClass.d.ts.map +0 -1
  219. package/lib/Metadata/EntityClass.js.map +0 -1
  220. package/lib/Metadata/Enumeration.d.ts.map +0 -1
  221. package/lib/Metadata/Enumeration.js.map +0 -1
  222. package/lib/Metadata/Format.d.ts.map +0 -1
  223. package/lib/Metadata/Format.js.map +0 -1
  224. package/lib/Metadata/InvertedUnit.d.ts.map +0 -1
  225. package/lib/Metadata/InvertedUnit.js.map +0 -1
  226. package/lib/Metadata/KindOfQuantity.d.ts.map +0 -1
  227. package/lib/Metadata/KindOfQuantity.js.map +0 -1
  228. package/lib/Metadata/Mixin.d.ts.map +0 -1
  229. package/lib/Metadata/Mixin.js.map +0 -1
  230. package/lib/Metadata/OverrideFormat.d.ts.map +0 -1
  231. package/lib/Metadata/OverrideFormat.js.map +0 -1
  232. package/lib/Metadata/Phenomenon.d.ts.map +0 -1
  233. package/lib/Metadata/Phenomenon.js.map +0 -1
  234. package/lib/Metadata/Property.d.ts.map +0 -1
  235. package/lib/Metadata/Property.js.map +0 -1
  236. package/lib/Metadata/PropertyCategory.d.ts.map +0 -1
  237. package/lib/Metadata/PropertyCategory.js.map +0 -1
  238. package/lib/Metadata/RelationshipClass.d.ts.map +0 -1
  239. package/lib/Metadata/RelationshipClass.js.map +0 -1
  240. package/lib/Metadata/Schema.d.ts.map +0 -1
  241. package/lib/Metadata/Schema.js.map +0 -1
  242. package/lib/Metadata/SchemaItem.d.ts.map +0 -1
  243. package/lib/Metadata/SchemaItem.js.map +0 -1
  244. package/lib/Metadata/Unit.d.ts.map +0 -1
  245. package/lib/Metadata/Unit.js.map +0 -1
  246. package/lib/Metadata/UnitSystem.d.ts.map +0 -1
  247. package/lib/Metadata/UnitSystem.js.map +0 -1
  248. package/lib/PropertyTypes.d.ts.map +0 -1
  249. package/lib/PropertyTypes.js.map +0 -1
  250. package/lib/SchemaKey.d.ts.map +0 -1
  251. package/lib/SchemaKey.js.map +0 -1
  252. package/lib/SchemaPartVisitorDelegate.d.ts.map +0 -1
  253. package/lib/SchemaPartVisitorDelegate.js.map +0 -1
  254. package/lib/UnitConversion/Graph.d.ts.map +0 -1
  255. package/lib/UnitConversion/Graph.js.map +0 -1
  256. package/lib/UnitConversion/Parser.d.ts.map +0 -1
  257. package/lib/UnitConversion/Parser.js.map +0 -1
  258. package/lib/UnitConversion/UnitConversion.d.ts.map +0 -1
  259. package/lib/UnitConversion/UnitConversion.js.map +0 -1
  260. package/lib/UnitConversion/UnitConverter.d.ts.map +0 -1
  261. package/lib/UnitConversion/UnitConverter.js.map +0 -1
  262. package/lib/UnitConversion/UnitTree.d.ts.map +0 -1
  263. package/lib/UnitConversion/UnitTree.js.map +0 -1
  264. package/lib/Validation/SchemaWalker.d.ts.map +0 -1
  265. package/lib/Validation/SchemaWalker.js.map +0 -1
  266. package/lib/ecschema-metadata.d.ts.map +0 -1
  267. package/lib/ecschema-metadata.js.map +0 -1
  268. package/lib/utils/FormatEnums.d.ts.map +0 -1
  269. package/lib/utils/FormatEnums.js.map +0 -1
  270. package/lib/utils/SchemaGraph.d.ts.map +0 -1
  271. package/lib/utils/SchemaGraph.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECObjects.js","sourceRoot":"","sources":["../src/ECObjects.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { ECStringConstants } from \"./Constants\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"./Exception\";\r\n\r\nexport { PropertyType } from \"./PropertyTypes\";\r\n\r\n// NEEDSWORK: This shim is currently required to use async iterators. See https://github.com/Microsoft/TypeScript/issues/14151\r\nif (!(Symbol as any).asyncIterator) {\r\n (Symbol as any).asyncIterator = Symbol.for(\"Symbol.asyncIterator\");\r\n}\r\n\r\n/** @beta */\r\nexport enum ECClassModifier {\r\n None,\r\n Abstract,\r\n Sealed,\r\n}\r\n\r\n/** @beta */\r\nexport enum SchemaItemType {\r\n EntityClass,\r\n Mixin,\r\n StructClass,\r\n CustomAttributeClass,\r\n RelationshipClass,\r\n Enumeration,\r\n KindOfQuantity,\r\n PropertyCategory,\r\n Unit,\r\n InvertedUnit,\r\n Constant,\r\n Phenomenon,\r\n UnitSystem,\r\n Format,\r\n}\r\n\r\n/**\r\n * Primitive data types for ECProperties.\r\n * @beta\r\n */\r\nexport enum PrimitiveType {\r\n Uninitialized = 0x00,\r\n Binary = 0x101,\r\n Boolean = 0x201,\r\n DateTime = 0x301,\r\n Double = 0x401,\r\n Integer = 0x501,\r\n Long = 0x601,\r\n Point2d = 0x701,\r\n Point3d = 0x801,\r\n String = 0x901,\r\n IGeometry = 0xa01,\r\n}\r\n\r\n/**\r\n * Defines the valid CustomAttribute container types.\r\n * @beta\r\n */\r\nexport enum CustomAttributeContainerType {\r\n Schema = (0x0001 << 0),\r\n EntityClass = (0x0001 << 1),\r\n CustomAttributeClass = (0x0001 << 2),\r\n StructClass = (0x0001 << 3),\r\n RelationshipClass = (0x0001 << 4),\r\n AnyClass = EntityClass | CustomAttributeClass | StructClass | RelationshipClass,\r\n PrimitiveProperty = (0x0001 << 5),\r\n StructProperty = (0x0001 << 6),\r\n PrimitiveArrayProperty = (0x0001 << 7),\r\n StructArrayProperty = (0x0001 << 8),\r\n NavigationProperty = (0x0001 << 9),\r\n AnyProperty = PrimitiveProperty | StructProperty | PrimitiveArrayProperty | StructArrayProperty | NavigationProperty,\r\n SourceRelationshipConstraint = (0x0001 << 10),\r\n TargetRelationshipConstraint = (0x0001 << 11),\r\n AnyRelationshipConstraint = SourceRelationshipConstraint | TargetRelationshipConstraint,\r\n Any = Schema | AnyClass | AnyProperty | AnyRelationshipConstraint,\r\n}\r\n\r\n/**\r\n * Defines what sort of match should be used when locating a schema.\r\n * @beta\r\n */\r\nexport enum SchemaMatchType {\r\n // Find exact VersionRead, VersionWrite, VersionMinor match as well as Data\r\n Identical,\r\n // Find exact VersionRead, VersionWrite, VersionMinor match.\r\n Exact,\r\n // Find latest version with matching VersionRead and VersionWrite\r\n LatestWriteCompatible,\r\n // Find latest version.\r\n Latest,\r\n // Find latest version with matching VersionRead\r\n LatestReadCompatible,\r\n}\r\n\r\n/**\r\n * Identifer for an ECRelationshipConstraint. Used to determine the side of the relationship the constraint is representing.\r\n * @beta\r\n */\r\nexport enum RelationshipEnd {\r\n Source = 0,\r\n Target = 1,\r\n}\r\n\r\n/** @beta */\r\nexport enum StrengthType {\r\n Referencing,\r\n Holding,\r\n Embedding,\r\n}\r\n\r\n/** @beta */\r\nexport enum StrengthDirection {\r\n Forward = 1,\r\n Backward = 2,\r\n}\r\n\r\n// Helper methods for going to/from string for the above Enumerations.\r\n\r\n/**\r\n * Parses the provided string into an ECClassModifier if the string is a valid modifier.\r\n * @param modifier The modifier string to parse.\r\n * @beta\r\n */\r\nexport function parseClassModifier(modifier: string): ECClassModifier | undefined {\r\n const lowerModifier = modifier.toLowerCase();\r\n switch (lowerModifier) {\r\n case \"abstract\": return ECClassModifier.Abstract;\r\n case \"none\": return ECClassModifier.None;\r\n case \"sealed\": return ECClassModifier.Sealed;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @return A string representing the provided ECClassModifier. If the modifier is not valid, an empty string is returned.\r\n * @beta\r\n */\r\nexport function classModifierToString(modifier: ECClassModifier): string {\r\n switch (modifier) {\r\n case ECClassModifier.Abstract: return \"Abstract\";\r\n case ECClassModifier.None: return \"None\";\r\n case ECClassModifier.Sealed: return \"Sealed\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidModifier, \"An invalid ECClassModifier has been provided.\");\r\n }\r\n}\r\n\r\n/**\r\n * Tries to parse the given string as one of the 8 schema item types.\r\n * @param type The schema item type string to parse.\r\n * @returns A valid SchemaItemType if successfully parsed. Otherwise, undefined if the provided string is not a valid SchemaItemType.\r\n * @beta\r\n */\r\nexport function parseSchemaItemType(type: string): SchemaItemType | undefined {\r\n switch (type.toLowerCase()) {\r\n case \"entityclass\": return SchemaItemType.EntityClass;\r\n case \"mixin\": return SchemaItemType.Mixin;\r\n case \"structclass\": return SchemaItemType.StructClass;\r\n case \"customattributeclass\": return SchemaItemType.CustomAttributeClass;\r\n case \"relationshipclass\": return SchemaItemType.RelationshipClass;\r\n case \"enumeration\": return SchemaItemType.Enumeration;\r\n case \"kindofquantity\": return SchemaItemType.KindOfQuantity;\r\n case \"propertycategory\": return SchemaItemType.PropertyCategory;\r\n case \"unit\": return SchemaItemType.Unit;\r\n case \"invertedunit\": return SchemaItemType.InvertedUnit;\r\n case \"constant\": return SchemaItemType.Constant;\r\n case \"phenomenon\": return SchemaItemType.Phenomenon;\r\n case \"unitsystem\": return SchemaItemType.UnitSystem;\r\n case \"format\": return SchemaItemType.Format;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Converts a valid SchemaItemType to a display string.\r\n * @param value The SchemaItemType to stringify.\r\n * @return A string representing the provided SchemaItemType. If the type is not valid, an empty string is returned.\r\n * @beta\r\n */\r\nexport function schemaItemTypeToString(value: SchemaItemType): string {\r\n switch (value) {\r\n case SchemaItemType.EntityClass: return \"EntityClass\";\r\n case SchemaItemType.Mixin: return \"Mixin\";\r\n case SchemaItemType.StructClass: return \"StructClass\";\r\n case SchemaItemType.CustomAttributeClass: return \"CustomAttributeClass\";\r\n case SchemaItemType.RelationshipClass: return \"RelationshipClass\";\r\n case SchemaItemType.Enumeration: return \"Enumeration\";\r\n case SchemaItemType.KindOfQuantity: return \"KindOfQuantity\";\r\n case SchemaItemType.PropertyCategory: return \"PropertyCategory\";\r\n case SchemaItemType.Unit: return \"Unit\";\r\n case SchemaItemType.InvertedUnit: return \"InvertedUnit\";\r\n case SchemaItemType.Constant: return \"Constant\";\r\n case SchemaItemType.Phenomenon: return \"Phenomenon\";\r\n case SchemaItemType.UnitSystem: return \"UnitSystem\";\r\n case SchemaItemType.Format: return \"Format\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidSchemaItemType, \"An invalid SchemaItemType has been provided.\");\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function schemaItemTypeToXmlString(value: SchemaItemType): string {\r\n switch (value) {\r\n case SchemaItemType.EntityClass: return \"ECEntityClass\";\r\n case SchemaItemType.Mixin: return \"ECEntityClass\";\r\n case SchemaItemType.StructClass: return \"ECStructClass\";\r\n case SchemaItemType.CustomAttributeClass: return \"ECCustomAttributeClass\";\r\n case SchemaItemType.RelationshipClass: return \"ECRelationshipClass\";\r\n case SchemaItemType.Enumeration: return \"ECEnumeration\";\r\n case SchemaItemType.KindOfQuantity: return \"KindOfQuantity\";\r\n case SchemaItemType.PropertyCategory: return \"PropertyCategory\";\r\n case SchemaItemType.Unit: return \"Unit\";\r\n case SchemaItemType.InvertedUnit: return \"InvertedUnit\";\r\n case SchemaItemType.Constant: return \"Constant\";\r\n case SchemaItemType.Phenomenon: return \"Phenomenon\";\r\n case SchemaItemType.UnitSystem: return \"UnitSystem\";\r\n case SchemaItemType.Format: return \"Format\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidSchemaItemType, \"An invalid SchemaItemType has been provided.\");\r\n }\r\n}\r\n\r\n/**\r\n * Tries to parse the given string as one of the 10 primitive types.\r\n * @param type The primitive type string to parse.\r\n * @returns A valid PrimitiveType if successfully parsed, or undefined if the provided string is not a valid PrimitiveType.\r\n * @beta\r\n */\r\nexport function parsePrimitiveType(type: string): PrimitiveType | undefined {\r\n switch (type.toLowerCase()) {\r\n case \"binary\": return PrimitiveType.Binary;\r\n case \"boolean\": case \"bool\": return PrimitiveType.Boolean;\r\n case \"datetime\": return PrimitiveType.DateTime;\r\n case \"double\": return PrimitiveType.Double;\r\n case \"int\": return PrimitiveType.Integer;\r\n case \"long\": return PrimitiveType.Long;\r\n case \"point2d\": return PrimitiveType.Point2d;\r\n case \"point3d\": return PrimitiveType.Point3d;\r\n case \"string\": return PrimitiveType.String;\r\n case \"bentley.geometry.common.igeometry\": return PrimitiveType.IGeometry;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n/** @beta */\r\nexport function primitiveTypeToString(type: PrimitiveType): string {\r\n switch (type) {\r\n case PrimitiveType.Binary: return \"binary\";\r\n case PrimitiveType.Boolean: return \"boolean\";\r\n case PrimitiveType.DateTime: return \"dateTime\";\r\n case PrimitiveType.Double: return \"double\";\r\n case PrimitiveType.Integer: return \"int\";\r\n case PrimitiveType.IGeometry: return \"Bentley.Geometry.Common.IGeometry\";\r\n case PrimitiveType.Long: return \"long\";\r\n case PrimitiveType.Point2d: return \"point2d\";\r\n case PrimitiveType.Point3d: return \"point3d\";\r\n case PrimitiveType.String: return \"string\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidPrimitiveType, \"An invalid PrimitiveType has been provided.\");\r\n }\r\n}\r\n\r\n/**\r\n * Parses the given string into the appropriate CustomAttributeContainerType if the string is valid.\r\n * @param type The container type string to parse.\r\n * @beta\r\n */\r\nexport function parseCustomAttributeContainerType(type: string): CustomAttributeContainerType | undefined {\r\n const typeTokens = type.split(/[|,;]+/);\r\n\r\n let containerType = 0;\r\n\r\n typeTokens.forEach((typeToken) => {\r\n typeToken = typeToken.trim();\r\n if (typeToken.length === 0)\r\n return;\r\n\r\n typeToken = typeToken.toLowerCase();\r\n switch (typeToken) {\r\n case \"schema\":\r\n containerType = containerType | CustomAttributeContainerType.Schema;\r\n break;\r\n case \"entityclass\":\r\n containerType = containerType | CustomAttributeContainerType.EntityClass;\r\n break;\r\n case \"customattributeclass\":\r\n containerType = containerType | CustomAttributeContainerType.CustomAttributeClass;\r\n break;\r\n case \"structclass\":\r\n containerType = containerType | CustomAttributeContainerType.StructClass;\r\n break;\r\n case \"relationshipclass\":\r\n containerType = containerType | CustomAttributeContainerType.RelationshipClass;\r\n break;\r\n case \"anyclass\":\r\n containerType = containerType | CustomAttributeContainerType.AnyClass;\r\n break;\r\n case \"primitiveproperty\":\r\n containerType = containerType | CustomAttributeContainerType.PrimitiveProperty;\r\n break;\r\n case \"structproperty\":\r\n containerType = containerType | CustomAttributeContainerType.StructProperty;\r\n break;\r\n case \"arrayproperty\":\r\n containerType = containerType | CustomAttributeContainerType.PrimitiveArrayProperty;\r\n break;\r\n case \"structarrayproperty\":\r\n containerType = containerType | CustomAttributeContainerType.StructArrayProperty;\r\n break;\r\n case \"navigationproperty\":\r\n containerType = containerType | CustomAttributeContainerType.NavigationProperty;\r\n break;\r\n case \"anyproperty\":\r\n containerType = containerType | CustomAttributeContainerType.AnyProperty;\r\n break;\r\n case \"sourcerelationshipconstraint\":\r\n containerType = containerType | CustomAttributeContainerType.SourceRelationshipConstraint;\r\n break;\r\n case \"targetrelationshipconstraint\":\r\n containerType = containerType | CustomAttributeContainerType.TargetRelationshipConstraint;\r\n break;\r\n case \"anyrelationshipconstraint\":\r\n containerType = containerType | CustomAttributeContainerType.AnyRelationshipConstraint;\r\n break;\r\n case \"any\":\r\n containerType = containerType | CustomAttributeContainerType.Any;\r\n break;\r\n default:\r\n throw new ECObjectsError(ECObjectsStatus.InvalidContainerType, `${typeToken} is not a valid CustomAttributeContainerType value.`);\r\n }\r\n });\r\n\r\n return containerType as CustomAttributeContainerType;\r\n}\r\n\r\n/**\r\n * Creates a string representing a valid CustomAttributeContainerType.\r\n * @param value The CustomAttributeContainerType to stringify.\r\n * @return A string representing the provided CustomAttributeContainerType. If the type is not valid, an empty string is returned.\r\n * @beta\r\n */\r\nexport function containerTypeToString(type: CustomAttributeContainerType): string {\r\n\r\n const testContainerTypeValue = (compareType: CustomAttributeContainerType, otherType: CustomAttributeContainerType) => {\r\n return (compareType === (compareType & otherType));\r\n };\r\n\r\n if (testContainerTypeValue(CustomAttributeContainerType.Any, type))\r\n return ECStringConstants.CONTAINERTYPE_ANY;\r\n\r\n let containerType = \"\";\r\n const setOrAppend = (val: string) => {\r\n if (containerType.length === 0)\r\n containerType = val;\r\n else\r\n containerType = `${containerType}, ${val}`;\r\n };\r\n\r\n if (testContainerTypeValue(CustomAttributeContainerType.Schema, type))\r\n setOrAppend(\"Schema\");\r\n\r\n if (testContainerTypeValue(CustomAttributeContainerType.AnyClass, type))\r\n setOrAppend(\"AnyClass\");\r\n else {\r\n if (testContainerTypeValue(CustomAttributeContainerType.EntityClass, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_ENTITYCLASS);\r\n if (testContainerTypeValue(CustomAttributeContainerType.CustomAttributeClass, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_CUSTOMATTRIBUTECLASS);\r\n if (testContainerTypeValue(CustomAttributeContainerType.StructClass, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_STRUCTCLASS);\r\n if (testContainerTypeValue(CustomAttributeContainerType.RelationshipClass, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_RELATIONSHIPCLASS);\r\n }\r\n\r\n if (testContainerTypeValue(CustomAttributeContainerType.AnyProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_ANYPROPERTY);\r\n else {\r\n if (testContainerTypeValue(CustomAttributeContainerType.PrimitiveProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_PRIMITIVEPROPERTY);\r\n if (testContainerTypeValue(CustomAttributeContainerType.StructProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_STRUCTPROPERTY);\r\n if (testContainerTypeValue(CustomAttributeContainerType.PrimitiveArrayProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_PRIMITIVEARRAYPROPERTY);\r\n if (testContainerTypeValue(CustomAttributeContainerType.StructArrayProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_STRUCTARRAYPROPERTY);\r\n if (testContainerTypeValue(CustomAttributeContainerType.NavigationProperty, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_NAVIGATIONPROPERTY);\r\n }\r\n\r\n if (testContainerTypeValue(CustomAttributeContainerType.AnyRelationshipConstraint, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_ANYRELATIONSHIPCONSTRAINT);\r\n else {\r\n if (testContainerTypeValue(CustomAttributeContainerType.SourceRelationshipConstraint, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_SOURCERELATIONSHIPCONSTRAINT);\r\n if (testContainerTypeValue(CustomAttributeContainerType.TargetRelationshipConstraint, type))\r\n setOrAppend(ECStringConstants.CONTAINERTYPE_TARGETRELATIONSHIPCONSTRAINT);\r\n }\r\n\r\n return containerType;\r\n}\r\n\r\n/** @beta */\r\nexport function parseRelationshipEnd(end: string): RelationshipEnd | undefined {\r\n switch (end.toLowerCase()) {\r\n case \"source\": return RelationshipEnd.Source;\r\n case \"target\": return RelationshipEnd.Target;\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @beta */\r\nexport function relationshipEndToString(end: RelationshipEnd): string {\r\n switch (end) {\r\n case RelationshipEnd.Source: return ECStringConstants.RELATIONSHIP_END_SOURCE;\r\n case RelationshipEnd.Target: return ECStringConstants.RELATIONSHIP_END_TARGET;\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidRelationshipEnd, `An invalid RelationshipEnd has been provided.`);\r\n }\r\n}\r\n\r\n/**\r\n * Takes a string representing a StrengthType, will parse it and return the corresponding StrengthType.\r\n * @throws ECObjectsStatus.InvalidStrength if the provided string that is not valid\r\n * @param strength\r\n * @beta\r\n */\r\nexport function parseStrength(strength: string): StrengthType | undefined {\r\n switch (strength.toLowerCase()) {\r\n case \"referencing\": return StrengthType.Referencing;\r\n case \"holding\": return StrengthType.Holding;\r\n case \"embedding\": return StrengthType.Embedding;\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @beta */\r\nexport function strengthToString(strength: StrengthType): string {\r\n switch (strength) {\r\n case StrengthType.Embedding: return \"Embedding\";\r\n case StrengthType.Holding: return \"Holding\";\r\n case StrengthType.Referencing: return \"Referencing\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidStrength, `An invalid Strength has been provided.`);\r\n }\r\n}\r\n\r\n/** @beta */\r\nexport function parseStrengthDirection(direction: string): StrengthDirection | undefined {\r\n switch (direction.toLowerCase()) {\r\n case \"forward\": return StrengthDirection.Forward;\r\n case \"backward\": return StrengthDirection.Backward;\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @beta */\r\nexport function strengthDirectionToString(direction: StrengthDirection): string {\r\n switch (direction) {\r\n case StrengthDirection.Forward: return \"Forward\";\r\n case StrengthDirection.Backward: return \"Backward\";\r\n default: throw new ECObjectsError(ECObjectsStatus.InvalidStrengthDirection, `An invalid StrengthDirection has been provided.`);\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Exception.d.ts","sourceRoot":"","sources":["../src/Exception.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY;AACZ,oBAAY,eAAe;IACzB,oBAAoB,QAAS;IAC7B,OAAO,IAAI;IACX,aAAa,QAA2B;IACxC,iBAAiB,QAA2B;IAC5C,eAAe,QAA2B;IAC1C,eAAe,QAA2B;IAC1C,oBAAoB,QAA2B;IAC/C,aAAa,QAA2B;IACxC,aAAa,QAA2B;IACxC,gBAAgB,QAA2B;IAC3C,gBAAgB,QAA2B;IAC3C,eAAe,QAA4B;IAC3C,mBAAmB,QAA4B;IAC/C,oBAAoB,QAA4B;IAChD,qBAAqB,QAA4B;IACjD,eAAe,QAA4B;IAC3C,wBAAwB,QAA4B;IACpD,sBAAsB,QAA4B;IAClD,WAAW,QAA4B;IACvC,gBAAgB,QAA4B;IAC5C,oBAAoB,QAA4B;IAChD,gBAAgB,QAA4B;IAC5C,mBAAmB,QAA4B;IAC/C,aAAa,QAA4B;IACzC,sBAAsB,QAA4B;IAClD,uBAAuB,QAA4B;IACnD,+BAA+B,QAA4B;IAC3D,kBAAkB,QAA4B;IAC9C,gBAAgB,QAA4B;CAC7C;AAED,gBAAgB;AAChB,qBAAa,cAAe,SAAQ,YAAY;aACF,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAK1E,aAAa,IAAI,MAAM;IA+B9B,OAAO,CAAC,cAAc;CAGvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Exception.js","sourceRoot":"","sources":["../src/Exception.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Metadata\n */\n\nimport { assert, BentleyError } from \"@itwin/core-bentley\";\n\n/** @beta */\nexport enum ECObjectsStatus {\n ECOBJECTS_ERROR_BASE = 0x88EC,\n Success = 0,\n DuplicateItem = ECOBJECTS_ERROR_BASE + 1,\n DuplicateProperty = ECOBJECTS_ERROR_BASE + 2,\n DuplicateSchema = ECOBJECTS_ERROR_BASE + 3,\n ImmutableSchema = ECOBJECTS_ERROR_BASE + 4,\n InvalidContainerType = ECOBJECTS_ERROR_BASE + 5,\n InvalidECJson = ECOBJECTS_ERROR_BASE + 6,\n InvalidECName = ECOBJECTS_ERROR_BASE + 7,\n InvalidECVersion = ECOBJECTS_ERROR_BASE + 8,\n InvalidEnumValue = ECOBJECTS_ERROR_BASE + 9,\n InvalidModifier = ECOBJECTS_ERROR_BASE + 10,\n InvalidMultiplicity = ECOBJECTS_ERROR_BASE + 11,\n InvalidPrimitiveType = ECOBJECTS_ERROR_BASE + 12,\n InvalidSchemaItemType = ECOBJECTS_ERROR_BASE + 13,\n InvalidStrength = ECOBJECTS_ERROR_BASE + 14,\n InvalidStrengthDirection = ECOBJECTS_ERROR_BASE + 15,\n InvalidRelationshipEnd = ECOBJECTS_ERROR_BASE + 16,\n InvalidType = ECOBJECTS_ERROR_BASE + 17,\n MissingSchemaUrl = ECOBJECTS_ERROR_BASE + 18,\n UnableToLocateSchema = ECOBJECTS_ERROR_BASE + 19,\n InvalidSchemaXML = ECOBJECTS_ERROR_BASE + 20,\n InvalidSchemaString = ECOBJECTS_ERROR_BASE + 21,\n ClassNotFound = ECOBJECTS_ERROR_BASE + 22,\n SchemaContextUndefined = ECOBJECTS_ERROR_BASE + 23,\n DifferentSchemaContexts = ECOBJECTS_ERROR_BASE + 24,\n InvalidSchemaComparisonArgument = ECOBJECTS_ERROR_BASE + 25,\n InvalidSchemaAlias = ECOBJECTS_ERROR_BASE + 26,\n InvalidSchemaKey = ECOBJECTS_ERROR_BASE + 27,\n}\n\n/** @internal */\nexport class ECObjectsError extends BentleyError {\n public constructor(public override readonly errorNumber: number, message?: string) {\n super(errorNumber, message);\n assert(errorNumber !== ECObjectsStatus.Success, message);\n }\n\n public toDebugString(): string {\n switch (this.errorNumber) {\n case ECObjectsStatus.DuplicateItem: return this._appendMessage(\"ECObjectsStatus.DuplicateItem\");\n case ECObjectsStatus.DuplicateProperty: return this._appendMessage(\"ECObjectsStatus.DuplicateProperty\");\n case ECObjectsStatus.DuplicateSchema: return this._appendMessage(\"ECObjectsStatus.DuplicateSchema\");\n case ECObjectsStatus.ImmutableSchema: return this._appendMessage(\"ECObjectsStatus.ImmutableSchema\");\n case ECObjectsStatus.InvalidContainerType: return this._appendMessage(\"ECObjectsStatus.InvalidContainerType\");\n case ECObjectsStatus.InvalidECJson: return this._appendMessage(\"ECObjectsStatus.InvalidECJson\");\n case ECObjectsStatus.InvalidECName: return this._appendMessage(\"ECObjectsStatus.InvalidECName\");\n case ECObjectsStatus.InvalidECVersion: return this._appendMessage(\"ECObjectsStatus.InvalidECVersion\");\n case ECObjectsStatus.InvalidEnumValue: return this._appendMessage(\"ECObjectsStatus.InvalidEnumValue\");\n case ECObjectsStatus.InvalidModifier: return this._appendMessage(\"ECObjectsStatus.InvalidModifier\");\n case ECObjectsStatus.InvalidMultiplicity: return this._appendMessage(\"ECObjectsStatus.InvalidMultiplicity\");\n case ECObjectsStatus.InvalidPrimitiveType: return this._appendMessage(\"ECObjectsStatus.InvalidPrimitiveType\");\n case ECObjectsStatus.InvalidSchemaItemType: return this._appendMessage(\"ECObjectsStatus.InvalidSchemaItemType\");\n case ECObjectsStatus.InvalidStrength: return this._appendMessage(\"ECObjectsStatus.InvalidStrength\");\n case ECObjectsStatus.InvalidStrengthDirection: return this._appendMessage(\"ECObjectsStatus.InvalidStrengthDirection\");\n case ECObjectsStatus.InvalidRelationshipEnd: return this._appendMessage(\"ECObjectsStatus.InvalidRelationshipEnd\");\n case ECObjectsStatus.InvalidType: return this._appendMessage(\"ECObjectsStatus.InvalidType\");\n case ECObjectsStatus.MissingSchemaUrl: return this._appendMessage(\"ECObjectsStatus.MissingSchemaUrl\");\n case ECObjectsStatus.UnableToLocateSchema: return this._appendMessage(\"ECObjectsStatus.UnableToLocateSchema\");\n case ECObjectsStatus.ClassNotFound: return this._appendMessage(\"ECObjectsStatus.ClassNotFound\");\n case ECObjectsStatus.SchemaContextUndefined: return this._appendMessage(\"ECObjectsStatus.SchemaContextUndefined\");\n case ECObjectsStatus.DifferentSchemaContexts: return this._appendMessage(\"ECObjectsStatus.DifferentSchemaContexts\");\n default:\n assert(false);\n /* istanbul ignore next */\n return this._appendMessage(`Error ${this.errorNumber.toString()}`);\n }\n }\n\n private _appendMessage(e: string): string {\n return this.message ? `${e}: ${this.message}` : e;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Interfaces.d.ts","sourceRoot":"","sources":["../src/Interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../src/Interfaces.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { DelayedPromise } from \"./DelayedPromise\";\r\nimport { ECClass, StructClass } from \"./Metadata/Class\";\r\nimport { Constant } from \"./Metadata/Constant\";\r\nimport { CustomAttribute, CustomAttributeContainerProps } from \"./Metadata/CustomAttribute\";\r\nimport { CustomAttributeClass } from \"./Metadata/CustomAttributeClass\";\r\nimport { EntityClass } from \"./Metadata/EntityClass\";\r\nimport { AnyEnumerator, Enumeration } from \"./Metadata/Enumeration\";\r\nimport { Format } from \"./Metadata/Format\";\r\nimport { InvertedUnit } from \"./Metadata/InvertedUnit\";\r\nimport { KindOfQuantity } from \"./Metadata/KindOfQuantity\";\r\nimport { Mixin } from \"./Metadata/Mixin\";\r\nimport { OverrideFormat } from \"./Metadata/OverrideFormat\";\r\nimport { Phenomenon } from \"./Metadata/Phenomenon\";\r\nimport { AnyProperty } from \"./Metadata/Property\";\r\nimport { PropertyCategory } from \"./Metadata/PropertyCategory\";\r\nimport { RelationshipClass, RelationshipConstraint } from \"./Metadata/RelationshipClass\";\r\nimport { Schema } from \"./Metadata/Schema\";\r\nimport { SchemaItem } from \"./Metadata/SchemaItem\";\r\nimport { Unit } from \"./Metadata/Unit\";\r\nimport { UnitSystem } from \"./Metadata/UnitSystem\";\r\nimport { SchemaItemKey, SchemaKey } from \"./SchemaKey\";\r\n\r\n/** @beta */\r\nexport type LazyLoadedSchema = Readonly<SchemaKey> & DelayedPromise<Schema> & Promise<Schema>;\r\n\r\n/** @beta */\r\nexport type LazyLoadedSchemaItem<T extends SchemaItem> = Readonly<SchemaItemKey> & DelayedPromise<T> & Promise<T>;\r\n/** @beta */\r\nexport type LazyLoadedECClass = LazyLoadedSchemaItem<ECClass>;\r\n/** @beta */\r\nexport type LazyLoadedEntityClass = LazyLoadedSchemaItem<EntityClass>;\r\n/** @beta */\r\nexport type LazyLoadedMixin = LazyLoadedSchemaItem<Mixin>;\r\n/** @beta */\r\nexport type LazyLoadedStructClass = LazyLoadedSchemaItem<StructClass>;\r\n/** @beta */\r\nexport type LazyLoadedCustomAttributeClass = LazyLoadedSchemaItem<CustomAttributeClass>;\r\n/** @beta */\r\nexport type LazyLoadedRelationshipClass = LazyLoadedSchemaItem<RelationshipClass>;\r\n/** @beta */\r\nexport type LazyLoadedEnumeration = LazyLoadedSchemaItem<Enumeration>;\r\n/** @beta */\r\nexport type LazyLoadedKindOfQuantity = LazyLoadedSchemaItem<KindOfQuantity>;\r\n/** @beta */\r\nexport type LazyLoadedPropertyCategory = LazyLoadedSchemaItem<PropertyCategory>;\r\n/** @beta */\r\nexport type LazyLoadedRelationshipConstraintClass = LazyLoadedSchemaItem<EntityClass | Mixin | RelationshipClass>;\r\n/** @beta */\r\nexport type LazyLoadedUnit = LazyLoadedSchemaItem<Unit>;\r\n/** @beta */\r\nexport type LazyLoadedInvertedUnit = LazyLoadedSchemaItem<InvertedUnit>;\r\n/** @beta */\r\nexport type LazyLoadedConstant = LazyLoadedSchemaItem<Constant>;\r\n/** @beta */\r\nexport type LazyLoadedPhenomenon = LazyLoadedSchemaItem<Phenomenon>;\r\n/** @beta */\r\nexport type LazyLoadedUnitSystem = LazyLoadedSchemaItem<UnitSystem>;\r\n/** @beta */\r\nexport type LazyLoadedFormat = LazyLoadedSchemaItem<Format>;\r\n\r\n/** @beta */\r\nexport type AnyClass = EntityClass | Mixin | StructClass | CustomAttributeClass | RelationshipClass;\r\n/** @beta */\r\nexport type AnySchemaItem = AnyClass | Enumeration | KindOfQuantity | PropertyCategory | Unit | InvertedUnit | Constant | Phenomenon | UnitSystem | Format;\r\n/** @beta */\r\nexport type AnyECType = Schema | SchemaItem | AnyProperty | RelationshipConstraint | CustomAttributeContainerProps | CustomAttribute | OverrideFormat | AnyEnumerator;\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../src/Metadata/Class.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Class.js","sourceRoot":"","sources":["../../src/Metadata/Class.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;AAEH,sDAA6C;AAC7C,sDAA4D;AAE5D,oFAAiF;AACjF,4CAA6I;AAC7I,4CAA+D;AAE/D,4CAAwD;AACxD,uDAAkI;AAElI,yCAEoB;AAEpB,6CAA0C;AAE1C;;;GAGG;AACH,MAAsB,OAAQ,SAAQ,uBAAU;IAa9C,YAAY,MAAc,EAAE,IAAY,EAAE,QAA0B;QAClE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEpB,IAAI,QAAQ;YACV,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;;YAE1B,IAAI,CAAC,SAAS,GAAG,2BAAe,CAAC,IAAI,CAAC;IAC1C,CAAC;IAbD,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,IAAW,SAAS,KAAoC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjF,IAAW,SAAS,CAAC,SAAwC,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/F,IAAW,UAAU,aAA6C,OAAO,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACtG,IAAW,gBAAgB,KAAqC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAWhG;;;;OAIG;IACO,WAAW,CAAqB,IAAO;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,cAAc,CAAC,IAAY;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/C;IACH,CAAC;IAED;;;;OAIG;IACO,kBAAkB,CAAC,IAAY;QACvC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/C;IACH,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAU,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,mBAA4B,KAAK;QACtE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,QAAQ;gBACV,OAAO,QAAQ,CAAC;SACnB;QAED,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,IAAY,EAAE,mBAA4B,KAAK;QACpE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,QAAQ;gBACV,OAAO,QAAQ,CAAC;SACnB;QAED,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,oBAAoB,CAAC,IAAY;QAC5C,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1C,OAAO,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,wBAAwB,CAAC,IAAY;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,YAAY;YACd,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,OAAO,SAAS,CAAC;IACnB,CAAC;IAUS,KAAK,CAAC,uBAAuB,CAAC,IAAY,EAAE,aAAoD;QACxG,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,4BAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,wCAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChI,CAAC;IAUS,2BAA2B,CAAC,IAAY,EAAE,aAAoD;QACtG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,4BAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,wCAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChI,CAAC;IASS,KAAK,CAAC,4BAA4B,CAAC,IAAY,EAAE,aAAoD;QAC7G,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,iCAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,mCAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,wCAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrI,CAAC;IASS,gCAAgC,CAAC,IAAY,EAAE,aAAoD;QAC3G,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,iCAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,mCAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,wCAAuB,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrI,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,UAAgC;QACjF,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED;;;;OAIG;IACO,wBAAwB,CAAC,IAAY,EAAE,UAAgC;QAC/E,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,yBAAyB,CAAC,IAAY,EAAE,UAAgC;QACtF,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnH,CAAC;IAED;;;;OAIG;IACO,6BAA6B,CAAC,IAAY,EAAE,UAAgC;QACpF,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,iBAAiB,EAAE,+BAA+B,IAAI,gCAAgC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAE/I,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,UAA4C,EAAE,MAAc;QACzF,IAAI,WAAoC,CAAC;QACzC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;YACpC,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAc,UAAU,CAAC,CAAC;SAChE;;YACC,WAAW,GAAG,UAAU,CAAC;QAE3B,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,WAAW,EAAE,6BAA6B,UAAU,+BAA+B,CAAC,CAAC;QAEhI,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,kBAAkB,CAAC,UAA4C,EAAE,MAAc;QACvF,IAAI,WAAoC,CAAC;QACzC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;YACpC,WAAW,GAAG,MAAM,CAAC,cAAc,CAAc,UAAU,CAAC,CAAC;SAC9D;;YACC,WAAW,GAAG,UAAU,CAAC;QAE3B,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,WAAW,EAAE,6BAA6B,UAAU,+BAA+B,CAAC,CAAC;QAEhI,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,aAA+D,EAAE,MAAc;QAC/G,IAAI,aAAa,KAAK,SAAS;YAC7B,OAAO,yBAAa,CAAC,OAAO,CAAC;QAE/B,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;YACvC,IAAI,YAAY,GAA8C,IAAA,8BAAkB,EAAC,aAAa,CAAC,CAAC;YAChG,IAAI,CAAC,YAAY,EAAE;gBACjB,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAc,aAAa,CAAC,CAAC;aACpE;YAED,IAAI,YAAY,KAAK,SAAS;gBAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,WAAW,EAAE,gCAAgC,aAAa,gDAAgD,CAAC,CAAC;YAEvJ,0FAA0F;YAC1F,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,cAAc,KAAK,0BAAc,CAAC,WAAW;gBAClG,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,WAAW,EAAE,gCAAgC,aAAa,gDAAgD,CAAC,CAAC;YAEvJ,OAAO,YAAY,CAAC;SACrB;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,aAA+D,EAAE,MAAc;QAC7G,IAAI,aAAa,KAAK,SAAS;YAC7B,OAAO,yBAAa,CAAC,OAAO,CAAC;QAE/B,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;YACvC,IAAI,YAAY,GAA8C,IAAA,8BAAkB,EAAC,aAAa,CAAC,CAAC;YAChG,IAAI,CAAC,YAAY,EAAE;gBACjB,YAAY,GAAG,MAAM,CAAC,cAAc,CAAc,aAAa,CAAC,CAAC;aAClE;YAED,IAAI,YAAY,KAAK,SAAS;gBAC5B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,WAAW,EAAE,gCAAgC,aAAa,gDAAgD,CAAC,CAAC;YAEvJ,OAAO,YAAY,CAAC;SACrB;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACa,MAAM,CAAC,aAAsB,KAAK,EAAE,uBAAgC,KAAK;QACvF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAQ,CAAC;QACzE,MAAM,OAAO,GAAG,0BAAc,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;QAC7D,MAAM,cAAc,GAAG,0BAAc,CAAC,iBAAiB,KAAK,IAAI,CAAC,cAAc,CAAC;QAChF,IAAI,CAAC,OAAO,IAAI,CAAC,2BAAe,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC;YACxE,UAAU,CAAC,QAAQ,GAAG,IAAA,iCAAqB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAC9B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;YAC7D,UAAU,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7E,MAAM,gBAAgB,GAAG,IAAA,2CAAyB,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1E,IAAI,gBAAgB,KAAK,SAAS;YAChC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACjD,OAAO,UAAwB,CAAC;IAClC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,KAAK,CAAC,SAAmB;QAC7C,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ;YAC7B,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,IAAA,iCAAqB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE7E,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,6CAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9G,gBAAgB,CAAC,WAAW,GAAG,aAAa,CAAC;YAC7C,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;SAC3C;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;YACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;gBAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5C,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAClC;SACF;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACzE,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACtD,MAAM,SAAS,GAAG,MAAM,6CAAqB,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5G,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAC3C;YACD,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;SAC7C;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEe,YAAY,CAAC,UAAsB;QACjD,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/B,IAAI,SAAS,KAAK,UAAU,CAAC,QAAQ,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAA,8BAAkB,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,SAAS,KAAK,QAAQ;gBACxB,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,eAAe,EAAE,eAAe,UAAU,CAAC,QAAQ,mCAAmC,CAAC,CAAC;YACnI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC3B;QAED,IAAI,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE;YACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAChF,IAAI,CAAC,oBAAoB;gBACvB,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,aAAa,EAAE,kCAAkC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YACrH,IAAI,CAAC,UAAU,GAAG,IAAI,wCAAuB,CAAyB,oBAAoB,EACxF,KAAK,IAAI,EAAE;gBACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAU,oBAAoB,CAAC,CAAC;gBAC9E,IAAI,SAAS,KAAK,SAAS;oBACzB,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,aAAa,EAAE,kCAAkC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;gBACrH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IAEe,KAAK,CAAC,QAAQ,CAAC,UAAsB;QACnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAES,kBAAkB,CAAC,eAAgC;QAC3D,IAAI,CAAC,IAAI,CAAC,iBAAiB;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAA2B,CAAC;QAE9D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACW,iBAAiB;;YAC7B,MAAM,WAAW,GAAc,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,KAAK,EAAE,OAAiB,EAAE,EAAE;gBACjD,IAAI,0BAAc,CAAC,WAAW,KAAK,OAAO,CAAC,cAAc,EAAE;oBACzD,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;wBACrD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC7C;iBACF;gBAED,IAAI,OAAO,CAAC,SAAS;oBACnB,WAAW,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC,CAAC;YAEF,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAc,CAAC;gBAChD,cAAM,cAAc,CAAC,SAAS,CAAC,CAAA,CAAC;gBAChC,IAAI,SAAS,KAAK,IAAI;oBACpB,oBAAM,SAAoB,CAAA,CAAC;aAC9B;QACH,CAAC;KAAA;IAEM,CAAC,qBAAqB;QAC3B,MAAM,WAAW,GAAc,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,EAAE;YAC3C,IAAI,0BAAc,CAAC,WAAW,KAAK,OAAO,CAAC,cAAc,EAAE;gBACzD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC7D,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACrB;aACF;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,SAAS;gBACX,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAc,CAAC;YAChD,cAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,SAAS,KAAK,IAAI;gBACpB,MAAM,SAAS,CAAC;SACnB;IACH,CAAC;IAES,MAAM,CAAC,eAAe,CAAC,MAAkB,EAAE,cAAmC,EAAE,iBAA6B,EAAE,iBAA0B;QACjJ,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE;YACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,IAAI,iBAAiB,EAAE;oBACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;iBAC7B;aACF;iBAAM;gBACL,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,MAAkB,EAAE,cAAoC,EAAE,kBAA2B,KAAK;QAC3H,IAAI,CAAC,cAAc,EAAE;YACnB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;SACrH;QAED,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAES,sBAAsB,CAAC,MAAkB,EAAE,cAAoC,EAAE,kBAA2B,KAAK;QACzH,IAAI,CAAC,cAAc,EAAE;YACnB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;SAC5C;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;SACtG;QAED,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,aAAsB,KAAK;QAClD,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,UAAU,EAAE;YAC5C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;SAC/E;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,aAAsB,KAAK;QACpD,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,UAAU,EAAE;YAC5C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;SACjF;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAmB;QAC9B,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,uBAAuB;QAC5B,IAAI,gBAAgB,GAA6C,IAAI,CAAC,iBAAiB,CAAC;QACxF,IAAI,SAAS,KAAK,gBAAgB,EAAE;YAClC,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;SACvD;QAED,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAgB,EAAE,EAAE;YAChD,IAAI,SAAS,KAAK,OAAO,CAAC,gBAAgB;gBACxC,OAAO,KAAK,CAAC;YAEf,KAAK,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBACnE,IAAI,gBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAClC,SAAS;gBACX,gBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;aACnD;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAAC,QAAkD,EAAE,GAAS;;;YAC5F,KAA8B,IAAA,KAAA,cAAA,IAAI,CAAC,iBAAiB,EAAE,CAAA,IAAA;gBAA3C,MAAM,SAAS,WAAA,CAAA;gBACxB,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;oBAC1B,OAAO,IAAI,CAAC;aACf;;;;;;;;;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,uBAAuB,CAAC,QAAkD,EAAE,GAAS;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW;YACd,OAAO,KAAK,CAAC;QAEf,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;YACnC,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;gBAC1B,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IASM,KAAK,CAAC,EAAE,CAAC,WAA6B,EAAE,UAAmB;QAChE,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAA,qBAAM,EAAC,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,sEAAsE,CAAC,CAAC;YAElH,MAAM,GAAG,GAAG,IAAI,yBAAa,CAAC,WAAW,EAAE,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,IAAI,uBAAU,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAClC,OAAO,IAAI,CAAC;YAEd,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAC7D;aAAM;YACL,IAAA,qBAAM,EAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,4CAA4C,CAAC,CAAC;YAErF,IAAI,uBAAU,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;gBAC1C,OAAO,IAAI,CAAC;YAEd,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SACrE;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,WAAoB;QAChC,IAAI,uBAAU,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;YAC1C,OAAO,IAAI,CAAC;QAEd,OAAO,IAAI,CAAC,uBAAuB,CAAC,uBAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,MAAW;QACjC,IAAI,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC;YAClC,OAAO,KAAK,CAAC;QAEf,OAAO,MAAM,CAAC,cAAc,KAAK,0BAAc,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,KAAK,0BAAc,CAAC,KAAK,IAAI,MAAM,CAAC,cAAc,KAAK,0BAAc,CAAC,iBAAiB;YACzK,MAAM,CAAC,cAAc,KAAK,0BAAc,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,KAAK,0BAAc,CAAC,oBAAoB,CAAC;IAC1H,CAAC;IAED;;;;OAIG;IACO,WAAW,CAAC,QAAyB;QAC7C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;CACF;AAjpBD,0BAipBC;AAED;;;GAGG;AACH,MAAa,WAAY,SAAQ,OAAO;IAGtC,YAAY,MAAc,EAAE,IAAY,EAAE,QAA0B;QAClE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,0BAAc,CAAC,WAAW,CAAC;IACnD,CAAC;CACF;AAPD,kCAOC;AAED;;;GAGG;AACH,MAAsB,kBAAmB,SAAQ,WAAW;CAE3D;AAFD,gDAEC;AAED;;;GAGG;AACH,MAAsB,YAAa,SAAQ,OAAO;CA2BjD;AA3BD,oCA2BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { DelayedPromiseWithProps } from \"../DelayedPromise\";\r\nimport { ClassProps } from \"../Deserialization/JsonProps\";\r\nimport { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { classModifierToString, ECClassModifier, parseClassModifier, parsePrimitiveType, PrimitiveType, SchemaItemType } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { AnyClass, LazyLoadedECClass } from \"../Interfaces\";\r\nimport { SchemaItemKey, SchemaKey } from \"../SchemaKey\";\r\nimport { CustomAttribute, CustomAttributeContainerProps, CustomAttributeSet, serializeCustomAttributes } from \"./CustomAttribute\";\r\nimport { Enumeration } from \"./Enumeration\";\r\nimport {\r\n EnumerationArrayProperty, EnumerationProperty, PrimitiveArrayProperty, PrimitiveProperty, Property, StructArrayProperty, StructProperty,\r\n} from \"./Property\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItem } from \"./SchemaItem\";\r\n\r\n/**\r\n * A common abstract class for all of the ECClass types.\r\n * @beta\r\n */\r\nexport abstract class ECClass extends SchemaItem implements CustomAttributeContainerProps {\r\n protected _modifier: ECClassModifier;\r\n protected _baseClass?: LazyLoadedECClass;\r\n protected _properties?: Map<string, Property>;\r\n private _customAttributes?: Map<string, CustomAttribute>;\r\n private _mergedPropertyCache?: Property[];\r\n\r\n public get modifier() { return this._modifier; }\r\n public get baseClass(): LazyLoadedECClass | undefined { return this._baseClass; }\r\n public set baseClass(baseClass: LazyLoadedECClass | undefined) { this._baseClass = baseClass; }\r\n public get properties(): IterableIterator<Property> | undefined { return this._properties?.values(); }\r\n public get customAttributes(): CustomAttributeSet | undefined { return this._customAttributes; }\r\n\r\n constructor(schema: Schema, name: string, modifier?: ECClassModifier) {\r\n super(schema, name);\r\n\r\n if (modifier)\r\n this._modifier = modifier;\r\n else\r\n this._modifier = ECClassModifier.None;\r\n }\r\n\r\n /**\r\n * Convenience method for adding an already loaded ECProperty used by create*Property methods.\r\n * @param prop The property to add.\r\n * @return The property that was added.\r\n */\r\n protected addProperty<T extends Property>(prop: T): T {\r\n if (!this._properties)\r\n this._properties = new Map<string, Property>();\r\n\r\n this._properties.set(prop.name.toUpperCase(), prop);\r\n return prop;\r\n }\r\n\r\n /**\r\n * Deletes a property from within this class.\r\n * @param name The property name to delete, lookup is case-insensitive\r\n * @alpha\r\n */\r\n protected async deleteProperty(name: string): Promise<void> {\r\n if (this._properties) {\r\n const property = await this.getProperty(name);\r\n if (property)\r\n this._properties.delete(name.toUpperCase());\r\n }\r\n }\r\n\r\n /**\r\n * Deletes a property from within this class.\r\n * @param name The property name to delete, lookup is case-insensitive\r\n * @alpha\r\n */\r\n protected deletePropertySync(name: string): void {\r\n if (this._properties) {\r\n const property = this.getPropertySync(name);\r\n if (property)\r\n this._properties.delete(name.toUpperCase());\r\n }\r\n }\r\n\r\n public getBaseClassSync(): ECClass | undefined {\r\n if (!this.baseClass) {\r\n return undefined;\r\n }\r\n\r\n return this.schema.lookupItemSync<ECClass>(this.baseClass);\r\n }\r\n\r\n /**\r\n * Searches, case-insensitive, for a local ECProperty with the name provided.\r\n * @param name\r\n */\r\n public async getProperty(name: string, includeInherited: boolean = false): Promise<Property | undefined> {\r\n if (this._properties) {\r\n const upperKey = name.toUpperCase();\r\n const property = this._properties.get(upperKey);\r\n if (property)\r\n return property;\r\n }\r\n\r\n if (!includeInherited) {\r\n return undefined;\r\n }\r\n\r\n return this.getInheritedProperty(name);\r\n }\r\n\r\n /**\r\n * Searches, case-insensitive, for a local ECProperty with the name provided.\r\n * @param name\r\n */\r\n public getPropertySync(name: string, includeInherited: boolean = false): Property | undefined {\r\n if (this._properties) {\r\n const upperKey = name.toUpperCase();\r\n const property = this._properties.get(upperKey);\r\n if (property)\r\n return property;\r\n }\r\n\r\n if (!includeInherited) {\r\n return undefined;\r\n }\r\n\r\n return this.getInheritedPropertySync(name);\r\n }\r\n\r\n /**\r\n * Searches the base class, if one exists, for the property with the name provided.\r\n * @param name The name of the inherited property to find.\r\n */\r\n public async getInheritedProperty(name: string): Promise<Property | undefined> {\r\n if (this.baseClass) {\r\n const baseClassObj = await this.baseClass;\r\n return baseClassObj.getProperty(name, true);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Searches the base class, if one exists, for the property with the name provided.\r\n * @param name The name of the inherited property to find.\r\n */\r\n public getInheritedPropertySync(name: string): Property | undefined {\r\n const baseClassObj = this.getBaseClassSync();\r\n if (baseClassObj)\r\n return baseClassObj.getPropertySync(name, true);\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Creates a PrimitiveECProperty.\r\n * @param name The name of property to create.\r\n * @param primitiveType The primitive type of property to create. If not provided the default is PrimitiveType.Integer\r\n * @throws ECObjectsStatus DuplicateProperty: thrown if a property with the same name already exists in the class.\r\n */\r\n protected async createPrimitiveProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveProperty>;\r\n protected async createPrimitiveProperty(name: string, primitiveType: Enumeration): Promise<EnumerationProperty>;\r\n protected async createPrimitiveProperty(name: string, primitiveType?: string | PrimitiveType | Enumeration): Promise<Property> {\r\n if (await this.getProperty(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n const propType = await this.loadPrimitiveType(primitiveType, this.schema);\r\n if (typeof (propType) === \"number\")\r\n return this.addProperty(new PrimitiveProperty(this, name, propType));\r\n\r\n return this.addProperty(new EnumerationProperty(this, name, new DelayedPromiseWithProps(propType.key, async () => propType)));\r\n }\r\n\r\n /**\r\n * Creates a PrimitiveECProperty.\r\n * @param name The name of property to create.\r\n * @param primitiveType The primitive type of property to create. If not provided the default is PrimitiveType.Integer\r\n * @throws ECObjectsStatus DuplicateProperty: thrown if a property with the same name already exists in the class.\r\n */\r\n protected createPrimitivePropertySync(name: string, primitiveType: PrimitiveType): PrimitiveProperty;\r\n protected createPrimitivePropertySync(name: string, primitiveType: Enumeration): EnumerationProperty;\r\n protected createPrimitivePropertySync(name: string, primitiveType?: string | PrimitiveType | Enumeration): Property {\r\n if (this.getPropertySync(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);\r\n if (typeof (propType) === \"number\")\r\n return this.addProperty(new PrimitiveProperty(this, name, propType));\r\n\r\n return this.addProperty(new EnumerationProperty(this, name, new DelayedPromiseWithProps(propType.key, async () => propType)));\r\n }\r\n\r\n /**\r\n * Creates a PrimitiveArrayECProperty.\r\n * @param name The name of property to create.\r\n * @param primitiveType The primitive type of property to create. If not provided the default is PrimitiveType.Integer\r\n */\r\n protected async createPrimitiveArrayProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveArrayProperty>;\r\n protected async createPrimitiveArrayProperty(name: string, primitiveType: Enumeration): Promise<EnumerationArrayProperty>;\r\n protected async createPrimitiveArrayProperty(name: string, primitiveType?: string | PrimitiveType | Enumeration): Promise<Property> {\r\n if (await this.getProperty(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n const propType = await this.loadPrimitiveType(primitiveType, this.schema);\r\n if (typeof (propType) === \"number\")\r\n return this.addProperty(new PrimitiveArrayProperty(this, name, propType));\r\n\r\n return this.addProperty(new EnumerationArrayProperty(this, name, new DelayedPromiseWithProps(propType.key, async () => propType)));\r\n }\r\n\r\n /**\r\n * Creates a PrimitiveArrayECProperty.\r\n * @param name The name of property to create.\r\n * @param primitiveType The primitive type of property to create. If not provided the default is PrimitiveType.Integer\r\n */\r\n protected createPrimitiveArrayPropertySync(name: string, primitiveType: PrimitiveType): PrimitiveArrayProperty;\r\n protected createPrimitiveArrayPropertySync(name: string, primitiveType: Enumeration): EnumerationArrayProperty;\r\n protected createPrimitiveArrayPropertySync(name: string, primitiveType?: string | PrimitiveType | Enumeration): Property {\r\n if (this.getPropertySync(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n const propType = this.loadPrimitiveTypeSync(primitiveType, this.schema);\r\n if (typeof (propType) === \"number\")\r\n return this.addProperty(new PrimitiveArrayProperty(this, name, propType));\r\n\r\n return this.addProperty(new EnumerationArrayProperty(this, name, new DelayedPromiseWithProps(propType.key, async () => propType)));\r\n }\r\n\r\n /**\r\n *\r\n * @param name The name of property to create.\r\n * @param structType The struct type of property to create.\r\n */\r\n protected async createStructProperty(name: string, structType: string | StructClass): Promise<StructProperty> {\r\n if (await this.getProperty(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n return this.addProperty(new StructProperty(this, name, await this.loadStructType(structType, this.schema)));\r\n }\r\n\r\n /**\r\n *\r\n * @param name The name of property to create.\r\n * @param structType The struct type of property to create.\r\n */\r\n protected createStructPropertySync(name: string, structType: string | StructClass): StructProperty {\r\n if (this.getPropertySync(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n return this.addProperty(new StructProperty(this, name, this.loadStructTypeSync(structType, this.schema)));\r\n }\r\n\r\n /**\r\n *\r\n * @param name\r\n * @param type\r\n */\r\n protected async createStructArrayProperty(name: string, structType: string | StructClass): Promise<StructArrayProperty> {\r\n if (await this.getProperty(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n return this.addProperty(new StructArrayProperty(this, name, await this.loadStructType(structType, this.schema)));\r\n }\r\n\r\n /**\r\n *\r\n * @param name\r\n * @param type\r\n */\r\n protected createStructArrayPropertySync(name: string, structType: string | StructClass): StructArrayProperty {\r\n if (this.getPropertySync(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${this.name}.`);\r\n\r\n return this.addProperty(new StructArrayProperty(this, name, this.loadStructTypeSync(structType, this.schema)));\r\n }\r\n\r\n protected async loadStructType(structType: string | StructClass | undefined, schema: Schema): Promise<StructClass> {\r\n let correctType: StructClass | undefined;\r\n if (typeof (structType) === \"string\") {\r\n correctType = await schema.lookupItem<StructClass>(structType);\r\n } else\r\n correctType = structType;\r\n\r\n if (!correctType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);\r\n\r\n return correctType;\r\n }\r\n\r\n protected loadStructTypeSync(structType: string | StructClass | undefined, schema: Schema): StructClass {\r\n let correctType: StructClass | undefined;\r\n if (typeof (structType) === \"string\") {\r\n correctType = schema.lookupItemSync<StructClass>(structType);\r\n } else\r\n correctType = structType;\r\n\r\n if (!correctType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided Struct type, ${structType}, is not a valid StructClass.`);\r\n\r\n return correctType;\r\n }\r\n\r\n protected async loadPrimitiveType(primitiveType: string | PrimitiveType | Enumeration | undefined, schema: Schema): Promise<PrimitiveType | Enumeration> {\r\n if (primitiveType === undefined)\r\n return PrimitiveType.Integer;\r\n\r\n if (typeof (primitiveType) === \"string\") {\r\n let resolvedType: (PrimitiveType | Enumeration | undefined) = parsePrimitiveType(primitiveType);\r\n if (!resolvedType) {\r\n resolvedType = await schema.lookupItem<Enumeration>(primitiveType);\r\n }\r\n\r\n if (resolvedType === undefined)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);\r\n\r\n // If resolvedType is a SchemaItem, make sure it is an Enumeration- if not, throw an error\r\n if (typeof (resolvedType) !== \"number\" && resolvedType.schemaItemType !== SchemaItemType.Enumeration)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);\r\n\r\n return resolvedType;\r\n }\r\n\r\n return primitiveType;\r\n }\r\n\r\n protected loadPrimitiveTypeSync(primitiveType: string | PrimitiveType | Enumeration | undefined, schema: Schema): PrimitiveType | Enumeration {\r\n if (primitiveType === undefined)\r\n return PrimitiveType.Integer;\r\n\r\n if (typeof (primitiveType) === \"string\") {\r\n let resolvedType: (PrimitiveType | Enumeration | undefined) = parsePrimitiveType(primitiveType);\r\n if (!resolvedType) {\r\n resolvedType = schema.lookupItemSync<Enumeration>(primitiveType);\r\n }\r\n\r\n if (resolvedType === undefined)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided primitive type, ${primitiveType}, is not a valid PrimitiveType or Enumeration.`);\r\n\r\n return resolvedType;\r\n }\r\n\r\n return primitiveType;\r\n }\r\n\r\n /**\r\n * Save this Classes properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): ClassProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n const isMixin = SchemaItemType.Mixin === this.schemaItemType;\r\n const isRelationship = SchemaItemType.RelationshipClass === this.schemaItemType;\r\n if (!isMixin && (ECClassModifier.None !== this.modifier || isRelationship))\r\n schemaJson.modifier = classModifierToString(this.modifier);\r\n if (this.baseClass !== undefined)\r\n schemaJson.baseClass = this.baseClass.fullName;\r\n if (this._properties !== undefined && this._properties.size > 0)\r\n schemaJson.properties = [...this.properties!].map((prop) => prop.toJSON());\r\n\r\n const customAttributes = serializeCustomAttributes(this.customAttributes);\r\n if (customAttributes !== undefined)\r\n schemaJson.customAttributes = customAttributes;\r\n return schemaJson as ClassProps;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n\r\n if (undefined !== this.modifier)\r\n itemElement.setAttribute(\"modifier\", classModifierToString(this.modifier));\r\n\r\n if (undefined !== this.baseClass) {\r\n const baseClass = await this.baseClass;\r\n const baseClassElement = schemaXml.createElement(\"BaseClass\");\r\n const baseClassName = XmlSerializationUtils.createXmlTypedName(this.schema, baseClass.schema, baseClass.name);\r\n baseClassElement.textContent = baseClassName;\r\n itemElement.appendChild(baseClassElement);\r\n }\r\n\r\n if (undefined !== this.properties) {\r\n for (const prop of this.properties) {\r\n const propXml = await prop.toXml(schemaXml);\r\n itemElement.appendChild(propXml);\r\n }\r\n }\r\n\r\n if (this._customAttributes) {\r\n const caContainerElement = schemaXml.createElement(\"ECCustomAttributes\");\r\n for (const [name, attribute] of this._customAttributes) {\r\n const caElement = await XmlSerializationUtils.writeCustomAttribute(name, attribute, schemaXml, this.schema);\r\n caContainerElement.appendChild(caElement);\r\n }\r\n itemElement.appendChild(caContainerElement);\r\n }\r\n\r\n return itemElement;\r\n }\r\n\r\n public override fromJSONSync(classProps: ClassProps) {\r\n super.fromJSONSync(classProps);\r\n\r\n if (undefined !== classProps.modifier) {\r\n const modifier = parseClassModifier(classProps.modifier);\r\n if (undefined === modifier)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidModifier, `The string '${classProps.modifier}' is not a valid ECClassModifier.`);\r\n this._modifier = modifier;\r\n }\r\n\r\n if (undefined !== classProps.baseClass) {\r\n const ecClassSchemaItemKey = this.schema.getSchemaItemKey(classProps.baseClass);\r\n if (!ecClassSchemaItemKey)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);\r\n this._baseClass = new DelayedPromiseWithProps<SchemaItemKey, ECClass>(ecClassSchemaItemKey,\r\n async () => {\r\n const baseClass = await this.schema.lookupItem<ECClass>(ecClassSchemaItemKey);\r\n if (undefined === baseClass)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the baseClass ${classProps.baseClass}.`);\r\n return baseClass;\r\n });\r\n }\r\n }\r\n\r\n public override async fromJSON(classProps: ClassProps): Promise<void> {\r\n this.fromJSONSync(classProps);\r\n }\r\n\r\n protected addCustomAttribute(customAttribute: CustomAttribute) {\r\n if (!this._customAttributes)\r\n this._customAttributes = new Map<string, CustomAttribute>();\r\n\r\n this._customAttributes.set(customAttribute.className, customAttribute);\r\n }\r\n\r\n /**\r\n * Iterates (recursively) over all base classes and mixins, in \"property override\" order.\r\n * This is essentially a depth-first traversal through the inheritance tree.\r\n */\r\n public async *getAllBaseClasses(): AsyncIterableIterator<ECClass> {\r\n const baseClasses: ECClass[] = [this];\r\n const addBaseClasses = async (ecClass: AnyClass) => {\r\n if (SchemaItemType.EntityClass === ecClass.schemaItemType) {\r\n for (let i = (ecClass).mixins.length - 1; i >= 0; i--) {\r\n baseClasses.push(await (ecClass).mixins[i]);\r\n }\r\n }\r\n\r\n if (ecClass.baseClass)\r\n baseClasses.push(await ecClass.baseClass);\r\n };\r\n\r\n while (baseClasses.length > 0) {\r\n const baseClass = baseClasses.pop() as AnyClass;\r\n await addBaseClasses(baseClass);\r\n if (baseClass !== this)\r\n yield baseClass as ECClass;\r\n }\r\n }\r\n\r\n public *getAllBaseClassesSync(): Iterable<AnyClass> {\r\n const baseClasses: ECClass[] = [this];\r\n const addBaseClasses = (ecClass: AnyClass) => {\r\n if (SchemaItemType.EntityClass === ecClass.schemaItemType) {\r\n for (const m of Array.from(ecClass.getMixinsSync()).reverse()) {\r\n baseClasses.push(m);\r\n }\r\n }\r\n\r\n const baseClass = ecClass.getBaseClassSync();\r\n if (baseClass)\r\n baseClasses.push(baseClass);\r\n };\r\n\r\n while (baseClasses.length > 0) {\r\n const baseClass = baseClasses.pop() as AnyClass;\r\n addBaseClasses(baseClass);\r\n if (baseClass !== this)\r\n yield baseClass;\r\n }\r\n }\r\n\r\n protected static mergeProperties(target: Property[], existingValues: Map<string, number>, propertiesToMerge: Property[], overwriteExisting: boolean) {\r\n for (const property of propertiesToMerge) {\r\n const upperCaseName = property.name.toUpperCase();\r\n const existing = existingValues.get(upperCaseName);\r\n if (existing !== undefined) {\r\n if (overwriteExisting) {\r\n target[existing] = property;\r\n }\r\n } else {\r\n existingValues.set(upperCaseName, target.length);\r\n target.push(property);\r\n }\r\n }\r\n }\r\n\r\n protected async buildPropertyCache(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): Promise<void> {\r\n if (!existingValues) {\r\n existingValues = new Map<string, number>();\r\n }\r\n\r\n if (this.baseClass) {\r\n ECClass.mergeProperties(result, existingValues, await (await this.baseClass).getProperties(resetBaseCaches), false);\r\n }\r\n\r\n if (!this.properties)\r\n return;\r\n\r\n ECClass.mergeProperties(result, existingValues, [...this.properties], true);\r\n }\r\n\r\n protected buildPropertyCacheSync(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): void {\r\n if (!existingValues) {\r\n existingValues = new Map<string, number>();\r\n }\r\n\r\n const baseClass = this.getBaseClassSync();\r\n if (baseClass) {\r\n ECClass.mergeProperties(result, existingValues, baseClass.getPropertiesSync(resetBaseCaches), false);\r\n }\r\n\r\n if (!this.properties)\r\n return;\r\n\r\n ECClass.mergeProperties(result, existingValues, [...this.properties], true);\r\n }\r\n\r\n /**\r\n * Iterates all properties, including the ones merged from base classes and mixins. To obtain only local properties, use the 'properties' field.\r\n * Since this is an expensive operation, results will be cached after first call.\r\n * @param resetCache if true, any previously cached results will be dropped and cache will be rebuilt\r\n */\r\n public getPropertiesSync(resetCache: boolean = false): Property[] {\r\n if (!this._mergedPropertyCache || resetCache) {\r\n this._mergedPropertyCache = [];\r\n this.buildPropertyCacheSync(this._mergedPropertyCache, undefined, resetCache);\r\n }\r\n\r\n return this._mergedPropertyCache;\r\n }\r\n\r\n /**\r\n * Iterates all properties, including the ones merged from base classes and mixins. To obtain only local properties, use the 'properties' field.\r\n * Since this is an expensive operation, results will be cached after first call.\r\n * @param resetCache if true, any previously cached results will be dropped and cache will be rebuilt\r\n */\r\n public async getProperties(resetCache: boolean = false): Promise<Property[]> {\r\n if (!this._mergedPropertyCache || resetCache) {\r\n this._mergedPropertyCache = [];\r\n await this.buildPropertyCache(this._mergedPropertyCache, undefined, resetCache);\r\n }\r\n\r\n return this._mergedPropertyCache;\r\n }\r\n\r\n /**\r\n * Retrieve all custom attributes in the current class and its bases\r\n * This is the async version of getCustomAttributesSync()\r\n */\r\n public async getCustomAttributes(): Promise<CustomAttributeSet> {\r\n return this.getCustomAttributesSync();\r\n }\r\n\r\n /**\r\n * Retrieve all custom attributes in the current class and its bases.\r\n */\r\n public getCustomAttributesSync(): CustomAttributeSet {\r\n let customAttributes: Map<string, CustomAttribute> | undefined = this._customAttributes;\r\n if (undefined === customAttributes) {\r\n customAttributes = new Map<string, CustomAttribute>();\r\n }\r\n\r\n this.traverseBaseClassesSync((ecClass: ECClass) => {\r\n if (undefined === ecClass.customAttributes)\r\n return false;\r\n\r\n for (const [className, customAttribute] of ecClass.customAttributes) {\r\n if (customAttributes!.has(className))\r\n continue;\r\n customAttributes!.set(className, customAttribute);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return customAttributes;\r\n }\r\n\r\n /**\r\n * Asynchronously traverses through the inheritance tree, using depth-first traversal, calling the given callback\r\n * function for each base class encountered.\r\n * @param callback The function to call for each base class in the hierarchy.\r\n * @param arg An argument that will be passed as the second parameter to the callback function.\r\n */\r\n public async traverseBaseClasses(callback: (ecClass: ECClass, arg?: any) => boolean, arg?: any): Promise<boolean> {\r\n for await (const baseClass of this.getAllBaseClasses()) {\r\n if (callback(baseClass, arg))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Synchronously traverses through the inheritance tree, using depth-first traversal, calling the given callback\r\n * function for each base class encountered.\r\n * @param callback The function to call for each base class in the hierarchy.\r\n * @param arg An argument that will be passed as the second parameter to the callback function.\r\n */\r\n public traverseBaseClassesSync(callback: (ecClass: ECClass, arg?: any) => boolean, arg?: any): boolean {\r\n const baseClasses = this.getAllBaseClassesSync();\r\n if (!baseClasses)\r\n return false;\r\n\r\n for (const baseClass of baseClasses) {\r\n if (callback(baseClass, arg))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Indicates if the targetClass is of this type.\r\n * @param targetClass The ECClass or ECClass name to check.\r\n * @param schemaName The schema name. Required if targetClass is the ECClass name.\r\n */\r\n public async is(targetClass: string, schemaName: string): Promise<boolean>;\r\n public async is(targetClass: ECClass): Promise<boolean>;\r\n public async is(targetClass: ECClass | string, schemaName?: string): Promise<boolean> {\r\n if (schemaName !== undefined) {\r\n assert(typeof (targetClass) === \"string\", \"Expected targetClass of type string because schemaName was specified\");\r\n\r\n const key = new SchemaItemKey(targetClass, new SchemaKey(schemaName));\r\n if (SchemaItem.equalByKey(this, key))\r\n return true;\r\n\r\n return this.traverseBaseClasses(SchemaItem.equalByKey, key);\r\n } else {\r\n assert(ECClass.isECClass(targetClass), \"Expected targetClass to be of type ECClass\");\r\n\r\n if (SchemaItem.equalByKey(this, targetClass))\r\n return true;\r\n\r\n return this.traverseBaseClasses(SchemaItem.equalByKey, targetClass);\r\n }\r\n }\r\n\r\n /**\r\n * A synchronous version of the [[ECClass.is]], indicating if the targetClass is of this type.\r\n * @param targetClass The class to check.\r\n */\r\n public isSync(targetClass: ECClass): boolean {\r\n if (SchemaItem.equalByKey(this, targetClass))\r\n return true;\r\n\r\n return this.traverseBaseClassesSync(SchemaItem.equalByKey, targetClass);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static isECClass(object: any): object is ECClass {\r\n if (!SchemaItem.isSchemaItem(object))\r\n return false;\r\n\r\n return object.schemaItemType === SchemaItemType.EntityClass || object.schemaItemType === SchemaItemType.Mixin || object.schemaItemType === SchemaItemType.RelationshipClass ||\r\n object.schemaItemType === SchemaItemType.StructClass || object.schemaItemType === SchemaItemType.CustomAttributeClass;\r\n }\r\n\r\n /**\r\n * @alpha\r\n * A setter method used specifically for schema editing.\r\n * @param modifier\r\n */\r\n protected setModifier(modifier: ECClassModifier) {\r\n this._modifier = modifier;\r\n }\r\n}\r\n\r\n/**\r\n * A Typescript class representation of an ECStructClass.\r\n * @beta\r\n */\r\nexport class StructClass extends ECClass {\r\n public override readonly schemaItemType!: SchemaItemType.StructClass; // eslint-disable-line\r\n\r\n constructor(schema: Schema, name: string, modifier?: ECClassModifier) {\r\n super(schema, name, modifier);\r\n this.schemaItemType = SchemaItemType.StructClass;\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * An abstract class used for schema editing.\r\n */\r\nexport abstract class MutableStructClass extends StructClass {\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n\r\n/**\r\n * Hackish approach that works like a \"friend class\" so we can access protected members without making them public.\r\n * @internal\r\n */\r\nexport abstract class MutableClass extends ECClass {\r\n public abstract override addCustomAttribute(customAttribute: CustomAttribute): void;\r\n public abstract override setModifier(modifier: ECClassModifier): void;\r\n public abstract override createPrimitiveProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveProperty>;\r\n public abstract override createPrimitiveProperty(name: string, primitiveType: Enumeration): Promise<EnumerationProperty>;\r\n public abstract override createPrimitiveProperty(name: string, primitiveType?: string | PrimitiveType | Enumeration): Promise<Property>;\r\n\r\n public abstract override createPrimitivePropertySync(name: string, primitiveType: PrimitiveType): PrimitiveProperty;\r\n public abstract override createPrimitivePropertySync(name: string, primitiveType: Enumeration): EnumerationProperty;\r\n public abstract override createPrimitivePropertySync(name: string, primitiveType?: string | PrimitiveType | Enumeration): Property;\r\n\r\n public abstract override createPrimitiveArrayProperty(name: string, primitiveType: PrimitiveType): Promise<PrimitiveArrayProperty>;\r\n public abstract override createPrimitiveArrayProperty(name: string, primitiveType: Enumeration): Promise<EnumerationArrayProperty>;\r\n public abstract override createPrimitiveArrayProperty(name: string, primitiveType?: string | PrimitiveType | Enumeration): Promise<Property>;\r\n\r\n public abstract override createPrimitiveArrayPropertySync(name: string, primitiveType: PrimitiveType): PrimitiveArrayProperty;\r\n public abstract override createPrimitiveArrayPropertySync(name: string, primitiveType: Enumeration): EnumerationArrayProperty;\r\n public abstract override createPrimitiveArrayPropertySync(name: string, primitiveType?: string | PrimitiveType | Enumeration): Property;\r\n\r\n public abstract override createStructProperty(name: string, structType: string | StructClass): Promise<StructProperty>;\r\n public abstract override createStructPropertySync(name: string, structType: string | StructClass): StructProperty;\r\n\r\n public abstract override createStructArrayProperty(name: string, structType: string | StructClass): Promise<StructArrayProperty>;\r\n public abstract override createStructArrayPropertySync(name: string, structType: string | StructClass): StructArrayProperty;\r\n\r\n public abstract override deleteProperty(name: string): Promise<void>;\r\n public abstract override deletePropertySync(name: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Constant.d.ts","sourceRoot":"","sources":["../../src/Metadata/Constant.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,SAAyB,cAAc,EAAG,cAAc,CAAC,QAAQ,CAAC;IAClE,SAAS,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAC7C,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQxC,IAAW,UAAU,IAAI,oBAAoB,GAAG,SAAS,CAA6B;IACtF,IAAW,UAAU,IAAI,MAAM,CAA6B;IAC5D,IAAW,SAAS,IAAI,MAAM,CAA4B;IAC1D,IAAW,WAAW,IAAI,MAAM,CAA8B;IAE9D;;;;OAIG;IACa,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,GAAG,aAAa;IAWzF,gBAAgB;IACM,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBlD,YAAY,CAAC,aAAa,EAAE,aAAa;IA8BnC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAI3D;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,oBAAoB;IAIxD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM;IAI1C;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM;IAIxC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM;CAG7C;AACD;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,QAAQ;aAC3B,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;aACrD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;aACvC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;aACrC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;aACzC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CACrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Metadata/Constant.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { DelayedPromiseWithProps } from \"../DelayedPromise\";\r\nimport { ConstantProps } from \"../Deserialization/JsonProps\";\r\nimport { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { SchemaItemType } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { LazyLoadedPhenomenon } from \"../Interfaces\";\r\nimport { SchemaItemKey } from \"../SchemaKey\";\r\nimport { Phenomenon } from \"./Phenomenon\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItem } from \"./SchemaItem\";\r\n\r\n/**\r\n * A Constant is a specific type of Unit that represents a number.\r\n * @beta\r\n */\r\nexport class Constant extends SchemaItem {\r\n public override readonly schemaItemType!: SchemaItemType.Constant; // eslint-disable-line\r\n protected _phenomenon?: LazyLoadedPhenomenon;\r\n protected _definition: string;\r\n protected _numerator: number;\r\n protected _denominator: number;\r\n\r\n constructor(schema: Schema, name: string) {\r\n super(schema, name);\r\n this.schemaItemType = SchemaItemType.Constant;\r\n this._definition = \"\";\r\n this._denominator = 1.0;\r\n this._numerator = 1.0;\r\n }\r\n\r\n public get phenomenon(): LazyLoadedPhenomenon | undefined { return this._phenomenon; }\r\n public get definition(): string { return this._definition; }\r\n public get numerator(): number { return this._numerator; }\r\n public get denominator(): number { return this._denominator; }\r\n\r\n /**\r\n * Save this Constants properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean, includeSchemaVersion: boolean): ConstantProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n if (this.phenomenon !== undefined)\r\n schemaJson.phenomenon = this.phenomenon.fullName;\r\n schemaJson.definition = this.definition;\r\n if (this.numerator !== undefined)\r\n schemaJson.numerator = this.numerator;\r\n schemaJson.denominator = this.denominator;\r\n return schemaJson as ConstantProps;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n itemElement.setAttribute(\"definition\", this.definition);\r\n if (undefined !== this.numerator)\r\n itemElement.setAttribute(\"numerator\", this.numerator.toString());\r\n if (undefined !== this.denominator)\r\n itemElement.setAttribute(\"denominator\", this.denominator.toString());\r\n\r\n const phenomenon = await this.phenomenon;\r\n if (undefined !== phenomenon) {\r\n const phenomenonName = XmlSerializationUtils.createXmlTypedName(this.schema, phenomenon.schema, phenomenon.name);\r\n itemElement.setAttribute(\"phenomenon\", phenomenonName);\r\n }\r\n\r\n return itemElement;\r\n }\r\n\r\n public override fromJSONSync(constantProps: ConstantProps) {\r\n super.fromJSONSync(constantProps);\r\n\r\n const schemaItemKey = this.schema.getSchemaItemKey(constantProps.phenomenon);\r\n if (!schemaItemKey)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the phenomenon ${constantProps.phenomenon}.`);\r\n this._phenomenon = new DelayedPromiseWithProps<SchemaItemKey, Phenomenon>(schemaItemKey,\r\n async () => {\r\n const phenom = await this.schema.lookupItem<Phenomenon>(schemaItemKey);\r\n if (undefined === phenom)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the phenomenon ${constantProps.phenomenon}.`);\r\n return phenom;\r\n });\r\n\r\n if (this._definition !== \"\" && constantProps.definition.toLowerCase() !== this._definition.toLowerCase())\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Constant ${this.name} has an invalid 'definition' attribute.`);\r\n else if (this._definition === \"\")\r\n this._definition = constantProps.definition;\r\n\r\n if (undefined !== constantProps.numerator) {\r\n if (constantProps.numerator !== this._numerator)\r\n this._numerator = constantProps.numerator;\r\n }\r\n\r\n if (undefined !== constantProps.denominator) {\r\n if (constantProps.denominator !== this._denominator)\r\n this._denominator = constantProps.denominator;\r\n }\r\n }\r\n\r\n public override async fromJSON(constantProps: ConstantProps) {\r\n this.fromJSONSync(constantProps);\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n * @param phenomenon A LazyLoadedPhenomenon.\r\n */\r\n protected setPhenomenon(phenomenon: LazyLoadedPhenomenon) {\r\n this._phenomenon = phenomenon;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setDefinition(definition: string) {\r\n this._definition = definition;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setNumerator(numerator: number) {\r\n this._numerator = numerator;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setDenominator(denominator: number) {\r\n this._denominator = denominator;\r\n }\r\n}\r\n/**\r\n * @internal\r\n * An abstract class used for schema editing.\r\n */\r\nexport abstract class MutableConstant extends Constant {\r\n public abstract override setPhenomenon(phenomenon: LazyLoadedPhenomenon): void;\r\n public abstract override setDefinition(definition: string): void;\r\n public abstract override setNumerator(numerator: number): void;\r\n public abstract override setDenominator(denominator: number): void;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomAttribute.d.ts","sourceRoot":"","sources":["../../src/Metadata/CustomAttribute.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;CACzB;AAED,YAAY;AACZ,MAAM,WAAW,kBAAkB;IACjC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IACrE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CACrD;AAED,YAAY;AACZ,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,YAAY;AACZ,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,SAAS,GAAG,GAAG,EAAE,GAAG,SAAS,CAc7G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomAttribute.js","sourceRoot":"","sources":["../../src/Metadata/CustomAttribute.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAwBH,YAAY;AACZ,SAAgB,yBAAyB,CAAC,gBAAgD;IACxF,IAAI,SAAS,KAAK,gBAAgB,EAAE,EAAE,gCAAgC;QACpE,MAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,EAAE,eAAe,CAAC,IAAI,gBAAgB,EAAE;YAClD,MAAM,SAAS,GAA6B,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE;gBACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACzC,SAAS,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5B;QACD,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;KACzD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAdD,8DAcC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Metadata\n */\n\nimport { Schema } from \"./Schema\";\n\n/** @beta */\nexport interface CustomAttribute {\n className: string;\n [propName: string]: any;\n}\n\n/** @beta */\nexport interface CustomAttributeSet {\n [Symbol.iterator]: () => IterableIterator<[string, CustomAttribute]>;\n has(className: string): boolean;\n get(className: string): CustomAttribute | undefined;\n}\n\n/** @beta */\nexport interface CustomAttributeContainerProps {\n customAttributes?: CustomAttributeSet;\n fullName: string;\n schema: Schema;\n}\n\n/** @beta */\nexport function serializeCustomAttributes(customAttributes: CustomAttributeSet | undefined): any[] | undefined {\n if (undefined !== customAttributes) { // custom attributes is optional\n const attributes: any[] = [];\n for (const [, customAttribute] of customAttributes) {\n const attribute: { [value: string]: any } = {};\n Object.keys(customAttribute).map((property: any) => {\n const propertyName = property.toString();\n attribute[propertyName] = customAttribute[property];\n });\n attributes.push(attribute);\n }\n return (attributes.length > 0) ? attributes : undefined;\n }\n return undefined;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomAttributeClass.d.ts","sourceRoot":"","sources":["../../src/Metadata/CustomAttributeClass.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACkB,4BAA4B,EAAE,eAAe,EAAqC,cAAc,EACxH,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,SAAyB,cAAc,EAAG,cAAc,CAAC,oBAAoB,CAAC;IAC9E,SAAS,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAExD,IAAW,aAAa,IAAI,4BAA4B,CAIvD;gBAEW,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe;IAKpE;;;;OAIG;IACa,MAAM,CAAC,UAAU,GAAE,OAAe,EAAE,oBAAoB,GAAE,OAAe,GAAG,yBAAyB;IAMrH,gBAAgB;IACM,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlD,YAAY,CAAC,oBAAoB,EAAE,yBAAyB;IAQtD,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB;IAI9E;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,4BAA4B;CAGvE;AACD;;;GAGG;AACH,8BAAsB,cAAe,SAAQ,oBAAoB;aACtC,gBAAgB,CAAC,aAAa,EAAE,4BAA4B,GAAG,IAAI;aACnE,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CACrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomAttributeClass.js","sourceRoot":"","sources":["../../src/Metadata/CustomAttributeClass.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,4CAEsB;AACtB,4CAA+D;AAC/D,mCAAkC;AAGlC;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,eAAO;IAU/C,YAAY,MAAc,EAAE,IAAY,EAAE,QAA0B;QAClE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,0BAAc,CAAC,oBAAoB,CAAC;IAC5D,CAAC;IATD,IAAW,aAAa;QACtB,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc;YACnC,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,oBAAoB,EAAE,4BAA4B,IAAI,CAAC,IAAI,gDAAgD,CAAC,CAAC;QACxJ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAOD;;;;OAIG;IACa,MAAM,CAAC,aAAsB,KAAK,EAAE,uBAAgC,KAAK;QACvF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAQ,CAAC;QACzE,UAAU,CAAC,SAAS,GAAG,IAAA,iCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,OAAO,UAAuC,CAAC;IACjD,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,KAAK,CAAC,SAAmB;QAC7C,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,IAAA,iCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACjF,OAAO,WAAW,CAAC;IACrB,CAAC;IAEe,YAAY,CAAC,oBAA+C;QAC1E,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAA,6CAAiC,EAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACxF,IAAI,SAAS,KAAK,aAAa;YAC7B,MAAM,IAAI,0BAAc,CAAC,2BAAe,CAAC,oBAAoB,EAAE,GAAG,aAAa,+CAA+C,CAAC,CAAC;QAClI,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAEe,KAAK,CAAC,QAAQ,CAAC,oBAA+C;QAC5E,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,aAA2C;QACpE,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CACF;AAnDD,oDAmDC;AACD;;;GAGG;AACH,MAAsB,cAAe,SAAQ,oBAAoB;CAGhE;AAHD,wCAGC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { CustomAttributeClassProps } from \"../Deserialization/JsonProps\";\r\nimport {\r\n containerTypeToString, CustomAttributeContainerType, ECClassModifier, parseCustomAttributeContainerType, SchemaItemType,\r\n} from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { ECClass } from \"./Class\";\r\nimport { Schema } from \"./Schema\";\r\n\r\n/**\r\n * A Typescript class representation of an ECCustomAttributeClass.\r\n * @beta\r\n */\r\nexport class CustomAttributeClass extends ECClass {\r\n public override readonly schemaItemType!: SchemaItemType.CustomAttributeClass; // eslint-disable-line\r\n protected _containerType?: CustomAttributeContainerType;\r\n\r\n public get containerType(): CustomAttributeContainerType {\r\n if (undefined === this._containerType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidContainerType, `The CustomAttributeClass ${this.name} does not have a CustomAttributeContainerType.`);\r\n return this._containerType;\r\n }\r\n\r\n constructor(schema: Schema, name: string, modifier?: ECClassModifier) {\r\n super(schema, name, modifier);\r\n this.schemaItemType = SchemaItemType.CustomAttributeClass;\r\n }\r\n\r\n /**\r\n * Save this CustomAttributeClasses properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): CustomAttributeClassProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n schemaJson.appliesTo = containerTypeToString(this.containerType);\r\n return schemaJson as CustomAttributeClassProps;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n itemElement.setAttribute(\"appliesTo\", containerTypeToString(this.containerType));\r\n return itemElement;\r\n }\r\n\r\n public override fromJSONSync(customAttributeProps: CustomAttributeClassProps) {\r\n super.fromJSONSync(customAttributeProps);\r\n const containerType = parseCustomAttributeContainerType(customAttributeProps.appliesTo);\r\n if (undefined === containerType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidContainerType, `${containerType} is not a valid CustomAttributeContainerType.`);\r\n this._containerType = containerType;\r\n }\r\n\r\n public override async fromJSON(customAttributeProps: CustomAttributeClassProps) {\r\n this.fromJSONSync(customAttributeProps);\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setContainerType(containerType: CustomAttributeContainerType) {\r\n this._containerType = containerType;\r\n }\r\n}\r\n/**\r\n * @internal\r\n * An abstract class used for Schema editing.\r\n */\r\nexport abstract class MutableCAClass extends CustomAttributeClass {\r\n public abstract override setContainerType(containerType: CustomAttributeContainerType): void;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityClass.d.ts","sourceRoot":"","sources":["../../src/Metadata/EntityClass.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityClass.js","sourceRoot":"","sources":["../../src/Metadata/EntityClass.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { DelayedPromiseWithProps } from \"../DelayedPromise\";\r\nimport { EntityClassProps } from \"../Deserialization/JsonProps\";\r\nimport { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { ECClassModifier, parseStrengthDirection, SchemaItemType, StrengthDirection } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { LazyLoadedMixin } from \"../Interfaces\";\r\nimport { SchemaItemKey } from \"../SchemaKey\";\r\nimport { ECClass } from \"./Class\";\r\nimport { Mixin } from \"./Mixin\";\r\nimport { AnyProperty, NavigationProperty, Property } from \"./Property\";\r\nimport { RelationshipClass } from \"./RelationshipClass\";\r\nimport { Schema } from \"./Schema\";\r\n\r\n/**\r\n * A Typescript class representation of an ECEntityClass.\r\n * @beta\r\n */\r\nexport class EntityClass extends ECClass {\r\n public override readonly schemaItemType!: SchemaItemType.EntityClass; // eslint-disable-line\r\n protected _mixins?: LazyLoadedMixin[];\r\n\r\n constructor(schema: Schema, name: string, modifier?: ECClassModifier) {\r\n super(schema, name, modifier);\r\n this.schemaItemType = SchemaItemType.EntityClass;\r\n }\r\n\r\n public get mixins(): LazyLoadedMixin[] {\r\n if (!this._mixins)\r\n return [];\r\n return this._mixins;\r\n }\r\n\r\n public *getMixinsSync(): Iterable<Mixin> {\r\n if (!this._mixins)\r\n return function* (): Iterable<Mixin> { }(); // empty iterable\r\n\r\n for (const mixin of this._mixins) {\r\n const mObj = this.schema.lookupItemSync<Mixin>(mixin);\r\n if (mObj) {\r\n yield mObj;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param mixin\r\n */\r\n protected addMixin(mixin: Mixin) {\r\n if (!this._mixins)\r\n this._mixins = [];\r\n\r\n this._mixins.push(new DelayedPromiseWithProps(mixin.key, async () => mixin));\r\n return;\r\n }\r\n\r\n /**\r\n * Searches the base class, if one exists, first then any mixins that exist for the property with the name provided.\r\n * @param name The name of the property to find.\r\n */\r\n public override async getInheritedProperty(name: string): Promise<AnyProperty | undefined> {\r\n let inheritedProperty = await super.getInheritedProperty(name);\r\n\r\n if (!inheritedProperty && this._mixins) {\r\n const mixinProps = await Promise.all(this._mixins.map(async (mixin) => (await mixin).getProperty(name)));\r\n mixinProps.some((prop) => {\r\n inheritedProperty = prop as AnyProperty;\r\n return inheritedProperty !== undefined;\r\n });\r\n }\r\n\r\n return inheritedProperty as AnyProperty | undefined;\r\n }\r\n\r\n /**\r\n * Searches the base class, if one exists, first then any mixins that exist for the property with the name provided.\r\n * @param name The name of the property to find.\r\n */\r\n public override getInheritedPropertySync(name: string): Property | undefined {\r\n const inheritedProperty = super.getInheritedPropertySync(name);\r\n if (inheritedProperty)\r\n return inheritedProperty;\r\n\r\n if (!this._mixins) {\r\n return undefined;\r\n }\r\n\r\n for (const mixin of this._mixins) {\r\n const mObj = this.schema.lookupItemSync<ECClass>(mixin);\r\n if (mObj) {\r\n const result = mObj.getPropertySync(name, true);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected override async buildPropertyCache(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): Promise<void> {\r\n if (!existingValues) {\r\n existingValues = new Map<string, number>();\r\n }\r\n\r\n if (this.baseClass) {\r\n ECClass.mergeProperties(result, existingValues, await (await this.baseClass).getProperties(resetBaseCaches), false);\r\n }\r\n\r\n for (const mixin of this.mixins) {\r\n ECClass.mergeProperties(result, existingValues, await (await mixin).getProperties(resetBaseCaches), false);\r\n }\r\n\r\n if (!this.properties)\r\n return;\r\n\r\n ECClass.mergeProperties(result, existingValues, [...this.properties], true);\r\n }\r\n\r\n protected override buildPropertyCacheSync(result: Property[], existingValues?: Map<string, number>, resetBaseCaches: boolean = false): void {\r\n if (!existingValues) {\r\n existingValues = new Map<string, number>();\r\n }\r\n\r\n const baseClass = this.getBaseClassSync();\r\n if (baseClass) {\r\n ECClass.mergeProperties(result, existingValues, baseClass.getPropertiesSync(resetBaseCaches), false);\r\n }\r\n\r\n for (const mixin of this.getMixinsSync()) {\r\n ECClass.mergeProperties(result, existingValues, mixin.getPropertiesSync(resetBaseCaches), false);\r\n }\r\n\r\n if (!this.properties)\r\n return;\r\n\r\n ECClass.mergeProperties(result, existingValues, [...this.properties], true);\r\n }\r\n\r\n /**\r\n *\r\n * @param name\r\n * @param relationship\r\n * @param direction\r\n */\r\n protected async createNavigationProperty(name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<NavigationProperty> {\r\n return this.addProperty(await createNavigationProperty(this, name, relationship, direction));\r\n }\r\n\r\n /**\r\n *\r\n * @param name\r\n * @param relationship\r\n * @param direction\r\n */\r\n protected createNavigationPropertySync(name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): NavigationProperty {\r\n return this.addProperty(createNavigationPropertySync(this, name, relationship, direction));\r\n }\r\n\r\n /**\r\n * Save this EntityClass' properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): EntityClassProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n if (this.mixins.length > 0)\r\n schemaJson.mixins = this.mixins.map((mixin) => mixin.fullName);\r\n return schemaJson;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n\r\n for (const mixin of this.getMixinsSync()) {\r\n const mixinElement = schemaXml.createElement(\"BaseClass\");\r\n const mixinName = XmlSerializationUtils.createXmlTypedName(this.schema, mixin.schema, mixin.name);\r\n mixinElement.textContent = mixinName;\r\n itemElement.appendChild(mixinElement);\r\n }\r\n return itemElement;\r\n }\r\n\r\n public override async fromJSON(entityClassProps: EntityClassProps) {\r\n this.fromJSONSync(entityClassProps);\r\n }\r\n\r\n public override fromJSONSync(entityClassProps: EntityClassProps) {\r\n super.fromJSONSync(entityClassProps);\r\n\r\n if (undefined !== entityClassProps.mixins) {\r\n if (!this._mixins)\r\n this._mixins = [];\r\n for (const name of entityClassProps.mixins) {\r\n const mixinSchemaItemKey = this.schema.getSchemaItemKey(name);\r\n if (!mixinSchemaItemKey)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The ECEntityClass ${this.name} has a mixin (\"${name}\") that cannot be found.`);\r\n this._mixins.push(new DelayedPromiseWithProps<SchemaItemKey, Mixin>(mixinSchemaItemKey,\r\n async () => {\r\n const mixin = await this.schema.lookupItem<Mixin>(mixinSchemaItemKey);\r\n if (undefined === mixin)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The ECEntityClass ${this.name} has a mixin (\"${name}\") that cannot be found.`);\r\n return mixin;\r\n }));\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Hackish approach that works like a \"friend class\" so we can access protected members without making them public.\r\n * @internal\r\n */\r\nexport abstract class MutableEntityClass extends EntityClass {\r\n public abstract override addMixin(mixin: Mixin): any;\r\n public abstract override createNavigationProperty(name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<NavigationProperty>;\r\n public abstract override createNavigationPropertySync(name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): NavigationProperty;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n\r\n/** @internal */\r\nexport async function createNavigationProperty(ecClass: ECClass, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): Promise<NavigationProperty> {\r\n if (await ecClass.getProperty(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${ecClass.name}.`);\r\n\r\n let resolvedRelationship: RelationshipClass | undefined;\r\n if (typeof (relationship) === \"string\") {\r\n resolvedRelationship = await ecClass.schema.lookupItem<RelationshipClass>(relationship);\r\n } else\r\n resolvedRelationship = relationship;\r\n\r\n if (!resolvedRelationship)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided RelationshipClass, ${relationship}, is not a valid RelationshipClassInterface.`);\r\n\r\n if (typeof (direction) === \"string\") {\r\n const tmpDirection = parseStrengthDirection(direction);\r\n if (undefined === tmpDirection)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidStrengthDirection, `The provided StrengthDirection, ${direction}, is not a valid StrengthDirection.`);\r\n direction = tmpDirection;\r\n }\r\n\r\n const lazyRelationship = new DelayedPromiseWithProps(resolvedRelationship.key, async () => resolvedRelationship!);\r\n return new NavigationProperty(ecClass, name, lazyRelationship, direction);\r\n}\r\n\r\n/** @internal */\r\nexport function createNavigationPropertySync(ecClass: ECClass, name: string, relationship: string | RelationshipClass, direction: string | StrengthDirection): NavigationProperty {\r\n if (ecClass.getPropertySync(name))\r\n throw new ECObjectsError(ECObjectsStatus.DuplicateProperty, `An ECProperty with the name ${name} already exists in the class ${ecClass.name}.`);\r\n\r\n let resolvedRelationship: RelationshipClass | undefined;\r\n if (typeof (relationship) === \"string\") {\r\n resolvedRelationship = ecClass.schema.lookupItemSync<RelationshipClass>(relationship);\r\n } else\r\n resolvedRelationship = relationship;\r\n\r\n if (!resolvedRelationship)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidType, `The provided RelationshipClass, ${relationship}, is not a valid RelationshipClassInterface.`);\r\n\r\n if (typeof (direction) === \"string\") {\r\n const tmpDirection = parseStrengthDirection(direction);\r\n if (undefined === tmpDirection)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidStrengthDirection, `The provided StrengthDirection, ${direction}, is not a valid StrengthDirection.`);\r\n direction = tmpDirection;\r\n }\r\n\r\n const lazyRelationship = new DelayedPromiseWithProps(resolvedRelationship.key, async () => resolvedRelationship!);\r\n return new NavigationProperty(ecClass, name, lazyRelationship, direction);\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Enumeration.d.ts","sourceRoot":"","sources":["../../src/Metadata/Enumeration.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAmB,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,aAAa,EAAyB,cAAc,EAAE,MAAM,cAAc,CAAC;AAGpF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY;AACZ,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,YAAY;AACZ,oBAAY,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAExD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,SAAyB,cAAc,EAAG,cAAc,CAAC,WAAW,CAAC;IACrE,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;IAC/D,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;IAExC,IAAW,WAAW,oBAAgC;IACtD,IAAW,IAAI,6DAAyB;IACxC,IAAW,QAAQ,YAA6B;gBAEpC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM;IAQtG,IAAW,KAAK,IAAI,OAAO,CAAiD;IAC5E,IAAW,QAAQ,IAAI,OAAO,CAAgD;IAE9E;;;OAGG;IACI,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAInE;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;IAKnE;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;;;;;OAOG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAWlH;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa;IAIjD;;;;OAIG;IACa,MAAM,CAAC,UAAU,GAAE,OAAe,EAAE,oBAAoB,GAAE,OAAe,GAAG,gBAAgB;IAe5G,gBAAgB;IACM,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBlD,YAAY,CAAC,gBAAgB,EAAE,gBAAgB;IAyBzC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAIjE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO;CAIxC;AAED;;GAEG;AACH,8BAAsB,kBAAmB,SAAQ,WAAW;aACjC,aAAa,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;aAC9C,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;aACpC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CACrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Enumeration.js","sourceRoot":"","sources":["../../src/Metadata/Enumeration.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { EnumerationProps, EnumeratorProps } from \"../Deserialization/JsonProps\";\r\nimport { PrimitiveType, primitiveTypeToString, SchemaItemType } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { ECName } from \"../ECName\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItem } from \"./SchemaItem\";\r\n\r\n/** @beta */\r\nexport interface Enumerator<T> {\r\n readonly name: string;\r\n readonly value: T;\r\n readonly label?: string;\r\n readonly description?: string;\r\n}\r\n\r\n/** @beta */\r\nexport type AnyEnumerator = Enumerator<string | number>;\r\n\r\n/**\r\n * A Typescript class representation of an ECEnumeration.\r\n * @beta\r\n */\r\nexport class Enumeration extends SchemaItem {\r\n public override readonly schemaItemType!: SchemaItemType.Enumeration; // eslint-disable-line\r\n protected _type?: PrimitiveType.Integer | PrimitiveType.String;\r\n protected _isStrict: boolean;\r\n protected _enumerators: AnyEnumerator[];\r\n\r\n public get enumerators() { return this._enumerators; }\r\n public get type() { return this._type; }\r\n public get isStrict() { return this._isStrict; }\r\n\r\n constructor(schema: Schema, name: string, primitiveType?: PrimitiveType.Integer | PrimitiveType.String) {\r\n super(schema, name);\r\n this.schemaItemType = SchemaItemType.Enumeration;\r\n this._type = primitiveType;\r\n this._isStrict = true;\r\n this._enumerators = [];\r\n }\r\n\r\n public get isInt(): boolean { return this._type === PrimitiveType.Integer; }\r\n public get isString(): boolean { return this._type === PrimitiveType.String; }\r\n\r\n /**\r\n * Gets an enumerator that matches the name provided.\r\n * @param name The ECName of the Enumerator to find.\r\n */\r\n public getEnumeratorByName(name: string): AnyEnumerator | undefined {\r\n return this.enumerators.find((item) => item.name.toLowerCase() === name.toLowerCase());\r\n }\r\n\r\n /**\r\n * Gets an enumerator that matches the value provided.\r\n * @param value The value of the Enumerator to find.\r\n */\r\n public getEnumerator(value: string): Enumerator<string> | undefined;\r\n public getEnumerator(value: number): Enumerator<number> | undefined;\r\n public getEnumerator(value: string | number): AnyEnumerator | undefined {\r\n return this.enumerators.find((item) => item.value === value);\r\n }\r\n\r\n /**\r\n * Checks whether there already exists an enumerator with this name or this value\r\n * @param name The name of the enumerator we are trying to create\r\n * @param value The value of the enumerator we are trying to create\r\n * @internal\r\n */\r\n private findDuplicateEnumerators(name: string, value: string | number) {\r\n this._enumerators.forEach((element: AnyEnumerator) => { // Name and value must be unique within the ECEnumerations\r\n if (element.name.toLowerCase() === name.toLowerCase())\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has a duplicate Enumerator with name '${name}'.`);\r\n if (element.value === value)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has a duplicate Enumerator with value '${value}'.`);\r\n });\r\n }\r\n\r\n /**\r\n * Creates an Enumerator with the provided name and value as well as optional parameters label and description\r\n * @param name The name of the enumerator\r\n * @param value The value of the enumerator. The type of this value is dependent on the backing type of the this Enumeration.\r\n * @param label A localized display label that is used instead of the name in a GUI.\r\n * @param description A localized description for the enumerator.\r\n * @return AnyEnumerator object\r\n */\r\n public createEnumerator(name: string, value: string | number, label?: string, description?: string): AnyEnumerator {\r\n if (this.isInt && typeof (value) === \"string\") // throws if backing type is int and value is string\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has a backing type 'integer' and an enumerator with value of type 'string'.`);\r\n if (!this.isInt && typeof (value) === \"number\") // also throws if backing type is string and value is number\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has a backing type 'string' and an enumerator with value of type 'integer'.`);\r\n this.findDuplicateEnumerators(name, value); // check for duplicates; throw if there are any\r\n if (!ECName.validate(name))\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECName, `The Enumeration ${this.name} has an enumerator with an invalid 'name' attribute. ${name} is not a valid ECName.`);\r\n return { name, value, label, description };\r\n }\r\n\r\n /**\r\n * Adds enumerator to list of enumerators on this Enumeration\r\n * @param enumerator The enumerator to add\r\n */\r\n protected addEnumerator(enumerator: AnyEnumerator) {\r\n this.enumerators.push(enumerator);\r\n }\r\n\r\n /**\r\n * Save this Enumeration's properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): EnumerationProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n schemaJson.type = (this.isInt) ? \"int\" : \"string\";\r\n schemaJson.isStrict = this.isStrict;\r\n schemaJson.enumerators = this._enumerators.map(({ name, label, value, description }) => {\r\n const enumJson: any = { name, value };\r\n if (undefined !== label)\r\n enumJson.label = label;\r\n if (undefined !== description)\r\n enumJson.description = description;\r\n return enumJson;\r\n });\r\n return schemaJson;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n if (undefined !== this.type)\r\n itemElement.setAttribute(\"backingTypeName\", primitiveTypeToString(this.type));\r\n itemElement.setAttribute(\"isStrict\", String(this.isStrict));\r\n\r\n for (const enumerator of this.enumerators) {\r\n const enumElement = schemaXml.createElement(\"ECEnumerator\");\r\n enumElement.setAttribute(\"name\", enumerator.name);\r\n const enumValue = typeof enumerator.value === \"string\" ? enumerator.value : enumerator.value.toString();\r\n enumElement.setAttribute(\"value\", enumValue);\r\n if (undefined !== enumerator.label)\r\n enumElement.setAttribute(\"displayLabel\", enumerator.label);\r\n if (undefined !== enumerator.description)\r\n enumElement.setAttribute(\"description\", enumerator.description);\r\n itemElement.appendChild(enumElement);\r\n }\r\n\r\n return itemElement;\r\n }\r\n\r\n public override fromJSONSync(enumerationProps: EnumerationProps) {\r\n super.fromJSONSync(enumerationProps);\r\n if (undefined === this._type) {\r\n if (/int/i.test(enumerationProps.type))\r\n this._type = PrimitiveType.Integer;\r\n else if (/string/i.test(enumerationProps.type))\r\n this._type = PrimitiveType.String;\r\n else\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has an invalid 'type' attribute. It should be either \"int\" or \"string\".`);\r\n } else {\r\n const primitiveTypePattern = (this.isInt) ? /int/i : /string/i;\r\n if (!primitiveTypePattern.test(enumerationProps.type))\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Enumeration ${this.name} has an incompatible type. It must be \"${(this.isInt) ? \"int\" : \"string\"}\", not \"${(this.isInt) ? \"string\" : \"int\"}\".`);\r\n }\r\n this._isStrict = enumerationProps.isStrict;\r\n\r\n if (undefined !== enumerationProps.enumerators) {\r\n enumerationProps.enumerators.forEach((enumerator: EnumeratorProps) => {\r\n // Creates a new enumerator (with the specified name, value, label and description- label and description are optional) and adds to the list of enumerators.\r\n // Throws ECObjectsError if there are duplicate names or values present in the enumeration\r\n this.addEnumerator(this.createEnumerator(enumerator.name, enumerator.value, enumerator.label, enumerator.description));\r\n });\r\n }\r\n }\r\n\r\n public override async fromJSON(enumerationProps: EnumerationProps) {\r\n this.fromJSONSync(enumerationProps);\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setIsStrict(isStrict: boolean) {\r\n this._isStrict = isStrict;\r\n }\r\n\r\n}\r\n\r\n/** @internal\r\n * An abstract class used for schema editing.\r\n */\r\nexport abstract class MutableEnumeration extends Enumeration {\r\n public abstract override addEnumerator(enumerator: AnyEnumerator): void;\r\n public abstract override setIsStrict(isStrict: boolean): void;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/Metadata/Format.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Format.js","sourceRoot":"","sources":["../../src/Metadata/Format.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { FormatProps } from \"../Deserialization/JsonProps\";\r\nimport { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { SchemaItemType } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport {\r\n DecimalPrecision, FormatTraits, formatTraitsToArray, FormatType, formatTypeToString, FractionalPrecision, parseFormatTrait, parseFormatType,\r\n parsePrecision, parseScientificType, parseShowSignOption, ScientificType, scientificTypeToString, ShowSignOption, showSignOptionToString,\r\n} from \"../utils/FormatEnums\";\r\nimport { InvertedUnit } from \"./InvertedUnit\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItem } from \"./SchemaItem\";\r\nimport { Unit } from \"./Unit\";\r\n\r\n/**\r\n * @beta\r\n */\r\nexport class Format extends SchemaItem {\r\n public override readonly schemaItemType!: SchemaItemType.Format; // eslint-disable-line\r\n protected _roundFactor: number;\r\n protected _type: FormatType; // required; options are decimal, fractional, scientific, station\r\n protected _precision: number; // required\r\n protected _showSignOption: ShowSignOption; // options: noSign, onlyNegative, signAlways, negativeParentheses\r\n protected _decimalSeparator: string; // optional; default is based on current locale.... TODO: Default is based on current locale\r\n protected _thousandSeparator: string; // optional; default is based on current locale.... TODO: Default is based on current locale\r\n protected _uomSeparator: string; // optional; default is \" \"; defined separator between magnitude and the unit\r\n protected _stationSeparator: string; // optional; default is \"+\"\r\n protected _formatTraits: FormatTraits;\r\n protected _spacer: string; // optional; default is \" \"\r\n protected _includeZero: boolean; // optional; default is true\r\n protected _minWidth?: number; // optional; positive int\r\n protected _scientificType?: ScientificType; // required if type is scientific; options: normalized, zeroNormalized\r\n protected _stationOffsetSize?: number; // required when type is station; positive integer > 0\r\n protected _units?: Array<[Unit | InvertedUnit, string | undefined]>;\r\n\r\n constructor(schema: Schema, name: string) {\r\n super(schema, name);\r\n this.schemaItemType = SchemaItemType.Format;\r\n\r\n this._roundFactor = 0.0;\r\n this._type = FormatType.Decimal;\r\n this._precision = DecimalPrecision.Six;\r\n this._showSignOption = ShowSignOption.OnlyNegative;\r\n this._decimalSeparator = \".\";\r\n this._thousandSeparator = \",\";\r\n this._uomSeparator = \" \";\r\n this._stationSeparator = \"+\";\r\n this._formatTraits = 0x0;\r\n this._spacer = \" \";\r\n this._includeZero = true;\r\n }\r\n\r\n public get roundFactor(): number { return this._roundFactor; }\r\n public get type(): FormatType { return this._type; }\r\n public get precision(): DecimalPrecision | FractionalPrecision { return this._precision; }\r\n public get minWidth(): number | undefined { return this._minWidth; }\r\n public get scientificType(): ScientificType | undefined { return this._scientificType; }\r\n public get showSignOption(): ShowSignOption { return this._showSignOption; }\r\n public get decimalSeparator(): string { return this._decimalSeparator; }\r\n public get thousandSeparator(): string { return this._thousandSeparator; }\r\n public get uomSeparator(): string { return this._uomSeparator; }\r\n public get stationSeparator(): string { return this._stationSeparator; }\r\n public get stationOffsetSize(): number | undefined { return this._stationOffsetSize; }\r\n public get formatTraits(): FormatTraits { return this._formatTraits; }\r\n public get spacer(): string | undefined { return this._spacer; }\r\n public get includeZero(): boolean | undefined { return this._includeZero; }\r\n public get units(): Array<[Unit | InvertedUnit, string | undefined]> | undefined { return this._units; }\r\n\r\n private parseFormatTraits(formatTraitsFromJson: string | string[]) {\r\n const formatTraits = Array.isArray(formatTraitsFromJson) ? formatTraitsFromJson : formatTraitsFromJson.split(/,|;|\\|/);\r\n for (const traitStr of formatTraits) {\r\n const formatTrait = parseFormatTrait(traitStr);\r\n if (undefined === formatTrait)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'formatTraits' attribute. The string '${traitStr}' is not a valid format trait.`);\r\n this._formatTraits = this._formatTraits | formatTrait;\r\n }\r\n }\r\n\r\n public hasFormatTrait(formatTrait: FormatTraits) {\r\n return (this._formatTraits & formatTrait) === formatTrait;\r\n }\r\n\r\n /**\r\n * Adds a Unit, or InvertedUnit, with an optional label override.\r\n * @param unit The Unit, or InvertedUnit, to add to this Format.\r\n * @param label A label that overrides the label defined within the Unit when a value is formatted.\r\n */\r\n protected addUnit(unit: Unit | InvertedUnit, label?: string) {\r\n if (undefined === this._units)\r\n this._units = [];\r\n else { // Validate that a duplicate is not added.\r\n for (const existingUnit of this._units) {\r\n if (unit.fullName.toLowerCase() === existingUnit[0].fullName.toLowerCase())\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has duplicate units, '${unit.fullName}'.`); // TODO: Validation - this should be a validation error not a hard failure.\r\n }\r\n }\r\n\r\n this._units.push([unit, label]);\r\n }\r\n\r\n protected setPrecision(precision: number) { this._precision = precision; }\r\n\r\n private typecheck(formatProps: FormatProps) {\r\n const formatType = parseFormatType(formatProps.type);\r\n if (undefined === formatType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'type' attribute.`);\r\n this._type = formatType;\r\n\r\n if (undefined !== formatProps.precision) {\r\n if (!Number.isInteger(formatProps.precision)) // must be an integer\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'precision' attribute. It should be an integer.`);\r\n const precision = parsePrecision(formatProps.precision, this._type);\r\n if (undefined === precision)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'precision' attribute.`);\r\n this._precision = precision;\r\n }\r\n\r\n if (undefined !== formatProps.minWidth) {\r\n if (!Number.isInteger(formatProps.minWidth) || formatProps.minWidth < 0) // must be a positive int\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'minWidth' attribute. It should be a positive integer.`);\r\n this._minWidth = formatProps.minWidth;\r\n }\r\n\r\n if (FormatType.Scientific === this.type) {\r\n if (undefined === formatProps.scientificType) // if format type is scientific and scientific type is undefined, throw\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} is 'Scientific' type therefore the attribute 'scientificType' is required.`);\r\n const scientificType = parseScientificType(formatProps.scientificType);\r\n if (undefined === scientificType)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'scientificType' attribute.`);\r\n this._scientificType = scientificType;\r\n }\r\n\r\n if (FormatType.Station === this.type) {\r\n if (undefined === formatProps.stationOffsetSize)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} is 'Station' type therefore the attribute 'stationOffsetSize' is required.`);\r\n if (!Number.isInteger(formatProps.stationOffsetSize) || formatProps.stationOffsetSize < 0) // must be a positive int > 0\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'stationOffsetSize' attribute. It should be a positive integer.`);\r\n this._stationOffsetSize = formatProps.stationOffsetSize;\r\n }\r\n\r\n if (undefined !== formatProps.showSignOption) {\r\n const signOption = parseShowSignOption(formatProps.showSignOption);\r\n if (undefined === signOption)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'showSignOption' attribute.`);\r\n this._showSignOption = signOption;\r\n }\r\n\r\n if (undefined !== formatProps.formatTraits && formatProps.formatTraits.length !== 0)\r\n this.parseFormatTraits(formatProps.formatTraits);\r\n\r\n if (undefined !== formatProps.roundFactor)\r\n this._roundFactor = formatProps.roundFactor;\r\n\r\n if (undefined !== formatProps.decimalSeparator) {\r\n if (formatProps.decimalSeparator.length > 1)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'decimalSeparator' attribute. It should be an empty or one character string.`);\r\n this._decimalSeparator = formatProps.decimalSeparator;\r\n }\r\n\r\n if (undefined !== formatProps.thousandSeparator) {\r\n if (formatProps.thousandSeparator.length > 1)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'thousandSeparator' attribute. It should be an empty or one character string.`);\r\n this._thousandSeparator = formatProps.thousandSeparator;\r\n }\r\n\r\n if (undefined !== formatProps.uomSeparator) {\r\n if (formatProps.uomSeparator.length > 1)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'uomSeparator' attribute. It should be an empty or one character string.`);\r\n this._uomSeparator = formatProps.uomSeparator;\r\n }\r\n\r\n if (undefined !== formatProps.stationSeparator) {\r\n if (formatProps.stationSeparator.length > 1)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'stationSeparator' attribute. It should be an empty or one character string.`);\r\n this._stationSeparator = formatProps.stationSeparator;\r\n }\r\n\r\n if (undefined !== formatProps.composite) { // TODO: This is duplicated below when the units need to be processed...\r\n if (undefined !== formatProps.composite.includeZero)\r\n this._includeZero = formatProps.composite.includeZero;\r\n\r\n if (undefined !== formatProps.composite.spacer) {\r\n if (formatProps.composite.spacer.length > 1)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has a composite with an invalid 'spacer' attribute. It should be an empty or one character string.`);\r\n this._spacer = formatProps.composite.spacer;\r\n }\r\n\r\n // Composite requires 1-4 units\r\n if (formatProps.composite.units.length <= 0 || formatProps.composite.units.length > 4)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `The Format ${this.fullName} has an invalid 'Composite' attribute. It should have 1-4 units.`);\r\n }\r\n }\r\n\r\n public override fromJSONSync(formatProps: FormatProps) {\r\n super.fromJSONSync(formatProps);\r\n this.typecheck(formatProps);\r\n if (undefined === formatProps.composite)\r\n return;\r\n\r\n // Units are separated from the rest of the deserialization because of the need to have separate sync and async implementation\r\n for (const unit of formatProps.composite.units) {\r\n const newUnit = this.schema.lookupItemSync<Unit | InvertedUnit>(unit.name);\r\n if (undefined === newUnit)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, ``);\r\n this.addUnit(newUnit, unit.label);\r\n }\r\n }\r\n\r\n public override async fromJSON(formatProps: FormatProps) {\r\n await super.fromJSON(formatProps);\r\n this.typecheck(formatProps);\r\n if (undefined === formatProps.composite)\r\n return;\r\n\r\n // Units are separated from the rest of the deserialization because of the need to have separate sync and async implementation\r\n for (const unit of formatProps.composite.units) {\r\n const newUnit = await this.schema.lookupItem<Unit | InvertedUnit>(unit.name);\r\n if (undefined === newUnit)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, ``);\r\n this.addUnit(newUnit, unit.label);\r\n }\r\n }\r\n\r\n /**\r\n * Save this Format's properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): FormatProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n schemaJson.type = formatTypeToString(this.type);\r\n schemaJson.precision = this.precision;\r\n\r\n // this._spacer = \" \";\r\n // this._includeZero = true;\r\n\r\n // Serialize the minimal amount of information needed so anything that is the same as the default, do not serialize.\r\n if (0.0 !== this.roundFactor) schemaJson.roundFactor = this.roundFactor;\r\n if (ShowSignOption.OnlyNegative !== this.showSignOption) schemaJson.showSignOption = showSignOptionToString(this.showSignOption);\r\n if (0x0 !== this.formatTraits) schemaJson.formatTraits = formatTraitsToArray(this.formatTraits);\r\n if (\".\" !== this.decimalSeparator) schemaJson.decimalSeparator = this.decimalSeparator;\r\n if (\",\" !== this.thousandSeparator) schemaJson.thousandSeparator = this.thousandSeparator;\r\n if (\" \" !== this.uomSeparator) schemaJson.uomSeparator = this.uomSeparator;\r\n\r\n if (undefined !== this.minWidth) schemaJson.minWidth = this.minWidth;\r\n\r\n if (FormatType.Scientific === this.type && undefined !== this.scientificType)\r\n schemaJson.scientificType = scientificTypeToString(this.scientificType);\r\n\r\n if (FormatType.Station === this.type) {\r\n if (undefined !== this.stationOffsetSize)\r\n schemaJson.stationOffsetSize = this.stationOffsetSize;\r\n if (\" \" !== this.stationSeparator)\r\n schemaJson.stationSeparator = this.stationSeparator;\r\n }\r\n\r\n if (undefined === this.units)\r\n return schemaJson;\r\n\r\n schemaJson.composite = {};\r\n\r\n if (\" \" !== this.spacer) schemaJson.composite.spacer = this.spacer;\r\n if (true !== this.includeZero) schemaJson.composite.includeZero = this.includeZero;\r\n\r\n schemaJson.composite.units = [];\r\n for (const unit of this.units) {\r\n schemaJson.composite.units.push({\r\n name: unit[0].fullName,\r\n label: unit[1],\r\n });\r\n }\r\n\r\n return schemaJson;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n itemElement.setAttribute(\"type\", formatTypeToString(this.type).toLowerCase());\r\n itemElement.setAttribute(\"precision\", this.precision.toString());\r\n itemElement.setAttribute(\"roundFactor\", this.roundFactor.toString());\r\n itemElement.setAttribute(\"showSignOption\", showSignOptionToString(this.showSignOption));\r\n itemElement.setAttribute(\"decimalSeparator\", this.decimalSeparator);\r\n itemElement.setAttribute(\"thousandSeparator\", this.thousandSeparator);\r\n itemElement.setAttribute(\"uomSeparator\", this.uomSeparator);\r\n itemElement.setAttribute(\"stationSeparator\", this.stationSeparator);\r\n\r\n if (undefined !== this.minWidth)\r\n itemElement.setAttribute(\"minWidth\", this.minWidth.toString());\r\n if (undefined !== this.scientificType)\r\n itemElement.setAttribute(\"scientificType\", scientificTypeToString(this.scientificType));\r\n if (undefined !== this.stationOffsetSize)\r\n itemElement.setAttribute(\"stationOffsetSize\", this.stationOffsetSize.toString());\r\n\r\n const formatTraits = formatTraitsToArray(this.formatTraits);\r\n if (formatTraits.length > 0)\r\n itemElement.setAttribute(\"formatTraits\", formatTraits.join(\"|\"));\r\n\r\n if (undefined !== this.units) {\r\n const compositeElement = schemaXml.createElement(\"Composite\");\r\n if (undefined !== this.spacer)\r\n compositeElement.setAttribute(\"spacer\", this.spacer);\r\n if (undefined !== this.includeZero)\r\n compositeElement.setAttribute(\"includeZero\", this.includeZero.toString());\r\n\r\n this.units.forEach(([unit, label]) => {\r\n const unitElement = schemaXml.createElement(\"Unit\");\r\n if (undefined !== label)\r\n unitElement.setAttribute(\"label\", label);\r\n const unitName = XmlSerializationUtils.createXmlTypedName(this.schema, unit.schema, unit.name);\r\n unitElement.textContent = unitName;\r\n compositeElement.appendChild(unitElement);\r\n });\r\n\r\n itemElement.appendChild(compositeElement);\r\n }\r\n\r\n return itemElement;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setFormatType(formatType: FormatType) {\r\n this._type = formatType;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setRoundFactor(roundFactor: number) {\r\n this._roundFactor = roundFactor;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setShowSignOption(signOption: ShowSignOption) {\r\n this._showSignOption = signOption;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setDecimalSeparator(separator: string) {\r\n this._decimalSeparator = separator;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setThousandSeparator(separator: string) {\r\n this._thousandSeparator = separator;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setUomSeparator(separator: string) {\r\n this._uomSeparator = separator;\r\n }\r\n\r\n /**\r\n * @alpha Used in schema editing.\r\n */\r\n protected setStationSeparator(separator: string) {\r\n this._stationSeparator = separator;\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * An abstract class used for schema editing.\r\n */\r\nexport abstract class MutableFormat extends Format {\r\n public abstract override addUnit(unit: Unit | InvertedUnit, label?: string): void;\r\n public abstract override setPrecision(precision: number): void;\r\n public abstract override setFormatType(formatType: FormatType): void;\r\n public abstract override setRoundFactor(roundFactor: number): void;\r\n public abstract override setShowSignOption(signOption: ShowSignOption): void;\r\n public abstract override setDecimalSeparator(separator: string): void;\r\n public abstract override setThousandSeparator(separator: string): void;\r\n public abstract override setUomSeparator(separator: string): void;\r\n public abstract override setStationSeparator(separator: string): void;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvertedUnit.d.ts","sourceRoot":"","sources":["../../src/Metadata/InvertedUnit.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAyB,cAAc,EAAG,cAAc,CAAC,YAAY,CAAC;IACtE,SAAS,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACxC,SAAS,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;gBAEjC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKxC,IAAW,WAAW,IAAI,cAAc,GAAG,SAAS,CAA8B;IAClF,IAAW,UAAU,IAAI,oBAAoB,GAAG,SAAS,CAA6B;IAEtF;;;;OAIG;IACa,MAAM,CAAC,UAAU,GAAE,OAAe,EAAE,oBAAoB,GAAE,OAAe,GAAG,iBAAiB;IAO7G,gBAAgB;IACM,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBlD,YAAY,CAAC,iBAAiB,EAAE,iBAAiB;IAuB3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAInE;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc;IAIpD;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,oBAAoB;CAGzD;AAED;;;GAGG;AACH,8BAAsB,mBAAoB,SAAQ,YAAY;aACnC,cAAc,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI;aACjD,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI;aACrD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CACrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"InvertedUnit.js","sourceRoot":"","sources":["../../src/Metadata/InvertedUnit.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Metadata\r\n */\r\n\r\nimport { DelayedPromiseWithProps } from \"../DelayedPromise\";\r\nimport { InvertedUnitProps } from \"../Deserialization/JsonProps\";\r\nimport { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { SchemaItemType } from \"../ECObjects\";\r\nimport { ECObjectsError, ECObjectsStatus } from \"../Exception\";\r\nimport { LazyLoadedUnit, LazyLoadedUnitSystem } from \"../Interfaces\";\r\nimport { SchemaItemKey } from \"../SchemaKey\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItem } from \"./SchemaItem\";\r\nimport { Unit } from \"./Unit\";\r\nimport { UnitSystem } from \"./UnitSystem\";\r\n\r\n/**\r\n * An InvertedUnit is a specific type of Unit that describes the inverse of a single Unit whose dimensional derivation is unit-less.\r\n * @beta\r\n */\r\nexport class InvertedUnit extends SchemaItem {\r\n public override readonly schemaItemType!: SchemaItemType.InvertedUnit; // eslint-disable-line\r\n protected _invertsUnit?: LazyLoadedUnit; // required\r\n protected _unitSystem?: LazyLoadedUnitSystem; // required\r\n\r\n constructor(schema: Schema, name: string) {\r\n super(schema, name);\r\n this.schemaItemType = SchemaItemType.InvertedUnit;\r\n }\r\n\r\n public get invertsUnit(): LazyLoadedUnit | undefined { return this._invertsUnit; }\r\n public get unitSystem(): LazyLoadedUnitSystem | undefined { return this._unitSystem; }\r\n\r\n /**\r\n * Save this InvertedUnit's properties to an object for serializing to JSON.\r\n * @param standalone Serialization includes only this object (as opposed to the full schema).\r\n * @param includeSchemaVersion Include the Schema's version information in the serialized object.\r\n */\r\n public override toJSON(standalone: boolean = false, includeSchemaVersion: boolean = false): InvertedUnitProps {\r\n const schemaJson = super.toJSON(standalone, includeSchemaVersion) as any;\r\n schemaJson.invertsUnit = this.invertsUnit!.fullName;\r\n schemaJson.unitSystem = this.unitSystem!.fullName;\r\n return schemaJson;\r\n }\r\n\r\n /** @internal */\r\n public override async toXml(schemaXml: Document): Promise<Element> {\r\n const itemElement = await super.toXml(schemaXml);\r\n\r\n const unitSystem = await this.unitSystem;\r\n if (undefined !== unitSystem) {\r\n const unitSystemName = XmlSerializationUtils.createXmlTypedName(this.schema, unitSystem.schema, unitSystem.name);\r\n itemElement.setAttribute(\"unitSystem\", unitSystemName);\r\n }\r\n\r\n const invertsUnit = await this.invertsUnit;\r\n if (undefined !== invertsUnit) {\r\n const invertsUnitName = XmlSerializationUtils.createXmlTypedName(this.schema, invertsUnit.schema, invertsUnit.name);\r\n itemElement.setAttribute(\"invertsUnit\", invertsUnitName);\r\n }\r\n\r\n return itemElement;\r\n }\r\n\r\n public override fromJSONSync(invertedUnitProps: InvertedUnitProps) {\r\n super.fromJSONSync(invertedUnitProps);\r\n const unitSchemaItemKey = this.schema.getSchemaItemKey(invertedUnitProps.invertsUnit);\r\n this._invertsUnit = new DelayedPromiseWithProps<SchemaItemKey, Unit>(unitSchemaItemKey,\r\n async () => {\r\n const invertsUnit = await this.schema.lookupItem<Unit>(unitSchemaItemKey);\r\n if (undefined === invertsUnit)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the invertsUnit ${invertedUnitProps.invertsUnit}.`);\r\n return invertsUnit;\r\n });\r\n\r\n const unitSystemSchemaItemKey = this.schema.getSchemaItemKey(invertedUnitProps.unitSystem);\r\n if (!unitSystemSchemaItemKey)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the unitSystem ${invertedUnitProps.unitSystem}.`);\r\n this._unitSystem = new DelayedPromiseWithProps<SchemaItemKey, UnitSystem>(unitSystemSchemaItemKey,\r\n async () => {\r\n const unitSystem = await this.schema.lookupItem<UnitSystem>(unitSystemSchemaItemKey);\r\n if (undefined === unitSystem)\r\n throw new ECObjectsError(ECObjectsStatus.InvalidECJson, `Unable to locate the unitSystem ${invertedUnitProps.unitSystem}.`);\r\n return unitSystem;\r\n });\r\n }\r\n\r\n public override async fromJSON(invertedUnitProps: InvertedUnitProps) {\r\n this.fromJSONSync(invertedUnitProps);\r\n }\r\n\r\n /**\r\n * @alpha\r\n * Used for schema editing\r\n */\r\n protected setInvertsUnit(invertsUnit: LazyLoadedUnit) {\r\n this._invertsUnit = invertsUnit;\r\n }\r\n\r\n /**\r\n * @alpha\r\n * Used for schema editing\r\n */\r\n protected setUnitSystem(unitSystem: LazyLoadedUnitSystem) {\r\n this._unitSystem = unitSystem;\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * An abstract class used for schema editing.\r\n */\r\nexport abstract class MutableInvertedUnit extends InvertedUnit {\r\n public abstract override setInvertsUnit(invertsUnit: LazyLoadedUnit): void;\r\n public abstract override setUnitSystem(unitSystem: LazyLoadedUnitSystem): void;\r\n public abstract override setDisplayLabel(displayLabel: string): void;\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"KindOfQuantity.d.ts","sourceRoot":"","sources":["../../src/Metadata/KindOfQuantity.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAQ9B;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,SAAyB,cAAc,EAAG,cAAc,CAAC,cAAc,CAAC;IACxE,SAAS,CAAC,cAAc,EAAE,MAAM,CAAO;IACvC,SAAS,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,CAAwC;IACtG,SAAS,CAAC,gBAAgB,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAAC;IAErE,4DAA4D;IAC5D,IAAW,yBAAyB,IAAI,MAAM,GAAG,cAAc,GAAG,SAAS,CAAwC;IAEnH,sCAAsC;IACtC,IAAW,mBAAmB,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,CAAsC;IAEtG,IAAW,eAAe,IAAI,cAAc,GAAG,sBAAsB,GAAG,SAAS,CAAkC;IAEnH,IAAW,aAAa,WAAkC;gBAE9C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKxC;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,SAAS,GAAE,OAAe;IAK3F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4DzB;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,cAAc;YAY3I,wBAAwB;IAkCtC,OAAO,CAAC,4BAA4B;IAkCpC;;;;OAIG;IACa,MAAM,CAAC,UAAU,GAAE,OAAe,EAAE,oBAAoB,GAAE,OAAe,GAAG,mBAAmB;IAS/G,gBAAgB;IACM,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBlD,YAAY,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI;IAiBtD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBxF;AACD;;;GAGG;AACH,8BAAsB,qBAAsB,SAAQ,cAAc;aACvC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;aAChF,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,cAAc;aAC/I,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CACrE"}