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

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