@itwin/ecschema-metadata 4.0.0-dev.10 → 4.0.0-dev.100

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 (133) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/lib/cjs/Constants.d.ts +23 -23
  3. package/lib/cjs/Constants.js +33 -33
  4. package/lib/cjs/Constants.js.map +1 -1
  5. package/lib/cjs/Context.d.ts +139 -139
  6. package/lib/cjs/Context.js +204 -204
  7. package/lib/cjs/DelayedPromise.d.ts +88 -88
  8. package/lib/cjs/DelayedPromise.d.ts.map +1 -1
  9. package/lib/cjs/DelayedPromise.js +91 -91
  10. package/lib/cjs/DelayedPromise.js.map +1 -1
  11. package/lib/cjs/Deserialization/AbstractParser.d.ts +45 -45
  12. package/lib/cjs/Deserialization/AbstractParser.d.ts.map +1 -1
  13. package/lib/cjs/Deserialization/AbstractParser.js +11 -11
  14. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  15. package/lib/cjs/Deserialization/Helper.d.ts +251 -251
  16. package/lib/cjs/Deserialization/Helper.js +843 -843
  17. package/lib/cjs/Deserialization/JsonParser.d.ts +165 -165
  18. package/lib/cjs/Deserialization/JsonParser.d.ts.map +1 -1
  19. package/lib/cjs/Deserialization/JsonParser.js +680 -680
  20. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  21. package/lib/cjs/Deserialization/JsonProps.d.ts +268 -282
  22. package/lib/cjs/Deserialization/JsonProps.d.ts.map +1 -1
  23. package/lib/cjs/Deserialization/JsonProps.js +9 -9
  24. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  25. package/lib/cjs/Deserialization/SchemaGraphUtil.d.ts +34 -34
  26. package/lib/cjs/Deserialization/SchemaGraphUtil.js +77 -77
  27. package/lib/cjs/Deserialization/XmlParser.d.ts +85 -85
  28. package/lib/cjs/Deserialization/XmlParser.d.ts.map +1 -1
  29. package/lib/cjs/Deserialization/XmlParser.js +973 -973
  30. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  31. package/lib/cjs/Deserialization/XmlSerializationUtils.d.ts +54 -54
  32. package/lib/cjs/Deserialization/XmlSerializationUtils.js +174 -174
  33. package/lib/cjs/ECName.d.ts +30 -30
  34. package/lib/cjs/ECName.js +85 -85
  35. package/lib/cjs/ECObjects.d.ts +162 -162
  36. package/lib/cjs/ECObjects.js +453 -453
  37. package/lib/cjs/Exception.d.ts +43 -43
  38. package/lib/cjs/Exception.js +84 -84
  39. package/lib/cjs/Interfaces.d.ts +66 -66
  40. package/lib/cjs/Interfaces.d.ts.map +1 -1
  41. package/lib/cjs/Interfaces.js +9 -9
  42. package/lib/cjs/Metadata/Class.d.ts +243 -243
  43. package/lib/cjs/Metadata/Class.js +558 -558
  44. package/lib/cjs/Metadata/Class.js.map +1 -1
  45. package/lib/cjs/Metadata/Constant.d.ts +64 -64
  46. package/lib/cjs/Metadata/Constant.js +123 -123
  47. package/lib/cjs/Metadata/Constant.js.map +1 -1
  48. package/lib/cjs/Metadata/CustomAttribute.d.ts +23 -23
  49. package/lib/cjs/Metadata/CustomAttribute.js +27 -27
  50. package/lib/cjs/Metadata/CustomAttributeClass.d.ts +39 -39
  51. package/lib/cjs/Metadata/CustomAttributeClass.js +68 -68
  52. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  53. package/lib/cjs/Metadata/EntityClass.d.ts +77 -77
  54. package/lib/cjs/Metadata/EntityClass.js +230 -230
  55. package/lib/cjs/Metadata/Enumeration.d.ts +86 -86
  56. package/lib/cjs/Metadata/Enumeration.d.ts.map +1 -1
  57. package/lib/cjs/Metadata/Enumeration.js +159 -159
  58. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  59. package/lib/cjs/Metadata/Format.d.ts +98 -98
  60. package/lib/cjs/Metadata/Format.d.ts.map +1 -1
  61. package/lib/cjs/Metadata/Format.js +242 -242
  62. package/lib/cjs/Metadata/Format.js.map +1 -1
  63. package/lib/cjs/Metadata/InvertedUnit.d.ts +49 -49
  64. package/lib/cjs/Metadata/InvertedUnit.js +97 -97
  65. package/lib/cjs/Metadata/KindOfQuantity.d.ts +65 -65
  66. package/lib/cjs/Metadata/KindOfQuantity.js +225 -225
  67. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  68. package/lib/cjs/Metadata/Mixin.d.ts +54 -54
  69. package/lib/cjs/Metadata/Mixin.js +113 -113
  70. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  71. package/lib/cjs/Metadata/OverrideFormat.d.ts +67 -55
  72. package/lib/cjs/Metadata/OverrideFormat.d.ts.map +1 -1
  73. package/lib/cjs/Metadata/OverrideFormat.js +126 -88
  74. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  75. package/lib/cjs/Metadata/Phenomenon.d.ts +33 -33
  76. package/lib/cjs/Metadata/Phenomenon.js +59 -59
  77. package/lib/cjs/Metadata/Property.d.ts +197 -197
  78. package/lib/cjs/Metadata/Property.d.ts.map +1 -1
  79. package/lib/cjs/Metadata/Property.js +491 -491
  80. package/lib/cjs/Metadata/Property.js.map +1 -1
  81. package/lib/cjs/Metadata/PropertyCategory.d.ts +39 -39
  82. package/lib/cjs/Metadata/PropertyCategory.js +61 -61
  83. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  84. package/lib/cjs/Metadata/RelationshipClass.d.ts +152 -152
  85. package/lib/cjs/Metadata/RelationshipClass.js +349 -349
  86. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  87. package/lib/cjs/Metadata/Schema.d.ts +291 -291
  88. package/lib/cjs/Metadata/Schema.d.ts.map +1 -1
  89. package/lib/cjs/Metadata/Schema.js +520 -520
  90. package/lib/cjs/Metadata/Schema.js.map +1 -1
  91. package/lib/cjs/Metadata/SchemaItem.d.ts +61 -61
  92. package/lib/cjs/Metadata/SchemaItem.js +136 -136
  93. package/lib/cjs/Metadata/Unit.d.ts +76 -76
  94. package/lib/cjs/Metadata/Unit.d.ts.map +1 -1
  95. package/lib/cjs/Metadata/Unit.js +162 -162
  96. package/lib/cjs/Metadata/Unit.js.map +1 -1
  97. package/lib/cjs/Metadata/UnitSystem.d.ts +20 -20
  98. package/lib/cjs/Metadata/UnitSystem.js +29 -29
  99. package/lib/cjs/PropertyTypes.d.ts +49 -49
  100. package/lib/cjs/PropertyTypes.js +91 -91
  101. package/lib/cjs/PropertyTypes.js.map +1 -1
  102. package/lib/cjs/SchemaJsonLocater.d.ts +34 -34
  103. package/lib/cjs/SchemaJsonLocater.d.ts.map +1 -1
  104. package/lib/cjs/SchemaJsonLocater.js +42 -42
  105. package/lib/cjs/SchemaKey.d.ts +110 -110
  106. package/lib/cjs/SchemaKey.js +219 -219
  107. package/lib/cjs/SchemaLoader.d.ts +23 -23
  108. package/lib/cjs/SchemaLoader.js +47 -47
  109. package/lib/cjs/SchemaPartVisitorDelegate.d.ts +274 -274
  110. package/lib/cjs/SchemaPartVisitorDelegate.js +212 -212
  111. package/lib/cjs/UnitConversion/Graph.d.ts +34 -34
  112. package/lib/cjs/UnitConversion/Graph.js +83 -83
  113. package/lib/cjs/UnitConversion/Parser.d.ts +8 -8
  114. package/lib/cjs/UnitConversion/Parser.js +42 -42
  115. package/lib/cjs/UnitConversion/UnitConversion.d.ts +45 -45
  116. package/lib/cjs/UnitConversion/UnitConversion.js +77 -77
  117. package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
  118. package/lib/cjs/UnitConversion/UnitConverter.d.ts +39 -39
  119. package/lib/cjs/UnitConversion/UnitConverter.js +116 -116
  120. package/lib/cjs/UnitConversion/UnitTree.d.ts +43 -43
  121. package/lib/cjs/UnitConversion/UnitTree.js +169 -169
  122. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts +77 -77
  123. package/lib/cjs/UnitProvider/SchemaUnitProvider.d.ts.map +1 -1
  124. package/lib/cjs/UnitProvider/SchemaUnitProvider.js +234 -236
  125. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  126. package/lib/cjs/Validation/SchemaWalker.d.ts +23 -23
  127. package/lib/cjs/Validation/SchemaWalker.js +53 -53
  128. package/lib/cjs/ecschema-metadata.d.ts +51 -51
  129. package/lib/cjs/ecschema-metadata.js +100 -96
  130. package/lib/cjs/ecschema-metadata.js.map +1 -1
  131. package/lib/cjs/utils/SchemaGraph.d.ts +25 -25
  132. package/lib/cjs/utils/SchemaGraph.js +65 -65
  133. package/package.json +13 -14
