@itwin/presentation-common 4.0.0-dev.52 → 4.0.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 (521) hide show
  1. package/lib/cjs/assets/locales/en/Presentation.json +14 -14
  2. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  3. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  4. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  5. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  6. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  8. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  9. package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
  10. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  11. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  12. package/lib/cjs/presentation-common/EC.d.ts +350 -350
  13. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  14. package/lib/cjs/presentation-common/EC.js +290 -290
  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.d.ts.map +1 -1
  18. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  19. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  20. package/lib/cjs/presentation-common/Error.d.ts +47 -47
  21. package/lib/cjs/presentation-common/Error.js +64 -64
  22. package/lib/cjs/presentation-common/Error.js.map +1 -1
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  24. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  25. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  26. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  27. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  28. package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
  29. package/lib/cjs/presentation-common/KeySet.js +428 -428
  30. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  31. package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -93
  32. package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
  33. package/lib/cjs/presentation-common/LabelDefinition.js +78 -78
  34. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  35. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  36. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  37. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  38. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  39. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  40. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  41. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +273 -273
  42. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  43. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  44. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  45. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
  46. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  47. package/lib/cjs/presentation-common/PresentationRpcInterface.js +108 -104
  48. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  49. package/lib/cjs/presentation-common/PropertyFormatter.d.ts +30 -30
  50. package/lib/cjs/presentation-common/PropertyFormatter.js +198 -198
  51. package/lib/cjs/presentation-common/PropertyFormatter.js.map +1 -1
  52. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  53. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  54. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  55. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -82
  56. package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -166
  57. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  58. package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
  59. package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
  60. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  61. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  62. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  63. package/lib/cjs/presentation-common/RulesetsFactory.d.ts.map +1 -1
  64. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  65. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  66. package/lib/cjs/presentation-common/Update.d.ts +213 -213
  67. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  68. package/lib/cjs/presentation-common/Update.js +226 -226
  69. package/lib/cjs/presentation-common/Update.js.map +1 -1
  70. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  71. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  72. package/lib/cjs/presentation-common/Utils.js +43 -43
  73. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  74. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  75. package/lib/cjs/presentation-common/content/Category.js +48 -48
  76. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  77. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  78. package/lib/cjs/presentation-common/content/Content.js +56 -56
  79. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
  81. package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -437
  82. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  83. package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
  84. package/lib/cjs/presentation-common/content/Descriptor.js +191 -191
  85. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  87. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  88. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  89. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  90. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  91. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/Fields.d.ts +298 -298
  93. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  94. package/lib/cjs/presentation-common/content/Fields.js +393 -393
  95. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  96. package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
  97. package/lib/cjs/presentation-common/content/Item.js +84 -84
  98. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  99. package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
  100. package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
  101. package/lib/cjs/presentation-common/content/Property.js +40 -40
  102. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  103. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  104. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  105. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  106. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  107. package/lib/cjs/presentation-common/content/TypeDescription.d.ts.map +1 -1
  108. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  109. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  110. package/lib/cjs/presentation-common/content/Value.d.ts +189 -189
  111. package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
  112. package/lib/cjs/presentation-common/content/Value.js +273 -273
  113. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  114. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  115. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
  116. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  117. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
  118. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  119. package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
  120. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  121. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
  122. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  123. package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
  124. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  125. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  126. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
  127. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  128. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  129. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  130. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  132. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  133. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  135. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  136. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  137. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  138. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  139. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  140. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  141. package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
  142. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  143. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  144. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
  145. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  146. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  147. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  148. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  149. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  150. package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
  151. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  152. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  153. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  154. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  155. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  156. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  157. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  158. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  159. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  160. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  161. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  162. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  163. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  164. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  165. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  166. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  167. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  168. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  169. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  170. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  171. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  172. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  173. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  174. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  175. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  176. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  177. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  178. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  179. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  180. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  181. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  182. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  183. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  184. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  185. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  186. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  187. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  188. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  189. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  190. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  191. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  192. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  193. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  194. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  195. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  196. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  197. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  198. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  199. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  200. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  201. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  202. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  203. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  204. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  205. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  206. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  207. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  208. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  209. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  210. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  211. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  213. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  214. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  216. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  217. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  218. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  219. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  220. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  221. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  222. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  223. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  224. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  225. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  226. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  227. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
  228. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  229. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  230. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  231. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  232. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  233. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  234. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  235. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  236. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  237. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  238. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  239. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  240. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  241. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  242. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  243. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  244. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  245. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  246. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  247. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  248. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  249. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  250. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  251. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  252. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  253. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  254. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
  255. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  256. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  257. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  258. package/lib/cjs/presentation-common.d.ts +113 -113
  259. package/lib/cjs/presentation-common.js +133 -129
  260. package/lib/cjs/presentation-common.js.map +1 -1
  261. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  262. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  263. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  264. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  265. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  266. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  267. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  268. package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
  269. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  270. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  271. package/lib/esm/presentation-common/EC.d.ts +350 -350
  272. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  273. package/lib/esm/presentation-common/EC.js +287 -287
  274. package/lib/esm/presentation-common/EC.js.map +1 -1
  275. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  276. package/lib/esm/presentation-common/ElementProperties.d.ts.map +1 -1
  277. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  278. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  279. package/lib/esm/presentation-common/Error.d.ts +47 -47
  280. package/lib/esm/presentation-common/Error.js +60 -60
  281. package/lib/esm/presentation-common/Error.js.map +1 -1
  282. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  283. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  284. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  285. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  286. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  287. package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
  288. package/lib/esm/presentation-common/KeySet.js +424 -424
  289. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  290. package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -93
  291. package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
  292. package/lib/esm/presentation-common/LabelDefinition.js +75 -75
  293. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  294. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  295. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  296. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  297. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  298. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  299. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  300. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +273 -273
  301. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  302. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  303. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  304. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
  305. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  306. package/lib/esm/presentation-common/PresentationRpcInterface.js +105 -100
  307. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  308. package/lib/esm/presentation-common/PropertyFormatter.d.ts +30 -30
  309. package/lib/esm/presentation-common/PropertyFormatter.js +193 -193
  310. package/lib/esm/presentation-common/PropertyFormatter.js.map +1 -1
  311. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  312. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  313. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  314. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -82
  315. package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -162
  316. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  317. package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
  318. package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
  319. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  320. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  321. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  322. package/lib/esm/presentation-common/RulesetsFactory.d.ts.map +1 -1
  323. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  324. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  325. package/lib/esm/presentation-common/Update.d.ts +213 -213
  326. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  327. package/lib/esm/presentation-common/Update.js +223 -223
  328. package/lib/esm/presentation-common/Update.js.map +1 -1
  329. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  330. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  331. package/lib/esm/presentation-common/Utils.js +39 -39
  332. package/lib/esm/presentation-common/Utils.js.map +1 -1
  333. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  334. package/lib/esm/presentation-common/content/Category.js +45 -45
  335. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  336. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  337. package/lib/esm/presentation-common/content/Content.js +52 -52
  338. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  339. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
  340. package/lib/esm/presentation-common/content/ContentTraverser.js +427 -427
  341. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  342. package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
  343. package/lib/esm/presentation-common/content/Descriptor.js +187 -187
  344. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  345. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  346. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  347. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  348. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  349. package/lib/esm/presentation-common/content/Editor.js +8 -8
  350. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  351. package/lib/esm/presentation-common/content/Fields.d.ts +298 -298
  352. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  353. package/lib/esm/presentation-common/content/Fields.js +386 -386
  354. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  355. package/lib/esm/presentation-common/content/Item.d.ts +85 -85
  356. package/lib/esm/presentation-common/content/Item.js +80 -80
  357. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  358. package/lib/esm/presentation-common/content/Property.d.ts +57 -57
  359. package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
  360. package/lib/esm/presentation-common/content/Property.js +37 -37
  361. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  362. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  363. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  364. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  365. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  366. package/lib/esm/presentation-common/content/TypeDescription.d.ts.map +1 -1
  367. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  368. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  369. package/lib/esm/presentation-common/content/Value.d.ts +189 -189
  370. package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
  371. package/lib/esm/presentation-common/content/Value.js +270 -270
  372. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  373. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  374. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
  375. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  376. package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
  377. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  378. package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
  379. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  380. package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
  381. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  382. package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
  383. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  384. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  385. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
  386. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  387. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  388. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  389. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  390. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  391. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  392. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  393. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  394. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  395. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  396. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  397. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  398. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  399. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  400. package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
  401. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  402. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  403. package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
  404. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  405. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  406. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  407. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  408. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  409. package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
  410. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  411. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  412. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  413. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  414. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  415. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  416. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  417. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  418. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  419. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  420. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  421. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  422. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  423. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  424. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  425. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  426. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  427. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  428. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  429. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  430. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  431. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  432. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  433. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  434. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  435. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  436. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  437. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  438. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  439. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  440. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  441. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  442. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  443. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  444. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  445. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  446. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  447. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  448. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  449. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  450. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  451. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  452. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  453. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  454. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  455. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  456. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  457. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  458. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  459. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  460. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  461. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  462. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  463. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  464. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  465. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  466. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  467. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  468. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  469. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  470. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  471. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  472. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  473. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  474. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  475. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  476. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  477. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  478. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  479. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  480. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  481. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  482. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  483. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  484. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  485. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  486. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
  487. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  488. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  489. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  490. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  491. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  492. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  493. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  494. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  495. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  496. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  497. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  498. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  499. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  500. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  501. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  502. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  503. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  504. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  505. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  506. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  507. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  508. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  509. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  510. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  511. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  512. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  513. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
  514. package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  515. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  516. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  517. package/lib/esm/presentation-common.d.ts +113 -113
  518. package/lib/esm/presentation-common.js +117 -117
  519. package/lib/esm/presentation-common.js.map +1 -1
  520. package/lib/public/locales/en/Presentation.json +14 -14
  521. package/package.json +12 -12
