@itwin/presentation-common 5.0.0-dev.8 → 5.0.0-dev.82

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 (287) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/Ruleset.schema.json +3 -258
  3. package/lib/cjs/presentation-common/AsyncTasks.d.ts +4 -4
  4. package/lib/cjs/presentation-common/AsyncTasks.d.ts.map +1 -1
  5. package/lib/cjs/presentation-common/AsyncTasks.js +5 -6
  6. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  7. package/lib/cjs/presentation-common/EC.d.ts +36 -80
  8. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  9. package/lib/cjs/presentation-common/EC.js +1 -97
  10. package/lib/cjs/presentation-common/EC.js.map +1 -1
  11. package/lib/cjs/presentation-common/ElementProperties.js +16 -9
  12. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  13. package/lib/cjs/presentation-common/Error.d.ts +2 -0
  14. package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
  15. package/lib/cjs/presentation-common/Error.js +2 -0
  16. package/lib/cjs/presentation-common/Error.js.map +1 -1
  17. package/lib/cjs/presentation-common/KeySet.d.ts +2 -2
  18. package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
  19. package/lib/cjs/presentation-common/KeySet.js +9 -11
  20. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  21. package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js +4 -1
  22. package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
  23. package/lib/cjs/presentation-common/LabelDefinition.d.ts +0 -48
  24. package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
  25. package/lib/cjs/presentation-common/LabelDefinition.js +1 -44
  26. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  27. package/lib/cjs/presentation-common/LocalizationHelper.js +1 -0
  28. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  29. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +31 -10
  30. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  31. package/lib/cjs/presentation-common/PresentationManagerOptions.js +0 -5
  32. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  33. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +9 -9
  34. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  35. package/lib/cjs/presentation-common/PresentationRpcInterface.js +36 -21
  36. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  37. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +3 -2
  38. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts.map +1 -1
  39. package/lib/cjs/presentation-common/RegisteredRuleset.js +9 -1
  40. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  41. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +9 -12
  42. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  43. package/lib/cjs/presentation-common/RpcRequestsHandler.js +37 -30
  44. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  45. package/lib/cjs/presentation-common/RulesetVariables.d.ts +1 -46
  46. package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
  47. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  48. package/lib/cjs/presentation-common/Update.d.ts +2 -79
  49. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  50. package/lib/cjs/presentation-common/Update.js +1 -104
  51. package/lib/cjs/presentation-common/Update.js.map +1 -1
  52. package/lib/cjs/presentation-common/Utils.d.ts +21 -0
  53. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  54. package/lib/cjs/presentation-common/Utils.js +57 -0
  55. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  56. package/lib/cjs/presentation-common/content/Content.d.ts +0 -7
  57. package/lib/cjs/presentation-common/content/Content.d.ts.map +1 -1
  58. package/lib/cjs/presentation-common/content/Content.js +5 -10
  59. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  60. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +1 -1
  61. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts.map +1 -1
  62. package/lib/cjs/presentation-common/content/ContentTraverser.js +116 -28
  63. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  64. package/lib/cjs/presentation-common/content/Descriptor.d.ts +2 -31
  65. package/lib/cjs/presentation-common/content/Descriptor.d.ts.map +1 -1
  66. package/lib/cjs/presentation-common/content/Descriptor.js +68 -22
  67. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  68. package/lib/cjs/presentation-common/content/Fields.d.ts +151 -27
  69. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  70. package/lib/cjs/presentation-common/content/Fields.js +264 -140
  71. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  72. package/lib/cjs/presentation-common/content/Item.d.ts +26 -31
  73. package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
  74. package/lib/cjs/presentation-common/content/Item.js +52 -67
  75. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  76. package/lib/cjs/presentation-common/content/Property.d.ts +2 -12
  77. package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
  78. package/lib/cjs/presentation-common/content/Property.js +0 -18
  79. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/PropertyValueFormatter.js +3 -0
  81. package/lib/cjs/presentation-common/content/PropertyValueFormatter.js.map +1 -1
  82. package/lib/cjs/presentation-common/content/Value.d.ts +5 -107
  83. package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
  84. package/lib/cjs/presentation-common/content/Value.js +1 -215
  85. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  86. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +1 -22
  87. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts.map +1 -1
  88. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +0 -23
  89. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  90. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +0 -83
  91. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  92. package/lib/cjs/presentation-common/hierarchy/Key.js +6 -24
  93. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  94. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +4 -107
  95. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  96. package/lib/cjs/presentation-common/hierarchy/Node.js +0 -99
  97. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  98. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +1 -67
  99. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts.map +1 -1
  100. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +0 -117
  101. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  102. package/lib/cjs/presentation-common/rules/Rule.d.ts +0 -14
  103. package/lib/cjs/presentation-common/rules/Rule.d.ts.map +1 -1
  104. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  105. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +0 -7
  106. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts.map +1 -1
  107. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  108. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +1 -5
  109. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts.map +1 -1
  110. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  111. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +2 -28
  112. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts.map +1 -1
  113. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +1 -15
  114. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  115. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +2 -0
  116. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts.map +1 -1
  117. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  118. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +0 -9
  119. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts.map +1 -1
  120. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  121. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +3 -0
  122. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  123. package/lib/cjs/presentation-common/selection/SelectionScope.js +1 -0
  124. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  125. package/lib/cjs/presentation-common.d.ts +1 -5
  126. package/lib/cjs/presentation-common.d.ts.map +1 -1
  127. package/lib/cjs/presentation-common.js +6 -5
  128. package/lib/cjs/presentation-common.js.map +1 -1
  129. package/lib/esm/presentation-common/AsyncTasks.d.ts +4 -4
  130. package/lib/esm/presentation-common/AsyncTasks.d.ts.map +1 -1
  131. package/lib/esm/presentation-common/AsyncTasks.js +5 -6
  132. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  133. package/lib/esm/presentation-common/EC.d.ts +36 -80
  134. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  135. package/lib/esm/presentation-common/EC.js +0 -96
  136. package/lib/esm/presentation-common/EC.js.map +1 -1
  137. package/lib/esm/presentation-common/ElementProperties.js +16 -9
  138. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  139. package/lib/esm/presentation-common/Error.d.ts +2 -0
  140. package/lib/esm/presentation-common/Error.d.ts.map +1 -1
  141. package/lib/esm/presentation-common/Error.js +2 -0
  142. package/lib/esm/presentation-common/Error.js.map +1 -1
  143. package/lib/esm/presentation-common/KeySet.d.ts +2 -2
  144. package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
  145. package/lib/esm/presentation-common/KeySet.js +9 -11
  146. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  147. package/lib/esm/presentation-common/KoqPropertyValueFormatter.js +5 -2
  148. package/lib/esm/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
  149. package/lib/esm/presentation-common/LabelDefinition.d.ts +0 -48
  150. package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
  151. package/lib/esm/presentation-common/LabelDefinition.js +0 -43
  152. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  153. package/lib/esm/presentation-common/LocalizationHelper.js +1 -0
  154. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  155. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +31 -10
  156. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  157. package/lib/esm/presentation-common/PresentationManagerOptions.js +0 -4
  158. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  159. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +9 -9
  160. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  161. package/lib/esm/presentation-common/PresentationRpcInterface.js +38 -22
  162. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  163. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +3 -2
  164. package/lib/esm/presentation-common/RegisteredRuleset.d.ts.map +1 -1
  165. package/lib/esm/presentation-common/RegisteredRuleset.js +9 -1
  166. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  167. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +9 -12
  168. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  169. package/lib/esm/presentation-common/RpcRequestsHandler.js +39 -32
  170. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  171. package/lib/esm/presentation-common/RulesetVariables.d.ts +1 -46
  172. package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
  173. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  174. package/lib/esm/presentation-common/Update.d.ts +2 -79
  175. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  176. package/lib/esm/presentation-common/Update.js +0 -103
  177. package/lib/esm/presentation-common/Update.js.map +1 -1
  178. package/lib/esm/presentation-common/Utils.d.ts +21 -0
  179. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  180. package/lib/esm/presentation-common/Utils.js +54 -0
  181. package/lib/esm/presentation-common/Utils.js.map +1 -1
  182. package/lib/esm/presentation-common/content/Content.d.ts +0 -7
  183. package/lib/esm/presentation-common/content/Content.d.ts.map +1 -1
  184. package/lib/esm/presentation-common/content/Content.js +5 -10
  185. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  186. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +1 -1
  187. package/lib/esm/presentation-common/content/ContentTraverser.d.ts.map +1 -1
  188. package/lib/esm/presentation-common/content/ContentTraverser.js +117 -29
  189. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  190. package/lib/esm/presentation-common/content/Descriptor.d.ts +2 -31
  191. package/lib/esm/presentation-common/content/Descriptor.d.ts.map +1 -1
  192. package/lib/esm/presentation-common/content/Descriptor.js +68 -22
  193. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  194. package/lib/esm/presentation-common/content/Fields.d.ts +151 -27
  195. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  196. package/lib/esm/presentation-common/content/Fields.js +264 -140
  197. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  198. package/lib/esm/presentation-common/content/Item.d.ts +26 -31
  199. package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
  200. package/lib/esm/presentation-common/content/Item.js +52 -67
  201. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  202. package/lib/esm/presentation-common/content/Property.d.ts +2 -12
  203. package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
  204. package/lib/esm/presentation-common/content/Property.js +0 -18
  205. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  206. package/lib/esm/presentation-common/content/PropertyValueFormatter.js +3 -0
  207. package/lib/esm/presentation-common/content/PropertyValueFormatter.js.map +1 -1
  208. package/lib/esm/presentation-common/content/Value.d.ts +5 -107
  209. package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
  210. package/lib/esm/presentation-common/content/Value.js +0 -214
  211. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  212. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +1 -22
  213. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts.map +1 -1
  214. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +1 -22
  215. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  216. package/lib/esm/presentation-common/hierarchy/Key.d.ts +0 -83
  217. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  218. package/lib/esm/presentation-common/hierarchy/Key.js +6 -24
  219. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  220. package/lib/esm/presentation-common/hierarchy/Node.d.ts +4 -107
  221. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  222. package/lib/esm/presentation-common/hierarchy/Node.js +1 -98
  223. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  224. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +1 -67
  225. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts.map +1 -1
  226. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +1 -116
  227. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  228. package/lib/esm/presentation-common/rules/Rule.d.ts +0 -14
  229. package/lib/esm/presentation-common/rules/Rule.d.ts.map +1 -1
  230. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  231. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +0 -7
  232. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts.map +1 -1
  233. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  234. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +1 -5
  235. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts.map +1 -1
  236. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  237. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +2 -28
  238. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts.map +1 -1
  239. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +0 -14
  240. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  241. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +2 -0
  242. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts.map +1 -1
  243. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  244. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +0 -9
  245. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts.map +1 -1
  246. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  247. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +3 -0
  248. package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  249. package/lib/esm/presentation-common/selection/SelectionScope.js +1 -0
  250. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  251. package/lib/esm/presentation-common.d.ts +1 -5
  252. package/lib/esm/presentation-common.d.ts.map +1 -1
  253. package/lib/esm/presentation-common.js +1 -5
  254. package/lib/esm/presentation-common.js.map +1 -1
  255. package/package.json +17 -18
  256. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +0 -45
  257. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts.map +0 -1
  258. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +0 -10
  259. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +0 -1
  260. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +0 -30
  261. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts.map +0 -1
  262. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +0 -10
  263. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +0 -1
  264. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +0 -41
  265. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts.map +0 -1
  266. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +0 -10
  267. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +0 -1
  268. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +0 -49
  269. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts.map +0 -1
  270. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +0 -10
  271. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +0 -1
  272. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +0 -45
  273. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts.map +0 -1
  274. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +0 -9
  275. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +0 -1
  276. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +0 -30
  277. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts.map +0 -1
  278. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +0 -9
  279. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +0 -1
  280. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +0 -41
  281. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts.map +0 -1
  282. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +0 -9
  283. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +0 -1
  284. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +0 -49
  285. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts.map +0 -1
  286. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +0 -9
  287. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +0 -1
