@itwin/presentation-common 3.6.0-dev.8 → 3.6.0

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