@itwin/presentation-common 4.0.0-dev.48 → 4.0.0-dev.50

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 (471) hide show
  1. package/lib/cjs/assets/locales/en/Presentation.json +14 -14
  2. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  3. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  4. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  5. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  6. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  8. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  9. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  10. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  11. package/lib/cjs/presentation-common/EC.d.ts +350 -350
  12. package/lib/cjs/presentation-common/EC.js +290 -290
  13. package/lib/cjs/presentation-common/EC.js.map +1 -1
  14. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  15. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  16. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  17. package/lib/cjs/presentation-common/Error.d.ts +47 -47
  18. package/lib/cjs/presentation-common/Error.js +64 -64
  19. package/lib/cjs/presentation-common/Error.js.map +1 -1
  20. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  21. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  22. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  23. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  24. package/lib/cjs/presentation-common/KeySet.js +428 -428
  25. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  26. package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -93
  27. package/lib/cjs/presentation-common/LabelDefinition.js +78 -78
  28. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  29. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  30. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  31. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  32. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  33. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  34. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  35. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +273 -273
  36. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  37. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  38. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
  39. package/lib/cjs/presentation-common/PresentationRpcInterface.js +104 -104
  40. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  41. package/lib/cjs/presentation-common/PropertyFormatter.d.ts +30 -30
  42. package/lib/cjs/presentation-common/PropertyFormatter.js +198 -198
  43. package/lib/cjs/presentation-common/PropertyFormatter.js.map +1 -1
  44. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  45. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  46. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  47. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -82
  48. package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -166
  49. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  50. package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
  51. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  52. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  53. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  54. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  55. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  56. package/lib/cjs/presentation-common/Update.d.ts +213 -213
  57. package/lib/cjs/presentation-common/Update.js +226 -226
  58. package/lib/cjs/presentation-common/Update.js.map +1 -1
  59. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  60. package/lib/cjs/presentation-common/Utils.js +43 -43
  61. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  62. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  63. package/lib/cjs/presentation-common/content/Category.js +48 -48
  64. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  65. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  66. package/lib/cjs/presentation-common/content/Content.js +56 -56
  67. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  68. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
  69. package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -437
  70. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  71. package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
  72. package/lib/cjs/presentation-common/content/Descriptor.js +191 -191
  73. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  74. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  75. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  76. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  77. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  78. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  79. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/Fields.d.ts +298 -298
  81. package/lib/cjs/presentation-common/content/Fields.js +393 -393
  82. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  83. package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
  84. package/lib/cjs/presentation-common/content/Item.js +84 -84
  85. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
  87. package/lib/cjs/presentation-common/content/Property.js +40 -40
  88. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  89. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  90. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  91. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  93. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  94. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  95. package/lib/cjs/presentation-common/content/Value.d.ts +189 -189
  96. package/lib/cjs/presentation-common/content/Value.js +273 -273
  97. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  98. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  99. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
  100. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  101. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
  102. package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
  103. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  104. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
  105. package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
  106. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  107. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  108. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
  109. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  110. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  111. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  112. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  113. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  114. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  115. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  116. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  117. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  118. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  119. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  120. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  121. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  122. package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
  123. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  124. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  125. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
  126. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  127. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  128. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  129. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  130. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
  132. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  133. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  135. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  136. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  137. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  138. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  139. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  140. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  141. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  142. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  143. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  144. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  145. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  146. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  147. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  148. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  149. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  150. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  151. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  152. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  153. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  154. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  155. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  156. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  157. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  158. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  159. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  160. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  161. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  162. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  163. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  164. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  165. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  166. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  167. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  168. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  169. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  170. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  171. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  172. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  173. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  174. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  175. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  176. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  177. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  178. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  179. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  180. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  181. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  182. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  183. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  184. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  185. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  186. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  187. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  188. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  189. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  190. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  191. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  192. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  193. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  194. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  195. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  196. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  197. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  198. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  199. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  200. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  201. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  202. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  203. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  204. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
  205. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  206. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  207. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  208. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  209. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  210. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  211. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  213. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  214. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  216. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  217. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  218. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  219. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  220. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  221. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  222. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  223. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  224. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  225. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  226. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  227. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  228. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  229. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  230. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
  231. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  232. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  233. package/lib/cjs/presentation-common.d.ts +113 -113
  234. package/lib/cjs/presentation-common.js +129 -129
  235. package/lib/cjs/presentation-common.js.map +1 -1
  236. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  237. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  238. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  239. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  240. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  241. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  242. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  243. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  244. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  245. package/lib/esm/presentation-common/EC.d.ts +350 -350
  246. package/lib/esm/presentation-common/EC.js +287 -287
  247. package/lib/esm/presentation-common/EC.js.map +1 -1
  248. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  249. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  250. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  251. package/lib/esm/presentation-common/Error.d.ts +47 -47
  252. package/lib/esm/presentation-common/Error.js +60 -60
  253. package/lib/esm/presentation-common/Error.js.map +1 -1
  254. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  255. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  256. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  257. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  258. package/lib/esm/presentation-common/KeySet.js +424 -424
  259. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  260. package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -93
  261. package/lib/esm/presentation-common/LabelDefinition.js +75 -75
  262. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  263. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  264. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  265. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  266. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  267. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  268. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  269. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +273 -273
  270. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  271. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  272. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
  273. package/lib/esm/presentation-common/PresentationRpcInterface.js +100 -100
  274. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  275. package/lib/esm/presentation-common/PropertyFormatter.d.ts +30 -30
  276. package/lib/esm/presentation-common/PropertyFormatter.js +193 -193
  277. package/lib/esm/presentation-common/PropertyFormatter.js.map +1 -1
  278. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  279. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  280. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  281. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -82
  282. package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -162
  283. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  284. package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
  285. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  286. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  287. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  288. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  289. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  290. package/lib/esm/presentation-common/Update.d.ts +213 -213
  291. package/lib/esm/presentation-common/Update.js +223 -223
  292. package/lib/esm/presentation-common/Update.js.map +1 -1
  293. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  294. package/lib/esm/presentation-common/Utils.js +39 -39
  295. package/lib/esm/presentation-common/Utils.js.map +1 -1
  296. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  297. package/lib/esm/presentation-common/content/Category.js +45 -45
  298. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  299. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  300. package/lib/esm/presentation-common/content/Content.js +52 -52
  301. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  302. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
  303. package/lib/esm/presentation-common/content/ContentTraverser.js +427 -427
  304. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  305. package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
  306. package/lib/esm/presentation-common/content/Descriptor.js +187 -187
  307. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  308. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  309. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  310. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  311. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  312. package/lib/esm/presentation-common/content/Editor.js +8 -8
  313. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  314. package/lib/esm/presentation-common/content/Fields.d.ts +298 -298
  315. package/lib/esm/presentation-common/content/Fields.js +386 -386
  316. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  317. package/lib/esm/presentation-common/content/Item.d.ts +85 -85
  318. package/lib/esm/presentation-common/content/Item.js +80 -80
  319. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  320. package/lib/esm/presentation-common/content/Property.d.ts +57 -57
  321. package/lib/esm/presentation-common/content/Property.js +37 -37
  322. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  323. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  324. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  325. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  326. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  327. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  328. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  329. package/lib/esm/presentation-common/content/Value.d.ts +189 -189
  330. package/lib/esm/presentation-common/content/Value.js +270 -270
  331. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  332. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  333. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
  334. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  335. package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
  336. package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
  337. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  338. package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
  339. package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
  340. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  341. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  342. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
  343. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  344. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  345. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  346. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  347. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  348. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  349. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  350. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  351. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  352. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  353. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  354. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  355. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  356. package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
  357. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  358. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  359. package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
  360. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  361. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  362. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  363. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  364. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  365. package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
  366. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  367. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  368. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  369. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  370. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  371. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  372. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  373. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  374. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  375. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  376. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  377. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  378. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  379. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  380. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  381. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  382. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  383. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  384. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  385. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  386. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  387. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  388. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  389. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  390. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  391. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  392. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  393. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  394. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  395. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  396. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  397. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  398. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  399. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  400. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  401. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  402. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  403. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  404. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  405. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  406. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  407. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  408. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  409. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  410. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  411. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  412. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  413. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  414. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  415. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  416. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  417. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  418. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  419. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  420. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  421. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  422. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  423. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  424. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  425. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  426. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  427. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  428. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  429. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  430. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  431. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  432. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  433. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  434. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  435. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  436. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  437. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  438. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
  439. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  440. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  441. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  442. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  443. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  444. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  445. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  446. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  447. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  448. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  449. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  450. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  451. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  452. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  453. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  454. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  455. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  456. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  457. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  458. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  459. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  460. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  461. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  462. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  463. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  464. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
  465. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  466. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  467. package/lib/esm/presentation-common.d.ts +113 -113
  468. package/lib/esm/presentation-common.js +117 -117
  469. package/lib/esm/presentation-common.js.map +1 -1
  470. package/lib/public/locales/en/Presentation.json +14 -14
  471. package/package.json +10 -10