@@ -6,6 +6,58 @@
6
6
  /** @packageDocumentation
7
7
  * @module Content
8
8
  */
9
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
10
+ if (value !== null && value !== void 0) {
11
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
12
+ var dispose, inner;
13
+ if (async) {
14
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
15
+ dispose = value[Symbol.asyncDispose];
16
+ }
17
+ if (dispose === void 0) {
18
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
19
+ dispose = value[Symbol.dispose];
20
+ if (async) inner = dispose;
21
+ }
22
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
23
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
24
+ env.stack.push({ value: value, dispose: dispose, async: async });
25
+ }
26
+ else if (async) {
27
+ env.stack.push({ async: true });
28
+ }
29
+ return value;
30
+ };
31
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
32
+ return function (env) {
33
+ function fail(e) {
34
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
35
+ env.hasError = true;
36
+ }
37
+ var r, s = 0;
38
+ function next() {
39
+ while (r = env.stack.pop()) {
40
+ try {
41
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
42
+ if (r.dispose) {
43
+ var result = r.dispose.call(r.value);
44
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
45
+ }
46
+ else s |= 1;
47
+ }
48
+ catch (e) {
49
+ fail(e);
50
+ }
51
+ }
52
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
53
+ if (env.hasError) throw env.error;
54
+ }
55
+ return next();
56
+ };
57
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
58
+ var e = new Error(message);
59
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
60
+ });
9
61
  Object.defineProperty(exports, "__esModule", { value: true });
10
62
  exports.FIELD_NAMES_SEPARATOR = void 0;
11
63
  exports.traverseFieldHierarchy = traverseFieldHierarchy;
@@ -59,6 +111,9 @@ function traverseContentItem(visitor, descriptor, item) {
59
111
  traverseContent(visitor, new Content_1.Content(descriptor, [item]));
60
112
  }
61
113
  class VisitedCategories {
114
+ _visitor;
115
+ _visitedCategories;
116
+ _didVisitAllHierarchy;
62
117
  constructor(_visitor, category) {
63
118
  this._visitor = _visitor;
64
119
  const stack = [];
@@ -80,7 +135,7 @@ class VisitedCategories {
80
135
  }
81
136
  }
82
137
  }
83
- dispose() {
138
+ [Symbol.dispose]() {
84
139
  while (this._visitedCategories.pop()) {
85
140
  this._visitor.finishCategory();
86
141
  }
@@ -95,11 +150,20 @@ function traverseContentItemFields(visitor, fieldHierarchies, item) {
95
150
  }
96
151
  try {
97
152
  fieldHierarchies.forEach((fieldHierarchy) => {
98
- (0, core_bentley_1.using)(new VisitedCategories(visitor, fieldHierarchy.field.category), (res) => {
153
+ const env_1 = { stack: [], error: void 0, hasError: false };
154
+ try {
155
+ const res = __addDisposableResource(env_1, new VisitedCategories(visitor, fieldHierarchy.field.category), false);
99
156
  if (res.shouldContinue) {
100
157
  traverseContentItemField(visitor, fieldHierarchy, item);
101
158
  }
102
- });
159
+ }
160
+ catch (e_1) {
161
+ env_1.error = e_1;
162
+ env_1.hasError = true;
163
+ }
164
+ finally {
165
+ __disposeResources(env_1);
166
+ }
103
167
  });
104
168
  }
105
169
  finally {
@@ -143,13 +207,15 @@ function traverseContentItemField(visitor, fieldHierarchy, item) {
143
207
  else if (pathUpToField.length > 0) {
144
208
  fieldHierarchy = {
145
209
  ...fieldHierarchy,
146
- field: Object.assign(fieldHierarchy.field.clone(), {
147
- type: {
210
+ field: (function () {
211
+ const clone = fieldHierarchy.field.clone();
212
+ clone.type = {
148
213
  valueFormat: TypeDescription_1.PropertyValueFormat.Array,
149
214
  typeName: `${fieldHierarchy.field.type.typeName}[]`,
150
215
  memberType: fieldHierarchy.field.type,
151
- },
152
- }),
216
+ };
217
+ return clone;
218
+ })(),
153
219
  };
154
220
  }
155
221
  traverseContentItemFieldValue(visitor, fieldHierarchy, item.mergedFieldNames, fieldHierarchy.field.type, parentFieldName, item.values[fieldHierarchy.field.name], item.displayValues[fieldHierarchy.field.name]);
@@ -205,7 +271,14 @@ function traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFiel
205
271
  // Not finding a member field means we're traversing an ECStruct. We still need to carry member information, so we
206
272
  // create a fake field to represent the member
207
273
  memberField = {
208
- field: new Fields_1.Field(fieldHierarchy.field.category, memberDescription.name, memberDescription.label, memberDescription.type, fieldHierarchy.field.isReadonly, 0),
274
+ field: new Fields_1.Field({
275
+ category: fieldHierarchy.field.category,
276
+ name: memberDescription.name,
277
+ label: memberDescription.label,
278
+ type: memberDescription.type,
279
+ isReadonly: fieldHierarchy.field.isReadonly,
280
+ priority: 0,
281
+ }),
209
282
  childFields: [],
210
283
  };
211
284
  }
@@ -374,23 +447,31 @@ function convertNestedContentItemToStructArrayItem(item, field, nextField) {
374
447
  if (value.length === 0) {
375
448
  return { emptyNestedItem: true, convertedItem: item };
376
449
  }
377
- const nextFieldValues = { raw: [], display: [] };
378
- value.forEach((ncv) => {
379
- const nextRawValue = ncv.values[nextField.name];
380
- const nextDisplayValue = ncv.displayValues[nextField.name];
381
- if (nextField.isNestedContentField()) {
450
+ let nextFieldValues = { raw: [], display: [] };
451
+ if (nextField.isNestedContentField()) {
452
+ const nextNestedContent = [];
453
+ value.forEach((ncv) => {
454
+ const nextRawValue = ncv.values[nextField.name];
382
455
  if (nextRawValue) {
383
456
  (0, core_bentley_1.assert)(Value_1.Value.isNestedContent(nextRawValue));
384
- nextFieldValues.raw.push(...nextRawValue);
457
+ nextNestedContent.push(...nextRawValue);
385
458
  }
386
- }
387
- else {
388
- nextFieldValues.raw.push(nextRawValue);
389
- nextFieldValues.display.push(nextDisplayValue);
390
- }
459
+ });
460
+ nextFieldValues.raw = nextNestedContent;
461
+ }
462
+ else {
463
+ const nextValues = { raw: [], display: [] };
464
+ value.forEach((ncv) => {
465
+ nextValues.raw.push(ncv.values[nextField.name]);
466
+ nextValues.display.push(ncv.displayValues[nextField.name]);
467
+ });
468
+ nextFieldValues = nextValues;
469
+ }
470
+ const convertedItem = new Item_1.Item({
471
+ ...item,
472
+ values: { [nextField.name]: nextFieldValues.raw },
473
+ displayValues: { [nextField.name]: nextFieldValues.display },
391
474
  });
392
- const convertedItem = new Item_1.Item(item.primaryKeys, item.label, item.imageId, // eslint-disable-line @typescript-eslint/no-deprecated
393
- item.classInfo, { [nextField.name]: nextFieldValues.raw }, { [nextField.name]: nextFieldValues.display }, item.mergedFieldNames, item.extendedData);
394
475
  return { emptyNestedItem: false, convertedItem };
395
476
  }
396
477
  function convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName) {
@@ -402,8 +483,9 @@ function convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy
402
483
  return child;
403
484
  });
404
485
  const convertedFieldHierarchy = {
405
- field: Object.assign(fieldHierarchy.field.clone(), {
406
- type: {
486
+ field: (function () {
487
+ const clone = fieldHierarchy.field.clone();
488
+ clone.type = {
407
489
  valueFormat: TypeDescription_1.PropertyValueFormat.Array,
408
490
  typeName: `${fieldHierarchy.field.type.typeName}[]`,
409
491
  memberType: {
@@ -415,8 +497,9 @@ function convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy
415
497
  type: member.field.type,
416
498
  })),
417
499
  },
418
- },
419
- }),
500
+ };
501
+ return clone;
502
+ })(),
420
503
  childFields: convertedChildFieldHierarchies,
421
504
  };