@@ -1,89 +1,127 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Metadata
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.OverrideFormat = void 0;
11
- const XmlSerializationUtils_1 = require("../Deserialization/XmlSerializationUtils");
12
- const ECObjects_1 = require("../ECObjects");
13
- /**
14
- * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
15
- * @beta
16
- */
17
- class OverrideFormat {
18
- constructor(parent, precision, unitAndLabels) {
19
- this.parent = parent;
20
- this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);
21
- this._precision = precision;
22
- this._units = unitAndLabels;
23
- }
24
- // Properties that can be overriden
25
- get precision() { return (undefined === this._precision) ? this.parent.precision : this._precision; }
26
- get units() { return (undefined === this._units) ? this.parent.units : this._units; }
27
- // Properties that cannot be overriden
28
- get fullName() { return this.name; }
29
- get roundFactor() { return this.parent.roundFactor; }
30
- get type() { return this.parent.type; }
31
- get minWidth() { return this.parent.minWidth; }
32
- get scientificType() { return this.parent.scientificType; }
33
- get showSignOption() { return this.parent.showSignOption; }
34
- get decimalSeparator() { return this.parent.decimalSeparator; }
35
- get thousandSeparator() { return this.parent.thousandSeparator; }
36
- get uomSeparator() { return this.parent.uomSeparator; }
37
- get stationSeparator() { return this.parent.stationSeparator; }
38
- get stationOffsetSize() { return this.parent.stationOffsetSize; }
39
- get formatTraits() { return this.parent.formatTraits; }
40
- get spacer() { return this.parent.spacer; }
41
- get includeZero() { return this.parent.includeZero; }
42
- hasFormatTrait(formatTrait) {
43
- return (this.parent.formatTraits & formatTrait) === formatTrait;
44
- }
45
- /** Returns the format string of this override in the Xml full name format.
46
- * @alpha
47
- */
48
- fullNameXml(koqSchema) {
49
- let fullName = XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);
50
- if (undefined !== this.precision)
51
- fullName += `(${this.precision.toString()})`;
52
- if (undefined === this._units)
53
- return fullName;
54
- for (const [unit, unitLabel] of this._units) {
55
- fullName += "[";
56
- fullName += XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);
57
- fullName += `|${unitLabel}]`;
58
- }
59
- return fullName;
60
- }
61
- /**
62
- * Creates a valid OverrideFormat fullName from the parent Format and overridden units.
63
- * @param parent The parent Format.
64
- * @param unitAndLabels The overridden unit and labels collection.
65
- */
66
- static createOverrideFormatFullName(parent, precision, unitAndLabels) {
67
- let fullName = parent.fullName;
68
- if (precision)
69
- fullName += `(${precision.toString()})`;
70
- if (undefined === unitAndLabels)
71
- return fullName;
72
- for (const [unit, unitLabel] of unitAndLabels)
73
- if (undefined === unitLabel)
74
- fullName += `[${unit.fullName}]`;
75
- else
76
- fullName += `[${unit.fullName}|${unitLabel}]`;
77
- return fullName;
78
- }
79
- /**
80
- * @internal
81
- */
82
- static isOverrideFormat(object) {
83
- const overrideFormat = object;
84
- return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined &&
85
- overrideFormat.parent.schemaItemType === ECObjects_1.SchemaItemType.Format;
86
- }
87
- }
88
- exports.OverrideFormat = OverrideFormat;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Metadata
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getFormatProps = exports.OverrideFormat = void 0;
11
+ const XmlSerializationUtils_1 = require("../Deserialization/XmlSerializationUtils");
12
+ const ECObjects_1 = require("../ECObjects");
13
+ /**
14
+ * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.
15
+ * @beta
16
+ */
17
+ class OverrideFormat {
18
+ constructor(parent, precision, unitAndLabels) {
19
+ this.parent = parent;
20
+ this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);
21
+ this._precision = precision;
22
+ this._units = unitAndLabels;
23
+ }
24
+ // Properties that can be overriden
25
+ get precision() { return (undefined === this._precision) ? this.parent.precision : this._precision; }
26
+ get units() { return (undefined === this._units) ? this.parent.units : this._units; }
27
+ // Properties that cannot be overriden
28
+ get fullName() { return this.name; }
29
+ get roundFactor() { return this.parent.roundFactor; }
30
+ get type() { return this.parent.type; }
31
+ get minWidth() { return this.parent.minWidth; }
32
+ get scientificType() { return this.parent.scientificType; }
33
+ get showSignOption() { return this.parent.showSignOption; }
34
+ get decimalSeparator() { return this.parent.decimalSeparator; }
35
+ get thousandSeparator() { return this.parent.thousandSeparator; }
36
+ get uomSeparator() { return this.parent.uomSeparator; }
37
+ get stationSeparator() { return this.parent.stationSeparator; }
38
+ get stationOffsetSize() { return this.parent.stationOffsetSize; }
39
+ get formatTraits() { return this.parent.formatTraits; }
40
+ get spacer() { return this.parent.spacer; }
41
+ get includeZero() { return this.parent.includeZero; }
42
+ hasFormatTrait(formatTrait) {
43
+ return (this.parent.formatTraits & formatTrait) === formatTrait;
44
+ }
45
+ /** Returns the format string of this override in the Xml full name format.
46
+ * @alpha
47
+ */
48
+ fullNameXml(koqSchema) {
49
+ let fullName = XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);
50
+ if (undefined !== this.precision)
51
+ fullName += `(${this.precision.toString()})`;
52
+ if (undefined === this._units)
53
+ return fullName;
54
+ for (const [unit, unitLabel] of this._units) {
55
+ fullName += "[";
56
+ fullName += XmlSerializationUtils_1.XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);
57
+ fullName += `|${unitLabel}]`;
58
+ }
59
+ return fullName;
60
+ }
61
+ /**
62
+ * Creates a valid OverrideFormat fullName from the parent Format and overridden units.
63
+ * @param parent The parent Format.
64
+ * @param unitAndLabels The overridden unit and labels collection.
65
+ */
66
+ static createOverrideFormatFullName(parent, precision, unitAndLabels) {
67
+ let fullName = parent.fullName;
68
+ if (precision)
69
+ fullName += `(${precision.toString()})`;
70
+ if (undefined === unitAndLabels)
71
+ return fullName;
72
+ for (const [unit, unitLabel] of unitAndLabels)
73
+ if (undefined === unitLabel)
74
+ fullName += `[${unit.fullName}]`;
75
+ else
76
+ fullName += `[${unit.fullName}|${unitLabel}]`;
77
+ return fullName;
78
+ }
79
+ /**
80
+ * @internal
81
+ */
82
+ static isOverrideFormat(object) {
83
+ const overrideFormat = object;
84
+ return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined && overrideFormat.parent.schemaItemType === ECObjects_1.SchemaItemType.Format;
85
+ }
86
+ /**
87
+ * Returns a JSON object that contains the specification for the OverrideFormat where the precision and units properties have been overriden.
88
+ * If the precision and/or units properties have been overriden, the returned object will contain a "name" and a "parent" property.
89
+ * The "name" property identifies the OverrideFormat object itself and the "parent" property identifies the Format that has been overriden.
90
+ * This method is not intended for complete serialization as it does not serialize any of the schema item properties.
91
+ */
92
+ getFormatProps() {
93
+ const formatJson = this.parent.toJSON();
94
+ if (this.parent.fullName !== this.fullName) {
95
+ // Update name and parent properties to distinguish it from parent Format
96
+ formatJson.name = this.fullName;
97
+ formatJson.parent = this.parent.fullName;
98
+ }
99
+ // Update Precision overriden property
100
+ formatJson.precision = this.precision;
101
+ if (this.units !== undefined) {
102
+ // Update Units overriden property
103
+ const units = [];
104
+ for (const unit of this.units) {
105
+ units.push({
106
+ name: unit[0].fullName,
107
+ label: unit[1],
108
+ });
109
+ }
110
+ formatJson.composite = {
111
+ spacer: (this.spacer !== " ") ? this.spacer : undefined,
112
+ includeZero: (this.includeZero === false) ? this.includeZero : undefined,
113
+ units,
114
+ };
115
+ }
116
+ return formatJson;
117
+ }
118
+ }
119
+ exports.OverrideFormat = OverrideFormat;
120
+ /**
121
+ * @internal
122
+ */
123
+ function getFormatProps(format) {
124
+ return OverrideFormat.isOverrideFormat(format) ? format.getFormatProps() : format.toJSON();
125
+ }
126
+ exports.getFormatProps = getFormatProps;
89
127
  //# sourceMappingURL=OverrideFormat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OverrideFormat.js","sourceRoot":"","sources":["../../../src/Metadata/OverrideFormat.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 { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { SchemaItemType } from \"../ECObjects\";\r\nimport { DecimalPrecision, FormatTraits, FormatType, FractionalPrecision, ScientificType, ShowSignOption } from \"@itwin/core-quantity\";\r\nimport { Format } from \"./Format\";\r\nimport { InvertedUnit } from \"./InvertedUnit\";\r\nimport { Schema } from \"./Schema\";\r\nimport { Unit } from \"./Unit\";\r\n\r\n/**\r\n * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.\r\n * @beta\r\n */\r\nexport class OverrideFormat {\r\n private _precision?: DecimalPrecision | FractionalPrecision;\r\n private _units?: Array<[Unit | InvertedUnit, string | undefined]>;\r\n\r\n /** The Format that this OverrideFormat is extending */\r\n public readonly parent: Format;\r\n\r\n /** The name of this OverrideFormat.\r\n *\r\n * This should be set to the [FormatString]($docs/bis/ec/kindofquantity/#format-string) which represents the format override.\r\n */\r\n public readonly name: string;\r\n\r\n constructor(parent: Format, precision?: DecimalPrecision | FractionalPrecision, unitAndLabels?: Array<[Unit | InvertedUnit, string | undefined]>) {\r\n this.parent = parent;\r\n this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);\r\n this._precision = precision;\r\n this._units = unitAndLabels;\r\n }\r\n\r\n // Properties that can be overriden\r\n public get precision(): DecimalPrecision | FractionalPrecision { return (undefined === this._precision) ? this.parent.precision : this._precision; }\r\n public get units() { return (undefined === this._units) ? this.parent.units : this._units; }\r\n\r\n // Properties that cannot be overriden\r\n public get fullName(): string { return this.name; }\r\n public get roundFactor(): number { return this.parent.roundFactor; }\r\n public get type(): FormatType { return this.parent.type; }\r\n public get minWidth(): number | undefined { return this.parent.minWidth; }\r\n public get scientificType(): ScientificType | undefined { return this.parent.scientificType; }\r\n public get showSignOption(): ShowSignOption { return this.parent.showSignOption; }\r\n public get decimalSeparator(): string { return this.parent.decimalSeparator; }\r\n public get thousandSeparator(): string { return this.parent.thousandSeparator; }\r\n public get uomSeparator(): string { return this.parent.uomSeparator; }\r\n public get stationSeparator(): string { return this.parent.stationSeparator; }\r\n public get stationOffsetSize(): number | undefined { return this.parent.stationOffsetSize; }\r\n public get formatTraits(): FormatTraits { return this.parent.formatTraits; }\r\n public get spacer(): string | undefined { return this.parent.spacer; }\r\n public get includeZero(): boolean | undefined { return this.parent.includeZero; }\r\n\r\n public hasFormatTrait(formatTrait: FormatTraits) {\r\n return (this.parent.formatTraits & formatTrait) === formatTrait;\r\n }\r\n\r\n /** Returns the format string of this override in the Xml full name format.\r\n * @alpha\r\n */\r\n public fullNameXml(koqSchema: Schema): string {\r\n let fullName = XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);\r\n\r\n if (undefined !== this.precision)\r\n fullName += `(${this.precision.toString()})`;\r\n\r\n if (undefined === this._units)\r\n return fullName;\r\n for (const [unit, unitLabel] of this._units) {\r\n fullName += \"[\";\r\n fullName += XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);\r\n fullName += `|${unitLabel}]`;\r\n }\r\n return fullName;\r\n }\r\n\r\n /**\r\n * Creates a valid OverrideFormat fullName from the parent Format and overridden units.\r\n * @param parent The parent Format.\r\n * @param unitAndLabels The overridden unit and labels collection.\r\n */\r\n public static createOverrideFormatFullName(parent: Format, precision?: DecimalPrecision | FractionalPrecision, unitAndLabels?: Array<[Unit | InvertedUnit, string | undefined]>): string {\r\n let fullName = parent.fullName;\r\n\r\n if (precision)\r\n fullName += `(${precision.toString()})`;\r\n\r\n if (undefined === unitAndLabels)\r\n return fullName;\r\n for (const [unit, unitLabel] of unitAndLabels)\r\n if (undefined === unitLabel)\r\n fullName += `[${unit.fullName}]`;\r\n else\r\n fullName += `[${unit.fullName}|${unitLabel}]`;\r\n return fullName;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static isOverrideFormat(object: any): object is OverrideFormat {\r\n const overrideFormat = object as OverrideFormat;\r\n\r\n return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined &&\r\n overrideFormat.parent.schemaItemType === SchemaItemType.Format;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"OverrideFormat.js","sourceRoot":"","sources":["../../../src/Metadata/OverrideFormat.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 { XmlSerializationUtils } from \"../Deserialization/XmlSerializationUtils\";\r\nimport { SchemaItemType } from \"../ECObjects\";\r\nimport { DecimalPrecision, FormatProps, FormatTraits, FormatType, FractionalPrecision, ScientificType, ShowSignOption } from \"@itwin/core-quantity\";\r\nimport { Format } from \"./Format\";\r\nimport { InvertedUnit } from \"./InvertedUnit\";\r\nimport { Schema } from \"./Schema\";\r\nimport { SchemaItemOverrideFormatProps } from \"../Deserialization/JsonProps\";\r\nimport { Unit } from \"./Unit\";\r\nimport { Mutable } from \"@itwin/core-bentley\";\r\n\r\n/**\r\n * Overrides of a Format, from a Schema, and is SchemaItem that is used specifically on KindOfQuantity.\r\n * @beta\r\n */\r\nexport class OverrideFormat {\r\n private _precision?: DecimalPrecision | FractionalPrecision;\r\n private _units?: Array<[Unit | InvertedUnit, string | undefined]>;\r\n\r\n /** The Format that this OverrideFormat is extending */\r\n public readonly parent: Format;\r\n\r\n /** The name of this OverrideFormat.\r\n *\r\n * This should be set to the [FormatString]($docs/bis/ec/kindofquantity/#format-string) which represents the format override.\r\n */\r\n public readonly name: string;\r\n\r\n constructor(parent: Format, precision?: DecimalPrecision | FractionalPrecision, unitAndLabels?: Array<[Unit | InvertedUnit, string | undefined]>) {\r\n this.parent = parent;\r\n this.name = OverrideFormat.createOverrideFormatFullName(parent, precision, unitAndLabels);\r\n this._precision = precision;\r\n this._units = unitAndLabels;\r\n }\r\n\r\n // Properties that can be overriden\r\n public get precision(): DecimalPrecision | FractionalPrecision { return (undefined === this._precision) ? this.parent.precision : this._precision; }\r\n public get units() { return (undefined === this._units) ? this.parent.units : this._units; }\r\n\r\n // Properties that cannot be overriden\r\n public get fullName(): string { return this.name; }\r\n public get roundFactor(): number { return this.parent.roundFactor; }\r\n public get type(): FormatType { return this.parent.type; }\r\n public get minWidth(): number | undefined { return this.parent.minWidth; }\r\n public get scientificType(): ScientificType | undefined { return this.parent.scientificType; }\r\n public get showSignOption(): ShowSignOption { return this.parent.showSignOption; }\r\n public get decimalSeparator(): string { return this.parent.decimalSeparator; }\r\n public get thousandSeparator(): string { return this.parent.thousandSeparator; }\r\n public get uomSeparator(): string { return this.parent.uomSeparator; }\r\n public get stationSeparator(): string { return this.parent.stationSeparator; }\r\n public get stationOffsetSize(): number | undefined { return this.parent.stationOffsetSize; }\r\n public get formatTraits(): FormatTraits { return this.parent.formatTraits; }\r\n public get spacer(): string | undefined { return this.parent.spacer; }\r\n public get includeZero(): boolean | undefined { return this.parent.includeZero; }\r\n\r\n public hasFormatTrait(formatTrait: FormatTraits) {\r\n return (this.parent.formatTraits & formatTrait) === formatTrait;\r\n }\r\n\r\n /** Returns the format string of this override in the Xml full name format.\r\n * @alpha\r\n */\r\n public fullNameXml(koqSchema: Schema): string {\r\n let fullName = XmlSerializationUtils.createXmlTypedName(koqSchema, this.parent.schema, this.parent.name);\r\n\r\n if (undefined !== this.precision)\r\n fullName += `(${this.precision.toString()})`;\r\n\r\n if (undefined === this._units)\r\n return fullName;\r\n for (const [unit, unitLabel] of this._units) {\r\n fullName += \"[\";\r\n fullName += XmlSerializationUtils.createXmlTypedName(koqSchema, unit.schema, unit.name);\r\n fullName += `|${unitLabel}]`;\r\n }\r\n return fullName;\r\n }\r\n\r\n /**\r\n * Creates a valid OverrideFormat fullName from the parent Format and overridden units.\r\n * @param parent The parent Format.\r\n * @param unitAndLabels The overridden unit and labels collection.\r\n */\r\n public static createOverrideFormatFullName(parent: Format, precision?: DecimalPrecision | FractionalPrecision, unitAndLabels?: Array<[Unit | InvertedUnit, string | undefined]>): string {\r\n let fullName = parent.fullName;\r\n\r\n if (precision)\r\n fullName += `(${precision.toString()})`;\r\n\r\n if (undefined === unitAndLabels)\r\n return fullName;\r\n for (const [unit, unitLabel] of unitAndLabels)\r\n if (undefined === unitLabel)\r\n fullName += `[${unit.fullName}]`;\r\n else\r\n fullName += `[${unit.fullName}|${unitLabel}]`;\r\n return fullName;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public static isOverrideFormat(object: any): object is OverrideFormat {\r\n const overrideFormat = object as OverrideFormat;\r\n\r\n return overrideFormat !== undefined && overrideFormat.name !== undefined && overrideFormat.parent !== undefined && overrideFormat.parent.schemaItemType === SchemaItemType.Format;\r\n }\r\n\r\n /**\r\n * Returns a JSON object that contains the specification for the OverrideFormat where the precision and units properties have been overriden.\r\n * If the precision and/or units properties have been overriden, the returned object will contain a \"name\" and a \"parent\" property.\r\n * The \"name\" property identifies the OverrideFormat object itself and the \"parent\" property identifies the Format that has been overriden.\r\n * This method is not intended for complete serialization as it does not serialize any of the schema item properties.\r\n */\r\n public getFormatProps(): SchemaItemOverrideFormatProps {\r\n const formatJson = this.parent.toJSON() as Mutable<SchemaItemOverrideFormatProps>;\r\n\r\n if (this.parent.fullName !== this.fullName) {\r\n // Update name and parent properties to distinguish it from parent Format\r\n formatJson.name = this.fullName;\r\n formatJson.parent = this.parent.fullName;\r\n }\r\n\r\n // Update Precision overriden property\r\n formatJson.precision = this.precision;\r\n\r\n if (this.units !== undefined) {\r\n // Update Units overriden property\r\n const units = [];\r\n for (const unit of this.units) {\r\n units.push({\r\n name: unit[0].fullName,\r\n label: unit[1],\r\n });\r\n }\r\n\r\n formatJson.composite = {\r\n spacer: (this.spacer !== \" \") ? this.spacer : undefined,\r\n includeZero: (this.includeZero === false) ? this.includeZero : undefined,\r\n units,\r\n };\r\n }\r\n\r\n return formatJson;\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function getFormatProps(format: Format | OverrideFormat): FormatProps {\r\n return OverrideFormat.isOverrideFormat(format) ? format.getFormatProps() : format.toJSON();\r\n}\r\n"]}
