@itwin/presentation-common 4.10.0-dev.6 → 4.10.0-dev.8

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 CHANGED
@@ -1,6 +1,23 @@
1
1
  # Change Log - @itwin/presentation-common
2
2
 
3
- This log was last generated on Fri, 13 Sep 2024 15:12:41 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 25 Sep 2024 20:12:30 GMT and should not be manually modified.
4
+
5
+ ## 4.9.1
6
+ Wed, 25 Sep 2024 20:10:58 GMT
7
+
8
+ ### Updates
9
+
10
+ - Fix failure to deserialize content from JSON for instances with nulls in array property values
11
+
12
+ ## 4.9.0
13
+ Mon, 23 Sep 2024 13:44:01 GMT
14
+
15
+ ### Updates
16
+
17
+ - Different value type support for calculated properties
18
+ - Add extended data for calculated properties
19
+ - Make calculated property value optional
20
+ - Support schema-based property category overrides
4
21
 
5
22
  ## 4.8.7
6
23
  Fri, 13 Sep 2024 15:11:17 GMT
@@ -208,7 +208,8 @@ function isNestedContentValue(v) {
208
208
  return (v !== undefined &&
209
209
  Array.isArray(v) &&
210
210
  (v.length === 0 ||
211
- (v[0].primaryKeys !== undefined &&
211
+ (!!v[0] &&
212
+ v[0].primaryKeys !== undefined &&
212
213
  v[0].values !== undefined &&
213
214
  v[0].displayValues !== undefined &&
214
215
  v[0].mergedFieldNames !== undefined)));
@@ -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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\n values: ValuesDictionary<ValueJSON>;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n displayValue: DisplayValueJSON;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line deprecation/deprecation\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] 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 deprecation/deprecation\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(Value.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(Value.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(DisplayValue.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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":["/*---------------------------------------------------------------------------------------------\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\n values: ValuesDictionary<ValueJSON>;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n displayValue: DisplayValueJSON;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(Value.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(Value.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(DisplayValue.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n"]}
@@ -205,7 +205,8 @@ function isNestedContentValue(v) {
205
205
  return (v !== undefined &&
206
206
  Array.isArray(v) &&
207
207
  (v.length === 0 ||
208
- (v[0].primaryKeys !== undefined &&
208
+ (!!v[0] &&
209
+ v[0].primaryKeys !== undefined &&
209
210
  v[0].values !== undefined &&
210
211
  v[0].displayValues !== undefined &&
211
212
  v[0].mergedFieldNames !== undefined)));
@@ -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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\n values: ValuesDictionary<ValueJSON>;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n displayValue: DisplayValueJSON;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line deprecation/deprecation\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] 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 deprecation/deprecation\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(Value.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(Value.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(DisplayValue.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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":["/*---------------------------------------------------------------------------------------------\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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-interface\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-interface\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\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 deprecation/deprecation\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> {} // eslint-disable-line @typescript-eslint/no-empty-interface\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 deprecation/deprecation\r\n values: ValuesDictionary<ValueJSON>;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n displayValue: DisplayValueJSON;\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n // eslint-disable-next-line deprecation/deprecation\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(Value.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(Value.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\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 deprecation/deprecation\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return values.map(DisplayValue.toJSON);\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n// eslint-disable-next-line deprecation/deprecation\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n // eslint-disable-next-line deprecation/deprecation\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 deprecation/deprecation\r\n map[key] = DisplayValue.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/presentation-common",
3
- "version": "4.10.0-dev.6",
3
+ "version": "4.10.0-dev.8",
4
4
  "description": "Common pieces for iModel.js presentation packages",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -22,10 +22,10 @@
22
22
  "module": "lib/esm/presentation-common.js",
23
23
  "typings": "lib/cjs/presentation-common",
24
24
  "peerDependencies": {
25
- "@itwin/core-bentley": "^4.10.0-dev.6",
26
- "@itwin/core-common": "^4.10.0-dev.6",
27
- "@itwin/core-quantity": "^4.10.0-dev.6",
28
- "@itwin/ecschema-metadata": "^4.10.0-dev.6"
25
+ "@itwin/core-bentley": "^4.10.0-dev.8",
26
+ "@itwin/core-common": "^4.10.0-dev.8",
27
+ "@itwin/core-quantity": "^4.10.0-dev.8",
28
+ "@itwin/ecschema-metadata": "^4.10.0-dev.8"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@itwin/eslint-plugin": "^4.0.2",
@@ -61,11 +61,11 @@
61
61
  "typescript": "~5.3.3",
62
62
  "typescript-json-schema": "^0.55.0",
63
63
  "yargs": "^17.4.0",
64
- "@itwin/build-tools": "4.10.0-dev.6",
65
- "@itwin/core-bentley": "4.10.0-dev.6",
66
- "@itwin/core-common": "4.10.0-dev.6",
67
- "@itwin/ecschema-metadata": "4.10.0-dev.6",
68
- "@itwin/core-quantity": "4.10.0-dev.6"
64
+ "@itwin/build-tools": "4.10.0-dev.8",
65
+ "@itwin/core-bentley": "4.10.0-dev.8",
66
+ "@itwin/core-common": "4.10.0-dev.8",
67
+ "@itwin/core-quantity": "4.10.0-dev.8",
68
+ "@itwin/ecschema-metadata": "4.10.0-dev.8"
69
69
  },
70
70
  "nyc": {
71
71
  "extends": "./node_modules/@itwin/build-tools/.nycrc"