@@ -1,83 +1,83 @@
1
- /** @packageDocumentation
2
- * @module RPC
3
- */
4
- import { IModelRpcProps } from "@itwin/core-common";
5
- import { DescriptorJSON, DescriptorOverrides } from "./content/Descriptor";
6
- import { ItemJSON } from "./content/Item";
7
- import { DisplayValueGroupJSON } from "./content/Value";
8
- import { ClientDiagnosticsAttribute } from "./Diagnostics";
9
- import { InstanceKey } from "./EC";
10
- import { ElementProperties } from "./ElementProperties";
11
- import { NodeKey } from "./hierarchy/Key";
12
- import { NodeJSON } from "./hierarchy/Node";
13
- import { NodePathElementJSON } from "./hierarchy/NodePathElement";
14
- import { KeySetJSON } from "./KeySet";
15
- import { LabelDefinition } from "./LabelDefinition";
16
- import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
17
- import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface";
18
- import { RulesetVariableJSON } from "./RulesetVariables";
19
- import { SelectionScope } from "./selection/SelectionScope";
20
- import { PagedResponse } from "./Utils";
21
- /**
22
- * Configuration parameters for [[RpcRequestsHandler]].
23
- *
24
- * @internal
25
- */
26
- export interface RpcRequestsHandlerProps {
27
- /**
28
- * Optional ID used to identify client that requests data. If not specified,
29
- * the handler creates a unique GUID as a client id.
30
- * @internal
31
- */
32
- clientId?: string;
33
- /** @internal */
34
- timeout?: number;
35
- }
36
- /**
37
- * RPC requests handler that wraps [[PresentationRpcInterface]] and
38
- * adds handling for cases when backend needs to be synced with client
39
- * state.
40
- *
41
- * @internal
42
- */
43
- export declare class RpcRequestsHandler {
44
- /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */
45
- readonly timeout: number;
46
- /** ID that identifies this handler as a client */
47
- readonly clientId: string;
48
- constructor(props?: RpcRequestsHandlerProps);
49
- private get rpcClient();
50
- private requestWithTimeout;
51
- /**
52
- * Send the request to backend.
53
- *
54
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
55
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
56
- * is thrown with the details from the response.
57
- */
58
- request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>, options: TOptions, ...additionalOptions: TArg[]): Promise<TResult>;
59
- getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
60
- getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>>;
61
- getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
62
- getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
63
- getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
64
- getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult>;
65
- getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
66
- getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
67
- getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<{
68
- descriptor: DescriptorJSON;
69
- contentSet: PagedResponse<ItemJSON>;
70
- } | undefined>;
71
- getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<PagedResponse<ItemJSON>>;
72
- getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>>;
73
- getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined>;
74
- getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{
75
- total: number;
76
- items: KeySetJSON;
77
- }>;
78
- getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition>;
79
- getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>>;
80
- getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]>;
81
- computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON>;
82
- }
1
+ /** @packageDocumentation
2
+ * @module RPC
3
+ */
4
+ import { IModelRpcProps } from "@itwin/core-common";
5
+ import { DescriptorJSON, DescriptorOverrides } from "./content/Descriptor";
6
+ import { ItemJSON } from "./content/Item";
7
+ import { DisplayValueGroupJSON } from "./content/Value";
8
+ import { ClientDiagnosticsAttribute } from "./Diagnostics";
9
+ import { InstanceKey } from "./EC";
10
+ import { ElementProperties } from "./ElementProperties";
11
+ import { NodeKey } from "./hierarchy/Key";
12
+ import { NodeJSON } from "./hierarchy/Node";
13
+ import { NodePathElementJSON } from "./hierarchy/NodePathElement";
14
+ import { KeySetJSON } from "./KeySet";
15
+ import { LabelDefinition } from "./LabelDefinition";
16
+ import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
17
+ import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface";
18
+ import { RulesetVariableJSON } from "./RulesetVariables";
19
+ import { SelectionScope } from "./selection/SelectionScope";
20
+ import { PagedResponse } from "./Utils";
21
+ /**
22
+ * Configuration parameters for [[RpcRequestsHandler]].
23
+ *
24
+ * @internal
25
+ */
26
+ export interface RpcRequestsHandlerProps {
27
+ /**
28
+ * Optional ID used to identify client that requests data. If not specified,
29
+ * the handler creates a unique GUID as a client id.
30
+ * @internal
31
+ */
32
+ clientId?: string;
33
+ /** @internal */
34
+ timeout?: number;
35
+ }
36
+ /**
37
+ * RPC requests handler that wraps [[PresentationRpcInterface]] and
38
+ * adds handling for cases when backend needs to be synced with client
39
+ * state.
40
+ *
41
+ * @internal
42
+ */
43
+ export declare class RpcRequestsHandler {
44
+ /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */
45
+ readonly timeout: number;
46
+ /** ID that identifies this handler as a client */
47
+ readonly clientId: string;
48
+ constructor(props?: RpcRequestsHandlerProps);
49
+ private get rpcClient();
50
+ private requestWithTimeout;
51
+ /**
52
+ * Send the request to backend.
53
+ *
54
+ * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
55
+ * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
56
+ * is thrown with the details from the response.
57
+ */
58
+ request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>, options: TOptions, ...additionalOptions: TArg[]): Promise<TResult>;
59
+ getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
60
+ getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>>;
61
+ getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
62
+ getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
63
+ getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
64
+ getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult>;
65
+ getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
66
+ getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
67
+ getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<{
68
+ descriptor: DescriptorJSON;
69
+ contentSet: PagedResponse<ItemJSON>;
70
+ } | undefined>;
71
+ getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<PagedResponse<ItemJSON>>;
72
+ getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>>;
73
+ getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined>;
74
+ getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{
75
+ total: number;
76
+ items: KeySetJSON;
77
+ }>;
78
+ getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition>;
79
+ getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>>;
80
+ getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]>;
81
+ computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON>;
82
+ }
83
83
  //# sourceMappingURL=RpcRequestsHandler.d.ts.map