422
505
  return convertedFieldHierarchy;
@@ -427,7 +510,8 @@ function convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy,
427
510
  const values = { ...ncv.values };
428
511
  const displayValues = { ...ncv.displayValues };
429
512
  const mergedFieldNames = [...ncv.mergedFieldNames];
430
- values[NESTED_CONTENT_LABEL_SYMBOL] = ncv.labelDefinition;
513
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
514
+ values[NESTED_CONTENT_LABEL_SYMBOL] = ncv.label ?? ncv.labelDefinition;
431
515
  fieldHierarchy.childFields.forEach((childFieldHierarchy) => {
432
516
  const childFieldName = childFieldHierarchy.field.name;
433
517
  if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {
@@ -456,8 +540,12 @@ function convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHier
456
540
  return { emptyNestedItem: true, convertedItem: item };
457
541
  }
458
542
  const converted = convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, rawValue);
459
- const convertedItem = new Item_1.Item(item.primaryKeys, item.label, item.imageId, // eslint-disable-line @typescript-eslint/no-deprecated
460
- item.classInfo, { [fieldName]: converted.raw }, { [fieldName]: converted.display }, converted.mergedFieldNames, item.extendedData);
543
+ const convertedItem = new Item_1.Item({
544
+ ...item,
545
+ values: { [fieldName]: converted.raw },
546
+ displayValues: { [fieldName]: converted.display },
547
+ mergedFieldNames: converted.mergedFieldNames,
548
+ });
461
549
  return { emptyNestedItem: false, convertedItem };
462
550
  }
