@itwin/presentation-common 3.6.0-dev.53 → 3.6.0-dev.54

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 (469) hide show
  1. package/lib/cjs/assets/locales/en/BisCore.json +18 -18
  2. package/lib/cjs/assets/locales/en/ECPresentation.json +9 -9
  3. package/lib/cjs/assets/locales/en/RulesEngine.json +5 -5
  4. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  5. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  6. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  8. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  9. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  10. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  11. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  12. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  13. package/lib/cjs/presentation-common/EC.d.ts +315 -315
  14. package/lib/cjs/presentation-common/EC.js +270 -270
  15. package/lib/cjs/presentation-common/EC.js.map +1 -1
  16. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  17. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  18. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  19. package/lib/cjs/presentation-common/Error.d.ts +45 -45
  20. package/lib/cjs/presentation-common/Error.js +62 -62
  21. package/lib/cjs/presentation-common/Error.js.map +1 -1
  22. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +59 -59
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  24. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  25. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  26. package/lib/cjs/presentation-common/KeySet.js +423 -423
  27. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  28. package/lib/cjs/presentation-common/LabelDefinition.d.ts +79 -79
  29. package/lib/cjs/presentation-common/LabelDefinition.js +76 -76
  30. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  31. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  32. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  33. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  34. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  35. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  36. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  37. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +256 -256
  38. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  39. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  40. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +188 -188
  41. package/lib/cjs/presentation-common/PresentationRpcInterface.js +107 -107
  42. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  43. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  44. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  45. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  46. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +83 -83
  47. package/lib/cjs/presentation-common/RpcRequestsHandler.js +161 -161
  48. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  49. package/lib/cjs/presentation-common/RulesetVariables.d.ts +166 -166
  50. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  51. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  52. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  53. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  54. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  55. package/lib/cjs/presentation-common/Update.d.ts +196 -196
  56. package/lib/cjs/presentation-common/Update.js +196 -196
  57. package/lib/cjs/presentation-common/Update.js.map +1 -1
  58. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  59. package/lib/cjs/presentation-common/Utils.js +43 -43
  60. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  61. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  62. package/lib/cjs/presentation-common/content/Category.js +49 -49
  63. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  64. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  65. package/lib/cjs/presentation-common/content/Content.js +56 -56
  66. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  67. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +101 -101
  68. package/lib/cjs/presentation-common/content/ContentTraverser.js +420 -420
  69. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  70. package/lib/cjs/presentation-common/content/Descriptor.d.ts +279 -279
  71. package/lib/cjs/presentation-common/content/Descriptor.js +195 -195
  72. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  73. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  74. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  75. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  76. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  77. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  78. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  79. package/lib/cjs/presentation-common/content/Fields.d.ts +282 -282
  80. package/lib/cjs/presentation-common/content/Fields.js +394 -394
  81. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  82. package/lib/cjs/presentation-common/content/Item.d.ts +87 -87
  83. package/lib/cjs/presentation-common/content/Item.js +86 -86
  84. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  85. package/lib/cjs/presentation-common/content/Property.d.ts +51 -51
  86. package/lib/cjs/presentation-common/content/Property.js +36 -36
  87. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  88. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  89. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  90. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  91. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  92. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  93. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  94. package/lib/cjs/presentation-common/content/Value.d.ts +157 -157
  95. package/lib/cjs/presentation-common/content/Value.js +217 -217
  96. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  97. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +30 -30
  98. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +23 -23
  99. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  100. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +185 -185
  101. package/lib/cjs/presentation-common/hierarchy/Key.js +112 -112
  102. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  103. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +149 -149
  104. package/lib/cjs/presentation-common/hierarchy/Node.js +97 -97
  105. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  106. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +85 -85
  107. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +98 -98
  108. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  109. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  110. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  111. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  112. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  113. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  114. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  115. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  116. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  117. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  118. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +53 -53
  119. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  120. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  121. package/lib/cjs/presentation-common/rules/Rule.d.ts +74 -74
  122. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  123. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  124. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +66 -66
  125. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  126. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  127. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  128. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  129. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  130. package/lib/cjs/presentation-common/rules/Variables.d.ts +55 -55
  131. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  132. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  133. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  134. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  135. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  136. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  137. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  138. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  139. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  140. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  141. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  142. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +55 -55
  143. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  144. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  145. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  146. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  147. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  148. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  149. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  150. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  151. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  152. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  153. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  154. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  155. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  156. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  157. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  158. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  159. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  160. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  161. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  162. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  163. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  164. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  165. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  166. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +105 -105
  167. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  168. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  169. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +93 -93
  170. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  171. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  172. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  173. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  174. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  175. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  176. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  177. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  178. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  179. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  180. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  181. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +200 -200
  182. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  183. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  184. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  185. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  186. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  187. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +156 -156
  188. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  189. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  190. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  191. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  192. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  193. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  194. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  195. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  196. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  197. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  198. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  199. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +15 -15
  200. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  201. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  202. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +97 -97
  203. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +22 -22
  204. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  205. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  206. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  207. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  208. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +76 -76
  209. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  210. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  211. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  212. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  213. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  214. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  215. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  216. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  217. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  218. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  219. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  220. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  221. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  222. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  223. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +17 -17
  224. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  225. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  226. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +36 -36
  227. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  228. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  229. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +25 -25
  230. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  231. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  232. package/lib/cjs/presentation-common.d.ts +112 -112
  233. package/lib/cjs/presentation-common.js +128 -128
  234. package/lib/cjs/presentation-common.js.map +1 -1
  235. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  236. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  237. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  238. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  239. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  240. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  241. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  242. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  243. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  244. package/lib/esm/presentation-common/EC.d.ts +315 -315
  245. package/lib/esm/presentation-common/EC.js +267 -267
  246. package/lib/esm/presentation-common/EC.js.map +1 -1
  247. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  248. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  249. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  250. package/lib/esm/presentation-common/Error.d.ts +45 -45
  251. package/lib/esm/presentation-common/Error.js +58 -58
  252. package/lib/esm/presentation-common/Error.js.map +1 -1
  253. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +59 -59
  254. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  255. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  256. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  257. package/lib/esm/presentation-common/KeySet.js +419 -419
  258. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  259. package/lib/esm/presentation-common/LabelDefinition.d.ts +79 -79
  260. package/lib/esm/presentation-common/LabelDefinition.js +73 -73
  261. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  262. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  263. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  264. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  265. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  266. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  267. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  268. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +256 -256
  269. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  270. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  271. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +188 -188
  272. package/lib/esm/presentation-common/PresentationRpcInterface.js +103 -103
  273. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  274. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  275. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  276. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  277. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +83 -83
  278. package/lib/esm/presentation-common/RpcRequestsHandler.js +157 -157
  279. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  280. package/lib/esm/presentation-common/RulesetVariables.d.ts +166 -166
  281. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  282. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  283. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  284. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  285. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  286. package/lib/esm/presentation-common/Update.d.ts +196 -196
  287. package/lib/esm/presentation-common/Update.js +193 -193
  288. package/lib/esm/presentation-common/Update.js.map +1 -1
  289. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  290. package/lib/esm/presentation-common/Utils.js +39 -39
  291. package/lib/esm/presentation-common/Utils.js.map +1 -1
  292. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  293. package/lib/esm/presentation-common/content/Category.js +46 -46
  294. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  295. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  296. package/lib/esm/presentation-common/content/Content.js +52 -52
  297. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  298. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +101 -101
  299. package/lib/esm/presentation-common/content/ContentTraverser.js +411 -411
  300. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  301. package/lib/esm/presentation-common/content/Descriptor.d.ts +279 -279
  302. package/lib/esm/presentation-common/content/Descriptor.js +191 -191
  303. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  304. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  305. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  306. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  307. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  308. package/lib/esm/presentation-common/content/Editor.js +8 -8
  309. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  310. package/lib/esm/presentation-common/content/Fields.d.ts +282 -282
  311. package/lib/esm/presentation-common/content/Fields.js +387 -387
  312. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  313. package/lib/esm/presentation-common/content/Item.d.ts +87 -87
  314. package/lib/esm/presentation-common/content/Item.js +82 -82
  315. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  316. package/lib/esm/presentation-common/content/Property.d.ts +51 -51
  317. package/lib/esm/presentation-common/content/Property.js +33 -33
  318. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  319. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  320. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  321. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  322. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  323. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  324. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  325. package/lib/esm/presentation-common/content/Value.d.ts +157 -157
  326. package/lib/esm/presentation-common/content/Value.js +214 -214
  327. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  328. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +30 -30
  329. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +20 -20
  330. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  331. package/lib/esm/presentation-common/hierarchy/Key.d.ts +185 -185
  332. package/lib/esm/presentation-common/hierarchy/Key.js +109 -109
  333. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  334. package/lib/esm/presentation-common/hierarchy/Node.d.ts +149 -149
  335. package/lib/esm/presentation-common/hierarchy/Node.js +94 -94
  336. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  337. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +85 -85
  338. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +95 -95
  339. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  340. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  341. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  342. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  343. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  344. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  345. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  346. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  347. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  348. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  349. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +53 -53
  350. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  351. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  352. package/lib/esm/presentation-common/rules/Rule.d.ts +74 -74
  353. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  354. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  355. package/lib/esm/presentation-common/rules/Ruleset.d.ts +66 -66
  356. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  357. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  358. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  359. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  360. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  361. package/lib/esm/presentation-common/rules/Variables.d.ts +55 -55
  362. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  363. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  364. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  365. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  366. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  367. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  368. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  369. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  370. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  371. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  372. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  373. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +55 -55
  374. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  375. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  376. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  377. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  378. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  379. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  380. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  381. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  382. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  383. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  384. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  385. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  386. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  387. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  388. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  389. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  390. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  391. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  392. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  393. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  394. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  395. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  396. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  397. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +105 -105
  398. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  399. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  400. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +93 -93
  401. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  402. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  403. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  404. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  405. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  406. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  407. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  408. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  409. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  410. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  411. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  412. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +200 -200
  413. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  414. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  415. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  416. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  417. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  418. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +156 -156
  419. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  420. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  421. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  422. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  423. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  424. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  425. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  426. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  427. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  428. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  429. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  430. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +15 -15
  431. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  432. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  433. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +97 -97
  434. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +19 -19
  435. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  436. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  437. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  438. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  439. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +76 -76
  440. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  441. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  442. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  443. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  444. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  445. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  446. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  447. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  448. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  449. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  450. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  451. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  452. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  453. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  454. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +17 -17
  455. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  456. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  457. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +36 -36
  458. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  459. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  460. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +25 -25
  461. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  462. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  463. package/lib/esm/presentation-common.d.ts +112 -112
  464. package/lib/esm/presentation-common.js +116 -116
  465. package/lib/esm/presentation-common.js.map +1 -1
  466. package/lib/public/locales/en/BisCore.json +18 -18
  467. package/lib/public/locales/en/ECPresentation.json +9 -9
  468. package/lib/public/locales/en/RulesEngine.json +5 -5
  469. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Fields.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Fields.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport {\n ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, NavigationPropertyInfo, PropertyInfo, PropertyInfoJSON, RelatedClassInfo, RelationshipPath, RelationshipPathJSON,\n StrippedRelationshipPath,\n} from \"../EC\";\nimport { PresentationError, PresentationStatus } from \"../Error\";\nimport { RelationshipMeaning } from \"../rules/content/modifiers/RelatedPropertiesSpecification\";\nimport { CategoryDescription } from \"./Category\";\nimport { EditorDescription } from \"./Editor\";\nimport { Property, PropertyJSON } from \"./Property\";\nimport { RendererDescription } from \"./Renderer\";\nimport { TypeDescription } from \"./TypeDescription\";\n\n/**\n * Data structure for a [[Field]] serialized to JSON.\n * @public\n */\nexport interface BaseFieldJSON {\n category: string;\n name: string;\n label: string;\n type: TypeDescription;\n isReadonly: boolean;\n priority: number;\n renderer?: RendererDescription;\n editor?: EditorDescription;\n}\n\n/**\n * Data structure for a [[PropertiesField]] serialized to JSON.\n * @public\n */\nexport interface PropertiesFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\n properties: PropertyJSON<TClassInfoJSON>[];\n}\n\n/**\n * Data structure for a [[NestedContentField]] serialized to JSON.\n * @public\n */\nexport interface NestedContentFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\n contentClassInfo: TClassInfoJSON;\n pathToPrimaryClass: RelationshipPathJSON<TClassInfoJSON>;\n /** @alpha */\n relationshipMeaning?: RelationshipMeaning;\n /** @alpha */\n actualPrimaryClassIds?: Id64String[];\n autoExpand?: boolean;\n nestedFields: FieldJSON<TClassInfoJSON>[];\n}\n\n/**\n * JSON representation of a [[Field]]\n * @public\n */\nexport type FieldJSON<TClassInfoJSON = ClassInfoJSON> = BaseFieldJSON | PropertiesFieldJSON<TClassInfoJSON> | NestedContentFieldJSON<TClassInfoJSON>;\n\n/** Is supplied field a properties field. */\nconst isPropertiesField = (field: FieldJSON | Field): field is PropertiesFieldJSON<any> | PropertiesField => {\n return !!(field as any).properties;\n};\n\n/** Is supplied field a nested content field. */\nconst isNestedContentField = (field: FieldJSON | Field): field is NestedContentFieldJSON<any> | NestedContentField => {\n return !!(field as any).nestedFields;\n};\n\n/**\n * Describes a single content field. A field is usually represented as a grid column\n * or a property pane row.\n *\n * @public\n */\nexport class Field {\n /** Category information */\n public category: CategoryDescription;\n /** Unique name */\n public name: string;\n /** Display label */\n public label: string;\n /** Description of this field's values data type */\n public type: TypeDescription;\n /** Are values in this field read-only */\n public isReadonly: boolean;\n /** Priority of the field. Higher priority fields should appear first in the UI */\n public priority: number;\n /** Property renderer used to render values of this field */\n public renderer?: RendererDescription;\n /** Property editor used to edit values of this field */\n public editor?: EditorDescription;\n /** Parent field */\n private _parent?: NestedContentField;\n\n /**\n * Creates an instance of Field.\n * @param category Category information\n * @param name Unique name\n * @param label Display label\n * @param type Description of this field's values data type\n * @param isReadonly Are values in this field read-only\n * @param priority Priority of the field\n * @param editor Property editor used to edit values of this field\n * @param renderer Property renderer used to render values of this field\n */\n public constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription,\n isReadonly: boolean, priority: number, editor?: EditorDescription, renderer?: RendererDescription) {\n this.category = category;\n this.name = name;\n this.label = label;\n this.type = type;\n this.isReadonly = isReadonly;\n this.priority = priority;\n this.editor = editor;\n this.renderer = renderer;\n }\n\n /**\n * Is this a [[PropertiesField]]\n */\n public isPropertiesField(): this is PropertiesField { return isPropertiesField(this); }\n\n /**\n * Is this a [[NestedContentField]]\n */\n public isNestedContentField(): this is NestedContentField { return isNestedContentField(this); }\n\n /**\n * Get parent\n */\n public get parent(): NestedContentField | undefined { return this._parent; }\n\n public clone() {\n const clone = new Field(\n this.category,\n this.name,\n this.label,\n this.type,\n this.isReadonly,\n this.priority,\n this.editor,\n this.renderer,\n );\n clone.rebuildParentship(this.parent);\n return clone;\n }\n\n /** Serialize this object to JSON */\n public toJSON(): FieldJSON {\n return {\n category: this.category.name,\n name: this.name,\n label: this.label,\n type: this.type,\n isReadonly: this.isReadonly,\n priority: this.priority,\n renderer: this.renderer,\n editor: this.editor,\n };\n }\n\n /** Serialize this object to compressed JSON */\n public toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): FieldJSON<string> {\n if (this.isPropertiesField())\n return {\n ...this.toJSON(),\n properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),\n };\n\n if (this.isNestedContentField()) {\n const { id, ...leftOverInfo } = this.contentClassInfo;\n classesMap[id] = leftOverInfo;\n return {\n ...this.toJSON(),\n contentClassInfo: id,\n pathToPrimaryClass: this.pathToPrimaryClass.map((classInfo) => RelatedClassInfo.toCompressedJSON(classInfo, classesMap)),\n nestedFields: this.nestedFields.map((field) => field.toCompressedJSON(classesMap)),\n };\n }\n\n return this.toJSON();\n }\n\n /** Deserialize [[Field]] from JSON */\n public static fromJSON(json: FieldJSON | undefined, categories: CategoryDescription[]): Field | undefined {\n if (!json)\n return undefined;\n if (isPropertiesField(json))\n return PropertiesField.fromJSON(json, categories);\n if (isNestedContentField(json))\n return NestedContentField.fromJSON(json, categories);\n const field = Object.create(Field.prototype);\n return Object.assign(field, json, {\n category: Field.getCategoryFromFieldJson(json, categories),\n });\n }\n\n /**\n * Deserialize a [[Field]] from compressed JSON.\n * @public\n */\n public static fromCompressedJSON(json: FieldJSON<string> | undefined, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]): Field | undefined {\n if (!json)\n return undefined;\n\n if (isPropertiesField(json))\n return PropertiesField.fromCompressedJSON(json, classesMap, categories);\n\n if (isNestedContentField(json))\n return NestedContentField.fromCompressedJSON(json, classesMap, categories);\n\n const field = Object.create(Field.prototype);\n return Object.assign(field, json, {\n category: Field.getCategoryFromFieldJson(json, categories),\n });\n }\n\n protected static getCategoryFromFieldJson(fieldJson: FieldJSON, categories: CategoryDescription[]): CategoryDescription {\n const category = categories.find((c) => c.name === fieldJson.category);\n if (!category)\n throw new PresentationError(PresentationStatus.InvalidArgument, `Invalid content field category`);\n return category;\n }\n\n /** @internal */\n public resetParentship(): void {\n this._parent = undefined;\n }\n\n /** @internal */\n public rebuildParentship(parentField?: NestedContentField): void {\n this._parent = parentField;\n }\n\n /**\n * Get descriptor for this field.\n * @public\n */\n public getFieldDescriptor(): FieldDescriptor {\n return {\n type: FieldDescriptorType.Name,\n fieldName: this.name,\n } as NamedFieldDescriptor;\n }\n}\n\n/**\n * Describes a content field that's based on one or more similar\n * EC properties.\n *\n * @public\n */\nexport class PropertiesField extends Field {\n /** A list of properties this field is created from */\n public properties: Property[];\n\n /**\n * Creates an instance of PropertiesField.\n * @param category Category information\n * @param name Unique name\n * @param label Display label\n * @param type Description of this field's values data type\n * @param isReadonly Are values in this field read-only\n * @param priority Priority of the field\n * @param properties A list of properties this field is created from\n * @param editor Property editor used to edit values of this field\n * @param renderer Property renderer used to render values of this field\n */\n public constructor(\n category: CategoryDescription,\n name: string,\n label: string,\n description: TypeDescription,\n isReadonly: boolean,\n priority: number,\n properties: Property[],\n editor?: EditorDescription,\n renderer?: RendererDescription,\n ) {\n super(category, name, label, description, isReadonly, priority, editor, renderer);\n this.properties = properties;\n }\n\n public override clone() {\n const clone = new PropertiesField(\n this.category,\n this.name,\n this.label,\n this.type,\n this.isReadonly,\n this.priority,\n this.properties,\n this.editor,\n this.renderer,\n );\n clone.rebuildParentship(this.parent);\n return clone;\n }\n\n /** Serialize this object to JSON */\n public override toJSON(): PropertiesFieldJSON {\n return {\n ...super.toJSON(),\n properties: this.properties.map((p) => Property.toJSON(p)),\n };\n }\n\n /** Deserialize [[PropertiesField]] from JSON */\n public static override fromJSON(json: PropertiesFieldJSON | undefined, categories: CategoryDescription[]): PropertiesField | undefined {\n if (!json)\n return undefined;\n\n const field = Object.create(PropertiesField.prototype);\n return Object.assign(field, json, {\n category: this.getCategoryFromFieldJson(json, categories),\n properties: json.properties.map(Property.fromJSON),\n });\n }\n\n /**\n * Deserialize a [[PropertiesField]] from compressed JSON.\n * @public\n */\n public static override fromCompressedJSON(json: PropertiesFieldJSON<Id64String>, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]): PropertiesField | undefined {\n const field = Object.create(PropertiesField.prototype);\n return Object.assign(field, json, {\n category: this.getCategoryFromFieldJson(json, categories),\n properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),\n });\n }\n\n /**\n * Get descriptor for this field.\n * @public\n */\n public override getFieldDescriptor(): FieldDescriptor {\n const pathFromPropertyToSelectClass = new Array<RelatedClassInfo>();\n let currAncestor = this.parent;\n while (currAncestor) {\n pathFromPropertyToSelectClass.push(...currAncestor.pathToPrimaryClass);\n currAncestor = currAncestor.parent;\n }\n return {\n type: FieldDescriptorType.Properties,\n pathFromSelectToPropertyClass: RelationshipPath.strip(RelationshipPath.reverse(pathFromPropertyToSelectClass)),\n properties: this.properties.map((p) => ({\n class: p.property.classInfo.name,\n name: p.property.name,\n })),\n } as PropertiesFieldDescriptor;\n }\n}\n\n/**\n * Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).\n *\n * @public\n */\nexport class NestedContentField extends Field {\n /** Information about an ECClass whose properties are nested inside this field */\n public contentClassInfo: ClassInfo;\n /** Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class) */\n public pathToPrimaryClass: RelationshipPath;\n /** @alpha */\n public relationshipMeaning: RelationshipMeaning;\n /** @alpha */\n public actualPrimaryClassIds: Id64String[];\n /** Contained nested fields */\n public nestedFields: Field[];\n /** Flag specifying whether field should be expanded */\n public autoExpand?: boolean;\n\n /**\n * Creates an instance of NestedContentField.\n * @param category Category information\n * @param name Unique name\n * @param label Display label\n * @param type Description of this field's values data type\n * @param isReadonly Are values in this field read-only\n * @param priority Priority of the field\n * @param contentClassInfo Information about an ECClass whose properties are nested inside this field\n * @param pathToPrimaryClass Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class)\n * @param nestedFields Contained nested fields\n * @param editor Property editor used to edit values of this field\n * @param autoExpand Flag specifying whether field should be expanded\n * @param relationshipMeaning RelationshipMeaning of the field\n * @param renderer Property renderer used to render values of this field\n */\n public constructor(\n category: CategoryDescription,\n name: string,\n label: string,\n description: TypeDescription,\n isReadonly: boolean,\n priority: number,\n contentClassInfo: ClassInfo,\n pathToPrimaryClass: RelationshipPath,\n nestedFields: Field[],\n editor?: EditorDescription,\n autoExpand?: boolean,\n renderer?: RendererDescription,\n ) {\n super(category, name, label, description, isReadonly, priority, editor, renderer);\n this.contentClassInfo = contentClassInfo;\n this.pathToPrimaryClass = pathToPrimaryClass;\n this.relationshipMeaning = RelationshipMeaning.RelatedInstance;\n this.nestedFields = nestedFields;\n this.autoExpand = autoExpand;\n this.actualPrimaryClassIds = [];\n }\n\n public override clone() {\n const clone = new NestedContentField(\n this.category,\n this.name,\n this.label,\n this.type,\n this.isReadonly,\n this.priority,\n this.contentClassInfo,\n this.pathToPrimaryClass,\n this.nestedFields.map((n) => n.clone()),\n this.editor,\n this.autoExpand,\n this.renderer,\n );\n clone.actualPrimaryClassIds = this.actualPrimaryClassIds;\n clone.relationshipMeaning = this.relationshipMeaning;\n clone.rebuildParentship(this.parent);\n return clone;\n }\n\n /**\n * Get field by its name\n * @param name Name of the field to find\n * @param recurse Recurse into nested fields\n */\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\n return getFieldByName(this.nestedFields, name, recurse);\n }\n\n /** Serialize this object to JSON */\n public override toJSON(): NestedContentFieldJSON {\n return {\n ...super.toJSON(),\n contentClassInfo: this.contentClassInfo,\n pathToPrimaryClass: this.pathToPrimaryClass,\n relationshipMeaning: this.relationshipMeaning,\n actualPrimaryClassIds: this.actualPrimaryClassIds,\n nestedFields: this.nestedFields.map((field: Field) => field.toJSON()),\n autoExpand: this.autoExpand,\n };\n }\n\n /** Deserialize [[NestedContentField]] from JSON */\n public static override fromJSON(json: NestedContentFieldJSON | undefined, categories: CategoryDescription[]): NestedContentField | undefined {\n if (!json)\n return undefined;\n\n const field = Object.create(NestedContentField.prototype);\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\n nestedFields: json.nestedFields.map((nestedFieldJson: FieldJSON) => Field.fromJSON(nestedFieldJson, categories))\n .filter((nestedField): nestedField is Field => !!nestedField),\n contentClassInfo: ClassInfo.fromJSON(json.contentClassInfo),\n pathToPrimaryClass: json.pathToPrimaryClass.map(RelatedClassInfo.fromJSON),\n });\n }\n\n /**\n * Deserialize a [[NestedContentField]] from compressed JSON.\n * @public\n */\n public static override fromCompressedJSON(json: NestedContentFieldJSON<Id64String>, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]) {\n assert(classesMap.hasOwnProperty(json.contentClassInfo));\n const field = Object.create(NestedContentField.prototype);\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\n category: this.getCategoryFromFieldJson(json, categories),\n nestedFields: json.nestedFields.map((nestedFieldJson: FieldJSON) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))\n .filter((nestedField): nestedField is Field => !!nestedField),\n contentClassInfo: ClassInfo.fromJSON({ id: json.contentClassInfo, ...classesMap[json.contentClassInfo] }),\n pathToPrimaryClass: json.pathToPrimaryClass.map((stepJson) => RelatedClassInfo.fromCompressedJSON(stepJson, classesMap)),\n });\n }\n\n private static fromCommonJSON(json: NestedContentFieldJSON<ClassInfoJSON | string>, categories: CategoryDescription[]): Partial<NestedContentField> {\n return {\n category: this.getCategoryFromFieldJson(json, categories),\n relationshipMeaning: json.relationshipMeaning ?? RelationshipMeaning.RelatedInstance,\n actualPrimaryClassIds: json.actualPrimaryClassIds ?? [],\n autoExpand: json.autoExpand,\n };\n }\n\n /** @internal */\n public override resetParentship(): void {\n super.resetParentship();\n for (const nestedField of this.nestedFields)\n nestedField.resetParentship();\n }\n\n /** @internal */\n public override rebuildParentship(parentField?: NestedContentField): void {\n super.rebuildParentship(parentField);\n for (const nestedField of this.nestedFields)\n nestedField.rebuildParentship(this);\n }\n}\n\n/** @internal */\nexport const getFieldByName = (fields: Field[], name: string | undefined, recurse?: boolean): Field | undefined => {\n if (name) {\n for (const field of fields) {\n if (field.name === name)\n return field;\n\n if (recurse && field.isNestedContentField()) {\n const nested = getFieldByName(field.nestedFields, name, recurse);\n if (nested)\n return nested;\n }\n }\n }\n return undefined;\n};\n\n/**\n * Types of different field descriptors.\n * @public\n */\nexport enum FieldDescriptorType {\n Name = \"name\",\n Properties = \"properties\",\n}\n\n/**\n * Base for a field descriptor\n * @public\n */\nexport interface FieldDescriptorBase {\n type: FieldDescriptorType;\n}\n\n/**\n * A union of all possible field descriptor types\n * @public\n */\nexport type FieldDescriptor = NamedFieldDescriptor | PropertiesFieldDescriptor;\n/** @public */\nexport namespace FieldDescriptor { // eslint-disable-line @typescript-eslint/no-redeclare\n /** Is this a named field descriptor */\n export function isNamed(d: FieldDescriptor): d is NamedFieldDescriptor {\n return d.type === FieldDescriptorType.Name;\n }\n /** Is this a properties field descriptor */\n export function isProperties(d: FieldDescriptor): d is PropertiesFieldDescriptor {\n return d.type === FieldDescriptorType.Properties;\n }\n}\n\n/**\n * Field descriptor that identifies a content field by its unique name.\n * @public\n */\nexport interface NamedFieldDescriptor extends FieldDescriptorBase {\n type: FieldDescriptorType.Name;\n fieldName: string;\n}\n\n/**\n * Field descriptor that identifies a properties field using a list of\n * properties that the field contains.\n * @public\n */\nexport interface PropertiesFieldDescriptor extends FieldDescriptorBase {\n type: FieldDescriptorType.Properties;\n pathFromSelectToPropertyClass: StrippedRelationshipPath;\n /**\n * A list of properties that describe the field. At least one property in the list must\n * match at least one property in the field for the descriptor to be considered matching.\n */\n properties: Array<{\n /** Full class name */\n class: string;\n /** Property name */\n name: string;\n }>;\n}\n\nfunction fromCompressedPropertyJSON(compressedPropertyJSON: PropertyJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): Property {\n return {\n property: fromCompressedPropertyInfoJSON(compressedPropertyJSON.property, classesMap),\n };\n}\n\nfunction fromCompressedPropertyInfoJSON(compressedPropertyJSON: PropertyInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): PropertyInfo {\n assert(classesMap.hasOwnProperty(compressedPropertyJSON.classInfo));\n\n const { navigationPropertyInfo, ...leftOverPropertyJSON } = compressedPropertyJSON;\n\n return {\n ...leftOverPropertyJSON,\n classInfo: { id: compressedPropertyJSON.classInfo, ...classesMap[compressedPropertyJSON.classInfo] },\n ...(navigationPropertyInfo ? { navigationPropertyInfo: NavigationPropertyInfo.fromCompressedJSON(navigationPropertyInfo, classesMap) } : undefined),\n };\n}\n"]}
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, ClassInfoJSON, CompressedClassInfoJSON, NavigationPropertyInfo, PropertyInfo, PropertyInfoJSON, RelatedClassInfo, RelationshipPath, 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}\r\n\r\n/**\r\n * Data structure for a [[PropertiesField]] serialized to JSON.\r\n * @public\r\n */\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 [[NestedContentField]] serialized to JSON.\r\n * @public\r\n */\r\nexport interface NestedContentFieldJSON<TClassInfoJSON = ClassInfoJSON> extends BaseFieldJSON {\r\n contentClassInfo: TClassInfoJSON;\r\n pathToPrimaryClass: RelationshipPathJSON<TClassInfoJSON>;\r\n /** @alpha */\r\n relationshipMeaning?: RelationshipMeaning;\r\n /** @alpha */\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> = BaseFieldJSON | PropertiesFieldJSON<TClassInfoJSON> | NestedContentFieldJSON<TClassInfoJSON>;\r\n\r\n/** Is supplied field a properties field. */\r\nconst isPropertiesField = (field: FieldJSON | Field): field is PropertiesFieldJSON<any> | PropertiesField => {\r\n return !!(field as any).properties;\r\n};\r\n\r\n/** Is supplied field a nested content field. */\r\nconst isNestedContentField = (field: FieldJSON | Field): field is NestedContentFieldJSON<any> | NestedContentField => {\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 /** 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 */\r\n public constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription,\r\n isReadonly: boolean, priority: number, editor?: EditorDescription, renderer?: RendererDescription) {\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 }\r\n\r\n /**\r\n * Is this a [[PropertiesField]]\r\n */\r\n public isPropertiesField(): this is PropertiesField { return isPropertiesField(this); }\r\n\r\n /**\r\n * Is this a [[NestedContentField]]\r\n */\r\n public isNestedContentField(): this is NestedContentField { return isNestedContentField(this); }\r\n\r\n /**\r\n * Get parent\r\n */\r\n public get parent(): NestedContentField | undefined { return this._parent; }\r\n\r\n public clone() {\r\n const clone = new Field(\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.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 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 };\r\n }\r\n\r\n /** Serialize this object to compressed JSON */\r\n public toCompressedJSON(classesMap: { [id: string]: CompressedClassInfoJSON }): FieldJSON<string> {\r\n if (this.isPropertiesField())\r\n return {\r\n ...this.toJSON(),\r\n properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),\r\n };\r\n\r\n if (this.isNestedContentField()) {\r\n const { id, ...leftOverInfo } = this.contentClassInfo;\r\n classesMap[id] = leftOverInfo;\r\n return {\r\n ...this.toJSON(),\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 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 if (isPropertiesField(json))\r\n return PropertiesField.fromJSON(json, categories);\r\n if (isNestedContentField(json))\r\n return NestedContentField.fromJSON(json, categories);\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 /**\r\n * Deserialize a [[Field]] from compressed JSON.\r\n * @public\r\n */\r\n public static fromCompressedJSON(json: FieldJSON<string> | undefined, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]): Field | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n if (isPropertiesField(json))\r\n return PropertiesField.fromCompressedJSON(json, classesMap, categories);\r\n\r\n if (isNestedContentField(json))\r\n return NestedContentField.fromCompressedJSON(json, classesMap, 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 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 return category;\r\n }\r\n\r\n /** @internal */\r\n public resetParentship(): void {\r\n this._parent = undefined;\r\n }\r\n\r\n /** @internal */\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/**\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 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.map((p) => Property.toJSON(p)),\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 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(Property.fromJSON),\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(json: PropertiesFieldJSON<Id64String>, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]): PropertiesField | undefined {\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/**\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 /** @alpha */\r\n public relationshipMeaning: RelationshipMeaning;\r\n /** @alpha */\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 /** Deserialize [[NestedContentField]] from JSON */\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 const field = Object.create(NestedContentField.prototype);\r\n return Object.assign(field, json, this.fromCommonJSON(json, categories), {\r\n nestedFields: json.nestedFields.map((nestedFieldJson: FieldJSON) => Field.fromJSON(nestedFieldJson, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n contentClassInfo: ClassInfo.fromJSON(json.contentClassInfo),\r\n pathToPrimaryClass: json.pathToPrimaryClass.map(RelatedClassInfo.fromJSON),\r\n });\r\n }\r\n\r\n /**\r\n * Deserialize a [[NestedContentField]] from compressed JSON.\r\n * @public\r\n */\r\n public static override fromCompressedJSON(json: NestedContentFieldJSON<Id64String>, classesMap: { [id: string]: CompressedClassInfoJSON }, categories: CategoryDescription[]) {\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.map((nestedFieldJson: FieldJSON) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))\r\n .filter((nestedField): nestedField is Field => !!nestedField),\r\n contentClassInfo: ClassInfo.fromJSON({ 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 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 /** @internal */\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 /** @internal */\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/** @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 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 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/** @public */\r\nexport namespace FieldDescriptor { // eslint-disable-line @typescript-eslint/no-redeclare\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,88 +1,88 @@
1
- /** @packageDocumentation
2
- * @module Content
3
- */
4
- import { ClassInfo, ClassInfoJSON, InstanceKey, InstanceKeyJSON } from "../EC";
5
- import { LabelDefinition, LabelDefinitionJSON } from "../LabelDefinition";
6
- import { ValuesDictionary } from "../Utils";
7
- import { DisplayValue, DisplayValueJSON, Value, ValueJSON } from "./Value";
8
- /**
9
- * Serialized [[Item]] JSON representation.
10
- * @public
11
- */
12
- export interface ItemJSON {
13
- /** @beta */
14
- inputKeys?: InstanceKeyJSON[];
15
- primaryKeys: InstanceKeyJSON[];
16
- labelDefinition: LabelDefinitionJSON;
17
- /** @deprecated in 3.x. */
18
- imageId: string;
19
- classInfo?: ClassInfoJSON;
20
- values: ValuesDictionary<ValueJSON>;
21
- displayValues: ValuesDictionary<DisplayValueJSON>;
22
- mergedFieldNames: string[];
23
- extendedData?: {
24
- [key: string]: any;
25
- };
26
- }
27
- /**
28
- * A data structure that represents a single content record.
29
- * @public
30
- */
31
- export declare class Item {
32
- /**
33
- * Keys of input instances that caused this item to be included in content.
34
- * @beta
35
- */
36
- inputKeys?: InstanceKey[];
37
- /** Keys of instances whose data is contained in this item */
38
- primaryKeys: InstanceKey[];
39
- /** Display label of the item */
40
- label: LabelDefinition;
41
- /**
42
- * ID of the image associated with this item
43
- * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.
44
- */
45
- imageId: string;
46
- /** For cases when item consists only of same class instances, information about the ECClass */
47
- classInfo?: ClassInfo;
48
- /** Raw values dictionary */
49
- values: ValuesDictionary<Value>;
50
- /** Display values dictionary */
51
- displayValues: ValuesDictionary<DisplayValue>;
52
- /** List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging)) */
53
- mergedFieldNames: string[];
54
- /** Extended data injected into this content item */
55
- extendedData?: {
56
- [key: string]: any;
57
- };
58
- /**
59
- * Creates an instance of Item.
60
- * @param primaryKeys Keys of instances whose data is contained in this item
61
- * @param label Display label of the item
62
- * @param imageId ID of the image associated with this item
63
- * @param classInfo For cases when item consists only of same class instances, information about the ECClass
64
- * @param values Raw values dictionary
65
- * @param displayValues Display values dictionary
66
- * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))
67
- * @param extendedData Extended data injected into this content item
68
- */
69
- constructor(primaryKeys: InstanceKey[], label: string | LabelDefinition, imageId: string, classInfo: ClassInfo | undefined, values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, mergedFieldNames: string[], extendedData?: {
70
- [key: string]: any;
71
- });
72
- /**
73
- * Is value of field with the specified name merged in this record.
74
- */
75
- isFieldMerged(fieldName: string): boolean;
76
- /** Serialize this object to JSON */
77
- toJSON(): ItemJSON;
78
- /** Deserialize [[Item]] from JSON */
79
- static fromJSON(json: ItemJSON | string | undefined): Item | undefined;
80
- /**
81
- * Reviver function that can be used as a second argument for
82
- * `JSON.parse` method when parsing Item objects.
83
- *
84
- * @internal
85
- */
86
- static reviver(key: string, value: any): any;
87
- }
1
+ /** @packageDocumentation
2
+ * @module Content
3
+ */
4
+ import { ClassInfo, ClassInfoJSON, InstanceKey, InstanceKeyJSON } from "../EC";
5
+ import { LabelDefinition, LabelDefinitionJSON } from "../LabelDefinition";
6
+ import { ValuesDictionary } from "../Utils";
7
+ import { DisplayValue, DisplayValueJSON, Value, ValueJSON } from "./Value";
8
+ /**
9
+ * Serialized [[Item]] JSON representation.
10
+ * @public
11
+ */
12
+ export interface ItemJSON {
13
+ /** @beta */
14
+ inputKeys?: InstanceKeyJSON[];
15
+ primaryKeys: InstanceKeyJSON[];
16
+ labelDefinition: LabelDefinitionJSON;
17
+ /** @deprecated in 3.x. */
18
+ imageId: string;
19
+ classInfo?: ClassInfoJSON;
20
+ values: ValuesDictionary<ValueJSON>;
21
+ displayValues: ValuesDictionary<DisplayValueJSON>;
22
+ mergedFieldNames: string[];
23
+ extendedData?: {
24
+ [key: string]: any;
25
+ };
26
+ }
27
+ /**
28
+ * A data structure that represents a single content record.
29
+ * @public
30
+ */
31
+ export declare class Item {
32
+ /**
33
+ * Keys of input instances that caused this item to be included in content.
34
+ * @beta
35
+ */
36
+ inputKeys?: InstanceKey[];
37
+ /** Keys of instances whose data is contained in this item */
38
+ primaryKeys: InstanceKey[];
39
+ /** Display label of the item */
40
+ label: LabelDefinition;
41
+ /**
42
+ * ID of the image associated with this item
43
+ * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.
44
+ */
45
+ imageId: string;
46
+ /** For cases when item consists only of same class instances, information about the ECClass */
47
+ classInfo?: ClassInfo;
48
+ /** Raw values dictionary */
49
+ values: ValuesDictionary<Value>;
50
+ /** Display values dictionary */
51
+ displayValues: ValuesDictionary<DisplayValue>;
52
+ /** List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging)) */
53
+ mergedFieldNames: string[];
54
+ /** Extended data injected into this content item */
55
+ extendedData?: {
56
+ [key: string]: any;
57
+ };
58
+ /**
59
+ * Creates an instance of Item.
60
+ * @param primaryKeys Keys of instances whose data is contained in this item
61
+ * @param label Display label of the item
62
+ * @param imageId ID of the image associated with this item
63
+ * @param classInfo For cases when item consists only of same class instances, information about the ECClass
64
+ * @param values Raw values dictionary
65
+ * @param displayValues Display values dictionary
66
+ * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))
67
+ * @param extendedData Extended data injected into this content item
68
+ */
69
+ constructor(primaryKeys: InstanceKey[], label: string | LabelDefinition, imageId: string, classInfo: ClassInfo | undefined, values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, mergedFieldNames: string[], extendedData?: {
70
+ [key: string]: any;
71
+ });
72
+ /**
73
+ * Is value of field with the specified name merged in this record.
74
+ */
75
+ isFieldMerged(fieldName: string): boolean;
76
+ /** Serialize this object to JSON */
77
+ toJSON(): ItemJSON;
78
+ /** Deserialize [[Item]] from JSON */
79
+ static fromJSON(json: ItemJSON | string | undefined): Item | undefined;
80
+ /**
81
+ * Reviver function that can be used as a second argument for
82
+ * `JSON.parse` method when parsing Item objects.
83
+ *
84
+ * @internal
85
+ */
86
+ static reviver(key: string, value: any): any;
87
+ }
88
88
  //# sourceMappingURL=Item.d.ts.map
@@ -1,83 +1,83 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Content
7
- */
8
- import { ClassInfo, InstanceKey } from "../EC";
9
- import { LabelDefinition } from "../LabelDefinition";
10
- import { DisplayValue, Value } from "./Value";
11
- /**
12
- * A data structure that represents a single content record.
13
- * @public
14
- */
15
- export class Item {
16
- /**
17
- * Creates an instance of Item.
18
- * @param primaryKeys Keys of instances whose data is contained in this item
19
- * @param label Display label of the item
20
- * @param imageId ID of the image associated with this item
21
- * @param classInfo For cases when item consists only of same class instances, information about the ECClass
22
- * @param values Raw values dictionary
23
- * @param displayValues Display values dictionary
24
- * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))
25
- * @param extendedData Extended data injected into this content item
26
- */
27
- constructor(primaryKeys, label, imageId, classInfo, values, displayValues, mergedFieldNames, extendedData) {
28
- this.primaryKeys = primaryKeys;
29
- this.imageId = imageId; // eslint-disable-line deprecation/deprecation
30
- this.classInfo = classInfo;
31
- this.values = values;
32
- this.displayValues = displayValues;
33
- this.mergedFieldNames = mergedFieldNames;
34
- this.extendedData = extendedData;
35
- this.label = (typeof label === "string") ? LabelDefinition.fromLabelString(label) : label;
36
- }
37
- /**
38
- * Is value of field with the specified name merged in this record.
39
- */
40
- isFieldMerged(fieldName) {
41
- return -1 !== this.mergedFieldNames.indexOf(fieldName);
42
- }
43
- /** Serialize this object to JSON */
44
- toJSON() {
45
- const { label, ...baseItem } = this;
46
- return {
47
- ...baseItem,
48
- ...(this.inputKeys ? { inputKeys: this.inputKeys.map(InstanceKey.toJSON) } : {}),
49
- primaryKeys: this.primaryKeys.map(InstanceKey.toJSON),
50
- classInfo: this.classInfo ? ClassInfo.toJSON(this.classInfo) : undefined,
51
- values: Value.toJSON(this.values),
52
- displayValues: DisplayValue.toJSON(this.displayValues),
53
- labelDefinition: LabelDefinition.toJSON(label),
54
- };
55
- }
56
- /** Deserialize [[Item]] from JSON */
57
- static fromJSON(json) {
58
- if (!json)
59
- return undefined;
60
- if (typeof json === "string")
61
- return JSON.parse(json, Item.reviver);
62
- const item = Object.create(Item.prototype);
63
- const { labelDefinition, ...baseJson } = json;
64
- return Object.assign(item, baseJson, {
65
- ...(json.inputKeys ? { inputKeys: json.inputKeys.map((ik) => InstanceKey.fromJSON(ik)) } : {}),
66
- primaryKeys: json.primaryKeys.map((pk) => InstanceKey.fromJSON(pk)),
67
- classInfo: json.classInfo ? ClassInfo.fromJSON(json.classInfo) : undefined,
68
- values: Value.fromJSON(json.values),
69
- displayValues: DisplayValue.fromJSON(json.displayValues),
70
- label: LabelDefinition.fromJSON(labelDefinition),
71
- });
72
- }
73
- /**
74
- * Reviver function that can be used as a second argument for
75
- * `JSON.parse` method when parsing Item objects.
76
- *
77
- * @internal
78
- */
79
- static reviver(key, value) {
80
- return key === "" ? Item.fromJSON(value) : value;
81
- }
82
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Content
7
+ */
8
+ import { ClassInfo, InstanceKey } from "../EC";
9
+ import { LabelDefinition } from "../LabelDefinition";
10
+ import { DisplayValue, Value } from "./Value";
11
+ /**
12
+ * A data structure that represents a single content record.
13
+ * @public
14
+ */
15
+ export class Item {
16
+ /**
17
+ * Creates an instance of Item.
18
+ * @param primaryKeys Keys of instances whose data is contained in this item
19
+ * @param label Display label of the item
20
+ * @param imageId ID of the image associated with this item
21
+ * @param classInfo For cases when item consists only of same class instances, information about the ECClass
22
+ * @param values Raw values dictionary
23
+ * @param displayValues Display values dictionary
24
+ * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))
25
+ * @param extendedData Extended data injected into this content item
26
+ */
27
+ constructor(primaryKeys, label, imageId, classInfo, values, displayValues, mergedFieldNames, extendedData) {
28
+ this.primaryKeys = primaryKeys;
29
+ this.imageId = imageId; // eslint-disable-line deprecation/deprecation
30
+ this.classInfo = classInfo;
31
+ this.values = values;
32
+ this.displayValues = displayValues;
33
+ this.mergedFieldNames = mergedFieldNames;
34
+ this.extendedData = extendedData;
35
+ this.label = (typeof label === "string") ? LabelDefinition.fromLabelString(label) : label;
36
+ }
37
+ /**
38
+ * Is value of field with the specified name merged in this record.
39
+ */
40
+ isFieldMerged(fieldName) {
41
+ return -1 !== this.mergedFieldNames.indexOf(fieldName);
42
+ }
43
+ /** Serialize this object to JSON */
44
+ toJSON() {
45
+ const { label, ...baseItem } = this;
46
+ return {
47
+ ...baseItem,
48
+ ...(this.inputKeys ? { inputKeys: this.inputKeys.map(InstanceKey.toJSON) } : {}),
49
+ primaryKeys: this.primaryKeys.map(InstanceKey.toJSON),
50
+ classInfo: this.classInfo ? ClassInfo.toJSON(this.classInfo) : undefined,
51
+ values: Value.toJSON(this.values),
52
+ displayValues: DisplayValue.toJSON(this.displayValues),
53
+ labelDefinition: LabelDefinition.toJSON(label),
54
+ };
55
+ }
56
+ /** Deserialize [[Item]] from JSON */
57
+ static fromJSON(json) {
58
+ if (!json)
59
+ return undefined;
60
+ if (typeof json === "string")
61
+ return JSON.parse(json, Item.reviver);
62
+ const item = Object.create(Item.prototype);
63
+ const { labelDefinition, ...baseJson } = json;
64
+ return Object.assign(item, baseJson, {
65
+ ...(json.inputKeys ? { inputKeys: json.inputKeys.map((ik) => InstanceKey.fromJSON(ik)) } : {}),
66
+ primaryKeys: json.primaryKeys.map((pk) => InstanceKey.fromJSON(pk)),
67
+ classInfo: json.classInfo ? ClassInfo.fromJSON(json.classInfo) : undefined,
68
+ values: Value.fromJSON(json.values),
69
+ displayValues: DisplayValue.fromJSON(json.displayValues),
70
+ label: LabelDefinition.fromJSON(labelDefinition),
71
+ });
72
+ }
73
+ /**
74
+ * Reviver function that can be used as a second argument for
75
+ * `JSON.parse` method when parsing Item objects.
76
+ *
77
+ * @internal
78
+ */
79
+ static reviver(key, value) {
80
+ return key === "" ? Item.fromJSON(value) : value;
81
+ }
82
+ }
83
83
  //# sourceMappingURL=Item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Item.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { ClassInfo, ClassInfoJSON, InstanceKey, InstanceKeyJSON } from \"../EC\";\nimport { LabelDefinition, LabelDefinitionJSON } from \"../LabelDefinition\";\nimport { ValuesDictionary } from \"../Utils\";\nimport { DisplayValue, DisplayValueJSON, DisplayValuesMapJSON, Value, ValueJSON, ValuesMapJSON } from \"./Value\";\n\n/**\n * Serialized [[Item]] JSON representation.\n * @public\n */\nexport interface ItemJSON {\n /** @beta */\n inputKeys?: InstanceKeyJSON[];\n primaryKeys: InstanceKeyJSON[];\n labelDefinition: LabelDefinitionJSON;\n /** @deprecated in 3.x. */\n imageId: string;\n classInfo?: ClassInfoJSON;\n values: ValuesDictionary<ValueJSON>;\n displayValues: ValuesDictionary<DisplayValueJSON>;\n mergedFieldNames: string[];\n extendedData?: { [key: string]: any };\n}\n\n/**\n * A data structure that represents a single content record.\n * @public\n */\nexport class Item {\n /**\n * Keys of input instances that caused this item to be included in content.\n * @beta\n */\n public inputKeys?: InstanceKey[];\n /** Keys of instances whose data is contained in this item */\n public primaryKeys: InstanceKey[];\n /** Display label of the item */\n public label: LabelDefinition;\n /**\n * ID of the image associated with this item\n * @deprecated in 3.x. Use [[extendedData]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n public imageId: string;\n /** For cases when item consists only of same class instances, information about the ECClass */\n public classInfo?: ClassInfo;\n /** Raw values dictionary */\n public values: ValuesDictionary<Value>;\n /** Display values dictionary */\n public displayValues: ValuesDictionary<DisplayValue>;\n /** List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging)) */\n public mergedFieldNames: string[];\n /** Extended data injected into this content item */\n public extendedData?: { [key: string]: any };\n\n /**\n * Creates an instance of Item.\n * @param primaryKeys Keys of instances whose data is contained in this item\n * @param label Display label of the item\n * @param imageId ID of the image associated with this item\n * @param classInfo For cases when item consists only of same class instances, information about the ECClass\n * @param values Raw values dictionary\n * @param displayValues Display values dictionary\n * @param mergedFieldNames List of field names whose values are merged (see [Merging values]($docs/presentation/content/Terminology#value-merging))\n * @param extendedData Extended data injected into this content item\n */\n public constructor(primaryKeys: InstanceKey[], label: string | LabelDefinition, imageId: string, classInfo: ClassInfo | undefined,\n values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, mergedFieldNames: string[], extendedData?: { [key: string]: any }) {\n this.primaryKeys = primaryKeys;\n this.imageId = imageId; // eslint-disable-line deprecation/deprecation\n this.classInfo = classInfo;\n this.values = values;\n this.displayValues = displayValues;\n this.mergedFieldNames = mergedFieldNames;\n this.extendedData = extendedData;\n this.label = (typeof label === \"string\") ? LabelDefinition.fromLabelString(label) : label;\n }\n\n /**\n * Is value of field with the specified name merged in this record.\n */\n public isFieldMerged(fieldName: string): boolean {\n return -1 !== this.mergedFieldNames.indexOf(fieldName);\n }\n\n /** Serialize this object to JSON */\n public toJSON(): ItemJSON {\n const { label, ...baseItem } = this;\n return {\n ...baseItem,\n ...(this.inputKeys ? { inputKeys: this.inputKeys.map(InstanceKey.toJSON) } : {}),\n primaryKeys: this.primaryKeys.map(InstanceKey.toJSON),\n classInfo: this.classInfo ? ClassInfo.toJSON(this.classInfo) : undefined,\n values: Value.toJSON(this.values) as ValuesMapJSON,\n displayValues: DisplayValue.toJSON(this.displayValues) as DisplayValuesMapJSON,\n labelDefinition: LabelDefinition.toJSON(label),\n };\n }\n\n /** Deserialize [[Item]] from JSON */\n public static fromJSON(json: ItemJSON | string | undefined): Item | undefined {\n if (!json)\n return undefined;\n if (typeof json === \"string\")\n return JSON.parse(json, Item.reviver);\n const item = Object.create(Item.prototype);\n const { labelDefinition, ...baseJson } = json;\n return Object.assign(item, baseJson, {\n ...(json.inputKeys ? { inputKeys: json.inputKeys.map((ik) => InstanceKey.fromJSON(ik)) } : {}),\n primaryKeys: json.primaryKeys.map((pk) => InstanceKey.fromJSON(pk)),\n classInfo: json.classInfo ? ClassInfo.fromJSON(json.classInfo) : undefined,\n values: Value.fromJSON(json.values),\n displayValues: DisplayValue.fromJSON(json.displayValues),\n label: LabelDefinition.fromJSON(labelDefinition),\n } as Partial<Item>);\n }\n\n /**\n * Reviver function that can be used as a second argument for\n * `JSON.parse` method when parsing Item objects.\n *\n * @internal\n */\n public static reviver(key: string, value: any): any {\n return key === \"\" ? Item.fromJSON(value) : value;\n }\n}\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, ClassInfoJSON, InstanceKey, InstanceKeyJSON } 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 /** @beta */\r\n inputKeys?: InstanceKeyJSON[];\r\n primaryKeys: InstanceKeyJSON[];\r\n labelDefinition: LabelDefinitionJSON;\r\n /** @deprecated in 3.x. */\r\n imageId: string;\r\n classInfo?: ClassInfoJSON;\r\n values: ValuesDictionary<ValueJSON>;\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.\r\n * @beta\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(primaryKeys: InstanceKey[], label: string | LabelDefinition, imageId: string, classInfo: ClassInfo | undefined,\r\n values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, mergedFieldNames: string[], extendedData?: { [key: string]: any }) {\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 ...(this.inputKeys ? { inputKeys: this.inputKeys.map(InstanceKey.toJSON) } : {}),\r\n primaryKeys: this.primaryKeys.map(InstanceKey.toJSON),\r\n classInfo: this.classInfo ? ClassInfo.toJSON(this.classInfo) : undefined,\r\n values: Value.toJSON(this.values) as ValuesMapJSON,\r\n displayValues: DisplayValue.toJSON(this.displayValues) as DisplayValuesMapJSON,\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 if (typeof json === \"string\")\r\n return JSON.parse(json, Item.reviver);\r\n const item = Object.create(Item.prototype);\r\n const { labelDefinition, ...baseJson } = json;\r\n return Object.assign(item, baseJson, {\r\n ...(json.inputKeys ? { inputKeys: json.inputKeys.map((ik) => InstanceKey.fromJSON(ik)) } : {}),\r\n primaryKeys: json.primaryKeys.map((pk) => InstanceKey.fromJSON(pk)),\r\n classInfo: json.classInfo ? ClassInfo.fromJSON(json.classInfo) : undefined,\r\n values: Value.fromJSON(json.values),\r\n displayValues: DisplayValue.fromJSON(json.displayValues),\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 *\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"]}