@@ -1,167 +1,167 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module RPC
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.RpcRequestsHandler = void 0;
11
- const core_bentley_1 = require("@itwin/core-bentley");
12
- const core_common_1 = require("@itwin/core-common");
13
- const CommonLoggerCategory_1 = require("./CommonLoggerCategory");
14
- const Error_1 = require("./Error");
15
- const PresentationRpcInterface_1 = require("./PresentationRpcInterface");
16
- /**
17
- * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
18
- * a timeout error.
19
- */
20
- const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
21
- /**
22
- * RPC requests handler that wraps [[PresentationRpcInterface]] and
23
- * adds handling for cases when backend needs to be synced with client
24
- * state.
25
- *
26
- * @internal
27
- */
28
- class RpcRequestsHandler {
29
- constructor(props) {
30
- this.clientId = props?.clientId ?? core_bentley_1.Guid.createValue();
31
- this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
32
- }
33
- // eslint-disable-next-line @typescript-eslint/naming-convention
34
- get rpcClient() { return core_common_1.RpcManager.getClientForInterface(PresentationRpcInterface_1.PresentationRpcInterface); }
35
- async requestWithTimeout(func, diagnosticsHandler) {
36
- const start = core_bentley_1.BeTimePoint.now();
37
- const timeout = core_bentley_1.BeDuration.fromMilliseconds(this.timeout);
38
- let diagnostics;
39
- while (start.plus(timeout).isInFuture) {
40
- try {
41
- const response = await func();
42
- diagnostics = response.diagnostics;
43
- switch (response.statusCode) {
44
- case Error_1.PresentationStatus.Success: return response.result;
45
- case Error_1.PresentationStatus.BackendTimeout: break;
46
- default: throw new Error_1.PresentationError(response.statusCode, response.errorMessage);
47
- }
48
- }
49
- finally {
50
- diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
51
- }
52
- }
53
- throw new Error_1.PresentationError(Error_1.PresentationStatus.BackendTimeout);
54
- }
55
- /**
56
- * Send the request to backend.
57
- *
58
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
59
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
60
- * is thrown with the details from the response.
61
- */
62
- async request(func, options, ...additionalOptions) {
63
- const { imodel, diagnostics, ...optionsNoIModel } = options;
64
- const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};
65
- if (isOptionsWithRuleset(optionsNoIModel)) {
66
- optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);
67
- }
68
- const rpcOptions = {
69
- ...optionsNoIModel,
70
- clientId: this.clientId,
71
- };
72
- if (diagnostics) {
73
- rpcOptions.diagnostics = diagnosticsOptions;
74
- }
75
- const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
76
- return this.requestWithTimeout(doRequest, diagnosticsHandler);
77
- }
78
- async getNodesCount(options) {
79
- return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
80
- }
81
- // eslint-disable-next-line deprecation/deprecation
82
- async getPagedNodes(options) {
83
- // eslint-disable-next-line deprecation/deprecation
84
- return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
85
- }
86
- async getNodesDescriptor(options) {
87
- const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
88
- if (typeof response === "string")
89
- return JSON.parse(response);
90
- return response;
91
- }
92
- // eslint-disable-next-line deprecation/deprecation
93
- async getNodePaths(options) {
94
- // eslint-disable-next-line deprecation/deprecation
95
- return this.request(this.rpcClient.getNodePaths.bind(this.rpcClient), options);
96
- }
97
- // eslint-disable-next-line deprecation/deprecation
98
- async getFilteredNodePaths(options) {
99
- // eslint-disable-next-line deprecation/deprecation
100
- return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
101
- }
102
- async getContentSources(options) {
103
- return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
104
- }
105
- async getContentDescriptor(options) {
106
- return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
107
- }
108
- async getContentSetSize(options) {
109
- return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
110
- }
111
- async getPagedContent(options) {
112
- return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
113
- }
114
- async getPagedContentSet(options) {
115
- return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
116
- }
117
- // eslint-disable-next-line deprecation/deprecation
118
- async getPagedDistinctValues(options) {
119
- // eslint-disable-next-line deprecation/deprecation
120
- return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
121
- }
122
- async getElementProperties(options) {
123
- return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
124
- }
125
- async getContentInstanceKeys(options) {
126
- return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
127
- }
128
- async getDisplayLabelDefinition(options) {
129
- return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
130
- }
131
- async getPagedDisplayLabelDefinitions(options) {
132
- return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
133
- }
134
- async getSelectionScopes(options) {
135
- return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
136
- }
137
- async computeSelection(options) {
138
- return this.request(
139
- // eslint-disable-next-line deprecation/deprecation
140
- this.rpcClient.computeSelection.bind(this.rpcClient), options);
141
- }
142
- }
143
- exports.RpcRequestsHandler = RpcRequestsHandler;
144
- function isOptionsWithRuleset(options) {
145
- return (typeof options.rulesetOrId === "object");
146
- }
147
- const RULESET_SUPPORTED_PROPERTIES_OBJ = {
148
- id: true,
149
- rules: true,
150
- version: true,
151
- requiredSchemas: true,
152
- supplementationInfo: true,
153
- vars: true,
154
- };
155
- function cleanupRuleset(ruleset) {
156
- const cleanedUpRuleset = { ...ruleset };
157
- for (const propertyKey of Object.keys(cleanedUpRuleset)) {
158
- if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {
159
- if (propertyKey === "$schema")
160
- delete cleanedUpRuleset[propertyKey];
161
- else
162
- core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
163
- }
164
- }
165
- return cleanedUpRuleset;
166
- }
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module RPC
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RpcRequestsHandler = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const CommonLoggerCategory_1 = require("./CommonLoggerCategory");
14
+ const Error_1 = require("./Error");
15
+ const PresentationRpcInterface_1 = require("./PresentationRpcInterface");
16
+ /**
17
+ * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
18
+ * a timeout error.
19
+ */
20
+ const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
21
+ /**
22
+ * RPC requests handler that wraps [[PresentationRpcInterface]] and
23
+ * adds handling for cases when backend needs to be synced with client
24
+ * state.
25
+ *
26
+ * @internal
27
+ */
28
+ class RpcRequestsHandler {
29
+ constructor(props) {
30
+ this.clientId = props?.clientId ?? core_bentley_1.Guid.createValue();
31
+ this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
32
+ }
33
+ // eslint-disable-next-line @typescript-eslint/naming-convention
34
+ get rpcClient() { return core_common_1.RpcManager.getClientForInterface(PresentationRpcInterface_1.PresentationRpcInterface); }
35
+ async requestWithTimeout(func, diagnosticsHandler) {
36
+ const start = core_bentley_1.BeTimePoint.now();
37
+ const timeout = core_bentley_1.BeDuration.fromMilliseconds(this.timeout);
38
+ let diagnostics;
39
+ while (start.plus(timeout).isInFuture) {
40
+ try {
41
+ const response = await func();
42
+ diagnostics = response.diagnostics;
43
+ switch (response.statusCode) {
44
+ case Error_1.PresentationStatus.Success: return response.result;
45
+ case Error_1.PresentationStatus.BackendTimeout: break;
46
+ default: throw new Error_1.PresentationError(response.statusCode, response.errorMessage);
47
+ }
48
+ }
49
+ finally {
50
+ diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
51
+ }
52
+ }
53
+ throw new Error_1.PresentationError(Error_1.PresentationStatus.BackendTimeout);
54
+ }
55
+ /**
56
+ * Send the request to backend.
57
+ *
58
+ * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
59
+ * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
60
+ * is thrown with the details from the response.
61
+ */
62
+ async request(func, options, ...additionalOptions) {
63
+ const { imodel, diagnostics, ...optionsNoIModel } = options;
64
+ const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};
65
+ if (isOptionsWithRuleset(optionsNoIModel)) {
66
+ optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);
67
+ }
68
+ const rpcOptions = {
69
+ ...optionsNoIModel,
70
+ clientId: this.clientId,
71
+ };
72
+ if (diagnostics) {
73
+ rpcOptions.diagnostics = diagnosticsOptions;
74
+ }
75
+ const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
76
+ return this.requestWithTimeout(doRequest, diagnosticsHandler);
77
+ }
78
+ async getNodesCount(options) {
79
+ return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
80
+ }
81
+ // eslint-disable-next-line deprecation/deprecation
82
+ async getPagedNodes(options) {
83
+ // eslint-disable-next-line deprecation/deprecation
84
+ return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
85
+ }
86
+ async getNodesDescriptor(options) {
87
+ const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
88
+ if (typeof response === "string")
89
+ return JSON.parse(response);
90
+ return response;
91
+ }
92
+ // eslint-disable-next-line deprecation/deprecation
93
+ async getNodePaths(options) {
94
+ // eslint-disable-next-line deprecation/deprecation
95
+ return this.request(this.rpcClient.getNodePaths.bind(this.rpcClient), options);
96
+ }
97
+ // eslint-disable-next-line deprecation/deprecation
98
+ async getFilteredNodePaths(options) {
99
+ // eslint-disable-next-line deprecation/deprecation
100
+ return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
101
+ }
102
+ async getContentSources(options) {
103
+ return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
104
+ }
105
+ async getContentDescriptor(options) {
106
+ return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
107
+ }
108
+ async getContentSetSize(options) {
109
+ return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
110
+ }
111
+ async getPagedContent(options) {
112
+ return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
113
+ }
114
+ async getPagedContentSet(options) {
115
+ return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
116
+ }
117
+ // eslint-disable-next-line deprecation/deprecation
118
+ async getPagedDistinctValues(options) {
119
+ // eslint-disable-next-line deprecation/deprecation
120
+ return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
121
+ }
122
+ async getElementProperties(options) {
123
+ return this.request(this.rpcClient.getElementProperties.bind(this.rpcClient), options);
124
+ }
125
+ async getContentInstanceKeys(options) {
126
+ return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
127
+ }
128
+ async getDisplayLabelDefinition(options) {
129
+ return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
130
+ }
131
+ async getPagedDisplayLabelDefinitions(options) {
132
+ return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
133
+ }
134
+ async getSelectionScopes(options) {
135
+ return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
136
+ }
137
+ async computeSelection(options) {
138
+ return this.request(
139
+ // eslint-disable-next-line deprecation/deprecation
140
+ this.rpcClient.computeSelection.bind(this.rpcClient), options);
141
+ }
142
+ }
143
+ exports.RpcRequestsHandler = RpcRequestsHandler;
144
+ function isOptionsWithRuleset(options) {
145
+ return (typeof options.rulesetOrId === "object");
146
+ }
147
+ const RULESET_SUPPORTED_PROPERTIES_OBJ = {
148
+ id: true,
149
+ rules: true,
150
+ version: true,
151
+ requiredSchemas: true,
152
+ supplementationInfo: true,
153
+ vars: true,
154
+ };
155
+ function cleanupRuleset(ruleset) {
156
+ const cleanedUpRuleset = { ...ruleset };
157
+ for (const propertyKey of Object.keys(cleanedUpRuleset)) {
158
+ if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {
159
+ if (propertyKey === "$schema")
160
+ delete cleanedUpRuleset[propertyKey];
161
+ else
162
+ core_bentley_1.Logger.logWarning(CommonLoggerCategory_1.PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);
163
+ }
164
+ }
165
+ return cleanedUpRuleset;
166
+ }
167
167
  //# sourceMappingURL=RpcRequestsHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.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 RPC\n */\n\nimport { BeDuration, BeTimePoint, Guid, Logger } from \"@itwin/core-bentley\";\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\nimport { ItemJSON } from \"./content/Item\";\nimport { DisplayValueGroupJSON } from \"./content/Value\";\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics\";\nimport { InstanceKey } from \"./EC\";\nimport { ElementProperties } from \"./ElementProperties\";\nimport { PresentationError, PresentationStatus } from \"./Error\";\nimport { NodeKey } from \"./hierarchy/Key\";\nimport { NodeJSON } from \"./hierarchy/Node\";\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\nimport { KeySetJSON } from \"./KeySet\";\nimport { LabelDefinition } from \"./LabelDefinition\";\nimport {\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\n Paged, RequestOptions, RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\n} from \"./PresentationManagerOptions\";\nimport {\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\n} from \"./PresentationRpcInterface\";\nimport { Ruleset } from \"./rules/Ruleset\";\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\nimport { SelectionScope } from \"./selection/SelectionScope\";\nimport { PagedResponse } from \"./Utils\";\n\n/**\n * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing\n * a timeout error.\n */\nconst DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes\n\n/**\n * Configuration parameters for [[RpcRequestsHandler]].\n *\n * @internal\n */\nexport interface RpcRequestsHandlerProps {\n /**\n * Optional ID used to identify client that requests data. If not specified,\n * the handler creates a unique GUID as a client id.\n * @internal\n */\n clientId?: string;\n\n /** @internal */\n timeout?: number;\n}\n\n/**\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\n * adds handling for cases when backend needs to be synced with client\n * state.\n *\n * @internal\n */\nexport class RpcRequestsHandler {\n /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */\n public readonly timeout: number;\n\n /** ID that identifies this handler as a client */\n public readonly clientId: string;\n\n public constructor(props?: RpcRequestsHandlerProps) {\n this.clientId = props?.clientId ?? Guid.createValue();\n this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\n\n private async requestWithTimeout<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler): Promise<TResult> {\n const start = BeTimePoint.now();\n const timeout = BeDuration.fromMilliseconds(this.timeout);\n let diagnostics: ClientDiagnostics | undefined;\n while (start.plus(timeout).isInFuture) {\n try {\n const response = await func();\n diagnostics = response.diagnostics;\n switch (response.statusCode) {\n case PresentationStatus.Success: return response.result!;\n case PresentationStatus.BackendTimeout: break;\n default: throw new PresentationError(response.statusCode, response.errorMessage);\n }\n } finally {\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\n }\n }\n throw new PresentationError(PresentationStatus.BackendTimeout);\n }\n\n /**\n * Send the request to backend.\n *\n * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get\n * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]\n * is thrown with the details from the response.\n */\n public async request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\n options: TOptions,\n ...additionalOptions: TArg[]\n ): Promise<TResult> {\n const { imodel, diagnostics, ...optionsNoIModel } = options;\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\n if (isOptionsWithRuleset(optionsNoIModel)) {\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\n }\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\n ...optionsNoIModel,\n clientId: this.clientId,\n };\n if (diagnostics) {\n rpcOptions.diagnostics = diagnosticsOptions;\n }\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\n return this.requestWithTimeout(doRequest, diagnosticsHandler);\n }\n\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\n return this.request<number, typeof options>(\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\n }\n // eslint-disable-next-line deprecation/deprecation\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<PagedResponse<NodeJSON>, typeof options>(\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\n }\n\n public async getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(\n this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\n if (typeof response === \"string\")\n return JSON.parse(response);\n return response;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<NodePathElementJSON[], typeof options>(\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\n }\n // eslint-disable-next-line deprecation/deprecation\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<NodePathElementJSON[], typeof options>(\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\n }\n\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\n return this.request<ContentSourcesRpcResult, typeof options>(\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\n }\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\n return this.request<DescriptorJSON | undefined, typeof options>(\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\n }\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\n return this.request<number, typeof options>(\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\n }\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\n }\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\n return this.request<PagedResponse<ItemJSON>, typeof options>(\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>> {\n // eslint-disable-next-line deprecation/deprecation\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\n }\n\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined> {\n return this.request<ElementProperties | undefined, typeof options>(\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\n }\n\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{ total: number, items: KeySetJSON }> {\n return this.request<{ total: number, items: KeySetJSON }, typeof options>(\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\n }\n\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition> {\n return this.request<LabelDefinition, typeof options>(\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\n }\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>> {\n return this.request<PagedResponse<LabelDefinition>, typeof options>(\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\n }\n\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\n return this.request<SelectionScope[], typeof options>(\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\n }\n public async computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON> {\n return this.request<KeySetJSON, typeof options>(\n // eslint-disable-next-line deprecation/deprecation\n this.rpcClient.computeSelection.bind(this.rpcClient), options);\n }\n}\n\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset } {\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\n}\n\ntype RulesetWithRequiredProperties = {\n [key in keyof Ruleset]-?: true;\n};\n\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\n id: true,\n rules: true,\n version: true,\n requiredSchemas: true,\n supplementationInfo: true,\n vars: true,\n};\n\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\n const cleanedUpRuleset: Ruleset = { ...ruleset };\n\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\n if (propertyKey === \"$schema\")\n delete (cleanedUpRuleset as any)[propertyKey];\n else\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\n }\n }\n\n return cleanedUpRuleset;\n}\n"]}
