@itwin/presentation-common 5.0.0-dev.5 → 5.0.0-dev.50
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 +47 -1
- package/lib/cjs/assets/locales/en/Presentation.json +19 -19
- package/lib/cjs/presentation-common/AsyncTasks.d.ts +4 -4
- package/lib/cjs/presentation-common/AsyncTasks.d.ts.map +1 -1
- package/lib/cjs/presentation-common/AsyncTasks.js +4 -3
- package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
- package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
- package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
- package/lib/cjs/presentation-common/EC.d.ts +31 -0
- package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
- package/lib/cjs/presentation-common/EC.js.map +1 -1
- package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
- package/lib/cjs/presentation-common/Error.js.map +1 -1
- package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
- package/lib/cjs/presentation-common/KeySet.js.map +1 -1
- package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
- package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
- package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +29 -8
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.js +4 -4
- package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +3 -2
- package/lib/cjs/presentation-common/RegisteredRuleset.d.ts.map +1 -1
- package/lib/cjs/presentation-common/RegisteredRuleset.js +6 -1
- package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
- package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
- package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/cjs/presentation-common/Update.js.map +1 -1
- package/lib/cjs/presentation-common/Utils.d.ts +9 -0
- package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Utils.js +17 -0
- package/lib/cjs/presentation-common/Utils.js.map +1 -1
- package/lib/cjs/presentation-common/content/Category.js.map +1 -1
- package/lib/cjs/presentation-common/content/Content.js.map +1 -1
- package/lib/cjs/presentation-common/content/ContentTraverser.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/ContentTraverser.js +64 -3
- package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/cjs/presentation-common/content/Descriptor.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Descriptor.js +22 -11
- package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
- package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
- package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Fields.js +5 -4
- package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
- package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Item.js +12 -7
- package/lib/cjs/presentation-common/content/Item.js.map +1 -1
- package/lib/cjs/presentation-common/content/Property.js.map +1 -1
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.js +31 -23
- package/lib/cjs/presentation-common/content/PropertyValueFormatter.js.map +1 -1
- package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
- package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
- package/lib/cjs/presentation-common/content/Value.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
- package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
- package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
- package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
- package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
- package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
- package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
- package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
- package/lib/cjs/presentation-common.d.ts +1 -1
- package/lib/cjs/presentation-common.d.ts.map +1 -1
- package/lib/cjs/presentation-common.js +4 -1
- package/lib/cjs/presentation-common.js.map +1 -1
- package/lib/esm/presentation-common/AsyncTasks.d.ts +4 -4
- package/lib/esm/presentation-common/AsyncTasks.d.ts.map +1 -1
- package/lib/esm/presentation-common/AsyncTasks.js +4 -3
- package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
- package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
- package/lib/esm/presentation-common/EC.d.ts +31 -0
- package/lib/esm/presentation-common/EC.d.ts.map +1 -1
- package/lib/esm/presentation-common/EC.js.map +1 -1
- package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
- package/lib/esm/presentation-common/Error.js.map +1 -1
- package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
- package/lib/esm/presentation-common/KeySet.js.map +1 -1
- package/lib/esm/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
- package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
- package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
- package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +29 -8
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.js +4 -4
- package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/RegisteredRuleset.d.ts +3 -2
- package/lib/esm/presentation-common/RegisteredRuleset.d.ts.map +1 -1
- package/lib/esm/presentation-common/RegisteredRuleset.js +6 -1
- package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
- package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
- package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/esm/presentation-common/Update.js.map +1 -1
- package/lib/esm/presentation-common/Utils.d.ts +9 -0
- package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
- package/lib/esm/presentation-common/Utils.js +16 -0
- package/lib/esm/presentation-common/Utils.js.map +1 -1
- package/lib/esm/presentation-common/content/Category.js.map +1 -1
- package/lib/esm/presentation-common/content/Content.js.map +1 -1
- package/lib/esm/presentation-common/content/ContentTraverser.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/ContentTraverser.js +65 -4
- package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/esm/presentation-common/content/Descriptor.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Descriptor.js +22 -11
- package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
- package/lib/esm/presentation-common/content/Editor.js.map +1 -1
- package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Fields.js +5 -4
- package/lib/esm/presentation-common/content/Fields.js.map +1 -1
- package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Item.js +12 -7
- package/lib/esm/presentation-common/content/Item.js.map +1 -1
- package/lib/esm/presentation-common/content/Property.js.map +1 -1
- package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/PropertyValueFormatter.js +31 -23
- package/lib/esm/presentation-common/content/PropertyValueFormatter.js.map +1 -1
- package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
- package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
- package/lib/esm/presentation-common/content/Value.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
- package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
- package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
- package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
- package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
- package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
- package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
- package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
- package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
- package/lib/esm/presentation-common.d.ts +1 -1
- package/lib/esm/presentation-common.d.ts.map +1 -1
- package/lib/esm/presentation-common.js +1 -1
- package/lib/esm/presentation-common.js.map +1 -1
- package/lib/public/locales/en/Presentation.json +19 -19
- package/package.json +12 -12
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.ContentPropertyValueFormatter = exports.ContentFormatter = void 0;
|
|
11
11
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
12
|
const Content_1 = require("./Content");
|
|
13
|
-
const TypeDescription_1 = require("./TypeDescription");
|
|
14
13
|
const Value_1 = require("./Value");
|
|
15
14
|
/** @internal */
|
|
16
15
|
class ContentFormatter {
|
|
@@ -98,67 +97,76 @@ class ContentPropertyValueFormatter {
|
|
|
98
97
|
return formatDouble(rawValue);
|
|
99
98
|
}
|
|
100
99
|
: async (rawValue) => formatDouble(rawValue);
|
|
101
|
-
return this.formatValue(field
|
|
100
|
+
return this.formatValue(field, value, { doubleFormatter });
|
|
102
101
|
}
|
|
103
|
-
async formatValue(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return this.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
async formatValue(field, value, ctx) {
|
|
103
|
+
if (field.isPropertiesField()) {
|
|
104
|
+
if (field.isArrayPropertiesField()) {
|
|
105
|
+
return this.formatArrayValue(field, value);
|
|
106
|
+
}
|
|
107
|
+
if (field.isStructPropertiesField()) {
|
|
108
|
+
return this.formatStructValue(field, value);
|
|
109
|
+
}
|
|
111
110
|
}
|
|
111
|
+
return this.formatPrimitiveValue(field, value, ctx);
|
|
112
112
|
}
|
|
113
|
-
async formatPrimitiveValue(
|
|
113
|
+
async formatPrimitiveValue(field, value, ctx) {
|
|
114
114
|
if (value === undefined) {
|
|
115
115
|
return "";
|
|
116
116
|
}
|
|
117
117
|
const formatDoubleValue = async (raw) => (ctx ? ctx.doubleFormatter(raw) : formatDouble(raw));
|
|
118
|
-
if (type.typeName === "point2d" && isPoint2d(value)) {
|
|
118
|
+
if (field.type.typeName === "point2d" && isPoint2d(value)) {
|
|
119
119
|
return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}`;
|
|
120
120
|
}
|
|
121
|
-
if (type.typeName === "point3d" && isPoint3d(value)) {
|
|
121
|
+
if (field.type.typeName === "point3d" && isPoint3d(value)) {
|
|
122
122
|
return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}; Z: ${await formatDoubleValue(value.z)}`;
|
|
123
123
|
}
|
|
124
|
-
if (type.typeName === "dateTime") {
|
|
124
|
+
if (field.type.typeName === "dateTime") {
|
|
125
125
|
(0, core_bentley_1.assert)(typeof value === "string");
|
|
126
126
|
return value;
|
|
127
127
|
}
|
|
128
|
-
if (type.typeName === "bool" || type.typeName === "boolean") {
|
|
128
|
+
if (field.type.typeName === "bool" || field.type.typeName === "boolean") {
|
|
129
129
|
(0, core_bentley_1.assert)(typeof value === "boolean");
|
|
130
130
|
return value ? "@Presentation:value.true@" : "@Presentation:value.false@";
|
|
131
131
|
}
|
|
132
|
-
if (type.typeName === "int" || type.typeName === "long") {
|
|
132
|
+
if (field.type.typeName === "int" || field.type.typeName === "long") {
|
|
133
133
|
(0, core_bentley_1.assert)(isNumber(value));
|
|
134
134
|
return value.toFixed(0);
|
|
135
135
|
}
|
|
136
|
-
if (type.typeName === "double") {
|
|
136
|
+
if (field.type.typeName === "double") {
|
|
137
137
|
(0, core_bentley_1.assert)(isNumber(value));
|
|
138
138
|
return formatDoubleValue(value);
|
|
139
139
|
}
|
|
140
|
-
if (type.typeName === "navigation") {
|
|
140
|
+
if (field.type.typeName === "navigation") {
|
|
141
141
|
(0, core_bentley_1.assert)(Value_1.Value.isNavigationValue(value));
|
|
142
142
|
return value.label.displayValue;
|
|
143
143
|
}
|
|
144
|
+
if (field.type.typeName === "enum" && field.isPropertiesField()) {
|
|
145
|
+
const defaultValue = !field.properties[0].property.enumerationInfo?.isStrict
|
|
146
|
+
? value.toString() // eslint-disable-line @typescript-eslint/no-base-to-string
|
|
147
|
+
: undefined;
|
|
148
|
+
return field.properties[0].property.enumerationInfo?.choices.find(({ value: enumValue }) => enumValue === value)?.label ?? defaultValue;
|
|
149
|
+
}
|
|
144
150
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
145
151
|
return value.toString();
|
|
146
152
|
}
|
|
147
|
-
async formatStructValue(
|
|
153
|
+
async formatStructValue(field, value) {
|
|
148
154
|
if (!Value_1.Value.isMap(value)) {
|
|
149
155
|
return {};
|
|
150
156
|
}
|
|
151
157
|
const formattedMember = {};
|
|
152
|
-
for (const member of
|
|
153
|
-
formattedMember[member.name] = await this.formatValue(member
|
|
158
|
+
for (const member of field.memberFields) {
|
|
159
|
+
formattedMember[member.name] = await this.formatValue(member, value[member.name]);
|
|
154
160
|
}
|
|
155
161
|
return formattedMember;
|
|
156
162
|
}
|
|
157
|
-
async formatArrayValue(
|
|
163
|
+
async formatArrayValue(field, value) {
|
|
158
164
|
if (!Value_1.Value.isArray(value)) {
|
|
159
165
|
return [];
|
|
160
166
|
}
|
|
161
|
-
return Promise.all(value.map(async (arrayVal) =>
|
|
167
|
+
return Promise.all(value.map(async (arrayVal) => {
|
|
168
|
+
return this.formatValue(field.itemsField, arrayVal);
|
|
169
|
+
}));
|
|
162
170
|
}
|
|
163
171
|
}
|
|
164
172
|
exports.ContentPropertyValueFormatter = ContentPropertyValueFormatter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyValueFormatter.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/PropertyValueFormatter.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 Content\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { KindOfQuantityInfo, PropertyInfo } from \"../EC\";\r\nimport { KoqPropertyValueFormatter } from \"../KoqPropertyValueFormatter\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\nimport { Content } from \"./Content\";\r\nimport { Descriptor } from \"./Descriptor\";\r\nimport { ArrayPropertiesField, Field, PropertiesField, StructPropertiesField } from \"./Fields\";\r\nimport { Item } from \"./Item\";\r\nimport { ArrayTypeDescription, PrimitiveTypeDescription, PropertyValueFormat, StructTypeDescription, TypeDescription } from \"./TypeDescription\";\r\nimport { DisplayValue, DisplayValuesMap, NestedContentValue, Value, ValuesArray, ValuesMap } from \"./Value\";\r\n\r\n/** @internal */\r\nexport class ContentFormatter {\r\n constructor(\r\n private _propertyValueFormatter: { formatPropertyValue: (field: Field, value: Value, unitSystem?: UnitSystemKey) => Promise<DisplayValue> },\r\n private _unitSystem?: UnitSystemKey,\r\n ) {}\r\n\r\n public async formatContent(content: Content) {\r\n const formattedItems = await this.formatContentItems(content.contentSet, content.descriptor);\r\n return new Content(content.descriptor, formattedItems);\r\n }\r\n\r\n public async formatContentItems(items: Item[], descriptor: Descriptor) {\r\n return Promise.all(\r\n items.map(async (item) => {\r\n await this.formatValues(item.values, item.displayValues, descriptor.fields, item.mergedFieldNames);\r\n return item;\r\n }),\r\n );\r\n }\r\n\r\n private async formatValues(values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, fields: Field[], mergedFields: string[]) {\r\n for (const field of fields) {\r\n const value = values[field.name];\r\n\r\n // format display value of merged values\r\n if (mergedFields.includes(field.name)) {\r\n displayValues[field.name] = \"@Presentation:label.varies@\";\r\n continue;\r\n }\r\n\r\n // do not add undefined value to display values\r\n if (value === undefined) {\r\n continue;\r\n }\r\n\r\n // format display values of nested content field\r\n if (field.isNestedContentField()) {\r\n assert(Value.isNestedContent(value));\r\n await this.formatNestedContentDisplayValues(value, field.nestedFields);\r\n continue;\r\n }\r\n\r\n // format property items\r\n if (field.isPropertiesField()) {\r\n displayValues[field.name] = await this.formatPropertyValue(value, field);\r\n continue;\r\n }\r\n\r\n displayValues[field.name] = await this._propertyValueFormatter.formatPropertyValue(field, value, this._unitSystem);\r\n }\r\n }\r\n\r\n private async formatNestedContentDisplayValues(nestedValues: NestedContentValue[], fields: Field[]) {\r\n for (const nestedValue of nestedValues) {\r\n await this.formatValues(nestedValue.values, nestedValue.displayValues, fields, nestedValue.mergedFieldNames);\r\n }\r\n }\r\n\r\n private async formatPropertyValue(value: Value, field: PropertiesField): Promise<DisplayValue> {\r\n if (field.isArrayPropertiesField()) {\r\n assert(Value.isArray(value));\r\n return this.formatArrayItems(value, field);\r\n }\r\n if (field.isStructPropertiesField()) {\r\n assert(Value.isMap(value));\r\n return this.formatStructMembers(value, field);\r\n }\r\n return this._propertyValueFormatter.formatPropertyValue(field, value, this._unitSystem);\r\n }\r\n\r\n private async formatArrayItems(itemValues: ValuesArray, field: ArrayPropertiesField) {\r\n return Promise.all(itemValues.map(async (value) => this.formatPropertyValue(value, field.itemsField)));\r\n }\r\n\r\n private async formatStructMembers(memberValues: ValuesMap, field: StructPropertiesField) {\r\n const displayValues: DisplayValuesMap = {};\r\n await Promise.all(\r\n field.memberFields.map(async (memberField) => {\r\n displayValues[memberField.name] = await this.formatPropertyValue(memberValues[memberField.name], memberField);\r\n }),\r\n );\r\n return displayValues;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ContentPropertyValueFormatter {\r\n constructor(private _koqValueFormatter: KoqPropertyValueFormatter) {}\r\n\r\n public async formatPropertyValue(field: Field, value: Value, unitSystem?: UnitSystemKey): Promise<DisplayValue> {\r\n const doubleFormatter = isFieldWithKoq(field)\r\n ? async (rawValue: number) => {\r\n const koq = field.properties[0].property.kindOfQuantity;\r\n const formattedValue = await this._koqValueFormatter.format(rawValue, { koqName: koq.name, unitSystem });\r\n if (formattedValue !== undefined) {\r\n return formattedValue;\r\n }\r\n return formatDouble(rawValue);\r\n }\r\n : async (rawValue: number) => formatDouble(rawValue);\r\n\r\n return this.formatValue(field.type, value, { doubleFormatter });\r\n }\r\n\r\n private async formatValue(type: TypeDescription, value: Value, ctx?: { doubleFormatter: (raw: number) => Promise<string> }): Promise<DisplayValue> {\r\n switch (type.valueFormat) {\r\n case PropertyValueFormat.Primitive:\r\n return this.formatPrimitiveValue(type, value, ctx);\r\n case PropertyValueFormat.Array:\r\n return this.formatArrayValue(type, value);\r\n case PropertyValueFormat.Struct:\r\n return this.formatStructValue(type, value);\r\n }\r\n }\r\n\r\n private async formatPrimitiveValue(type: PrimitiveTypeDescription, value: Value, ctx?: { doubleFormatter: (raw: number) => Promise<string> }) {\r\n if (value === undefined) {\r\n return \"\";\r\n }\r\n\r\n const formatDoubleValue = async (raw: number) => (ctx ? ctx.doubleFormatter(raw) : formatDouble(raw));\r\n\r\n if (type.typeName === \"point2d\" && isPoint2d(value)) {\r\n return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}`;\r\n }\r\n if (type.typeName === \"point3d\" && isPoint3d(value)) {\r\n return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}; Z: ${await formatDoubleValue(value.z)}`;\r\n }\r\n if (type.typeName === \"dateTime\") {\r\n assert(typeof value === \"string\");\r\n return value;\r\n }\r\n if (type.typeName === \"bool\" || type.typeName === \"boolean\") {\r\n assert(typeof value === \"boolean\");\r\n return value ? \"@Presentation:value.true@\" : \"@Presentation:value.false@\";\r\n }\r\n if (type.typeName === \"int\" || type.typeName === \"long\") {\r\n assert(isNumber(value));\r\n return value.toFixed(0);\r\n }\r\n if (type.typeName === \"double\") {\r\n assert(isNumber(value));\r\n return formatDoubleValue(value);\r\n }\r\n if (type.typeName === \"navigation\") {\r\n assert(Value.isNavigationValue(value));\r\n return value.label.displayValue;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\r\n return value.toString();\r\n }\r\n\r\n private async formatStructValue(type: StructTypeDescription, value: Value) {\r\n if (!Value.isMap(value)) {\r\n return {};\r\n }\r\n\r\n const formattedMember: DisplayValuesMap = {};\r\n for (const member of type.members) {\r\n formattedMember[member.name] = await this.formatValue(member.type, value[member.name]);\r\n }\r\n return formattedMember;\r\n }\r\n\r\n private async formatArrayValue(type: ArrayTypeDescription, value: Value) {\r\n if (!Value.isArray(value)) {\r\n return [];\r\n }\r\n\r\n return Promise.all(value.map(async (arrayVal) => this.formatValue(type.memberType, arrayVal)));\r\n }\r\n}\r\n\r\nfunction formatDouble(value: number) {\r\n return value.toFixed(2);\r\n}\r\n\r\ntype FieldWithKoq = PropertiesField & {\r\n properties: [\r\n {\r\n property: PropertyInfo & {\r\n kindOfQuantity: KindOfQuantityInfo;\r\n };\r\n },\r\n ];\r\n};\r\n\r\nfunction isFieldWithKoq(field: Field): field is FieldWithKoq {\r\n return field.isPropertiesField() && field.properties.length > 0 && field.properties[0].property.kindOfQuantity !== undefined;\r\n}\r\n\r\nfunction isPoint2d(obj: Value): obj is { x: number; y: number } {\r\n return obj !== undefined && isNumber((obj as any).x) && isNumber((obj as any).y);\r\n}\r\n\r\nfunction isPoint3d(obj: Value): obj is { x: number; y: number; z: number } {\r\n return isPoint2d(obj) && isNumber((obj as any).z);\r\n}\r\n\r\nfunction isNumber(obj: Value): obj is number {\r\n return !isNaN(Number(obj));\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PropertyValueFormatter.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/PropertyValueFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\nimport { KindOfQuantityInfo, PropertyInfo } from \"../EC\";\nimport { KoqPropertyValueFormatter } from \"../KoqPropertyValueFormatter\";\nimport { ValuesDictionary } from \"../Utils\";\nimport { Content } from \"./Content\";\nimport { Descriptor } from \"./Descriptor\";\nimport { ArrayPropertiesField, Field, PropertiesField, StructPropertiesField } from \"./Fields\";\nimport { Item } from \"./Item\";\nimport { DisplayValue, DisplayValuesMap, NestedContentValue, Value, ValuesArray, ValuesMap } from \"./Value\";\n\n/** @internal */\nexport class ContentFormatter {\n constructor(\n private _propertyValueFormatter: { formatPropertyValue: (field: Field, value: Value, unitSystem?: UnitSystemKey) => Promise<DisplayValue> },\n private _unitSystem?: UnitSystemKey,\n ) {}\n\n public async formatContent(content: Content) {\n const formattedItems = await this.formatContentItems(content.contentSet, content.descriptor);\n return new Content(content.descriptor, formattedItems);\n }\n\n public async formatContentItems(items: Item[], descriptor: Descriptor) {\n return Promise.all(\n items.map(async (item) => {\n await this.formatValues(item.values, item.displayValues, descriptor.fields, item.mergedFieldNames);\n return item;\n }),\n );\n }\n\n private async formatValues(values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, fields: Field[], mergedFields: string[]) {\n for (const field of fields) {\n const value = values[field.name];\n\n // format display value of merged values\n if (mergedFields.includes(field.name)) {\n displayValues[field.name] = \"@Presentation:label.varies@\";\n continue;\n }\n\n // do not add undefined value to display values\n if (value === undefined) {\n continue;\n }\n\n // format display values of nested content field\n if (field.isNestedContentField()) {\n assert(Value.isNestedContent(value));\n await this.formatNestedContentDisplayValues(value, field.nestedFields);\n continue;\n }\n\n // format property items\n if (field.isPropertiesField()) {\n displayValues[field.name] = await this.formatPropertyValue(value, field);\n continue;\n }\n\n displayValues[field.name] = await this._propertyValueFormatter.formatPropertyValue(field, value, this._unitSystem);\n }\n }\n\n private async formatNestedContentDisplayValues(nestedValues: NestedContentValue[], fields: Field[]) {\n for (const nestedValue of nestedValues) {\n await this.formatValues(nestedValue.values, nestedValue.displayValues, fields, nestedValue.mergedFieldNames);\n }\n }\n\n private async formatPropertyValue(value: Value, field: PropertiesField): Promise<DisplayValue> {\n if (field.isArrayPropertiesField()) {\n assert(Value.isArray(value));\n return this.formatArrayItems(value, field);\n }\n if (field.isStructPropertiesField()) {\n assert(Value.isMap(value));\n return this.formatStructMembers(value, field);\n }\n return this._propertyValueFormatter.formatPropertyValue(field, value, this._unitSystem);\n }\n\n private async formatArrayItems(itemValues: ValuesArray, field: ArrayPropertiesField) {\n return Promise.all(itemValues.map(async (value) => this.formatPropertyValue(value, field.itemsField)));\n }\n\n private async formatStructMembers(memberValues: ValuesMap, field: StructPropertiesField) {\n const displayValues: DisplayValuesMap = {};\n await Promise.all(\n field.memberFields.map(async (memberField) => {\n displayValues[memberField.name] = await this.formatPropertyValue(memberValues[memberField.name], memberField);\n }),\n );\n return displayValues;\n }\n}\n\n/** @internal */\nexport class ContentPropertyValueFormatter {\n constructor(private _koqValueFormatter: KoqPropertyValueFormatter) {}\n\n public async formatPropertyValue(field: Field, value: Value, unitSystem?: UnitSystemKey): Promise<DisplayValue> {\n const doubleFormatter = isFieldWithKoq(field)\n ? async (rawValue: number) => {\n const koq = field.properties[0].property.kindOfQuantity;\n const formattedValue = await this._koqValueFormatter.format(rawValue, { koqName: koq.name, unitSystem });\n if (formattedValue !== undefined) {\n return formattedValue;\n }\n return formatDouble(rawValue);\n }\n : async (rawValue: number) => formatDouble(rawValue);\n\n return this.formatValue(field, value, { doubleFormatter });\n }\n\n private async formatValue(field: Field, value: Value, ctx?: { doubleFormatter: (raw: number) => Promise<string> }): Promise<DisplayValue> {\n if (field.isPropertiesField()) {\n if (field.isArrayPropertiesField()) {\n return this.formatArrayValue(field, value);\n }\n\n if (field.isStructPropertiesField()) {\n return this.formatStructValue(field, value);\n }\n }\n\n return this.formatPrimitiveValue(field, value, ctx);\n }\n\n private async formatPrimitiveValue(field: Field, value: Value, ctx?: { doubleFormatter: (raw: number) => Promise<string> }) {\n if (value === undefined) {\n return \"\";\n }\n\n const formatDoubleValue = async (raw: number) => (ctx ? ctx.doubleFormatter(raw) : formatDouble(raw));\n\n if (field.type.typeName === \"point2d\" && isPoint2d(value)) {\n return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}`;\n }\n if (field.type.typeName === \"point3d\" && isPoint3d(value)) {\n return `X: ${await formatDoubleValue(value.x)}; Y: ${await formatDoubleValue(value.y)}; Z: ${await formatDoubleValue(value.z)}`;\n }\n if (field.type.typeName === \"dateTime\") {\n assert(typeof value === \"string\");\n return value;\n }\n if (field.type.typeName === \"bool\" || field.type.typeName === \"boolean\") {\n assert(typeof value === \"boolean\");\n return value ? \"@Presentation:value.true@\" : \"@Presentation:value.false@\";\n }\n if (field.type.typeName === \"int\" || field.type.typeName === \"long\") {\n assert(isNumber(value));\n return value.toFixed(0);\n }\n if (field.type.typeName === \"double\") {\n assert(isNumber(value));\n return formatDoubleValue(value);\n }\n if (field.type.typeName === \"navigation\") {\n assert(Value.isNavigationValue(value));\n return value.label.displayValue;\n }\n\n if (field.type.typeName === \"enum\" && field.isPropertiesField()) {\n const defaultValue = !field.properties[0].property.enumerationInfo?.isStrict\n ? value.toString() // eslint-disable-line @typescript-eslint/no-base-to-string\n : undefined;\n\n return field.properties[0].property.enumerationInfo?.choices.find(({ value: enumValue }) => enumValue === value)?.label ?? defaultValue;\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return value.toString();\n }\n\n private async formatStructValue(field: StructPropertiesField, value: Value) {\n if (!Value.isMap(value)) {\n return {};\n }\n\n const formattedMember: DisplayValuesMap = {};\n for (const member of field.memberFields) {\n formattedMember[member.name] = await this.formatValue(member, value[member.name]);\n }\n return formattedMember;\n }\n\n private async formatArrayValue(field: ArrayPropertiesField, value: Value) {\n if (!Value.isArray(value)) {\n return [];\n }\n\n return Promise.all(\n value.map(async (arrayVal) => {\n return this.formatValue(field.itemsField, arrayVal);\n }),\n );\n }\n}\n\nfunction formatDouble(value: number) {\n return value.toFixed(2);\n}\n\ntype FieldWithKoq = PropertiesField & {\n properties: [\n {\n property: PropertyInfo & {\n kindOfQuantity: KindOfQuantityInfo;\n };\n },\n ];\n};\n\nfunction isFieldWithKoq(field: Field): field is FieldWithKoq {\n return field.isPropertiesField() && field.properties.length > 0 && field.properties[0].property.kindOfQuantity !== undefined;\n}\n\nfunction isPoint2d(obj: Value): obj is { x: number; y: number } {\n return obj !== undefined && isNumber((obj as any).x) && isNumber((obj as any).y);\n}\n\nfunction isPoint3d(obj: Value): obj is { x: number; y: number; z: number } {\n return isPoint2d(obj) && isNumber((obj as any).z);\n}\n\nfunction isNumber(obj: Value): obj is number {\n return !isNaN(Number(obj));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Renderer.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Renderer.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\n/**\n * Describes property renderer used for a content [[Field]].\n * @public\n */\nexport interface RendererDescription {\n /** Renderer name. */\n name: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeDescription.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/TypeDescription.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,sBAAsB;IACtB,8CAAuB,CAAA;IACvB,kBAAkB;IAClB,sCAAe,CAAA;IACf,mBAAmB;IACnB,wCAAiB,CAAA;AACnB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"TypeDescription.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/TypeDescription.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,sBAAsB;IACtB,8CAAuB,CAAA;IACvB,kBAAkB;IAClB,sCAAe,CAAA;IACf,mBAAmB;IACnB,wCAAiB,CAAA;AACnB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\n/**\n * Format of the property value.\n * @public\n */\nexport enum PropertyValueFormat {\n /** Primitive value */\n Primitive = \"Primitive\",\n /** Array value */\n Array = \"Array\",\n /** Struct value */\n Struct = \"Struct\",\n}\n\n/**\n * Data structure for base content field type description. Not\n * meant to be used directly, see `TypeDescription`.\n *\n * @public\n */\nexport interface BaseTypeDescription {\n /** Value format */\n valueFormat: PropertyValueFormat;\n /** Type name */\n typeName: string;\n}\n\n/**\n * Type description for primitive properties.\n * @public\n */\nexport interface PrimitiveTypeDescription extends BaseTypeDescription {\n /** Primitive format */\n valueFormat: PropertyValueFormat.Primitive;\n}\n\n/**\n * Type description for array properties.\n * @public\n */\nexport interface ArrayTypeDescription extends BaseTypeDescription {\n /** Array format */\n valueFormat: PropertyValueFormat.Array;\n /** Type of array items */\n memberType: TypeDescription;\n}\n\n/**\n * A data structure that describes a struct member.\n * @public\n */\nexport interface StructFieldMemberDescription {\n /** Unique name of a struct member */\n name: string;\n /** Label of the struct member */\n label: string;\n /** Type of the struct member */\n type: TypeDescription;\n}\n\n/**\n * Type description for struct properties.\n * @public\n */\nexport interface StructTypeDescription extends BaseTypeDescription {\n /** Struct format */\n valueFormat: PropertyValueFormat.Struct;\n /** Type descriptions of struct members */\n members: StructFieldMemberDescription[];\n}\n\n/**\n * One of content field type descriptions.\n * @public\n */\nexport type TypeDescription = PrimitiveTypeDescription | ArrayTypeDescription | StructTypeDescription;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.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 Content\r\n */\r\n\r\nimport { InstanceId, InstanceKey } from \"../EC\";\r\nimport { LabelDefinition } from \"../LabelDefinition\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\n\r\n/**\r\n * Raw value type\r\n * @public\r\n */\r\nexport type Value = string | number | boolean | undefined | ValuesMap | ValuesArray | NavigationPropertyValue | NestedContentValue[];\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace Value {\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: Value): value is string | number | boolean | undefined {\r\n return isPrimitiveValue(value);\r\n }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: Value): value is ValuesArray {\r\n return isArrayValue(value);\r\n }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: Value): value is ValuesMap {\r\n return isMapValue(value);\r\n }\r\n\r\n /** Is the value a nested content value */\r\n export function isNestedContent(value: Value): value is NestedContentValue[] {\r\n return isNestedContentValue(value);\r\n }\r\n\r\n /** Is the value a navigation value */\r\n export function isNavigationValue(value: Value): value is NavigationPropertyValue {\r\n return (\r\n value !== undefined &&\r\n (value as NavigationPropertyValue).id !== undefined &&\r\n (value as NavigationPropertyValue).className !== undefined &&\r\n (value as NavigationPropertyValue).label !== undefined\r\n );\r\n }\r\n\r\n /**\r\n * Serialize [[Value]] to JSON\r\n * @deprecated in 3.x. Use [[Value]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: ValueJSON): Value {\r\n if (json === null) {\r\n return undefined;\r\n }\r\n if (isNestedContentValue(json)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return json.map(NestedContentValue.fromJSON);\r\n }\r\n if (isArrayValue(json)) {\r\n return valuesArrayFromJSON(json);\r\n }\r\n if (isMapValue(json)) {\r\n return valuesMapFromJSON(json);\r\n }\r\n return json;\r\n }\r\n\r\n /**\r\n * Deserialize [[Value]] from JSON\r\n * @deprecated in 3.x. Use [[Value]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(value: Value): ValueJSON {\r\n if (undefined === value) {\r\n return null;\r\n }\r\n if (isNestedContentValue(value)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return value.map(NestedContentValue.toJSON);\r\n }\r\n if (isArrayValue(value)) {\r\n return valuesArrayToJSON(value);\r\n }\r\n if (isMapValue(value)) {\r\n return valuesMapToJSON(value);\r\n }\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of raw values\r\n * @public\r\n */\r\nexport interface ValuesMap extends ValuesDictionary<Value> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * An array of raw values\r\n * @public\r\n */\r\nexport interface ValuesArray extends Array<Value> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * Display value type.\r\n * @public\r\n */\r\nexport type DisplayValue = string | undefined | DisplayValuesMap | DisplayValuesArray;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace DisplayValue {\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: DisplayValue): value is string | undefined {\r\n return isPrimitiveValue(value);\r\n }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: DisplayValue): value is DisplayValuesArray {\r\n return isArrayValue(value);\r\n }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: DisplayValue): value is DisplayValuesMap {\r\n return isMapValue(value);\r\n }\r\n\r\n /**\r\n * Serialize [[DisplayValue]] to JSON\r\n * @deprecated in 3.x. Use [[DisplayValue]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: DisplayValueJSON): DisplayValue {\r\n if (json === null) {\r\n return undefined;\r\n }\r\n if (isArrayValue(json)) {\r\n return displayValuesArrayFromJSON(json);\r\n }\r\n if (isMapValue(json)) {\r\n return displayValuesMapFromJSON(json);\r\n }\r\n return json;\r\n }\r\n\r\n /**\r\n * Deserialize [[DisplayValue]] from JSON\r\n * @deprecated in 3.x. Use [[DisplayValue]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(value: DisplayValue): DisplayValueJSON {\r\n if (undefined === value) {\r\n return null;\r\n }\r\n if (isArrayValue(value)) {\r\n return displayValuesArrayToJSON(value);\r\n }\r\n if (isMapValue(value)) {\r\n return displayValuesMapToJSON(value);\r\n }\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesMap extends ValuesDictionary<DisplayValue> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * An array of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesArray extends Array<DisplayValue> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * Data structure that describes nested content value.\r\n * @public\r\n */\r\nexport interface NestedContentValue {\r\n /** Keys of instances whose content is contained in this value */\r\n primaryKeys: InstanceKey[];\r\n /** Content values map */\r\n values: ValuesDictionary<Value>;\r\n /** Content display values map */\r\n displayValues: ValuesDictionary<DisplayValue>;\r\n /** Names of fields whose values are merged */\r\n mergedFieldNames: string[];\r\n /** Label of the ECInstance that this `NestedContentValue` is based on. */\r\n labelDefinition?: LabelDefinition;\r\n}\r\n\r\n/**\r\n * Data structure that describes value of the navigation property.\r\n * @public\r\n */\r\nexport interface NavigationPropertyValue {\r\n /** Label of target instance. */\r\n label: LabelDefinition;\r\n /** Full class name of target instance in format `SchemaName:ClassName` */\r\n className: string;\r\n /** Id of target instance. */\r\n id: InstanceId;\r\n}\r\n\r\n/** @public */\r\nexport namespace NestedContentValue {\r\n /**\r\n * Serialize [[NestedContentValue]] to JSON\r\n * @deprecated in 3.x. Use [[NestedContentValue]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(value: NestedContentValue): NestedContentValueJSON {\r\n return {\r\n ...value,\r\n values: valuesMapToJSON(value.values),\r\n displayValues: displayValuesMapToJSON(value.displayValues),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[NestedContentValue]] from JSON\r\n * @deprecated in 3.x. Use [[NestedContentValue]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: NestedContentValueJSON): NestedContentValue {\r\n return {\r\n ...json,\r\n values: valuesMapFromJSON(json.values),\r\n displayValues: displayValuesMapFromJSON(json.displayValues),\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * JSON representation of [[Value]]\r\n * @public\r\n * @deprecated in 3.x. Use [[Value]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport type ValueJSON = string | number | boolean | null | ValuesMapJSON | ValuesArrayJSON | NavigationPropertyValue | NestedContentValueJSON[];\r\n/**\r\n * JSON representation of [[ValuesMap]]\r\n * @public\r\n * @deprecated in 3.x. Use [[ValuesMap]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * JSON representation of [[ValuesArray]]\r\n * @public\r\n * @deprecated in 3.x. Use [[ValuesArray]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * JSON representation of [[DisplayValue]]\r\n * @public\r\n * @deprecated in 3.x. Use [[DisplayValue]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport type DisplayValueJSON = string | null | DisplayValuesMapJSON | DisplayValuesArrayJSON;\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesMap]]\r\n * @public\r\n * @deprecated in 3.x. Use [[DisplayValuesMap]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesArray]]\r\n * @public\r\n * @deprecated in 3.x. Use [[DisplayValuesArray]]\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\r\n\r\n/**\r\n * JSON representation of [[NestedContentValue]]\r\n * @public\r\n * @deprecated in 3.x. Use [[NestedContentValue]]\r\n */\r\nexport interface NestedContentValueJSON {\r\n primaryKeys: InstanceKey[];\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n values: ValuesDictionary<ValueJSON>;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValues: ValuesDictionary<DisplayValueJSON>;\r\n mergedFieldNames: string[];\r\n}\r\n\r\n/**\r\n * A group of raw values and their common display value.\r\n * @public\r\n */\r\nexport interface DisplayValueGroup {\r\n /** Common display value for all grouped raw values */\r\n displayValue: DisplayValue;\r\n /** A list of grouped raw values */\r\n groupedRawValues: Value[];\r\n}\r\n\r\n/**\r\n * JSON representation of [[DisplayValueGroup]].\r\n * @public\r\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\r\n */\r\nexport interface DisplayValueGroupJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValue: DisplayValueJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n groupedRawValues: ValueJSON[];\r\n}\r\n\r\n/** @public */\r\nexport namespace DisplayValueGroup {\r\n /**\r\n * Serialize [[DisplayValueGroup]] to JSON\r\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n groupedRawValues: group.groupedRawValues.map(Value.toJSON),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[DisplayValueGroup]] from JSON\r\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction isNestedContentValue(v: Value | ValueJSON): v is NestedContentValue[] | NestedContentValueJSON[] {\r\n return (\r\n v !== undefined &&\r\n Array.isArray(v) &&\r\n (v.length === 0 ||\r\n (!!v[0] &&\r\n (v[0] as NestedContentValue).primaryKeys !== undefined &&\r\n (v[0] as NestedContentValue).values !== undefined &&\r\n (v[0] as NestedContentValue).displayValues !== undefined &&\r\n (v[0] as NestedContentValue).mergedFieldNames !== undefined))\r\n );\r\n}\r\n\r\nfunction isArrayValue(\r\n v: Value | ValueJSON | DisplayValue | DisplayValueJSON, // eslint-disable-line @typescript-eslint/no-deprecated\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n): v is ValuesArray | ValuesArrayJSON | DisplayValuesArray | DisplayValuesArrayJSON {\r\n // note: we don't guarantee by 100% that v is ValuesArray | DisplayValuesArray, but merely make compiler happy.\r\n // we have other means to determine the type of value.\r\n return v !== undefined && Array.isArray(v);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction isMapValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesMap | ValuesMapJSON | DisplayValuesMap | DisplayValuesMapJSON {\r\n return v !== undefined && typeof v === \"object\" && !Array.isArray(v);\r\n}\r\nfunction isPrimitiveValue(v: Value | DisplayValue): v is string | number | boolean | undefined {\r\n return !isArrayValue(v) && !isMapValue(v);\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return json.map(Value.fromJSON);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return values.map(Value.toJSON);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction valuesMapFromJSON(json: ValuesMapJSON): ValuesMap {\r\n const map: ValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const map: ValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n map[key] = Value.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return values.map(DisplayValue.toJSON);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction displayValuesMapFromJSON(json: DisplayValuesMapJSON): DisplayValuesMap {\r\n const map: DisplayValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n const map: DisplayValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n map[key] = DisplayValue.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { InstanceId, InstanceKey } from \"../EC\";\nimport { LabelDefinition } from \"../LabelDefinition\";\nimport { ValuesDictionary } from \"../Utils\";\n\n/**\n * Raw value type\n * @public\n */\nexport type Value = string | number | boolean | undefined | ValuesMap | ValuesArray | NavigationPropertyValue | NestedContentValue[];\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace Value {\n /** Is the value a primitive */\n export function isPrimitive(value: Value): value is string | number | boolean | undefined {\n return isPrimitiveValue(value);\n }\n\n /** Is the value an array */\n export function isArray(value: Value): value is ValuesArray {\n return isArrayValue(value);\n }\n\n /** Is the value a map / struct */\n export function isMap(value: Value): value is ValuesMap {\n return isMapValue(value);\n }\n\n /** Is the value a nested content value */\n export function isNestedContent(value: Value): value is NestedContentValue[] {\n return isNestedContentValue(value);\n }\n\n /** Is the value a navigation value */\n export function isNavigationValue(value: Value): value is NavigationPropertyValue {\n return (\n value !== undefined &&\n (value as NavigationPropertyValue).id !== undefined &&\n (value as NavigationPropertyValue).className !== undefined &&\n (value as NavigationPropertyValue).label !== undefined\n );\n }\n\n /**\n * Serialize [[Value]] to JSON\n * @deprecated in 3.x. Use [[Value]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: ValueJSON): Value {\n if (json === null) {\n return undefined;\n }\n if (isNestedContentValue(json)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return json.map(NestedContentValue.fromJSON);\n }\n if (isArrayValue(json)) {\n return valuesArrayFromJSON(json);\n }\n if (isMapValue(json)) {\n return valuesMapFromJSON(json);\n }\n return json;\n }\n\n /**\n * Deserialize [[Value]] from JSON\n * @deprecated in 3.x. Use [[Value]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(value: Value): ValueJSON {\n if (undefined === value) {\n return null;\n }\n if (isNestedContentValue(value)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return value.map(NestedContentValue.toJSON);\n }\n if (isArrayValue(value)) {\n return valuesArrayToJSON(value);\n }\n if (isMapValue(value)) {\n return valuesMapToJSON(value);\n }\n return value;\n }\n}\n\n/**\n * A map of raw values\n * @public\n */\nexport interface ValuesMap extends ValuesDictionary<Value> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * An array of raw values\n * @public\n */\nexport interface ValuesArray extends Array<Value> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * Display value type.\n * @public\n */\nexport type DisplayValue = string | undefined | DisplayValuesMap | DisplayValuesArray;\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace DisplayValue {\n /** Is the value a primitive */\n export function isPrimitive(value: DisplayValue): value is string | undefined {\n return isPrimitiveValue(value);\n }\n\n /** Is the value an array */\n export function isArray(value: DisplayValue): value is DisplayValuesArray {\n return isArrayValue(value);\n }\n\n /** Is the value a map / struct */\n export function isMap(value: DisplayValue): value is DisplayValuesMap {\n return isMapValue(value);\n }\n\n /**\n * Serialize [[DisplayValue]] to JSON\n * @deprecated in 3.x. Use [[DisplayValue]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: DisplayValueJSON): DisplayValue {\n if (json === null) {\n return undefined;\n }\n if (isArrayValue(json)) {\n return displayValuesArrayFromJSON(json);\n }\n if (isMapValue(json)) {\n return displayValuesMapFromJSON(json);\n }\n return json;\n }\n\n /**\n * Deserialize [[DisplayValue]] from JSON\n * @deprecated in 3.x. Use [[DisplayValue]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(value: DisplayValue): DisplayValueJSON {\n if (undefined === value) {\n return null;\n }\n if (isArrayValue(value)) {\n return displayValuesArrayToJSON(value);\n }\n if (isMapValue(value)) {\n return displayValuesMapToJSON(value);\n }\n return value;\n }\n}\n\n/**\n * A map of display values\n * @public\n */\nexport interface DisplayValuesMap extends ValuesDictionary<DisplayValue> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * An array of display values\n * @public\n */\nexport interface DisplayValuesArray extends Array<DisplayValue> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * Data structure that describes nested content value.\n * @public\n */\nexport interface NestedContentValue {\n /** Keys of instances whose content is contained in this value */\n primaryKeys: InstanceKey[];\n /** Content values map */\n values: ValuesDictionary<Value>;\n /** Content display values map */\n displayValues: ValuesDictionary<DisplayValue>;\n /** Names of fields whose values are merged */\n mergedFieldNames: string[];\n /** Label of the ECInstance that this `NestedContentValue` is based on. */\n labelDefinition?: LabelDefinition;\n}\n\n/**\n * Data structure that describes value of the navigation property.\n * @public\n */\nexport interface NavigationPropertyValue {\n /** Label of target instance. */\n label: LabelDefinition;\n /** Full class name of target instance in format `SchemaName:ClassName` */\n className: string;\n /** Id of target instance. */\n id: InstanceId;\n}\n\n/** @public */\nexport namespace NestedContentValue {\n /**\n * Serialize [[NestedContentValue]] to JSON\n * @deprecated in 3.x. Use [[NestedContentValue]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(value: NestedContentValue): NestedContentValueJSON {\n return {\n ...value,\n values: valuesMapToJSON(value.values),\n displayValues: displayValuesMapToJSON(value.displayValues),\n };\n }\n\n /**\n * Deserialize [[NestedContentValue]] from JSON\n * @deprecated in 3.x. Use [[NestedContentValue]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: NestedContentValueJSON): NestedContentValue {\n return {\n ...json,\n values: valuesMapFromJSON(json.values),\n displayValues: displayValuesMapFromJSON(json.displayValues),\n };\n }\n}\n\n/**\n * JSON representation of [[Value]]\n * @public\n * @deprecated in 3.x. Use [[Value]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type ValueJSON = string | number | boolean | null | ValuesMapJSON | ValuesArrayJSON | NavigationPropertyValue | NestedContentValueJSON[];\n/**\n * JSON representation of [[ValuesMap]]\n * @public\n * @deprecated in 3.x. Use [[ValuesMap]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * JSON representation of [[ValuesArray]]\n * @public\n * @deprecated in 3.x. Use [[ValuesArray]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * JSON representation of [[DisplayValue]]\n * @public\n * @deprecated in 3.x. Use [[DisplayValue]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type DisplayValueJSON = string | null | DisplayValuesMapJSON | DisplayValuesArrayJSON;\n\n/**\n * JSON representation of [[DisplayValuesMap]]\n * @public\n * @deprecated in 3.x. Use [[DisplayValuesMap]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * JSON representation of [[DisplayValuesArray]]\n * @public\n * @deprecated in 3.x. Use [[DisplayValuesArray]]\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/**\n * JSON representation of [[NestedContentValue]]\n * @public\n * @deprecated in 3.x. Use [[NestedContentValue]]\n */\nexport interface NestedContentValueJSON {\n primaryKeys: InstanceKey[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n values: ValuesDictionary<ValueJSON>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n displayValues: ValuesDictionary<DisplayValueJSON>;\n mergedFieldNames: string[];\n}\n\n/**\n * A group of raw values and their common display value.\n * @public\n */\nexport interface DisplayValueGroup {\n /** Common display value for all grouped raw values */\n displayValue: DisplayValue;\n /** A list of grouped raw values */\n groupedRawValues: Value[];\n}\n\n/**\n * JSON representation of [[DisplayValueGroup]].\n * @public\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\n */\nexport interface DisplayValueGroupJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n displayValue: DisplayValueJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n groupedRawValues: ValueJSON[];\n}\n\n/** @public */\nexport namespace DisplayValueGroup {\n /**\n * Serialize [[DisplayValueGroup]] to JSON\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\n return {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n displayValue: DisplayValue.toJSON(group.displayValue),\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n groupedRawValues: group.groupedRawValues.map(Value.toJSON),\n };\n }\n\n /**\n * Deserialize [[DisplayValueGroup]] from JSON\n * @deprecated in 3.x. Use [[DisplayValueGroup]]\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\n return {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n displayValue: DisplayValue.fromJSON(json.displayValue),\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction isNestedContentValue(v: Value | ValueJSON): v is NestedContentValue[] | NestedContentValueJSON[] {\n return (\n v !== undefined &&\n Array.isArray(v) &&\n (v.length === 0 ||\n (!!v[0] &&\n (v[0] as NestedContentValue).primaryKeys !== undefined &&\n (v[0] as NestedContentValue).values !== undefined &&\n (v[0] as NestedContentValue).displayValues !== undefined &&\n (v[0] as NestedContentValue).mergedFieldNames !== undefined))\n );\n}\n\nfunction isArrayValue(\n v: Value | ValueJSON | DisplayValue | DisplayValueJSON, // eslint-disable-line @typescript-eslint/no-deprecated\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n): v is ValuesArray | ValuesArrayJSON | DisplayValuesArray | DisplayValuesArrayJSON {\n // note: we don't guarantee by 100% that v is ValuesArray | DisplayValuesArray, but merely make compiler happy.\n // we have other means to determine the type of value.\n return v !== undefined && Array.isArray(v);\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction isMapValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesMap | ValuesMapJSON | DisplayValuesMap | DisplayValuesMapJSON {\n return v !== undefined && typeof v === \"object\" && !Array.isArray(v);\n}\nfunction isPrimitiveValue(v: Value | DisplayValue): v is string | number | boolean | undefined {\n return !isArrayValue(v) && !isMapValue(v);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return json.map(Value.fromJSON);\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return values.map(Value.toJSON);\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction valuesMapFromJSON(json: ValuesMapJSON): ValuesMap {\n const map: ValuesMap = {};\n for (const key in json) {\n /* istanbul ignore else */\n if (json.hasOwnProperty(key)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n map[key] = Value.fromJSON(json[key]);\n }\n }\n return map;\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const map: ValuesMapJSON = {};\n for (const key in values) {\n /* istanbul ignore else */\n if (values.hasOwnProperty(key)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n map[key] = Value.toJSON(values[key]);\n }\n }\n return map;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return json.map(DisplayValue.fromJSON);\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return values.map(DisplayValue.toJSON);\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction displayValuesMapFromJSON(json: DisplayValuesMapJSON): DisplayValuesMap {\n const map: DisplayValuesMap = {};\n for (const key in json) {\n /* istanbul ignore else */\n if (json.hasOwnProperty(key)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n map[key] = DisplayValue.fromJSON(json[key]);\n }\n }\n return map;\n}\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const map: DisplayValuesMapJSON = {};\n for (const key in values) {\n /* istanbul ignore else */\n if (values.hasOwnProperty(key)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n map[key] = DisplayValue.toJSON(values[key]);\n }\n }\n return map;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchyLevel.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/HierarchyLevel.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAAwC;AA2BxC;;;GAGG;AACH,IAAiB,cAAc,CAc9B;AAdD,WAAiB,cAAc;IAC7B;;;;OAIG;IACH,4DAA4D;IAC5D,SAAgB,QAAQ,CAAC,IAAwB;QAC/C,OAAO;YACL,GAAG,IAAI;YACP,4DAA4D;YAC5D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAI,CAAC,QAAQ,CAAC;SACrC,CAAC;IACJ,CAAC;IANe,uBAAQ,WAMvB,CAAA;AACH,CAAC,EAdgB,cAAc,8BAAd,cAAc,QAc9B","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"HierarchyLevel.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/HierarchyLevel.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAAwC;AA2BxC;;;GAGG;AACH,IAAiB,cAAc,CAc9B;AAdD,WAAiB,cAAc;IAC7B;;;;OAIG;IACH,4DAA4D;IAC5D,SAAgB,QAAQ,CAAC,IAAwB;QAC/C,OAAO;YACL,GAAG,IAAI;YACP,4DAA4D;YAC5D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAI,CAAC,QAAQ,CAAC;SACrC,CAAC;IACJ,CAAC;IANe,uBAAQ,WAMvB,CAAA;AACH,CAAC,EAdgB,cAAc,8BAAd,cAAc,QAc9B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hierarchies\n */\n\nimport { Node, NodeJSON } from \"./Node\";\n\n/**\n * Defines a hierarchy level that consists of an array of nodes and possibly other information.\n * @public\n */\nexport interface HierarchyLevel {\n /** A list of nodes in a hierarchy level. */\n nodes: Node[];\n /**\n * Identifies whether the hierarchy level supports filtering. If not, requesting either a hierarchy level descriptor or\n * a hierarchy level with [[HierarchyRequestOptions.instanceFilter]] will throw an error with [[PresentationStatus.InvalidArgument]] status.\n */\n supportsFiltering?: boolean;\n}\n\n/**\n * JSON representation of [[HierarchyLevel]].\n * @beta\n * @deprecated in 3.x. Use [[HierarchyLevel]]\n */\nexport interface HierarchyLevelJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n nodes: NodeJSON[];\n supportsFiltering?: boolean;\n}\n\n/**\n * Contains helper functions for working with objects of [[HierarchyLevel]] type.\n * @public\n */\nexport namespace HierarchyLevel {\n /**\n * Deserialize [[HierarchyLevel]] from JSON\n * @beta\n * @deprecated in 3.x. Use [[HierarchyLevel]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: HierarchyLevelJSON): HierarchyLevel {\n return {\n ...json,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n nodes: json.nodes.map(Node.fromJSON),\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/Key.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 Hierarchies\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { InstanceKey } from \"../EC\";\r\n\r\n/**\r\n * Standard node types\r\n * @public\r\n */\r\nexport enum StandardNodeTypes {\r\n ECInstancesNode = \"ECInstancesNode\",\r\n ECClassGroupingNode = \"ECClassGroupingNode\",\r\n ECPropertyGroupingNode = \"ECPropertyGroupingNode\",\r\n DisplayLabelGroupingNode = \"DisplayLabelGroupingNode\",\r\n}\r\n\r\n/**\r\n * One of the node key types\r\n * @public\r\n */\r\nexport type NodeKey = BaseNodeKey | ECInstancesNodeKey | ECClassGroupingNodeKey | ECPropertyGroupingNodeKey | LabelGroupingNodeKey;\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace NodeKey {\r\n /**\r\n * Serialize given [[NodeKey]] to JSON\r\n * @deprecated in 3.x. Use [[NodeKey]].\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(key: NodeKey): NodeKeyJSON {\r\n return { ...key };\r\n }\r\n\r\n /**\r\n * Deserialize node key from JSON\r\n * @deprecated in 3.x. Use [[NodeKey]].\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: NodeKeyJSON): NodeKey {\r\n return { version: 1, ...json };\r\n }\r\n\r\n /** Checks if the supplied key is an [[ECInstancesNodeKey]] */\r\n export function isInstancesNodeKey(key: NodeKey): key is ECInstancesNodeKey;\r\n /** Checks if the supplied key is an [[ECInstancesNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\r\n export function isInstancesNodeKey(key: NodeKeyJSON): key is ECInstancesNodeKeyJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function isInstancesNodeKey(key: NodeKey | NodeKeyJSON) {\r\n return key.type === StandardNodeTypes.ECInstancesNode;\r\n }\r\n\r\n /** Checks if the supplied key is an [[ECClassGroupingNodeKey]] */\r\n export function isClassGroupingNodeKey(key: NodeKey): key is ECClassGroupingNodeKey;\r\n /** Checks if the supplied key is an [[ECClassGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\r\n export function isClassGroupingNodeKey(key: NodeKeyJSON): key is ECClassGroupingNodeKeyJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function isClassGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\r\n return key.type === StandardNodeTypes.ECClassGroupingNode;\r\n }\r\n\r\n /** Checks if the supplied key is an [[ECPropertyGroupingNodeKey]] */\r\n export function isPropertyGroupingNodeKey(key: NodeKey): key is ECPropertyGroupingNodeKey;\r\n /** Checks if the supplied key is an [[ECPropertyGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\r\n export function isPropertyGroupingNodeKey(key: NodeKeyJSON): key is ECPropertyGroupingNodeKeyJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function isPropertyGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\r\n return key.type === StandardNodeTypes.ECPropertyGroupingNode;\r\n }\r\n\r\n /** Checks if the supplied key is a [[LabelGroupingNodeKey]] */\r\n export function isLabelGroupingNodeKey(key: NodeKey): key is LabelGroupingNodeKey;\r\n /** Checks if the supplied key is a [[LabelGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\r\n export function isLabelGroupingNodeKey(key: NodeKeyJSON): key is LabelGroupingNodeKeyJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function isLabelGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\r\n return key.type === StandardNodeTypes.DisplayLabelGroupingNode;\r\n }\r\n\r\n /** Checks if the supplied key is a grouping node key */\r\n export function isGroupingNodeKey(key: NodeKey): key is GroupingNodeKey;\r\n /** Checks if the supplied key is a grouping node key. @deprecated in 3.x. Use an override for [[NodeKey]]. */\r\n export function isGroupingNodeKey(key: NodeKeyJSON): key is GroupingNodeKeyJSON;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function isGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\r\n return isClassGroupingNodeKey(key) || isPropertyGroupingNodeKey(key) || isLabelGroupingNodeKey(key); // eslint-disable-line @typescript-eslint/no-deprecated\r\n }\r\n\r\n /**\r\n * Checks if two given node keys are equal, taking their versions into account.\r\n *\r\n * When comparing two keys of the same version, the algorithm uses [[NodeKey.pathFromRoot]] array\r\n * which is the most accurate way of checking equality. However, when version are different,\r\n * [[NodeKey.pathFromRoot]] array may contain different strings even though keys represent the same node.\r\n * In that case equality is checked using other key attributes, depending on the type of the node (type,\r\n * label, grouping class, property name, etc.).\r\n */\r\n export function equals(lhs: NodeKey, rhs: NodeKey): boolean {\r\n // types must always be equal\r\n if (lhs.type !== rhs.type) {\r\n return false;\r\n }\r\n\r\n // `pathFromRoot` lengths must always be equal\r\n if (lhs.pathFromRoot.length !== rhs.pathFromRoot.length) {\r\n return false;\r\n }\r\n\r\n // when versions are equal, compare using contents of `pathFromRoot` array\r\n if (lhs.version === rhs.version) {\r\n for (let i = 0; i < lhs.pathFromRoot.length; ++i) {\r\n if (lhs.pathFromRoot[i] !== rhs.pathFromRoot[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // when versions aren't equal, compare using other key information, because key hashes\r\n // of different key versions can't be compared\r\n if (isInstancesNodeKey(lhs)) {\r\n assert(isInstancesNodeKey(rhs));\r\n if (lhs.instanceKeys.length !== rhs.instanceKeys.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < lhs.instanceKeys.length; ++i) {\r\n if (0 !== InstanceKey.compare(lhs.instanceKeys[i], rhs.instanceKeys[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n if (isClassGroupingNodeKey(lhs)) {\r\n assert(isClassGroupingNodeKey(rhs));\r\n return lhs.className === rhs.className;\r\n }\r\n if (isPropertyGroupingNodeKey(lhs)) {\r\n assert(isPropertyGroupingNodeKey(rhs));\r\n return lhs.className === rhs.className && lhs.propertyName === rhs.propertyName;\r\n }\r\n if (isLabelGroupingNodeKey(lhs)) {\r\n assert(isLabelGroupingNodeKey(rhs));\r\n return lhs.label === rhs.label;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * Node key path. Can be used to define path from one node to another.\r\n * @public\r\n */\r\nexport type NodeKeyPath = NodeKey[];\r\n\r\n/**\r\n * Data structure that describes a basic node key\r\n * @public\r\n */\r\nexport interface BaseNodeKey {\r\n /** Node type */\r\n type: string;\r\n\r\n /**\r\n * Version of the key. Different versions suggest that node keys were created by two different\r\n * versions of the library. In that case, keys representing the same node may be different.\r\n */\r\n version: number;\r\n\r\n /** Node hash path from root to the node whose key this is */\r\n pathFromRoot: string[];\r\n\r\n /** Query that returns all selected instance keys */\r\n instanceKeysSelectQuery?: PresentationQuery;\r\n}\r\n/**\r\n * Serialized [[BaseNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[BaseNodeKey]].\r\n */\r\nexport interface BaseNodeKeyJSON {\r\n type: string;\r\n // TODO: make this required\r\n version?: number;\r\n pathFromRoot: string[];\r\n instanceKeysSelectQuery?: PresentationQuery;\r\n}\r\n\r\n/**\r\n * Data structure that describes a node ECInstance node key\r\n * @public\r\n */\r\nexport interface ECInstancesNodeKey extends BaseNodeKey {\r\n type: StandardNodeTypes.ECInstancesNode;\r\n /** List of [[InstanceKey]] objects of ECInstances represented by the node */\r\n instanceKeys: InstanceKey[];\r\n}\r\n/**\r\n * Serialized [[ECInstancesNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[ECInstancesNodeKey]].\r\n */\r\nexport interface ECInstancesNodeKeyJSON extends BaseNodeKey {\r\n type: StandardNodeTypes.ECInstancesNode;\r\n instanceKeys: InstanceKey[];\r\n}\r\n\r\n/**\r\n * Data structure that describes a grouping node key\r\n * @public\r\n */\r\nexport interface GroupingNodeKey extends BaseNodeKey {\r\n /**\r\n * Get the number of instances grouped by the node represented\r\n * by this key.\r\n *\r\n * **Note:** this property is just a helper and is not involved\r\n * in identifying a node.\r\n */\r\n groupedInstancesCount: number;\r\n}\r\n/**\r\n * Serialized [[GroupingNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[GroupingNodeKey]].\r\n */\r\nexport interface GroupingNodeKeyJSON extends BaseNodeKey {\r\n groupedInstancesCount: number;\r\n}\r\n\r\n/**\r\n * Data structure that describes an ECClass grouping node key\r\n * @public\r\n */\r\nexport interface ECClassGroupingNodeKey extends GroupingNodeKey {\r\n type: StandardNodeTypes.ECClassGroupingNode;\r\n /** Full name of the grouping ECClass */\r\n className: string;\r\n}\r\n/**\r\n * Serialized [[ECClassGroupingNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[ECClassGroupingNodeKey]].\r\n */\r\nexport interface ECClassGroupingNodeKeyJSON extends GroupingNodeKey {\r\n type: StandardNodeTypes.ECClassGroupingNode;\r\n className: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes an ECProperty grouping node key\r\n * @public\r\n */\r\nexport interface ECPropertyGroupingNodeKey extends GroupingNodeKey {\r\n type: StandardNodeTypes.ECPropertyGroupingNode;\r\n /** Full name of the grouping ECProperty class */\r\n className: string;\r\n /** Name of the ECProperty */\r\n propertyName: string;\r\n /** Raw grouping values */\r\n groupingValues: any[];\r\n}\r\n/**\r\n * Serialized [[ECPropertyGroupingNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[ECPropertyGroupingNodeKey]].\r\n */\r\nexport interface ECPropertyGroupingNodeKeyJSON extends GroupingNodeKey {\r\n type: StandardNodeTypes.ECPropertyGroupingNode;\r\n className: string;\r\n propertyName: string;\r\n groupingValues: any[];\r\n}\r\n\r\n/**\r\n * Data structure that describes a display label grouping node key\r\n * @public\r\n */\r\nexport interface LabelGroupingNodeKey extends GroupingNodeKey {\r\n type: StandardNodeTypes.DisplayLabelGroupingNode;\r\n /** Grouping display label */\r\n label: string;\r\n}\r\n/**\r\n * Serialized [[LabelGroupingNodeKey]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[LabelGroupingNodeKey]].\r\n */\r\nexport interface LabelGroupingNodeKeyJSON extends GroupingNodeKey {\r\n type: StandardNodeTypes.DisplayLabelGroupingNode;\r\n label: string;\r\n}\r\n\r\n/**\r\n * One of the serialized node key types\r\n * @public\r\n * @deprecated in 3.x. Use [[NodeKey]].\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport type NodeKeyJSON = BaseNodeKeyJSON | ECInstancesNodeKeyJSON | ECClassGroupingNodeKeyJSON | ECPropertyGroupingNodeKeyJSON | LabelGroupingNodeKeyJSON;\r\n\r\n/**\r\n * Data structure that describes a presentation query\r\n * @public\r\n */\r\nexport interface PresentationQuery {\r\n /** ECSQL query */\r\n query: string;\r\n /** The query bindings */\r\n bindings?: PresentationQueryBinding[];\r\n}\r\n\r\n/**\r\n * Defines an [[Id64String]] value binding.\r\n * @public\r\n */\r\nexport interface IdBinding {\r\n type: \"Id\";\r\n value: Id64String;\r\n}\r\n\r\n/**\r\n * Defines an [[IdSet]] value binding for use with `InVirtualSet` ECSQL function.\r\n * @public\r\n */\r\nexport interface IdSetBinding {\r\n type: \"IdSet\";\r\n value: Id64String[];\r\n}\r\n\r\n/**\r\n * Defines an EC value binding.\r\n * @public\r\n */\r\nexport interface ECValueBinding {\r\n type: \"ECValue\";\r\n valueType: string;\r\n valueTypeExtended?: string;\r\n value: any;\r\n}\r\n\r\n/**\r\n * Defines a binding for a list of EC values for use with `InVirtualSet` ECSQL function.\r\n * @public\r\n */\r\nexport interface ECValueSetBinding {\r\n type: \"ValueSet\";\r\n valueType: string;\r\n valueTypeExtended?: string;\r\n value: any[];\r\n}\r\n\r\n/**\r\n * One of the [[PresentationQuery]] binding types.\r\n * @public\r\n */\r\nexport type PresentationQueryBinding = IdBinding | IdSetBinding | ECValueBinding | ECValueSetBinding;\r\n"]}
|
|
1
|
+
{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/Key.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hierarchies\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport { InstanceKey } from \"../EC\";\n\n/**\n * Standard node types\n * @public\n */\nexport enum StandardNodeTypes {\n ECInstancesNode = \"ECInstancesNode\",\n ECClassGroupingNode = \"ECClassGroupingNode\",\n ECPropertyGroupingNode = \"ECPropertyGroupingNode\",\n DisplayLabelGroupingNode = \"DisplayLabelGroupingNode\",\n}\n\n/**\n * One of the node key types\n * @public\n */\nexport type NodeKey = BaseNodeKey | ECInstancesNodeKey | ECClassGroupingNodeKey | ECPropertyGroupingNodeKey | LabelGroupingNodeKey;\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace NodeKey {\n /**\n * Serialize given [[NodeKey]] to JSON\n * @deprecated in 3.x. Use [[NodeKey]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(key: NodeKey): NodeKeyJSON {\n return { ...key };\n }\n\n /**\n * Deserialize node key from JSON\n * @deprecated in 3.x. Use [[NodeKey]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: NodeKeyJSON): NodeKey {\n return { version: 1, ...json };\n }\n\n /** Checks if the supplied key is an [[ECInstancesNodeKey]] */\n export function isInstancesNodeKey(key: NodeKey): key is ECInstancesNodeKey;\n /** Checks if the supplied key is an [[ECInstancesNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\n export function isInstancesNodeKey(key: NodeKeyJSON): key is ECInstancesNodeKeyJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function isInstancesNodeKey(key: NodeKey | NodeKeyJSON) {\n return key.type === StandardNodeTypes.ECInstancesNode;\n }\n\n /** Checks if the supplied key is an [[ECClassGroupingNodeKey]] */\n export function isClassGroupingNodeKey(key: NodeKey): key is ECClassGroupingNodeKey;\n /** Checks if the supplied key is an [[ECClassGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\n export function isClassGroupingNodeKey(key: NodeKeyJSON): key is ECClassGroupingNodeKeyJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function isClassGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\n return key.type === StandardNodeTypes.ECClassGroupingNode;\n }\n\n /** Checks if the supplied key is an [[ECPropertyGroupingNodeKey]] */\n export function isPropertyGroupingNodeKey(key: NodeKey): key is ECPropertyGroupingNodeKey;\n /** Checks if the supplied key is an [[ECPropertyGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\n export function isPropertyGroupingNodeKey(key: NodeKeyJSON): key is ECPropertyGroupingNodeKeyJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function isPropertyGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\n return key.type === StandardNodeTypes.ECPropertyGroupingNode;\n }\n\n /** Checks if the supplied key is a [[LabelGroupingNodeKey]] */\n export function isLabelGroupingNodeKey(key: NodeKey): key is LabelGroupingNodeKey;\n /** Checks if the supplied key is a [[LabelGroupingNodeKey]]. @deprecated in 3.x. Use an override for [[NodeKey]]. */\n export function isLabelGroupingNodeKey(key: NodeKeyJSON): key is LabelGroupingNodeKeyJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function isLabelGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\n return key.type === StandardNodeTypes.DisplayLabelGroupingNode;\n }\n\n /** Checks if the supplied key is a grouping node key */\n export function isGroupingNodeKey(key: NodeKey): key is GroupingNodeKey;\n /** Checks if the supplied key is a grouping node key. @deprecated in 3.x. Use an override for [[NodeKey]]. */\n export function isGroupingNodeKey(key: NodeKeyJSON): key is GroupingNodeKeyJSON;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function isGroupingNodeKey(key: NodeKey | NodeKeyJSON) {\n return isClassGroupingNodeKey(key) || isPropertyGroupingNodeKey(key) || isLabelGroupingNodeKey(key); // eslint-disable-line @typescript-eslint/no-deprecated\n }\n\n /**\n * Checks if two given node keys are equal, taking their versions into account.\n *\n * When comparing two keys of the same version, the algorithm uses [[NodeKey.pathFromRoot]] array\n * which is the most accurate way of checking equality. However, when version are different,\n * [[NodeKey.pathFromRoot]] array may contain different strings even though keys represent the same node.\n * In that case equality is checked using other key attributes, depending on the type of the node (type,\n * label, grouping class, property name, etc.).\n */\n export function equals(lhs: NodeKey, rhs: NodeKey): boolean {\n // types must always be equal\n if (lhs.type !== rhs.type) {\n return false;\n }\n\n // `pathFromRoot` lengths must always be equal\n if (lhs.pathFromRoot.length !== rhs.pathFromRoot.length) {\n return false;\n }\n\n // when versions are equal, compare using contents of `pathFromRoot` array\n if (lhs.version === rhs.version) {\n for (let i = 0; i < lhs.pathFromRoot.length; ++i) {\n if (lhs.pathFromRoot[i] !== rhs.pathFromRoot[i]) {\n return false;\n }\n }\n return true;\n }\n\n // when versions aren't equal, compare using other key information, because key hashes\n // of different key versions can't be compared\n if (isInstancesNodeKey(lhs)) {\n assert(isInstancesNodeKey(rhs));\n if (lhs.instanceKeys.length !== rhs.instanceKeys.length) {\n return false;\n }\n for (let i = 0; i < lhs.instanceKeys.length; ++i) {\n if (0 !== InstanceKey.compare(lhs.instanceKeys[i], rhs.instanceKeys[i])) {\n return false;\n }\n }\n return true;\n }\n if (isClassGroupingNodeKey(lhs)) {\n assert(isClassGroupingNodeKey(rhs));\n return lhs.className === rhs.className;\n }\n if (isPropertyGroupingNodeKey(lhs)) {\n assert(isPropertyGroupingNodeKey(rhs));\n return lhs.className === rhs.className && lhs.propertyName === rhs.propertyName;\n }\n if (isLabelGroupingNodeKey(lhs)) {\n assert(isLabelGroupingNodeKey(rhs));\n return lhs.label === rhs.label;\n }\n return true;\n }\n}\n\n/**\n * Node key path. Can be used to define path from one node to another.\n * @public\n */\nexport type NodeKeyPath = NodeKey[];\n\n/**\n * Data structure that describes a basic node key\n * @public\n */\nexport interface BaseNodeKey {\n /** Node type */\n type: string;\n\n /**\n * Version of the key. Different versions suggest that node keys were created by two different\n * versions of the library. In that case, keys representing the same node may be different.\n */\n version: number;\n\n /** Node hash path from root to the node whose key this is */\n pathFromRoot: string[];\n\n /** Query that returns all selected instance keys */\n instanceKeysSelectQuery?: PresentationQuery;\n}\n/**\n * Serialized [[BaseNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[BaseNodeKey]].\n */\nexport interface BaseNodeKeyJSON {\n type: string;\n // TODO: make this required\n version?: number;\n pathFromRoot: string[];\n instanceKeysSelectQuery?: PresentationQuery;\n}\n\n/**\n * Data structure that describes a node ECInstance node key\n * @public\n */\nexport interface ECInstancesNodeKey extends BaseNodeKey {\n type: StandardNodeTypes.ECInstancesNode;\n /** List of [[InstanceKey]] objects of ECInstances represented by the node */\n instanceKeys: InstanceKey[];\n}\n/**\n * Serialized [[ECInstancesNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[ECInstancesNodeKey]].\n */\nexport interface ECInstancesNodeKeyJSON extends BaseNodeKey {\n type: StandardNodeTypes.ECInstancesNode;\n instanceKeys: InstanceKey[];\n}\n\n/**\n * Data structure that describes a grouping node key\n * @public\n */\nexport interface GroupingNodeKey extends BaseNodeKey {\n /**\n * Get the number of instances grouped by the node represented\n * by this key.\n *\n * **Note:** this property is just a helper and is not involved\n * in identifying a node.\n */\n groupedInstancesCount: number;\n}\n/**\n * Serialized [[GroupingNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[GroupingNodeKey]].\n */\nexport interface GroupingNodeKeyJSON extends BaseNodeKey {\n groupedInstancesCount: number;\n}\n\n/**\n * Data structure that describes an ECClass grouping node key\n * @public\n */\nexport interface ECClassGroupingNodeKey extends GroupingNodeKey {\n type: StandardNodeTypes.ECClassGroupingNode;\n /** Full name of the grouping ECClass */\n className: string;\n}\n/**\n * Serialized [[ECClassGroupingNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[ECClassGroupingNodeKey]].\n */\nexport interface ECClassGroupingNodeKeyJSON extends GroupingNodeKey {\n type: StandardNodeTypes.ECClassGroupingNode;\n className: string;\n}\n\n/**\n * Data structure that describes an ECProperty grouping node key\n * @public\n */\nexport interface ECPropertyGroupingNodeKey extends GroupingNodeKey {\n type: StandardNodeTypes.ECPropertyGroupingNode;\n /** Full name of the grouping ECProperty class */\n className: string;\n /** Name of the ECProperty */\n propertyName: string;\n /** Raw grouping values */\n groupingValues: any[];\n}\n/**\n * Serialized [[ECPropertyGroupingNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[ECPropertyGroupingNodeKey]].\n */\nexport interface ECPropertyGroupingNodeKeyJSON extends GroupingNodeKey {\n type: StandardNodeTypes.ECPropertyGroupingNode;\n className: string;\n propertyName: string;\n groupingValues: any[];\n}\n\n/**\n * Data structure that describes a display label grouping node key\n * @public\n */\nexport interface LabelGroupingNodeKey extends GroupingNodeKey {\n type: StandardNodeTypes.DisplayLabelGroupingNode;\n /** Grouping display label */\n label: string;\n}\n/**\n * Serialized [[LabelGroupingNodeKey]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[LabelGroupingNodeKey]].\n */\nexport interface LabelGroupingNodeKeyJSON extends GroupingNodeKey {\n type: StandardNodeTypes.DisplayLabelGroupingNode;\n label: string;\n}\n\n/**\n * One of the serialized node key types\n * @public\n * @deprecated in 3.x. Use [[NodeKey]].\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport type NodeKeyJSON = BaseNodeKeyJSON | ECInstancesNodeKeyJSON | ECClassGroupingNodeKeyJSON | ECPropertyGroupingNodeKeyJSON | LabelGroupingNodeKeyJSON;\n\n/**\n * Data structure that describes a presentation query\n * @public\n */\nexport interface PresentationQuery {\n /** ECSQL query */\n query: string;\n /** The query bindings */\n bindings?: PresentationQueryBinding[];\n}\n\n/**\n * Defines an [[Id64String]] value binding.\n * @public\n */\nexport interface IdBinding {\n type: \"Id\";\n value: Id64String;\n}\n\n/**\n * Defines an [[IdSet]] value binding for use with `InVirtualSet` ECSQL function.\n * @public\n */\nexport interface IdSetBinding {\n type: \"IdSet\";\n value: Id64String[];\n}\n\n/**\n * Defines an EC value binding.\n * @public\n */\nexport interface ECValueBinding {\n type: \"ECValue\";\n valueType: string;\n valueTypeExtended?: string;\n value: any;\n}\n\n/**\n * Defines a binding for a list of EC values for use with `InVirtualSet` ECSQL function.\n * @public\n */\nexport interface ECValueSetBinding {\n type: \"ValueSet\";\n valueType: string;\n valueTypeExtended?: string;\n value: any[];\n}\n\n/**\n * One of the [[PresentationQuery]] binding types.\n * @public\n */\nexport type PresentationQueryBinding = IdBinding | IdSetBinding | ECValueBinding | ECValueSetBinding;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/Node.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,+BAA6C;AAsH7C,cAAc;AACd,IAAiB,IAAI,CA+FpB;AA/FD,WAAiB,IAAI;IACnB;;;OAGG;IACH,4DAA4D;IAC5D,SAAgB,MAAM,CAAC,IAAU;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,OAAO;YACL,GAAG,QAAQ;YACX,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IANe,WAAM,SAMrB,CAAA;IAED,gBAAgB;IAChB,4DAA4D;IAC5D,SAAgB,aAAa,CAAC,IAAiB;QAC7C,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,OAAO;YACL,GAAG,QAAQ;YACX,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAVe,kBAAa,gBAU5B,CAAA;IAED;;;OAGG;IACH,4DAA4D;IAC5D,SAAgB,QAAQ,CAAC,IAAuB;QAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC9C,OAAO;YACL,GAAG,QAAQ;YACX,4DAA4D;YAC5D,GAAG,EAAE,aAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,KAAK,EAAE,eAAe;SACvB,CAAC;IACJ,CAAC;IAXe,aAAQ,WAWvB,CAAA;IAED,gBAAgB;IAChB,4DAA4D;IAC5D,SAAgB,eAAe,CAAC,IAAqB;QACnD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnD,OAAO;YACL,GAAG,QAAQ;YACX,4DAA4D;YAC5D,GAAG,EAAE,aAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1B,KAAK,EAAE,eAAe;SACvB,CAAC;IACJ,CAAC;IAZe,oBAAe,kBAY9B,CAAA;IAED;;;;OAIG;IACH,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAU;QAC7C,4DAA4D;QAC5D,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IAHe,YAAO,UAGtB,CAAA;IAED;;;;;OAKG;IACH,4DAA4D;IAC5D,SAAgB,YAAY,CAAC,IAAyB;QACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,4DAA4D;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IANe,iBAAY,eAM3B,CAAA;IAED;;;;OAIG;IACH,SAAgB,WAAW,CAAC,GAAW,EAAE,KAAU;QACjD,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAFe,gBAAW,cAE1B,CAAA;AACH,CAAC,EA/FgB,IAAI,oBAAJ,IAAI,QA+FpB","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 Hierarchies\r\n */\r\n\r\nimport { LabelDefinition, LabelDefinitionJSON } from \"../LabelDefinition\";\r\nimport { NodeKey, NodeKeyJSON } from \"./Key\";\r\n\r\n/**\r\n * Data structure that describes a tree node.\r\n * @public\r\n */\r\nexport interface Node {\r\n /** A key that uniquely identifies a node. */\r\n key: NodeKey;\r\n /** Definition of node display label */\r\n label: LabelDefinition;\r\n /** Extensive description */\r\n description?: string;\r\n /**\r\n * Image ID\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n imageId?: string;\r\n /**\r\n * Foreground color\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n foreColor?: string;\r\n /**\r\n * Background color\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n backColor?: string;\r\n /**\r\n * Font style\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n fontStyle?: string;\r\n /** Does this node have child nodes */\r\n hasChildren?: boolean;\r\n /** Is this node selectable */\r\n isSelectionDisabled?: boolean;\r\n /** Is this node editable */\r\n isEditable?: boolean;\r\n /** Is this node expanded */\r\n isExpanded?: boolean;\r\n /**\r\n * Is checkbox visible for this node\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n isCheckboxVisible?: boolean;\r\n /**\r\n * Is this node's checkbox checked\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n isChecked?: boolean;\r\n /**\r\n * Is this node's checkbox enabled\r\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n isCheckboxEnabled?: boolean;\r\n /**\r\n * Identifies whether the hierarchy level below this node supports filtering. If not, requesting either a hierarchy level descriptor or\r\n * a hierarchy level with [[HierarchyRequestOptions.instanceFilter]] will throw an error with [[PresentationStatus.InvalidArgument]] status.\r\n */\r\n supportsFiltering?: boolean;\r\n /** Extended data injected into this node */\r\n extendedData?: {\r\n [key: string]: any;\r\n };\r\n}\r\n\r\n/**\r\n * Serialized [[Node]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[Node]].\r\n */\r\nexport interface NodeJSON {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n key: NodeKeyJSON;\r\n // TODO: rename to `label`\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n labelDefinition: LabelDefinitionJSON;\r\n description?: string;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n imageId?: string;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n foreColor?: string;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n backColor?: string;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n fontStyle?: string;\r\n hasChildren?: boolean;\r\n isSelectionDisabled?: boolean;\r\n isEditable?: boolean;\r\n isExpanded?: boolean;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n isCheckboxVisible?: boolean;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n isChecked?: boolean;\r\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\r\n isCheckboxEnabled?: boolean;\r\n supportsFiltering?: boolean;\r\n extendedData?: {\r\n [key: string]: any;\r\n };\r\n}\r\n\r\n/**\r\n * Partial node definition.\r\n * @public\r\n */\r\nexport type PartialNode = AllOrNone<Partial<Node>, \"key\" | \"label\">;\r\n\r\n/**\r\n * Serialized [[PartialNode]] JSON representation.\r\n * @public\r\n * @deprecated in 3.x. Use [[PartialNode]].\r\n */\r\nexport type PartialNodeJSON = AllOrNone<Partial<NodeJSON>, \"key\" | \"labelDefinition\">;\r\n\r\ntype AllOrNone<T, P extends keyof T> = Omit<T, P> & ({ [K in P]?: never } | Required<Pick<T, P>>);\r\n\r\n/** @public */\r\nexport namespace Node {\r\n /**\r\n * Serialize given [[Node]] to JSON\r\n * @deprecated in 3.x. Use [[Node]].\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toJSON(node: Node): NodeJSON {\r\n const { label, ...baseNode } = node;\r\n return {\r\n ...baseNode,\r\n labelDefinition: label,\r\n };\r\n }\r\n\r\n /** @internal */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function toPartialJSON(node: PartialNode): PartialNodeJSON {\r\n if (node.key === undefined) {\r\n return node;\r\n }\r\n\r\n const { label, ...baseNode } = node;\r\n return {\r\n ...baseNode,\r\n labelDefinition: label,\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[Node]] from JSON\r\n * @deprecated in 3.x. Use [[Node]].\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromJSON(json: NodeJSON | string): Node {\r\n if (typeof json === \"string\") {\r\n return JSON.parse(json, reviver);\r\n }\r\n const { labelDefinition, ...baseJson } = json;\r\n return {\r\n ...baseJson,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n key: NodeKey.fromJSON(json.key),\r\n label: labelDefinition,\r\n };\r\n }\r\n\r\n /** @internal */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function fromPartialJSON(json: PartialNodeJSON): PartialNode {\r\n if (json.key === undefined) {\r\n return json;\r\n }\r\n\r\n const { key, labelDefinition, ...baseJson } = json;\r\n return {\r\n ...baseJson,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n key: NodeKey.fromJSON(key),\r\n label: labelDefinition,\r\n };\r\n }\r\n\r\n /**\r\n * Reviver function that can be used as a second argument for\r\n * `JSON.parse` method when parsing [[Node]] objects.\r\n * @internal\r\n */\r\n export function reviver(key: string, value: any): any {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return key === \"\" ? fromJSON(value) : value;\r\n }\r\n\r\n /**\r\n * Deserialize nodes list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized nodes list\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n export function listFromJSON(json: NodeJSON[] | string): Node[] {\r\n if (typeof json === \"string\") {\r\n return JSON.parse(json, listReviver);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return json.map((m) => fromJSON(m));\r\n }\r\n\r\n /**\r\n * Reviver function that can be used as a second argument for\r\n * `JSON.parse` method when parsing [[Node]][] objects.\r\n * @internal\r\n */\r\n export function listReviver(key: string, value: any): any {\r\n return key === \"\" ? listFromJSON(value) : value;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/Node.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAGH,+BAA6C;AAsH7C,cAAc;AACd,IAAiB,IAAI,CA+FpB;AA/FD,WAAiB,IAAI;IACnB;;;OAGG;IACH,4DAA4D;IAC5D,SAAgB,MAAM,CAAC,IAAU;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,OAAO;YACL,GAAG,QAAQ;YACX,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IANe,WAAM,SAMrB,CAAA;IAED,gBAAgB;IAChB,4DAA4D;IAC5D,SAAgB,aAAa,CAAC,IAAiB;QAC7C,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,OAAO;YACL,GAAG,QAAQ;YACX,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAVe,kBAAa,gBAU5B,CAAA;IAED;;;OAGG;IACH,4DAA4D;IAC5D,SAAgB,QAAQ,CAAC,IAAuB;QAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC9C,OAAO;YACL,GAAG,QAAQ;YACX,4DAA4D;YAC5D,GAAG,EAAE,aAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,KAAK,EAAE,eAAe;SACvB,CAAC;IACJ,CAAC;IAXe,aAAQ,WAWvB,CAAA;IAED,gBAAgB;IAChB,4DAA4D;IAC5D,SAAgB,eAAe,CAAC,IAAqB;QACnD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnD,OAAO;YACL,GAAG,QAAQ;YACX,4DAA4D;YAC5D,GAAG,EAAE,aAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1B,KAAK,EAAE,eAAe;SACvB,CAAC;IACJ,CAAC;IAZe,oBAAe,kBAY9B,CAAA;IAED;;;;OAIG;IACH,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAU;QAC7C,4DAA4D;QAC5D,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IAHe,YAAO,UAGtB,CAAA;IAED;;;;;OAKG;IACH,4DAA4D;IAC5D,SAAgB,YAAY,CAAC,IAAyB;QACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,4DAA4D;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IANe,iBAAY,eAM3B,CAAA;IAED;;;;OAIG;IACH,SAAgB,WAAW,CAAC,GAAW,EAAE,KAAU;QACjD,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IAFe,gBAAW,cAE1B,CAAA;AACH,CAAC,EA/FgB,IAAI,oBAAJ,IAAI,QA+FpB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hierarchies\n */\n\nimport { LabelDefinition, LabelDefinitionJSON } from \"../LabelDefinition\";\nimport { NodeKey, NodeKeyJSON } from \"./Key\";\n\n/**\n * Data structure that describes a tree node.\n * @public\n */\nexport interface Node {\n /** A key that uniquely identifies a node. */\n key: NodeKey;\n /** Definition of node display label */\n label: LabelDefinition;\n /** Extensive description */\n description?: string;\n /**\n * Image ID\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n imageId?: string;\n /**\n * Foreground color\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n foreColor?: string;\n /**\n * Background color\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n backColor?: string;\n /**\n * Font style\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n fontStyle?: string;\n /** Does this node have child nodes */\n hasChildren?: boolean;\n /** Is this node selectable */\n isSelectionDisabled?: boolean;\n /** Is this node editable */\n isEditable?: boolean;\n /** Is this node expanded */\n isExpanded?: boolean;\n /**\n * Is checkbox visible for this node\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n isCheckboxVisible?: boolean;\n /**\n * Is this node's checkbox checked\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n isChecked?: boolean;\n /**\n * Is this node's checkbox enabled\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n isCheckboxEnabled?: boolean;\n /**\n * Identifies whether the hierarchy level below this node supports filtering. If not, requesting either a hierarchy level descriptor or\n * a hierarchy level with [[HierarchyRequestOptions.instanceFilter]] will throw an error with [[PresentationStatus.InvalidArgument]] status.\n */\n supportsFiltering?: boolean;\n /** Extended data injected into this node */\n extendedData?: {\n [key: string]: any;\n };\n}\n\n/**\n * Serialized [[Node]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[Node]].\n */\nexport interface NodeJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n key: NodeKeyJSON;\n // TODO: rename to `label`\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n labelDefinition: LabelDefinitionJSON;\n description?: string;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n imageId?: string;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n foreColor?: string;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n backColor?: string;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n fontStyle?: string;\n hasChildren?: boolean;\n isSelectionDisabled?: boolean;\n isEditable?: boolean;\n isExpanded?: boolean;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n isCheckboxVisible?: boolean;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n isChecked?: boolean;\n /** @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details. */\n isCheckboxEnabled?: boolean;\n supportsFiltering?: boolean;\n extendedData?: {\n [key: string]: any;\n };\n}\n\n/**\n * Partial node definition.\n * @public\n */\nexport type PartialNode = AllOrNone<Partial<Node>, \"key\" | \"label\">;\n\n/**\n * Serialized [[PartialNode]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[PartialNode]].\n */\nexport type PartialNodeJSON = AllOrNone<Partial<NodeJSON>, \"key\" | \"labelDefinition\">;\n\ntype AllOrNone<T, P extends keyof T> = Omit<T, P> & ({ [K in P]?: never } | Required<Pick<T, P>>);\n\n/** @public */\nexport namespace Node {\n /**\n * Serialize given [[Node]] to JSON\n * @deprecated in 3.x. Use [[Node]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(node: Node): NodeJSON {\n const { label, ...baseNode } = node;\n return {\n ...baseNode,\n labelDefinition: label,\n };\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toPartialJSON(node: PartialNode): PartialNodeJSON {\n if (node.key === undefined) {\n return node;\n }\n\n const { label, ...baseNode } = node;\n return {\n ...baseNode,\n labelDefinition: label,\n };\n }\n\n /**\n * Deserialize [[Node]] from JSON\n * @deprecated in 3.x. Use [[Node]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: NodeJSON | string): Node {\n if (typeof json === \"string\") {\n return JSON.parse(json, reviver);\n }\n const { labelDefinition, ...baseJson } = json;\n return {\n ...baseJson,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n key: NodeKey.fromJSON(json.key),\n label: labelDefinition,\n };\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromPartialJSON(json: PartialNodeJSON): PartialNode {\n if (json.key === undefined) {\n return json;\n }\n\n const { key, labelDefinition, ...baseJson } = json;\n return {\n ...baseJson,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n key: NodeKey.fromJSON(key),\n label: labelDefinition,\n };\n }\n\n /**\n * Reviver function that can be used as a second argument for\n * `JSON.parse` method when parsing [[Node]] objects.\n * @internal\n */\n export function reviver(key: string, value: any): any {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return key === \"\" ? fromJSON(value) : value;\n }\n\n /**\n * Deserialize nodes list from JSON\n * @param json JSON or JSON serialized to string to deserialize from\n * @returns Deserialized nodes list\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function listFromJSON(json: NodeJSON[] | string): Node[] {\n if (typeof json === \"string\") {\n return JSON.parse(json, listReviver);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return json.map((m) => fromJSON(m));\n }\n\n /**\n * Reviver function that can be used as a second argument for\n * `JSON.parse` method when parsing [[Node]][] objects.\n * @internal\n */\n export function listReviver(key: string, value: any): any {\n return key === \"\" ? listFromJSON(value) : value;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodePathElement.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/NodePathElement.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"NodePathElement.js","sourceRoot":"","sources":["../../../../src/presentation-common/hierarchy/NodePathElement.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Hierarchies\n */\n\nimport { Node, NodeJSON } from \"./Node\";\n\n/**\n * Serialized [[NodePathElement]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[NodePathElement]].\n */\nexport interface NodePathElementJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n node: NodeJSON;\n index: number;\n isMarked?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n children: NodePathElementJSON[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n filteringData?: NodePathFilteringDataJSON;\n}\n\n/**\n * Describes a single step in the nodes path.\n * @public\n */\nexport interface NodePathElement {\n /** Node instance */\n node: Node;\n /** Node index */\n index: number;\n /** Is this element part of the marked path */\n isMarked?: boolean;\n /** Child path elements */\n children: NodePathElement[];\n /** Additional filtering-related information */\n filteringData?: NodePathFilteringData;\n}\n\n/** @public */\nexport namespace NodePathElement {\n /**\n * Serialize given [[NodePathElement]] to JSON\n * @deprecated in 3.x. Use [[NodePathElement]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(npe: NodePathElement): NodePathElementJSON {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const result: NodePathElementJSON = {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n node: Node.toJSON(npe.node),\n index: npe.index,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n children: npe.children.map(NodePathElement.toJSON),\n };\n if (undefined !== npe.isMarked) {\n result.isMarked = npe.isMarked;\n }\n if (undefined !== npe.filteringData) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n result.filteringData = NodePathFilteringData.toJSON(npe.filteringData);\n }\n return result;\n }\n\n /**\n * Deserialize [[NodePathElement]] from JSON\n * @deprecated in 3.x. Use [[NodePathElement]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: NodePathElementJSON | string): NodePathElement {\n if (typeof json === \"string\") {\n return JSON.parse(json, reviver);\n }\n const result: NodePathElement = {\n index: json.index,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n node: Node.fromJSON(json.node),\n children: listFromJSON(json.children),\n };\n if (undefined !== json.isMarked) {\n result.isMarked = json.isMarked;\n }\n if (undefined !== json.filteringData) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n result.filteringData = NodePathFilteringData.fromJSON(json.filteringData);\n }\n return result;\n }\n\n /**\n * Reviver function that can be used as a second argument for\n * `JSON.parse` method when parsing [[NodePathElement]] objects.\n * @internal\n */\n export function reviver(key: string, value: any): any {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return key === \"\" ? fromJSON(value) : value;\n }\n\n /**\n * Deserialize [[NodePathElement]] list from JSON\n * @param json JSON or JSON serialized to string to deserialize from\n * @returns Deserialized [[NodePathElement]] list\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function listFromJSON(json: NodePathElementJSON[] | string): NodePathElement[] {\n if (typeof json === \"string\") {\n return JSON.parse(json, listReviver);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return json.map((m) => fromJSON(m));\n }\n\n /**\n * Reviver function that can be used as a second argument for\n * `JSON.parse` method when parsing [[NodePathElement]][] objects.\n * @internal\n */\n export function listReviver(key: string, value: any): any {\n return key === \"\" ? listFromJSON(value) : value;\n }\n}\n\n/**\n * Serialized [[NodePathFilteringData]] JSON representation.\n * @public\n * @deprecated in 3.x. Use [[NodePathFilteringData]].\n */\nexport interface NodePathFilteringDataJSON {\n occurances: number;\n childrenOccurances: number;\n}\n\n/**\n * Data related to node hierarchy filtering\n * @public\n */\nexport interface NodePathFilteringData {\n /** Number of filter matches in the current element */\n matchesCount: number;\n /** Number of filter matches in the current element's children (recursively) */\n childMatchesCount: number;\n}\n\n/** @public */\nexport namespace NodePathFilteringData {\n /**\n * Serialize given [[NodePathFilteringData]] to JSON\n * @deprecated in 3.x. Use [[NodePathFilteringData]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function toJSON(npfd: NodePathFilteringData): NodePathFilteringDataJSON {\n return {\n occurances: npfd.matchesCount,\n childrenOccurances: npfd.childMatchesCount,\n };\n }\n\n /**\n * Deserialize [[NodePathFilteringData]] from JSON\n * @deprecated in 3.x. Use [[NodePathFilteringData]].\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n export function fromJSON(json: NodePathFilteringDataJSON): NodePathFilteringData {\n return {\n matchesCount: json.occurances,\n childMatchesCount: json.childrenOccurances,\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassSpecifications.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/ClassSpecifications.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"ClassSpecifications.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/ClassSpecifications.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PresentationRules\n */\n\n/**\n * This specification is used to point to specific ECClass.\n *\n * @see [Single schema class specification reference documentation page]($docs/presentation/SingleSchemaClassSpecification.md)\n * @public\n */\nexport interface SingleSchemaClassSpecification {\n /**\n * Specifies name of the schema which contains the target class.\n *\n * @pattern ^[\\w\\d]+$\n */\n schemaName: string;\n\n /**\n * Specifies name of the target class.\n *\n * @pattern ^[\\w\\d]+$\n */\n className: string;\n}\n\n/**\n * This specification lists ECClasses which should be targeted when creating content or hierarchy nodes.\n *\n * @see [Multi schema classes specification reference documentation page]($docs/presentation/MultiSchemaClassesSpecification.md)\n * @public\n */\nexport interface MultiSchemaClassesSpecification {\n /**\n * Specifies the schema which contains the target classes.\n *\n * @pattern ^[\\w\\d]+$\n */\n schemaName: string;\n\n /**\n * An array of target ECClass names.\n */\n classNames: string[];\n\n /**\n * Defines whether the derived ECClasses should be included in the result.\n */\n arePolymorphic?: boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelatedInstanceSpecification.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/RelatedInstanceSpecification.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"RelatedInstanceSpecification.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/RelatedInstanceSpecification.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PresentationRules\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { SingleSchemaClassSpecification } from \"./ClassSpecifications\";\nimport { RelationshipPathSpecification } from \"./RelationshipPathSpecification\";\n\n/**\n * Defines base attributes for [[RelatedInstanceByPathSpecification]] and [[RelatedInstanceByTargetInstancesSpecification]].\n * @public\n */\nexport interface RelatedInstanceSpecificationBase {\n /**\n * Specifies an an alias that given to the related instance. The alias can be used to reference the\n * instance in instance filter and customization rules.\n *\n * @pattern ^\\w[\\w\\d]*$\n */\n alias: string;\n\n /**\n * Specifies whether to omit the primary instance from the result if the other end of [[relationshipPath]]\n * does not yield any related instances.\n */\n isRequired?: boolean;\n}\n\n/**\n * A type of [[RelatedInstanceSpecification]] that joins related instances by a relationship path.\n * @public\n */\nexport interface RelatedInstanceByPathSpecification extends RelatedInstanceSpecificationBase {\n /**\n * Specifies a chain of [relationship path specifications]($docs/presentation/RelationshipPathSpecification.md)\n * that forms a path from the primary instance to the related instances.\n */\n relationshipPath: RelationshipPathSpecification;\n}\n\n/**\n * A type of [[RelatedInstanceSpecification]] that joins related instances by target class and instance IDs.\n * @public\n */\nexport interface RelatedInstanceByTargetInstancesSpecification extends RelatedInstanceSpecificationBase {\n /**\n * Specifies target class and a list of target ECInstance IDs.\n */\n targetInstances: {\n /** Specification for the target class to join. */\n class: SingleSchemaClassSpecification;\n /** Ids of the target instances to join. */\n instanceIds: Id64String[];\n };\n}\n\n/**\n * Related instance specification is used in [content]($docs/presentation/content/ContentRule.md#attribute-specifications)\n * and [hierarchy]($docs/presentation/hierarchies/ChildNodeRule.md#attribute-specifications) specifications to \"join\" the\n * primary instance with its related instance and allow using the related instance for filtering, customization and grouping.\n *\n * @see [Related instance specification reference documentation page]($docs/presentation/RelatedInstanceSpecification.md)\n * @public\n */\nexport type RelatedInstanceSpecification = RelatedInstanceByPathSpecification | RelatedInstanceByTargetInstancesSpecification;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipDirection.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/RelationshipDirection.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iEAAiE;IACjE,4CAAmB,CAAA;IACnB,kEAAkE;IAClE,8CAAqB,CAAA;AACvB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"RelationshipDirection.js","sourceRoot":"","sources":["../../../../src/presentation-common/rules/RelationshipDirection.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iEAAiE;IACjE,4CAAmB,CAAA;IACnB,kEAAkE;IAClE,8CAAqB,CAAA;AACvB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module PresentationRules\n */\n\n/**\n * Defines direction of a relationship that should be followed\n * @public\n */\nexport enum RelationshipDirection {\n /** Relationship should be followed only in forward direction. */\n Forward = \"Forward\",\n /** Relationship should be followed only in backward direction. */\n Backward = \"Backward\",\n}\n"]}
|