@@ -1,34 +1,34 @@
1
- /** @packageDocumentation
2
- * @module Metadata
3
- */
4
- import { PhenomenonProps } from "../Deserialization/JsonProps";
5
- import { SchemaItemType } from "../ECObjects";
6
- import { Schema } from "./Schema";
7
- import { SchemaItem } from "./SchemaItem";
8
- /** @beta */
9
- export declare class Phenomenon extends SchemaItem {
10
- readonly schemaItemType: SchemaItemType.Phenomenon;
11
- protected _definition: string;
12
- constructor(schema: Schema, name: string);
13
- get definition(): string;
14
- /**
15
- * Save this Phenomenon's properties to an object for serializing to JSON.
16
- * @param standalone Serialization includes only this object (as opposed to the full schema).
17
- * @param includeSchemaVersion Include the Schema's version information in the serialized object.
18
- */
19
- toJSON(standalone?: boolean, includeSchemaVersion?: boolean): PhenomenonProps;
20
- /** @internal */
21
- toXml(schemaXml: Document): Promise<Element>;
22
- fromJSONSync(phenomenonProps: PhenomenonProps): void;
23
- fromJSON(phenomenonProps: PhenomenonProps): Promise<void>;
24
- protected setDefinition(definition: string): Promise<void>;
25
- }
26
- /**
27
- * @internal
28
- * An abstract class used for schema editing.
29
- */
30
- export declare abstract class MutablePhenomenon extends Phenomenon {
31
- abstract setDefinition(definition: string): Promise<void>;
32
- abstract setDisplayLabel(displayLabel: string): void;
33
- }
1
+ /** @packageDocumentation
2
+ * @module Metadata
3
+ */
4
+ import { PhenomenonProps } from "../Deserialization/JsonProps";
5
+ import { SchemaItemType } from "../ECObjects";
6
+ import { Schema } from "./Schema";
7
+ import { SchemaItem } from "./SchemaItem";
8
+ /** @beta */
9
+ export declare class Phenomenon extends SchemaItem {
10
+ readonly schemaItemType: SchemaItemType.Phenomenon;
11
+ protected _definition: string;
12
+ constructor(schema: Schema, name: string);
13
+ get definition(): string;
14
+ /**
15
+ * Save this Phenomenon's properties to an object for serializing to JSON.
16
+ * @param standalone Serialization includes only this object (as opposed to the full schema).
17
+ * @param includeSchemaVersion Include the Schema's version information in the serialized object.
18
+ */
19
+ toJSON(standalone?: boolean, includeSchemaVersion?: boolean): PhenomenonProps;
20
+ /** @internal */
21
+ toXml(schemaXml: Document): Promise<Element>;
22
+ fromJSONSync(phenomenonProps: PhenomenonProps): void;
23
+ fromJSON(phenomenonProps: PhenomenonProps): Promise<void>;
24
+ protected setDefinition(definition: string): Promise<void>;
25
+ }
26
+ /**
27
+ * @internal
28
+ * An abstract class used for schema editing.
29
+ */
30
+ export declare abstract class MutablePhenomenon extends Phenomenon {
31
+ abstract setDefinition(definition: string): Promise<void>;
32
+ abstract setDisplayLabel(displayLabel: string): void;
33
+ }
34
34
  //# sourceMappingURL=Phenomenon.d.ts.map