1
+ {"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module RPC\r\n */\r\n\r\nimport { BeDuration, BeTimePoint, Guid, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\r\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\r\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics\";\r\nimport { InstanceKey } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationError, PresentationStatus } from \"./Error\";\r\nimport { NodeKey } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinition } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\r\n Paged, RequestOptions, RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport {\r\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\r\n} from \"./PresentationRpcInterface\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing\r\n * a timeout error.\r\n */\r\nconst DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes\r\n\r\n/**\r\n * Configuration parameters for [[RpcRequestsHandler]].\r\n *\r\n * @internal\r\n */\r\nexport interface RpcRequestsHandlerProps {\r\n /**\r\n * Optional ID used to identify client that requests data. If not specified,\r\n * the handler creates a unique GUID as a client id.\r\n * @internal\r\n */\r\n clientId?: string;\r\n\r\n /** @internal */\r\n timeout?: number;\r\n}\r\n\r\n/**\r\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\r\n * adds handling for cases when backend needs to be synced with client\r\n * state.\r\n *\r\n * @internal\r\n */\r\nexport class RpcRequestsHandler {\r\n /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */\r\n public readonly timeout: number;\r\n\r\n /** ID that identifies this handler as a client */\r\n public readonly clientId: string;\r\n\r\n public constructor(props?: RpcRequestsHandlerProps) {\r\n this.clientId = props?.clientId ?? Guid.createValue();\r\n this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\r\n\r\n private async requestWithTimeout<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler): Promise<TResult> {\r\n const start = BeTimePoint.now();\r\n const timeout = BeDuration.fromMilliseconds(this.timeout);\r\n let diagnostics: ClientDiagnostics | undefined;\r\n while (start.plus(timeout).isInFuture) {\r\n try {\r\n const response = await func();\r\n diagnostics = response.diagnostics;\r\n switch (response.statusCode) {\r\n case PresentationStatus.Success: return response.result!;\r\n case PresentationStatus.BackendTimeout: break;\r\n default: throw new PresentationError(response.statusCode, response.errorMessage);\r\n }\r\n } finally {\r\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\r\n }\r\n }\r\n throw new PresentationError(PresentationStatus.BackendTimeout);\r\n }\r\n\r\n /**\r\n * Send the request to backend.\r\n *\r\n * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get\r\n * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]\r\n * is thrown with the details from the response.\r\n */\r\n public async request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(\r\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\r\n options: TOptions,\r\n ...additionalOptions: TArg[]\r\n ): Promise<TResult> {\r\n const { imodel, diagnostics, ...optionsNoIModel } = options;\r\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\r\n if (isOptionsWithRuleset(optionsNoIModel)) {\r\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\r\n }\r\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\r\n ...optionsNoIModel,\r\n clientId: this.clientId,\r\n };\r\n if (diagnostics) {\r\n rpcOptions.diagnostics = diagnosticsOptions;\r\n }\r\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\r\n return this.requestWithTimeout(doRequest, diagnosticsHandler);\r\n }\r\n\r\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\r\n }\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<PagedResponse<NodeJSON>, typeof options>(\r\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\r\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(\r\n this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\r\n if (typeof response === \"string\")\r\n return JSON.parse(response);\r\n return response;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\r\n }\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\r\n return this.request<ContentSourcesRpcResult, typeof options>(\r\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\r\n }\r\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\r\n return this.request<DescriptorJSON | undefined, typeof options>(\r\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\r\n }\r\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\r\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<PagedResponse<ItemJSON>, typeof options>(\r\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>> {\r\n // eslint-disable-next-line deprecation/deprecation\r\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(\r\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined> {\r\n return this.request<ElementProperties | undefined, typeof options>(\r\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{ total: number, items: KeySetJSON }> {\r\n return this.request<{ total: number, items: KeySetJSON }, typeof options>(\r\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<LabelDefinition> {\r\n return this.request<LabelDefinition, typeof options>(\r\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\r\n }\r\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinition>> {\r\n return this.request<PagedResponse<LabelDefinition>, typeof options>(\r\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\r\n return this.request<SelectionScope[], typeof options>(\r\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\r\n }\r\n public async computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON> {\r\n return this.request<KeySetJSON, typeof options>(\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.rpcClient.computeSelection.bind(this.rpcClient), options);\r\n }\r\n}\r\n\r\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset } {\r\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\r\n}\r\n\r\ntype RulesetWithRequiredProperties = {\r\n [key in keyof Ruleset]-?: true;\r\n};\r\n\r\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\r\n id: true,\r\n rules: true,\r\n version: true,\r\n requiredSchemas: true,\r\n supplementationInfo: true,\r\n vars: true,\r\n};\r\n\r\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\r\n const cleanedUpRuleset: Ruleset = { ...ruleset };\r\n\r\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\r\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\r\n if (propertyKey === \"$schema\")\r\n delete (cleanedUpRuleset as any)[propertyKey];\r\n else\r\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\r\n }\r\n }\r\n\r\n return cleanedUpRuleset;\r\n}\r\n"]}