@itwin/presentation-common 4.10.0-dev.31 → 4.10.0-dev.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/lib/cjs/presentation-common/Diagnostics.js +3 -3
  2. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  3. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  4. package/lib/cjs/presentation-common/EC.js +4 -4
  5. package/lib/cjs/presentation-common/EC.js.map +1 -1
  6. package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
  7. package/lib/cjs/presentation-common/Error.js +0 -1
  8. package/lib/cjs/presentation-common/Error.js.map +1 -1
  9. package/lib/cjs/presentation-common/KeySet.js +5 -5
  10. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  11. package/lib/cjs/presentation-common/LabelDefinition.js +4 -4
  12. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  13. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +3 -3
  14. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  15. package/lib/cjs/presentation-common/PresentationManagerOptions.js +2 -3
  16. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  17. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  18. package/lib/cjs/presentation-common/PresentationRpcInterface.js +4 -5
  19. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  20. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  21. package/lib/cjs/presentation-common/RpcRequestsHandler.js +5 -5
  22. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  23. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  24. package/lib/cjs/presentation-common/RulesetsFactory.js +0 -1
  25. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  26. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  27. package/lib/cjs/presentation-common/Update.js +14 -14
  28. package/lib/cjs/presentation-common/Update.js.map +1 -1
  29. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  30. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +1 -1
  31. package/lib/cjs/presentation-common/content/ContentTraverser.js +10 -10
  32. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  33. package/lib/cjs/presentation-common/content/Descriptor.js +6 -6
  34. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  35. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +1 -1
  36. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts.map +1 -1
  37. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  38. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  39. package/lib/cjs/presentation-common/content/Fields.js +2 -2
  40. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  41. package/lib/cjs/presentation-common/content/Item.js +7 -7
  42. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  43. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  44. package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
  45. package/lib/cjs/presentation-common/content/Value.js +34 -34
  46. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  47. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +2 -2
  48. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  49. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  50. package/lib/cjs/presentation-common/hierarchy/Key.js +8 -8
  51. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  52. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  53. package/lib/cjs/presentation-common/hierarchy/Node.js +9 -9
  54. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  55. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +13 -13
  56. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  57. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  58. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  59. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  60. package/lib/esm/presentation-common/EC.js +4 -4
  61. package/lib/esm/presentation-common/EC.js.map +1 -1
  62. package/lib/esm/presentation-common/Error.d.ts.map +1 -1
  63. package/lib/esm/presentation-common/Error.js +0 -1
  64. package/lib/esm/presentation-common/Error.js.map +1 -1
  65. package/lib/esm/presentation-common/KeySet.js +5 -5
  66. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  67. package/lib/esm/presentation-common/LabelDefinition.js +4 -4
  68. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  69. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +3 -3
  70. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  71. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  72. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  73. package/lib/esm/presentation-common/PresentationRpcInterface.js +4 -5
  74. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  75. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  76. package/lib/esm/presentation-common/RpcRequestsHandler.js +5 -5
  77. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  78. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  79. package/lib/esm/presentation-common/RulesetsFactory.js +0 -1
  80. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  81. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  82. package/lib/esm/presentation-common/Update.js +14 -14
  83. package/lib/esm/presentation-common/Update.js.map +1 -1
  84. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  85. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +1 -1
  86. package/lib/esm/presentation-common/content/ContentTraverser.js +2 -2
  87. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  88. package/lib/esm/presentation-common/content/Descriptor.js +6 -6
  89. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  90. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +1 -1
  91. package/lib/esm/presentation-common/content/DisplayTypes.d.ts.map +1 -1
  92. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  93. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  94. package/lib/esm/presentation-common/content/Fields.js +2 -2
  95. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  96. package/lib/esm/presentation-common/content/Item.js +7 -7
  97. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  98. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  99. package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
  100. package/lib/esm/presentation-common/content/Value.js +34 -34
  101. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  102. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +2 -2
  103. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  104. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  105. package/lib/esm/presentation-common/hierarchy/Key.js +8 -8
  106. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  107. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  108. package/lib/esm/presentation-common/hierarchy/Node.js +9 -9
  109. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  110. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +13 -13
  111. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  112. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  113. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  114. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Fields.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, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n ClassInfo,\r\n ClassInfoJSON,\r\n CompressedClassInfoJSON,\r\n NavigationPropertyInfo,\r\n PropertyInfo,\r\n PropertyInfoJSON,\r\n RelatedClassInfo,\r\n RelationshipPath,\r\n RelationshipPathJSON,\r\n StrippedRelationshipPath,\r\n} from \"../EC\";\r\nimport { PresentationError, PresentationStatus } from \"../Error\";\r\nimport { RelationshipMeaning } from \"../rules/content/modifiers/RelatedPropertiesSpecification\";\r\nimport { CategoryDescription } from \"./Category\";\r\nimport { EditorDescription } from \"./Editor\";\r\nimport { Property, PropertyJSON } from \"./Property\";\r\nimport { RendererDescription } from \"./Renderer\";\r\nimport { TypeDescription } from \"./TypeDescription\";\r\n\r\n/**\r\n * Data structure for a [[Field]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface BaseFieldJSON {\r\n category: string;\r\n name: string;\r\n label: string;\r\n type: TypeDescription;\r\n isReadonly: boolean;\r\n priority: number;\r\n renderer?: RendererDescription;\r\n editor?: EditorDescription;\r\n extendedData?: { [key: string]: unknown };\r\n}\r\n\r\n/**\r\n * Data structure for a [[PropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport interface PropertiesFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\r\n properties: PropertyJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * Data structure for a [[ArrayPropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface ArrayPropertiesFieldJSON<TClassInfoJSON = ClassInfo> extends PropertiesFieldJSON<TClassInfoJSON> {\r\n itemsField: PropertiesFieldJSON<TClassInfoJSON>;\r\n}\r\n\r\n/**\r\n * Data structure for a [[StructPropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface StructPropertiesFieldJSON<TClassInfoJSON = ClassInfo> extends PropertiesFieldJSON<TClassInfoJSON> {\r\n memberFields: PropertiesFieldJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * Data structure for a [[NestedContentField]] serialized to JSON.\r\n * @public\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport interface NestedContentFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\r\n contentClassInfo: TClassInfoJSON;\r\n pathToPrimaryClass: RelationshipPathJSON<TClassInfoJSON>;\r\n relationshipMeaning?: RelationshipMeaning;\r\n actualPrimaryClassIds?: Id64String[];\r\n autoExpand?: boolean;\r\n nestedFields: FieldJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * JSON representation of a [[Field]]\r\n * @public\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport type FieldJSON<TClassInfoJSON = ClassInfoJSON> =\r\n | BaseFieldJSON\r\n | PropertiesFieldJSON<TClassInfoJSON>\r\n | ArrayPropertiesFieldJSON<TClassInfoJSON>\r\n | StructPropertiesFieldJSON<TClassInfoJSON>\r\n | NestedContentFieldJSON<TClassInfoJSON>;\r\n\r\n/** Is supplied field a properties field. */\r\nfunction isPropertiesField(field: FieldJSON): field is PropertiesFieldJSON<any>;\r\nfunction isPropertiesField(field: Field): field is PropertiesField;\r\nfunction isPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as any).properties;\r\n}\r\n\r\n/** Is supplied field an array properties field. */\r\nfunction isArrayPropertiesField(field: FieldJSON): field is ArrayPropertiesFieldJSON<any>;\r\nfunction isArrayPropertiesField(field: Field): field is ArrayPropertiesField;\r\nfunction isArrayPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as ArrayPropertiesFieldJSON).itemsField;\r\n}\r\n\r\n/** Is supplied field an array properties field. */\r\nfunction isStructPropertiesField(field: FieldJSON): field is StructPropertiesFieldJSON<any>;\r\nfunction isStructPropertiesField(field: Field): field is StructPropertiesField;\r\nfunction isStructPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as StructPropertiesFieldJSON).memberFields;\r\n}\r\n\r\n/** Is supplied field a nested content field. */\r\nfunction isNestedContentField(field: FieldJSON): field is NestedContentFieldJSON<any>;\r\nfunction isNestedContentField(field: Field): field is NestedContentField;\r\nfunction isNestedContentField(field: FieldJSON | Field) {\r\n return !!(field as any).nestedFields;\r\n}\r\n\r\n/**\r\n * Describes a single content field. A field is usually represented as a grid column\r\n * or a property pane row.\r\n *\r\n * @public\r\n */\r\nexport class Field {\r\n /** Category information */\r\n public category: CategoryDescription;\r\n /** Unique name */\r\n public name: string;\r\n /** Display label */\r\n public label: string;\r\n /** Description of this field's values data type */\r\n public type: TypeDescription;\r\n /** Are values in this field read-only */\r\n public isReadonly: boolean;\r\n /** Priority of the field. Higher priority fields should appear first in the UI */\r\n public priority: number;\r\n /** Property renderer used to render values of this field */\r\n public renderer?: RendererDescription;\r\n /** Property editor used to edit values of this field */\r\n public editor?: EditorDescription;\r\n /** Extended data associated with this field */\r\n public extendedData?: { [key: string]: unknown };\r\n /** Parent field */\r\n private _parent?: NestedContentField;\r\n\r\n /**\r\n * Creates an instance of Field.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param editor Property editor used to edit values of this field\r\n * @param renderer Property renderer used to render values of this field\r\n * @param extendedData Extended data associated with this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n type: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n extendedData?: { [key: string] : unknown }\r\n ) {\r\n this.category = category;\r\n this.name = name;\r\n this.label = label;\r\n this.type = type;\r\n this.isReadonly = isReadonly;\r\n this.priority = priority;\r\n this.editor = editor;\r\n this.renderer = renderer;\r\n this.extendedData = extendedData;\r\n }\r\n\r\n /**\r\n * Is this a [[PropertiesField]]\r\n */\r\n public isPropertiesField(): this is PropertiesField {\r\n return isPropertiesField(this);\r\n }\r\n\r\n /**\r\n * Is this a [[NestedContentField]]\r\n */\r\n public isNestedContentField(): this is NestedContentField {\r\n return isNestedContentField(this);\r\n }\r\n\r\n /**\r\n * Get parent\r\n */\r\n public get parent(): NestedContentField | undefined {\r\n return this._parent;\r\n }\r\n\r\n public clone() {\r\n const clone = new Field(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.editor, this.renderer, this.extendedData);\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public toJSON(): FieldJSON {\r\n return {\r\n category: this.category.name,\r\n name: this.name,\r\n label: this.label,\r\n type: this.type,\r\n isReadonly: this.isReadonly,\r\n priority: this.priority,\r\n renderer: this.renderer,\r\n editor: this.editor,\r\n extendedData: this.extendedData\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public toCompressedJSON(_classesMap: { [id: string]: CompressedClassInfoJSON }): FieldJSON<string> {\r\n return this.toJSON();\r\n }\r\n\r\n /** Deserialize [[Field]] from JSON */\r\n public static fromJSON(json: FieldJSON | undefined, categories: CategoryDescription[]): Field | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n if (isPropertiesField(json)) {\r\n return PropertiesField.fromJSON(json, categories);\r\n }\r\n if (isNestedContentField(json)) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return NestedContentField.fromJSON(json, categories);\r\n }\r\n const field = Object.create(Field.prototype);\r\n return Object.assign(field, json, {\r\n category: Field.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n /** Deserialize a [[Field]] from compressed JSON. */\r\n public static fromCompressedJSON(\r\n json: FieldJSON<string> | undefined,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): Field | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n if (isPropertiesField(json)) {\r\n return PropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n\r\n if (isNestedContentField(json)) {\r\n return NestedContentField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n\r\n const field = Object.create(Field.prototype);\r\n return Object.assign(field, json, {\r\n category: Field.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n protected static getCategoryFromFieldJson(fieldJson: FieldJSON, categories: CategoryDescription[]): CategoryDescription {\r\n const category = categories.find((c) => c.name === fieldJson.category);\r\n if (!category) {\r\n throw new PresentationError(PresentationStatus.InvalidArgument, `Invalid content field category`);\r\n }\r\n return category;\r\n }\r\n\r\n /** Resets field's parent. */\r\n public resetParentship(): void {\r\n this._parent = undefined;\r\n }\r\n\r\n /** Sets provided [[NestedContentField]] as parent of this field. */\r\n public rebuildParentship(parentField?: NestedContentField): void {\r\n this._parent = parentField;\r\n }\r\n\r\n /**\r\n * Get descriptor for this field.\r\n * @public\r\n */\r\n public getFieldDescriptor(): FieldDescriptor {\r\n return {\r\n type: FieldDescriptorType.Name,\r\n fieldName: this.name,\r\n } as NamedFieldDescriptor;\r\n }\r\n\r\n /**\r\n * Checks if this field matches given field descriptor\r\n * @see [[getFieldDescriptor]]\r\n */\r\n public matchesDescriptor(descriptor: FieldDescriptor) {\r\n return FieldDescriptor.isNamed(descriptor) && descriptor.fieldName === this.name;\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar\r\n * EC properties.\r\n *\r\n * @public\r\n */\r\nexport class PropertiesField extends Field {\r\n /** A list of properties this field is created from */\r\n public properties: Property[];\r\n\r\n /**\r\n * Creates an instance of PropertiesField.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param properties A list of properties this field is created from\r\n * @param editor Property editor used to edit values of this field\r\n * @param renderer Property renderer used to render values of this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, editor, renderer);\r\n this.properties = properties;\r\n }\r\n\r\n /** Is this a an array property field */\r\n public isArrayPropertiesField(): this is ArrayPropertiesField {\r\n return false;\r\n }\r\n /** Is this a an struct property field */\r\n public isStructPropertiesField(): this is StructPropertiesField {\r\n return false;\r\n }\r\n\r\n public override clone() {\r\n const clone = new PropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): PropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n properties: this.properties,\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): PropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),\r\n };\r\n }\r\n\r\n /** Deserialize [[PropertiesField]] from JSON */\r\n public static override fromJSON(json: PropertiesFieldJSON | undefined, categories: CategoryDescription[]): PropertiesField | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n if (isArrayPropertiesField(json)) {\r\n return ArrayPropertiesField.fromJSON(json, categories);\r\n }\r\n if (isStructPropertiesField(json)) {\r\n return StructPropertiesField.fromJSON(json, categories);\r\n }\r\n\r\n const field = Object.create(PropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize a [[PropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: PropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): PropertiesField | undefined {\r\n if (isArrayPropertiesField(json)) {\r\n return ArrayPropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n if (isStructPropertiesField(json)) {\r\n return StructPropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n const field = Object.create(PropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n });\r\n }\r\n\r\n /**\r\n * Get descriptor for this field.\r\n * @public\r\n */\r\n public override getFieldDescriptor(): FieldDescriptor {\r\n const pathFromPropertyToSelectClass = new Array<RelatedClassInfo>();\r\n let currAncestor = this.parent;\r\n while (currAncestor) {\r\n pathFromPropertyToSelectClass.push(...currAncestor.pathToPrimaryClass);\r\n currAncestor = currAncestor.parent;\r\n }\r\n return {\r\n type: FieldDescriptorType.Properties,\r\n pathFromSelectToPropertyClass: RelationshipPath.strip(RelationshipPath.reverse(pathFromPropertyToSelectClass)),\r\n properties: this.properties.map((p) => ({\r\n class: p.property.classInfo.name,\r\n name: p.property.name,\r\n })),\r\n } as PropertiesFieldDescriptor;\r\n }\r\n\r\n /**\r\n * Checks if this field matches given field descriptor\r\n * @see [[getFieldDescriptor]]\r\n */\r\n public override matchesDescriptor(descriptor: FieldDescriptor) {\r\n if (!FieldDescriptor.isProperties(descriptor)) {\r\n return false;\r\n }\r\n\r\n // ensure at least one descriptor property matches at least one property of this field\r\n if (\r\n !this.properties.some(({ property: fieldProperty }) =>\r\n descriptor.properties.some(\r\n (descriptorProperty) => fieldProperty.name === descriptorProperty.name && fieldProperty.classInfo.name === descriptorProperty.class,\r\n ),\r\n )\r\n ) {\r\n return false;\r\n }\r\n\r\n // ensure path from select to property in field and in descriptor matches\r\n let stepsCount = 0;\r\n let currAncestor = this.parent;\r\n while (currAncestor) {\r\n const pathFromCurrentToItsParent = RelationshipPath.reverse(currAncestor.pathToPrimaryClass);\r\n for (const step of pathFromCurrentToItsParent) {\r\n if (descriptor.pathFromSelectToPropertyClass.length < stepsCount + 1) {\r\n return false;\r\n }\r\n if (!RelatedClassInfo.equals(step, descriptor.pathFromSelectToPropertyClass[descriptor.pathFromSelectToPropertyClass.length - stepsCount - 1])) {\r\n return false;\r\n }\r\n ++stepsCount;\r\n }\r\n currAncestor = currAncestor.parent;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar EC array properties.\r\n * @public\r\n */\r\nexport class ArrayPropertiesField extends PropertiesField {\r\n public itemsField: PropertiesField;\r\n\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n itemsField: PropertiesField,\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, properties, editor, renderer);\r\n this.itemsField = itemsField;\r\n }\r\n\r\n public override isArrayPropertiesField(): this is ArrayPropertiesField {\r\n return true;\r\n }\r\n\r\n public override clone() {\r\n const clone = new ArrayPropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.itemsField.clone(),\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): ArrayPropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n itemsField: this.itemsField.toJSON(),\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): ArrayPropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n itemsField: this.itemsField.toCompressedJSON(classesMap),\r\n };\r\n }\r\n\r\n /** Deserialize [[ArrayPropertiesField]] from JSON */\r\n public static override fromJSON(json: ArrayPropertiesFieldJSON, categories: CategoryDescription[]): ArrayPropertiesField {\r\n const field = Object.create(ArrayPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n itemsField: PropertiesField.fromJSON(json.itemsField, categories),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize an [[ArrayPropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: ArrayPropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): ArrayPropertiesField {\r\n const field = Object.create(ArrayPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n itemsField: PropertiesField.fromCompressedJSON(json.itemsField, classesMap, categories),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar EC struct properties.\r\n * @public\r\n */\r\nexport class StructPropertiesField extends PropertiesField {\r\n public memberFields: PropertiesField[];\r\n\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n memberFields: PropertiesField[],\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, properties, editor, renderer);\r\n this.memberFields = memberFields;\r\n }\r\n\r\n public override isStructPropertiesField(): this is StructPropertiesField {\r\n return true;\r\n }\r\n\r\n public override clone() {\r\n const clone = new StructPropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.memberFields.map((m) => m.clone()),\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): StructPropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n memberFields: this.memberFields.map((m) => m.toJSON()),\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): StructPropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n memberFields: this.memberFields.map((m) => m.toCompressedJSON(classesMap)),\r\n };\r\n }\r\n\r\n /** Deserialize [[StructPropertiesField]] from JSON */\r\n public static override fromJSON(json: StructPropertiesFieldJSON, categories: CategoryDescription[]): StructPropertiesField {\r\n const field = Object.create(StructPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n memberFields: json.memberFields.map((m) => PropertiesField.fromJSON(m, categories)),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize a [[StructPropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: StructPropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): StructPropertiesField {\r\n const field = Object.create(StructPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n memberFields: json.memberFields.map((m) => PropertiesField.fromCompressedJSON(m, classesMap, categories)),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).\r\n *\r\n * @public\r\n */\r\nexport class NestedContentField extends Field {\r\n /** Information about an ECClass whose properties are nested inside this field */\r\n public contentClassInfo: ClassInfo;\r\n /** Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class) */\r\n public pathToPrimaryClass: RelationshipPath;\r\n /**\r\n * Meaning of the relationship between the [primary class]($docs/presentation/content/Terminology#primary-class)\r\n * and content class of this field.\r\n *\r\n * The value is set up through [[RelatedPropertiesSpecification.relationshipMeaning]] attribute when setting up\r\n * presentation rules for creating the content.\r\n */\r\n public relationshipMeaning: RelationshipMeaning;\r\n /**\r\n * When content descriptor is requested in a polymorphic fashion, fields get created if at least one of the concrete classes\r\n * has it. In certain situations it's necessary to know which concrete classes caused that and this attribute is\r\n * here to help.\r\n *\r\n * **Example:** There's a base class `A` and it has two derived classes `B` and `C` and class `B` has a relationship to class `D`.\r\n * When content descriptor is requested for class `A` polymorphically, it's going to contain fields for all properties of class `B`,\r\n * class `C` and a nested content field for the `B -> D` relationship. The nested content field's `actualPrimaryClassIds` attribute\r\n * will contain ID of class `B`, identifying that only this specific class has the relationship.\r\n */\r\n public actualPrimaryClassIds: Id64String[];\r\n /** Contained nested fields */\r\n public nestedFields: Field[];\r\n /** Flag specifying whether field should be expanded */\r\n public autoExpand?: boolean;\r\n\r\n /**\r\n * Creates an instance of NestedContentField.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param contentClassInfo Information about an ECClass whose properties are nested inside this field\r\n * @param pathToPrimaryClass Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class)\r\n * @param nestedFields Contained nested fields\r\n * @param editor Property editor used to edit values of this field\r\n * @param autoExpand Flag specifying whether field should be expanded\r\n * @param relationshipMeaning RelationshipMeaning of the field\r\n * @param renderer Property renderer used to render values of this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n contentClassInfo: ClassInfo,\r\n pathToPrimaryClass: RelationshipPath,\r\n nestedFields: Field[],\r\n editor?: EditorDescription,\r\n autoExpand?: boolean,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, editor, renderer);\r\n this.contentClassInfo = contentClassInfo;\r\n this.pathToPrimaryClass = pathToPrimaryClass;\r\n this.relationshipMeaning = RelationshipMeaning.RelatedInstance;\r\n this.nestedFields = nestedFields;\r\n this.autoExpand = autoExpand;\r\n this.actualPrimaryClassIds = [];\r\n }\r\n\r\n public override clone() {\r\n const clone = new NestedContentField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.isReadonly,\r\n this.priority,\r\n this.contentClassInfo,\r\n this.pathToPrimaryClass,\r\n this.nestedFields.map((n) => n.clone()),\r\n this.editor,\r\n this.autoExpand,\r\n this.renderer,\r\n );\r\n clone.actualPrimaryClassIds = this.actualPrimaryClassIds;\r\n clone.relationshipMeaning = this.relationshipMeaning;\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /**\r\n * Get field by its name\r\n * @param name Name of the field to find\r\n * @param recurse Recurse into nested fields\r\n */\r\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\r\n return getFieldByName(this.nestedFields, name, recurse);\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): NestedContentFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n contentClassInfo: this.contentClassInfo,\r\n pathToPrimaryClass: this.pathToPrimaryClass,\r\n relationshipMeaning: this.relationshipMeaning,\r\n actualPrimaryClassIds: this.actualPrimaryClassIds,\r\n nestedFields: this.nestedFields.map((field: Field) => field.toJSON()),\r\n autoExpand: this.autoExpand,\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): NestedContentFieldJSON<string> {\r\n const { id, ...leftOverInfo } = this.contentClassInfo;\r\n classesMap[id] = leftOverInfo;\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n contentClassInfo: id,\r\n pathToPrimaryClass: this.pathToPrimaryClass.map((classInfo) => RelatedClassInfo.toCompressedJSON(classInfo, classesMap)),\r\n nestedFields: this.nestedFields.map((field) => field.toCompressedJSON(classesMap)),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[NestedContentField]] from JSON\r\n * @deprecated in 3.x. Use [[NestedContentField.fromCompressedJSON]]\r\n */\r\n public static override fromJSON(json: NestedContentFieldJSON | undefined, categories: CategoryDescription[]): NestedContentField | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n const field = Object.create(NestedContentField.prototype);\r\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\r\n nestedFields: json.nestedFields\r\n .map((nestedFieldJson: FieldJSON) => Field.fromJSON(nestedFieldJson, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n });\r\n }\r\n\r\n /** Deserialize a [[NestedContentField]] from compressed JSON. */\r\n public static override fromCompressedJSON(\r\n json: NestedContentFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ) {\r\n assert(classesMap.hasOwnProperty(json.contentClassInfo));\r\n const field = Object.create(NestedContentField.prototype);\r\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n nestedFields: json.nestedFields\r\n .map((nestedFieldJson: FieldJSON) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n contentClassInfo: { id: json.contentClassInfo, ...classesMap[json.contentClassInfo] },\r\n pathToPrimaryClass: json.pathToPrimaryClass.map((stepJson) => RelatedClassInfo.fromCompressedJSON(stepJson, classesMap)),\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private static fromCommonJSON(json: NestedContentFieldJSON<ClassInfoJSON | string>, categories: CategoryDescription[]): Partial<NestedContentField> {\r\n return {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n relationshipMeaning: json.relationshipMeaning ?? RelationshipMeaning.RelatedInstance,\r\n actualPrimaryClassIds: json.actualPrimaryClassIds ?? [],\r\n autoExpand: json.autoExpand,\r\n };\r\n }\r\n\r\n /** Resets parent of this field and all nested fields. */\r\n public override resetParentship(): void {\r\n super.resetParentship();\r\n for (const nestedField of this.nestedFields) {\r\n nestedField.resetParentship();\r\n }\r\n }\r\n\r\n /**\r\n * Sets provided [[NestedContentField]] as parent of this fields and recursively updates\r\n * all nested fields parents.\r\n */\r\n public override rebuildParentship(parentField?: NestedContentField): void {\r\n super.rebuildParentship(parentField);\r\n for (const nestedField of this.nestedFields) {\r\n nestedField.rebuildParentship(this);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const getFieldByName = (fields: Field[], name: string | undefined, recurse?: boolean): Field | undefined => {\r\n if (name) {\r\n for (const field of fields) {\r\n if (field.name === name) {\r\n return field;\r\n }\r\n\r\n if (recurse && field.isNestedContentField()) {\r\n const nested = getFieldByName(field.nestedFields, name, recurse);\r\n if (nested) {\r\n return nested;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFieldByDescriptor = (fields: Field[], fieldDescriptor: FieldDescriptor, recurse?: boolean): Field | undefined => {\r\n for (const field of fields) {\r\n if (field.matchesDescriptor(fieldDescriptor)) {\r\n return field;\r\n }\r\n\r\n if (recurse && field.isNestedContentField()) {\r\n const nested = getFieldByDescriptor(field.nestedFields, fieldDescriptor, recurse);\r\n if (nested) {\r\n return nested;\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Types of different field descriptors.\r\n * @public\r\n */\r\nexport enum FieldDescriptorType {\r\n Name = \"name\",\r\n Properties = \"properties\",\r\n}\r\n\r\n/**\r\n * Base for a field descriptor\r\n * @public\r\n */\r\nexport interface FieldDescriptorBase {\r\n type: FieldDescriptorType;\r\n}\r\n\r\n/**\r\n * A union of all possible field descriptor types\r\n * @public\r\n */\r\nexport type FieldDescriptor = NamedFieldDescriptor | PropertiesFieldDescriptor;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace FieldDescriptor {\r\n /** Is this a named field descriptor */\r\n export function isNamed(d: FieldDescriptor): d is NamedFieldDescriptor {\r\n return d.type === FieldDescriptorType.Name;\r\n }\r\n /** Is this a properties field descriptor */\r\n export function isProperties(d: FieldDescriptor): d is PropertiesFieldDescriptor {\r\n return d.type === FieldDescriptorType.Properties;\r\n }\r\n}\r\n\r\n/**\r\n * Field descriptor that identifies a content field by its unique name.\r\n * @public\r\n */\r\nexport interface NamedFieldDescriptor extends FieldDescriptorBase {\r\n type: FieldDescriptorType.Name;\r\n fieldName: string;\r\n}\r\n\r\n/**\r\n * Field descriptor that identifies a properties field using a list of\r\n * properties that the field contains.\r\n * @public\r\n */\r\nexport interface PropertiesFieldDescriptor extends FieldDescriptorBase {\r\n type: FieldDescriptorType.Properties;\r\n pathFromSelectToPropertyClass: StrippedRelationshipPath;\r\n /**\r\n * A list of properties that describe the field. At least one property in the list must\r\n * match at least one property in the field for the descriptor to be considered matching.\r\n */\r\n properties: Array<{\r\n /** Full class name */\r\n class: string;\r\n /** Property name */\r\n name: string;\r\n }>;\r\n}\r\n\r\nfunction fromCompressedPropertyJSON(compressedPropertyJSON: PropertyJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): Property {\r\n return {\r\n property: fromCompressedPropertyInfoJSON(compressedPropertyJSON.property, classesMap),\r\n };\r\n}\r\n\r\nfunction fromCompressedPropertyInfoJSON(compressedPropertyJSON: PropertyInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): PropertyInfo {\r\n assert(classesMap.hasOwnProperty(compressedPropertyJSON.classInfo));\r\n\r\n const { navigationPropertyInfo, ...leftOverPropertyJSON } = compressedPropertyJSON;\r\n\r\n return {\r\n ...leftOverPropertyJSON,\r\n classInfo: { id: compressedPropertyJSON.classInfo, ...classesMap[compressedPropertyJSON.classInfo] },\r\n ...(navigationPropertyInfo ? { navigationPropertyInfo: NavigationPropertyInfo.fromCompressedJSON(navigationPropertyInfo, classesMap) } : undefined),\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Fields.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,sDAAyD;AACzD,8BAWe;AACf,oCAAiE;AACjE,8GAAgG;AAGhG,yCAAoD;AAyEpD,SAAS,iBAAiB,CAAC,KAAwB;IACjD,OAAO,CAAC,CAAE,KAAa,CAAC,UAAU,CAAC;AACrC,CAAC;AAKD,SAAS,sBAAsB,CAAC,KAAwB;IACtD,OAAO,CAAC,CAAE,KAAkC,CAAC,UAAU,CAAC;AAC1D,CAAC;AAKD,SAAS,uBAAuB,CAAC,KAAwB;IACvD,OAAO,CAAC,CAAE,KAAmC,CAAC,YAAY,CAAC;AAC7D,CAAC;AAKD,SAAS,oBAAoB,CAAC,KAAwB;IACpD,OAAO,CAAC,CAAE,KAAa,CAAC,YAAY,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAa,KAAK;IAsBhB;;;;;;;;;;;OAWG;IACH,YACE,QAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,IAAqB,EACrB,UAAmB,EACnB,QAAgB,EAChB,MAA0B,EAC1B,QAA8B,EAC9B,YAA0C;QAE1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,oBAAoB;QACzB,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,KAAK;QACV,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxJ,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IAC7B,MAAM;QACX,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,+CAA+C;IACxC,gBAAgB,CAAC,WAAsD;QAC5E,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAA2B,EAAE,UAAiC;QACnF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,4DAA4D;YAC5D,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IAC7C,MAAM,CAAC,kBAAkB,CAC9B,IAAmC,EACnC,UAAqD,EACrD,UAAiC;QAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAES,MAAM,CAAC,wBAAwB,CAAC,SAAoB,EAAE,UAAiC;QAC/F,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,yBAAiB,CAAC,0BAAkB,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6BAA6B;IACtB,eAAe;QACpB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,oEAAoE;IAC7D,iBAAiB,CAAC,WAAgC;QACvD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,OAAO;YACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,SAAS,EAAE,IAAI,CAAC,IAAI;SACG,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,UAA2B;QAClD,OAAO,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC;IACnF,CAAC;CACF;AArLD,sBAqLC;AAED;;;;;GAKG;AACH,MAAa,eAAgB,SAAQ,KAAK;IAIxC;;;;;;;;;;;OAWG;IACH,YACE,QAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,WAA4B,EAC5B,UAAmB,EACnB,QAAgB,EAChB,UAAsB,EACtB,MAA0B,EAC1B,QAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,wCAAwC;IACjC,sBAAsB;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,yCAAyC;IAClC,uBAAuB;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAEe,KAAK;QACnB,MAAM,KAAK,GAAG,IAAI,eAAe,CAC/B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpB,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/B,gBAAgB,CAAC,UAAqD;QACpF,OAAO;YACL,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SAC/F,CAAC;IACJ,CAAC;IAED,gDAAgD;IACzC,MAAM,CAAU,QAAQ,CAAC,IAAqC,EAAE,UAAiC;QACtG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,MAAM,CAAU,kBAAkB,CACvC,IAAqC,EACrC,UAAqD,EACrD,UAAiC;QAEjC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;SACxG,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACa,kBAAkB;QAChC,MAAM,6BAA6B,GAAG,IAAI,KAAK,EAAoB,CAAC;QACpE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,YAAY,EAAE,CAAC;YACpB,6BAA6B,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACvE,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,mBAAmB,CAAC,UAAU;YACpC,6BAA6B,EAAE,qBAAgB,CAAC,KAAK,CAAC,qBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YAC9G,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;gBAChC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;aACtB,CAAC,CAAC;SACyB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACa,iBAAiB,CAAC,UAA2B;QAC3D,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sFAAsF;QACtF,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CACpD,UAAU,CAAC,UAAU,CAAC,IAAI,CACxB,CAAC,kBAAkB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,KAAK,kBAAkB,CAAC,KAAK,CACpI,CACF,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yEAAyE;QACzE,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,YAAY,EAAE,CAAC;YACpB,MAAM,0BAA0B,GAAG,qBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC7F,KAAK,MAAM,IAAI,IAAI,0BAA0B,EAAE,CAAC;gBAC9C,IAAI,UAAU,CAAC,6BAA6B,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;oBACrE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,qBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,6BAA6B,CAAC,UAAU,CAAC,6BAA6B,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/I,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,EAAE,UAAU,CAAC;YACf,CAAC;YACD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA5KD,0CA4KC;AAED;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,eAAe;IAGvD,YACE,QAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,WAA4B,EAC5B,UAA2B,EAC3B,UAAmB,EACnB,QAAgB,EAChB,UAAsB,EACtB,MAA0B,EAC1B,QAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9F,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEe,sBAAsB;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK;QACnB,MAAM,KAAK,GAAG,IAAI,oBAAoB,CACpC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EACvB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpB,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/B,gBAAgB,CAAC,UAAqD;QACpF,OAAO;YACL,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,qDAAqD;IAC9C,MAAM,CAAU,QAAQ,CAAC,IAA8B,EAAE,UAAiC;QAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,MAAM,CAAU,kBAAkB,CACvC,IAA0C,EAC1C,UAAqD,EACrD,UAAiC;QAEjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACvG,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;SACxF,CAAC,CAAC;IACL,CAAC;CACF;AAjFD,oDAiFC;AAED;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,eAAe;IAGxD,YACE,QAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,WAA4B,EAC5B,YAA+B,EAC/B,UAAmB,EACnB,QAAgB,EAChB,UAAsB,EACtB,MAA0B,EAC1B,QAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEe,uBAAuB;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK;QACnB,MAAM,KAAK,GAAG,IAAI,qBAAqB,CACrC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EACvC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpB,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACvD,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/B,gBAAgB,CAAC,UAAqD;QACpF,OAAO;YACL,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC3E,CAAC;IACJ,CAAC;IAED,sDAAsD;IAC/C,MAAM,CAAU,QAAQ,CAAC,IAA+B,EAAE,UAAiC;QAChG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;SACpF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,MAAM,CAAU,kBAAkB,CACvC,IAA2C,EAC3C,UAAqD,EACrD,UAAiC;QAEjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACvG,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SAC1G,CAAC,CAAC;IACL,CAAC;CACF;AAjFD,sDAiFC;AAED;;;;GAIG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IA6B3C;;;;;;;;;;;;;;;OAeG;IACH,YACE,QAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,WAA4B,EAC5B,UAAmB,EACnB,QAAgB,EAChB,gBAA2B,EAC3B,kBAAoC,EACpC,YAAqB,EACrB,MAA0B,EAC1B,UAAoB,EACpB,QAA8B;QAE9B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,oDAAmB,CAAC,eAAe,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAEe,KAAK;QACnB,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACzD,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,IAAY,EAAE,OAAiB;QACnD,OAAO,IAAA,sBAAc,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,oCAAoC;IACpB,MAAM;QACpB,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACrE,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/B,gBAAgB,CAAC,UAAqD;QACpF,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtD,UAAU,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC;QAC9B,OAAO;YACL,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACrC,gBAAgB,EAAE,EAAE;YACpB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAgB,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACxH,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SACnF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAU,QAAQ,CAAC,IAAwC,EAAE,UAAiC;QACzG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACvE,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC5B,GAAG,CAAC,CAAC,eAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;iBAChF,MAAM,CAAC,CAAC,WAAW,EAAwB,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAC1D,MAAM,CAAU,kBAAkB,CACvC,IAAwC,EACxC,UAAqD,EACrD,UAAiC;QAEjC,IAAA,qBAAM,EAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACvE,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC5B,GAAG,CAAC,CAAC,eAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;iBACtG,MAAM,CAAC,CAAC,WAAW,EAAwB,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAC/D,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACrF,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,qBAAgB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SACzH,CAAC,CAAC;IACL,CAAC;IAED,4DAA4D;IACpD,MAAM,CAAC,cAAc,CAAC,IAAoD,EAAE,UAAiC;QACnH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC;YACzD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,oDAAmB,CAAC,eAAe;YACpF,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,EAAE;YACvD,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzC,eAAe;QAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,WAAW,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;OAGG;IACa,iBAAiB,CAAC,WAAgC;QAChE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF;AA1LD,gDA0LC;AAED,gBAAgB;AACT,MAAM,cAAc,GAAG,CAAC,MAAe,EAAE,IAAwB,EAAE,OAAiB,EAAqB,EAAE;IAChH,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,OAAO,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBACjE,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEF,gBAAgB;AACT,MAAM,oBAAoB,GAAG,CAAC,MAAe,EAAE,eAAgC,EAAE,OAAiB,EAAqB,EAAE;IAC9H,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAClF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B;AAEF;;;GAGG;AACH,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,oCAAa,CAAA;IACb,gDAAyB,CAAA;AAC3B,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAgBD,cAAc;AACd,2DAA2D;AAC3D,IAAiB,eAAe,CAS/B;AATD,WAAiB,eAAe;IAC9B,uCAAuC;IACvC,SAAgB,OAAO,CAAC,CAAkB;QACxC,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CAAC;IAC7C,CAAC;IAFe,uBAAO,UAEtB,CAAA;IACD,4CAA4C;IAC5C,SAAgB,YAAY,CAAC,CAAkB;QAC7C,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,UAAU,CAAC;IACnD,CAAC;IAFe,4BAAY,eAE3B,CAAA;AACH,CAAC,EATgB,eAAe,+BAAf,eAAe,QAS/B;AA+BD,SAAS,0BAA0B,CAAC,sBAA4C,EAAE,UAAqD;IACrI,OAAO;QACL,QAAQ,EAAE,8BAA8B,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,sBAAgD,EAAE,UAAqD;IAC7I,IAAA,qBAAM,EAAC,UAAU,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,MAAM,EAAE,sBAAsB,EAAE,GAAG,oBAAoB,EAAE,GAAG,sBAAsB,CAAC;IAEnF,OAAO;QACL,GAAG,oBAAoB;QACvB,SAAS,EAAE,EAAE,EAAE,EAAE,sBAAsB,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE;QACpG,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,2BAAsB,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KACpJ,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n * See LICENSE.md in the project root for license terms and full copyright notice.\r\n *--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Content\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n ClassInfo,\r\n ClassInfoJSON,\r\n CompressedClassInfoJSON,\r\n NavigationPropertyInfo,\r\n PropertyInfo,\r\n PropertyInfoJSON,\r\n RelatedClassInfo,\r\n RelationshipPath,\r\n RelationshipPathJSON,\r\n StrippedRelationshipPath,\r\n} from \"../EC\";\r\nimport { PresentationError, PresentationStatus } from \"../Error\";\r\nimport { RelationshipMeaning } from \"../rules/content/modifiers/RelatedPropertiesSpecification\";\r\nimport { CategoryDescription } from \"./Category\";\r\nimport { EditorDescription } from \"./Editor\";\r\nimport { Property, PropertyJSON } from \"./Property\";\r\nimport { RendererDescription } from \"./Renderer\";\r\nimport { TypeDescription } from \"./TypeDescription\";\r\n\r\n/**\r\n * Data structure for a [[Field]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface BaseFieldJSON {\r\n category: string;\r\n name: string;\r\n label: string;\r\n type: TypeDescription;\r\n isReadonly: boolean;\r\n priority: number;\r\n renderer?: RendererDescription;\r\n editor?: EditorDescription;\r\n extendedData?: { [key: string]: unknown };\r\n}\r\n\r\n/**\r\n * Data structure for a [[PropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface PropertiesFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\r\n properties: PropertyJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * Data structure for a [[ArrayPropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface ArrayPropertiesFieldJSON<TClassInfoJSON = ClassInfo> extends PropertiesFieldJSON<TClassInfoJSON> {\r\n itemsField: PropertiesFieldJSON<TClassInfoJSON>;\r\n}\r\n\r\n/**\r\n * Data structure for a [[StructPropertiesField]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface StructPropertiesFieldJSON<TClassInfoJSON = ClassInfo> extends PropertiesFieldJSON<TClassInfoJSON> {\r\n memberFields: PropertiesFieldJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * Data structure for a [[NestedContentField]] serialized to JSON.\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface NestedContentFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\r\n contentClassInfo: TClassInfoJSON;\r\n pathToPrimaryClass: RelationshipPathJSON<TClassInfoJSON>;\r\n relationshipMeaning?: RelationshipMeaning;\r\n actualPrimaryClassIds?: Id64String[];\r\n autoExpand?: boolean;\r\n nestedFields: FieldJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/**\r\n * JSON representation of a [[Field]]\r\n * @public\r\n */\r\nexport type FieldJSON<TClassInfoJSON = ClassInfoJSON> =\r\n | BaseFieldJSON\r\n | PropertiesFieldJSON<TClassInfoJSON>\r\n | ArrayPropertiesFieldJSON<TClassInfoJSON>\r\n | StructPropertiesFieldJSON<TClassInfoJSON>\r\n | NestedContentFieldJSON<TClassInfoJSON>;\r\n\r\n/** Is supplied field a properties field. */\r\nfunction isPropertiesField(field: FieldJSON): field is PropertiesFieldJSON<any>;\r\nfunction isPropertiesField(field: Field): field is PropertiesField;\r\nfunction isPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as any).properties;\r\n}\r\n\r\n/** Is supplied field an array properties field. */\r\nfunction isArrayPropertiesField(field: FieldJSON): field is ArrayPropertiesFieldJSON<any>;\r\nfunction isArrayPropertiesField(field: Field): field is ArrayPropertiesField;\r\nfunction isArrayPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as ArrayPropertiesFieldJSON).itemsField;\r\n}\r\n\r\n/** Is supplied field an array properties field. */\r\nfunction isStructPropertiesField(field: FieldJSON): field is StructPropertiesFieldJSON<any>;\r\nfunction isStructPropertiesField(field: Field): field is StructPropertiesField;\r\nfunction isStructPropertiesField(field: FieldJSON | Field) {\r\n return !!(field as StructPropertiesFieldJSON).memberFields;\r\n}\r\n\r\n/** Is supplied field a nested content field. */\r\nfunction isNestedContentField(field: FieldJSON): field is NestedContentFieldJSON<any>;\r\nfunction isNestedContentField(field: Field): field is NestedContentField;\r\nfunction isNestedContentField(field: FieldJSON | Field) {\r\n return !!(field as any).nestedFields;\r\n}\r\n\r\n/**\r\n * Describes a single content field. A field is usually represented as a grid column\r\n * or a property pane row.\r\n *\r\n * @public\r\n */\r\nexport class Field {\r\n /** Category information */\r\n public category: CategoryDescription;\r\n /** Unique name */\r\n public name: string;\r\n /** Display label */\r\n public label: string;\r\n /** Description of this field's values data type */\r\n public type: TypeDescription;\r\n /** Are values in this field read-only */\r\n public isReadonly: boolean;\r\n /** Priority of the field. Higher priority fields should appear first in the UI */\r\n public priority: number;\r\n /** Property renderer used to render values of this field */\r\n public renderer?: RendererDescription;\r\n /** Property editor used to edit values of this field */\r\n public editor?: EditorDescription;\r\n /** Extended data associated with this field */\r\n public extendedData?: { [key: string]: unknown };\r\n /** Parent field */\r\n private _parent?: NestedContentField;\r\n\r\n /**\r\n * Creates an instance of Field.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param editor Property editor used to edit values of this field\r\n * @param renderer Property renderer used to render values of this field\r\n * @param extendedData Extended data associated with this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n type: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n extendedData?: { [key: string] : unknown }\r\n ) {\r\n this.category = category;\r\n this.name = name;\r\n this.label = label;\r\n this.type = type;\r\n this.isReadonly = isReadonly;\r\n this.priority = priority;\r\n this.editor = editor;\r\n this.renderer = renderer;\r\n this.extendedData = extendedData;\r\n }\r\n\r\n /**\r\n * Is this a [[PropertiesField]]\r\n */\r\n public isPropertiesField(): this is PropertiesField {\r\n return isPropertiesField(this);\r\n }\r\n\r\n /**\r\n * Is this a [[NestedContentField]]\r\n */\r\n public isNestedContentField(): this is NestedContentField {\r\n return isNestedContentField(this);\r\n }\r\n\r\n /**\r\n * Get parent\r\n */\r\n public get parent(): NestedContentField | undefined {\r\n return this._parent;\r\n }\r\n\r\n public clone() {\r\n const clone = new Field(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.editor, this.renderer, this.extendedData);\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public toJSON(): FieldJSON {\r\n return {\r\n category: this.category.name,\r\n name: this.name,\r\n label: this.label,\r\n type: this.type,\r\n isReadonly: this.isReadonly,\r\n priority: this.priority,\r\n renderer: this.renderer,\r\n editor: this.editor,\r\n extendedData: this.extendedData\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public toCompressedJSON(_classesMap: { [id: string]: CompressedClassInfoJSON }): FieldJSON<string> {\r\n return this.toJSON();\r\n }\r\n\r\n /** Deserialize [[Field]] from JSON */\r\n public static fromJSON(json: FieldJSON | undefined, categories: CategoryDescription[]): Field | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n if (isPropertiesField(json)) {\r\n return PropertiesField.fromJSON(json, categories);\r\n }\r\n if (isNestedContentField(json)) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return NestedContentField.fromJSON(json, categories);\r\n }\r\n const field = Object.create(Field.prototype);\r\n return Object.assign(field, json, {\r\n category: Field.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n /** Deserialize a [[Field]] from compressed JSON. */\r\n public static fromCompressedJSON(\r\n json: FieldJSON<string> | undefined,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): Field | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n if (isPropertiesField(json)) {\r\n return PropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n\r\n if (isNestedContentField(json)) {\r\n return NestedContentField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n\r\n const field = Object.create(Field.prototype);\r\n return Object.assign(field, json, {\r\n category: Field.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n protected static getCategoryFromFieldJson(fieldJson: FieldJSON, categories: CategoryDescription[]): CategoryDescription {\r\n const category = categories.find((c) => c.name === fieldJson.category);\r\n if (!category) {\r\n throw new PresentationError(PresentationStatus.InvalidArgument, `Invalid content field category`);\r\n }\r\n return category;\r\n }\r\n\r\n /** Resets field's parent. */\r\n public resetParentship(): void {\r\n this._parent = undefined;\r\n }\r\n\r\n /** Sets provided [[NestedContentField]] as parent of this field. */\r\n public rebuildParentship(parentField?: NestedContentField): void {\r\n this._parent = parentField;\r\n }\r\n\r\n /**\r\n * Get descriptor for this field.\r\n * @public\r\n */\r\n public getFieldDescriptor(): FieldDescriptor {\r\n return {\r\n type: FieldDescriptorType.Name,\r\n fieldName: this.name,\r\n } as NamedFieldDescriptor;\r\n }\r\n\r\n /**\r\n * Checks if this field matches given field descriptor\r\n * @see [[getFieldDescriptor]]\r\n */\r\n public matchesDescriptor(descriptor: FieldDescriptor) {\r\n return FieldDescriptor.isNamed(descriptor) && descriptor.fieldName === this.name;\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar\r\n * EC properties.\r\n *\r\n * @public\r\n */\r\nexport class PropertiesField extends Field {\r\n /** A list of properties this field is created from */\r\n public properties: Property[];\r\n\r\n /**\r\n * Creates an instance of PropertiesField.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param properties A list of properties this field is created from\r\n * @param editor Property editor used to edit values of this field\r\n * @param renderer Property renderer used to render values of this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, editor, renderer);\r\n this.properties = properties;\r\n }\r\n\r\n /** Is this a an array property field */\r\n public isArrayPropertiesField(): this is ArrayPropertiesField {\r\n return false;\r\n }\r\n /** Is this a an struct property field */\r\n public isStructPropertiesField(): this is StructPropertiesField {\r\n return false;\r\n }\r\n\r\n public override clone() {\r\n const clone = new PropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): PropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n properties: this.properties,\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): PropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),\r\n };\r\n }\r\n\r\n /** Deserialize [[PropertiesField]] from JSON */\r\n public static override fromJSON(json: PropertiesFieldJSON | undefined, categories: CategoryDescription[]): PropertiesField | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n if (isArrayPropertiesField(json)) {\r\n return ArrayPropertiesField.fromJSON(json, categories);\r\n }\r\n if (isStructPropertiesField(json)) {\r\n return StructPropertiesField.fromJSON(json, categories);\r\n }\r\n\r\n const field = Object.create(PropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize a [[PropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: PropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): PropertiesField | undefined {\r\n if (isArrayPropertiesField(json)) {\r\n return ArrayPropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n if (isStructPropertiesField(json)) {\r\n return StructPropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n }\r\n const field = Object.create(PropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n });\r\n }\r\n\r\n /**\r\n * Get descriptor for this field.\r\n * @public\r\n */\r\n public override getFieldDescriptor(): FieldDescriptor {\r\n const pathFromPropertyToSelectClass = new Array<RelatedClassInfo>();\r\n let currAncestor = this.parent;\r\n while (currAncestor) {\r\n pathFromPropertyToSelectClass.push(...currAncestor.pathToPrimaryClass);\r\n currAncestor = currAncestor.parent;\r\n }\r\n return {\r\n type: FieldDescriptorType.Properties,\r\n pathFromSelectToPropertyClass: RelationshipPath.strip(RelationshipPath.reverse(pathFromPropertyToSelectClass)),\r\n properties: this.properties.map((p) => ({\r\n class: p.property.classInfo.name,\r\n name: p.property.name,\r\n })),\r\n } as PropertiesFieldDescriptor;\r\n }\r\n\r\n /**\r\n * Checks if this field matches given field descriptor\r\n * @see [[getFieldDescriptor]]\r\n */\r\n public override matchesDescriptor(descriptor: FieldDescriptor) {\r\n if (!FieldDescriptor.isProperties(descriptor)) {\r\n return false;\r\n }\r\n\r\n // ensure at least one descriptor property matches at least one property of this field\r\n if (\r\n !this.properties.some(({ property: fieldProperty }) =>\r\n descriptor.properties.some(\r\n (descriptorProperty) => fieldProperty.name === descriptorProperty.name && fieldProperty.classInfo.name === descriptorProperty.class,\r\n ),\r\n )\r\n ) {\r\n return false;\r\n }\r\n\r\n // ensure path from select to property in field and in descriptor matches\r\n let stepsCount = 0;\r\n let currAncestor = this.parent;\r\n while (currAncestor) {\r\n const pathFromCurrentToItsParent = RelationshipPath.reverse(currAncestor.pathToPrimaryClass);\r\n for (const step of pathFromCurrentToItsParent) {\r\n if (descriptor.pathFromSelectToPropertyClass.length < stepsCount + 1) {\r\n return false;\r\n }\r\n if (!RelatedClassInfo.equals(step, descriptor.pathFromSelectToPropertyClass[descriptor.pathFromSelectToPropertyClass.length - stepsCount - 1])) {\r\n return false;\r\n }\r\n ++stepsCount;\r\n }\r\n currAncestor = currAncestor.parent;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar EC array properties.\r\n * @public\r\n */\r\nexport class ArrayPropertiesField extends PropertiesField {\r\n public itemsField: PropertiesField;\r\n\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n itemsField: PropertiesField,\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, properties, editor, renderer);\r\n this.itemsField = itemsField;\r\n }\r\n\r\n public override isArrayPropertiesField(): this is ArrayPropertiesField {\r\n return true;\r\n }\r\n\r\n public override clone() {\r\n const clone = new ArrayPropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.itemsField.clone(),\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): ArrayPropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n itemsField: this.itemsField.toJSON(),\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): ArrayPropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n itemsField: this.itemsField.toCompressedJSON(classesMap),\r\n };\r\n }\r\n\r\n /** Deserialize [[ArrayPropertiesField]] from JSON */\r\n public static override fromJSON(json: ArrayPropertiesFieldJSON, categories: CategoryDescription[]): ArrayPropertiesField {\r\n const field = Object.create(ArrayPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n itemsField: PropertiesField.fromJSON(json.itemsField, categories),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize an [[ArrayPropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: ArrayPropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): ArrayPropertiesField {\r\n const field = Object.create(ArrayPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n itemsField: PropertiesField.fromCompressedJSON(json.itemsField, classesMap, categories),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that's based on one or more similar EC struct properties.\r\n * @public\r\n */\r\nexport class StructPropertiesField extends PropertiesField {\r\n public memberFields: PropertiesField[];\r\n\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n memberFields: PropertiesField[],\r\n isReadonly: boolean,\r\n priority: number,\r\n properties: Property[],\r\n editor?: EditorDescription,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, properties, editor, renderer);\r\n this.memberFields = memberFields;\r\n }\r\n\r\n public override isStructPropertiesField(): this is StructPropertiesField {\r\n return true;\r\n }\r\n\r\n public override clone() {\r\n const clone = new StructPropertiesField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.memberFields.map((m) => m.clone()),\r\n this.isReadonly,\r\n this.priority,\r\n this.properties,\r\n this.editor,\r\n this.renderer,\r\n );\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): StructPropertiesFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n memberFields: this.memberFields.map((m) => m.toJSON()),\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): StructPropertiesFieldJSON<string> {\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n memberFields: this.memberFields.map((m) => m.toCompressedJSON(classesMap)),\r\n };\r\n }\r\n\r\n /** Deserialize [[StructPropertiesField]] from JSON */\r\n public static override fromJSON(json: StructPropertiesFieldJSON, categories: CategoryDescription[]): StructPropertiesField {\r\n const field = Object.create(StructPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n memberFields: json.memberFields.map((m) => PropertiesField.fromJSON(m, categories)),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize a [[StructPropertiesField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(\r\n json: StructPropertiesFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ): StructPropertiesField {\r\n const field = Object.create(StructPropertiesField.prototype);\r\n return Object.assign(field, json, {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\r\n memberFields: json.memberFields.map((m) => PropertiesField.fromCompressedJSON(m, classesMap, categories)),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).\r\n *\r\n * @public\r\n */\r\nexport class NestedContentField extends Field {\r\n /** Information about an ECClass whose properties are nested inside this field */\r\n public contentClassInfo: ClassInfo;\r\n /** Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class) */\r\n public pathToPrimaryClass: RelationshipPath;\r\n /**\r\n * Meaning of the relationship between the [primary class]($docs/presentation/content/Terminology#primary-class)\r\n * and content class of this field.\r\n *\r\n * The value is set up through [[RelatedPropertiesSpecification.relationshipMeaning]] attribute when setting up\r\n * presentation rules for creating the content.\r\n */\r\n public relationshipMeaning: RelationshipMeaning;\r\n /**\r\n * When content descriptor is requested in a polymorphic fashion, fields get created if at least one of the concrete classes\r\n * has it. In certain situations it's necessary to know which concrete classes caused that and this attribute is\r\n * here to help.\r\n *\r\n * **Example:** There's a base class `A` and it has two derived classes `B` and `C` and class `B` has a relationship to class `D`.\r\n * When content descriptor is requested for class `A` polymorphically, it's going to contain fields for all properties of class `B`,\r\n * class `C` and a nested content field for the `B -> D` relationship. The nested content field's `actualPrimaryClassIds` attribute\r\n * will contain ID of class `B`, identifying that only this specific class has the relationship.\r\n */\r\n public actualPrimaryClassIds: Id64String[];\r\n /** Contained nested fields */\r\n public nestedFields: Field[];\r\n /** Flag specifying whether field should be expanded */\r\n public autoExpand?: boolean;\r\n\r\n /**\r\n * Creates an instance of NestedContentField.\r\n * @param category Category information\r\n * @param name Unique name\r\n * @param label Display label\r\n * @param type Description of this field's values data type\r\n * @param isReadonly Are values in this field read-only\r\n * @param priority Priority of the field\r\n * @param contentClassInfo Information about an ECClass whose properties are nested inside this field\r\n * @param pathToPrimaryClass Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class)\r\n * @param nestedFields Contained nested fields\r\n * @param editor Property editor used to edit values of this field\r\n * @param autoExpand Flag specifying whether field should be expanded\r\n * @param relationshipMeaning RelationshipMeaning of the field\r\n * @param renderer Property renderer used to render values of this field\r\n */\r\n public constructor(\r\n category: CategoryDescription,\r\n name: string,\r\n label: string,\r\n description: TypeDescription,\r\n isReadonly: boolean,\r\n priority: number,\r\n contentClassInfo: ClassInfo,\r\n pathToPrimaryClass: RelationshipPath,\r\n nestedFields: Field[],\r\n editor?: EditorDescription,\r\n autoExpand?: boolean,\r\n renderer?: RendererDescription,\r\n ) {\r\n super(category, name, label, description, isReadonly, priority, editor, renderer);\r\n this.contentClassInfo = contentClassInfo;\r\n this.pathToPrimaryClass = pathToPrimaryClass;\r\n this.relationshipMeaning = RelationshipMeaning.RelatedInstance;\r\n this.nestedFields = nestedFields;\r\n this.autoExpand = autoExpand;\r\n this.actualPrimaryClassIds = [];\r\n }\r\n\r\n public override clone() {\r\n const clone = new NestedContentField(\r\n this.category,\r\n this.name,\r\n this.label,\r\n this.type,\r\n this.isReadonly,\r\n this.priority,\r\n this.contentClassInfo,\r\n this.pathToPrimaryClass,\r\n this.nestedFields.map((n) => n.clone()),\r\n this.editor,\r\n this.autoExpand,\r\n this.renderer,\r\n );\r\n clone.actualPrimaryClassIds = this.actualPrimaryClassIds;\r\n clone.relationshipMeaning = this.relationshipMeaning;\r\n clone.rebuildParentship(this.parent);\r\n return clone;\r\n }\r\n\r\n /**\r\n * Get field by its name\r\n * @param name Name of the field to find\r\n * @param recurse Recurse into nested fields\r\n */\r\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\r\n return getFieldByName(this.nestedFields, name, recurse);\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public override toJSON(): NestedContentFieldJSON {\r\n return {\r\n ...super.toJSON(),\r\n contentClassInfo: this.contentClassInfo,\r\n pathToPrimaryClass: this.pathToPrimaryClass,\r\n relationshipMeaning: this.relationshipMeaning,\r\n actualPrimaryClassIds: this.actualPrimaryClassIds,\r\n nestedFields: this.nestedFields.map((field: Field) => field.toJSON()),\r\n autoExpand: this.autoExpand,\r\n };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public override toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): NestedContentFieldJSON<string> {\r\n const { id, ...leftOverInfo } = this.contentClassInfo;\r\n classesMap[id] = leftOverInfo;\r\n return {\r\n ...super.toCompressedJSON(classesMap),\r\n contentClassInfo: id,\r\n pathToPrimaryClass: this.pathToPrimaryClass.map((classInfo) => RelatedClassInfo.toCompressedJSON(classInfo, classesMap)),\r\n nestedFields: this.nestedFields.map((field) => field.toCompressedJSON(classesMap)),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[NestedContentField]] from JSON\r\n * @deprecated in 3.x. Use [[NestedContentField.fromCompressedJSON]]\r\n */\r\n public static override fromJSON(json: NestedContentFieldJSON | undefined, categories: CategoryDescription[]): NestedContentField | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n\r\n const field = Object.create(NestedContentField.prototype);\r\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\r\n nestedFields: json.nestedFields\r\n .map((nestedFieldJson: FieldJSON) => Field.fromJSON(nestedFieldJson, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n });\r\n }\r\n\r\n /** Deserialize a [[NestedContentField]] from compressed JSON. */\r\n public static override fromCompressedJSON(\r\n json: NestedContentFieldJSON<Id64String>,\r\n classesMap: { [id: string]: CompressedClassInfoJSON },\r\n categories: CategoryDescription[],\r\n ) {\r\n assert(classesMap.hasOwnProperty(json.contentClassInfo));\r\n const field = Object.create(NestedContentField.prototype);\r\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n nestedFields: json.nestedFields\r\n .map((nestedFieldJson: FieldJSON) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n contentClassInfo: { id: json.contentClassInfo, ...classesMap[json.contentClassInfo] },\r\n pathToPrimaryClass: json.pathToPrimaryClass.map((stepJson) => RelatedClassInfo.fromCompressedJSON(stepJson, classesMap)),\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n private static fromCommonJSON(json: NestedContentFieldJSON<ClassInfoJSON | string>, categories: CategoryDescription[]): Partial<NestedContentField> {\r\n return {\r\n category: this.getCategoryFromFieldJson(json, categories),\r\n relationshipMeaning: json.relationshipMeaning ?? RelationshipMeaning.RelatedInstance,\r\n actualPrimaryClassIds: json.actualPrimaryClassIds ?? [],\r\n autoExpand: json.autoExpand,\r\n };\r\n }\r\n\r\n /** Resets parent of this field and all nested fields. */\r\n public override resetParentship(): void {\r\n super.resetParentship();\r\n for (const nestedField of this.nestedFields) {\r\n nestedField.resetParentship();\r\n }\r\n }\r\n\r\n /**\r\n * Sets provided [[NestedContentField]] as parent of this fields and recursively updates\r\n * all nested fields parents.\r\n */\r\n public override rebuildParentship(parentField?: NestedContentField): void {\r\n super.rebuildParentship(parentField);\r\n for (const nestedField of this.nestedFields) {\r\n nestedField.rebuildParentship(this);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const getFieldByName = (fields: Field[], name: string | undefined, recurse?: boolean): Field | undefined => {\r\n if (name) {\r\n for (const field of fields) {\r\n if (field.name === name) {\r\n return field;\r\n }\r\n\r\n if (recurse && field.isNestedContentField()) {\r\n const nested = getFieldByName(field.nestedFields, name, recurse);\r\n if (nested) {\r\n return nested;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/** @internal */\r\nexport const getFieldByDescriptor = (fields: Field[], fieldDescriptor: FieldDescriptor, recurse?: boolean): Field | undefined => {\r\n for (const field of fields) {\r\n if (field.matchesDescriptor(fieldDescriptor)) {\r\n return field;\r\n }\r\n\r\n if (recurse && field.isNestedContentField()) {\r\n const nested = getFieldByDescriptor(field.nestedFields, fieldDescriptor, recurse);\r\n if (nested) {\r\n return nested;\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Types of different field descriptors.\r\n * @public\r\n */\r\nexport enum FieldDescriptorType {\r\n Name = \"name\",\r\n Properties = \"properties\",\r\n}\r\n\r\n/**\r\n * Base for a field descriptor\r\n * @public\r\n */\r\nexport interface FieldDescriptorBase {\r\n type: FieldDescriptorType;\r\n}\r\n\r\n/**\r\n * A union of all possible field descriptor types\r\n * @public\r\n */\r\nexport type FieldDescriptor = NamedFieldDescriptor | PropertiesFieldDescriptor;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace FieldDescriptor {\r\n /** Is this a named field descriptor */\r\n export function isNamed(d: FieldDescriptor): d is NamedFieldDescriptor {\r\n return d.type === FieldDescriptorType.Name;\r\n }\r\n /** Is this a properties field descriptor */\r\n export function isProperties(d: FieldDescriptor): d is PropertiesFieldDescriptor {\r\n return d.type === FieldDescriptorType.Properties;\r\n }\r\n}\r\n\r\n/**\r\n * Field descriptor that identifies a content field by its unique name.\r\n * @public\r\n */\r\nexport interface NamedFieldDescriptor extends FieldDescriptorBase {\r\n type: FieldDescriptorType.Name;\r\n fieldName: string;\r\n}\r\n\r\n/**\r\n * Field descriptor that identifies a properties field using a list of\r\n * properties that the field contains.\r\n * @public\r\n */\r\nexport interface PropertiesFieldDescriptor extends FieldDescriptorBase {\r\n type: FieldDescriptorType.Properties;\r\n pathFromSelectToPropertyClass: StrippedRelationshipPath;\r\n /**\r\n * A list of properties that describe the field. At least one property in the list must\r\n * match at least one property in the field for the descriptor to be considered matching.\r\n */\r\n properties: Array<{\r\n /** Full class name */\r\n class: string;\r\n /** Property name */\r\n name: string;\r\n }>;\r\n}\r\n\r\nfunction fromCompressedPropertyJSON(compressedPropertyJSON: PropertyJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): Property {\r\n return {\r\n property: fromCompressedPropertyInfoJSON(compressedPropertyJSON.property, classesMap),\r\n };\r\n}\r\n\r\nfunction fromCompressedPropertyInfoJSON(compressedPropertyJSON: PropertyInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): PropertyInfo {\r\n assert(classesMap.hasOwnProperty(compressedPropertyJSON.classInfo));\r\n\r\n const { navigationPropertyInfo, ...leftOverPropertyJSON } = compressedPropertyJSON;\r\n\r\n return {\r\n ...leftOverPropertyJSON,\r\n classInfo: { id: compressedPropertyJSON.classInfo, ...classesMap[compressedPropertyJSON.classInfo] },\r\n ...(navigationPropertyInfo ? { navigationPropertyInfo: NavigationPropertyInfo.fromCompressedJSON(navigationPropertyInfo, classesMap) } : undefined),\r\n };\r\n}\r\n"]}