463
551
  //# sourceMappingURL=ContentTraverser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTraverser.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/ContentTraverser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { assert, IDisposable, using } from \"@itwin/core-bentley\";\nimport { CategoryDescription } from \"./Category\";\nimport { Content } from \"./Content\";\nimport { Descriptor } from \"./Descriptor\";\nimport { Field, NestedContentField } from \"./Fields\";\nimport { Item } from \"./Item\";\nimport { PropertyValueFormat, TypeDescription } from \"./TypeDescription\";\nimport {\n DisplayValue,\n DisplayValuesArray,\n DisplayValuesMap,\n NestedContentValue,\n Value as PresentationValue,\n ValuesArray as PresentationValuesArray,\n ValuesMap as PresentationValuesMap,\n} from \"./Value\";\nimport { LabelDefinition } from \"../LabelDefinition\";\n\nconst NESTED_CONTENT_LABEL_SYMBOL = Symbol();\n\ntype ValuesMap = PresentationValuesMap & {\n [NESTED_CONTENT_LABEL_SYMBOL]?: LabelDefinition;\n};\n\ntype Value = Exclude<PresentationValue, PresentationValuesMap> | ValuesMap;\n\ntype ValuesArray = Array<Value>;\n\n/**\n * A data structure to define a hierarchy of [[Field]] objects.\n * @public\n */\nexport interface FieldHierarchy {\n /** Parent field. */\n field: Field;\n /** Nested fields. */\n childFields: FieldHierarchy[];\n}\n\n/**\n * Props for the [[IContentVisitor.startContent]] call.\n * @public\n */\nexport interface StartContentProps {\n /** Descriptor of the visited content. */\n descriptor: Descriptor;\n}\n\n/**\n * Props for the [[IContentVisitor.processFieldHierarchies]] call.\n * @public\n */\nexport interface ProcessFieldHierarchiesProps {\n /**\n * The root list of fields, which may be mutated by the visitor to change order or the fields,\n * add new fields, etc.\n */\n hierarchies: FieldHierarchy[];\n}\n\n/**\n * Props for the [[IContentVisitor.startItem]] call.\n * @public\n */\nexport interface StartItemProps {\n /** The content item that's about to be visited. */\n item: Item;\n}\n\n/**\n * Props for the [[IContentVisitor.startCategory]] call.\n * @public\n */\nexport interface StartCategoryProps {\n /** The content category that's about to be visited. */\n category: CategoryDescription;\n}\n\n/**\n * Props for the [[IContentVisitor.startField]] call.\n * @public\n */\nexport interface StartFieldProps {\n /** The field that's about to be visited. */\n hierarchy: FieldHierarchy;\n}\n\n/**\n * Props for the [[IContentVisitor.startStruct]] call.\n * @public\n */\nexport interface StartStructProps {\n /** Field that describes the struct. */\n hierarchy: FieldHierarchy;\n /** Type of the struct. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Member raw values. */\n rawValues: PresentationValuesMap;\n /** Member display values. */\n displayValues: DisplayValuesMap;\n /** Label definition of the ECInstance that the struct represents. */\n label?: LabelDefinition;\n}\n\n/**\n * Props for the [[IContentVisitor.startArray]] call.\n * @public\n */\nexport interface StartArrayProps {\n /** Field that describes the array. */\n hierarchy: FieldHierarchy;\n /** Type of the array. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Item raw values. */\n rawValues: PresentationValuesArray;\n /** Item display values. */\n displayValues: DisplayValuesArray;\n}\n\n/**\n * Props for the [[IContentVisitor.processMergedValue]] call.\n * @public\n */\nexport interface ProcessMergedValueProps {\n /** The field whose values are merged. */\n mergedField: Field;\n /**\n * Generally this matches the [[mergedField]], but there are situations when a nested field is propagated\n * up to display it as if it wasn't nested its parent fields. In those cases, if one of the parent fields\n * is merged, the merged parent is going to be represented by [[mergedField]] and the field we wanted to\n * process is going to be represented by [[requestedField]].\n */\n requestedField: Field;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n}\n\n/**\n * Props for the [[IContentVisitor.processPrimitiveValue]] call.\n * @public\n */\nexport interface ProcessPrimitiveValueProps {\n /** Field whose value is being processed. */\n field: Field;\n /** Type of the value. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Raw value. */\n rawValue: PresentationValue;\n /** Display value. */\n displayValue: DisplayValue;\n}\n\n/**\n * An interface for a visitor that can be passed to the [[traverseContent]] function\n * to be called on each piece of content.\n *\n * The order of calls when using the visitor with [[traverseContent]] or [[traverseContentItem]]:\n *\n * ```\n * startContent\n * processFieldHierarchies\n * for each content item:\n * startItem\n * for each field in root level:\n * for each category in field's category stack from root to field's category:\n * startCategory\n * startField\n * valueProcessing:\n * if item's value for this field is merged:\n * processMergedValue\n * else if the field is struct:\n * startStruct\n * for each struct member:\n * recurse into the valueProcessing step\n * finishStruct\n * else if the field is array:\n * startArray\n * for each array item:\n * recurse into the valueProcessing step\n * finishArray\n * else if the field is primitive:\n * processPrimitiveValue\n * finishField\n * finishItem\n * finishContent\n * ```\n * @public\n */\nexport interface IContentVisitor {\n /**\n * Called before starting [[Content]] processing. This is a good place to initialize various caches and prepare\n * for parsing content.\n *\n * Processing is skipped if the function returns `false` and [[finishContent]] is not called in that case.\n */\n startContent(props: StartContentProps): boolean;\n /** Called after processing of [[Content]] is complete. */\n finishContent(): void;\n\n /** Called to post-process field hierarchies after they're extracted from [[Descriptor]] in processed [[Content]]. */\n processFieldHierarchies(props: ProcessFieldHierarchiesProps): void;\n\n /**\n * Called before starting each [[Item]] processing. This is a good place to initialize for a new content item, e.g.\n * set up a new row in table.\n *\n * Processing is skipped if the function returns `false` and [[finishItem]] is not called in that case.\n */\n startItem(props: StartItemProps): boolean;\n /**\n * Called after processing of [[Item]] is complete. May be used to do any kind of post-processing after all\n * values for one content item have been processed.\n */\n finishItem(): void;\n\n /**\n * Called before processing a content item field ([[startField]] call) for each category in the field's\n * category stack, starting from the root and finishing with the field's category.\n *\n * Processing is skipped if the function returns `false` and [[finishCategory]] is not called in that case.\n */\n startCategory(props: StartCategoryProps): boolean;\n /** Called after processing of field is complete for every category in the field's category stack. */\n finishCategory(): void;\n\n /**\n * Called before starting [[Field]] processing for each individual [[Item]]. This is a good callback\n * to skip a field if it doesn't need to be handled.\n *\n * Processing is skipped if the function returns `false` and [[finishField]] is not called in that case.\n */\n startField(props: StartFieldProps): boolean;\n /** Called after processing of [[Field]] for individual [[Item]] is complete. */\n finishField(): void;\n\n /**\n * Called before processing a struct value. This is a good callback to skip handling the value or set up\n * for struct member values handling.\n *\n * Processing is skipped if the function returns `false` and [[finishStruct]] is not called in that case.\n */\n startStruct(props: StartStructProps): boolean;\n /** Called after processing of struct value is complete. */\n finishStruct(): void;\n\n /**\n * Called before processing an array value. This is a good callback to skip handling the value or set up\n * for array items handling.\n *\n * Processing is skipped if the function returns `false` and [[finishArray]] is not called in that case.\n */\n startArray(props: StartArrayProps): boolean;\n /** Called after processing of array value is complete. */\n finishArray(): void;\n\n /** Called to process a [merged value]($docs/presentation/content/Terminology.md#value-merging). */\n processMergedValue(props: ProcessMergedValueProps): void;\n /** Called to process a primitive value. */\n processPrimitiveValue(props: ProcessPrimitiveValueProps): void;\n}\n\n/**\n * An utility for traversing field hierarchy. Stops traversal as soon as `cb` returns `false`.\n * @public\n */\nexport function traverseFieldHierarchy(hierarchy: FieldHierarchy, cb: (h: FieldHierarchy) => boolean) {\n if (cb(hierarchy)) {\n hierarchy.childFields.forEach((childHierarchy) => traverseFieldHierarchy(childHierarchy, cb));\n }\n}\n\n/**\n * An utility to traverse content using provided visitor. Provides means to parse content into different formats,\n * for different components.\n * @public\n */\nexport function traverseContent(visitor: IContentVisitor, content: Content) {\n if (!visitor.startContent({ descriptor: content.descriptor })) {\n return;\n }\n\n try {\n const fieldHierarchies = createFieldHierarchies(content.descriptor.fields);\n visitor.processFieldHierarchies({ hierarchies: fieldHierarchies });\n content.contentSet.forEach((item) => {\n traverseContentItemFields(visitor, fieldHierarchies, item);\n });\n } finally {\n visitor.finishContent();\n }\n}\n\n/**\n * An utility for calling [[traverseContent]] when there's only one content item.\n * @public\n */\nexport function traverseContentItem(visitor: IContentVisitor, descriptor: Descriptor, item: Item) {\n traverseContent(visitor, new Content(descriptor, [item]));\n}\n\nclass VisitedCategories implements IDisposable {\n private _visitedCategories: CategoryDescription[];\n private _didVisitAllHierarchy: boolean;\n constructor(\n private _visitor: IContentVisitor,\n category: CategoryDescription,\n ) {\n const stack: CategoryDescription[] = [];\n let curr: CategoryDescription | undefined = category;\n while (curr) {\n stack.push(curr);\n curr = curr.parent;\n }\n stack.reverse();\n\n this._didVisitAllHierarchy = true;\n this._visitedCategories = [];\n for (curr of stack) {\n if (this._visitor.startCategory({ category: curr })) {\n this._visitedCategories.push(curr);\n } else {\n this._didVisitAllHierarchy = false;\n break;\n }\n }\n }\n public dispose() {\n while (this._visitedCategories.pop()) {\n this._visitor.finishCategory();\n }\n }\n public get shouldContinue(): boolean {\n return this._didVisitAllHierarchy;\n }\n}\n\nfunction traverseContentItemFields(visitor: IContentVisitor, fieldHierarchies: FieldHierarchy[], item: Item) {\n if (!visitor.startItem({ item })) {\n return;\n }\n\n try {\n fieldHierarchies.forEach((fieldHierarchy) => {\n using(new VisitedCategories(visitor, fieldHierarchy.field.category), (res) => {\n if (res.shouldContinue) {\n traverseContentItemField(visitor, fieldHierarchy, item);\n }\n });\n });\n } finally {\n visitor.finishItem();\n }\n}\n\nfunction traverseContentItemField(visitor: IContentVisitor, fieldHierarchy: FieldHierarchy, item: Item) {\n if (!visitor.startField({ hierarchy: fieldHierarchy })) {\n return;\n }\n\n try {\n const rootToThisField = createFieldPath(fieldHierarchy.field);\n let parentFieldName: string | undefined;\n const pathUpToField = rootToThisField.slice(undefined, -1);\n for (let i = 0; i < pathUpToField.length; ++i) {\n const parentField = pathUpToField[i] as NestedContentField;\n const nextField = rootToThisField[i + 1];\n\n if (item.isFieldMerged(parentField.name)) {\n visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: parentField, parentFieldName });\n return;\n }\n\n const { emptyNestedItem, convertedItem } = convertNestedContentItemToStructArrayItem(item, parentField, nextField);\n if (emptyNestedItem) {\n return;\n }\n\n item = convertedItem;\n parentFieldName = combineFieldNames(parentField.name, parentFieldName);\n }\n\n if (item.isFieldMerged(fieldHierarchy.field.name)) {\n visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: fieldHierarchy.field, parentFieldName });\n return;\n }\n\n if (fieldHierarchy.field.isNestedContentField()) {\n fieldHierarchy = convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName);\n const { emptyNestedItem, convertedItem } = convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy);\n if (emptyNestedItem) {\n return;\n }\n item = convertedItem;\n } else if (pathUpToField.length > 0) {\n fieldHierarchy = {\n ...fieldHierarchy,\n field: Object.assign(fieldHierarchy.field.clone(), {\n type: {\n valueFormat: PropertyValueFormat.Array,\n typeName: `${fieldHierarchy.field.type.typeName}[]`,\n memberType: fieldHierarchy.field.type,\n },\n }),\n };\n }\n\n traverseContentItemFieldValue(\n visitor,\n fieldHierarchy,\n item.mergedFieldNames,\n fieldHierarchy.field.type,\n parentFieldName,\n item.values[fieldHierarchy.field.name],\n item.displayValues[fieldHierarchy.field.name],\n );\n } finally {\n visitor.finishField();\n }\n}\n\nfunction traverseContentItemFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValue: Value,\n displayValue: DisplayValue,\n) {\n if (rawValue !== undefined) {\n if (valueType.valueFormat === PropertyValueFormat.Array) {\n assert(PresentationValue.isArray(rawValue));\n assert(DisplayValue.isArray(displayValue));\n return traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n }\n if (valueType.valueFormat === PropertyValueFormat.Struct) {\n assert(PresentationValue.isMap(rawValue));\n assert(DisplayValue.isMap(displayValue));\n return traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n }\n }\n traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n}\n\nfunction traverseContentItemArrayFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValues: ValuesArray,\n displayValues: DisplayValuesArray,\n) {\n assert(rawValues.length === displayValues.length);\n assert(valueType.valueFormat === PropertyValueFormat.Array);\n if (!visitor.startArray({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues })) {\n return;\n }\n\n try {\n const itemType = valueType.memberType;\n rawValues.forEach((_, i) => {\n traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, itemType, parentFieldName, rawValues[i], displayValues[i]);\n });\n } finally {\n visitor.finishArray();\n }\n}\n\nfunction traverseContentItemStructFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValues: ValuesMap,\n displayValues: DisplayValuesMap,\n) {\n assert(valueType.valueFormat === PropertyValueFormat.Struct);\n const label = rawValues[NESTED_CONTENT_LABEL_SYMBOL];\n if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues, label })) {\n return;\n }\n\n try {\n if (fieldHierarchy.field.isNestedContentField()) {\n parentFieldName = combineFieldNames(fieldHierarchy.field.name, parentFieldName);\n }\n\n valueType.members.forEach((memberDescription) => {\n let memberField = fieldHierarchy.childFields.find((f) => f.field.name === memberDescription.name);\n if (!memberField) {\n // Not finding a member field means we're traversing an ECStruct. We still need to carry member information, so we\n // create a fake field to represent the member\n memberField = {\n field: new Field(\n fieldHierarchy.field.category,\n memberDescription.name,\n memberDescription.label,\n memberDescription.type,\n fieldHierarchy.field.isReadonly,\n 0,\n ),\n childFields: [],\n };\n }\n traverseContentItemFieldValue(\n visitor,\n memberField,\n mergedFieldNames,\n memberDescription.type,\n parentFieldName,\n rawValues[memberDescription.name],\n displayValues[memberDescription.name],\n );\n });\n } finally {\n visitor.finishStruct();\n }\n}\n\nfunction traverseContentItemPrimitiveFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValue: Value,\n displayValue: DisplayValue,\n) {\n if (-1 !== mergedFieldNames.indexOf(fieldHierarchy.field.name)) {\n visitor.processMergedValue({ mergedField: fieldHierarchy.field, requestedField: fieldHierarchy.field, parentFieldName });\n return;\n }\n\n visitor.processPrimitiveValue({ field: fieldHierarchy.field, valueType, parentFieldName, rawValue, displayValue });\n}\n\n/**\n * Parses a list of [[Field]] objects into a list of [[FieldHierarchy]].\n *\n * @param ignoreCategories Enables adding all of the `nestedFields` to parent field's `childFields`\n * without considering categories.\n *\n * @public\n */\nexport function createFieldHierarchies(fields: Field[], ignoreCategories?: boolean) {\n const hierarchies = new Array<FieldHierarchy>();\n const visitField = (category: CategoryDescription, field: Field, parentField: Field | undefined): FieldHierarchy | undefined => {\n let childFields: FieldHierarchy[] = [];\n if (field.isNestedContentField()) {\n // visit all nested fields\n childFields = visitFields(field.nestedFields, field);\n if (0 === childFields.length) {\n return undefined;\n }\n }\n const fieldHierarchy = { field, childFields };\n if (category === parentField?.category || (ignoreCategories && parentField)) {\n // if categories of this field and its parent field match - return the field hierarchy without\n // including it as a top level field\n return fieldHierarchy;\n }\n addFieldHierarchy(hierarchies, fieldHierarchy);\n return undefined;\n };\n const visitFields = (visitedFields: Field[], parentField: NestedContentField | undefined) => {\n const includedFields: FieldHierarchy[] = [];\n visitedFields.forEach((field) => {\n const visitedField = visitField(field.category, field, parentField);\n if (visitedField) {\n includedFields.push(visitedField);\n }\n });\n return includedFields;\n };\n visitFields(fields, undefined);\n return hierarchies;\n}\n\nfunction findRelatedFields(rootFields: FieldHierarchy[], hierarchy: FieldHierarchy) {\n // build a list of parent fields in hierarchy\n const fields: Field[] = [];\n let currField: Field | undefined = hierarchy.field;\n while (currField) {\n fields.push(currField);\n currField = currField.parent;\n }\n\n for (let rootIndex = 0; rootIndex < rootFields.length; ++rootIndex) {\n const rootFieldHierarchy = rootFields[rootIndex];\n if (rootFieldHierarchy.field.category !== hierarchy.field.category) {\n // only interested in fields with the same category\n continue;\n }\n\n let first = true;\n currField = rootFieldHierarchy.field;\n while (currField) {\n const index = fields.findIndex((f) => f.name === currField!.name);\n if (-1 !== index) {\n return {\n existing: {\n field: currField,\n hierarchy: first ? rootFieldHierarchy : undefined,\n index: rootIndex,\n },\n matchingField: fields[index],\n };\n }\n currField = currField.parent;\n first = false;\n }\n }\n\n return undefined;\n}\n\nfunction buildParentHierarchy(hierarchy: FieldHierarchy, parentField: Field) {\n // note: parentField is found by walking up the parentship relationship\n // from hierarchy.field, so we expect to always find it here\n while (hierarchy.field !== parentField) {\n const hierarchyParent = hierarchy.field.parent;\n assert(hierarchyParent !== undefined);\n hierarchy = { field: hierarchyParent, childFields: [hierarchy] };\n }\n return hierarchy;\n}\n\nfunction mergeHierarchies(lhs: FieldHierarchy, rhs: FieldHierarchy) {\n assert(lhs.field.name === rhs.field.name);\n const result: FieldHierarchy = {\n field: lhs.field.clone(),\n childFields: [...lhs.childFields],\n };\n rhs.childFields.forEach((rhsChildHierarchy) => {\n const indexInResult = result.childFields.findIndex((resultHierarchy) => resultHierarchy.field.name === rhsChildHierarchy.field.name);\n if (indexInResult !== -1) {\n result.childFields[indexInResult] = mergeHierarchies(result.childFields[indexInResult], rhsChildHierarchy);\n } else {\n result.childFields.push(rhsChildHierarchy);\n }\n });\n return result;\n}\n\n/**\n * Adds a field hierarchy into root field hierarchies list. *\n * @public\n */\nexport function addFieldHierarchy(rootHierarchies: FieldHierarchy[], hierarchy: FieldHierarchy): void {\n const match = findRelatedFields(rootHierarchies, hierarchy);\n if (!match) {\n rootHierarchies.push(hierarchy);\n return;\n }\n\n const targetHierarchy = rootHierarchies[match.existing.index];\n const existingHierarchy = match.existing.hierarchy ?? buildParentHierarchy(targetHierarchy, match.existing.field);\n const insertHierarchy = buildParentHierarchy(hierarchy, match.matchingField);\n const mergedHierarchy = mergeHierarchies(existingHierarchy, insertHierarchy);\n mergedHierarchy.field.category = hierarchy.field.category;\n rootHierarchies[match.existing.index] = mergedHierarchy;\n}\n\nfunction createFieldPath(field: Field): Field[] {\n const path = [field];\n let currField = field;\n while (currField.parent) {\n currField = currField.parent;\n path.push(currField);\n }\n path.reverse();\n return path;\n}\n\n/** @internal */\nexport const FIELD_NAMES_SEPARATOR = \"$\";\n/**\n * Combines given field names in a way that allows them to be parsed back into a list of individual names using the [[parseCombinedFieldNames]] function.\n * @public\n */\nexport function combineFieldNames(fieldName: string, parentFieldName?: string) {\n return parentFieldName ? `${parentFieldName}${FIELD_NAMES_SEPARATOR}${fieldName}` : fieldName;\n}\n/**\n * Parses given combined field names string, constructed using [[combineFieldNames]], into a list of individual field names.\n * @public\n */\nexport function parseCombinedFieldNames(combinedName: string) {\n return combinedName ? combinedName.split(FIELD_NAMES_SEPARATOR) : [];\n}\n\ninterface NestedItemConversionResult {\n emptyNestedItem: boolean;\n convertedItem: Item;\n}\n\nfunction convertNestedContentItemToStructArrayItem(item: Readonly<Item>, field: Field, nextField: Field): NestedItemConversionResult {\n const value = item.values[field.name] ?? [];\n assert(PresentationValue.isNestedContent(value));\n if (value.length === 0) {\n return { emptyNestedItem: true, convertedItem: item };\n }\n\n const nextFieldValues: { raw: ValuesArray; display: DisplayValuesArray } = { raw: [], display: [] };\n value.forEach((ncv) => {\n const nextRawValue = ncv.values[nextField.name];\n const nextDisplayValue = ncv.displayValues[nextField.name];\n if (nextField.isNestedContentField()) {\n if (nextRawValue) {\n assert(PresentationValue.isNestedContent(nextRawValue));\n nextFieldValues.raw.push(...nextRawValue);\n }\n } else {\n nextFieldValues.raw.push(nextRawValue);\n nextFieldValues.display.push(nextDisplayValue);\n }\n });\n const convertedItem = new Item(\n item.primaryKeys,\n item.label,\n item.imageId, // eslint-disable-line @typescript-eslint/no-deprecated\n item.classInfo,\n { [nextField.name]: nextFieldValues.raw },\n { [nextField.name]: nextFieldValues.display },\n item.mergedFieldNames,\n item.extendedData,\n );\n return { emptyNestedItem: false, convertedItem };\n}\n\nfunction convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy: FieldHierarchy, parentFieldName: string | undefined) {\n const fieldName = fieldHierarchy.field.name;\n const convertedChildFieldHierarchies = fieldHierarchy.childFields.map((child) => {\n if (child.field.isNestedContentField()) {\n return convertNestedContentFieldHierarchyToStructArrayHierarchy(child, combineFieldNames(fieldName, parentFieldName));\n }\n return child;\n });\n const convertedFieldHierarchy: FieldHierarchy = {\n field: Object.assign(fieldHierarchy.field.clone(), {\n type: {\n valueFormat: PropertyValueFormat.Array,\n typeName: `${fieldHierarchy.field.type.typeName}[]`,\n memberType: {\n valueFormat: PropertyValueFormat.Struct,\n typeName: fieldHierarchy.field.type.typeName,\n members: convertedChildFieldHierarchies.map((member) => ({\n name: member.field.name,\n label: member.field.label,\n type: member.field.type,\n })),\n },\n } as TypeDescription,\n }),\n childFields: convertedChildFieldHierarchies,\n };\n return convertedFieldHierarchy;\n}\n\nfunction convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy: FieldHierarchy, ncvs: ReadonlyArray<NestedContentValue>) {\n const result: {\n raw: ValuesArray;\n display: DisplayValuesArray;\n mergedFieldNames: string[];\n } = { raw: [], display: [], mergedFieldNames: [] };\n\n ncvs.forEach((ncv) => {\n const values: ValuesMap = { ...ncv.values };\n const displayValues: DisplayValuesMap = { ...ncv.displayValues };\n const mergedFieldNames: string[] = [...ncv.mergedFieldNames];\n values[NESTED_CONTENT_LABEL_SYMBOL] = ncv.labelDefinition;\n\n fieldHierarchy.childFields.forEach((childFieldHierarchy) => {\n const childFieldName = childFieldHierarchy.field.name;\n if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {\n return;\n }\n if (childFieldHierarchy.field.isNestedContentField()) {\n const value = values[childFieldName];\n assert(PresentationValue.isNestedContent(value));\n const convertedValues = convertNestedContentValuesToStructArrayValuesRecursive(childFieldHierarchy, value);\n values[childFieldName] = convertedValues.raw;\n displayValues[childFieldName] = convertedValues.display;\n mergedFieldNames.push(...convertedValues.mergedFieldNames);\n }\n });\n result.raw.push(values);\n result.display.push(displayValues);\n result.mergedFieldNames.push(...mergedFieldNames);\n });\n return result;\n}\n\nfunction convertNestedContentFieldHierarchyItemToStructArrayItem(item: Readonly<Item>, fieldHierarchy: FieldHierarchy): NestedItemConversionResult {\n const fieldName = fieldHierarchy.field.name;\n const rawValue = item.values[fieldName];\n assert(PresentationValue.isNestedContent(rawValue));\n if (rawValue.length === 0) {\n return { emptyNestedItem: true, convertedItem: item };\n }\n\n const converted = convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, rawValue);\n const convertedItem = new Item(\n item.primaryKeys,\n item.label,\n item.imageId, // eslint-disable-line @typescript-eslint/no-deprecated\n item.classInfo,\n { [fieldName]: converted.raw },\n { [fieldName]: converted.display },\n converted.mergedFieldNames,\n item.extendedData,\n );\n return { emptyNestedItem: false, convertedItem };\n}\n"]}
