@itwin/ecschema-metadata 5.5.0-dev.2 → 5.5.0-dev.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -1
- package/lib/cjs/Constants.js.map +1 -1
- package/lib/cjs/DelayedPromise.js.map +1 -1
- package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
- package/lib/cjs/Deserialization/Helper.js.map +1 -1
- package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
- package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
- package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
- package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/cjs/ECName.js.map +1 -1
- package/lib/cjs/ECObjects.js.map +1 -1
- package/lib/cjs/Exception.js.map +1 -1
- package/lib/cjs/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/cjs/Formatting/SchemaFormatsProvider.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +466 -466
- package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +309 -309
- package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/cjs/Interfaces.js.map +1 -1
- package/lib/cjs/Metadata/Class.js.map +1 -1
- package/lib/cjs/Metadata/Constant.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
- package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/cjs/Metadata/EntityClass.js.map +1 -1
- package/lib/cjs/Metadata/Enumeration.js.map +1 -1
- package/lib/cjs/Metadata/Format.js.map +1 -1
- package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
- package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/cjs/Metadata/Mixin.js.map +1 -1
- package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
- package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
- package/lib/cjs/Metadata/Property.js.map +1 -1
- package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
- package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
- package/lib/cjs/Metadata/Schema.js.map +1 -1
- package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
- package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
- package/lib/cjs/PropertyTypes.js.map +1 -1
- package/lib/cjs/SchemaJsonLocater.js.map +1 -1
- package/lib/cjs/SchemaKey.js.map +1 -1
- package/lib/cjs/SchemaLoader.js.map +1 -1
- package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/cjs/UnitConversion/Graph.js.map +1 -1
- package/lib/cjs/UnitConversion/Parser.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitConversion.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
- package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
- package/lib/cjs/ecschema-metadata.js.map +1 -1
- package/lib/cjs/utils/SchemaGraph.js.map +1 -1
- package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
- package/lib/esm/Constants.js.map +1 -1
- package/lib/esm/DelayedPromise.js.map +1 -1
- package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
- package/lib/esm/Deserialization/Helper.js.map +1 -1
- package/lib/esm/Deserialization/JsonParser.js.map +1 -1
- package/lib/esm/Deserialization/JsonProps.js.map +1 -1
- package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
- package/lib/esm/Deserialization/XmlParser.js.map +1 -1
- package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
- package/lib/esm/ECName.js.map +1 -1
- package/lib/esm/ECObjects.js.map +1 -1
- package/lib/esm/Exception.js.map +1 -1
- package/lib/esm/Formatting/FormatSetFormatsProvider.js.map +1 -1
- package/lib/esm/Formatting/SchemaFormatsProvider.js.map +1 -1
- package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js +466 -466
- package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
- package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js +309 -309
- package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
- package/lib/esm/Interfaces.js.map +1 -1
- package/lib/esm/Metadata/Class.js.map +1 -1
- package/lib/esm/Metadata/Constant.js.map +1 -1
- package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
- package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
- package/lib/esm/Metadata/EntityClass.js.map +1 -1
- package/lib/esm/Metadata/Enumeration.js.map +1 -1
- package/lib/esm/Metadata/Format.js.map +1 -1
- package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
- package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
- package/lib/esm/Metadata/Mixin.js.map +1 -1
- package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
- package/lib/esm/Metadata/Phenomenon.js.map +1 -1
- package/lib/esm/Metadata/Property.js.map +1 -1
- package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
- package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
- package/lib/esm/Metadata/Schema.js.map +1 -1
- package/lib/esm/Metadata/SchemaItem.js.map +1 -1
- package/lib/esm/Metadata/UnitSystem.js.map +1 -1
- package/lib/esm/PropertyTypes.js.map +1 -1
- package/lib/esm/SchemaJsonLocater.js.map +1 -1
- package/lib/esm/SchemaKey.js.map +1 -1
- package/lib/esm/SchemaLoader.js.map +1 -1
- package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
- package/lib/esm/UnitConversion/Graph.js.map +1 -1
- package/lib/esm/UnitConversion/Parser.js.map +1 -1
- package/lib/esm/UnitConversion/UnitConversion.js.map +1 -1
- package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
- package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
- package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
- package/lib/esm/Validation/SchemaWalker.js.map +1 -1
- package/lib/esm/ecschema-metadata.js.map +1 -1
- package/lib/esm/utils/SchemaGraph.js.map +1 -1
- package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
- package/package.json +6 -6
|
@@ -13,281 +13,281 @@ exports.SchemaItemQueries = void 0;
|
|
|
13
13
|
* Query for SchemaItemType KindOfQuantity data.
|
|
14
14
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
15
15
|
*/
|
|
16
|
-
const kindOfQuantity = (singleSchema) => `
|
|
17
|
-
SELECT
|
|
18
|
-
[koq].[Schema].[Id] AS [SchemaId],
|
|
19
|
-
json_object (
|
|
20
|
-
'schemaItemType', 'KindOfQuantity',
|
|
21
|
-
'name', [koq].[Name],
|
|
22
|
-
'label', [koq].[DisplayLabel],
|
|
23
|
-
'description', [koq].[Description],
|
|
24
|
-
'relativeError', [koq].[RelativeError],
|
|
25
|
-
'persistenceUnit', [koq].[PersistenceUnit]
|
|
26
|
-
${singleSchema ? `
|
|
27
|
-
,'presentationUnits', (
|
|
28
|
-
SELECT json_group_array(js."value")
|
|
29
|
-
FROM [meta].[KindOfQuantityDef] [koq1], json1.json_each([PresentationUnits]) js
|
|
30
|
-
WHERE [koq1].[ECInstanceId] = [koq].[ECInstanceId]
|
|
31
|
-
) ` : ""}
|
|
32
|
-
) as [item]
|
|
33
|
-
FROM
|
|
34
|
-
[meta].[KindOfQuantityDef] [koq]
|
|
35
|
-
${singleSchema ? `
|
|
36
|
-
JOIN
|
|
37
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [koq].[Schema].[Id]
|
|
38
|
-
WHERE [schema].[Name] = :schemaName
|
|
39
|
-
` : ""}
|
|
16
|
+
const kindOfQuantity = (singleSchema) => `
|
|
17
|
+
SELECT
|
|
18
|
+
[koq].[Schema].[Id] AS [SchemaId],
|
|
19
|
+
json_object (
|
|
20
|
+
'schemaItemType', 'KindOfQuantity',
|
|
21
|
+
'name', [koq].[Name],
|
|
22
|
+
'label', [koq].[DisplayLabel],
|
|
23
|
+
'description', [koq].[Description],
|
|
24
|
+
'relativeError', [koq].[RelativeError],
|
|
25
|
+
'persistenceUnit', [koq].[PersistenceUnit]
|
|
26
|
+
${singleSchema ? `
|
|
27
|
+
,'presentationUnits', (
|
|
28
|
+
SELECT json_group_array(js."value")
|
|
29
|
+
FROM [meta].[KindOfQuantityDef] [koq1], json1.json_each([PresentationUnits]) js
|
|
30
|
+
WHERE [koq1].[ECInstanceId] = [koq].[ECInstanceId]
|
|
31
|
+
) ` : ""}
|
|
32
|
+
) as [item]
|
|
33
|
+
FROM
|
|
34
|
+
[meta].[KindOfQuantityDef] [koq]
|
|
35
|
+
${singleSchema ? `
|
|
36
|
+
JOIN
|
|
37
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [koq].[Schema].[Id]
|
|
38
|
+
WHERE [schema].[Name] = :schemaName
|
|
39
|
+
` : ""}
|
|
40
40
|
`;
|
|
41
41
|
/**
|
|
42
42
|
* Query for SchemaItemType PropertyCategory data.
|
|
43
43
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
44
44
|
*/
|
|
45
|
-
const propertyCategory = (singleSchema) => `
|
|
46
|
-
SELECT
|
|
47
|
-
[pc].[Schema].[Id] AS [SchemaId],
|
|
48
|
-
json_object (
|
|
49
|
-
'schemaItemType', 'PropertyCategory',
|
|
50
|
-
'name', [pc].[Name],
|
|
51
|
-
'label', [pc].[DisplayLabel],
|
|
52
|
-
'description', [pc].[Description],
|
|
53
|
-
'priority', [pc].[Priority]
|
|
54
|
-
) as [item]
|
|
55
|
-
FROM
|
|
56
|
-
[meta].[PropertyCategoryDef] [pc]
|
|
57
|
-
${singleSchema ? `
|
|
58
|
-
JOIN
|
|
59
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pc].[Schema].[Id]
|
|
60
|
-
WHERE [schema].[Name] = :schemaName
|
|
61
|
-
` : ""}
|
|
45
|
+
const propertyCategory = (singleSchema) => `
|
|
46
|
+
SELECT
|
|
47
|
+
[pc].[Schema].[Id] AS [SchemaId],
|
|
48
|
+
json_object (
|
|
49
|
+
'schemaItemType', 'PropertyCategory',
|
|
50
|
+
'name', [pc].[Name],
|
|
51
|
+
'label', [pc].[DisplayLabel],
|
|
52
|
+
'description', [pc].[Description],
|
|
53
|
+
'priority', [pc].[Priority]
|
|
54
|
+
) as [item]
|
|
55
|
+
FROM
|
|
56
|
+
[meta].[PropertyCategoryDef] [pc]
|
|
57
|
+
${singleSchema ? `
|
|
58
|
+
JOIN
|
|
59
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pc].[Schema].[Id]
|
|
60
|
+
WHERE [schema].[Name] = :schemaName
|
|
61
|
+
` : ""}
|
|
62
62
|
`;
|
|
63
63
|
/**
|
|
64
64
|
* Query for SchemaItemType Enumeration data.
|
|
65
65
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
66
66
|
*/
|
|
67
|
-
const enumeration = (singleSchema) => `
|
|
68
|
-
SELECT
|
|
69
|
-
[ed].[Schema].[Id] AS [SchemaId],
|
|
70
|
-
json_object (
|
|
71
|
-
'schemaItemType', 'Enumeration',
|
|
72
|
-
'name', [ed].[Name],
|
|
73
|
-
'label', [ed].[DisplayLabel],
|
|
74
|
-
'description', [ed].[Description],
|
|
75
|
-
'type', IIF([ed].[Type] = 1281, 'int', IIF([ed].[Type] = 2305, 'string', null)),
|
|
76
|
-
'isStrict', IIF([ed].[IsStrict] = 1, json('true'), json('false')),
|
|
77
|
-
'enumerators', (
|
|
78
|
-
SELECT json_group_array(json(json_object(
|
|
79
|
-
'name', json_extract(js."value", '$.Name'),
|
|
80
|
-
'value', IFNULL(json_extract(js."value", '$.StringValue'), (json_extract(js."value", '$.IntValue'))),
|
|
81
|
-
'label', json_extract(js."value", '$.DisplayLabel'),
|
|
82
|
-
'description', json_extract(js."value", '$.Description')
|
|
83
|
-
)))
|
|
84
|
-
FROM [meta].[ECEnumerationDef] [enumerationDef], json1.json_each([EnumValues]) js
|
|
85
|
-
WHERE [enumerationDef].[ECInstanceId] = [ed].[ECInstanceId]
|
|
86
|
-
)
|
|
87
|
-
) as [item]
|
|
88
|
-
FROM
|
|
89
|
-
[meta].[ECEnumerationDef] [ed]
|
|
90
|
-
${singleSchema ? `
|
|
91
|
-
JOIN
|
|
92
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ed].[Schema].[Id]
|
|
93
|
-
WHERE [schema].[Name] = :schemaName` : ""}
|
|
67
|
+
const enumeration = (singleSchema) => `
|
|
68
|
+
SELECT
|
|
69
|
+
[ed].[Schema].[Id] AS [SchemaId],
|
|
70
|
+
json_object (
|
|
71
|
+
'schemaItemType', 'Enumeration',
|
|
72
|
+
'name', [ed].[Name],
|
|
73
|
+
'label', [ed].[DisplayLabel],
|
|
74
|
+
'description', [ed].[Description],
|
|
75
|
+
'type', IIF([ed].[Type] = 1281, 'int', IIF([ed].[Type] = 2305, 'string', null)),
|
|
76
|
+
'isStrict', IIF([ed].[IsStrict] = 1, json('true'), json('false')),
|
|
77
|
+
'enumerators', (
|
|
78
|
+
SELECT json_group_array(json(json_object(
|
|
79
|
+
'name', json_extract(js."value", '$.Name'),
|
|
80
|
+
'value', IFNULL(json_extract(js."value", '$.StringValue'), (json_extract(js."value", '$.IntValue'))),
|
|
81
|
+
'label', json_extract(js."value", '$.DisplayLabel'),
|
|
82
|
+
'description', json_extract(js."value", '$.Description')
|
|
83
|
+
)))
|
|
84
|
+
FROM [meta].[ECEnumerationDef] [enumerationDef], json1.json_each([EnumValues]) js
|
|
85
|
+
WHERE [enumerationDef].[ECInstanceId] = [ed].[ECInstanceId]
|
|
86
|
+
)
|
|
87
|
+
) as [item]
|
|
88
|
+
FROM
|
|
89
|
+
[meta].[ECEnumerationDef] [ed]
|
|
90
|
+
${singleSchema ? `
|
|
91
|
+
JOIN
|
|
92
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ed].[Schema].[Id]
|
|
93
|
+
WHERE [schema].[Name] = :schemaName` : ""}
|
|
94
94
|
`;
|
|
95
95
|
/**
|
|
96
96
|
* Query for SchemaItemType Unit data.
|
|
97
97
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
98
98
|
*/
|
|
99
|
-
const unit = (singleSchema) => `
|
|
100
|
-
SELECT
|
|
101
|
-
[ud].[Schema].[Id] AS [SchemaId],
|
|
102
|
-
json_object (
|
|
103
|
-
'schemaItemType', 'Unit',
|
|
104
|
-
'name', [ud].[Name],
|
|
105
|
-
'label', [ud].[DisplayLabel],
|
|
106
|
-
'description', [ud].[Description],
|
|
107
|
-
'definition', [ud].[Definition],
|
|
108
|
-
'numerator', IIF([ud].[Numerator] IS NULL, NULL, json(format('%.16g', [ud].[Numerator]))),
|
|
109
|
-
'denominator', IIF([ud].[Denominator] IS NULL, NULL, json(format('%.16g', [ud].[Denominator]))),
|
|
110
|
-
'offset', IIF([ud].[Offset] IS NULL, NULL, json(format('%!.15f', [ud].[Offset]))),
|
|
111
|
-
'unitSystem', CONCAT([uss].[Name],'.', [usd].[Name]),
|
|
112
|
-
'phenomenon', CONCAT([ps].[Name],'.', [pd].[Name])
|
|
113
|
-
) as item
|
|
114
|
-
FROM
|
|
115
|
-
[meta].[UnitDef] [ud]
|
|
116
|
-
${singleSchema ? `
|
|
117
|
-
JOIN
|
|
118
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : ""}
|
|
119
|
-
JOIN [meta].[UnitSystemDef] [usd]
|
|
120
|
-
ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]
|
|
121
|
-
JOIN [meta].[ECSchemaDef] [uss]
|
|
122
|
-
ON [uss].[ECInstanceId] = [usd].[Schema].[Id]
|
|
123
|
-
JOIN [meta].[PhenomenonDef] [pd]
|
|
124
|
-
ON [pd].[ECInstanceId] = [ud].[Phenomenon].[Id]
|
|
125
|
-
JOIN [meta].[ECSchemaDef] [ps]
|
|
126
|
-
ON [ps].[ECInstanceId] = [pd].[Schema].[Id]
|
|
127
|
-
WHERE
|
|
128
|
-
${singleSchema ? `
|
|
129
|
-
[schema].[Name] = :schemaName AND` : ""}
|
|
130
|
-
[ud].[IsConstant] = 0 AND
|
|
131
|
-
[ud].[InvertingUnit] IS NULL
|
|
99
|
+
const unit = (singleSchema) => `
|
|
100
|
+
SELECT
|
|
101
|
+
[ud].[Schema].[Id] AS [SchemaId],
|
|
102
|
+
json_object (
|
|
103
|
+
'schemaItemType', 'Unit',
|
|
104
|
+
'name', [ud].[Name],
|
|
105
|
+
'label', [ud].[DisplayLabel],
|
|
106
|
+
'description', [ud].[Description],
|
|
107
|
+
'definition', [ud].[Definition],
|
|
108
|
+
'numerator', IIF([ud].[Numerator] IS NULL, NULL, json(format('%.16g', [ud].[Numerator]))),
|
|
109
|
+
'denominator', IIF([ud].[Denominator] IS NULL, NULL, json(format('%.16g', [ud].[Denominator]))),
|
|
110
|
+
'offset', IIF([ud].[Offset] IS NULL, NULL, json(format('%!.15f', [ud].[Offset]))),
|
|
111
|
+
'unitSystem', CONCAT([uss].[Name],'.', [usd].[Name]),
|
|
112
|
+
'phenomenon', CONCAT([ps].[Name],'.', [pd].[Name])
|
|
113
|
+
) as item
|
|
114
|
+
FROM
|
|
115
|
+
[meta].[UnitDef] [ud]
|
|
116
|
+
${singleSchema ? `
|
|
117
|
+
JOIN
|
|
118
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : ""}
|
|
119
|
+
JOIN [meta].[UnitSystemDef] [usd]
|
|
120
|
+
ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]
|
|
121
|
+
JOIN [meta].[ECSchemaDef] [uss]
|
|
122
|
+
ON [uss].[ECInstanceId] = [usd].[Schema].[Id]
|
|
123
|
+
JOIN [meta].[PhenomenonDef] [pd]
|
|
124
|
+
ON [pd].[ECInstanceId] = [ud].[Phenomenon].[Id]
|
|
125
|
+
JOIN [meta].[ECSchemaDef] [ps]
|
|
126
|
+
ON [ps].[ECInstanceId] = [pd].[Schema].[Id]
|
|
127
|
+
WHERE
|
|
128
|
+
${singleSchema ? `
|
|
129
|
+
[schema].[Name] = :schemaName AND` : ""}
|
|
130
|
+
[ud].[IsConstant] = 0 AND
|
|
131
|
+
[ud].[InvertingUnit] IS NULL
|
|
132
132
|
`;
|
|
133
133
|
/**
|
|
134
134
|
* Query for SchemaItemType InvertedUnit data.
|
|
135
135
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
136
136
|
*/
|
|
137
|
-
const invertedUnit = (singleSchema) => `
|
|
138
|
-
SELECT
|
|
139
|
-
[ud].[Schema].[Id] AS [SchemaId],
|
|
140
|
-
json_object (
|
|
141
|
-
'schemaItemType', 'InvertedUnit',
|
|
142
|
-
'name', [ud].[Name],
|
|
143
|
-
'label', [ud].[DisplayLabel],
|
|
144
|
-
'description', [ud].[Description],
|
|
145
|
-
'unitSystem', CONCAT([systemSchema].[Name],'.', [usd].[Name]),
|
|
146
|
-
'invertsUnit', IIF([iud].[Name] IS NULL, null, CONCAT([ius].[Name],'.', [iud].[Name]))
|
|
147
|
-
) as [item]
|
|
148
|
-
FROM
|
|
149
|
-
[meta].[UnitDef] [ud]
|
|
150
|
-
${singleSchema ? `
|
|
151
|
-
JOIN
|
|
152
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : ""}
|
|
153
|
-
JOIN [meta].[UnitSystemDef] [usd]
|
|
154
|
-
ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]
|
|
155
|
-
JOIN [meta].[ECSchemaDef] [systemSchema]
|
|
156
|
-
ON [systemSchema].[ECInstanceId] = [usd].[Schema].[Id]
|
|
157
|
-
LEFT JOIN [meta].[UnitDef] [iud]
|
|
158
|
-
ON [iud].[ECInstanceId] = [ud].[InvertingUnit].[Id]
|
|
159
|
-
LEFT JOIN [meta].[ECSchemaDef] [ius]
|
|
160
|
-
ON [ius].[ECInstanceId] = [iud].[Schema].[Id]
|
|
161
|
-
WHERE
|
|
162
|
-
${singleSchema ? `
|
|
163
|
-
[schema].[Name] = :schemaName AND` : ""}
|
|
164
|
-
[ud].[IsConstant] = 0 AND
|
|
165
|
-
[ud].[InvertingUnit] IS NOT NULL
|
|
137
|
+
const invertedUnit = (singleSchema) => `
|
|
138
|
+
SELECT
|
|
139
|
+
[ud].[Schema].[Id] AS [SchemaId],
|
|
140
|
+
json_object (
|
|
141
|
+
'schemaItemType', 'InvertedUnit',
|
|
142
|
+
'name', [ud].[Name],
|
|
143
|
+
'label', [ud].[DisplayLabel],
|
|
144
|
+
'description', [ud].[Description],
|
|
145
|
+
'unitSystem', CONCAT([systemSchema].[Name],'.', [usd].[Name]),
|
|
146
|
+
'invertsUnit', IIF([iud].[Name] IS NULL, null, CONCAT([ius].[Name],'.', [iud].[Name]))
|
|
147
|
+
) as [item]
|
|
148
|
+
FROM
|
|
149
|
+
[meta].[UnitDef] [ud]
|
|
150
|
+
${singleSchema ? `
|
|
151
|
+
JOIN
|
|
152
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : ""}
|
|
153
|
+
JOIN [meta].[UnitSystemDef] [usd]
|
|
154
|
+
ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]
|
|
155
|
+
JOIN [meta].[ECSchemaDef] [systemSchema]
|
|
156
|
+
ON [systemSchema].[ECInstanceId] = [usd].[Schema].[Id]
|
|
157
|
+
LEFT JOIN [meta].[UnitDef] [iud]
|
|
158
|
+
ON [iud].[ECInstanceId] = [ud].[InvertingUnit].[Id]
|
|
159
|
+
LEFT JOIN [meta].[ECSchemaDef] [ius]
|
|
160
|
+
ON [ius].[ECInstanceId] = [iud].[Schema].[Id]
|
|
161
|
+
WHERE
|
|
162
|
+
${singleSchema ? `
|
|
163
|
+
[schema].[Name] = :schemaName AND` : ""}
|
|
164
|
+
[ud].[IsConstant] = 0 AND
|
|
165
|
+
[ud].[InvertingUnit] IS NOT NULL
|
|
166
166
|
`;
|
|
167
167
|
/**
|
|
168
168
|
* Query for SchemaItemType Constant data.
|
|
169
169
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
170
170
|
*/
|
|
171
|
-
const constant = (singleSchema) => `
|
|
172
|
-
SELECT
|
|
173
|
-
[cd].[Schema].[Id] AS [SchemaId],
|
|
174
|
-
json_object(
|
|
175
|
-
'schemaItemType', 'Constant',
|
|
176
|
-
'name', [cd].[Name],
|
|
177
|
-
'label', [cd].[DisplayLabel],
|
|
178
|
-
'description', [cd].[Description],
|
|
179
|
-
'definition', [cd].[Definition],
|
|
180
|
-
'numerator', IIF([cd].[Numerator] IS NULL, NULL, json(format('%.16g', [cd].[Numerator]))),
|
|
181
|
-
'denominator', IIF([cd].[Denominator] IS NULL, NULL, json(format('%.16g', [cd].[Denominator]))),
|
|
182
|
-
'phenomenon', CONCAT([phenomSchema].[Name],'.', [phenomDef].[Name])
|
|
183
|
-
) as item
|
|
184
|
-
FROM
|
|
185
|
-
[meta].[UnitDef] [cd]
|
|
186
|
-
${singleSchema ? `
|
|
187
|
-
JOIN
|
|
188
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [cd].[Schema].[Id]` : ""}
|
|
189
|
-
JOIN [meta].[PhenomenonDef] [phenomDef]
|
|
190
|
-
ON [phenomDef].[ECInstanceId] = [cd].[Phenomenon].[Id]
|
|
191
|
-
JOIN [meta].[ECSchemaDef] [phenomSchema]
|
|
192
|
-
ON [phenomSchema].[ECInstanceId] = [phenomDef].[Schema].[Id]
|
|
193
|
-
WHERE
|
|
194
|
-
${singleSchema ? `
|
|
195
|
-
[schema].[Name] = :schemaName AND` : ""}
|
|
196
|
-
[cd].[IsConstant] = 1
|
|
171
|
+
const constant = (singleSchema) => `
|
|
172
|
+
SELECT
|
|
173
|
+
[cd].[Schema].[Id] AS [SchemaId],
|
|
174
|
+
json_object(
|
|
175
|
+
'schemaItemType', 'Constant',
|
|
176
|
+
'name', [cd].[Name],
|
|
177
|
+
'label', [cd].[DisplayLabel],
|
|
178
|
+
'description', [cd].[Description],
|
|
179
|
+
'definition', [cd].[Definition],
|
|
180
|
+
'numerator', IIF([cd].[Numerator] IS NULL, NULL, json(format('%.16g', [cd].[Numerator]))),
|
|
181
|
+
'denominator', IIF([cd].[Denominator] IS NULL, NULL, json(format('%.16g', [cd].[Denominator]))),
|
|
182
|
+
'phenomenon', CONCAT([phenomSchema].[Name],'.', [phenomDef].[Name])
|
|
183
|
+
) as item
|
|
184
|
+
FROM
|
|
185
|
+
[meta].[UnitDef] [cd]
|
|
186
|
+
${singleSchema ? `
|
|
187
|
+
JOIN
|
|
188
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [cd].[Schema].[Id]` : ""}
|
|
189
|
+
JOIN [meta].[PhenomenonDef] [phenomDef]
|
|
190
|
+
ON [phenomDef].[ECInstanceId] = [cd].[Phenomenon].[Id]
|
|
191
|
+
JOIN [meta].[ECSchemaDef] [phenomSchema]
|
|
192
|
+
ON [phenomSchema].[ECInstanceId] = [phenomDef].[Schema].[Id]
|
|
193
|
+
WHERE
|
|
194
|
+
${singleSchema ? `
|
|
195
|
+
[schema].[Name] = :schemaName AND` : ""}
|
|
196
|
+
[cd].[IsConstant] = 1
|
|
197
197
|
`;
|
|
198
198
|
/**
|
|
199
199
|
* Query for SchemaItemType UnitSystem data.
|
|
200
200
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
201
201
|
*/
|
|
202
|
-
const unitSystem = (singleSchema) => `
|
|
203
|
-
SELECT
|
|
204
|
-
[us].[Schema].[Id] AS [SchemaId],
|
|
205
|
-
json_object (
|
|
206
|
-
'schemaItemType', 'UnitSystem',
|
|
207
|
-
'name', [us].[Name],
|
|
208
|
-
'label', [us].[DisplayLabel],
|
|
209
|
-
'description', [us].[Description]
|
|
210
|
-
) as [item]
|
|
211
|
-
FROM
|
|
212
|
-
[meta].[UnitSystemDef] [us]
|
|
213
|
-
${singleSchema ? `
|
|
214
|
-
JOIN
|
|
215
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [us].[Schema].[Id]
|
|
216
|
-
WHERE [schema].[Name] = :schemaName` : ""}
|
|
202
|
+
const unitSystem = (singleSchema) => `
|
|
203
|
+
SELECT
|
|
204
|
+
[us].[Schema].[Id] AS [SchemaId],
|
|
205
|
+
json_object (
|
|
206
|
+
'schemaItemType', 'UnitSystem',
|
|
207
|
+
'name', [us].[Name],
|
|
208
|
+
'label', [us].[DisplayLabel],
|
|
209
|
+
'description', [us].[Description]
|
|
210
|
+
) as [item]
|
|
211
|
+
FROM
|
|
212
|
+
[meta].[UnitSystemDef] [us]
|
|
213
|
+
${singleSchema ? `
|
|
214
|
+
JOIN
|
|
215
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [us].[Schema].[Id]
|
|
216
|
+
WHERE [schema].[Name] = :schemaName` : ""}
|
|
217
217
|
`;
|
|
218
218
|
/**
|
|
219
219
|
* Query for SchemaItemType Phenomenon data.
|
|
220
220
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
221
221
|
*/
|
|
222
|
-
const phenomenon = (singleSchema) => `
|
|
223
|
-
SELECT
|
|
224
|
-
[pd].[Schema].[Id] AS [SchemaId],
|
|
225
|
-
json_object(
|
|
226
|
-
'schemaItemType', 'Phenomenon',
|
|
227
|
-
'name', [pd].[Name],
|
|
228
|
-
'label', [pd].[DisplayLabel],
|
|
229
|
-
'description', [pd].[Description],
|
|
230
|
-
'definition', [pd].[Definition]
|
|
231
|
-
) as [item]
|
|
232
|
-
FROM
|
|
233
|
-
[meta].[PhenomenonDef] [pd]
|
|
234
|
-
${singleSchema ? `
|
|
235
|
-
JOIN
|
|
236
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pd].[Schema].[Id]
|
|
237
|
-
WHERE [schema].[Name] = :schemaName` : ""}
|
|
222
|
+
const phenomenon = (singleSchema) => `
|
|
223
|
+
SELECT
|
|
224
|
+
[pd].[Schema].[Id] AS [SchemaId],
|
|
225
|
+
json_object(
|
|
226
|
+
'schemaItemType', 'Phenomenon',
|
|
227
|
+
'name', [pd].[Name],
|
|
228
|
+
'label', [pd].[DisplayLabel],
|
|
229
|
+
'description', [pd].[Description],
|
|
230
|
+
'definition', [pd].[Definition]
|
|
231
|
+
) as [item]
|
|
232
|
+
FROM
|
|
233
|
+
[meta].[PhenomenonDef] [pd]
|
|
234
|
+
${singleSchema ? `
|
|
235
|
+
JOIN
|
|
236
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pd].[Schema].[Id]
|
|
237
|
+
WHERE [schema].[Name] = :schemaName` : ""}
|
|
238
238
|
`;
|
|
239
239
|
/**
|
|
240
240
|
* Query for SchemaItemType Format data.
|
|
241
241
|
* @param singleSchema Indicates if a filter and join for a single Schema should be applied.
|
|
242
242
|
*/
|
|
243
|
-
const format = (singleSchema) => `
|
|
244
|
-
SELECT
|
|
245
|
-
[fd].[Schema].[Id] AS [SchemaId],
|
|
246
|
-
json_object(
|
|
247
|
-
'schemaItemType', 'Format',
|
|
248
|
-
'name', [fd].[Name],
|
|
249
|
-
'label', [fd].[DisplayLabel],
|
|
250
|
-
'description', [fd].[Description],
|
|
251
|
-
'type', json_extract([fd].[NumericSpec], '$.type'),
|
|
252
|
-
'precision', json_extract([fd].[NumericSpec], '$.precision'),
|
|
253
|
-
'roundFactor', json_extract([fd].[NumericSpec], '$.roundFactor'),
|
|
254
|
-
'minWidth', json_extract([fd].[NumericSpec], '$.minWidth'),
|
|
255
|
-
'showSignOption', json_extract([fd].[NumericSpec], '$.showSignOption'),
|
|
256
|
-
'decimalSeparator', json_extract([fd].[NumericSpec], '$.decimalSeparator'),
|
|
257
|
-
'thousandSeparator', json_extract([fd].[NumericSpec], '$.thousandSeparator'),
|
|
258
|
-
'uomSeparator', json_extract([fd].[NumericSpec], '$.uomSeparator'),
|
|
259
|
-
'scientificType', json_extract([fd].[NumericSpec], '$.scientificType'),
|
|
260
|
-
'stationOffsetSize', json_extract([fd].[NumericSpec], '$.stationOffsetSize'),
|
|
261
|
-
'stationSeparator', json_extract([fd].[NumericSpec], '$.stationSeparator'),
|
|
262
|
-
'formatTraits', json_extract([fd].[NumericSpec], '$.formatTraits')
|
|
263
|
-
${singleSchema ? `
|
|
264
|
-
,'composite', (
|
|
265
|
-
SELECT
|
|
266
|
-
json_object(
|
|
267
|
-
'spacer', json_extract([fd1].[CompositeSpec], '$.spacer'),
|
|
268
|
-
'includeZero', json(IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 1, 'true', IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 0, 'false', null))),
|
|
269
|
-
'units', (
|
|
270
|
-
SELECT json_group_array(json(json_object(
|
|
271
|
-
'name', CONCAT([sd].[Name], '.', [ud].[Name]),
|
|
272
|
-
'label', [fud].[Label]
|
|
273
|
-
)))
|
|
274
|
-
FROM [meta].[FormatDef] [fd2]
|
|
275
|
-
LEFT JOIN [meta].[FormatCompositeUnitDef] [fud] ON [fud].[Format].[Id] = [fd2].[ECInstanceId]
|
|
276
|
-
LEFT JOIN [meta].[UnitDef] [ud] ON [ud].[ECInstanceId] = [fud].[Unit].[Id]
|
|
277
|
-
INNER JOIN [meta].[ECSchemaDef] [sd] ON [sd].[ECInstanceId] = [ud].[Schema].[Id]
|
|
278
|
-
WHERE [fd2].[ECInstanceId] = [fd1].[ECInstanceId]
|
|
279
|
-
)
|
|
280
|
-
)
|
|
281
|
-
FROM [meta].[FormatDef] [fd1]
|
|
282
|
-
WHERE [fd1].[ECInstanceId]= [fd].[ECInstanceId] AND [fd1].[CompositeSpec] IS NOT NULL
|
|
283
|
-
)` : ""}
|
|
284
|
-
) AS item
|
|
285
|
-
FROM
|
|
286
|
-
[meta].[FormatDef] [fd]
|
|
287
|
-
${singleSchema ? `
|
|
288
|
-
JOIN
|
|
289
|
-
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [fd].[Schema].[Id]
|
|
290
|
-
WHERE [schema].[Name] = :schemaName` : ""}
|
|
243
|
+
const format = (singleSchema) => `
|
|
244
|
+
SELECT
|
|
245
|
+
[fd].[Schema].[Id] AS [SchemaId],
|
|
246
|
+
json_object(
|
|
247
|
+
'schemaItemType', 'Format',
|
|
248
|
+
'name', [fd].[Name],
|
|
249
|
+
'label', [fd].[DisplayLabel],
|
|
250
|
+
'description', [fd].[Description],
|
|
251
|
+
'type', json_extract([fd].[NumericSpec], '$.type'),
|
|
252
|
+
'precision', json_extract([fd].[NumericSpec], '$.precision'),
|
|
253
|
+
'roundFactor', json_extract([fd].[NumericSpec], '$.roundFactor'),
|
|
254
|
+
'minWidth', json_extract([fd].[NumericSpec], '$.minWidth'),
|
|
255
|
+
'showSignOption', json_extract([fd].[NumericSpec], '$.showSignOption'),
|
|
256
|
+
'decimalSeparator', json_extract([fd].[NumericSpec], '$.decimalSeparator'),
|
|
257
|
+
'thousandSeparator', json_extract([fd].[NumericSpec], '$.thousandSeparator'),
|
|
258
|
+
'uomSeparator', json_extract([fd].[NumericSpec], '$.uomSeparator'),
|
|
259
|
+
'scientificType', json_extract([fd].[NumericSpec], '$.scientificType'),
|
|
260
|
+
'stationOffsetSize', json_extract([fd].[NumericSpec], '$.stationOffsetSize'),
|
|
261
|
+
'stationSeparator', json_extract([fd].[NumericSpec], '$.stationSeparator'),
|
|
262
|
+
'formatTraits', json_extract([fd].[NumericSpec], '$.formatTraits')
|
|
263
|
+
${singleSchema ? `
|
|
264
|
+
,'composite', (
|
|
265
|
+
SELECT
|
|
266
|
+
json_object(
|
|
267
|
+
'spacer', json_extract([fd1].[CompositeSpec], '$.spacer'),
|
|
268
|
+
'includeZero', json(IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 1, 'true', IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 0, 'false', null))),
|
|
269
|
+
'units', (
|
|
270
|
+
SELECT json_group_array(json(json_object(
|
|
271
|
+
'name', CONCAT([sd].[Name], '.', [ud].[Name]),
|
|
272
|
+
'label', [fud].[Label]
|
|
273
|
+
)))
|
|
274
|
+
FROM [meta].[FormatDef] [fd2]
|
|
275
|
+
LEFT JOIN [meta].[FormatCompositeUnitDef] [fud] ON [fud].[Format].[Id] = [fd2].[ECInstanceId]
|
|
276
|
+
LEFT JOIN [meta].[UnitDef] [ud] ON [ud].[ECInstanceId] = [fud].[Unit].[Id]
|
|
277
|
+
INNER JOIN [meta].[ECSchemaDef] [sd] ON [sd].[ECInstanceId] = [ud].[Schema].[Id]
|
|
278
|
+
WHERE [fd2].[ECInstanceId] = [fd1].[ECInstanceId]
|
|
279
|
+
)
|
|
280
|
+
)
|
|
281
|
+
FROM [meta].[FormatDef] [fd1]
|
|
282
|
+
WHERE [fd1].[ECInstanceId]= [fd].[ECInstanceId] AND [fd1].[CompositeSpec] IS NOT NULL
|
|
283
|
+
)` : ""}
|
|
284
|
+
) AS item
|
|
285
|
+
FROM
|
|
286
|
+
[meta].[FormatDef] [fd]
|
|
287
|
+
${singleSchema ? `
|
|
288
|
+
JOIN
|
|
289
|
+
[meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [fd].[Schema].[Id]
|
|
290
|
+
WHERE [schema].[Name] = :schemaName` : ""}
|
|
291
291
|
`;
|
|
292
292
|
/**
|
|
293
293
|
* Queries for each SchemaItemType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaItemQueries.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaItemQueries.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG;;;qFAGqF;AAErF;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;MAU7C,YAAY,CAAC,CAAC,CAAC;;;;;OAKd,CAAA,CAAC,CAAC,EAAE;;;;EAIT,YAAY,CAAC,CAAC,CAAC;;;;CAIhB,CAAC,CAAC,CAAC,EAAE;CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;EAYnD,YAAY,CAAC,CAAC,CAAC;;;;CAIhB,CAAC,CAAC,CAAC,EAAE;CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuB9C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,IAAI,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;EAiBvC,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;IAUjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;;CAGxC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;EAa/C,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;IAUjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;;CAGxC,CAAC;AAEF;;;GAGG;AACH,MAAM,QAAQ,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;EAe3C,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;IAMjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;CAExC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;EAW7C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;EAY7C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;MAoBrC,YAAY,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;MAoBf,CAAC,CAAC,CAAC,EAAE;;;;EAIT,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAA;AAED;;;GAGG;AACH,gEAAgE;AACnD,QAAA,iBAAiB,GAAG;IAC/B,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,UAAU;IACV,MAAM;CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/************************************************************************************\n * All SchemaItem queries for each SchemaItemType are defined here. These queries\n * are shared for both 'partial schema' and 'full schema' queries.\n ***********************************************************************************/\n\n/**\n * Query for SchemaItemType KindOfQuantity data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst kindOfQuantity = (singleSchema?: boolean) => `\nSELECT\n [koq].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'KindOfQuantity',\n 'name', [koq].[Name],\n 'label', [koq].[DisplayLabel],\n 'description', [koq].[Description],\n 'relativeError', [koq].[RelativeError],\n 'persistenceUnit', [koq].[PersistenceUnit]\n ${singleSchema ? `\n ,'presentationUnits', (\n SELECT json_group_array(js.\"value\")\n FROM [meta].[KindOfQuantityDef] [koq1], json1.json_each([PresentationUnits]) js\n WHERE [koq1].[ECInstanceId] = [koq].[ECInstanceId]\n ) `: \"\"}\n ) as [item]\nFROM\n [meta].[KindOfQuantityDef] [koq]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [koq].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName\n` : \"\"}\n`;\n\n/**\n * Query for SchemaItemType PropertyCategory data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst propertyCategory = (singleSchema?: boolean) => `\nSELECT\n [pc].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'PropertyCategory',\n 'name', [pc].[Name],\n 'label', [pc].[DisplayLabel],\n 'description', [pc].[Description],\n 'priority', [pc].[Priority]\n ) as [item]\nFROM\n [meta].[PropertyCategoryDef] [pc]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pc].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName\n` : \"\"}\n`;\n\n/**\n * Query for SchemaItemType Enumeration data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst enumeration = (singleSchema?: boolean) => `\nSELECT\n [ed].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'Enumeration',\n 'name', [ed].[Name],\n 'label', [ed].[DisplayLabel],\n 'description', [ed].[Description],\n 'type', IIF([ed].[Type] = 1281, 'int', IIF([ed].[Type] = 2305, 'string', null)),\n 'isStrict', IIF([ed].[IsStrict] = 1, json('true'), json('false')),\n 'enumerators', (\n SELECT json_group_array(json(json_object(\n 'name', json_extract(js.\"value\", '$.Name'),\n 'value', IFNULL(json_extract(js.\"value\", '$.StringValue'), (json_extract(js.\"value\", '$.IntValue'))),\n 'label', json_extract(js.\"value\", '$.DisplayLabel'),\n 'description', json_extract(js.\"value\", '$.Description')\n )))\n FROM [meta].[ECEnumerationDef] [enumerationDef], json1.json_each([EnumValues]) js\n WHERE [enumerationDef].[ECInstanceId] = [ed].[ECInstanceId]\n )\n ) as [item]\nFROM\n [meta].[ECEnumerationDef] [ed]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ed].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName` : \"\"}\n`;\n\n/**\n * Query for SchemaItemType Unit data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst unit = (singleSchema?: boolean) => `\nSELECT\n [ud].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'Unit',\n 'name', [ud].[Name],\n 'label', [ud].[DisplayLabel],\n 'description', [ud].[Description],\n 'definition', [ud].[Definition],\n 'numerator', IIF([ud].[Numerator] IS NULL, NULL, json(format('%.16g', [ud].[Numerator]))),\n 'denominator', IIF([ud].[Denominator] IS NULL, NULL, json(format('%.16g', [ud].[Denominator]))),\n 'offset', IIF([ud].[Offset] IS NULL, NULL, json(format('%!.15f', [ud].[Offset]))),\n 'unitSystem', CONCAT([uss].[Name],'.', [usd].[Name]),\n 'phenomenon', CONCAT([ps].[Name],'.', [pd].[Name])\n ) as item\nFROM\n [meta].[UnitDef] [ud]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : \"\"}\nJOIN [meta].[UnitSystemDef] [usd]\n ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]\nJOIN [meta].[ECSchemaDef] [uss]\n ON [uss].[ECInstanceId] = [usd].[Schema].[Id]\nJOIN [meta].[PhenomenonDef] [pd]\n ON [pd].[ECInstanceId] = [ud].[Phenomenon].[Id]\nJOIN [meta].[ECSchemaDef] [ps]\n ON [ps].[ECInstanceId] = [pd].[Schema].[Id]\nWHERE\n ${singleSchema ? `\n [schema].[Name] = :schemaName AND` : \"\"}\n [ud].[IsConstant] = 0 AND\n [ud].[InvertingUnit] IS NULL\n`;\n\n/**\n * Query for SchemaItemType InvertedUnit data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst invertedUnit = (singleSchema?: boolean) => `\nSELECT\n [ud].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'InvertedUnit',\n 'name', [ud].[Name],\n 'label', [ud].[DisplayLabel],\n 'description', [ud].[Description],\n 'unitSystem', CONCAT([systemSchema].[Name],'.', [usd].[Name]),\n 'invertsUnit', IIF([iud].[Name] IS NULL, null, CONCAT([ius].[Name],'.', [iud].[Name]))\n ) as [item]\nFROM\n [meta].[UnitDef] [ud]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : \"\"}\nJOIN [meta].[UnitSystemDef] [usd]\n ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]\nJOIN [meta].[ECSchemaDef] [systemSchema]\n ON [systemSchema].[ECInstanceId] = [usd].[Schema].[Id]\nLEFT JOIN [meta].[UnitDef] [iud]\n ON [iud].[ECInstanceId] = [ud].[InvertingUnit].[Id]\nLEFT JOIN [meta].[ECSchemaDef] [ius]\n ON [ius].[ECInstanceId] = [iud].[Schema].[Id]\nWHERE\n ${singleSchema ? `\n [schema].[Name] = :schemaName AND` : \"\"}\n [ud].[IsConstant] = 0 AND\n [ud].[InvertingUnit] IS NOT NULL\n`;\n\n/**\n * Query for SchemaItemType Constant data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst constant = (singleSchema?: boolean) => `\nSELECT\n [cd].[Schema].[Id] AS [SchemaId],\n json_object(\n 'schemaItemType', 'Constant',\n 'name', [cd].[Name],\n 'label', [cd].[DisplayLabel],\n 'description', [cd].[Description],\n 'definition', [cd].[Definition],\n 'numerator', IIF([cd].[Numerator] IS NULL, NULL, json(format('%.16g', [cd].[Numerator]))),\n 'denominator', IIF([cd].[Denominator] IS NULL, NULL, json(format('%.16g', [cd].[Denominator]))),\n 'phenomenon', CONCAT([phenomSchema].[Name],'.', [phenomDef].[Name])\n ) as item\nFROM\n [meta].[UnitDef] [cd]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [cd].[Schema].[Id]` : \"\"}\nJOIN [meta].[PhenomenonDef] [phenomDef]\n ON [phenomDef].[ECInstanceId] = [cd].[Phenomenon].[Id]\nJOIN [meta].[ECSchemaDef] [phenomSchema]\n ON [phenomSchema].[ECInstanceId] = [phenomDef].[Schema].[Id]\nWHERE\n ${singleSchema ? `\n [schema].[Name] = :schemaName AND` : \"\"}\n [cd].[IsConstant] = 1\n`;\n\n/**\n * Query for SchemaItemType UnitSystem data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst unitSystem = (singleSchema?: boolean) => `\nSELECT\n [us].[Schema].[Id] AS [SchemaId],\n json_object (\n 'schemaItemType', 'UnitSystem',\n 'name', [us].[Name],\n 'label', [us].[DisplayLabel],\n 'description', [us].[Description]\n ) as [item]\nFROM\n [meta].[UnitSystemDef] [us]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [us].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName` : \"\"}\n`;\n\n/**\n * Query for SchemaItemType Phenomenon data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst phenomenon = (singleSchema?: boolean) => `\nSELECT\n [pd].[Schema].[Id] AS [SchemaId],\n json_object(\n 'schemaItemType', 'Phenomenon',\n 'name', [pd].[Name],\n 'label', [pd].[DisplayLabel],\n 'description', [pd].[Description],\n 'definition', [pd].[Definition]\n ) as [item]\nFROM\n [meta].[PhenomenonDef] [pd]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pd].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName` : \"\"}\n`;\n\n/**\n * Query for SchemaItemType Format data.\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\n */\nconst format = (singleSchema?: boolean) => `\nSELECT\n [fd].[Schema].[Id] AS [SchemaId],\n json_object(\n 'schemaItemType', 'Format',\n 'name', [fd].[Name],\n 'label', [fd].[DisplayLabel],\n 'description', [fd].[Description],\n 'type', json_extract([fd].[NumericSpec], '$.type'),\n 'precision', json_extract([fd].[NumericSpec], '$.precision'),\n 'roundFactor', json_extract([fd].[NumericSpec], '$.roundFactor'),\n 'minWidth', json_extract([fd].[NumericSpec], '$.minWidth'),\n 'showSignOption', json_extract([fd].[NumericSpec], '$.showSignOption'),\n 'decimalSeparator', json_extract([fd].[NumericSpec], '$.decimalSeparator'),\n 'thousandSeparator', json_extract([fd].[NumericSpec], '$.thousandSeparator'),\n 'uomSeparator', json_extract([fd].[NumericSpec], '$.uomSeparator'),\n 'scientificType', json_extract([fd].[NumericSpec], '$.scientificType'),\n 'stationOffsetSize', json_extract([fd].[NumericSpec], '$.stationOffsetSize'),\n 'stationSeparator', json_extract([fd].[NumericSpec], '$.stationSeparator'),\n 'formatTraits', json_extract([fd].[NumericSpec], '$.formatTraits')\n ${singleSchema ? `\n ,'composite', (\n SELECT\n json_object(\n 'spacer', json_extract([fd1].[CompositeSpec], '$.spacer'),\n 'includeZero', json(IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 1, 'true', IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 0, 'false', null))),\n 'units', (\n SELECT json_group_array(json(json_object(\n 'name', CONCAT([sd].[Name], '.', [ud].[Name]),\n 'label', [fud].[Label]\n )))\n FROM [meta].[FormatDef] [fd2]\n LEFT JOIN [meta].[FormatCompositeUnitDef] [fud] ON [fud].[Format].[Id] = [fd2].[ECInstanceId]\n LEFT JOIN [meta].[UnitDef] [ud] ON [ud].[ECInstanceId] = [fud].[Unit].[Id]\n INNER JOIN [meta].[ECSchemaDef] [sd] ON [sd].[ECInstanceId] = [ud].[Schema].[Id]\n WHERE [fd2].[ECInstanceId] = [fd1].[ECInstanceId]\n )\n )\n FROM [meta].[FormatDef] [fd1]\n WHERE [fd1].[ECInstanceId]= [fd].[ECInstanceId] AND [fd1].[CompositeSpec] IS NOT NULL\n )` : \"\"}\n) AS item\nFROM\n [meta].[FormatDef] [fd]\n${singleSchema ? `\nJOIN\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [fd].[Schema].[Id]\nWHERE [schema].[Name] = :schemaName` : \"\"}\n`\n\n/**\n * Queries for each SchemaItemType\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const SchemaItemQueries = {\n kindOfQuantity,\n propertyCategory,\n enumeration,\n unit,\n invertedUnit,\n constant,\n unitSystem,\n phenomenon,\n format\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SchemaItemQueries.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaItemQueries.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG;;;qFAGqF;AAErF;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;MAU7C,YAAY,CAAC,CAAC,CAAC;;;;;OAKd,CAAA,CAAC,CAAC,EAAE;;;;EAIT,YAAY,CAAC,CAAC,CAAC;;;;CAIhB,CAAC,CAAC,CAAC,EAAE;CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;EAYnD,YAAY,CAAC,CAAC,CAAC;;;;CAIhB,CAAC,CAAC,CAAC,EAAE;CACL,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;EAuB9C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,IAAI,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;EAiBvC,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;IAUjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;;CAGxC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;EAa/C,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;IAUjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;;CAGxC,CAAC;AAEF;;;GAGG;AACH,MAAM,QAAQ,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;EAe3C,YAAY,CAAC,CAAC,CAAC;;gFAE+D,CAAC,CAAC,CAAC,EAAE;;;;;;IAMjF,YAAY,CAAC,CAAC,CAAC;oCACiB,CAAC,CAAC,CAAC,EAAE;;CAExC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;EAW7C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;EAY7C,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,GAAG,CAAC,YAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;MAoBrC,YAAY,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;MAoBf,CAAC,CAAC,CAAC,EAAE;;;;EAIT,YAAY,CAAC,CAAC,CAAC;;;oCAGmB,CAAC,CAAC,CAAC,EAAE;CACxC,CAAA;AAED;;;GAGG;AACH,gEAAgE;AACnD,QAAA,iBAAiB,GAAG;IAC/B,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,UAAU;IACV,MAAM;CACP,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/************************************************************************************\r\n * All SchemaItem queries for each SchemaItemType are defined here. These queries\r\n * are shared for both 'partial schema' and 'full schema' queries.\r\n ***********************************************************************************/\r\n\r\n/**\r\n * Query for SchemaItemType KindOfQuantity data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst kindOfQuantity = (singleSchema?: boolean) => `\r\nSELECT\r\n [koq].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'KindOfQuantity',\r\n 'name', [koq].[Name],\r\n 'label', [koq].[DisplayLabel],\r\n 'description', [koq].[Description],\r\n 'relativeError', [koq].[RelativeError],\r\n 'persistenceUnit', [koq].[PersistenceUnit]\r\n ${singleSchema ? `\r\n ,'presentationUnits', (\r\n SELECT json_group_array(js.\"value\")\r\n FROM [meta].[KindOfQuantityDef] [koq1], json1.json_each([PresentationUnits]) js\r\n WHERE [koq1].[ECInstanceId] = [koq].[ECInstanceId]\r\n ) `: \"\"}\r\n ) as [item]\r\nFROM\r\n [meta].[KindOfQuantityDef] [koq]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [koq].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName\r\n` : \"\"}\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType PropertyCategory data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst propertyCategory = (singleSchema?: boolean) => `\r\nSELECT\r\n [pc].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'PropertyCategory',\r\n 'name', [pc].[Name],\r\n 'label', [pc].[DisplayLabel],\r\n 'description', [pc].[Description],\r\n 'priority', [pc].[Priority]\r\n ) as [item]\r\nFROM\r\n [meta].[PropertyCategoryDef] [pc]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pc].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName\r\n` : \"\"}\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType Enumeration data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst enumeration = (singleSchema?: boolean) => `\r\nSELECT\r\n [ed].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'Enumeration',\r\n 'name', [ed].[Name],\r\n 'label', [ed].[DisplayLabel],\r\n 'description', [ed].[Description],\r\n 'type', IIF([ed].[Type] = 1281, 'int', IIF([ed].[Type] = 2305, 'string', null)),\r\n 'isStrict', IIF([ed].[IsStrict] = 1, json('true'), json('false')),\r\n 'enumerators', (\r\n SELECT json_group_array(json(json_object(\r\n 'name', json_extract(js.\"value\", '$.Name'),\r\n 'value', IFNULL(json_extract(js.\"value\", '$.StringValue'), (json_extract(js.\"value\", '$.IntValue'))),\r\n 'label', json_extract(js.\"value\", '$.DisplayLabel'),\r\n 'description', json_extract(js.\"value\", '$.Description')\r\n )))\r\n FROM [meta].[ECEnumerationDef] [enumerationDef], json1.json_each([EnumValues]) js\r\n WHERE [enumerationDef].[ECInstanceId] = [ed].[ECInstanceId]\r\n )\r\n ) as [item]\r\nFROM\r\n [meta].[ECEnumerationDef] [ed]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ed].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName` : \"\"}\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType Unit data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst unit = (singleSchema?: boolean) => `\r\nSELECT\r\n [ud].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'Unit',\r\n 'name', [ud].[Name],\r\n 'label', [ud].[DisplayLabel],\r\n 'description', [ud].[Description],\r\n 'definition', [ud].[Definition],\r\n 'numerator', IIF([ud].[Numerator] IS NULL, NULL, json(format('%.16g', [ud].[Numerator]))),\r\n 'denominator', IIF([ud].[Denominator] IS NULL, NULL, json(format('%.16g', [ud].[Denominator]))),\r\n 'offset', IIF([ud].[Offset] IS NULL, NULL, json(format('%!.15f', [ud].[Offset]))),\r\n 'unitSystem', CONCAT([uss].[Name],'.', [usd].[Name]),\r\n 'phenomenon', CONCAT([ps].[Name],'.', [pd].[Name])\r\n ) as item\r\nFROM\r\n [meta].[UnitDef] [ud]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : \"\"}\r\nJOIN [meta].[UnitSystemDef] [usd]\r\n ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]\r\nJOIN [meta].[ECSchemaDef] [uss]\r\n ON [uss].[ECInstanceId] = [usd].[Schema].[Id]\r\nJOIN [meta].[PhenomenonDef] [pd]\r\n ON [pd].[ECInstanceId] = [ud].[Phenomenon].[Id]\r\nJOIN [meta].[ECSchemaDef] [ps]\r\n ON [ps].[ECInstanceId] = [pd].[Schema].[Id]\r\nWHERE\r\n ${singleSchema ? `\r\n [schema].[Name] = :schemaName AND` : \"\"}\r\n [ud].[IsConstant] = 0 AND\r\n [ud].[InvertingUnit] IS NULL\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType InvertedUnit data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst invertedUnit = (singleSchema?: boolean) => `\r\nSELECT\r\n [ud].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'InvertedUnit',\r\n 'name', [ud].[Name],\r\n 'label', [ud].[DisplayLabel],\r\n 'description', [ud].[Description],\r\n 'unitSystem', CONCAT([systemSchema].[Name],'.', [usd].[Name]),\r\n 'invertsUnit', IIF([iud].[Name] IS NULL, null, CONCAT([ius].[Name],'.', [iud].[Name]))\r\n ) as [item]\r\nFROM\r\n [meta].[UnitDef] [ud]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [ud].[Schema].[Id]` : \"\"}\r\nJOIN [meta].[UnitSystemDef] [usd]\r\n ON [usd].[ECInstanceId] = [ud].[UnitSystem].[Id]\r\nJOIN [meta].[ECSchemaDef] [systemSchema]\r\n ON [systemSchema].[ECInstanceId] = [usd].[Schema].[Id]\r\nLEFT JOIN [meta].[UnitDef] [iud]\r\n ON [iud].[ECInstanceId] = [ud].[InvertingUnit].[Id]\r\nLEFT JOIN [meta].[ECSchemaDef] [ius]\r\n ON [ius].[ECInstanceId] = [iud].[Schema].[Id]\r\nWHERE\r\n ${singleSchema ? `\r\n [schema].[Name] = :schemaName AND` : \"\"}\r\n [ud].[IsConstant] = 0 AND\r\n [ud].[InvertingUnit] IS NOT NULL\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType Constant data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst constant = (singleSchema?: boolean) => `\r\nSELECT\r\n [cd].[Schema].[Id] AS [SchemaId],\r\n json_object(\r\n 'schemaItemType', 'Constant',\r\n 'name', [cd].[Name],\r\n 'label', [cd].[DisplayLabel],\r\n 'description', [cd].[Description],\r\n 'definition', [cd].[Definition],\r\n 'numerator', IIF([cd].[Numerator] IS NULL, NULL, json(format('%.16g', [cd].[Numerator]))),\r\n 'denominator', IIF([cd].[Denominator] IS NULL, NULL, json(format('%.16g', [cd].[Denominator]))),\r\n 'phenomenon', CONCAT([phenomSchema].[Name],'.', [phenomDef].[Name])\r\n ) as item\r\nFROM\r\n [meta].[UnitDef] [cd]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [cd].[Schema].[Id]` : \"\"}\r\nJOIN [meta].[PhenomenonDef] [phenomDef]\r\n ON [phenomDef].[ECInstanceId] = [cd].[Phenomenon].[Id]\r\nJOIN [meta].[ECSchemaDef] [phenomSchema]\r\n ON [phenomSchema].[ECInstanceId] = [phenomDef].[Schema].[Id]\r\nWHERE\r\n ${singleSchema ? `\r\n [schema].[Name] = :schemaName AND` : \"\"}\r\n [cd].[IsConstant] = 1\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType UnitSystem data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst unitSystem = (singleSchema?: boolean) => `\r\nSELECT\r\n [us].[Schema].[Id] AS [SchemaId],\r\n json_object (\r\n 'schemaItemType', 'UnitSystem',\r\n 'name', [us].[Name],\r\n 'label', [us].[DisplayLabel],\r\n 'description', [us].[Description]\r\n ) as [item]\r\nFROM\r\n [meta].[UnitSystemDef] [us]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [us].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName` : \"\"}\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType Phenomenon data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst phenomenon = (singleSchema?: boolean) => `\r\nSELECT\r\n [pd].[Schema].[Id] AS [SchemaId],\r\n json_object(\r\n 'schemaItemType', 'Phenomenon',\r\n 'name', [pd].[Name],\r\n 'label', [pd].[DisplayLabel],\r\n 'description', [pd].[Description],\r\n 'definition', [pd].[Definition]\r\n ) as [item]\r\nFROM\r\n [meta].[PhenomenonDef] [pd]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [pd].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName` : \"\"}\r\n`;\r\n\r\n/**\r\n * Query for SchemaItemType Format data.\r\n * @param singleSchema Indicates if a filter and join for a single Schema should be applied.\r\n */\r\nconst format = (singleSchema?: boolean) => `\r\nSELECT\r\n [fd].[Schema].[Id] AS [SchemaId],\r\n json_object(\r\n 'schemaItemType', 'Format',\r\n 'name', [fd].[Name],\r\n 'label', [fd].[DisplayLabel],\r\n 'description', [fd].[Description],\r\n 'type', json_extract([fd].[NumericSpec], '$.type'),\r\n 'precision', json_extract([fd].[NumericSpec], '$.precision'),\r\n 'roundFactor', json_extract([fd].[NumericSpec], '$.roundFactor'),\r\n 'minWidth', json_extract([fd].[NumericSpec], '$.minWidth'),\r\n 'showSignOption', json_extract([fd].[NumericSpec], '$.showSignOption'),\r\n 'decimalSeparator', json_extract([fd].[NumericSpec], '$.decimalSeparator'),\r\n 'thousandSeparator', json_extract([fd].[NumericSpec], '$.thousandSeparator'),\r\n 'uomSeparator', json_extract([fd].[NumericSpec], '$.uomSeparator'),\r\n 'scientificType', json_extract([fd].[NumericSpec], '$.scientificType'),\r\n 'stationOffsetSize', json_extract([fd].[NumericSpec], '$.stationOffsetSize'),\r\n 'stationSeparator', json_extract([fd].[NumericSpec], '$.stationSeparator'),\r\n 'formatTraits', json_extract([fd].[NumericSpec], '$.formatTraits')\r\n ${singleSchema ? `\r\n ,'composite', (\r\n SELECT\r\n json_object(\r\n 'spacer', json_extract([fd1].[CompositeSpec], '$.spacer'),\r\n 'includeZero', json(IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 1, 'true', IIF(json_extract([fd1].[CompositeSpec], '$.includeZero') = 0, 'false', null))),\r\n 'units', (\r\n SELECT json_group_array(json(json_object(\r\n 'name', CONCAT([sd].[Name], '.', [ud].[Name]),\r\n 'label', [fud].[Label]\r\n )))\r\n FROM [meta].[FormatDef] [fd2]\r\n LEFT JOIN [meta].[FormatCompositeUnitDef] [fud] ON [fud].[Format].[Id] = [fd2].[ECInstanceId]\r\n LEFT JOIN [meta].[UnitDef] [ud] ON [ud].[ECInstanceId] = [fud].[Unit].[Id]\r\n INNER JOIN [meta].[ECSchemaDef] [sd] ON [sd].[ECInstanceId] = [ud].[Schema].[Id]\r\n WHERE [fd2].[ECInstanceId] = [fd1].[ECInstanceId]\r\n )\r\n )\r\n FROM [meta].[FormatDef] [fd1]\r\n WHERE [fd1].[ECInstanceId]= [fd].[ECInstanceId] AND [fd1].[CompositeSpec] IS NOT NULL\r\n )` : \"\"}\r\n) AS item\r\nFROM\r\n [meta].[FormatDef] [fd]\r\n${singleSchema ? `\r\nJOIN\r\n [meta].[ECSchemaDef] [schema] ON [schema].[ECInstanceId] = [fd].[Schema].[Id]\r\nWHERE [schema].[Name] = :schemaName` : \"\"}\r\n`\r\n\r\n/**\r\n * Queries for each SchemaItemType\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const SchemaItemQueries = {\r\n kindOfQuantity,\r\n propertyCategory,\r\n enumeration,\r\n unit,\r\n invertedUnit,\r\n constant,\r\n unitSystem,\r\n phenomenon,\r\n format\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaParser.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaParser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ECSchemaNamespaceUris } from \"../Constants\";\nimport { SchemaItemProps, SchemaProps } from \"../Deserialization/JsonProps\";\nimport { parseSchemaItemType, SchemaItemType } from \"../ECObjects\";\nimport { SchemaInfo } from \"../Interfaces\";\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\nimport { ClassParser, CustomAttributeClassParser, MixinParser, RelationshipClassParser } from \"./ClassParsers\";\nimport { KindOfQuantityParser, SchemaItemParser } from \"./SchemaItemParsers\";\n\nfunction clean(_key: string, value: any) {\n return value === null ? undefined : value;\n}\n\ntype MutableSchemaProps = {\n -readonly [K in keyof SchemaProps]: SchemaProps[K]\n};\n\ninterface NamedSchemaItemProps extends SchemaItemProps {\n name: string;\n schemaItemType: SchemaItemType;\n}\n\n/**\n * Parses SchemaProps JSON returned from an ECSql query and returns the correct SchemaProps JSON object.\n * This is necessary as a small amount information (ie. CustomAttributes, unqualified type names, etc.)\n * returned from the iModelDb is in a different format than is required for a given Schema or\n * SchemaItemProps JSON object.\n * @internal\n */\nexport class SchemaParser {\n /**\n * Corrects the SchemaProps JSON returned from the query to a proper SchemaProps\n * JSON object.\n * @param schema The SchemaProps JSON object to parse.\n * @param context The SchemaContext that will contain the schema and it's references.\n * @returns The corrected SchemaProps JSON.\n */\n public static async parse(schema: SchemaProps, schemaInfos: Iterable<SchemaInfo>): Promise<SchemaProps> {\n const props = schema as MutableSchemaProps;\n props.$schema = ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\n props.customAttributes = props.customAttributes ? props.customAttributes.map((attr: any) => { return parseCustomAttribute(attr); }) : undefined;\n props.label = props.label === null ? undefined : props.label;\n props.description = props.description === null ? undefined : props.description;\n if (props.items) {\n props.items = await this.parseItems(props.items as any, props.name, schemaInfos);\n }\n\n if (!props.customAttributes || props.customAttributes.length === 0)\n delete props.customAttributes;\n\n const cleaned = JSON.parse(JSON.stringify(props, clean)) as SchemaProps;\n return cleaned;\n }\n\n /**\n * Parse the given SchemaItemProps array, as returned from an ECSql query, and returns the corrected SchemaItemProps.\n * @param schemaItems The SchemaItemProps array returned from an iModelDb.\n * @param schemaName The name of the Schema to which the SchemaItemProps belong.\n * @param context The SchemaContext containing the Schema.\n * @returns The corrected SchemaItemProps.\n */\n public static async parseSchemaItems(schemaItems: readonly SchemaItemProps[], schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<NamedSchemaItemProps[] | undefined> {\n const items: NamedSchemaItemProps[] = [];\n for (const item of schemaItems) {\n const props = await this.parseItem(item, schemaName, schemaInfos);\n const cleaned = JSON.parse(JSON.stringify(props, clean));\n items.push(cleaned);\n }\n return items.length > 0 ? items : undefined;\n }\n\n private static async parseItems(schemaItemProps: readonly SchemaItemProps[], schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<{ [name: string]: SchemaItemProps } | undefined> {\n const items: { [name: string]: SchemaItemProps } = {};\n for (const itemProps of schemaItemProps) {\n const props = await this.parseItem(itemProps, schemaName, schemaInfos);\n items[props.name] = props;\n delete (props as any).name;\n }\n\n return Object.keys(items).length > 0 ? items : undefined;\n }\n\n public static async parseItem(props: SchemaItemProps, schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<NamedSchemaItemProps> {\n const schemaItem = \"string\" === typeof (props) ? JSON.parse(props) : props;\n const type = parseSchemaItemType(schemaItem.schemaItemType);\n switch (type) {\n case SchemaItemType.KindOfQuantity:\n const koqParser = new KindOfQuantityParser(schemaName, schemaInfos);\n return await koqParser.parse(schemaItem) as NamedSchemaItemProps;\n case SchemaItemType.EntityClass:\n case SchemaItemType.StructClass:\n const classParser = new ClassParser(schemaName, schemaInfos);\n return await classParser.parse(schemaItem) as NamedSchemaItemProps;\n case SchemaItemType.RelationshipClass:\n const relationshipParser = new RelationshipClassParser(schemaName, schemaInfos);\n return await relationshipParser.parse(schemaItem) as NamedSchemaItemProps;\n case SchemaItemType.Mixin:\n const mixinParser = new MixinParser(schemaName, schemaInfos);\n return await mixinParser.parse(schemaItem) as NamedSchemaItemProps;\n case SchemaItemType.CustomAttributeClass:\n const caParser = new CustomAttributeClassParser(schemaName, schemaInfos);\n return await caParser.parse(schemaItem) as NamedSchemaItemProps;\n default:\n const itemParser = new SchemaItemParser(schemaName, schemaInfos);\n return await itemParser.parse(schemaItem) as NamedSchemaItemProps;\n }\n }\n}\n\n/**\n * Utility method to parse CustomAttribute data retrieved from a ECSql query.\n * @param customAttribute CustomAttribute data as retrieved from an iModel query.\n * @returns The CustomAttribute instance.\n * @internal\n */\nexport function parseCustomAttribute(customAttribute: { ecClass: string; ecSchema: string;[propName: string]: any; }): CustomAttribute {\n return {\n ...customAttribute[customAttribute.ecClass],\n className: `${(customAttribute.ecSchema).split('.')[0]}.${customAttribute.ecClass}`,\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"SchemaParser.js","sourceRoot":"","sources":["../../../src/IncrementalLoading/SchemaParser.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\r\nimport { ECSchemaNamespaceUris } from \"../Constants\";\r\nimport { SchemaItemProps, SchemaProps } from \"../Deserialization/JsonProps\";\r\nimport { parseSchemaItemType, SchemaItemType } from \"../ECObjects\";\r\nimport { SchemaInfo } from \"../Interfaces\";\r\nimport { CustomAttribute } from \"../Metadata/CustomAttribute\";\r\nimport { ClassParser, CustomAttributeClassParser, MixinParser, RelationshipClassParser } from \"./ClassParsers\";\r\nimport { KindOfQuantityParser, SchemaItemParser } from \"./SchemaItemParsers\";\r\n\r\nfunction clean(_key: string, value: any) {\r\n return value === null ? undefined : value;\r\n}\r\n\r\ntype MutableSchemaProps = {\r\n -readonly [K in keyof SchemaProps]: SchemaProps[K]\r\n};\r\n\r\ninterface NamedSchemaItemProps extends SchemaItemProps {\r\n name: string;\r\n schemaItemType: SchemaItemType;\r\n}\r\n\r\n/**\r\n * Parses SchemaProps JSON returned from an ECSql query and returns the correct SchemaProps JSON object.\r\n * This is necessary as a small amount information (ie. CustomAttributes, unqualified type names, etc.)\r\n * returned from the iModelDb is in a different format than is required for a given Schema or\r\n * SchemaItemProps JSON object.\r\n * @internal\r\n */\r\nexport class SchemaParser {\r\n /**\r\n * Corrects the SchemaProps JSON returned from the query to a proper SchemaProps\r\n * JSON object.\r\n * @param schema The SchemaProps JSON object to parse.\r\n * @param context The SchemaContext that will contain the schema and it's references.\r\n * @returns The corrected SchemaProps JSON.\r\n */\r\n public static async parse(schema: SchemaProps, schemaInfos: Iterable<SchemaInfo>): Promise<SchemaProps> {\r\n const props = schema as MutableSchemaProps;\r\n props.$schema = ECSchemaNamespaceUris.SCHEMAURL3_2_JSON,\r\n props.customAttributes = props.customAttributes ? props.customAttributes.map((attr: any) => { return parseCustomAttribute(attr); }) : undefined;\r\n props.label = props.label === null ? undefined : props.label;\r\n props.description = props.description === null ? undefined : props.description;\r\n if (props.items) {\r\n props.items = await this.parseItems(props.items as any, props.name, schemaInfos);\r\n }\r\n\r\n if (!props.customAttributes || props.customAttributes.length === 0)\r\n delete props.customAttributes;\r\n\r\n const cleaned = JSON.parse(JSON.stringify(props, clean)) as SchemaProps;\r\n return cleaned;\r\n }\r\n\r\n /**\r\n * Parse the given SchemaItemProps array, as returned from an ECSql query, and returns the corrected SchemaItemProps.\r\n * @param schemaItems The SchemaItemProps array returned from an iModelDb.\r\n * @param schemaName The name of the Schema to which the SchemaItemProps belong.\r\n * @param context The SchemaContext containing the Schema.\r\n * @returns The corrected SchemaItemProps.\r\n */\r\n public static async parseSchemaItems(schemaItems: readonly SchemaItemProps[], schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<NamedSchemaItemProps[] | undefined> {\r\n const items: NamedSchemaItemProps[] = [];\r\n for (const item of schemaItems) {\r\n const props = await this.parseItem(item, schemaName, schemaInfos);\r\n const cleaned = JSON.parse(JSON.stringify(props, clean));\r\n items.push(cleaned);\r\n }\r\n return items.length > 0 ? items : undefined;\r\n }\r\n\r\n private static async parseItems(schemaItemProps: readonly SchemaItemProps[], schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<{ [name: string]: SchemaItemProps } | undefined> {\r\n const items: { [name: string]: SchemaItemProps } = {};\r\n for (const itemProps of schemaItemProps) {\r\n const props = await this.parseItem(itemProps, schemaName, schemaInfos);\r\n items[props.name] = props;\r\n delete (props as any).name;\r\n }\r\n\r\n return Object.keys(items).length > 0 ? items : undefined;\r\n }\r\n\r\n public static async parseItem(props: SchemaItemProps, schemaName: string, schemaInfos: Iterable<SchemaInfo>): Promise<NamedSchemaItemProps> {\r\n const schemaItem = \"string\" === typeof (props) ? JSON.parse(props) : props;\r\n const type = parseSchemaItemType(schemaItem.schemaItemType);\r\n switch (type) {\r\n case SchemaItemType.KindOfQuantity:\r\n const koqParser = new KindOfQuantityParser(schemaName, schemaInfos);\r\n return await koqParser.parse(schemaItem) as NamedSchemaItemProps;\r\n case SchemaItemType.EntityClass:\r\n case SchemaItemType.StructClass:\r\n const classParser = new ClassParser(schemaName, schemaInfos);\r\n return await classParser.parse(schemaItem) as NamedSchemaItemProps;\r\n case SchemaItemType.RelationshipClass:\r\n const relationshipParser = new RelationshipClassParser(schemaName, schemaInfos);\r\n return await relationshipParser.parse(schemaItem) as NamedSchemaItemProps;\r\n case SchemaItemType.Mixin:\r\n const mixinParser = new MixinParser(schemaName, schemaInfos);\r\n return await mixinParser.parse(schemaItem) as NamedSchemaItemProps;\r\n case SchemaItemType.CustomAttributeClass:\r\n const caParser = new CustomAttributeClassParser(schemaName, schemaInfos);\r\n return await caParser.parse(schemaItem) as NamedSchemaItemProps;\r\n default:\r\n const itemParser = new SchemaItemParser(schemaName, schemaInfos);\r\n return await itemParser.parse(schemaItem) as NamedSchemaItemProps;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Utility method to parse CustomAttribute data retrieved from a ECSql query.\r\n * @param customAttribute CustomAttribute data as retrieved from an iModel query.\r\n * @returns The CustomAttribute instance.\r\n * @internal\r\n */\r\nexport function parseCustomAttribute(customAttribute: { ecClass: string; ecSchema: string;[propName: string]: any; }): CustomAttribute {\r\n return {\r\n ...customAttribute[customAttribute.ecClass],\r\n className: `${(customAttribute.ecSchema).split('.')[0]}.${customAttribute.ecClass}`,\r\n }\r\n}"]}
|