@@ -1,60 +1,60 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Metadata
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.MutablePhenomenon = exports.Phenomenon = void 0;
11
- const ECObjects_1 = require("../ECObjects");
12
- const Exception_1 = require("../Exception");
13
- const SchemaItem_1 = require("./SchemaItem");
14
- /** @beta */
15
- class Phenomenon extends SchemaItem_1.SchemaItem {
16
- constructor(schema, name) {
17
- super(schema, name);
18
- this.schemaItemType = ECObjects_1.SchemaItemType.Phenomenon;
19
- this._definition = "";
20
- }
21
- get definition() { return this._definition; }
22
- /**
23
- * Save this Phenomenon's properties to an object for serializing to JSON.
24
- * @param standalone Serialization includes only this object (as opposed to the full schema).
25
- * @param includeSchemaVersion Include the Schema's version information in the serialized object.
26
- */
27
- toJSON(standalone = false, includeSchemaVersion = false) {
28
- const schemaJson = super.toJSON(standalone, includeSchemaVersion);
29
- schemaJson.definition = this.definition;
30
- return schemaJson;
31
- }
32
- /** @internal */
33
- async toXml(schemaXml) {
34
- const itemElement = await super.toXml(schemaXml);
35
- itemElement.setAttribute("definition", this.definition);
36
- return itemElement;
37
- }
38
- fromJSONSync(phenomenonProps) {
39
- super.fromJSONSync(phenomenonProps);
40
- if (this._definition !== "" && phenomenonProps.definition.toLowerCase() !== this._definition.toLowerCase())
41
- throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `The Phenomenon ${this.name} has an invalid 'definition' attribute.`);
42
- else if (this._definition === "")
43
- this._definition = phenomenonProps.definition;
44
- }
45
- async fromJSON(phenomenonProps) {
46
- this.fromJSONSync(phenomenonProps);
47
- }
48
- async setDefinition(definition) {
49
- this._definition = definition;
50
- }
51
- }
52
- exports.Phenomenon = Phenomenon;
53
- /**
54
- * @internal
55
- * An abstract class used for schema editing.
56
- */
57
- class MutablePhenomenon extends Phenomenon {
58
- }
59
- exports.MutablePhenomenon = MutablePhenomenon;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Metadata
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MutablePhenomenon = exports.Phenomenon = void 0;
11
+ const ECObjects_1 = require("../ECObjects");
12
+ const Exception_1 = require("../Exception");
13
+ const SchemaItem_1 = require("./SchemaItem");
14
+ /** @beta */
15
+ class Phenomenon extends SchemaItem_1.SchemaItem {
16
+ constructor(schema, name) {
17
+ super(schema, name);
18
+ this.schemaItemType = ECObjects_1.SchemaItemType.Phenomenon;
19
+ this._definition = "";
20
+ }
21
+ get definition() { return this._definition; }
22
+ /**
23
+ * Save this Phenomenon's properties to an object for serializing to JSON.
24
+ * @param standalone Serialization includes only this object (as opposed to the full schema).
25
+ * @param includeSchemaVersion Include the Schema's version information in the serialized object.
26
+ */
27
+ toJSON(standalone = false, includeSchemaVersion = false) {
28
+ const schemaJson = super.toJSON(standalone, includeSchemaVersion);
29
+ schemaJson.definition = this.definition;
30
+ return schemaJson;
31
+ }
32
+ /** @internal */
33
+ async toXml(schemaXml) {
34
+ const itemElement = await super.toXml(schemaXml);
35
+ itemElement.setAttribute("definition", this.definition);
36
+ return itemElement;
37
+ }
38
+ fromJSONSync(phenomenonProps) {
39
+ super.fromJSONSync(phenomenonProps);
40
+ if (this._definition !== "" && phenomenonProps.definition.toLowerCase() !== this._definition.toLowerCase())
41
+ throw new Exception_1.ECObjectsError(Exception_1.ECObjectsStatus.InvalidECJson, `The Phenomenon ${this.name} has an invalid 'definition' attribute.`);
42
+ else if (this._definition === "")
43
+ this._definition = phenomenonProps.definition;
44
+ }
45
+ async fromJSON(phenomenonProps) {
46
+ this.fromJSONSync(phenomenonProps);
47
+ }
48
+ async setDefinition(definition) {
49
+ this._definition = definition;
50
+ }
51
+ }
52
+ exports.Phenomenon = Phenomenon;
53
+ /**
54
+ * @internal
55
+ * An abstract class used for schema editing.
56
+ */
57
+ class MutablePhenomenon extends Phenomenon {
58
+ }
59
+ exports.MutablePhenomenon = MutablePhenomenon;
60
60
  //# sourceMappingURL=Phenomenon.js.map