@itwin/presentation-common 5.0.0-dev.1 → 5.0.0-dev.100

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 (507) hide show
  1. package/CHANGELOG.md +84 -1
  2. package/Ruleset.schema.json +3 -258
  3. package/lib/{cjs/assets → assets}/locales/en/Presentation.json +19 -19
  4. package/lib/cjs/package.json +1 -0
  5. package/lib/cjs/presentation-common/AsyncTasks.d.ts +4 -4
  6. package/lib/cjs/presentation-common/AsyncTasks.d.ts.map +1 -1
  7. package/lib/cjs/presentation-common/AsyncTasks.js +5 -6
  8. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  9. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  10. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  11. package/lib/cjs/presentation-common/EC.d.ts +37 -81
  12. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  13. package/lib/cjs/presentation-common/EC.js +1 -97
  14. package/lib/cjs/presentation-common/EC.js.map +1 -1
  15. package/lib/cjs/presentation-common/ElementProperties.d.ts +2 -2
  16. package/lib/cjs/presentation-common/ElementProperties.d.ts.map +1 -1
  17. package/lib/cjs/presentation-common/ElementProperties.js +22 -15
  18. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  19. package/lib/cjs/presentation-common/Error.d.ts +2 -0
  20. package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
  21. package/lib/cjs/presentation-common/Error.js +2 -0
  22. package/lib/cjs/presentation-common/Error.js.map +1 -1
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +1 -1
  24. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  25. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  26. package/lib/cjs/presentation-common/KeySet.d.ts +3 -3
  27. package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
  28. package/lib/cjs/presentation-common/KeySet.js +31 -30
  29. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  30. package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js +9 -7
  31. package/lib/cjs/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
  32. package/lib/cjs/presentation-common/LabelDefinition.d.ts +2 -50
  33. package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
  34. package/lib/cjs/presentation-common/LabelDefinition.js +4 -47
  35. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  36. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +10 -10
  37. package/lib/cjs/presentation-common/LocalizationHelper.d.ts.map +1 -1
  38. package/lib/cjs/presentation-common/LocalizationHelper.js +13 -12
  39. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  40. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +12 -7
  41. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts.map +1 -1
  42. package/lib/cjs/presentation-common/PresentationIpcInterface.js +9 -1
  43. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  44. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +40 -25
  45. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  46. package/lib/cjs/presentation-common/PresentationManagerOptions.js +0 -5
  47. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  48. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +39 -29
  49. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  50. package/lib/cjs/presentation-common/PresentationRpcInterface.js +59 -37
  51. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  52. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +6 -5
  53. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts.map +1 -1
  54. package/lib/cjs/presentation-common/RegisteredRuleset.js +9 -1
  55. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  56. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +21 -24
  57. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  58. package/lib/cjs/presentation-common/RpcRequestsHandler.js +54 -35
  59. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  60. package/lib/cjs/presentation-common/RulesetVariables.d.ts +1 -46
  61. package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
  62. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  63. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +4 -4
  64. package/lib/cjs/presentation-common/RulesetsFactory.d.ts.map +1 -1
  65. package/lib/cjs/presentation-common/RulesetsFactory.js +15 -15
  66. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  67. package/lib/cjs/presentation-common/Update.d.ts +2 -79
  68. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  69. package/lib/cjs/presentation-common/Update.js +1 -104
  70. package/lib/cjs/presentation-common/Update.js.map +1 -1
  71. package/lib/cjs/presentation-common/Utils.d.ts +22 -1
  72. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  73. package/lib/cjs/presentation-common/Utils.js +59 -3
  74. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  75. package/lib/cjs/presentation-common/content/Category.d.ts +1 -1
  76. package/lib/cjs/presentation-common/content/Category.d.ts.map +1 -1
  77. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  78. package/lib/cjs/presentation-common/content/Content.d.ts +2 -9
  79. package/lib/cjs/presentation-common/content/Content.d.ts.map +1 -1
  80. package/lib/cjs/presentation-common/content/Content.js +9 -14
  81. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  82. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +9 -9
  83. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts.map +1 -1
  84. package/lib/cjs/presentation-common/content/ContentTraverser.js +138 -50
  85. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/Descriptor.d.ts +7 -52
  87. package/lib/cjs/presentation-common/content/Descriptor.d.ts.map +1 -1
  88. package/lib/cjs/presentation-common/content/Descriptor.js +82 -53
  89. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  90. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  91. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/Fields.d.ts +157 -33
  93. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  94. package/lib/cjs/presentation-common/content/Fields.js +275 -151
  95. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  96. package/lib/cjs/presentation-common/content/Item.d.ts +28 -33
  97. package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
  98. package/lib/cjs/presentation-common/content/Item.js +53 -68
  99. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  100. package/lib/cjs/presentation-common/content/Property.d.ts +2 -14
  101. package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
  102. package/lib/cjs/presentation-common/content/Property.js +2 -20
  103. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  104. package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts +6 -6
  105. package/lib/cjs/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
  106. package/lib/cjs/presentation-common/content/PropertyValueFormatter.js +43 -32
  107. package/lib/cjs/presentation-common/content/PropertyValueFormatter.js.map +1 -1
  108. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  109. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  110. package/lib/cjs/presentation-common/content/Value.d.ts +8 -110
  111. package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
  112. package/lib/cjs/presentation-common/content/Value.js +1 -215
  113. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  114. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +1 -22
  115. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts.map +1 -1
  116. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +0 -23
  117. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  118. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +1 -84
  119. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  120. package/lib/cjs/presentation-common/hierarchy/Key.js +8 -26
  121. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  122. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +4 -107
  123. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  124. package/lib/cjs/presentation-common/hierarchy/Node.js +0 -99
  125. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  126. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +1 -67
  127. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts.map +1 -1
  128. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +0 -117
  129. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  130. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +2 -2
  132. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts.map +1 -1
  133. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  135. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +2 -2
  136. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  137. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  138. package/lib/cjs/presentation-common/rules/Rule.d.ts +6 -20
  139. package/lib/cjs/presentation-common/rules/Rule.d.ts.map +1 -1
  140. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  141. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +3 -3
  142. package/lib/cjs/presentation-common/rules/Ruleset.d.ts.map +1 -1
  143. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  144. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  145. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  146. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +2 -2
  147. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts.map +1 -1
  148. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  149. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +2 -2
  150. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts.map +1 -1
  151. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  152. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +2 -2
  153. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts.map +1 -1
  154. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  155. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +5 -12
  156. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts.map +1 -1
  157. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  158. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +2 -2
  159. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts.map +1 -1
  160. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  161. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +3 -3
  162. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts.map +1 -1
  163. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  164. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +1 -1
  165. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts.map +1 -1
  166. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  167. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +3 -3
  168. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts.map +1 -1
  169. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  170. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +6 -6
  171. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts.map +1 -1
  172. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  173. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  174. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +1 -1
  175. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  176. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  177. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  178. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +2 -2
  179. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts.map +1 -1
  180. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  181. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +6 -10
  182. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts.map +1 -1
  183. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  184. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +1 -1
  185. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts.map +1 -1
  186. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  187. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +4 -30
  188. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts.map +1 -1
  189. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +1 -15
  190. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  191. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +3 -3
  192. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  193. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  194. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +2 -2
  195. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  196. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  197. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +1 -1
  198. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts.map +1 -1
  199. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  200. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +6 -6
  201. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  202. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  203. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +3 -1
  204. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts.map +1 -1
  205. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  206. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +2 -2
  207. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts.map +1 -1
  208. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  209. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +2 -11
  210. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts.map +1 -1
  211. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +6 -6
  213. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  214. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +1 -1
  216. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts.map +1 -1
  217. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  218. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +2 -2
  219. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts.map +1 -1
  220. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  221. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +1 -1
  222. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts.map +1 -1
  223. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  224. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +2 -2
  225. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts.map +1 -1
  226. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  227. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +3 -0
  228. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  229. package/lib/cjs/presentation-common/selection/SelectionScope.js +1 -0
  230. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  231. package/lib/cjs/presentation-common-internal.d.ts +10 -0
  232. package/lib/cjs/presentation-common-internal.d.ts.map +1 -0
  233. package/lib/cjs/presentation-common-internal.js +32 -0
  234. package/lib/cjs/presentation-common-internal.js.map +1 -0
  235. package/lib/cjs/presentation-common.d.ts +68 -77
  236. package/lib/cjs/presentation-common.d.ts.map +1 -1
  237. package/lib/cjs/presentation-common.js +110 -89
  238. package/lib/cjs/presentation-common.js.map +1 -1
  239. package/lib/esm/presentation-common/AsyncTasks.d.ts +4 -4
  240. package/lib/esm/presentation-common/AsyncTasks.d.ts.map +1 -1
  241. package/lib/esm/presentation-common/AsyncTasks.js +5 -6
  242. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  243. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  244. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  245. package/lib/esm/presentation-common/EC.d.ts +37 -81
  246. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  247. package/lib/esm/presentation-common/EC.js +0 -96
  248. package/lib/esm/presentation-common/EC.js.map +1 -1
  249. package/lib/esm/presentation-common/ElementProperties.d.ts +2 -2
  250. package/lib/esm/presentation-common/ElementProperties.d.ts.map +1 -1
  251. package/lib/esm/presentation-common/ElementProperties.js +18 -11
  252. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  253. package/lib/esm/presentation-common/Error.d.ts +2 -0
  254. package/lib/esm/presentation-common/Error.d.ts.map +1 -1
  255. package/lib/esm/presentation-common/Error.js +2 -0
  256. package/lib/esm/presentation-common/Error.js.map +1 -1
  257. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +1 -1
  258. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  259. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  260. package/lib/esm/presentation-common/KeySet.d.ts +3 -3
  261. package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
  262. package/lib/esm/presentation-common/KeySet.js +21 -20
  263. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  264. package/lib/esm/presentation-common/KoqPropertyValueFormatter.js +10 -8
  265. package/lib/esm/presentation-common/KoqPropertyValueFormatter.js.map +1 -1
  266. package/lib/esm/presentation-common/LabelDefinition.d.ts +2 -50
  267. package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
  268. package/lib/esm/presentation-common/LabelDefinition.js +3 -46
  269. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  270. package/lib/esm/presentation-common/LocalizationHelper.d.ts +10 -10
  271. package/lib/esm/presentation-common/LocalizationHelper.d.ts.map +1 -1
  272. package/lib/esm/presentation-common/LocalizationHelper.js +6 -5
  273. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  274. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +12 -7
  275. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts.map +1 -1
  276. package/lib/esm/presentation-common/PresentationIpcInterface.js +8 -0
  277. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  278. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +40 -25
  279. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  280. package/lib/esm/presentation-common/PresentationManagerOptions.js +0 -4
  281. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  282. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +39 -29
  283. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  284. package/lib/esm/presentation-common/PresentationRpcInterface.js +60 -37
  285. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  286. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +6 -5
  287. package/lib/esm/presentation-common/RegisteredRuleset.d.ts.map +1 -1
  288. package/lib/esm/presentation-common/RegisteredRuleset.js +9 -1
  289. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  290. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +21 -24
  291. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  292. package/lib/esm/presentation-common/RpcRequestsHandler.js +54 -35
  293. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  294. package/lib/esm/presentation-common/RulesetVariables.d.ts +1 -46
  295. package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
  296. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  297. package/lib/esm/presentation-common/RulesetsFactory.d.ts +4 -4
  298. package/lib/esm/presentation-common/RulesetsFactory.d.ts.map +1 -1
  299. package/lib/esm/presentation-common/RulesetsFactory.js +6 -6
  300. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  301. package/lib/esm/presentation-common/Update.d.ts +2 -79
  302. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  303. package/lib/esm/presentation-common/Update.js +0 -103
  304. package/lib/esm/presentation-common/Update.js.map +1 -1
  305. package/lib/esm/presentation-common/Utils.d.ts +22 -1
  306. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  307. package/lib/esm/presentation-common/Utils.js +54 -1
  308. package/lib/esm/presentation-common/Utils.js.map +1 -1
  309. package/lib/esm/presentation-common/content/Category.d.ts +1 -1
  310. package/lib/esm/presentation-common/content/Category.d.ts.map +1 -1
  311. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  312. package/lib/esm/presentation-common/content/Content.d.ts +2 -9
  313. package/lib/esm/presentation-common/content/Content.d.ts.map +1 -1
  314. package/lib/esm/presentation-common/content/Content.js +7 -12
  315. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  316. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +9 -9
  317. package/lib/esm/presentation-common/content/ContentTraverser.d.ts.map +1 -1
  318. package/lib/esm/presentation-common/content/ContentTraverser.js +123 -35
  319. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  320. package/lib/esm/presentation-common/content/Descriptor.d.ts +7 -52
  321. package/lib/esm/presentation-common/content/Descriptor.d.ts.map +1 -1
  322. package/lib/esm/presentation-common/content/Descriptor.js +71 -42
  323. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  324. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  325. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  326. package/lib/esm/presentation-common/content/Fields.d.ts +157 -33
  327. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  328. package/lib/esm/presentation-common/content/Fields.js +268 -144
  329. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  330. package/lib/esm/presentation-common/content/Item.d.ts +28 -33
  331. package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
  332. package/lib/esm/presentation-common/content/Item.js +53 -68
  333. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  334. package/lib/esm/presentation-common/content/Property.d.ts +2 -14
  335. package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
  336. package/lib/esm/presentation-common/content/Property.js +1 -19
  337. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  338. package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts +6 -6
  339. package/lib/esm/presentation-common/content/PropertyValueFormatter.d.ts.map +1 -1
  340. package/lib/esm/presentation-common/content/PropertyValueFormatter.js +36 -25
  341. package/lib/esm/presentation-common/content/PropertyValueFormatter.js.map +1 -1
  342. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  343. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  344. package/lib/esm/presentation-common/content/Value.d.ts +8 -110
  345. package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
  346. package/lib/esm/presentation-common/content/Value.js +0 -214
  347. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  348. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +1 -22
  349. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts.map +1 -1
  350. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +1 -22
  351. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  352. package/lib/esm/presentation-common/hierarchy/Key.d.ts +1 -84
  353. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  354. package/lib/esm/presentation-common/hierarchy/Key.js +7 -25
  355. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  356. package/lib/esm/presentation-common/hierarchy/Node.d.ts +4 -107
  357. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  358. package/lib/esm/presentation-common/hierarchy/Node.js +1 -98
  359. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  360. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +1 -67
  361. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts.map +1 -1
  362. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +1 -116
  363. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  364. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  365. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +2 -2
  366. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts.map +1 -1
  367. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  368. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  369. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +2 -2
  370. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  371. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  372. package/lib/esm/presentation-common/rules/Rule.d.ts +6 -20
  373. package/lib/esm/presentation-common/rules/Rule.d.ts.map +1 -1
  374. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  375. package/lib/esm/presentation-common/rules/Ruleset.d.ts +3 -3
  376. package/lib/esm/presentation-common/rules/Ruleset.d.ts.map +1 -1
  377. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  378. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  379. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  380. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +2 -2
  381. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts.map +1 -1
  382. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  383. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +2 -2
  384. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts.map +1 -1
  385. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  386. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +2 -2
  387. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts.map +1 -1
  388. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  389. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +5 -12
  390. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts.map +1 -1
  391. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  392. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +2 -2
  393. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts.map +1 -1
  394. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  395. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +3 -3
  396. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts.map +1 -1
  397. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  398. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +1 -1
  399. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts.map +1 -1
  400. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  401. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +3 -3
  402. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts.map +1 -1
  403. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  404. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +6 -6
  405. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts.map +1 -1
  406. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  407. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  408. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +1 -1
  409. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  410. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  411. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  412. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +2 -2
  413. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts.map +1 -1
  414. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  415. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +6 -10
  416. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts.map +1 -1
  417. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  418. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +1 -1
  419. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts.map +1 -1
  420. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  421. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +4 -30
  422. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts.map +1 -1
  423. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +0 -14
  424. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  425. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +3 -3
  426. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  427. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  428. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +2 -2
  429. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  430. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  431. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +1 -1
  432. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts.map +1 -1
  433. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  434. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +6 -6
  435. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  436. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  437. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +3 -1
  438. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts.map +1 -1
  439. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  440. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +2 -2
  441. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts.map +1 -1
  442. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  443. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +2 -11
  444. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts.map +1 -1
  445. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  446. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +6 -6
  447. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  448. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  449. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +1 -1
  450. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts.map +1 -1
  451. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  452. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +2 -2
  453. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts.map +1 -1
  454. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  455. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +1 -1
  456. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts.map +1 -1
  457. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  458. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +2 -2
  459. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts.map +1 -1
  460. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  461. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +3 -0
  462. package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  463. package/lib/esm/presentation-common/selection/SelectionScope.js +1 -0
  464. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  465. package/lib/esm/presentation-common-internal.d.ts +10 -0
  466. package/lib/esm/presentation-common-internal.d.ts.map +1 -0
  467. package/lib/esm/presentation-common-internal.js +16 -0
  468. package/lib/esm/presentation-common-internal.js.map +1 -0
  469. package/lib/esm/presentation-common.d.ts +68 -77
  470. package/lib/esm/presentation-common.d.ts.map +1 -1
  471. package/lib/esm/presentation-common.js +60 -89
  472. package/lib/esm/presentation-common.js.map +1 -1
  473. package/lib/public/locales/en/Presentation.json +19 -19
  474. package/package.json +48 -37
  475. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +0 -45
  476. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts.map +0 -1
  477. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +0 -10
  478. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +0 -1
  479. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +0 -30
  480. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts.map +0 -1
  481. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +0 -10
  482. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +0 -1
  483. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +0 -41
  484. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts.map +0 -1
  485. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +0 -10
  486. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +0 -1
  487. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +0 -49
  488. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts.map +0 -1
  489. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +0 -10
  490. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +0 -1
  491. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +0 -45
  492. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts.map +0 -1
  493. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +0 -9
  494. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +0 -1
  495. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +0 -30
  496. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts.map +0 -1
  497. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +0 -9
  498. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +0 -1
  499. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +0 -41
  500. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts.map +0 -1
  501. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +0 -9
  502. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +0 -1
  503. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +0 -49
  504. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts.map +0 -1
  505. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +0 -9
  506. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +0 -1
  507. /package/lib/{cjs/assets → assets}/locales/en-PSEUDO/Presentation.json +0 -0