@@ -1,428 +1,428 @@
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 { assert, using } from "@itwin/core-bentley";
9
- import { Content } from "./Content";
10
- import { Field } from "./Fields";
11
- import { Item } from "./Item";
12
- import { PropertyValueFormat } from "./TypeDescription";
13
- import { DisplayValue, Value } from "./Value";
14
- /**
15
- * An utility for traversing field hierarchy. Stops traversal as soon as `cb` returns `false`.
16
- * @public
17
- */
18
- export function traverseFieldHierarchy(hierarchy, cb) {
19
- if (cb(hierarchy))
20
- hierarchy.childFields.forEach((childHierarchy) => traverseFieldHierarchy(childHierarchy, cb));
21
- }
22
- /**
23
- * An utility to traverse content using provided visitor. Provides means to parse content into different formats,
24
- * for different components.
25
- * @public
26
- */
27
- export function traverseContent(visitor, content) {
28
- if (!visitor.startContent({ descriptor: content.descriptor }))
29
- return;
30
- try {
31
- const fieldHierarchies = createFieldHierarchies(content.descriptor.fields);
32
- visitor.processFieldHierarchies({ hierarchies: fieldHierarchies });
33
- content.contentSet.forEach((item) => {
34
- traverseContentItemFields(visitor, fieldHierarchies, item);
35
- });
36
- }
37
- finally {
38
- visitor.finishContent();
39
- }
40
- }
41
- /**
42
- * An utility for calling [[traverseContent]] when there's only one content item.
43
- * @public
44
- */
45
- export function traverseContentItem(visitor, descriptor, item) {
46
- traverseContent(visitor, new Content(descriptor, [item]));
47
- }
48
- class VisitedCategories {
49
- constructor(_visitor, category) {
50
- this._visitor = _visitor;
51
- const stack = [];
52
- let curr = category;
53
- while (curr) {
54
- stack.push(curr);
55
- curr = curr.parent;
56
- }
57
- stack.reverse();
58
- this._didVisitAllHierarchy = true;
59
- this._visitedCategories = [];
60
- for (curr of stack) {
61
- if (this._visitor.startCategory({ category: curr })) {
62
- this._visitedCategories.push(curr);
63
- }
64
- else {
65
- this._didVisitAllHierarchy = false;
66
- break;
67
- }
68
- }
69
- }
70
- dispose() {
71
- while (this._visitedCategories.pop())
72
- this._visitor.finishCategory();
73
- }
74
- get shouldContinue() { return this._didVisitAllHierarchy; }
75
- }
76
- function traverseContentItemFields(visitor, fieldHierarchies, item) {
77
- if (!visitor.startItem({ item }))
78
- return;
79
- try {
80
- fieldHierarchies.forEach((fieldHierarchy) => {
81
- using(new VisitedCategories(visitor, fieldHierarchy.field.category), (res) => {
82
- if (res.shouldContinue)
83
- traverseContentItemField(visitor, fieldHierarchy, item);
84
- });
85
- });
86
- }
87
- finally {
88
- visitor.finishItem();
89
- }
90
- }
91
- function traverseContentItemField(visitor, fieldHierarchy, item) {
92
- if (!visitor.startField({ hierarchy: fieldHierarchy }))
93
- return;
94
- try {
95
- const rootToThisField = createFieldPath(fieldHierarchy.field);
96
- let parentFieldName;
97
- const pathUpToField = rootToThisField.slice(undefined, -1);
98
- for (let i = 0; i < pathUpToField.length; ++i) {
99
- const parentField = pathUpToField[i];
100
- const nextField = rootToThisField[i + 1];
101
- if (item.isFieldMerged(parentField.name)) {
102
- visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: parentField, parentFieldName });
103
- return;
104
- }
105
- const { emptyNestedItem, convertedItem } = convertNestedContentItemToStructArrayItem(item, parentField, nextField);
106
- if (emptyNestedItem)
107
- return;
108
- item = convertedItem;
109
- parentFieldName = combineFieldNames(parentField.name, parentFieldName);
110
- }
111
- if (item.isFieldMerged(fieldHierarchy.field.name)) {
112
- visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: fieldHierarchy.field, parentFieldName });
113
- return;
114
- }
115
- if (fieldHierarchy.field.isNestedContentField()) {
116
- fieldHierarchy = convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName);
117
- const { emptyNestedItem, convertedItem } = convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy);
118
- if (emptyNestedItem)
119
- return;
120
- item = convertedItem;
121
- }
122
- else if (pathUpToField.length > 0) {
123
- fieldHierarchy = {
124
- ...fieldHierarchy,
125
- field: Object.assign(fieldHierarchy.field.clone(), {
126
- type: {
127
- valueFormat: PropertyValueFormat.Array,
128
- typeName: `${fieldHierarchy.field.type.typeName}[]`,
129
- memberType: fieldHierarchy.field.type,
130
- },
131
- }),
132
- };
133
- }
134
- traverseContentItemFieldValue(visitor, fieldHierarchy, item.mergedFieldNames, fieldHierarchy.field.type, parentFieldName, item.values[fieldHierarchy.field.name], item.displayValues[fieldHierarchy.field.name]);
135
- }
136
- finally {
137
- visitor.finishField();
138
- }
139
- }
140
- function traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue) {
141
- if (rawValue !== undefined) {
142
- if (valueType.valueFormat === PropertyValueFormat.Array) {
143
- assert(Value.isArray(rawValue));
144
- assert(DisplayValue.isArray(displayValue));
145
- return traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
146
- }
147
- if (valueType.valueFormat === PropertyValueFormat.Struct) {
148
- assert(Value.isMap(rawValue));
149
- assert(DisplayValue.isMap(displayValue));
150
- return traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
151
- }
152
- }
153
- traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
154
- }
155
- function traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValues, displayValues) {
156
- assert(rawValues.length === displayValues.length);
157
- assert(valueType.valueFormat === PropertyValueFormat.Array);
158
- if (!visitor.startArray({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues }))
159
- return;
160
- try {
161
- const itemType = valueType.memberType;
162
- rawValues.forEach((_, i) => {
163
- traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, itemType, parentFieldName, rawValues[i], displayValues[i]);
164
- });
165
- }
166
- finally {
167
- visitor.finishArray();
168
- }
169
- }
170
- function traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValues, displayValues) {
171
- assert(valueType.valueFormat === PropertyValueFormat.Struct);
172
- if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues }))
173
- return;
174
- try {
175
- if (fieldHierarchy.field.isNestedContentField())
176
- parentFieldName = combineFieldNames(fieldHierarchy.field.name, parentFieldName);
177
- valueType.members.forEach((memberDescription) => {
178
- let memberField = fieldHierarchy.childFields.find((f) => f.field.name === memberDescription.name);
179
- if (!memberField) {
180
- // Not finding a member field means we're traversing an ECStruct. We still need to carry member information, so we
181
- // create a fake field to represent the member
182
- memberField = {
183
- field: new Field(fieldHierarchy.field.category, memberDescription.name, memberDescription.label, memberDescription.type, fieldHierarchy.field.isReadonly, 0),
184
- childFields: [],
185
- };
186
- }
187
- traverseContentItemFieldValue(visitor, memberField, mergedFieldNames, memberDescription.type, parentFieldName, rawValues[memberDescription.name], displayValues[memberDescription.name]);
188
- });
189
- }
190
- finally {
191
- visitor.finishStruct();
192
- }
193
- }
194
- function traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue) {
195
- if (-1 !== mergedFieldNames.indexOf(fieldHierarchy.field.name)) {
196
- visitor.processMergedValue({ mergedField: fieldHierarchy.field, requestedField: fieldHierarchy.field, parentFieldName });
197
- return;
198
- }
199
- visitor.processPrimitiveValue({ field: fieldHierarchy.field, valueType, parentFieldName, rawValue, displayValue });
200
- }
201
- /**
202
- * Parses a list of [[Field]] objects into a list of [[FieldHierarchy]].
203
- *
204
- * @param ignoreCategories Enables adding all of the `nestedFields` to parent field's `childFields`
205
- * without considering categories.
206
- *
207
- * @public
208
- */
209
- export function createFieldHierarchies(fields, ignoreCategories) {
210
- const hierarchies = new Array();
211
- const visitField = (category, field, parentField) => {
212
- let childFields = [];
213
- if (field.isNestedContentField()) {
214
- // visit all nested fields
215
- childFields = visitFields(field.nestedFields, field);
216
- if (0 === childFields.length)
217
- return undefined;
218
- }
219
- const fieldHierarchy = { field, childFields };
220
- if (category === parentField?.category || ignoreCategories && parentField) {
221
- // if categories of this field and its parent field match - return the field hierarchy without
222
- // including it as a top level field
223
- return fieldHierarchy;
224
- }
225
- addFieldHierarchy(hierarchies, fieldHierarchy);
226
- return undefined;
227
- };
228
- const visitFields = (visitedFields, parentField) => {
229
- const includedFields = [];
230
- visitedFields.forEach((field) => {
231
- const visitedField = visitField(field.category, field, parentField);
232
- if (visitedField)
233
- includedFields.push(visitedField);
234
- });
235
- return includedFields;
236
- };
237
- visitFields(fields, undefined);
238
- return hierarchies;
239
- }
240
- function findRelatedFields(rootFields, hierarchy) {
241
- // build a list of parent fields in hierarchy
242
- const fields = [];
243
- let currField = hierarchy.field;
244
- while (currField) {
245
- fields.push(currField);
246
- currField = currField.parent;
247
- }
248
- for (let rootIndex = 0; rootIndex < rootFields.length; ++rootIndex) {
249
- const rootFieldHierarchy = rootFields[rootIndex];
250
- if (rootFieldHierarchy.field.category !== hierarchy.field.category) {
251
- // only interested in fields with the same category
252
- continue;
253
- }
254
- let first = true;
255
- currField = rootFieldHierarchy.field;
256
- while (currField) {
257
- const index = fields.findIndex((f) => f.name === currField.name);
258
- if (-1 !== index) {
259
- return {
260
- existing: {
261
- field: currField,
262
- hierarchy: first ? rootFieldHierarchy : undefined,
263
- index: rootIndex,
264
- },
265
- matchingField: fields[index],
266
- };
267
- }
268
- currField = currField.parent;
269
- first = false;
270
- }
271
- }
272
- return undefined;
273
- }
274
- function buildParentHierarchy(hierarchy, parentField) {
275
- // note: parentField is found by walking up the parentship relationship
276
- // from hierarchy.field, so we expect to always find it here
277
- while (hierarchy.field !== parentField) {
278
- const hierarchyParent = hierarchy.field.parent;
279
- assert(hierarchyParent !== undefined);
280
- hierarchy = { field: hierarchyParent, childFields: [hierarchy] };
281
- }
282
- return hierarchy;
283
- }
284
- function mergeHierarchies(lhs, rhs) {
285
- assert(lhs.field.name === rhs.field.name);
286
- const result = {
287
- field: lhs.field.clone(),
288
- childFields: [...lhs.childFields],
289
- };
290
- rhs.childFields.forEach((rhsChildHierarchy) => {
291
- const indexInResult = result.childFields.findIndex((resultHierarchy) => resultHierarchy.field.name === rhsChildHierarchy.field.name);
292
- if (indexInResult !== -1)
293
- result.childFields[indexInResult] = mergeHierarchies(result.childFields[indexInResult], rhsChildHierarchy);
294
- else
295
- result.childFields.push(rhsChildHierarchy);
296
- });
297
- return result;
298
- }
299
- /**
300
- * Adds a field hierarchy into root field hierarchies list. *
301
- * @public
302
- */
303
- export function addFieldHierarchy(rootHierarchies, hierarchy) {
304
- const match = findRelatedFields(rootHierarchies, hierarchy);
305
- if (!match) {
306
- rootHierarchies.push(hierarchy);
307
- return;
308
- }
309
- const targetHierarchy = rootHierarchies[match.existing.index];
310
- const existingHierarchy = match.existing.hierarchy ?? buildParentHierarchy(targetHierarchy, match.existing.field);
311
- const insertHierarchy = buildParentHierarchy(hierarchy, match.matchingField);
312
- const mergedHierarchy = mergeHierarchies(existingHierarchy, insertHierarchy);
313
- mergedHierarchy.field.category = hierarchy.field.category;
314
- rootHierarchies[match.existing.index] = mergedHierarchy;
315
- }
316
- function createFieldPath(field) {
317
- const path = [field];
318
- let currField = field;
319
- while (currField.parent) {
320
- currField = currField.parent;
321
- path.push(currField);
322
- }
323
- path.reverse();
324
- return path;
325
- }
326
- /** @internal */
327
- export const FIELD_NAMES_SEPARATOR = "$";
328
- /**
329
- * Combines given field names in a way that allows them to be parsed back into a list of individual names using the [[parseCombinedFieldNames]] function.
330
- * @public
331
- */
332
- export function combineFieldNames(fieldName, parentFieldName) {
333
- return parentFieldName ? `${parentFieldName}${FIELD_NAMES_SEPARATOR}${fieldName}` : fieldName;
334
- }
335
- /**
336
- * Parses given combined field names string, constructed using [[combineFieldNames]], into a list of individual field names.
337
- * @public
338
- */
339
- export function parseCombinedFieldNames(combinedName) {
340
- return combinedName ? combinedName.split(FIELD_NAMES_SEPARATOR) : [];
341
- }
342
- function convertNestedContentItemToStructArrayItem(item, field, nextField) {
343
- const value = item.values[field.name] ?? [];
344
- assert(Value.isNestedContent(value));
345
- if (value.length === 0)
346
- return { emptyNestedItem: true, convertedItem: item };
347
- const nextFieldValues = { raw: [], display: [] };
348
- value.forEach((ncv) => {
349
- const nextRawValue = ncv.values[nextField.name];
350
- const nextDisplayValue = ncv.displayValues[nextField.name];
351
- if (nextField.isNestedContentField()) {
352
- if (nextRawValue) {
353
- assert(Value.isNestedContent(nextRawValue));
354
- nextFieldValues.raw.push(...nextRawValue);
355
- }
356
- }
357
- else {
358
- nextFieldValues.raw.push(nextRawValue);
359
- nextFieldValues.display.push(nextDisplayValue);
360
- }
361
- });
362
- const convertedItem = new Item(item.primaryKeys, item.label, item.imageId, item.classInfo, { [nextField.name]: nextFieldValues.raw }, { [nextField.name]: nextFieldValues.display }, item.mergedFieldNames, item.extendedData); // eslint-disable-line deprecation/deprecation
363
- return { emptyNestedItem: false, convertedItem };
364
- }
365
- function convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName) {
366
- const fieldName = fieldHierarchy.field.name;
367
- const convertedChildFieldHierarchies = fieldHierarchy.childFields.map((child) => {
368
- if (child.field.isNestedContentField())
369
- return convertNestedContentFieldHierarchyToStructArrayHierarchy(child, combineFieldNames(fieldName, parentFieldName));
370
- return child;
371
- });
372
- const convertedFieldHierarchy = {
373
- field: Object.assign(fieldHierarchy.field.clone(), {
374
- type: {
375
- valueFormat: PropertyValueFormat.Array,
376
- typeName: `${fieldHierarchy.field.type.typeName}[]`,
377
- memberType: {
378
- valueFormat: PropertyValueFormat.Struct,
379
- typeName: fieldHierarchy.field.type.typeName,
380
- members: convertedChildFieldHierarchies.map((member) => ({
381
- name: member.field.name,
382
- label: member.field.label,
383
- type: member.field.type,
384
- })),
385
- },
386
- },
387
- }),
388
- childFields: convertedChildFieldHierarchies,
389
- };
390
- return convertedFieldHierarchy;
391
- }
392
- function convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, ncvs) {
393
- const result = { raw: [], display: [], mergedFieldNames: [] };
394
- ncvs.forEach((ncv) => {
395
- const values = { ...ncv.values };
396
- const displayValues = { ...ncv.displayValues };
397
- const mergedFieldNames = [...ncv.mergedFieldNames];
398
- fieldHierarchy.childFields.forEach((childFieldHierarchy) => {
399
- const childFieldName = childFieldHierarchy.field.name;
400
- if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {
401
- return;
402
- }
403
- if (childFieldHierarchy.field.isNestedContentField()) {
404
- const value = values[childFieldName];
405
- assert(Value.isNestedContent(value));
406
- const convertedValues = convertNestedContentValuesToStructArrayValuesRecursive(childFieldHierarchy, value);
407
- values[childFieldName] = convertedValues.raw;
408
- displayValues[childFieldName] = convertedValues.display;
409
- mergedFieldNames.push(...convertedValues.mergedFieldNames);
410
- }
411
- });
412
- result.raw.push(values);
413
- result.display.push(displayValues);
414
- result.mergedFieldNames.push(...mergedFieldNames);
415
- });
416
- return result;
417
- }
418
- function convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy) {
419
- const fieldName = fieldHierarchy.field.name;
420
- const rawValue = item.values[fieldName];
421
- assert(Value.isNestedContent(rawValue));
422
- if (rawValue.length === 0)
423
- return { emptyNestedItem: true, convertedItem: item };
424
- const converted = convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, rawValue);
425
- const convertedItem = new Item(item.primaryKeys, item.label, item.imageId, item.classInfo, { [fieldName]: converted.raw }, { [fieldName]: converted.display }, converted.mergedFieldNames, item.extendedData); // eslint-disable-line deprecation/deprecation
426
- return { emptyNestedItem: false, convertedItem };
427
- }
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 { assert, using } from "@itwin/core-bentley";
9
+ import { Content } from "./Content";
10
+ import { Field } from "./Fields";
11
+ import { Item } from "./Item";
12
+ import { PropertyValueFormat } from "./TypeDescription";
13
+ import { DisplayValue, Value } from "./Value";
14
+ /**
15
+ * An utility for traversing field hierarchy. Stops traversal as soon as `cb` returns `false`.
16
+ * @public
17
+ */
18
+ export function traverseFieldHierarchy(hierarchy, cb) {
19
+ if (cb(hierarchy))
20
+ hierarchy.childFields.forEach((childHierarchy) => traverseFieldHierarchy(childHierarchy, cb));
21
+ }
22
+ /**
23
+ * An utility to traverse content using provided visitor. Provides means to parse content into different formats,
24
+ * for different components.
25
+ * @public
26
+ */
27
+ export function traverseContent(visitor, content) {
28
+ if (!visitor.startContent({ descriptor: content.descriptor }))
29
+ return;
30
+ try {
31
+ const fieldHierarchies = createFieldHierarchies(content.descriptor.fields);
32
+ visitor.processFieldHierarchies({ hierarchies: fieldHierarchies });
33
+ content.contentSet.forEach((item) => {
34
+ traverseContentItemFields(visitor, fieldHierarchies, item);
35
+ });
36
+ }
37
+ finally {
38
+ visitor.finishContent();
39
+ }
40
+ }
41
+ /**
42
+ * An utility for calling [[traverseContent]] when there's only one content item.
43
+ * @public
44
+ */
45
+ export function traverseContentItem(visitor, descriptor, item) {
46
+ traverseContent(visitor, new Content(descriptor, [item]));
47
+ }
48
+ class VisitedCategories {
49
+ constructor(_visitor, category) {
50
+ this._visitor = _visitor;
51
+ const stack = [];
52
+ let curr = category;
53
+ while (curr) {
54
+ stack.push(curr);
55
+ curr = curr.parent;
56
+ }
57
+ stack.reverse();
58
+ this._didVisitAllHierarchy = true;
59
+ this._visitedCategories = [];
60
+ for (curr of stack) {
61
+ if (this._visitor.startCategory({ category: curr })) {
62
+ this._visitedCategories.push(curr);
63
+ }
64
+ else {
65
+ this._didVisitAllHierarchy = false;
66
+ break;
67
+ }
68
+ }
69
+ }
70
+ dispose() {
71
+ while (this._visitedCategories.pop())
72
+ this._visitor.finishCategory();
73
+ }
74
+ get shouldContinue() { return this._didVisitAllHierarchy; }
75
+ }
76
+ function traverseContentItemFields(visitor, fieldHierarchies, item) {
77
+ if (!visitor.startItem({ item }))
78
+ return;
79
+ try {
80
+ fieldHierarchies.forEach((fieldHierarchy) => {
81
+ using(new VisitedCategories(visitor, fieldHierarchy.field.category), (res) => {
82
+ if (res.shouldContinue)
83
+ traverseContentItemField(visitor, fieldHierarchy, item);
84
+ });
85
+ });
86
+ }
87
+ finally {
88
+ visitor.finishItem();
89
+ }
90
+ }
91
+ function traverseContentItemField(visitor, fieldHierarchy, item) {
92
+ if (!visitor.startField({ hierarchy: fieldHierarchy }))
93
+ return;
94
+ try {
95
+ const rootToThisField = createFieldPath(fieldHierarchy.field);
96
+ let parentFieldName;
97
+ const pathUpToField = rootToThisField.slice(undefined, -1);
98
+ for (let i = 0; i < pathUpToField.length; ++i) {
99
+ const parentField = pathUpToField[i];
100
+ const nextField = rootToThisField[i + 1];
101
+ if (item.isFieldMerged(parentField.name)) {
102
+ visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: parentField, parentFieldName });
103
+ return;
104
+ }
105
+ const { emptyNestedItem, convertedItem } = convertNestedContentItemToStructArrayItem(item, parentField, nextField);
106
+ if (emptyNestedItem)
107
+ return;
108
+ item = convertedItem;
109
+ parentFieldName = combineFieldNames(parentField.name, parentFieldName);
110
+ }
111
+ if (item.isFieldMerged(fieldHierarchy.field.name)) {
112
+ visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: fieldHierarchy.field, parentFieldName });
113
+ return;
114
+ }
115
+ if (fieldHierarchy.field.isNestedContentField()) {
116
+ fieldHierarchy = convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName);
117
+ const { emptyNestedItem, convertedItem } = convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy);
118
+ if (emptyNestedItem)
119
+ return;
120
+ item = convertedItem;
121
+ }
122
+ else if (pathUpToField.length > 0) {
123
+ fieldHierarchy = {
124
+ ...fieldHierarchy,
125
+ field: Object.assign(fieldHierarchy.field.clone(), {
126
+ type: {
127
+ valueFormat: PropertyValueFormat.Array,
128
+ typeName: `${fieldHierarchy.field.type.typeName}[]`,
129
+ memberType: fieldHierarchy.field.type,
130
+ },
131
+ }),
132
+ };
133
+ }
134
+ traverseContentItemFieldValue(visitor, fieldHierarchy, item.mergedFieldNames, fieldHierarchy.field.type, parentFieldName, item.values[fieldHierarchy.field.name], item.displayValues[fieldHierarchy.field.name]);
135
+ }
136
+ finally {
137
+ visitor.finishField();
138
+ }
139
+ }
140
+ function traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue) {
141
+ if (rawValue !== undefined) {
142
+ if (valueType.valueFormat === PropertyValueFormat.Array) {
143
+ assert(Value.isArray(rawValue));
144
+ assert(DisplayValue.isArray(displayValue));
145
+ return traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
146
+ }
147
+ if (valueType.valueFormat === PropertyValueFormat.Struct) {
148
+ assert(Value.isMap(rawValue));
149
+ assert(DisplayValue.isMap(displayValue));
150
+ return traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
151
+ }
152
+ }
153
+ traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);
154
+ }
155
+ function traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValues, displayValues) {
156
+ assert(rawValues.length === displayValues.length);
157
+ assert(valueType.valueFormat === PropertyValueFormat.Array);
158
+ if (!visitor.startArray({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues }))
159
+ return;
160
+ try {
161
+ const itemType = valueType.memberType;
162
+ rawValues.forEach((_, i) => {
163
+ traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, itemType, parentFieldName, rawValues[i], displayValues[i]);
164
+ });
165
+ }
166
+ finally {
167
+ visitor.finishArray();
168
+ }
169
+ }
170
+ function traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValues, displayValues) {
171
+ assert(valueType.valueFormat === PropertyValueFormat.Struct);
172
+ if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues }))
173
+ return;
174
+ try {
175
+ if (fieldHierarchy.field.isNestedContentField())
176
+ parentFieldName = combineFieldNames(fieldHierarchy.field.name, parentFieldName);
177
+ valueType.members.forEach((memberDescription) => {
178
+ let memberField = fieldHierarchy.childFields.find((f) => f.field.name === memberDescription.name);
179
+ if (!memberField) {
180
+ // Not finding a member field means we're traversing an ECStruct. We still need to carry member information, so we
181
+ // create a fake field to represent the member
182
+ memberField = {
183
+ field: new Field(fieldHierarchy.field.category, memberDescription.name, memberDescription.label, memberDescription.type, fieldHierarchy.field.isReadonly, 0),
184
+ childFields: [],
185
+ };
186
+ }
187
+ traverseContentItemFieldValue(visitor, memberField, mergedFieldNames, memberDescription.type, parentFieldName, rawValues[memberDescription.name], displayValues[memberDescription.name]);
188
+ });
189
+ }
190
+ finally {
191
+ visitor.finishStruct();
192
+ }
193
+ }
194
+ function traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue) {
195
+ if (-1 !== mergedFieldNames.indexOf(fieldHierarchy.field.name)) {
196
+ visitor.processMergedValue({ mergedField: fieldHierarchy.field, requestedField: fieldHierarchy.field, parentFieldName });
197
+ return;
198
+ }
199
+ visitor.processPrimitiveValue({ field: fieldHierarchy.field, valueType, parentFieldName, rawValue, displayValue });
200
+ }
201
+ /**
202
+ * Parses a list of [[Field]] objects into a list of [[FieldHierarchy]].
203
+ *
204
+ * @param ignoreCategories Enables adding all of the `nestedFields` to parent field's `childFields`
205
+ * without considering categories.
206
+ *
207
+ * @public
208
+ */
209
+ export function createFieldHierarchies(fields, ignoreCategories) {
210
+ const hierarchies = new Array();
211
+ const visitField = (category, field, parentField) => {
212
+ let childFields = [];
213
+ if (field.isNestedContentField()) {
214
+ // visit all nested fields
215
+ childFields = visitFields(field.nestedFields, field);
216
+ if (0 === childFields.length)
217
+ return undefined;
218
+ }
219
+ const fieldHierarchy = { field, childFields };
220
+ if (category === parentField?.category || ignoreCategories && parentField) {
221
+ // if categories of this field and its parent field match - return the field hierarchy without
222
+ // including it as a top level field
223
+ return fieldHierarchy;
224
+ }
225
+ addFieldHierarchy(hierarchies, fieldHierarchy);
226
+ return undefined;
227
+ };
228
+ const visitFields = (visitedFields, parentField) => {
229
+ const includedFields = [];
230
+ visitedFields.forEach((field) => {
231
+ const visitedField = visitField(field.category, field, parentField);
232
+ if (visitedField)
233
+ includedFields.push(visitedField);
234
+ });
235
+ return includedFields;
236
+ };
237
+ visitFields(fields, undefined);
238
+ return hierarchies;
239
+ }
240
+ function findRelatedFields(rootFields, hierarchy) {
241
+ // build a list of parent fields in hierarchy
242
+ const fields = [];
243
+ let currField = hierarchy.field;
244
+ while (currField) {
245
+ fields.push(currField);
246
+ currField = currField.parent;
247
+ }
248
+ for (let rootIndex = 0; rootIndex < rootFields.length; ++rootIndex) {
249
+ const rootFieldHierarchy = rootFields[rootIndex];
250
+ if (rootFieldHierarchy.field.category !== hierarchy.field.category) {
251
+ // only interested in fields with the same category
252
+ continue;
253
+ }
254
+ let first = true;
255
+ currField = rootFieldHierarchy.field;
256
+ while (currField) {
257
+ const index = fields.findIndex((f) => f.name === currField.name);
258
+ if (-1 !== index) {
259
+ return {
260
+ existing: {
261
+ field: currField,
262
+ hierarchy: first ? rootFieldHierarchy : undefined,
263
+ index: rootIndex,
264
+ },
265
+ matchingField: fields[index],
266
+ };
267
+ }
268
+ currField = currField.parent;
269
+ first = false;
270
+ }
271
+ }
272
+ return undefined;
273
+ }
274
+ function buildParentHierarchy(hierarchy, parentField) {
275
+ // note: parentField is found by walking up the parentship relationship
276
+ // from hierarchy.field, so we expect to always find it here
277
+ while (hierarchy.field !== parentField) {
278
+ const hierarchyParent = hierarchy.field.parent;
279
+ assert(hierarchyParent !== undefined);
280
+ hierarchy = { field: hierarchyParent, childFields: [hierarchy] };
281
+ }
282
+ return hierarchy;
283
+ }
284
+ function mergeHierarchies(lhs, rhs) {
285
+ assert(lhs.field.name === rhs.field.name);
286
+ const result = {
287
+ field: lhs.field.clone(),
288
+ childFields: [...lhs.childFields],
289
+ };
290
+ rhs.childFields.forEach((rhsChildHierarchy) => {
291
+ const indexInResult = result.childFields.findIndex((resultHierarchy) => resultHierarchy.field.name === rhsChildHierarchy.field.name);
292
+ if (indexInResult !== -1)
293
+ result.childFields[indexInResult] = mergeHierarchies(result.childFields[indexInResult], rhsChildHierarchy);
294
+ else
295
+ result.childFields.push(rhsChildHierarchy);
296
+ });
297
+ return result;
298
+ }
299
+ /**
300
+ * Adds a field hierarchy into root field hierarchies list. *
301
+ * @public
302
+ */
303
+ export function addFieldHierarchy(rootHierarchies, hierarchy) {
304
+ const match = findRelatedFields(rootHierarchies, hierarchy);
305
+ if (!match) {
306
+ rootHierarchies.push(hierarchy);
307
+ return;
308
+ }
309
+ const targetHierarchy = rootHierarchies[match.existing.index];
310
+ const existingHierarchy = match.existing.hierarchy ?? buildParentHierarchy(targetHierarchy, match.existing.field);
311
+ const insertHierarchy = buildParentHierarchy(hierarchy, match.matchingField);
312
+ const mergedHierarchy = mergeHierarchies(existingHierarchy, insertHierarchy);
313
+ mergedHierarchy.field.category = hierarchy.field.category;
314
+ rootHierarchies[match.existing.index] = mergedHierarchy;
315
+ }
316
+ function createFieldPath(field) {
317
+ const path = [field];
318
+ let currField = field;
319
+ while (currField.parent) {
320
+ currField = currField.parent;
321
+ path.push(currField);
322
+ }
323
+ path.reverse();
324
+ return path;
325
+ }
326
+ /** @internal */
327
+ export const FIELD_NAMES_SEPARATOR = "$";
328
+ /**
329
+ * Combines given field names in a way that allows them to be parsed back into a list of individual names using the [[parseCombinedFieldNames]] function.
330
+ * @public
331
+ */
332
+ export function combineFieldNames(fieldName, parentFieldName) {
333
+ return parentFieldName ? `${parentFieldName}${FIELD_NAMES_SEPARATOR}${fieldName}` : fieldName;
334
+ }
335
+ /**
336
+ * Parses given combined field names string, constructed using [[combineFieldNames]], into a list of individual field names.
337
+ * @public
338
+ */
339
+ export function parseCombinedFieldNames(combinedName) {
340
+ return combinedName ? combinedName.split(FIELD_NAMES_SEPARATOR) : [];
341
+ }
342
+ function convertNestedContentItemToStructArrayItem(item, field, nextField) {
343
+ const value = item.values[field.name] ?? [];
344
+ assert(Value.isNestedContent(value));
345
+ if (value.length === 0)
346
+ return { emptyNestedItem: true, convertedItem: item };
347
+ const nextFieldValues = { raw: [], display: [] };
348
+ value.forEach((ncv) => {
349
+ const nextRawValue = ncv.values[nextField.name];
350
+ const nextDisplayValue = ncv.displayValues[nextField.name];
351
+ if (nextField.isNestedContentField()) {
352
+ if (nextRawValue) {
353
+ assert(Value.isNestedContent(nextRawValue));
354
+ nextFieldValues.raw.push(...nextRawValue);
355
+ }
356
+ }
357
+ else {
358
+ nextFieldValues.raw.push(nextRawValue);
359
+ nextFieldValues.display.push(nextDisplayValue);
360
+ }
361
+ });
362
+ const convertedItem = new Item(item.primaryKeys, item.label, item.imageId, item.classInfo, { [nextField.name]: nextFieldValues.raw }, { [nextField.name]: nextFieldValues.display }, item.mergedFieldNames, item.extendedData); // eslint-disable-line deprecation/deprecation
363
+ return { emptyNestedItem: false, convertedItem };
364
+ }
365
+ function convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName) {
366
+ const fieldName = fieldHierarchy.field.name;
367
+ const convertedChildFieldHierarchies = fieldHierarchy.childFields.map((child) => {
368
+ if (child.field.isNestedContentField())
369
+ return convertNestedContentFieldHierarchyToStructArrayHierarchy(child, combineFieldNames(fieldName, parentFieldName));
370
+ return child;
371
+ });
372
+ const convertedFieldHierarchy = {
373
+ field: Object.assign(fieldHierarchy.field.clone(), {
374
+ type: {
375
+ valueFormat: PropertyValueFormat.Array,
376
+ typeName: `${fieldHierarchy.field.type.typeName}[]`,
377
+ memberType: {
378
+ valueFormat: PropertyValueFormat.Struct,
379
+ typeName: fieldHierarchy.field.type.typeName,
380
+ members: convertedChildFieldHierarchies.map((member) => ({
381
+ name: member.field.name,
382
+ label: member.field.label,
383
+ type: member.field.type,
384
+ })),
385
+ },
386
+ },
387
+ }),
388
+ childFields: convertedChildFieldHierarchies,
389
+ };
390
+ return convertedFieldHierarchy;
391
+ }
392
+ function convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, ncvs) {
393
+ const result = { raw: [], display: [], mergedFieldNames: [] };
394
+ ncvs.forEach((ncv) => {
395
+ const values = { ...ncv.values };
396
+ const displayValues = { ...ncv.displayValues };
397
+ const mergedFieldNames = [...ncv.mergedFieldNames];
398
+ fieldHierarchy.childFields.forEach((childFieldHierarchy) => {
399
+ const childFieldName = childFieldHierarchy.field.name;
400
+ if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {
401
+ return;
402
+ }
403
+ if (childFieldHierarchy.field.isNestedContentField()) {
404
+ const value = values[childFieldName];
405
+ assert(Value.isNestedContent(value));
406
+ const convertedValues = convertNestedContentValuesToStructArrayValuesRecursive(childFieldHierarchy, value);
407
+ values[childFieldName] = convertedValues.raw;
408
+ displayValues[childFieldName] = convertedValues.display;
409
+ mergedFieldNames.push(...convertedValues.mergedFieldNames);
410
+ }
411
+ });
412
+ result.raw.push(values);
413
+ result.display.push(displayValues);
414
+ result.mergedFieldNames.push(...mergedFieldNames);
415
+ });
416
+ return result;
417
+ }
418
+ function convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy) {
419
+ const fieldName = fieldHierarchy.field.name;
420
+ const rawValue = item.values[fieldName];
421
+ assert(Value.isNestedContent(rawValue));
422
+ if (rawValue.length === 0)
423
+ return { emptyNestedItem: true, convertedItem: item };
424
+ const converted = convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, rawValue);
425
+ const convertedItem = new Item(item.primaryKeys, item.label, item.imageId, item.classInfo, { [fieldName]: converted.raw }, { [fieldName]: converted.display }, converted.mergedFieldNames, item.extendedData); // eslint-disable-line deprecation/deprecation
426
+ return { emptyNestedItem: false, convertedItem };
427
+ }
428
428
  //# sourceMappingURL=ContentTraverser.js.map