@@ -28,7 +28,7 @@ class Item {
28
28
  */
29
29
  constructor(primaryKeys, label, imageId, classInfo, values, displayValues, mergedFieldNames, extendedData) {
30
30
  this.primaryKeys = primaryKeys;
31
- this.imageId = imageId; // eslint-disable-line deprecation/deprecation
31
+ this.imageId = imageId; // eslint-disable-line @typescript-eslint/no-deprecated
32
32
  this.classInfo = classInfo;
33
33
  this.values = values;
34
34
  this.displayValues = displayValues;
@@ -47,11 +47,11 @@ class Item {
47
47
  const { label, ...baseItem } = this;
48
48
  return {
49
49
  ...baseItem,
50
- // eslint-disable-next-line deprecation/deprecation
50
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
51
51
  values: Value_1.Value.toJSON(this.values),
52
- // eslint-disable-next-line deprecation/deprecation
52
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
53
53
  displayValues: Value_1.DisplayValue.toJSON(this.displayValues),
54
- // eslint-disable-next-line deprecation/deprecation
54
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
55
55
  labelDefinition: LabelDefinition_1.LabelDefinition.toJSON(label),
56
56
  };
57
57
  }
@@ -66,11 +66,11 @@ class Item {
66
66
  const item = Object.create(Item.prototype);
67
67
  const { labelDefinition, ...baseJson } = json;
68
68
  return Object.assign(item, baseJson, {
69
- // eslint-disable-next-line deprecation/deprecation
69
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
70
70
  values: Value_1.Value.fromJSON(json.values),
71
- // eslint-disable-next-line deprecation/deprecation
71
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
72
72
  displayValues: Value_1.DisplayValue.fromJSON(json.displayValues),
73
- // eslint-disable-next-line deprecation/deprecation
73
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
74
74
  label: LabelDefinition_1.LabelDefinition.fromJSON(labelDefinition),
75
75
  });
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Item.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 { ClassInfo, InstanceKey } from \"../EC\";\r\nimport { LabelDefinition, LabelDefinitionJSON } from \"../LabelDefinition\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\nimport { DisplayValue, DisplayValueJSON, DisplayValuesMapJSON, Value, ValueJSON, ValuesMapJSON } from \"./Value\";\r\n\r\n/**\r\n * Serialized [[Item]] JSON representation.\r\n * @public\r\n */\r\nexport interface ItemJSON {\r\n inputKeys?: InstanceKey[];\r\n primaryKeys: InstanceKey[];\r\n // TODO: rename to `label`\r\n // eslint-disable-next-line deprecation/deprecation\r\n labelDefinition: LabelDefinitionJSON;\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 classInfo?: ClassInfo;\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 extendedData?: { [key: string]: any };\r\n}\r\n\r\n/**\r\n * A data structure that represents a single content record.\r\n * @public\r\n */\r\nexport class Item {\r\n /**\r\n * Keys of input instances that caused this item to be included in content. Only set if the content is\r\n * created with [[ContentFlags.IncludeInputKeys]] flag.\r\n */\r\n public inputKeys?: InstanceKey[];\r\n /** Keys of instances whose data is contained in this item */\r\n public primaryKeys: InstanceKey[];\r\n /** Display label of the item */\r\n public label: LabelDefinition;\r\n /**\r\n * ID of the image associated with this item\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 public imageId: string;\r\n /** For cases when item consists only of same class instances, information about the ECClass */\r\n public classInfo?: ClassInfo;\r\n /** Raw values dictionary */\r\n public values: ValuesDictionary<Value>;\r\n /** Display values dictionary */\r\n public displayValues: ValuesDictionary<DisplayValue>;\r\n /** List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging)) */\r\n public mergedFieldNames: string[];\r\n /** Extended data injected into this content item */\r\n public extendedData?: { [key: string]: any };\r\n\r\n /**\r\n * Creates an instance of Item.\r\n * @param primaryKeys Keys of instances whose data is contained in this item\r\n * @param label Display label of the item\r\n * @param imageId ID of the image associated with this item\r\n * @param classInfo For cases when item consists only of same class instances, information about the ECClass\r\n * @param values Raw values dictionary\r\n * @param displayValues Display values dictionary\r\n * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))\r\n * @param extendedData Extended data injected into this content item\r\n */\r\n public constructor(\r\n primaryKeys: InstanceKey[],\r\n label: string | LabelDefinition,\r\n imageId: string,\r\n classInfo: ClassInfo | undefined,\r\n values: ValuesDictionary<Value>,\r\n displayValues: ValuesDictionary<DisplayValue>,\r\n mergedFieldNames: string[],\r\n extendedData?: { [key: string]: any },\r\n ) {\r\n this.primaryKeys = primaryKeys;\r\n this.imageId = imageId; // eslint-disable-line deprecation/deprecation\r\n this.classInfo = classInfo;\r\n this.values = values;\r\n this.displayValues = displayValues;\r\n this.mergedFieldNames = mergedFieldNames;\r\n this.extendedData = extendedData;\r\n this.label = typeof label === \"string\" ? LabelDefinition.fromLabelString(label) : label;\r\n }\r\n\r\n /**\r\n * Is value of field with the specified name merged in this record.\r\n */\r\n public isFieldMerged(fieldName: string): boolean {\r\n return -1 !== this.mergedFieldNames.indexOf(fieldName);\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public toJSON(): ItemJSON {\r\n const { label, ...baseItem } = this;\r\n return {\r\n ...baseItem,\r\n // eslint-disable-next-line deprecation/deprecation\r\n values: Value.toJSON(this.values) as ValuesMapJSON,\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValues: DisplayValue.toJSON(this.displayValues) as DisplayValuesMapJSON,\r\n // eslint-disable-next-line deprecation/deprecation\r\n labelDefinition: LabelDefinition.toJSON(label),\r\n };\r\n }\r\n\r\n /** Deserialize [[Item]] from JSON */\r\n public static fromJSON(json: ItemJSON | string | undefined): Item | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n if (typeof json === \"string\") {\r\n return JSON.parse(json, (key, value) => Item.reviver(key, value));\r\n }\r\n const item = Object.create(Item.prototype);\r\n const { labelDefinition, ...baseJson } = json;\r\n return Object.assign(item, baseJson, {\r\n // eslint-disable-next-line deprecation/deprecation\r\n values: Value.fromJSON(json.values),\r\n // eslint-disable-next-line deprecation/deprecation\r\n displayValues: DisplayValue.fromJSON(json.displayValues),\r\n // eslint-disable-next-line deprecation/deprecation\r\n label: LabelDefinition.fromJSON(labelDefinition),\r\n } as Partial<Item>);\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 Item objects.\r\n * @internal\r\n */\r\n public static reviver(key: string, value: any): any {\r\n return key === \"\" ? Item.fromJSON(value) : value;\r\n }\r\n\r\n /**\r\n * Deserialize items list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized items list\r\n * @internal\r\n */\r\n public static listFromJSON(json: ItemJSON[] | string): Item[] {\r\n if (typeof json === \"string\") {\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return JSON.parse(json, Item.listReviver);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return json.map(Item.fromJSON).filter((item): item is Item => !!item);\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 [[Item]][] objects.\r\n * @internal\r\n */\r\n public static listReviver(key: string, value: any): any {\r\n return key === \"\" ? Item.listFromJSON(value) : value;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Item.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 { ClassInfo, InstanceKey } from \"../EC\";\r\nimport { LabelDefinition, LabelDefinitionJSON } from \"../LabelDefinition\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\nimport { DisplayValue, DisplayValueJSON, DisplayValuesMapJSON, Value, ValueJSON, ValuesMapJSON } from \"./Value\";\r\n\r\n/**\r\n * Serialized [[Item]] JSON representation.\r\n * @public\r\n */\r\nexport interface ItemJSON {\r\n inputKeys?: InstanceKey[];\r\n primaryKeys: InstanceKey[];\r\n // TODO: rename to `label`\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n labelDefinition: LabelDefinitionJSON;\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 classInfo?: ClassInfo;\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 extendedData?: { [key: string]: any };\r\n}\r\n\r\n/**\r\n * A data structure that represents a single content record.\r\n * @public\r\n */\r\nexport class Item {\r\n /**\r\n * Keys of input instances that caused this item to be included in content. Only set if the content is\r\n * created with [[ContentFlags.IncludeInputKeys]] flag.\r\n */\r\n public inputKeys?: InstanceKey[];\r\n /** Keys of instances whose data is contained in this item */\r\n public primaryKeys: InstanceKey[];\r\n /** Display label of the item */\r\n public label: LabelDefinition;\r\n /**\r\n * ID of the image associated with this item\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 public imageId: string;\r\n /** For cases when item consists only of same class instances, information about the ECClass */\r\n public classInfo?: ClassInfo;\r\n /** Raw values dictionary */\r\n public values: ValuesDictionary<Value>;\r\n /** Display values dictionary */\r\n public displayValues: ValuesDictionary<DisplayValue>;\r\n /** List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging)) */\r\n public mergedFieldNames: string[];\r\n /** Extended data injected into this content item */\r\n public extendedData?: { [key: string]: any };\r\n\r\n /**\r\n * Creates an instance of Item.\r\n * @param primaryKeys Keys of instances whose data is contained in this item\r\n * @param label Display label of the item\r\n * @param imageId ID of the image associated with this item\r\n * @param classInfo For cases when item consists only of same class instances, information about the ECClass\r\n * @param values Raw values dictionary\r\n * @param displayValues Display values dictionary\r\n * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))\r\n * @param extendedData Extended data injected into this content item\r\n */\r\n public constructor(\r\n primaryKeys: InstanceKey[],\r\n label: string | LabelDefinition,\r\n imageId: string,\r\n classInfo: ClassInfo | undefined,\r\n values: ValuesDictionary<Value>,\r\n displayValues: ValuesDictionary<DisplayValue>,\r\n mergedFieldNames: string[],\r\n extendedData?: { [key: string]: any },\r\n ) {\r\n this.primaryKeys = primaryKeys;\r\n this.imageId = imageId; // eslint-disable-line @typescript-eslint/no-deprecated\r\n this.classInfo = classInfo;\r\n this.values = values;\r\n this.displayValues = displayValues;\r\n this.mergedFieldNames = mergedFieldNames;\r\n this.extendedData = extendedData;\r\n this.label = typeof label === \"string\" ? LabelDefinition.fromLabelString(label) : label;\r\n }\r\n\r\n /**\r\n * Is value of field with the specified name merged in this record.\r\n */\r\n public isFieldMerged(fieldName: string): boolean {\r\n return -1 !== this.mergedFieldNames.indexOf(fieldName);\r\n }\r\n\r\n /** Serialize this object to JSON */\r\n public toJSON(): ItemJSON {\r\n const { label, ...baseItem } = this;\r\n return {\r\n ...baseItem,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n values: Value.toJSON(this.values) as ValuesMapJSON,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValues: DisplayValue.toJSON(this.displayValues) as DisplayValuesMapJSON,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n labelDefinition: LabelDefinition.toJSON(label),\r\n };\r\n }\r\n\r\n /** Deserialize [[Item]] from JSON */\r\n public static fromJSON(json: ItemJSON | string | undefined): Item | undefined {\r\n if (!json) {\r\n return undefined;\r\n }\r\n if (typeof json === \"string\") {\r\n return JSON.parse(json, (key, value) => Item.reviver(key, value));\r\n }\r\n const item = Object.create(Item.prototype);\r\n const { labelDefinition, ...baseJson } = json;\r\n return Object.assign(item, baseJson, {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n values: Value.fromJSON(json.values),\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n displayValues: DisplayValue.fromJSON(json.displayValues),\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n label: LabelDefinition.fromJSON(labelDefinition),\r\n } as Partial<Item>);\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 Item objects.\r\n * @internal\r\n */\r\n public static reviver(key: string, value: any): any {\r\n return key === \"\" ? Item.fromJSON(value) : value;\r\n }\r\n\r\n /**\r\n * Deserialize items list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized items list\r\n * @internal\r\n */\r\n public static listFromJSON(json: ItemJSON[] | string): Item[] {\r\n if (typeof json === \"string\") {\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return JSON.parse(json, Item.listReviver);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/unbound-method\r\n return json.map(Item.fromJSON).filter((item): item is Item => !!item);\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 [[Item]][] objects.\r\n * @internal\r\n */\r\n public static listReviver(key: string, value: any): any {\r\n return key === \"\" ? Item.listFromJSON(value) : value;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Property.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Property.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,8BAA+F;AAkC/F,cAAc;AACd,IAAiB,QAAQ,CAyBxB;AAzBD,WAAiB,QAAQ;IACvB;;;OAGG;IACH,uBAAuB;IACvB,SAAgB,MAAM,CAAC,IAAc;QACnC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAFe,eAAM,SAErB,CAAA;IAED,gDAAgD;IAChD,SAAgB,gBAAgB,CAAC,IAAc,EAAE,UAAqD;QACpG,OAAO;YACL,QAAQ,EAAE,iBAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;SACnE,CAAC;IACJ,CAAC;IAJe,yBAAgB,mBAI/B,CAAA;IAED;;;OAGG;IACH,uBAAuB;IACvB,SAAgB,QAAQ,CAAC,IAAkB;QACzC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAFe,iBAAQ,WAEvB,CAAA;AACH,CAAC,EAzBgB,QAAQ,wBAAR,QAAQ,QAyBxB","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 { ClassInfoJSON, CompressedClassInfoJSON, PropertyInfo, PropertyInfoJSON } from \"../EC\";\r\n\r\n/**\r\n * Data structure that describes one step of property\r\n * accessor path.\r\n *\r\n * @public\r\n */\r\nexport interface PropertyAccessor {\r\n /** Name of ECProperty */\r\n propertyName: string;\r\n /** If the property is an array, array index. Otherwise undefined. */\r\n arrayIndex?: number;\r\n}\r\n\r\n/**\r\n * Describes path to a property.\r\n * @public\r\n */\r\nexport type PropertyAccessorPath = PropertyAccessor[];\r\n\r\n/**\r\n * Data structure that describes a single ECProperty that's\r\n * included in a [[PropertiesField]].\r\n *\r\n * TODO: Remove?\r\n *\r\n * @public\r\n */\r\nexport interface Property {\r\n /** ECProperty information */\r\n property: PropertyInfo;\r\n}\r\n\r\n/** @public */\r\nexport namespace Property {\r\n /**\r\n * Serialize [[Property]] to JSON\r\n * @deprecated in 3.x. Use [[toCompressedJSON]]\r\n */\r\n // istanbul ignore next\r\n export function toJSON(prop: Property): PropertyJSON {\r\n return { ...prop };\r\n }\r\n\r\n /** Serialize [[Property]] to compressed JSON */\r\n export function toCompressedJSON(prop: Property, classesMap: { [id: string]: CompressedClassInfoJSON }): PropertyJSON<string> {\r\n return {\r\n property: PropertyInfo.toCompressedJSON(prop.property, classesMap),\r\n };\r\n }\r\n\r\n /**\r\n * Deserializes [[Property]] from JSON\r\n * @deprecated in 3.x. Use [[Property]]\r\n */\r\n // istanbul ignore next\r\n export function fromJSON(json: PropertyJSON): Property {\r\n return { ...json };\r\n }\r\n}\r\n\r\n/**\r\n * JSON representation of [[Property]]\r\n * @public\r\n */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport interface PropertyJSON<TClassInfoJSON = ClassInfoJSON> {\r\n property: PropertyInfoJSON<TClassInfoJSON>;\r\n}\r\n"]}
1
+ {"version":3,"file":"Property.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Property.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,8BAA+F;AAkC/F,cAAc;AACd,IAAiB,QAAQ,CAyBxB;AAzBD,WAAiB,QAAQ;IACvB;;;OAGG;IACH,uBAAuB;IACvB,SAAgB,MAAM,CAAC,IAAc;QACnC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAFe,eAAM,SAErB,CAAA;IAED,gDAAgD;IAChD,SAAgB,gBAAgB,CAAC,IAAc,EAAE,UAAqD;QACpG,OAAO;YACL,QAAQ,EAAE,iBAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;SACnE,CAAC;IACJ,CAAC;IAJe,yBAAgB,mBAI/B,CAAA;IAED;;;OAGG;IACH,uBAAuB;IACvB,SAAgB,QAAQ,CAAC,IAAkB;QACzC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAFe,iBAAQ,WAEvB,CAAA;AACH,CAAC,EAzBgB,QAAQ,wBAAR,QAAQ,QAyBxB","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 { ClassInfoJSON, CompressedClassInfoJSON, PropertyInfo, PropertyInfoJSON } from \"../EC\";\r\n\r\n/**\r\n * Data structure that describes one step of property\r\n * accessor path.\r\n *\r\n * @public\r\n */\r\nexport interface PropertyAccessor {\r\n /** Name of ECProperty */\r\n propertyName: string;\r\n /** If the property is an array, array index. Otherwise undefined. */\r\n arrayIndex?: number;\r\n}\r\n\r\n/**\r\n * Describes path to a property.\r\n * @public\r\n */\r\nexport type PropertyAccessorPath = PropertyAccessor[];\r\n\r\n/**\r\n * Data structure that describes a single ECProperty that's\r\n * included in a [[PropertiesField]].\r\n *\r\n * TODO: Remove?\r\n *\r\n * @public\r\n */\r\nexport interface Property {\r\n /** ECProperty information */\r\n property: PropertyInfo;\r\n}\r\n\r\n/** @public */\r\nexport namespace Property {\r\n /**\r\n * Serialize [[Property]] to JSON\r\n * @deprecated in 3.x. Use [[toCompressedJSON]]\r\n */\r\n // istanbul ignore next\r\n export function toJSON(prop: Property): PropertyJSON {\r\n return { ...prop };\r\n }\r\n\r\n /** Serialize [[Property]] to compressed JSON */\r\n export function toCompressedJSON(prop: Property, classesMap: { [id: string]: CompressedClassInfoJSON }): PropertyJSON<string> {\r\n return {\r\n property: PropertyInfo.toCompressedJSON(prop.property, classesMap),\r\n };\r\n }\r\n\r\n /**\r\n * Deserializes [[Property]] from JSON\r\n * @deprecated in 3.x. Use [[Property]]\r\n */\r\n // istanbul ignore next\r\n export function fromJSON(json: PropertyJSON): Property {\r\n return { ...json };\r\n }\r\n}\r\n\r\n/**\r\n * JSON representation of [[Property]]\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-deprecated\r\nexport interface PropertyJSON<TClassInfoJSON = ClassInfoJSON> {\r\n property: PropertyInfoJSON<TClassInfoJSON>;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyValueFormatter.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/PropertyValueFormatter.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAwB,KAAK,EAA0C,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAwC,KAAK,EAA0B,MAAM,SAAS,CAAC;AAE5G,gBAAgB;AAChB,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,WAAW,CAAC;gBADZ,uBAAuB,EAAE;QAAE,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;KAAE,EACnI,WAAW,CAAC,2BAAe;IAGxB,aAAa,CAAC,OAAO,EAAE,OAAO;IAK9B,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU;YASvD,YAAY;YAgCZ,gCAAgC;YAMhC,mBAAmB;YAYnB,gBAAgB;YAIhB,mBAAmB;CASlC;AAED,gBAAgB;AAChB,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,yBAAyB;IAEpD,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAejG,WAAW;YAWX,oBAAoB;YAsCpB,iBAAiB;YAYjB,gBAAgB;CAO/B"}
1
+ {"version":3,"file":"PropertyValueFormatter.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/PropertyValueFormatter.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAwB,KAAK,EAA0C,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAwC,KAAK,EAA0B,MAAM,SAAS,CAAC;AAE5G,gBAAgB;AAChB,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,WAAW,CAAC;gBADZ,uBAAuB,EAAE;QAAE,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;KAAE,EACnI,WAAW,CAAC,EAAE,aAAa,YAAA;IAGxB,aAAa,CAAC,OAAO,EAAE,OAAO;IAK9B,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU;YASvD,YAAY;YAgCZ,gCAAgC;YAMhC,mBAAmB;YAYnB,gBAAgB;YAIhB,mBAAmB;CASlC;AAED,gBAAgB;AAChB,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,yBAAyB;IAEpD,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAejG,WAAW;YAWX,oBAAoB;YAsCpB,iBAAiB;YAYjB,gBAAgB;CAO/B"}
@@ -44,13 +44,13 @@ var Value;
44
44
  * Serialize [[Value]] to JSON
45
45
  * @deprecated in 3.x. Use [[Value]]
46
46
  */
47
- // eslint-disable-next-line deprecation/deprecation
47
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
48
48
  function fromJSON(json) {
49
49
  if (json === null) {
50
50
  return undefined;
51
51
  }
52
52
  if (isNestedContentValue(json)) {
53
- // eslint-disable-next-line deprecation/deprecation
53
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
54
54
  return json.map(NestedContentValue.fromJSON);
55
55
  }
56
56
  if (isArrayValue(json)) {
@@ -66,13 +66,13 @@ var Value;
66
66
  * Deserialize [[Value]] from JSON
67
67
  * @deprecated in 3.x. Use [[Value]]
68
68
  */
69
- // eslint-disable-next-line deprecation/deprecation
69
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
70
70
  function toJSON(value) {
71
71
  if (undefined === value) {
72
72
  return null;
73
73
  }
74
74
  if (isNestedContentValue(value)) {
75
- // eslint-disable-next-line deprecation/deprecation
75
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
76
76
  return value.map(NestedContentValue.toJSON);
77
77
  }
78
78
  if (isArrayValue(value)) {
@@ -108,7 +108,7 @@ var DisplayValue;
108
108
  * Serialize [[DisplayValue]] to JSON
109
109
  * @deprecated in 3.x. Use [[DisplayValue]]
110
110
  */
111
- // eslint-disable-next-line deprecation/deprecation
111
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
112
112
  function fromJSON(json) {
113
113
  if (json === null) {
114
114
  return undefined;
@@ -126,7 +126,7 @@ var DisplayValue;
126
126
  * Deserialize [[DisplayValue]] from JSON
127
127
  * @deprecated in 3.x. Use [[DisplayValue]]
128
128
  */
129
- // eslint-disable-next-line deprecation/deprecation
129
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
130
130
  function toJSON(value) {
131
131
  if (undefined === value) {
132
132
  return null;
@@ -148,7 +148,7 @@ var NestedContentValue;
148
148
  * Serialize [[NestedContentValue]] to JSON
149
149
  * @deprecated in 3.x. Use [[NestedContentValue]]
150
150
  */
151
- // eslint-disable-next-line deprecation/deprecation
151
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
152
152
  function toJSON(value) {
153
153
  return {
154
154
  ...value,
@@ -161,7 +161,7 @@ var NestedContentValue;
161
161
  * Deserialize [[NestedContentValue]] from JSON
162
162
  * @deprecated in 3.x. Use [[NestedContentValue]]
163
163
  */
164
- // eslint-disable-next-line deprecation/deprecation
164
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
165
165
  function fromJSON(json) {
166
166
  return {
167
167
  ...json,
@@ -178,12 +178,12 @@ var DisplayValueGroup;
178
178
  * Serialize [[DisplayValueGroup]] to JSON
179
179
  * @deprecated in 3.x. Use [[DisplayValueGroup]]
180
180
  */
181
- // eslint-disable-next-line deprecation/deprecation
181
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
182
182
  function toJSON(group) {
183
183
  return {
184
- // eslint-disable-next-line deprecation/deprecation
184
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
185
185
  displayValue: DisplayValue.toJSON(group.displayValue),
186
- // eslint-disable-next-line deprecation/deprecation
186
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
187
187
  groupedRawValues: group.groupedRawValues.map(Value.toJSON),
188
188
  };
189
189
  }
@@ -192,18 +192,18 @@ var DisplayValueGroup;
192
192
  * Deserialize [[DisplayValueGroup]] from JSON
193
193
  * @deprecated in 3.x. Use [[DisplayValueGroup]]
194
194
  */
195
- // eslint-disable-next-line deprecation/deprecation
195
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
196
196
  function fromJSON(json) {
197
197
  return {
198
- // eslint-disable-next-line deprecation/deprecation
198
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
199
199
  displayValue: DisplayValue.fromJSON(json.displayValue),
200
- // eslint-disable-next-line deprecation/deprecation
200
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
201
201
  groupedRawValues: json.groupedRawValues.map(Value.fromJSON),
202
202
  };
203
203
  }
204
204
  DisplayValueGroup.fromJSON = fromJSON;
205
205
  })(DisplayValueGroup || (exports.DisplayValueGroup = DisplayValueGroup = {}));
206
- // eslint-disable-next-line deprecation/deprecation
206
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
207
207
  function isNestedContentValue(v) {
208
208
  return (v !== undefined &&
209
209
  Array.isArray(v) &&
@@ -219,78 +219,78 @@ function isArrayValue(v) {
219
219
  // we have other means to determine the type of value.
220
220
  return v !== undefined && Array.isArray(v);
221
221
  }
222
- // eslint-disable-next-line deprecation/deprecation
222
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
223
223
  function isMapValue(v) {
224
224
  return v !== undefined && typeof v === "object" && !Array.isArray(v);
225
225
  }
226
226
  function isPrimitiveValue(v) {
227
227
  return !isArrayValue(v) && !isMapValue(v);
228
228
  }
229
- // eslint-disable-next-line deprecation/deprecation
229
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
230
230
  function valuesArrayFromJSON(json) {
231
- // eslint-disable-next-line deprecation/deprecation
231
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
232
232
  return json.map(Value.fromJSON);
233
233
  }
234
- // eslint-disable-next-line deprecation/deprecation
234
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
235
235
  function valuesArrayToJSON(values) {
236
- // eslint-disable-next-line deprecation/deprecation
236
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
237
237
  return values.map(Value.toJSON);
238
238
  }
239
- // eslint-disable-next-line deprecation/deprecation
239
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
240
240
  function valuesMapFromJSON(json) {
241
241
  const map = {};
242
242
  for (const key in json) {
243
243
  /* istanbul ignore else */
244
244
  if (json.hasOwnProperty(key)) {
245
- // eslint-disable-next-line deprecation/deprecation
245
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
246
246
  map[key] = Value.fromJSON(json[key]);
247
247
  }
248
248
  }
249
249
  return map;
250
250
  }
251
- // eslint-disable-next-line deprecation/deprecation
251
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
252
252
  function valuesMapToJSON(values) {
253
- // eslint-disable-next-line deprecation/deprecation
253
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
254
254
  const map = {};
255
255
  for (const key in values) {
256
256
  /* istanbul ignore else */
257
257
  if (values.hasOwnProperty(key)) {
258
- // eslint-disable-next-line deprecation/deprecation
258
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
259
259
  map[key] = Value.toJSON(values[key]);
260
260
  }
261
261
  }
262
262
  return map;
263
263
  }
264
- // eslint-disable-next-line deprecation/deprecation
264
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
265
265
  function displayValuesArrayFromJSON(json) {
266
- // eslint-disable-next-line deprecation/deprecation
266
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
267
267
  return json.map(DisplayValue.fromJSON);
268
268
  }
269
- // eslint-disable-next-line deprecation/deprecation
269
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
270
270
  function displayValuesArrayToJSON(values) {
271
- // eslint-disable-next-line deprecation/deprecation
271
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
272
272
  return values.map(DisplayValue.toJSON);
273
273
  }
274
- // eslint-disable-next-line deprecation/deprecation
274
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
275
275
  function displayValuesMapFromJSON(json) {
276
276
  const map = {};
277
277
  for (const key in json) {
278
278
  /* istanbul ignore else */
279
279
  if (json.hasOwnProperty(key)) {
280
- // eslint-disable-next-line deprecation/deprecation
280
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
281
281
  map[key] = DisplayValue.fromJSON(json[key]);
282
282
  }
283
283
  }
284
284
  return map;
285
285
  }
286
- // eslint-disable-next-line deprecation/deprecation
286
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
287
287
  function displayValuesMapToJSON(values) {
288
- // eslint-disable-next-line deprecation/deprecation
288
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
289
289
  const map = {};
290
290
  for (const key in values) {
291
291
  /* istanbul ignore else */
292
292
  if (values.hasOwnProperty(key)) {
293
- // eslint-disable-next-line deprecation/deprecation
293
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
294
294
  map[key] = DisplayValue.toJSON(values[key]);
295
295
  }
296
296
  }