@@ -1,21 +1,22 @@
1
1
  /** @packageDocumentation
2
2
  * @module Core
3
3
  */
4
- import { IDisposable } from "@itwin/core-bentley";
5
- import { Rule } from "./rules/Rule";
6
- import { Ruleset, SupplementationInfo } from "./rules/Ruleset";
7
- import { VariablesGroup } from "./rules/Variables";
4
+ import { Rule } from "./rules/Rule.js";
5
+ import { Ruleset, SupplementationInfo } from "./rules/Ruleset.js";
6
+ import { VariablesGroup } from "./rules/Variables.js";
8
7
  /**
9
8
  * A ruleset that is registered in a ruleset manager.
10
9
  * @public
11
10
  */
12
- export declare class RegisteredRuleset implements IDisposable, Ruleset {
11
+ export declare class RegisteredRuleset implements Disposable, Ruleset {
13
12
  private _ruleset;
14
13
  private _uniqueIdentifier;
15
14
  private _disposeFunc;
16
15
  /** Create a registered ruleset */
17
16
  constructor(ruleset: Ruleset, uniqueIdentifier: string, disposeFunc: (ruleset: RegisteredRuleset) => void);
18
17
  /** Dispose registered ruleset. */
18
+ [Symbol.dispose](): void;
19
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
19
20
  dispose(): void;
20
21
  get uniqueIdentifier(): string;
21
22
  get id(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"RegisteredRuleset.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RegisteredRuleset.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,WAAW,EAAE,OAAO;IAC5D,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,YAAY,CAAuC;IAE3D,kCAAkC;gBACf,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI;IAMhH,kCAAkC;IAC3B,OAAO;IAId,IAAW,gBAAgB,WAE1B;IACD,IAAW,EAAE,IAAI,MAAM,CAEtB;IACD,IAAW,mBAAmB,IAAI,mBAAmB,GAAG,SAAS,CAEhE;IACD,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IACD,IAAW,IAAI,IAAI,cAAc,EAAE,GAAG,SAAS,CAE9C;IACM,MAAM,IAAI,OAAO;CAGzB"}
1
+ {"version":3,"file":"RegisteredRuleset.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RegisteredRuleset.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,UAAU,EAAE,OAAO;IAC3D,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,YAAY,CAAuC;IAE3D,kCAAkC;gBACf,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI;IAMhH,kCAAkC;IAC3B,CAAC,MAAM,CAAC,OAAO,CAAC;IAIvB,uDAAuD;IAEhD,OAAO;IAId,IAAW,gBAAgB,WAE1B;IACD,IAAW,EAAE,IAAI,MAAM,CAEtB;IACD,IAAW,mBAAmB,IAAI,mBAAmB,GAAG,SAAS,CAEhE;IACD,IAAW,KAAK,IAAI,IAAI,EAAE,CAEzB;IACD,IAAW,IAAI,IAAI,cAAc,EAAE,GAAG,SAAS,CAE9C;IACM,MAAM,IAAI,OAAO;CAGzB"}
@@ -10,6 +10,9 @@
10
10
  * @public
11
11
  */
12
12
  export class RegisteredRuleset {
13
+ _ruleset;
14
+ _uniqueIdentifier;
15
+ _disposeFunc;
13
16
  /** Create a registered ruleset */
14
17
  constructor(ruleset, uniqueIdentifier, disposeFunc) {
15
18
  this._disposeFunc = disposeFunc;
@@ -17,9 +20,14 @@ export class RegisteredRuleset {
17
20
  this._uniqueIdentifier = uniqueIdentifier;
18
21
  }
19
22
  /** Dispose registered ruleset. */
20
- dispose() {
23
+ [Symbol.dispose]() {
21
24
  this._disposeFunc(this);
22
25
  }
26
+ /** @deprecated in 5.0 Use [Symbol.dispose] instead. */
27
+ /* c8 ignore next 3 */
28
+ dispose() {
29
+ this[Symbol.dispose]();
30
+ }
23
31
  get uniqueIdentifier() {
24
32
  return this._uniqueIdentifier;
25
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RegisteredRuleset.js","sourceRoot":"","sources":["../../../src/presentation-common/RegisteredRuleset.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAOH;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAK5B,kCAAkC;IAClC,YAAmB,OAAgB,EAAE,gBAAwB,EAAE,WAAiD;QAC9G,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAC3B,OAAO;QACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3C,CAAC;IACD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IACM,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","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 Core\r\n */\r\n\r\nimport { IDisposable } from \"@itwin/core-bentley\";\r\nimport { Rule } from \"./rules/Rule\";\r\nimport { Ruleset, SupplementationInfo } from \"./rules/Ruleset\";\r\nimport { VariablesGroup } from \"./rules/Variables\";\r\n\r\n/**\r\n * A ruleset that is registered in a ruleset manager.\r\n * @public\r\n */\r\nexport class RegisteredRuleset implements IDisposable, Ruleset {\r\n private _ruleset: Ruleset;\r\n private _uniqueIdentifier: string;\r\n private _disposeFunc: (ruleset: RegisteredRuleset) => void;\r\n\r\n /** Create a registered ruleset */\r\n public constructor(ruleset: Ruleset, uniqueIdentifier: string, disposeFunc: (ruleset: RegisteredRuleset) => void) {\r\n this._disposeFunc = disposeFunc;\r\n this._ruleset = ruleset;\r\n this._uniqueIdentifier = uniqueIdentifier;\r\n }\r\n\r\n /** Dispose registered ruleset. */\r\n public dispose() {\r\n this._disposeFunc(this);\r\n }\r\n\r\n public get uniqueIdentifier() {\r\n return this._uniqueIdentifier;\r\n }\r\n public get id(): string {\r\n return this._ruleset.id;\r\n }\r\n public get supplementationInfo(): SupplementationInfo | undefined {\r\n return this._ruleset.supplementationInfo;\r\n }\r\n public get rules(): Rule[] {\r\n return this._ruleset.rules;\r\n }\r\n public get vars(): VariablesGroup[] | undefined {\r\n return this._ruleset.vars;\r\n }\r\n public toJSON(): Ruleset {\r\n return this._ruleset;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RegisteredRuleset.js","sourceRoot":"","sources":["../../../src/presentation-common/RegisteredRuleset.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAMH;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACpB,QAAQ,CAAU;IAClB,iBAAiB,CAAS;IAC1B,YAAY,CAAuC;IAE3D,kCAAkC;IAClC,YAAmB,OAAgB,EAAE,gBAAwB,EAAE,WAAiD;QAC9G,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAC3B,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,uDAAuD;IACvD,sBAAsB;IACf,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3C,CAAC;IACD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IACM,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","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 Core\n */\n\nimport { Rule } from \"./rules/Rule.js\";\nimport { Ruleset, SupplementationInfo } from \"./rules/Ruleset.js\";\nimport { VariablesGroup } from \"./rules/Variables.js\";\n\n/**\n * A ruleset that is registered in a ruleset manager.\n * @public\n */\nexport class RegisteredRuleset implements Disposable, Ruleset {\n private _ruleset: Ruleset;\n private _uniqueIdentifier: string;\n private _disposeFunc: (ruleset: RegisteredRuleset) => void;\n\n /** Create a registered ruleset */\n public constructor(ruleset: Ruleset, uniqueIdentifier: string, disposeFunc: (ruleset: RegisteredRuleset) => void) {\n this._disposeFunc = disposeFunc;\n this._ruleset = ruleset;\n this._uniqueIdentifier = uniqueIdentifier;\n }\n\n /** Dispose registered ruleset. */\n public [Symbol.dispose]() {\n this._disposeFunc(this);\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n /* c8 ignore next 3 */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n public get uniqueIdentifier() {\n return this._uniqueIdentifier;\n }\n public get id(): string {\n return this._ruleset.id;\n }\n public get supplementationInfo(): SupplementationInfo | undefined {\n return this._ruleset.supplementationInfo;\n }\n public get rules(): Rule[] {\n return this._ruleset.rules;\n }\n public get vars(): VariablesGroup[] | undefined {\n return this._ruleset.vars;\n }\n public toJSON(): Ruleset {\n return this._ruleset;\n }\n}\n"]}
@@ -2,21 +2,21 @@
2
2
  * @module RPC
3
3
  */
4
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 { NodeKey } from "./hierarchy/Key";
11
- import { NodeJSON } from "./hierarchy/Node";
12
- import { NodePathElementJSON } from "./hierarchy/NodePathElement";
13
- import { KeySetJSON } from "./KeySet";
14
- import { LabelDefinition } from "./LabelDefinition";
15
- import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions } from "./PresentationManagerOptions";
16
- import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface";
17
- import { RulesetVariableJSON } from "./RulesetVariables";
18
- import { SelectionScope } from "./selection/SelectionScope";
19
- import { PagedResponse } from "./Utils";
5
+ import { DescriptorJSON, DescriptorOverrides } from "./content/Descriptor.js";
6
+ import { ItemJSON } from "./content/Item.js";
7
+ import { ClientDiagnosticsAttribute } from "./Diagnostics.js";
8
+ import { InstanceKey } from "./EC.js";
9
+ import { NodeKey } from "./hierarchy/Key.js";
10
+ import { Node } from "./hierarchy/Node.js";
11
+ import { KeySetJSON } from "./KeySet.js";
12
+ import { LabelDefinition } from "./LabelDefinition.js";
13
+ import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions, Paged, RequestOptions, SelectionScopeRequestOptions } from "./PresentationManagerOptions.js";
14
+ import { ContentSourcesRpcResult, PresentationRpcRequestOptions, PresentationRpcResponse } from "./PresentationRpcInterface.js";
15
+ import { RulesetVariableJSON } from "./RulesetVariables.js";
16
+ import { SelectionScope } from "./selection/SelectionScope.js";
17
+ import { PagedResponse } from "./Utils.js";
18
+ import { NodePathElement } from "./hierarchy/NodePathElement.js";
19
+ import { DisplayValueGroup } from "./content/Value.js";
20
20
  /**
21
21
  * Configuration parameters for [[RpcRequestsHandler]].
22
22
  *
@@ -48,18 +48,15 @@ export declare class RpcRequestsHandler {
48
48
  private get rpcClient();
49
49
  private requestWithTimeout;
50
50
  /**
51
- * Send the request to backend.
52
- *
53
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
54
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
55
- * is thrown with the details from the response.
51
+ * Send the request to backend. We'll wait for the response for `this.timeout` ms, and if we don't get the response by
52
+ * then, we'll throw an error.
56
53
  */
57
54
  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>;
58
55
  getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
59
- getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>>;
56
+ getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<Node>>;
60
57
  getNodesDescriptor(options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
61
- getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
62
- getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]>;
58
+ getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElement[]>;
59
+ getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElement[]>;
63
60
  getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult>;
64
61
  getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined>;
65
62
  getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number>;
@@ -68,7 +65,7 @@ export declare class RpcRequestsHandler {
68
65
  contentSet: PagedResponse<ItemJSON>;
69
66
  } | undefined>;
70
67
  getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>): Promise<PagedResponse<ItemJSON>>;
71
- getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>>;
68
+ getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroup>>;
72
69
  getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{
73
70
  total: number;
74
71
  items: KeySetJSON;
@@ -1 +1 @@
1
- {"version":3,"file":"RpcRequestsHandler.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RpcRequestsHandler.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,12 @@
5
5
  /** @packageDocumentation
6
6
  * @module RPC
7
7
  */
8
- import { BeDuration, BeTimePoint, Guid, Logger } from "@itwin/core-bentley";
9
- import { RpcManager } from "@itwin/core-common";
10
- import { PresentationCommonLoggerCategory } from "./CommonLoggerCategory";
11
- import { PresentationError, PresentationStatus } from "./Error";
12
- import { PresentationRpcInterface } from "./PresentationRpcInterface";
8
+ import { Guid, Logger } from "@itwin/core-bentley";
9
+ import { RpcManager, RpcRequest } from "@itwin/core-common";
10
+ import { PresentationCommonLoggerCategory } from "./CommonLoggerCategory.js";
11
+ import { PresentationError, PresentationStatus } from "./Error.js";
12
+ import { PresentationRpcInterface } from "./PresentationRpcInterface.js";
13
+ import { createCancellableTimeoutPromise } from "./Utils.js";
13
14
  /**
14
15
  * Default timeout for how long we're going to wait for RPC request to be fulfilled before throwing
15
16
  * a timeout error.
@@ -23,6 +24,10 @@ const DEFAULT_REQUEST_TIMEOUT = 10 * 60 * 1000; // 10 minutes
23
24
  * @internal
24
25
  */
25
26
  export class RpcRequestsHandler {
27
+ /** Timeout for how long the handler going to wait for RPC request to be fulfilled before throwing a timeout error. */
28
+ timeout;
29
+ /** ID that identifies this handler as a client */
30
+ clientId;
26
31
  constructor(props) {
27
32
  this.clientId = props?.clientId ?? Guid.createValue();
28
33
  this.timeout = props?.timeout ?? DEFAULT_REQUEST_TIMEOUT;
@@ -32,34 +37,37 @@ export class RpcRequestsHandler {
32
37
  return RpcManager.getClientForInterface(PresentationRpcInterface);
33
38
  }
34
39
  async requestWithTimeout(func, diagnosticsHandler) {
35
- const start = BeTimePoint.now();
36
- const timeout = BeDuration.fromMilliseconds(this.timeout);
37
- let diagnostics;
38
- while (start.plus(timeout).isInFuture) {
39
- try {
40
- const response = await func();
41
- diagnostics = response.diagnostics;
42
- switch (response.statusCode) {
43
- case PresentationStatus.Success:
44
- return response.result;
45
- case PresentationStatus.BackendTimeout:
46
- break;
47
- default:
48
- throw new PresentationError(response.statusCode, response.errorMessage);
40
+ const rpcResponsePromise = func();
41
+ const rpcRequest = RpcRequest.current(this.rpcClient);
42
+ const timeout = createCancellableTimeoutPromise(this.timeout);
43
+ return Promise.race([
44
+ (async () => {
45
+ let diagnostics;
46
+ try {
47
+ const response = await rpcResponsePromise;
48
+ diagnostics = response.diagnostics;
49
+ switch (response.statusCode) {
50
+ case PresentationStatus.Success:
51
+ return response.result;
52
+ default:
53
+ throw new PresentationError(response.statusCode, response.errorMessage);
54
+ }
49
55
  }
50
- }
51
- finally {
52
- diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
53
- }
54
- }
55
- throw new PresentationError(PresentationStatus.BackendTimeout);
56
+ finally {
57
+ diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);
58
+ }
59
+ })(),
60
+ timeout.promise.then(() => {
61
+ throw new Error(`Processing the request took longer than the configured limit of ${this.timeout} ms`);
62
+ }),
63
+ ]).finally(() => {
64
+ rpcRequest?.cancel();
65
+ timeout.cancel();
66
+ });
56
67
  }
57
68
  /**
58
- * Send the request to backend.
59
- *
60
- * If the backend responds with [[PresentationStatus.BackendTimeout]], the request is repeated until we hit `timeout` or get
61
- * a response. If the response is other than [[PresentationStatus.BackendTimeout]] or [[PresentationStatus.Success]], a [[PresentationError]]
62
- * is thrown with the details from the response.
69
+ * Send the request to backend. We'll wait for the response for `this.timeout` ms, and if we don't get the response by
70
+ * then, we'll throw an error.
63
71
  */
64
72
  async request(func, options, ...additionalOptions) {
65
73
  const { imodel, diagnostics, ...optionsNoIModel } = options;
@@ -75,9 +83,11 @@ export class RpcRequestsHandler {
75
83
  rpcOptions.diagnostics = diagnosticsOptions;
76
84
  }
77
85
  const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);
78
- return this.requestWithTimeout(doRequest, diagnosticsHandler);
86
+ const result = await this.requestWithTimeout(doRequest, diagnosticsHandler);
87
+ return result;
79
88
  }
80
89
  async getNodesCount(options) {
90
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
81
91
  return this.request(this.rpcClient.getNodesCount.bind(this.rpcClient), options);
82
92
  }
83
93
  async getPagedNodes(options) {
@@ -85,6 +95,7 @@ export class RpcRequestsHandler {
85
95
  return this.request(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);
86
96
  }
87
97
  async getNodesDescriptor(options) {
98
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
88
99
  const response = await this.request(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);
89
100
  if (typeof response === "string") {
90
101
  return JSON.parse(response);
@@ -100,18 +111,24 @@ export class RpcRequestsHandler {
100
111
  return this.request(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);
101
112
  }
102
113
  async getContentSources(options) {
114
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
103
115
  return this.request(this.rpcClient.getContentSources.bind(this.rpcClient), options);
104
116
  }
105
117
  async getContentDescriptor(options) {
118
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
106
119
  return this.request(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);
107
120
  }
108
121
  async getContentSetSize(options) {
122
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
109
123
  return this.request(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);
110
124
  }
111
125
  async getPagedContent(options) {
112
- return this.request(this.rpcClient.getPagedContent.bind(this.rpcClient), options);
126
+ return this.request(
127
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
128
+ this.rpcClient.getPagedContent.bind(this.rpcClient), options);
113
129
  }
114
130
  async getPagedContentSet(options) {
131
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
115
132
  return this.request(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);
116
133
  }
117
134
  async getPagedDistinctValues(options) {
@@ -119,21 +136,23 @@ export class RpcRequestsHandler {
119
136
  return this.request(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);
120
137
  }
121
138
  async getContentInstanceKeys(options) {
139
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
122
140
  return this.request(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);
123
141
  }
124
142
  async getDisplayLabelDefinition(options) {
143
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
125
144
  return this.request(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);
126
145
  }
127
146
  async getPagedDisplayLabelDefinitions(options) {
147
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
128
148
  return this.request(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);
129
149
  }
150
+ /* eslint-disable @typescript-eslint/no-deprecated */
130
151
  async getSelectionScopes(options) {
131
152
  return this.request(this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);
132
153
  }
133
154
  async computeSelection(options) {
134
- return this.request(
135
- // eslint-disable-next-line @typescript-eslint/no-deprecated
136
- this.rpcClient.computeSelection.bind(this.rpcClient), options);
155
+ return this.request(this.rpcClient.computeSelection.bind(this.rpcClient), options);
137
156
  }
138
157
  }
139
158
  function isOptionsWithRuleset(options) {
@@ -1 +1 @@
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 { 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,\r\n ContentDescriptorRequestOptions,\r\n ContentInstanceKeysRequestOptions,\r\n ContentRequestOptions,\r\n ContentSourcesRequestOptions,\r\n DisplayLabelRequestOptions,\r\n DisplayLabelsRequestOptions,\r\n DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions,\r\n FilterByTextHierarchyRequestOptions,\r\n HierarchyLevelDescriptorRequestOptions,\r\n HierarchyRequestOptions,\r\n Paged,\r\n RequestOptions,\r\n RequestOptionsWithRuleset,\r\n SelectionScopeRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport { ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse } 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 {\r\n return RpcManager.getClientForInterface(PresentationRpcInterface);\r\n }\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:\r\n return response.result!;\r\n case PresentationStatus.BackendTimeout:\r\n break;\r\n default:\r\n 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>(this.rpcClient.getNodesCount.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getPagedNodes(\r\n options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n ): Promise<PagedResponse<NodeJSON>> {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return this.request<PagedResponse<NodeJSON>, typeof options>(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getNodesDescriptor(\r\n options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n ): Promise<DescriptorJSON | undefined> {\r\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\r\n if (typeof response === \"string\") {\r\n return JSON.parse(response);\r\n }\r\n return response;\r\n }\r\n\r\n public async getNodePaths(\r\n options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n ): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return this.request<NodePathElementJSON[], typeof options>(this.rpcClient.getNodePaths.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getFilteredNodePaths(\r\n options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n ): Promise<NodePathElementJSON[]> {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return this.request<NodePathElementJSON[], typeof options>(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>(this.rpcClient.getContentSources.bind(this.rpcClient), options);\r\n }\r\n public async getContentDescriptor(\r\n options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n ): Promise<DescriptorJSON | undefined> {\r\n return this.request<DescriptorJSON | undefined, typeof options>(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\r\n }\r\n public async getContentSetSize(\r\n options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n ): Promise<number> {\r\n return this.request<number, typeof options>(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContent(\r\n options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>,\r\n ) {\r\n return this.request<{ descriptor: DescriptorJSON; contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\r\n this.rpcClient.getPagedContent.bind(this.rpcClient),\r\n options,\r\n );\r\n }\r\n public async getPagedContentSet(\r\n options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>,\r\n ) {\r\n return this.request<PagedResponse<ItemJSON>, typeof options>(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getPagedDistinctValues(\r\n options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n ): Promise<PagedResponse<DisplayValueGroupJSON>> {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentInstanceKeys(\r\n options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\r\n ): Promise<{ total: number; items: KeySetJSON }> {\r\n return this.request<{ total: number; items: KeySetJSON }, typeof options>(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getDisplayLabelDefinition(\r\n options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute,\r\n ): Promise<LabelDefinition> {\r\n return this.request<LabelDefinition, typeof options>(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\r\n }\r\n public async getPagedDisplayLabelDefinitions(\r\n options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute,\r\n ): Promise<PagedResponse<LabelDefinition>> {\r\n return this.request<PagedResponse<LabelDefinition>, typeof options>(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>(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 @typescript-eslint/no-deprecated\r\n this.rpcClient.computeSelection.bind(this.rpcClient),\r\n options,\r\n );\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(\r\n PresentationCommonLoggerCategory.Package,\r\n `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 }\r\n\r\n return cleanedUpRuleset;\r\n}\r\n"]}
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 { Guid, Logger } from \"@itwin/core-bentley\";\nimport { IModelRpcProps, RpcManager, RpcRequest } from \"@itwin/core-common\";\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory.js\";\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor.js\";\nimport { ItemJSON } from \"./content/Item.js\";\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics.js\";\nimport { InstanceKey } from \"./EC.js\";\nimport { PresentationError, PresentationStatus } from \"./Error.js\";\nimport { NodeKey } from \"./hierarchy/Key.js\";\nimport { Node } from \"./hierarchy/Node.js\";\nimport { KeySetJSON } from \"./KeySet.js\";\nimport { LabelDefinition } from \"./LabelDefinition.js\";\nimport {\n ComputeSelectionRequestOptions,\n ContentDescriptorRequestOptions,\n ContentInstanceKeysRequestOptions,\n ContentRequestOptions,\n ContentSourcesRequestOptions,\n DisplayLabelRequestOptions,\n DisplayLabelsRequestOptions,\n DistinctValuesRequestOptions,\n FilterByInstancePathsHierarchyRequestOptions,\n FilterByTextHierarchyRequestOptions,\n HierarchyLevelDescriptorRequestOptions,\n HierarchyRequestOptions,\n Paged,\n RequestOptions,\n RequestOptionsWithRuleset,\n SelectionScopeRequestOptions,\n} from \"./PresentationManagerOptions.js\";\nimport { ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse } from \"./PresentationRpcInterface.js\";\nimport { Ruleset } from \"./rules/Ruleset.js\";\nimport { RulesetVariableJSON } from \"./RulesetVariables.js\";\nimport { SelectionScope } from \"./selection/SelectionScope.js\";\nimport { createCancellableTimeoutPromise, PagedResponse } from \"./Utils.js\";\nimport { NodePathElement } from \"./hierarchy/NodePathElement.js\";\nimport { DisplayValueGroup } from \"./content/Value.js\";\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 {\n return RpcManager.getClientForInterface(PresentationRpcInterface);\n }\n\n private async requestWithTimeout<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler): Promise<TResult> {\n const rpcResponsePromise = func();\n const rpcRequest: RpcRequest | undefined = RpcRequest.current(this.rpcClient);\n const timeout = createCancellableTimeoutPromise(this.timeout);\n return Promise.race([\n (async () => {\n let diagnostics: ClientDiagnostics | undefined;\n try {\n const response = await rpcResponsePromise;\n diagnostics = response.diagnostics;\n switch (response.statusCode) {\n case PresentationStatus.Success:\n return response.result!;\n default:\n throw new PresentationError(response.statusCode, response.errorMessage);\n }\n } finally {\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\n }\n })(),\n timeout.promise.then(() => {\n throw new Error(`Processing the request took longer than the configured limit of ${this.timeout} ms`);\n }),\n ]).finally(() => {\n rpcRequest?.cancel();\n timeout.cancel();\n });\n }\n\n /**\n * Send the request to backend. We'll wait for the response for `this.timeout` ms, and if we don't get the response by\n * then, we'll throw an error.\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 const result = await this.requestWithTimeout(doRequest, diagnosticsHandler);\n return result;\n }\n\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<number, typeof options>(this.rpcClient.getNodesCount.bind(this.rpcClient), options);\n }\n\n public async getPagedNodes(\n options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON>> & ClientDiagnosticsAttribute,\n ): Promise<PagedResponse<Node>> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<PagedResponse<Node>, typeof options>(this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\n }\n\n public async getNodesDescriptor(\n options: HierarchyLevelDescriptorRequestOptions<IModelRpcProps, NodeKey, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<DescriptorJSON | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const response = await this.request<string | DescriptorJSON | undefined, typeof options>(this.rpcClient.getNodesDescriptor.bind(this.rpcClient), options);\n if (typeof response === \"string\") {\n return JSON.parse(response);\n }\n return response;\n }\n\n public async getNodePaths(\n options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<NodePathElement[], typeof options>(this.rpcClient.getNodePaths.bind(this.rpcClient), options);\n }\n\n public async getFilteredNodePaths(\n options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<NodePathElement[], typeof options>(this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\n }\n\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<ContentSourcesRpcResult, typeof options>(this.rpcClient.getContentSources.bind(this.rpcClient), options);\n }\n public async getContentDescriptor(\n options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<DescriptorJSON | undefined> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<DescriptorJSON | undefined, typeof options>(this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\n }\n public async getContentSetSize(\n options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<number> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<number, typeof options>(this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\n }\n public async getPagedContent(\n options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>,\n ) {\n return this.request<{ descriptor: DescriptorJSON; contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.rpcClient.getPagedContent.bind(this.rpcClient),\n options,\n );\n }\n public async getPagedContentSet(\n options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<PagedResponse<ItemJSON>, typeof options>(this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\n }\n\n public async getPagedDistinctValues(\n options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<PagedResponse<DisplayValueGroup>> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<PagedResponse<DisplayValueGroup>, typeof options>(this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\n }\n\n public async getContentInstanceKeys(\n options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute,\n ): Promise<{ total: number; items: KeySetJSON }> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<{ total: number; items: KeySetJSON }, typeof options>(this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\n }\n\n public async getDisplayLabelDefinition(\n options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute,\n ): Promise<LabelDefinition> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<LabelDefinition, typeof options>(this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\n }\n public async getPagedDisplayLabelDefinitions(\n options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKey> & ClientDiagnosticsAttribute,\n ): Promise<PagedResponse<LabelDefinition>> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.request<PagedResponse<LabelDefinition>, typeof options>(this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\n }\n\n /* eslint-disable @typescript-eslint/no-deprecated */\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\n return this.request<SelectionScope[], typeof options>(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>(this.rpcClient.computeSelection.bind(this.rpcClient), options);\n }\n /* eslint-enable @typescript-eslint/no-deprecated */\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(\n PresentationCommonLoggerCategory.Package,\n `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`,\n );\n }\n }\n }\n\n return cleanedUpRuleset;\n}\n"]}
@@ -101,51 +101,6 @@ export interface RulesetVariableBaseJSON {
101
101
  type: VariableValueTypes;
102
102
  value: VariableValueJSON;
103
103
  }
104
- /**
105
- * JSON representation of [[BooleanRulesetVariable]].
106
- * @public
107
- * @deprecated in 3.x. Use [[BooleanRulesetVariable]]
108
- */
109
- export interface BooleanRulesetVariableJSON extends RulesetVariableBaseJSON {
110
- type: VariableValueTypes.Bool;
111
- value: boolean;
112
- }
113
- /**
114
- * JSON representation of [[StringRulesetVariable]].
115
- * @public
116
- * @deprecated in 3.x. Use [[StringRulesetVariable]]
117
- */
118
- export interface StringRulesetVariableJSON extends RulesetVariableBaseJSON {
119
- type: VariableValueTypes.String;
120
- value: string;
121
- }
122
- /**
123
- * JSON representation of [[IntRulesetVariable]].
124
- * @public
125
- * @deprecated in 3.x. Use [[IntRulesetVariable]]
126
- */
127
- export interface IntRulesetVariableJSON extends RulesetVariableBaseJSON {
128
- type: VariableValueTypes.Int;
129
- value: number;
130
- }
131
- /**
132
- * JSON representation of [[IntsRulesetVariable]].
133
- * @public
134
- * @deprecated in 3.x. Use [[IntsRulesetVariable]]
135
- */
136
- export interface IntsRulesetVariableJSON extends RulesetVariableBaseJSON {
137
- type: VariableValueTypes.IntArray;
138
- value: number[];
139
- }
140
- /**
141
- * JSON representation of [[Id64RulesetVariable]].
142
- * @public
143
- * @deprecated in 3.x. Use [[Id64RulesetVariable]]
144
- */
145
- export interface Id64RulesetVariableJSON extends RulesetVariableBaseJSON {
146
- type: VariableValueTypes.Id64;
147
- value: Id64String;
148
- }
149
104
  /**
150
105
  * JSON representation of [[Id64sRulesetVariable]].
151
106
  * @public
@@ -158,7 +113,7 @@ export interface Id64sRulesetVariableJSON extends RulesetVariableBaseJSON {
158
113
  * JSON representation of [[RulesetVariable]].
159
114
  * @public
160
115
  */
161
- export type RulesetVariableJSON = BooleanRulesetVariableJSON | StringRulesetVariableJSON | IntRulesetVariableJSON | IntsRulesetVariableJSON | Id64RulesetVariableJSON | Id64sRulesetVariableJSON;
116
+ export type RulesetVariableJSON = BooleanRulesetVariable | StringRulesetVariable | IntRulesetVariable | IntsRulesetVariable | Id64RulesetVariable | Id64sRulesetVariableJSON;
162
117
  /** @public */
163
118
  export declare namespace RulesetVariable {
164
119
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"RulesetVariables.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RulesetVariables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RulesetVariables.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RulesetVariables.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,oBAAoB;IACpB,GAAG,QAAQ;IAEX,8BAA8B;IAC9B,QAAQ,UAAU;IAElB,oBAAoB;IACpB,IAAI,SAAS;IAEb,mBAAmB;IACnB,MAAM,WAAW;IAEjB,uBAAuB;IACvB,IAAI,SAAS;IAEb,iCAAiC;IACjC,SAAS,WAAW;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;AAE7F;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,iBAAiB,CAAC;AAErH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;CACtB;AACD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;CAChB;AACD;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AACD;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;IAC9B,KAAK,EAAE,UAAU,CAAC;CACnB;AACD;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AACD;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AACD;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACnC,KAAK,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC;CACzC;AACD;;;GAGG;AAEH,MAAM,MAAM,mBAAmB,GAC3B,sBAAsB,GACtB,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,wBAAwB,CAAC;AAE7B,cAAc;AAEd,yBAAiB,eAAe,CAAC;IAC/B;;;OAGG;IACH,SAAgB,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,mBAAmB,CAKrE;IAED,iDAAiD;IACjD,SAAgB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAQnE;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RulesetVariables.js","sourceRoot":"","sources":["../../../src/presentation-common/RulesetVariables.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAC5B,oBAAoB;IACpB,iCAAW,CAAA;IAEX,8BAA8B;IAC9B,wCAAkB,CAAA;IAElB,oBAAoB;IACpB,mCAAa,CAAA;IAEb,mBAAmB;IACnB,uCAAiB,CAAA;IAEjB,uBAAuB;IACvB,mCAAa,CAAA;IAEb,iCAAiC;IACjC,0CAAoB,CAAA;AACtB,CAAC,EAlBW,kBAAkB,KAAlB,kBAAkB,QAkB7B;AA8JD,cAAc;AACd,2DAA2D;AAC3D,MAAM,KAAW,eAAe,CAsB/B;AAtBD,WAAiB,eAAe;IAC9B;;;OAGG;IACH,SAAgB,MAAM,CAAC,QAAyB;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IALe,sBAAM,SAKrB,CAAA;IAED,iDAAiD;IACjD,SAAgB,QAAQ,CAAC,IAAyB;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3E,CAAC;YACD,OAAO,IAAW,CAAC,CAAC,kFAAkF;QACxG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IARe,wBAAQ,WAQvB,CAAA;AACH,CAAC,EAtBgB,eAAe,KAAf,eAAe,QAsB/B","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 Core\r\n */\r\n\r\nimport { CompressedId64Set, Id64String } from \"@itwin/core-bentley\";\r\n\r\n/**\r\n * Possible variable value types\r\n * @public\r\n */\r\nexport enum VariableValueTypes {\r\n /** Integer value */\r\n Int = \"int\",\r\n\r\n /** Array of integer values */\r\n IntArray = \"int[]\",\r\n\r\n /** Boolean value */\r\n Bool = \"bool\",\r\n\r\n /** String value */\r\n String = \"string\",\r\n\r\n /** Id64String value */\r\n Id64 = \"id64\",\r\n\r\n /** Array of Id64String values */\r\n Id64Array = \"id64[]\",\r\n}\r\n\r\n/**\r\n * Union of all supported variable value types\r\n * @public\r\n */\r\nexport type VariableValue = boolean | string | number | number[] | Id64String | Id64String[];\r\n\r\n/**\r\n * JSON representation of [[VariableValue]]\r\n * @public\r\n */\r\nexport type VariableValueJSON = boolean | string | number | number[] | Id64String | Id64String[] | CompressedId64Set;\r\n\r\n/**\r\n * Base data structure for representing ruleset variables.\r\n * @public\r\n */\r\nexport interface RulesetVariableBase {\r\n id: string;\r\n type: VariableValueTypes;\r\n value: VariableValue;\r\n}\r\n/**\r\n * Data structure for representing boolean ruleset variables.\r\n * @public\r\n */\r\nexport interface BooleanRulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.Bool;\r\n value: boolean;\r\n}\r\n/**\r\n * Data structure for representing string ruleset variables.\r\n * @public\r\n */\r\nexport interface StringRulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.String;\r\n value: string;\r\n}\r\n/**\r\n * Data structure for representing int ruleset variables.\r\n * @public\r\n */\r\nexport interface IntRulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.Int;\r\n value: number;\r\n}\r\n/**\r\n * Data structure for representing int array ruleset variables.\r\n * @public\r\n */\r\nexport interface IntsRulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.IntArray;\r\n value: number[];\r\n}\r\n/**\r\n * Data structure for representing ID ruleset variables.\r\n * @public\r\n */\r\nexport interface Id64RulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.Id64;\r\n value: Id64String;\r\n}\r\n/**\r\n * Data structure for representing ID array ruleset variables.\r\n * @public\r\n */\r\nexport interface Id64sRulesetVariable extends RulesetVariableBase {\r\n type: VariableValueTypes.Id64Array;\r\n value: Id64String[];\r\n}\r\n/**\r\n * Data structure for representing ruleset variables.\r\n * @public\r\n */\r\nexport type RulesetVariable =\r\n | BooleanRulesetVariable\r\n | StringRulesetVariable\r\n | IntRulesetVariable\r\n | IntsRulesetVariable\r\n | Id64RulesetVariable\r\n | Id64sRulesetVariable;\r\n\r\n/**\r\n * JSON representation of [[RulesetVariableBase]].\r\n * @public\r\n */\r\nexport interface RulesetVariableBaseJSON {\r\n id: string;\r\n type: VariableValueTypes;\r\n value: VariableValueJSON;\r\n}\r\n/**\r\n * JSON representation of [[BooleanRulesetVariable]].\r\n * @public\r\n * @deprecated in 3.x. Use [[BooleanRulesetVariable]]\r\n */\r\nexport interface BooleanRulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.Bool;\r\n value: boolean;\r\n}\r\n/**\r\n * JSON representation of [[StringRulesetVariable]].\r\n * @public\r\n * @deprecated in 3.x. Use [[StringRulesetVariable]]\r\n */\r\nexport interface StringRulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.String;\r\n value: string;\r\n}\r\n/**\r\n * JSON representation of [[IntRulesetVariable]].\r\n * @public\r\n * @deprecated in 3.x. Use [[IntRulesetVariable]]\r\n */\r\nexport interface IntRulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.Int;\r\n value: number;\r\n}\r\n/**\r\n * JSON representation of [[IntsRulesetVariable]].\r\n * @public\r\n * @deprecated in 3.x. Use [[IntsRulesetVariable]]\r\n */\r\nexport interface IntsRulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.IntArray;\r\n value: number[];\r\n}\r\n/**\r\n * JSON representation of [[Id64RulesetVariable]].\r\n * @public\r\n * @deprecated in 3.x. Use [[Id64RulesetVariable]]\r\n */\r\nexport interface Id64RulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.Id64;\r\n value: Id64String;\r\n}\r\n/**\r\n * JSON representation of [[Id64sRulesetVariable]].\r\n * @public\r\n */\r\nexport interface Id64sRulesetVariableJSON extends RulesetVariableBaseJSON {\r\n type: VariableValueTypes.Id64Array;\r\n value: Id64String[] | CompressedId64Set;\r\n}\r\n/**\r\n * JSON representation of [[RulesetVariable]].\r\n * @public\r\n */\r\n\r\nexport type RulesetVariableJSON =\r\n | BooleanRulesetVariableJSON // eslint-disable-line @typescript-eslint/no-deprecated\r\n | StringRulesetVariableJSON // eslint-disable-line @typescript-eslint/no-deprecated\r\n | IntRulesetVariableJSON // eslint-disable-line @typescript-eslint/no-deprecated\r\n | IntsRulesetVariableJSON // eslint-disable-line @typescript-eslint/no-deprecated\r\n | Id64RulesetVariableJSON // eslint-disable-line @typescript-eslint/no-deprecated\r\n | Id64sRulesetVariableJSON;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace RulesetVariable {\r\n /**\r\n * Serialize given RulesetVariable to JSON.\r\n * Note: In case of [[Id64sRulesetVariable]], this method expects IDs are sorted. See [[OrderedId64Iterable.sortArray]].\r\n */\r\n export function toJSON(variable: RulesetVariable): RulesetVariableJSON {\r\n if (variable.type === VariableValueTypes.Id64Array) {\r\n return { ...variable, value: CompressedId64Set.compressArray(variable.value) };\r\n }\r\n return variable;\r\n }\r\n\r\n /** Deserialize [[RulesetVariable]] from JSON. */\r\n export function fromJSON(json: RulesetVariableJSON): RulesetVariable {\r\n if (json.type === VariableValueTypes.Id64Array) {\r\n if (typeof json.value === \"string\") {\r\n return { ...json, value: CompressedId64Set.decompressArray(json.value) };\r\n }\r\n return json as any; // for some reason TS doesn't understand that `json.value` is always an array here\r\n }\r\n return json;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RulesetVariables.js","sourceRoot":"","sources":["../../../src/presentation-common/RulesetVariables.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAC5B,oBAAoB;IACpB,iCAAW,CAAA;IAEX,8BAA8B;IAC9B,wCAAkB,CAAA;IAElB,oBAAoB;IACpB,mCAAa,CAAA;IAEb,mBAAmB;IACnB,uCAAiB,CAAA;IAEjB,uBAAuB;IACvB,mCAAa,CAAA;IAEb,iCAAiC;IACjC,0CAAoB,CAAA;AACtB,CAAC,EAlBW,kBAAkB,KAAlB,kBAAkB,QAkB7B;AAiHD,cAAc;AACd,2DAA2D;AAC3D,MAAM,KAAW,eAAe,CAsB/B;AAtBD,WAAiB,eAAe;IAC9B;;;OAGG;IACH,SAAgB,MAAM,CAAC,QAAyB;QAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IALe,sBAAM,SAKrB,CAAA;IAED,iDAAiD;IACjD,SAAgB,QAAQ,CAAC,IAAyB;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3E,CAAC;YACD,OAAO,IAAW,CAAC,CAAC,kFAAkF;QACxG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IARe,wBAAQ,WAQvB,CAAA;AACH,CAAC,EAtBgB,eAAe,KAAf,eAAe,QAsB/B","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 Core\n */\n\nimport { CompressedId64Set, Id64String } from \"@itwin/core-bentley\";\n\n/**\n * Possible variable value types\n * @public\n */\nexport enum VariableValueTypes {\n /** Integer value */\n Int = \"int\",\n\n /** Array of integer values */\n IntArray = \"int[]\",\n\n /** Boolean value */\n Bool = \"bool\",\n\n /** String value */\n String = \"string\",\n\n /** Id64String value */\n Id64 = \"id64\",\n\n /** Array of Id64String values */\n Id64Array = \"id64[]\",\n}\n\n/**\n * Union of all supported variable value types\n * @public\n */\nexport type VariableValue = boolean | string | number | number[] | Id64String | Id64String[];\n\n/**\n * JSON representation of [[VariableValue]]\n * @public\n */\nexport type VariableValueJSON = boolean | string | number | number[] | Id64String | Id64String[] | CompressedId64Set;\n\n/**\n * Base data structure for representing ruleset variables.\n * @public\n */\nexport interface RulesetVariableBase {\n id: string;\n type: VariableValueTypes;\n value: VariableValue;\n}\n/**\n * Data structure for representing boolean ruleset variables.\n * @public\n */\nexport interface BooleanRulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.Bool;\n value: boolean;\n}\n/**\n * Data structure for representing string ruleset variables.\n * @public\n */\nexport interface StringRulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.String;\n value: string;\n}\n/**\n * Data structure for representing int ruleset variables.\n * @public\n */\nexport interface IntRulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.Int;\n value: number;\n}\n/**\n * Data structure for representing int array ruleset variables.\n * @public\n */\nexport interface IntsRulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.IntArray;\n value: number[];\n}\n/**\n * Data structure for representing ID ruleset variables.\n * @public\n */\nexport interface Id64RulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.Id64;\n value: Id64String;\n}\n/**\n * Data structure for representing ID array ruleset variables.\n * @public\n */\nexport interface Id64sRulesetVariable extends RulesetVariableBase {\n type: VariableValueTypes.Id64Array;\n value: Id64String[];\n}\n/**\n * Data structure for representing ruleset variables.\n * @public\n */\nexport type RulesetVariable =\n | BooleanRulesetVariable\n | StringRulesetVariable\n | IntRulesetVariable\n | IntsRulesetVariable\n | Id64RulesetVariable\n | Id64sRulesetVariable;\n\n/**\n * JSON representation of [[RulesetVariableBase]].\n * @public\n */\nexport interface RulesetVariableBaseJSON {\n id: string;\n type: VariableValueTypes;\n value: VariableValueJSON;\n}\n/**\n * JSON representation of [[Id64sRulesetVariable]].\n * @public\n */\nexport interface Id64sRulesetVariableJSON extends RulesetVariableBaseJSON {\n type: VariableValueTypes.Id64Array;\n value: Id64String[] | CompressedId64Set;\n}\n/**\n * JSON representation of [[RulesetVariable]].\n * @public\n */\n\nexport type RulesetVariableJSON =\n | BooleanRulesetVariable\n | StringRulesetVariable\n | IntRulesetVariable\n | IntsRulesetVariable\n | Id64RulesetVariable\n | Id64sRulesetVariableJSON;\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace RulesetVariable {\n /**\n * Serialize given RulesetVariable to JSON.\n * Note: In case of [[Id64sRulesetVariable]], this method expects IDs are sorted. See [[OrderedId64Iterable.sortArray]].\n */\n export function toJSON(variable: RulesetVariable): RulesetVariableJSON {\n if (variable.type === VariableValueTypes.Id64Array) {\n return { ...variable, value: CompressedId64Set.compressArray(variable.value) };\n }\n return variable;\n }\n\n /** Deserialize [[RulesetVariable]] from JSON. */\n export function fromJSON(json: RulesetVariableJSON): RulesetVariable {\n if (json.type === VariableValueTypes.Id64Array) {\n if (typeof json.value === \"string\") {\n return { ...json, value: CompressedId64Set.decompressArray(json.value) };\n }\n return json as any; // for some reason TS doesn't understand that `json.value` is always an array here\n }\n return json;\n }\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  /** @packageDocumentation
2
2
  * @module Core
3
3
  */
4
- import { Field } from "./content/Fields";
5
- import { Item } from "./content/Item";
6
- import { InstanceKey } from "./EC";
7
- import { Ruleset } from "./rules/Ruleset";
4
+ import { Field } from "./content/Fields.js";
5
+ import { Item } from "./content/Item.js";
6
+ import { InstanceKey } from "./EC.js";
7
+ import { Ruleset } from "./rules/Ruleset.js";
8
8
  /**
9
9
  * A factory class that can be used to create presentation rulesets targeted towards
10
10
  * specific use cases.
@@ -1 +1 @@
1
- {"version":3,"file":"RulesetsFactory.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RulesetsFactory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAmB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,EAAa,WAAW,EAAoB,MAAM,MAAM,CAAC;AAMhE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,iCAAiC;IAsCzC;;;;;;;OAOG;IACU,6BAA6B,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,IAAI,EACZ,mBAAmB,CAAC,EAAE,2BAA2B,GAChD,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAKtD;AAED;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAOjI;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;AAGjG,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"RulesetsFactory.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/RulesetsFactory.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAa,WAAW,EAAoB,MAAM,SAAS,CAAC;AAMnE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,iCAAiC;IAsCzC;;;;;;;OAOG;IACU,6BAA6B,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,IAAI,EACZ,mBAAmB,CAAC,EAAE,2BAA2B,GAChD,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAKtD;AAED;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAOjI;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;AAGjG,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -6,12 +6,12 @@
6
6
  * @module Core
7
7
  */
8
8
  import { Guid, Id64 } from "@itwin/core-bentley";
9
- import { PropertyValueFormat } from "./content/TypeDescription";
10
- import { Value } from "./content/Value";
11
- import { RelationshipPath } from "./EC";
12
- import { ContentSpecificationTypes } from "./rules/content/ContentSpecification";
13
- import { RelationshipDirection } from "./rules/RelationshipDirection";
14
- import { RuleTypes } from "./rules/Rule";
9
+ import { PropertyValueFormat } from "./content/TypeDescription.js";
10
+ import { Value } from "./content/Value.js";
11
+ import { RelationshipPath } from "./EC.js";
12
+ import { ContentSpecificationTypes } from "./rules/content/ContentSpecification.js";
13
+ import { RelationshipDirection } from "./rules/RelationshipDirection.js";
14
+ import { RuleTypes } from "./rules/Rule.js";
15
15
  /**
16
16
  * A factory class that can be used to create presentation rulesets targeted towards
17
17
  * specific use cases.