1
+ {"version":3,"file":"ContentTraverser.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/ContentTraverser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { LabelDefinition } from \"../LabelDefinition\";\nimport { CategoryDescription } from \"./Category\";\nimport { Content } from \"./Content\";\nimport { Descriptor } from \"./Descriptor\";\nimport { Field, NestedContentField } from \"./Fields\";\nimport { Item } from \"./Item\";\nimport { PropertyValueFormat, TypeDescription } from \"./TypeDescription\";\nimport {\n DisplayValue,\n DisplayValuesArray,\n DisplayValuesMap,\n NestedContentValue,\n Value as PresentationValue,\n ValuesArray as PresentationValuesArray,\n ValuesMap as PresentationValuesMap,\n} from \"./Value\";\n\nconst NESTED_CONTENT_LABEL_SYMBOL = Symbol();\n\ntype ValuesMap = PresentationValuesMap & {\n [NESTED_CONTENT_LABEL_SYMBOL]?: LabelDefinition;\n};\n\ntype Value = Exclude<PresentationValue, PresentationValuesMap> | ValuesMap;\n\ntype ValuesArray = Array<Value>;\n\n/**\n * A data structure to define a hierarchy of [[Field]] objects.\n * @public\n */\nexport interface FieldHierarchy {\n /** Parent field. */\n field: Field;\n /** Nested fields. */\n childFields: FieldHierarchy[];\n}\n\n/**\n * Props for the [[IContentVisitor.startContent]] call.\n * @public\n */\nexport interface StartContentProps {\n /** Descriptor of the visited content. */\n descriptor: Descriptor;\n}\n\n/**\n * Props for the [[IContentVisitor.processFieldHierarchies]] call.\n * @public\n */\nexport interface ProcessFieldHierarchiesProps {\n /**\n * The root list of fields, which may be mutated by the visitor to change order or the fields,\n * add new fields, etc.\n */\n hierarchies: FieldHierarchy[];\n}\n\n/**\n * Props for the [[IContentVisitor.startItem]] call.\n * @public\n */\nexport interface StartItemProps {\n /** The content item that's about to be visited. */\n item: Item;\n}\n\n/**\n * Props for the [[IContentVisitor.startCategory]] call.\n * @public\n */\nexport interface StartCategoryProps {\n /** The content category that's about to be visited. */\n category: CategoryDescription;\n}\n\n/**\n * Props for the [[IContentVisitor.startField]] call.\n * @public\n */\nexport interface StartFieldProps {\n /** The field that's about to be visited. */\n hierarchy: FieldHierarchy;\n}\n\n/**\n * Props for the [[IContentVisitor.startStruct]] call.\n * @public\n */\nexport interface StartStructProps {\n /** Field that describes the struct. */\n hierarchy: FieldHierarchy;\n /** Type of the struct. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Member raw values. */\n rawValues: PresentationValuesMap;\n /** Member display values. */\n displayValues: DisplayValuesMap;\n /** Label definition of the ECInstance that the struct represents. */\n label?: LabelDefinition;\n}\n\n/**\n * Props for the [[IContentVisitor.startArray]] call.\n * @public\n */\nexport interface StartArrayProps {\n /** Field that describes the array. */\n hierarchy: FieldHierarchy;\n /** Type of the array. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Item raw values. */\n rawValues: PresentationValuesArray;\n /** Item display values. */\n displayValues: DisplayValuesArray;\n}\n\n/**\n * Props for the [[IContentVisitor.processMergedValue]] call.\n * @public\n */\nexport interface ProcessMergedValueProps {\n /** The field whose values are merged. */\n mergedField: Field;\n /**\n * Generally this matches the [[mergedField]], but there are situations when a nested field is propagated\n * up to display it as if it wasn't nested its parent fields. In those cases, if one of the parent fields\n * is merged, the merged parent is going to be represented by [[mergedField]] and the field we wanted to\n * process is going to be represented by [[requestedField]].\n */\n requestedField: Field;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n}\n\n/**\n * Props for the [[IContentVisitor.processPrimitiveValue]] call.\n * @public\n */\nexport interface ProcessPrimitiveValueProps {\n /** Field whose value is being processed. */\n field: Field;\n /** Type of the value. */\n valueType: TypeDescription;\n /** Name of the parent field (if there is one). */\n parentFieldName?: string;\n /** Raw value. */\n rawValue: PresentationValue;\n /** Display value. */\n displayValue: DisplayValue;\n}\n\n/**\n * An interface for a visitor that can be passed to the [[traverseContent]] function\n * to be called on each piece of content.\n *\n * The order of calls when using the visitor with [[traverseContent]] or [[traverseContentItem]]:\n *\n * ```\n * startContent\n * processFieldHierarchies\n * for each content item:\n * startItem\n * for each field in root level:\n * for each category in field's category stack from root to field's category:\n * startCategory\n * startField\n * valueProcessing:\n * if item's value for this field is merged:\n * processMergedValue\n * else if the field is struct:\n * startStruct\n * for each struct member:\n * recurse into the valueProcessing step\n * finishStruct\n * else if the field is array:\n * startArray\n * for each array item:\n * recurse into the valueProcessing step\n * finishArray\n * else if the field is primitive:\n * processPrimitiveValue\n * finishField\n * finishItem\n * finishContent\n * ```\n * @public\n */\nexport interface IContentVisitor {\n /**\n * Called before starting [[Content]] processing. This is a good place to initialize various caches and prepare\n * for parsing content.\n *\n * Processing is skipped if the function returns `false` and [[finishContent]] is not called in that case.\n */\n startContent(props: StartContentProps): boolean;\n /** Called after processing of [[Content]] is complete. */\n finishContent(): void;\n\n /** Called to post-process field hierarchies after they're extracted from [[Descriptor]] in processed [[Content]]. */\n processFieldHierarchies(props: ProcessFieldHierarchiesProps): void;\n\n /**\n * Called before starting each [[Item]] processing. This is a good place to initialize for a new content item, e.g.\n * set up a new row in table.\n *\n * Processing is skipped if the function returns `false` and [[finishItem]] is not called in that case.\n */\n startItem(props: StartItemProps): boolean;\n /**\n * Called after processing of [[Item]] is complete. May be used to do any kind of post-processing after all\n * values for one content item have been processed.\n */\n finishItem(): void;\n\n /**\n * Called before processing a content item field ([[startField]] call) for each category in the field's\n * category stack, starting from the root and finishing with the field's category.\n *\n * Processing is skipped if the function returns `false` and [[finishCategory]] is not called in that case.\n */\n startCategory(props: StartCategoryProps): boolean;\n /** Called after processing of field is complete for every category in the field's category stack. */\n finishCategory(): void;\n\n /**\n * Called before starting [[Field]] processing for each individual [[Item]]. This is a good callback\n * to skip a field if it doesn't need to be handled.\n *\n * Processing is skipped if the function returns `false` and [[finishField]] is not called in that case.\n */\n startField(props: StartFieldProps): boolean;\n /** Called after processing of [[Field]] for individual [[Item]] is complete. */\n finishField(): void;\n\n /**\n * Called before processing a struct value. This is a good callback to skip handling the value or set up\n * for struct member values handling.\n *\n * Processing is skipped if the function returns `false` and [[finishStruct]] is not called in that case.\n */\n startStruct(props: StartStructProps): boolean;\n /** Called after processing of struct value is complete. */\n finishStruct(): void;\n\n /**\n * Called before processing an array value. This is a good callback to skip handling the value or set up\n * for array items handling.\n *\n * Processing is skipped if the function returns `false` and [[finishArray]] is not called in that case.\n */\n startArray(props: StartArrayProps): boolean;\n /** Called after processing of array value is complete. */\n finishArray(): void;\n\n /** Called to process a [merged value]($docs/presentation/content/Terminology.md#value-merging). */\n processMergedValue(props: ProcessMergedValueProps): void;\n /** Called to process a primitive value. */\n processPrimitiveValue(props: ProcessPrimitiveValueProps): void;\n}\n\n/**\n * An utility for traversing field hierarchy. Stops traversal as soon as `cb` returns `false`.\n * @public\n */\nexport function traverseFieldHierarchy(hierarchy: FieldHierarchy, cb: (h: FieldHierarchy) => boolean) {\n if (cb(hierarchy)) {\n hierarchy.childFields.forEach((childHierarchy) => traverseFieldHierarchy(childHierarchy, cb));\n }\n}\n\n/**\n * An utility to traverse content using provided visitor. Provides means to parse content into different formats,\n * for different components.\n * @public\n */\nexport function traverseContent(visitor: IContentVisitor, content: Content) {\n if (!visitor.startContent({ descriptor: content.descriptor })) {\n return;\n }\n\n try {\n const fieldHierarchies = createFieldHierarchies(content.descriptor.fields);\n visitor.processFieldHierarchies({ hierarchies: fieldHierarchies });\n content.contentSet.forEach((item) => {\n traverseContentItemFields(visitor, fieldHierarchies, item);\n });\n } finally {\n visitor.finishContent();\n }\n}\n\n/**\n * An utility for calling [[traverseContent]] when there's only one content item.\n * @public\n */\nexport function traverseContentItem(visitor: IContentVisitor, descriptor: Descriptor, item: Item) {\n traverseContent(visitor, new Content(descriptor, [item]));\n}\n\nclass VisitedCategories implements Disposable {\n private _visitedCategories: CategoryDescription[];\n private _didVisitAllHierarchy: boolean;\n constructor(\n private _visitor: IContentVisitor,\n category: CategoryDescription,\n ) {\n const stack: CategoryDescription[] = [];\n let curr: CategoryDescription | undefined = category;\n while (curr) {\n stack.push(curr);\n curr = curr.parent;\n }\n stack.reverse();\n\n this._didVisitAllHierarchy = true;\n this._visitedCategories = [];\n for (curr of stack) {\n if (this._visitor.startCategory({ category: curr })) {\n this._visitedCategories.push(curr);\n } else {\n this._didVisitAllHierarchy = false;\n break;\n }\n }\n }\n public [Symbol.dispose]() {\n while (this._visitedCategories.pop()) {\n this._visitor.finishCategory();\n }\n }\n public get shouldContinue(): boolean {\n return this._didVisitAllHierarchy;\n }\n}\n\nfunction traverseContentItemFields(visitor: IContentVisitor, fieldHierarchies: FieldHierarchy[], item: Item) {\n if (!visitor.startItem({ item })) {\n return;\n }\n\n try {\n fieldHierarchies.forEach((fieldHierarchy) => {\n using res = new VisitedCategories(visitor, fieldHierarchy.field.category);\n if (res.shouldContinue) {\n traverseContentItemField(visitor, fieldHierarchy, item);\n }\n });\n } finally {\n visitor.finishItem();\n }\n}\n\nfunction traverseContentItemField(visitor: IContentVisitor, fieldHierarchy: FieldHierarchy, item: Item) {\n if (!visitor.startField({ hierarchy: fieldHierarchy })) {\n return;\n }\n\n try {\n const rootToThisField = createFieldPath(fieldHierarchy.field);\n let parentFieldName: string | undefined;\n const pathUpToField = rootToThisField.slice(undefined, -1);\n for (let i = 0; i < pathUpToField.length; ++i) {\n const parentField = pathUpToField[i] as NestedContentField;\n const nextField = rootToThisField[i + 1];\n\n if (item.isFieldMerged(parentField.name)) {\n visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: parentField, parentFieldName });\n return;\n }\n\n const { emptyNestedItem, convertedItem } = convertNestedContentItemToStructArrayItem(item, parentField, nextField);\n if (emptyNestedItem) {\n return;\n }\n\n item = convertedItem;\n parentFieldName = combineFieldNames(parentField.name, parentFieldName);\n }\n\n if (item.isFieldMerged(fieldHierarchy.field.name)) {\n visitor.processMergedValue({ requestedField: fieldHierarchy.field, mergedField: fieldHierarchy.field, parentFieldName });\n return;\n }\n\n if (fieldHierarchy.field.isNestedContentField()) {\n fieldHierarchy = convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy, parentFieldName);\n const { emptyNestedItem, convertedItem } = convertNestedContentFieldHierarchyItemToStructArrayItem(item, fieldHierarchy);\n if (emptyNestedItem) {\n return;\n }\n item = convertedItem;\n } else if (pathUpToField.length > 0) {\n fieldHierarchy = {\n ...fieldHierarchy,\n field: (function () {\n const clone = fieldHierarchy.field.clone();\n clone.type = {\n valueFormat: PropertyValueFormat.Array,\n typeName: `${fieldHierarchy.field.type.typeName}[]`,\n memberType: fieldHierarchy.field.type,\n };\n return clone;\n })(),\n };\n }\n\n traverseContentItemFieldValue(\n visitor,\n fieldHierarchy,\n item.mergedFieldNames,\n fieldHierarchy.field.type,\n parentFieldName,\n item.values[fieldHierarchy.field.name],\n item.displayValues[fieldHierarchy.field.name],\n );\n } finally {\n visitor.finishField();\n }\n}\n\nfunction traverseContentItemFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValue: Value,\n displayValue: DisplayValue,\n) {\n if (rawValue !== undefined) {\n if (valueType.valueFormat === PropertyValueFormat.Array) {\n assert(PresentationValue.isArray(rawValue));\n assert(DisplayValue.isArray(displayValue));\n return traverseContentItemArrayFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n }\n if (valueType.valueFormat === PropertyValueFormat.Struct) {\n assert(PresentationValue.isMap(rawValue));\n assert(DisplayValue.isMap(displayValue));\n return traverseContentItemStructFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n }\n }\n traverseContentItemPrimitiveFieldValue(visitor, fieldHierarchy, mergedFieldNames, valueType, parentFieldName, rawValue, displayValue);\n}\n\nfunction traverseContentItemArrayFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValues: ValuesArray,\n displayValues: DisplayValuesArray,\n) {\n assert(rawValues.length === displayValues.length);\n assert(valueType.valueFormat === PropertyValueFormat.Array);\n if (!visitor.startArray({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues })) {\n return;\n }\n\n try {\n const itemType = valueType.memberType;\n rawValues.forEach((_, i) => {\n traverseContentItemFieldValue(visitor, fieldHierarchy, mergedFieldNames, itemType, parentFieldName, rawValues[i], displayValues[i]);\n });\n } finally {\n visitor.finishArray();\n }\n}\n\nfunction traverseContentItemStructFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValues: ValuesMap,\n displayValues: DisplayValuesMap,\n) {\n assert(valueType.valueFormat === PropertyValueFormat.Struct);\n const label = rawValues[NESTED_CONTENT_LABEL_SYMBOL];\n if (!visitor.startStruct({ hierarchy: fieldHierarchy, valueType, parentFieldName, rawValues, displayValues, label })) {\n return;\n }\n\n try {\n if (fieldHierarchy.field.isNestedContentField()) {\n parentFieldName = combineFieldNames(fieldHierarchy.field.name, parentFieldName);\n }\n\n valueType.members.forEach((memberDescription) => {\n let memberField = fieldHierarchy.childFields.find((f) => f.field.name === memberDescription.name);\n if (!memberField) {\n // Not finding a member field means we're traversing an ECStruct. We still need to carry member information, so we\n // create a fake field to represent the member\n memberField = {\n field: new Field({\n category: fieldHierarchy.field.category,\n name: memberDescription.name,\n label: memberDescription.label,\n type: memberDescription.type,\n isReadonly: fieldHierarchy.field.isReadonly,\n priority: 0,\n }),\n childFields: [],\n };\n }\n traverseContentItemFieldValue(\n visitor,\n memberField,\n mergedFieldNames,\n memberDescription.type,\n parentFieldName,\n rawValues[memberDescription.name],\n displayValues[memberDescription.name],\n );\n });\n } finally {\n visitor.finishStruct();\n }\n}\n\nfunction traverseContentItemPrimitiveFieldValue(\n visitor: IContentVisitor,\n fieldHierarchy: FieldHierarchy,\n mergedFieldNames: string[],\n valueType: TypeDescription,\n parentFieldName: string | undefined,\n rawValue: Value,\n displayValue: DisplayValue,\n) {\n if (-1 !== mergedFieldNames.indexOf(fieldHierarchy.field.name)) {\n visitor.processMergedValue({ mergedField: fieldHierarchy.field, requestedField: fieldHierarchy.field, parentFieldName });\n return;\n }\n\n visitor.processPrimitiveValue({ field: fieldHierarchy.field, valueType, parentFieldName, rawValue, displayValue });\n}\n\n/**\n * Parses a list of [[Field]] objects into a list of [[FieldHierarchy]].\n *\n * @param ignoreCategories Enables adding all of the `nestedFields` to parent field's `childFields`\n * without considering categories.\n *\n * @public\n */\nexport function createFieldHierarchies(fields: Field[], ignoreCategories?: boolean) {\n const hierarchies = new Array<FieldHierarchy>();\n const visitField = (category: CategoryDescription, field: Field, parentField: Field | undefined): FieldHierarchy | undefined => {\n let childFields: FieldHierarchy[] = [];\n if (field.isNestedContentField()) {\n // visit all nested fields\n childFields = visitFields(field.nestedFields, field);\n if (0 === childFields.length) {\n return undefined;\n }\n }\n const fieldHierarchy = { field, childFields };\n if (category === parentField?.category || (ignoreCategories && parentField)) {\n // if categories of this field and its parent field match - return the field hierarchy without\n // including it as a top level field\n return fieldHierarchy;\n }\n addFieldHierarchy(hierarchies, fieldHierarchy);\n return undefined;\n };\n const visitFields = (visitedFields: Field[], parentField: NestedContentField | undefined) => {\n const includedFields: FieldHierarchy[] = [];\n visitedFields.forEach((field) => {\n const visitedField = visitField(field.category, field, parentField);\n if (visitedField) {\n includedFields.push(visitedField);\n }\n });\n return includedFields;\n };\n visitFields(fields, undefined);\n return hierarchies;\n}\n\nfunction findRelatedFields(rootFields: FieldHierarchy[], hierarchy: FieldHierarchy) {\n // build a list of parent fields in hierarchy\n const fields: Field[] = [];\n let currField: Field | undefined = hierarchy.field;\n while (currField) {\n fields.push(currField);\n currField = currField.parent;\n }\n\n for (let rootIndex = 0; rootIndex < rootFields.length; ++rootIndex) {\n const rootFieldHierarchy = rootFields[rootIndex];\n if (rootFieldHierarchy.field.category !== hierarchy.field.category) {\n // only interested in fields with the same category\n continue;\n }\n\n let first = true;\n currField = rootFieldHierarchy.field;\n while (currField) {\n const index = fields.findIndex((f) => f.name === currField!.name);\n if (-1 !== index) {\n return {\n existing: {\n field: currField,\n hierarchy: first ? rootFieldHierarchy : undefined,\n index: rootIndex,\n },\n matchingField: fields[index],\n };\n }\n currField = currField.parent;\n first = false;\n }\n }\n\n return undefined;\n}\n\nfunction buildParentHierarchy(hierarchy: FieldHierarchy, parentField: Field) {\n // note: parentField is found by walking up the parentship relationship\n // from hierarchy.field, so we expect to always find it here\n while (hierarchy.field !== parentField) {\n const hierarchyParent = hierarchy.field.parent;\n assert(hierarchyParent !== undefined);\n hierarchy = { field: hierarchyParent, childFields: [hierarchy] };\n }\n return hierarchy;\n}\n\nfunction mergeHierarchies(lhs: FieldHierarchy, rhs: FieldHierarchy) {\n assert(lhs.field.name === rhs.field.name);\n const result: FieldHierarchy = {\n field: lhs.field.clone(),\n childFields: [...lhs.childFields],\n };\n rhs.childFields.forEach((rhsChildHierarchy) => {\n const indexInResult = result.childFields.findIndex((resultHierarchy) => resultHierarchy.field.name === rhsChildHierarchy.field.name);\n if (indexInResult !== -1) {\n result.childFields[indexInResult] = mergeHierarchies(result.childFields[indexInResult], rhsChildHierarchy);\n } else {\n result.childFields.push(rhsChildHierarchy);\n }\n });\n return result;\n}\n\n/**\n * Adds a field hierarchy into root field hierarchies list. *\n * @public\n */\nexport function addFieldHierarchy(rootHierarchies: FieldHierarchy[], hierarchy: FieldHierarchy): void {\n const match = findRelatedFields(rootHierarchies, hierarchy);\n if (!match) {\n rootHierarchies.push(hierarchy);\n return;\n }\n\n const targetHierarchy = rootHierarchies[match.existing.index];\n const existingHierarchy = match.existing.hierarchy ?? buildParentHierarchy(targetHierarchy, match.existing.field);\n const insertHierarchy = buildParentHierarchy(hierarchy, match.matchingField);\n const mergedHierarchy = mergeHierarchies(existingHierarchy, insertHierarchy);\n mergedHierarchy.field.category = hierarchy.field.category;\n rootHierarchies[match.existing.index] = mergedHierarchy;\n}\n\nfunction createFieldPath(field: Field): Field[] {\n const path = [field];\n let currField = field;\n while (currField.parent) {\n currField = currField.parent;\n path.push(currField);\n }\n path.reverse();\n return path;\n}\n\n/** @internal */\nexport const FIELD_NAMES_SEPARATOR = \"$\";\n/**\n * Combines given field names in a way that allows them to be parsed back into a list of individual names using the [[parseCombinedFieldNames]] function.\n * @public\n */\nexport function combineFieldNames(fieldName: string, parentFieldName?: string) {\n return parentFieldName ? `${parentFieldName}${FIELD_NAMES_SEPARATOR}${fieldName}` : fieldName;\n}\n/**\n * Parses given combined field names string, constructed using [[combineFieldNames]], into a list of individual field names.\n * @public\n */\nexport function parseCombinedFieldNames(combinedName: string) {\n return combinedName ? combinedName.split(FIELD_NAMES_SEPARATOR) : [];\n}\n\ninterface NestedItemConversionResult {\n emptyNestedItem: boolean;\n convertedItem: Item;\n}\n\nfunction convertNestedContentItemToStructArrayItem(item: Readonly<Item>, field: Field, nextField: Field): NestedItemConversionResult {\n const value = item.values[field.name] ?? [];\n assert(PresentationValue.isNestedContent(value));\n if (value.length === 0) {\n return { emptyNestedItem: true, convertedItem: item };\n }\n\n let nextFieldValues: { raw: PresentationValuesArray | NestedContentValue[]; display: DisplayValuesArray } = { raw: [], display: [] };\n if (nextField.isNestedContentField()) {\n const nextNestedContent: NestedContentValue[] = [];\n value.forEach((ncv) => {\n const nextRawValue = ncv.values[nextField.name];\n if (nextRawValue) {\n assert(PresentationValue.isNestedContent(nextRawValue));\n nextNestedContent.push(...nextRawValue);\n }\n });\n nextFieldValues.raw = nextNestedContent;\n } else {\n const nextValues: { raw: PresentationValuesArray; display: DisplayValuesArray } = { raw: [], display: [] };\n value.forEach((ncv) => {\n nextValues.raw.push(ncv.values[nextField.name]);\n nextValues.display.push(ncv.displayValues[nextField.name]);\n });\n nextFieldValues = nextValues;\n }\n const convertedItem = new Item({\n ...item,\n values: { [nextField.name]: nextFieldValues.raw },\n displayValues: { [nextField.name]: nextFieldValues.display },\n });\n return { emptyNestedItem: false, convertedItem };\n}\n\nfunction convertNestedContentFieldHierarchyToStructArrayHierarchy(fieldHierarchy: FieldHierarchy, parentFieldName: string | undefined) {\n const fieldName = fieldHierarchy.field.name;\n const convertedChildFieldHierarchies = fieldHierarchy.childFields.map((child) => {\n if (child.field.isNestedContentField()) {\n return convertNestedContentFieldHierarchyToStructArrayHierarchy(child, combineFieldNames(fieldName, parentFieldName));\n }\n return child;\n });\n const convertedFieldHierarchy: FieldHierarchy = {\n field: (function () {\n const clone = fieldHierarchy.field.clone();\n clone.type = {\n valueFormat: PropertyValueFormat.Array,\n typeName: `${fieldHierarchy.field.type.typeName}[]`,\n memberType: {\n valueFormat: PropertyValueFormat.Struct,\n typeName: fieldHierarchy.field.type.typeName,\n members: convertedChildFieldHierarchies.map((member) => ({\n name: member.field.name,\n label: member.field.label,\n type: member.field.type,\n })),\n },\n };\n return clone;\n })(),\n childFields: convertedChildFieldHierarchies,\n };\n return convertedFieldHierarchy;\n}\n\nfunction convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy: FieldHierarchy, ncvs: ReadonlyArray<NestedContentValue>) {\n const result: {\n raw: ValuesArray;\n display: DisplayValuesArray;\n mergedFieldNames: string[];\n } = { raw: [], display: [], mergedFieldNames: [] };\n\n ncvs.forEach((ncv) => {\n const values: ValuesMap = { ...ncv.values };\n const displayValues: DisplayValuesMap = { ...ncv.displayValues };\n const mergedFieldNames: string[] = [...ncv.mergedFieldNames];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n values[NESTED_CONTENT_LABEL_SYMBOL] = ncv.label ?? ncv.labelDefinition;\n\n fieldHierarchy.childFields.forEach((childFieldHierarchy) => {\n const childFieldName = childFieldHierarchy.field.name;\n if (-1 !== ncv.mergedFieldNames.indexOf(childFieldName)) {\n return;\n }\n if (childFieldHierarchy.field.isNestedContentField()) {\n const value = values[childFieldName];\n assert(PresentationValue.isNestedContent(value));\n const convertedValues = convertNestedContentValuesToStructArrayValuesRecursive(childFieldHierarchy, value);\n values[childFieldName] = convertedValues.raw;\n displayValues[childFieldName] = convertedValues.display;\n mergedFieldNames.push(...convertedValues.mergedFieldNames);\n }\n });\n result.raw.push(values);\n result.display.push(displayValues);\n result.mergedFieldNames.push(...mergedFieldNames);\n });\n return result;\n}\n\nfunction convertNestedContentFieldHierarchyItemToStructArrayItem(item: Readonly<Item>, fieldHierarchy: FieldHierarchy): NestedItemConversionResult {\n const fieldName = fieldHierarchy.field.name;\n const rawValue = item.values[fieldName];\n assert(PresentationValue.isNestedContent(rawValue));\n if (rawValue.length === 0) {\n return { emptyNestedItem: true, convertedItem: item };\n }\n\n const converted = convertNestedContentValuesToStructArrayValuesRecursive(fieldHierarchy, rawValue);\n const convertedItem = new Item({\n ...item,\n values: { [fieldName]: converted.raw },\n displayValues: { [fieldName]: converted.display },\n mergedFieldNames: converted.mergedFieldNames,\n });\n return { emptyNestedItem: false, convertedItem };\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module Content
3
3
  */
4
4
  import { Id64String } from "@itwin/core-bentley";
5
- import { ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship, RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON } from "../EC";
5
+ import { ClassInfo, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship, RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON } from "../EC";
6
6
  import { InstanceFilterDefinition } from "../InstanceFilterDefinition";
7
7
  import { Ruleset } from "../rules/Ruleset";
8
8
  import { CategoryDescription, CategoryDescriptionJSON } from "./Category";
@@ -29,7 +29,7 @@ export interface SelectClassInfo {
29
29
  * Serialized [[SelectClassInfo]] JSON representation
30
30
  * @public
31
31
  */
32
- export interface SelectClassInfoJSON<TClassInfoJSON = ClassInfoJSON> {
32
+ export interface SelectClassInfoJSON<TClassInfoJSON = ClassInfo> {
33
33
  selectClassInfo: TClassInfoJSON;
34
34
  isSelectPolymorphic: boolean;
35
35
  pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationshipJSON<TClassInfoJSON>[];
@@ -65,11 +65,6 @@ export declare namespace SelectClassInfo {
65
65
  export declare enum ContentFlags {
66
66
  /** Each content record only has [[InstanceKey]] and no data */
67
67
  KeysOnly = 1,
68
- /**
69
- * Each content record additionally has an image id
70
- * @deprecated in 3.x. Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.
71
- */
72
- ShowImages = 2,
73
68
  /** Each content record additionally has a display label */
74
69
  ShowLabels = 4,
75
70
  /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */
@@ -120,8 +115,6 @@ export interface DescriptorJSON {
120
115
  };
121
116
  connectionId: string;
122
117
  inputKeysHash: string;
123
- /** @deprecated in 3.x. The attribute is not used anymore. */
124
- contentOptions: any;
125
118
  selectionInfo?: SelectionInfo;
126
119
  displayType: string;
127
120
  selectClasses: SelectClassInfoJSON<Id64String>[];
@@ -130,8 +123,6 @@ export interface DescriptorJSON {
130
123
  sortingFieldName?: string;
131
124
  sortDirection?: SortDirection;
132
125
  contentFlags: number;
133
- /** @deprecated in 3.x. The attribute was replaced with [[fieldsFilterExpression]]. */
134
- filterExpression?: string;
135
126
  fieldsFilterExpression?: string;
136
127
  instanceFilter?: InstanceFilterDefinition;
137
128
  ruleset?: Ruleset;
@@ -162,11 +153,6 @@ export interface DescriptorOverrides {
162
153
  /** Sort direction */
163
154
  direction: SortDirection;
164
155
  };
165
- /**
166
- * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content
167
- * @deprecated in 3.x. The attribute was replaced with [[fieldsFilterExpression]].
168
- */
169
- filterExpression?: string;
170
156
  /**
171
157
  * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content by
172
158
  * select fields.
@@ -220,11 +206,6 @@ export interface DescriptorSource {
220
206
  * Only set if descriptor is created using a ruleset different from the input ruleset, e.g. when creating a hierarchy level descriptor.
221
207
  */
222
208
  readonly ruleset?: Ruleset;
223
- /**
224
- * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content
225
- * @deprecated in 3.x. The attribute was replaced with [[fieldsFilterExpression]].
226
- */
227
- filterExpression?: string;
228
209
  /**
229
210
  * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content by
230
211
  * select fields.
@@ -259,11 +240,6 @@ export declare class Descriptor implements DescriptorSource {
259
240
  readonly connectionId?: string;
260
241
  /** Hash of the input keys used to create the descriptor */
261
242
  readonly inputKeysHash?: string;
262
- /**
263
- * Extended options used to create the descriptor.
264
- * @deprecated in 3.6. The attribute is not used anymore.
265
- */
266
- readonly contentOptions: any;
267
243
  /** Selection info used to create the descriptor */
268
244
  readonly selectionInfo?: SelectionInfo;
269
245
  /** Display type used to create the descriptor */
@@ -285,11 +261,6 @@ export declare class Descriptor implements DescriptorSource {
285
261
  sortingField?: Field;
286
262
  /** Sorting direction */
287
263
  sortDirection?: SortDirection;
288
- /**
289
- * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content
290
- * @deprecated in 3.x. The attribute was replaced with [[fieldsFilterExpression]].
291
- */
292
- filterExpression?: string;
293
264
  /**
294
265
  * [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content by
295
266
  * select fields.
@@ -1 +1 @@
1
- {"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.ts"],"names":[],"mappings":"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"}