@itwin/presentation-common 4.0.0-dev.6 → 4.0.0-dev.60

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 (414) hide show
  1. package/CHANGELOG.md +20 -2
  2. package/lib/cjs/assets/locales/en/Presentation.json +15 -0
  3. package/lib/cjs/assets/locales/en-PSEUDO/Presentation.json +15 -0
  4. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  5. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  6. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  8. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  9. package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
  10. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  11. package/lib/cjs/presentation-common/EC.d.ts +350 -350
  12. package/lib/cjs/presentation-common/EC.d.ts.map +1 -1
  13. package/lib/cjs/presentation-common/EC.js +290 -290
  14. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  15. package/lib/cjs/presentation-common/ElementProperties.d.ts.map +1 -1
  16. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  17. package/lib/cjs/presentation-common/Error.d.ts +47 -45
  18. package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
  19. package/lib/cjs/presentation-common/Error.js +64 -62
  20. package/lib/cjs/presentation-common/Error.js.map +1 -1
  21. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  22. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  24. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  25. package/lib/cjs/presentation-common/KeySet.d.ts.map +1 -1
  26. package/lib/cjs/presentation-common/KeySet.js +428 -428
  27. package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -87
  28. package/lib/cjs/presentation-common/LabelDefinition.d.ts.map +1 -1
  29. package/lib/cjs/presentation-common/LabelDefinition.js +78 -73
  30. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  31. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  32. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  33. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  34. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  35. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +273 -261
  36. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  37. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  38. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  39. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
  40. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  41. package/lib/cjs/presentation-common/PresentationRpcInterface.js +108 -104
  42. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  43. package/lib/cjs/presentation-common/PropertyFormatter.d.ts +31 -0
  44. package/lib/cjs/presentation-common/PropertyFormatter.d.ts.map +1 -0
  45. package/lib/cjs/presentation-common/PropertyFormatter.js +199 -0
  46. package/lib/cjs/presentation-common/PropertyFormatter.js.map +1 -0
  47. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  48. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  49. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -83
  50. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  51. package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -171
  52. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  53. package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
  54. package/lib/cjs/presentation-common/RulesetVariables.d.ts.map +1 -1
  55. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  56. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  57. package/lib/cjs/presentation-common/RulesetsFactory.d.ts.map +1 -1
  58. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  59. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  60. package/lib/cjs/presentation-common/Update.d.ts +213 -213
  61. package/lib/cjs/presentation-common/Update.d.ts.map +1 -1
  62. package/lib/cjs/presentation-common/Update.js +226 -226
  63. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  64. package/lib/cjs/presentation-common/Utils.d.ts.map +1 -1
  65. package/lib/cjs/presentation-common/Utils.js +43 -43
  66. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  67. package/lib/cjs/presentation-common/content/Category.js +48 -48
  68. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  69. package/lib/cjs/presentation-common/content/Content.js +56 -56
  70. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
  71. package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -439
  72. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  73. package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
  74. package/lib/cjs/presentation-common/content/Descriptor.js +191 -193
  75. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  76. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  77. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  78. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  79. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  80. package/lib/cjs/presentation-common/content/Fields.d.ts +298 -301
  81. package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
  82. package/lib/cjs/presentation-common/content/Fields.js +393 -397
  83. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  84. package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
  85. package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
  86. package/lib/cjs/presentation-common/content/Item.js +84 -84
  87. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  88. package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
  89. package/lib/cjs/presentation-common/content/Property.d.ts.map +1 -1
  90. package/lib/cjs/presentation-common/content/Property.js +40 -40
  91. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  92. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  93. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  94. package/lib/cjs/presentation-common/content/TypeDescription.d.ts.map +1 -1
  95. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  96. package/lib/cjs/presentation-common/content/Value.d.ts +189 -189
  97. package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
  98. package/lib/cjs/presentation-common/content/Value.js +273 -273
  99. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  100. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
  101. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
  102. package/lib/cjs/presentation-common/hierarchy/Key.d.ts.map +1 -1
  103. package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
  104. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  105. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
  106. package/lib/cjs/presentation-common/hierarchy/Node.d.ts.map +1 -1
  107. package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
  108. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  109. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  110. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
  111. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  112. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  113. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  114. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  115. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  116. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  117. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  118. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  119. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  120. package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
  121. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  122. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
  123. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  124. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  125. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  126. package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
  127. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  128. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  129. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  130. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  131. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  132. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  133. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  134. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  135. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  136. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  137. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  138. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  139. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  140. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  141. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  142. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  143. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  144. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  145. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  146. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  147. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  148. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  149. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  150. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  151. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  152. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  153. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  154. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  155. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  156. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  157. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  158. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  159. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  160. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  161. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  162. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  163. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  164. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  165. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  166. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  167. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  168. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  169. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  170. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  171. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  172. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  173. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  174. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  175. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  176. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  177. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  178. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  179. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
  180. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  181. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  182. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  183. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  184. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  185. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  186. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  187. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  188. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  189. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  190. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  191. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  192. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  193. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  194. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  195. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  196. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  197. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
  198. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  199. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  200. package/lib/cjs/presentation-common.d.ts +113 -112
  201. package/lib/cjs/presentation-common.d.ts.map +1 -1
  202. package/lib/cjs/presentation-common.js +133 -128
  203. package/lib/cjs/presentation-common.js.map +1 -1
  204. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  205. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  206. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  207. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  208. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  209. package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
  210. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  211. package/lib/esm/presentation-common/EC.d.ts +350 -350
  212. package/lib/esm/presentation-common/EC.d.ts.map +1 -1
  213. package/lib/esm/presentation-common/EC.js +287 -287
  214. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  215. package/lib/esm/presentation-common/ElementProperties.d.ts.map +1 -1
  216. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  217. package/lib/esm/presentation-common/Error.d.ts +47 -45
  218. package/lib/esm/presentation-common/Error.d.ts.map +1 -1
  219. package/lib/esm/presentation-common/Error.js +60 -58
  220. package/lib/esm/presentation-common/Error.js.map +1 -1
  221. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  222. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts.map +1 -1
  223. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  224. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  225. package/lib/esm/presentation-common/KeySet.d.ts.map +1 -1
  226. package/lib/esm/presentation-common/KeySet.js +424 -424
  227. package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -87
  228. package/lib/esm/presentation-common/LabelDefinition.d.ts.map +1 -1
  229. package/lib/esm/presentation-common/LabelDefinition.js +75 -70
  230. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  231. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  232. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  233. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  234. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  235. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +273 -261
  236. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  237. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  238. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  239. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
  240. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
  241. package/lib/esm/presentation-common/PresentationRpcInterface.js +105 -100
  242. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  243. package/lib/esm/presentation-common/PropertyFormatter.d.ts +31 -0
  244. package/lib/esm/presentation-common/PropertyFormatter.d.ts.map +1 -0
  245. package/lib/esm/presentation-common/PropertyFormatter.js +194 -0
  246. package/lib/esm/presentation-common/PropertyFormatter.js.map +1 -0
  247. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  248. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  249. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -83
  250. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
  251. package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -167
  252. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  253. package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
  254. package/lib/esm/presentation-common/RulesetVariables.d.ts.map +1 -1
  255. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  256. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  257. package/lib/esm/presentation-common/RulesetsFactory.d.ts.map +1 -1
  258. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  259. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  260. package/lib/esm/presentation-common/Update.d.ts +213 -213
  261. package/lib/esm/presentation-common/Update.d.ts.map +1 -1
  262. package/lib/esm/presentation-common/Update.js +223 -223
  263. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  264. package/lib/esm/presentation-common/Utils.d.ts.map +1 -1
  265. package/lib/esm/presentation-common/Utils.js +39 -39
  266. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  267. package/lib/esm/presentation-common/content/Category.js +45 -45
  268. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  269. package/lib/esm/presentation-common/content/Content.js +52 -52
  270. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
  271. package/lib/esm/presentation-common/content/ContentTraverser.js +427 -429
  272. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  273. package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
  274. package/lib/esm/presentation-common/content/Descriptor.js +187 -189
  275. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  276. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  277. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  278. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  279. package/lib/esm/presentation-common/content/Editor.js +8 -8
  280. package/lib/esm/presentation-common/content/Fields.d.ts +298 -301
  281. package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
  282. package/lib/esm/presentation-common/content/Fields.js +386 -390
  283. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  284. package/lib/esm/presentation-common/content/Item.d.ts +85 -85
  285. package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
  286. package/lib/esm/presentation-common/content/Item.js +80 -80
  287. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  288. package/lib/esm/presentation-common/content/Property.d.ts +57 -57
  289. package/lib/esm/presentation-common/content/Property.d.ts.map +1 -1
  290. package/lib/esm/presentation-common/content/Property.js +37 -37
  291. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  292. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  293. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  294. package/lib/esm/presentation-common/content/TypeDescription.d.ts.map +1 -1
  295. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  296. package/lib/esm/presentation-common/content/Value.d.ts +189 -189
  297. package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
  298. package/lib/esm/presentation-common/content/Value.js +270 -270
  299. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  300. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
  301. package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
  302. package/lib/esm/presentation-common/hierarchy/Key.d.ts.map +1 -1
  303. package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
  304. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  305. package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
  306. package/lib/esm/presentation-common/hierarchy/Node.d.ts.map +1 -1
  307. package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
  308. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  309. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  310. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
  311. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  312. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  313. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  314. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  315. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  316. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  317. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  318. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts.map +1 -1
  319. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  320. package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
  321. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  322. package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
  323. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  324. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  325. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  326. package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
  327. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  328. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  329. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  330. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  331. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  332. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  333. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  334. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  335. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  336. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  337. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  338. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  339. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  340. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  341. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  342. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  343. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  344. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  345. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  346. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  347. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  348. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  349. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts.map +1 -1
  350. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  351. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  352. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  353. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  354. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  355. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  356. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  357. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  358. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  359. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  360. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  361. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  362. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  363. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  364. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  365. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  366. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts.map +1 -1
  367. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  368. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  369. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  370. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  371. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts.map +1 -1
  372. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  373. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  374. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  375. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  376. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  377. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  378. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts.map +1 -1
  379. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
  380. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  381. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  382. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  383. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  384. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  385. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  386. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  387. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts.map +1 -1
  388. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  389. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  390. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  391. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  392. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  393. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  394. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  395. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  396. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  397. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
  398. package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
  399. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  400. package/lib/esm/presentation-common.d.ts +113 -112
  401. package/lib/esm/presentation-common.d.ts.map +1 -1
  402. package/lib/esm/presentation-common.js +117 -116
  403. package/lib/esm/presentation-common.js.map +1 -1
  404. package/lib/public/locales/en/Presentation.json +15 -0
  405. package/package.json +12 -10
  406. package/lib/cjs/assets/locales/en/BisCore.json +0 -18
  407. package/lib/cjs/assets/locales/en/ECPresentation.json +0 -9
  408. package/lib/cjs/assets/locales/en/RulesEngine.json +0 -6
  409. package/lib/cjs/assets/locales/en-PSEUDO/BisCore.json +0 -18
  410. package/lib/cjs/assets/locales/en-PSEUDO/ECPresentation.json +0 -9
  411. package/lib/cjs/assets/locales/en-PSEUDO/RulesEngine.json +0 -6
  412. package/lib/public/locales/en/BisCore.json +0 -18
  413. package/lib/public/locales/en/ECPresentation.json +0 -9
  414. package/lib/public/locales/en/RulesEngine.json +0 -6
@@ -1,105 +1,109 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module RPC
8
- */
9
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
- return c > 3 && r && Object.defineProperty(target, key, r), r;
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.PresentationIpcEvents = exports.PresentationRpcInterface = void 0;
17
- const core_common_1 = require("@itwin/core-common");
18
- const Error_1 = require("./Error");
19
- /**
20
- * Interface used for communication between Presentation backend and frontend.
21
- * @public
22
- */
23
- class PresentationRpcInterface extends core_common_1.RpcInterface {
24
- /*===========================================================================================
25
- NOTE: Any add/remove/change to the methods below requires an update of the interface version.
26
- NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.
27
- ===========================================================================================*/
28
- async getNodesCount(_token, _options) { return this.forward(arguments); }
29
- async getPagedNodes(_token, _options) { return this.forward(arguments); }
30
- /** @beta */
31
- async getNodesDescriptor(_token, _options) { return this.forward(arguments); }
32
- // TODO: add paged version of this (#387280)
33
- async getNodePaths(_token, _options) { return this.forward(arguments); }
34
- // TODO: add paged version of this (#387280)
35
- async getFilteredNodePaths(_token, _options) { return this.forward(arguments); }
36
- async getContentSources(_token, _options) { return this.forward(arguments); }
37
- async getContentDescriptor(_token, _options) {
38
- arguments[1] = { ...arguments[1], transport: "unparsed-json" };
39
- const response = await this.forward(arguments);
40
- if (response.statusCode === Error_1.PresentationStatus.Success && typeof response.result === "string") {
41
- response.result = JSON.parse(response.result);
42
- }
43
- return response;
44
- }
45
- async getContentSetSize(_token, _options) { return this.forward(arguments); }
46
- async getPagedContent(_token, _options) { return this.forward(arguments); }
47
- async getPagedContentSet(_token, _options) { return this.forward(arguments); }
48
- async getElementProperties(_token, _options) { return this.forward(arguments); }
49
- async getPagedDistinctValues(_token, _options) { return this.forward(arguments); }
50
- async getContentInstanceKeys(_token, _options) { return this.forward(arguments); }
51
- async getDisplayLabelDefinition(_token, _options) { return this.forward(arguments); }
52
- async getPagedDisplayLabelDefinitions(_token, _options) { return this.forward(arguments); }
53
- async getSelectionScopes(_token, _options) { return this.forward(arguments); }
54
- async computeSelection(_token, _options, _ids, _scopeId) { return this.forward(arguments); }
55
- }
56
- /** The immutable name of the interface. */
57
- PresentationRpcInterface.interfaceName = "PresentationRpcInterface"; // eslint-disable-line @typescript-eslint/naming-convention
58
- /** The semantic version of the interface. */
59
- PresentationRpcInterface.interfaceVersion = "3.3.0";
60
- __decorate([
61
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
62
- ], PresentationRpcInterface.prototype, "getPagedNodes", null);
63
- __decorate([
64
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
65
- ], PresentationRpcInterface.prototype, "getNodesDescriptor", null);
66
- __decorate([
67
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
68
- ], PresentationRpcInterface.prototype, "getNodePaths", null);
69
- __decorate([
70
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
71
- ], PresentationRpcInterface.prototype, "getFilteredNodePaths", null);
72
- __decorate([
73
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
74
- ], PresentationRpcInterface.prototype, "getContentSources", null);
75
- __decorate([
76
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
77
- ], PresentationRpcInterface.prototype, "getContentDescriptor", null);
78
- __decorate([
79
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
80
- ], PresentationRpcInterface.prototype, "getPagedContent", null);
81
- __decorate([
82
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
83
- ], PresentationRpcInterface.prototype, "getPagedContentSet", null);
84
- __decorate([
85
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
86
- ], PresentationRpcInterface.prototype, "getElementProperties", null);
87
- __decorate([
88
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
89
- ], PresentationRpcInterface.prototype, "getPagedDistinctValues", null);
90
- __decorate([
91
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
92
- ], PresentationRpcInterface.prototype, "getPagedDisplayLabelDefinitions", null);
93
- __decorate([
94
- core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
95
- ], PresentationRpcInterface.prototype, "computeSelection", null);
96
- exports.PresentationRpcInterface = PresentationRpcInterface;
97
- /** @internal */
98
- var PresentationIpcEvents;
99
- (function (PresentationIpcEvents) {
100
- /**
101
- * ID of an event that's emitted when backend detects changes in presented data.
102
- */
103
- PresentationIpcEvents["Update"] = "presentation.onUpdate";
104
- })(PresentationIpcEvents = exports.PresentationIpcEvents || (exports.PresentationIpcEvents = {}));
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module RPC
8
+ */
9
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.PresentationIpcEvents = exports.PresentationRpcInterface = void 0;
17
+ const core_common_1 = require("@itwin/core-common");
18
+ const Error_1 = require("./Error");
19
+ /**
20
+ * Interface used for communication between Presentation backend and frontend.
21
+ * @public
22
+ */
23
+ class PresentationRpcInterface extends core_common_1.RpcInterface {
24
+ /*===========================================================================================
25
+ NOTE: Any add/remove/change to the methods below requires an update of the interface version.
26
+ NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.
27
+ ===========================================================================================*/
28
+ async getNodesCount(_token, _options) { return this.forward(arguments); }
29
+ async getPagedNodes(_token, _options) { return this.forward(arguments); }
30
+ /** @beta */
31
+ async getNodesDescriptor(_token, _options) { return this.forward(arguments); }
32
+ // TODO: add paged version of this (#387280)
33
+ async getNodePaths(_token, _options) { return this.forward(arguments); }
34
+ // TODO: add paged version of this (#387280)
35
+ async getFilteredNodePaths(_token, _options) { return this.forward(arguments); }
36
+ async getContentSources(_token, _options) { return this.forward(arguments); }
37
+ async getContentDescriptor(_token, _options) {
38
+ arguments[1] = { ...arguments[1], transport: "unparsed-json" };
39
+ const response = await this.forward(arguments);
40
+ if (response.statusCode === Error_1.PresentationStatus.Success && typeof response.result === "string") {
41
+ response.result = JSON.parse(response.result);
42
+ }
43
+ return response;
44
+ }
45
+ async getContentSetSize(_token, _options) { return this.forward(arguments); }
46
+ async getPagedContent(_token, _options) { return this.forward(arguments); }
47
+ async getPagedContentSet(_token, _options) { return this.forward(arguments); }
48
+ async getElementProperties(_token, _options) { return this.forward(arguments); }
49
+ async getPagedDistinctValues(_token, _options) { return this.forward(arguments); }
50
+ async getContentInstanceKeys(_token, _options) { return this.forward(arguments); }
51
+ async getDisplayLabelDefinition(_token, _options) { return this.forward(arguments); }
52
+ async getPagedDisplayLabelDefinitions(_token, _options) { return this.forward(arguments); }
53
+ async getSelectionScopes(_token, _options) { return this.forward(arguments); }
54
+ async computeSelection(_token, _options, _ids, _scopeId) { return this.forward(arguments); }
55
+ }
56
+ /** The immutable name of the interface. */
57
+ PresentationRpcInterface.interfaceName = "PresentationRpcInterface"; // eslint-disable-line @typescript-eslint/naming-convention
58
+ /** The semantic version of the interface. */
59
+ PresentationRpcInterface.interfaceVersion = "4.0.0";
60
+ __decorate([
61
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
62
+ // eslint-disable-next-line deprecation/deprecation
63
+ ], PresentationRpcInterface.prototype, "getPagedNodes", null);
64
+ __decorate([
65
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
66
+ ], PresentationRpcInterface.prototype, "getNodesDescriptor", null);
67
+ __decorate([
68
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
69
+ // eslint-disable-next-line deprecation/deprecation
70
+ ], PresentationRpcInterface.prototype, "getNodePaths", null);
71
+ __decorate([
72
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
73
+ // eslint-disable-next-line deprecation/deprecation
74
+ ], PresentationRpcInterface.prototype, "getFilteredNodePaths", null);
75
+ __decorate([
76
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
77
+ ], PresentationRpcInterface.prototype, "getContentSources", null);
78
+ __decorate([
79
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
80
+ ], PresentationRpcInterface.prototype, "getContentDescriptor", null);
81
+ __decorate([
82
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
83
+ ], PresentationRpcInterface.prototype, "getPagedContent", null);
84
+ __decorate([
85
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
86
+ ], PresentationRpcInterface.prototype, "getPagedContentSet", null);
87
+ __decorate([
88
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
89
+ ], PresentationRpcInterface.prototype, "getElementProperties", null);
90
+ __decorate([
91
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
92
+ // eslint-disable-next-line deprecation/deprecation
93
+ ], PresentationRpcInterface.prototype, "getPagedDistinctValues", null);
94
+ __decorate([
95
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
96
+ ], PresentationRpcInterface.prototype, "getPagedDisplayLabelDefinitions", null);
97
+ __decorate([
98
+ core_common_1.RpcOperation.setPolicy({ allowResponseCompression: true })
99
+ ], PresentationRpcInterface.prototype, "computeSelection", null);
100
+ exports.PresentationRpcInterface = PresentationRpcInterface;
101
+ /** @internal */
102
+ var PresentationIpcEvents;
103
+ (function (PresentationIpcEvents) {
104
+ /**
105
+ * ID of an event that's emitted when backend detects changes in presented data.
106
+ */
107
+ PresentationIpcEvents["Update"] = "presentation.onUpdate";
108
+ })(PresentationIpcEvents = exports.PresentationIpcEvents || (exports.PresentationIpcEvents = {}));
105
109
  //# sourceMappingURL=PresentationRpcInterface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PresentationRpcInterface.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.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 { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcInterface, RpcOperation } from \"@itwin/core-common\";\r\nimport { DescriptorJSON, DescriptorOverrides, SelectClassInfoJSON } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsOptions } from \"./Diagnostics\";\r\nimport { CompressedClassInfoJSON, InstanceKey } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationStatus } from \"./Error\";\r\nimport { NodeKey } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinition } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\r\n Paged, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { Omit, PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Base options for all presentation RPC requests.\r\n * @public\r\n */\r\nexport type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit<TManagerRequestOptions, \"imodel\" | \"diagnostics\"> & {\r\n /** @internal ID of the client requesting data */\r\n clientId?: string;\r\n /**\r\n * RPC request diagnostics options.\r\n * @beta\r\n */\r\n diagnostics?: RpcDiagnosticsOptions;\r\n};\r\n\r\n/**\r\n * Data structure for presentation RPC responses\r\n * @public\r\n */\r\nexport interface PresentationRpcResponseData<TResult = undefined> {\r\n /** Response status code */\r\n statusCode: PresentationStatus;\r\n /** In case of an error response, the error message */\r\n errorMessage?: string;\r\n /** In case of a success response, the result */\r\n result?: TResult;\r\n /**\r\n * Diagnostics response.\r\n * @beta\r\n */\r\n diagnostics?: ClientDiagnostics;\r\n}\r\n\r\n/**\r\n * Data structure for RPC diagnostics options.\r\n * @beta\r\n */\r\nexport type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, \"handler\">;\r\n\r\n/**\r\n * A promise of [[PresentationRpcResponseData]].\r\n * @public\r\n */\r\nexport type PresentationRpcResponse<TResult = undefined> = Promise<PresentationRpcResponseData<TResult>>;\r\n\r\n/**\r\n * Data structure for hierarchy request options.\r\n * @public\r\n */\r\nexport type HierarchyRpcRequestOptions = PresentationRpcRequestOptions<HierarchyRequestOptions<never, NodeKey, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for hierarchy level descriptor RPC request options.\r\n * @beta\r\n */\r\nexport type HierarchyLevelDescriptorRpcRequestOptions = PresentationRpcRequestOptions<HierarchyLevelDescriptorRequestOptions<never, NodeKey, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by ECInstance paths request options.\r\n * @public\r\n */\r\nexport type FilterByInstancePathsHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByInstancePathsHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by text request options.\r\n * @public\r\n */\r\nexport type FilterByTextHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByTextHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content sources RPC request options.\r\n * @public\r\n */\r\nexport type ContentSourcesRpcRequestOptions = PresentationRpcRequestOptions<ContentSourcesRequestOptions<never>>;\r\n/**\r\n * Data structure for content sources RPC response.\r\n * @public\r\n */\r\nexport interface ContentSourcesRpcResult {\r\n /** A list of objects containing content source information. */\r\n sources: SelectClassInfoJSON<Id64String>[];\r\n /** An `ECClassId` => [[CompressedClassInfoJSON]] map for deserializing [[sources]]. */\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n}\r\n\r\n/**\r\n * Data structure for content descriptor RPC request options.\r\n * @public\r\n */\r\nexport type ContentDescriptorRpcRequestOptions = PresentationRpcRequestOptions<ContentDescriptorRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content RPC request options.\r\n * @public\r\n */\r\nexport type ContentRpcRequestOptions = PresentationRpcRequestOptions<ContentRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for single element properties RPC request options.\r\n * @public\r\n */\r\nexport type SingleElementPropertiesRpcRequestOptions = PresentationRpcRequestOptions<SingleElementPropertiesRequestOptions<never>>;\r\n\r\n/**\r\n * Data structure for distinct values' request options.\r\n * @public\r\n */\r\nexport type DistinctValuesRpcRequestOptions = PresentationRpcRequestOptions<DistinctValuesRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content instance keys' request options.\r\n * @public\r\n */\r\nexport type ContentInstanceKeysRpcRequestOptions = PresentationRpcRequestOptions<ContentInstanceKeysRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for label request options.\r\n * @public\r\n */\r\nexport type DisplayLabelRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelRequestOptions<never, InstanceKey>>;\r\n\r\n/**\r\n * Data structure for labels request options.\r\n * @public\r\n */\r\nexport type DisplayLabelsRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelsRequestOptions<never, InstanceKey>>;\r\n\r\n/**\r\n * Data structure for selection scope request options.\r\n * @public\r\n */\r\nexport type SelectionScopeRpcRequestOptions = PresentationRpcRequestOptions<SelectionScopeRequestOptions<never>>;\r\n\r\n/**\r\n * Request options data structure for computing selection based on given selection scope and element IDs.\r\n * @public\r\n */\r\nexport type ComputeSelectionRpcRequestOptions = PresentationRpcRequestOptions<ComputeSelectionRequestOptions<never>>;\r\n\r\n/**\r\n * Interface used for communication between Presentation backend and frontend.\r\n * @public\r\n */\r\nexport class PresentationRpcInterface extends RpcInterface { // eslint-disable-line deprecation/deprecation\r\n /** The immutable name of the interface. */\r\n public static readonly interfaceName = \"PresentationRpcInterface\"; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n /** The semantic version of the interface. */\r\n public static interfaceVersion = \"3.3.0\";\r\n\r\n /*===========================================================================================\r\n NOTE: Any add/remove/change to the methods below requires an update of the interface version.\r\n NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.\r\n ===========================================================================================*/\r\n\r\n public async getNodesCount(_token: IModelRpcProps, _options: HierarchyRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedNodes(_token: IModelRpcProps, _options: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<NodeJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getNodesDescriptor(_token: IModelRpcProps, _options: HierarchyLevelDescriptorRpcRequestOptions): PresentationRpcResponse<string | DescriptorJSON | undefined> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getNodePaths(_token: IModelRpcProps, _options: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getFilteredNodePaths(_token: IModelRpcProps, _options: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentSources(_token: IModelRpcProps, _options: ContentSourcesRpcRequestOptions): PresentationRpcResponse<ContentSourcesRpcResult> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentDescriptor(_token: IModelRpcProps, _options: ContentDescriptorRpcRequestOptions): PresentationRpcResponse<DescriptorJSON | undefined> {\r\n arguments[1] = { ...arguments[1], transport: \"unparsed-json\" };\r\n const response: PresentationRpcResponseData<DescriptorJSON | string | undefined> = await this.forward(arguments);\r\n if (response.statusCode === PresentationStatus.Success && typeof response.result === \"string\") {\r\n response.result = JSON.parse(response.result);\r\n }\r\n return response as PresentationRpcResponseData<DescriptorJSON | undefined>;\r\n }\r\n\r\n public async getContentSetSize(_token: IModelRpcProps, _options: ContentRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContent(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContentSet(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<PagedResponse<ItemJSON>> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getElementProperties(_token: IModelRpcProps, _options: SingleElementPropertiesRpcRequestOptions): PresentationRpcResponse<ElementProperties | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedDistinctValues(_token: IModelRpcProps, _options: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<DisplayValueGroupJSON>> { return this.forward(arguments); }\r\n\r\n public async getContentInstanceKeys(_token: IModelRpcProps, _options: ContentInstanceKeysRpcRequestOptions): PresentationRpcResponse<{ total: number, items: KeySetJSON }> { return this.forward(arguments); }\r\n\r\n public async getDisplayLabelDefinition(_token: IModelRpcProps, _options: DisplayLabelRpcRequestOptions): PresentationRpcResponse<LabelDefinition> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDisplayLabelDefinitions(_token: IModelRpcProps, _options: DisplayLabelsRpcRequestOptions): PresentationRpcResponse<PagedResponse<LabelDefinition>> { return this.forward(arguments); }\r\n\r\n public async getSelectionScopes(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions): PresentationRpcResponse<SelectionScope[]> { return this.forward(arguments); }\r\n\r\n /** @deprecated in 3.x. Use the override with [[ComputeSelectionRpcRequestOptions]]. */\r\n public async computeSelection(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions, _ids: Id64String[], _scopeId: string): PresentationRpcResponse<KeySetJSON>;\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions): PresentationRpcResponse<KeySetJSON>;\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions | SelectionScopeRpcRequestOptions, _ids?: Id64String[], _scopeId?: string): PresentationRpcResponse<KeySetJSON> { return this.forward(arguments); }\r\n}\r\n\r\n/** @internal */\r\nexport enum PresentationIpcEvents {\r\n /**\r\n * ID of an event that's emitted when backend detects changes in presented data.\r\n */\r\n Update = \"presentation.onUpdate\",\r\n}\r\n"]}
1
+ {"version":3,"file":"PresentationRpcInterface.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.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 { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcInterface, RpcOperation } from \"@itwin/core-common\";\r\nimport { DescriptorJSON, DescriptorOverrides, SelectClassInfoJSON } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsOptions } from \"./Diagnostics\";\r\nimport { CompressedClassInfoJSON, InstanceKey } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationStatus } from \"./Error\";\r\nimport { NodeKey } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinition } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyLevelDescriptorRequestOptions, HierarchyRequestOptions,\r\n Paged, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { Omit, PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Base options for all presentation RPC requests.\r\n * @public\r\n */\r\nexport type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit<TManagerRequestOptions, \"imodel\" | \"diagnostics\"> & {\r\n /** @internal ID of the client requesting data */\r\n clientId?: string;\r\n /**\r\n * RPC request diagnostics options.\r\n * @beta\r\n */\r\n diagnostics?: RpcDiagnosticsOptions;\r\n};\r\n\r\n/**\r\n * Data structure for presentation RPC responses\r\n * @public\r\n */\r\nexport interface PresentationRpcResponseData<TResult = undefined> {\r\n /** Response status code */\r\n statusCode: PresentationStatus;\r\n /** In case of an error response, the error message */\r\n errorMessage?: string;\r\n /** In case of a success response, the result */\r\n result?: TResult;\r\n /**\r\n * Diagnostics response.\r\n * @beta\r\n */\r\n diagnostics?: ClientDiagnostics;\r\n}\r\n\r\n/**\r\n * Data structure for RPC diagnostics options.\r\n * @beta\r\n */\r\nexport type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, \"handler\">;\r\n\r\n/**\r\n * A promise of [[PresentationRpcResponseData]].\r\n * @public\r\n */\r\nexport type PresentationRpcResponse<TResult = undefined> = Promise<PresentationRpcResponseData<TResult>>;\r\n\r\n/**\r\n * Data structure for hierarchy request options.\r\n * @public\r\n */\r\nexport type HierarchyRpcRequestOptions = PresentationRpcRequestOptions<HierarchyRequestOptions<never, NodeKey, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for hierarchy level descriptor RPC request options.\r\n * @beta\r\n */\r\nexport type HierarchyLevelDescriptorRpcRequestOptions = PresentationRpcRequestOptions<HierarchyLevelDescriptorRequestOptions<never, NodeKey, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by ECInstance paths request options.\r\n * @public\r\n */\r\nexport type FilterByInstancePathsHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByInstancePathsHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by text request options.\r\n * @public\r\n */\r\nexport type FilterByTextHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByTextHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content sources RPC request options.\r\n * @public\r\n */\r\nexport type ContentSourcesRpcRequestOptions = PresentationRpcRequestOptions<ContentSourcesRequestOptions<never>>;\r\n/**\r\n * Data structure for content sources RPC response.\r\n * @public\r\n */\r\nexport interface ContentSourcesRpcResult {\r\n /** A list of objects containing content source information. */\r\n sources: SelectClassInfoJSON<Id64String>[];\r\n /** An `ECClassId` => [[CompressedClassInfoJSON]] map for deserializing [[sources]]. */\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n}\r\n\r\n/**\r\n * Data structure for content descriptor RPC request options.\r\n * @public\r\n */\r\nexport type ContentDescriptorRpcRequestOptions = PresentationRpcRequestOptions<ContentDescriptorRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content RPC request options.\r\n * @public\r\n */\r\nexport type ContentRpcRequestOptions = PresentationRpcRequestOptions<ContentRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for single element properties RPC request options.\r\n * @public\r\n */\r\nexport type SingleElementPropertiesRpcRequestOptions = PresentationRpcRequestOptions<SingleElementPropertiesRequestOptions<never>>;\r\n\r\n/**\r\n * Data structure for distinct values' request options.\r\n * @public\r\n */\r\nexport type DistinctValuesRpcRequestOptions = PresentationRpcRequestOptions<DistinctValuesRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content instance keys' request options.\r\n * @public\r\n */\r\nexport type ContentInstanceKeysRpcRequestOptions = PresentationRpcRequestOptions<ContentInstanceKeysRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for label request options.\r\n * @public\r\n */\r\nexport type DisplayLabelRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelRequestOptions<never, InstanceKey>>;\r\n\r\n/**\r\n * Data structure for labels request options.\r\n * @public\r\n */\r\nexport type DisplayLabelsRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelsRequestOptions<never, InstanceKey>>;\r\n\r\n/**\r\n * Data structure for selection scope request options.\r\n * @public\r\n */\r\nexport type SelectionScopeRpcRequestOptions = PresentationRpcRequestOptions<SelectionScopeRequestOptions<never>>;\r\n\r\n/**\r\n * Request options data structure for computing selection based on given selection scope and element IDs.\r\n * @public\r\n */\r\nexport type ComputeSelectionRpcRequestOptions = PresentationRpcRequestOptions<ComputeSelectionRequestOptions<never>>;\r\n\r\n/**\r\n * Interface used for communication between Presentation backend and frontend.\r\n * @public\r\n */\r\nexport class PresentationRpcInterface extends RpcInterface { // eslint-disable-line deprecation/deprecation\r\n /** The immutable name of the interface. */\r\n public static readonly interfaceName = \"PresentationRpcInterface\"; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n /** The semantic version of the interface. */\r\n public static interfaceVersion = \"4.0.0\";\r\n\r\n /*===========================================================================================\r\n NOTE: Any add/remove/change to the methods below requires an update of the interface version.\r\n NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.\r\n ===========================================================================================*/\r\n\r\n public async getNodesCount(_token: IModelRpcProps, _options: HierarchyRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedNodes(_token: IModelRpcProps, _options: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<NodeJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getNodesDescriptor(_token: IModelRpcProps, _options: HierarchyLevelDescriptorRpcRequestOptions): PresentationRpcResponse<string | DescriptorJSON | undefined> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getNodePaths(_token: IModelRpcProps, _options: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getFilteredNodePaths(_token: IModelRpcProps, _options: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentSources(_token: IModelRpcProps, _options: ContentSourcesRpcRequestOptions): PresentationRpcResponse<ContentSourcesRpcResult> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentDescriptor(_token: IModelRpcProps, _options: ContentDescriptorRpcRequestOptions): PresentationRpcResponse<DescriptorJSON | undefined> {\r\n arguments[1] = { ...arguments[1], transport: \"unparsed-json\" };\r\n const response: PresentationRpcResponseData<DescriptorJSON | string | undefined> = await this.forward(arguments);\r\n if (response.statusCode === PresentationStatus.Success && typeof response.result === \"string\") {\r\n response.result = JSON.parse(response.result);\r\n }\r\n return response as PresentationRpcResponseData<DescriptorJSON | undefined>;\r\n }\r\n\r\n public async getContentSetSize(_token: IModelRpcProps, _options: ContentRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContent(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContentSet(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<PagedResponse<ItemJSON>> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getElementProperties(_token: IModelRpcProps, _options: SingleElementPropertiesRpcRequestOptions): PresentationRpcResponse<ElementProperties | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n // eslint-disable-next-line deprecation/deprecation\r\n public async getPagedDistinctValues(_token: IModelRpcProps, _options: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<DisplayValueGroupJSON>> { return this.forward(arguments); }\r\n\r\n public async getContentInstanceKeys(_token: IModelRpcProps, _options: ContentInstanceKeysRpcRequestOptions): PresentationRpcResponse<{ total: number, items: KeySetJSON }> { return this.forward(arguments); }\r\n\r\n public async getDisplayLabelDefinition(_token: IModelRpcProps, _options: DisplayLabelRpcRequestOptions): PresentationRpcResponse<LabelDefinition> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDisplayLabelDefinitions(_token: IModelRpcProps, _options: DisplayLabelsRpcRequestOptions): PresentationRpcResponse<PagedResponse<LabelDefinition>> { return this.forward(arguments); }\r\n\r\n public async getSelectionScopes(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions): PresentationRpcResponse<SelectionScope[]> { return this.forward(arguments); }\r\n\r\n /** @deprecated in 3.x. Use the override with [[ComputeSelectionRpcRequestOptions]]. */\r\n public async computeSelection(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions, _ids: Id64String[], _scopeId: string): PresentationRpcResponse<KeySetJSON>;\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions): PresentationRpcResponse<KeySetJSON>;\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions | SelectionScopeRpcRequestOptions, _ids?: Id64String[], _scopeId?: string): PresentationRpcResponse<KeySetJSON> { return this.forward(arguments); }\r\n}\r\n\r\n/** @internal */\r\nexport enum PresentationIpcEvents {\r\n /**\r\n * ID of an event that's emitted when backend detects changes in presented data.\r\n */\r\n Update = \"presentation.onUpdate\",\r\n}\r\n"]}
@@ -0,0 +1,31 @@
1
+ /** @packageDocumentation
2
+ * @module Core
3
+ */
4
+ import { FormatterSpec, ParserSpec, UnitSystemKey } from "@itwin/core-quantity";
5
+ import { SchemaContext } from "@itwin/ecschema-metadata";
6
+ import { Content } from "./content/Content";
7
+ /** @alpha */
8
+ export interface FormatOptions {
9
+ koqName: string;
10
+ unitSystem: UnitSystemKey;
11
+ }
12
+ /** @alpha */
13
+ export declare class PropertyValueFormatter {
14
+ private _schemaContext;
15
+ private _unitsProvider;
16
+ constructor(_schemaContext: SchemaContext);
17
+ format(value: number, options: FormatOptions): Promise<string | undefined>;
18
+ getFormatterSpec(options: FormatOptions): Promise<FormatterSpec | undefined>;
19
+ getParserSpec(options: FormatOptions): Promise<ParserSpec | undefined>;
20
+ }
21
+ /** @alpha */
22
+ export declare class ContentPropertyValueFormatter {
23
+ private _propertyValueFormatter;
24
+ private _unitSystem;
25
+ constructor(_propertyValueFormatter: PropertyValueFormatter, _unitSystem: UnitSystemKey);
26
+ formatContent(content: Content): Promise<Content>;
27
+ private formatValues;
28
+ private formatNestedContentDisplayValues;
29
+ private isFormattable;
30
+ }
31
+ //# sourceMappingURL=PropertyFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFormatter.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/PropertyFormatter.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAuB,aAAa,EAAE,UAAU,EAAiB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAC6E,aAAa,EAEhG,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM5C,aAAa;AACb,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,aAAa;AACb,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,cAAc;IAFlC,OAAO,CAAC,cAAc,CAAgB;gBAElB,cAAc,EAAE,aAAa;IAIpC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAO5C,gBAAgB,CAAC,OAAO,EAAE,aAAa;IAUvC,aAAa,CAAC,OAAO,EAAE,aAAa;CASlD;AAED,aAAa;AACb,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,uBAAuB;IAA0B,OAAO,CAAC,WAAW;gBAApE,uBAAuB,EAAE,sBAAsB,EAAU,WAAW,EAAE,aAAa;IAE1F,aAAa,CAAC,OAAO,EAAE,OAAO;YAQ7B,YAAY;YAqBZ,gCAAgC;IAM9C,OAAO,CAAC,aAAa;CAKtB"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Core
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ContentPropertyValueFormatter = exports.PropertyValueFormatter = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_quantity_1 = require("@itwin/core-quantity");
13
+ const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
14
+ const Value_1 = require("./content/Value");
15
+ /** @alpha */
16
+ class PropertyValueFormatter {
17
+ constructor(_schemaContext) {
18
+ this._schemaContext = _schemaContext;
19
+ this._unitsProvider = new ecschema_metadata_1.SchemaUnitProvider(_schemaContext);
20
+ }
21
+ async format(value, options) {
22
+ const formatterSpec = await this.getFormatterSpec(options);
23
+ if (!formatterSpec)
24
+ return undefined;
25
+ return formatterSpec.applyFormatting(value);
26
+ }
27
+ async getFormatterSpec(options) {
28
+ const formattingProps = await getFormattingProps(this._schemaContext, options);
29
+ if (!formattingProps)
30
+ return undefined;
31
+ const { formatProps, persistenceUnitName } = formattingProps;
32
+ const persistenceUnit = await this._unitsProvider.findUnitByName(persistenceUnitName);
33
+ const format = await core_quantity_1.Format.createFromJSON("", this._unitsProvider, formatProps);
34
+ return core_quantity_1.FormatterSpec.create("", format, this._unitsProvider, persistenceUnit);
35
+ }
36
+ async getParserSpec(options) {
37
+ const formattingProps = await getFormattingProps(this._schemaContext, options);
38
+ if (!formattingProps)
39
+ return undefined;
40
+ const { formatProps, persistenceUnitName } = formattingProps;
41
+ const persistenceUnit = await this._unitsProvider.findUnitByName(persistenceUnitName);
42
+ const format = await core_quantity_1.Format.createFromJSON("", this._unitsProvider, formatProps);
43
+ return core_quantity_1.ParserSpec.create(format, this._unitsProvider, persistenceUnit);
44
+ }
45
+ }
46
+ exports.PropertyValueFormatter = PropertyValueFormatter;
47
+ /** @alpha */
48
+ class ContentPropertyValueFormatter {
49
+ constructor(_propertyValueFormatter, _unitSystem) {
50
+ this._propertyValueFormatter = _propertyValueFormatter;
51
+ this._unitSystem = _unitSystem;
52
+ }
53
+ async formatContent(content) {
54
+ const descriptor = content.descriptor;
55
+ for (const item of content.contentSet) {
56
+ await this.formatValues(item.values, item.displayValues, descriptor.fields, item.mergedFieldNames);
57
+ }
58
+ return content;
59
+ }
60
+ async formatValues(values, displayValues, fields, mergedFields) {
61
+ for (const field of fields) {
62
+ const value = values[field.name];
63
+ if (field.isNestedContentField() && !mergedFields.includes(field.name)) {
64
+ (0, core_bentley_1.assert)(Value_1.Value.isNestedContent(value));
65
+ await this.formatNestedContentDisplayValues(value, field.nestedFields);
66
+ continue;
67
+ }
68
+ if (!this.isFormattable(field) || typeof value !== "number")
69
+ continue;
70
+ const koq = field.properties[0].property.kindOfQuantity;
71
+ const formattedValue = await this._propertyValueFormatter.format(value, { koqName: koq.name, unitSystem: this._unitSystem });
72
+ if (!formattedValue)
73
+ continue;
74
+ displayValues[field.name] = formattedValue;
75
+ }
76
+ }
77
+ async formatNestedContentDisplayValues(nestedValues, fields) {
78
+ for (const nestedValue of nestedValues) {
79
+ await this.formatValues(nestedValue.values, nestedValue.displayValues, fields, nestedValue.mergedFieldNames);
80
+ }
81
+ }
82
+ isFormattable(field) {
83
+ return field.isPropertiesField()
84
+ && field.properties.length > 0
85
+ && field.properties[0].property.kindOfQuantity !== undefined;
86
+ }
87
+ }
88
+ exports.ContentPropertyValueFormatter = ContentPropertyValueFormatter;
89
+ async function getFormattingProps(schemaLocater, options) {
90
+ const { koqName, unitSystem } = options;
91
+ const koq = await getKoq(schemaLocater, koqName);
92
+ if (!koq)
93
+ return undefined;
94
+ const persistenceUnit = await koq.persistenceUnit;
95
+ // istanbul ignore if
96
+ if (!persistenceUnit)
97
+ return undefined;
98
+ const formatProps = await getKoqFormatProps(koq, persistenceUnit, unitSystem);
99
+ if (!formatProps)
100
+ return undefined;
101
+ return { formatProps, persistenceUnitName: persistenceUnit.fullName };
102
+ }
103
+ async function getKoq(schemaLocater, fullName) {
104
+ const [schemaName, propKoqName] = fullName.split(":");
105
+ const schema = await schemaLocater.getSchema(new ecschema_metadata_1.SchemaKey(schemaName), ecschema_metadata_1.SchemaMatchType.Latest);
106
+ if (!schema)
107
+ return undefined;
108
+ return schema.getItem(propKoqName);
109
+ }
110
+ async function getKoqFormatProps(koq, persistenceUnit, unitSystem) {
111
+ const unitSystems = getUnitSystemGroupNames(unitSystem);
112
+ // use one of KOQ presentation format that matches requested unit system
113
+ const presentationFormat = await getKoqPresentationFormat(koq, unitSystems);
114
+ if (presentationFormat)
115
+ return formatToFormatProps(presentationFormat);
116
+ // use persistence unit format if it matches requested unit system and matching presentation format was not found
117
+ const persistenceUnitSystem = await persistenceUnit.unitSystem;
118
+ if (persistenceUnitSystem && unitSystems.includes(persistenceUnitSystem.name.toUpperCase()))
119
+ return getPersistenceUnitFormatProps(persistenceUnit);
120
+ // use default presentation format if persistence unit does not match requested unit system
121
+ if (koq.defaultPresentationFormat)
122
+ return formatToFormatProps(koq.defaultPresentationFormat);
123
+ return undefined;
124
+ }
125
+ async function getKoqPresentationFormat(koq, unitSystems) {
126
+ const presentationFormats = koq.presentationFormats;
127
+ for (const system of unitSystems) {
128
+ for (const format of presentationFormats) {
129
+ const unit = format.units && format.units[0][0];
130
+ // istanbul ignore if
131
+ if (!unit)
132
+ continue;
133
+ const currentUnitSystem = await unit.unitSystem;
134
+ if (currentUnitSystem && currentUnitSystem.name.toUpperCase() === system)
135
+ return format;
136
+ }
137
+ }
138
+ return undefined;
139
+ }
140
+ function formatToFormatProps(format) {
141
+ // istanbul ignore if
142
+ if (ecschema_metadata_1.OverrideFormat.isOverrideFormat(format)) {
143
+ const baseFormat = baseFormatToFormatProps(format.parent);
144
+ return {
145
+ ...baseFormat,
146
+ composite: format.units
147
+ ? {
148
+ ...baseFormat.composite,
149
+ units: format.units.map(([unit, _]) => ({ name: unit.fullName, label: unit.label })),
150
+ spacer: format.spacer,
151
+ includeZero: format.includeZero,
152
+ }
153
+ : baseFormat.composite,
154
+ };
155
+ }
156
+ return baseFormatToFormatProps(format);
157
+ }
158
+ function baseFormatToFormatProps(format) {
159
+ const json = format.toJSON();
160
+ return {
161
+ ...json,
162
+ composite: json.composite
163
+ ? {
164
+ ...json.composite,
165
+ spacer: format.spacer,
166
+ includeZero: format.includeZero,
167
+ }
168
+ : /* istanbul ignore next */ undefined,
169
+ };
170
+ }
171
+ function getPersistenceUnitFormatProps(persistenceUnit) {
172
+ // Same as Format "DefaultRealU" in Formats ecschema
173
+ return {
174
+ formatTraits: ["keepSingleZero", "keepDecimalPoint", "showUnitLabel"],
175
+ precision: 6,
176
+ type: "Decimal",
177
+ uomSeparator: " ",
178
+ decimalSeparator: ".",
179
+ composite: {
180
+ units: [{
181
+ name: persistenceUnit.fullName,
182
+ label: persistenceUnit.label,
183
+ }],
184
+ },
185
+ };
186
+ }
187
+ function getUnitSystemGroupNames(unitSystem) {
188
+ switch (unitSystem) {
189
+ case "imperial":
190
+ return ["IMPERIAL", "USCUSTOM", "INTERNATIONAL", "FINANCE"];
191
+ case "metric":
192
+ return ["SI", "METRIC", "INTERNATIONAL", "FINANCE"];
193
+ case "usCustomary":
194
+ return ["USCUSTOM", "INTERNATIONAL", "FINANCE"];
195
+ case "usSurvey":
196
+ return ["USSURVEY", "USCUSTOM", "INTERNATIONAL", "FINANCE"];
197
+ }
198
+ }
199
+ //# sourceMappingURL=PropertyFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyFormatter.js","sourceRoot":"","sources":["../../../src/presentation-common/PropertyFormatter.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AAC7C,wDAAoH;AACpH,gEAGkC;AAGlC,2CAA0E;AAU1E,aAAa;AACb,MAAa,sBAAsB;IAGjC,YAAoB,cAA6B;QAA7B,mBAAc,GAAd,cAAc,CAAe;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,sCAAkB,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAsB;QACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa;YAChB,OAAO,SAAS,CAAC;QACnB,OAAO,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAsB;QAClD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe;YAClB,OAAO,SAAS,CAAC;QACnB,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,sBAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO,6BAAa,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAsB;QAC/C,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe;YAClB,OAAO,SAAS,CAAC;QACnB,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,sBAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjF,OAAO,0BAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACzE,CAAC;CACF;AAjCD,wDAiCC;AAED,aAAa;AACb,MAAa,6BAA6B;IACxC,YAAoB,uBAA+C,EAAU,WAA0B;QAAnF,4BAAuB,GAAvB,uBAAuB,CAAwB;QAAU,gBAAW,GAAX,WAAW,CAAe;IAAI,CAAC;IAErG,KAAK,CAAC,aAAa,CAAC,OAAgB;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE;YACrC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACpG;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAA+B,EAAE,aAA6C,EAAE,MAAe,EAAE,YAAsB;QAChJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACtE,IAAA,qBAAM,EAAC,aAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,gCAAgC,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBACvE,SAAS;aACV;YAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzD,SAAS;YAEX,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YACxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7H,IAAI,CAAC,cAAc;gBACjB,SAAS;YAEX,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;SAC5C;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAAC,YAAkC,EAAE,MAAe;QAChG,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;SAC9G;IACH,CAAC;IAEO,aAAa,CAAC,KAAY;QAChC,OAAO,KAAK,CAAC,iBAAiB,EAAE;eAC3B,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;eAC3B,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC;IACjE,CAAC;CACF;AA3CD,sEA2CC;AAeD,KAAK,UAAU,kBAAkB,CAAC,aAA6B,EAAE,OAAsB;IACrF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QACN,OAAO,SAAS,CAAC;IAEnB,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC;IAClD,qBAAqB;IACrB,IAAI,CAAC,eAAe;QAClB,OAAO,SAAS,CAAC;IAEnB,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAC9E,IAAI,CAAC,WAAW;QACd,OAAO,SAAS,CAAC;IAEnB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,aAA6B,EAAE,QAAgB;IACnE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,6BAAS,CAAC,UAAU,CAAC,EAAE,mCAAe,CAAC,MAAM,CAAC,CAAC;IAChG,IAAI,CAAC,MAAM;QACT,OAAO,SAAS,CAAC;IAEnB,OAAO,MAAM,CAAC,OAAO,CAAiB,WAAW,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAmB,EAAE,eAAoC,EAAE,UAAyB;IACnH,MAAM,WAAW,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACxD,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,kBAAkB;QACpB,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAEjD,iHAAiH;IACjH,MAAM,qBAAqB,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC;IAC/D,IAAI,qBAAqB,IAAI,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACzF,OAAO,6BAA6B,CAAC,eAAe,CAAC,CAAC;IAExD,2FAA2F;IAC3F,IAAI,GAAG,CAAC,yBAAyB;QAC/B,OAAO,mBAAmB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAE5D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAmB,EAAE,WAAqB;IAChF,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;QAChC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE;YACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,qBAAqB;YACrB,IAAI,CAAC,IAAI;gBACP,SAAS;YAEX,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;YAChD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM;gBACtE,OAAO,MAAM,CAAC;SACjB;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAiC;IAC5D,qBAAqB;IACrB,IAAI,kCAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAC3C,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,GAAG,UAAU;YACb,SAAS,EAAE,MAAM,CAAC,KAAK;gBACrB,CAAC,CAAC;oBACA,GAAG,UAAU,CAAC,SAAS;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpF,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC;gBACD,CAAC,CAAC,UAAU,CAAC,SAAS;SACzB,CAAC;KACH;IACD,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAgB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;YACvB,CAAC,CAAC;gBACA,GAAG,IAAI,CAAC,SAAS;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;YACD,CAAC,CAAC,0BAA0B,CAAC,SAAS;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,eAAoC;IACzE,oDAAoD;IACpD,OAAO;QACL,YAAY,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,CAAC;QACrE,SAAS,EAAE,CAAC;QACZ,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,GAAG;QACjB,gBAAgB,EAAE,GAAG;QACrB,SAAS,EAAE;YACT,KAAK,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,QAAQ;oBAC9B,KAAK,EAAE,eAAe,CAAC,KAAK;iBAC7B,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAyB;IACxD,QAAQ,UAAU,EAAE;QAClB,KAAK,UAAU;YACb,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAC9D,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACtD,KAAK,aAAa;YAChB,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;KAC/D;AACH,CAAC","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 { assert } from \"@itwin/core-bentley\";\r\nimport { Format, FormatProps, FormatterSpec, ParserSpec, UnitsProvider, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport {\r\n Format as ECFormat, InvertedUnit, ISchemaLocater, KindOfQuantity, OverrideFormat, SchemaContext, SchemaKey, SchemaMatchType, SchemaUnitProvider,\r\n Unit,\r\n} from \"@itwin/ecschema-metadata\";\r\nimport { Content } from \"./content/Content\";\r\nimport { Field, PropertiesField } from \"./content/Fields\";\r\nimport { DisplayValue, NestedContentValue, Value } from \"./content/Value\";\r\nimport { KindOfQuantityInfo, PropertyInfo } from \"./EC\";\r\nimport { ValuesDictionary } from \"./Utils\";\r\n\r\n/** @alpha */\r\nexport interface FormatOptions {\r\n koqName: string;\r\n unitSystem: UnitSystemKey;\r\n}\r\n\r\n/** @alpha */\r\nexport class PropertyValueFormatter {\r\n private _unitsProvider: UnitsProvider;\r\n\r\n constructor(private _schemaContext: SchemaContext) {\r\n this._unitsProvider = new SchemaUnitProvider(_schemaContext);\r\n }\r\n\r\n public async format(value: number, options: FormatOptions) {\r\n const formatterSpec = await this.getFormatterSpec(options);\r\n if (!formatterSpec)\r\n return undefined;\r\n return formatterSpec.applyFormatting(value);\r\n }\r\n\r\n public async getFormatterSpec(options: FormatOptions) {\r\n const formattingProps = await getFormattingProps(this._schemaContext, options);\r\n if (!formattingProps)\r\n return undefined;\r\n const { formatProps, persistenceUnitName } = formattingProps;\r\n const persistenceUnit = await this._unitsProvider.findUnitByName(persistenceUnitName);\r\n const format = await Format.createFromJSON(\"\", this._unitsProvider, formatProps);\r\n return FormatterSpec.create(\"\", format, this._unitsProvider, persistenceUnit);\r\n }\r\n\r\n public async getParserSpec(options: FormatOptions) {\r\n const formattingProps = await getFormattingProps(this._schemaContext, options);\r\n if (!formattingProps)\r\n return undefined;\r\n const { formatProps, persistenceUnitName } = formattingProps;\r\n const persistenceUnit = await this._unitsProvider.findUnitByName(persistenceUnitName);\r\n const format = await Format.createFromJSON(\"\", this._unitsProvider, formatProps);\r\n return ParserSpec.create(format, this._unitsProvider, persistenceUnit);\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport class ContentPropertyValueFormatter {\r\n constructor(private _propertyValueFormatter: PropertyValueFormatter, private _unitSystem: UnitSystemKey) { }\r\n\r\n public async formatContent(content: Content) {\r\n const descriptor = content.descriptor;\r\n for (const item of content.contentSet) {\r\n await this.formatValues(item.values, item.displayValues, descriptor.fields, item.mergedFieldNames);\r\n }\r\n return content;\r\n }\r\n\r\n private async formatValues(values: ValuesDictionary<Value>, displayValues: ValuesDictionary<DisplayValue>, fields: Field[], mergedFields: string[]) {\r\n for (const field of fields) {\r\n const value = values[field.name];\r\n if (field.isNestedContentField() && !mergedFields.includes(field.name)) {\r\n assert(Value.isNestedContent(value));\r\n await this.formatNestedContentDisplayValues(value, field.nestedFields);\r\n continue;\r\n }\r\n\r\n if (!this.isFormattable(field) || typeof value !== \"number\")\r\n continue;\r\n\r\n const koq = field.properties[0].property.kindOfQuantity;\r\n const formattedValue = await this._propertyValueFormatter.format(value, { koqName: koq.name, unitSystem: this._unitSystem });\r\n if (!formattedValue)\r\n continue;\r\n\r\n displayValues[field.name] = formattedValue;\r\n }\r\n }\r\n\r\n private async formatNestedContentDisplayValues(nestedValues: NestedContentValue[], fields: Field[]) {\r\n for (const nestedValue of nestedValues) {\r\n await this.formatValues(nestedValue.values, nestedValue.displayValues, fields, nestedValue.mergedFieldNames);\r\n }\r\n }\r\n\r\n private isFormattable(field: Field): field is FormattableField {\r\n return field.isPropertiesField()\r\n && field.properties.length > 0\r\n && field.properties[0].property.kindOfQuantity !== undefined;\r\n }\r\n}\r\n\r\ntype FormattableField = PropertiesField & {\r\n properties: [{\r\n property: PropertyInfo & {\r\n kindOfQuantity: KindOfQuantityInfo;\r\n };\r\n }];\r\n};\r\n\r\ninterface FormattingProps {\r\n formatProps: FormatProps;\r\n persistenceUnitName: string;\r\n}\r\n\r\nasync function getFormattingProps(schemaLocater: ISchemaLocater, options: FormatOptions): Promise<FormattingProps | undefined> {\r\n const { koqName, unitSystem } = options;\r\n\r\n const koq = await getKoq(schemaLocater, koqName);\r\n if (!koq)\r\n return undefined;\r\n\r\n const persistenceUnit = await koq.persistenceUnit;\r\n // istanbul ignore if\r\n if (!persistenceUnit)\r\n return undefined;\r\n\r\n const formatProps = await getKoqFormatProps(koq, persistenceUnit, unitSystem);\r\n if (!formatProps)\r\n return undefined;\r\n\r\n return { formatProps, persistenceUnitName: persistenceUnit.fullName };\r\n}\r\n\r\nasync function getKoq(schemaLocater: ISchemaLocater, fullName: string) {\r\n const [schemaName, propKoqName] = fullName.split(\":\");\r\n const schema = await schemaLocater.getSchema(new SchemaKey(schemaName), SchemaMatchType.Latest);\r\n if (!schema)\r\n return undefined;\r\n\r\n return schema.getItem<KindOfQuantity>(propKoqName);\r\n}\r\n\r\nasync function getKoqFormatProps(koq: KindOfQuantity, persistenceUnit: Unit | InvertedUnit, unitSystem: UnitSystemKey) {\r\n const unitSystems = getUnitSystemGroupNames(unitSystem);\r\n // use one of KOQ presentation format that matches requested unit system\r\n const presentationFormat = await getKoqPresentationFormat(koq, unitSystems);\r\n if (presentationFormat)\r\n return formatToFormatProps(presentationFormat);\r\n\r\n // use persistence unit format if it matches requested unit system and matching presentation format was not found\r\n const persistenceUnitSystem = await persistenceUnit.unitSystem;\r\n if (persistenceUnitSystem && unitSystems.includes(persistenceUnitSystem.name.toUpperCase()))\r\n return getPersistenceUnitFormatProps(persistenceUnit);\r\n\r\n // use default presentation format if persistence unit does not match requested unit system\r\n if (koq.defaultPresentationFormat)\r\n return formatToFormatProps(koq.defaultPresentationFormat);\r\n\r\n return undefined;\r\n}\r\n\r\nasync function getKoqPresentationFormat(koq: KindOfQuantity, unitSystems: string[]) {\r\n const presentationFormats = koq.presentationFormats;\r\n for (const system of unitSystems) {\r\n for (const format of presentationFormats) {\r\n const unit = format.units && format.units[0][0];\r\n // istanbul ignore if\r\n if (!unit)\r\n continue;\r\n\r\n const currentUnitSystem = await unit.unitSystem;\r\n if (currentUnitSystem && currentUnitSystem.name.toUpperCase() === system)\r\n return format;\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction formatToFormatProps(format: ECFormat | OverrideFormat): FormatProps {\r\n // istanbul ignore if\r\n if (OverrideFormat.isOverrideFormat(format)) {\r\n const baseFormat = baseFormatToFormatProps(format.parent);\r\n return {\r\n ...baseFormat,\r\n composite: format.units\r\n ? {\r\n ...baseFormat.composite,\r\n units: format.units.map(([unit, _]) => ({ name: unit.fullName, label: unit.label })),\r\n spacer: format.spacer,\r\n includeZero: format.includeZero,\r\n }\r\n : baseFormat.composite,\r\n };\r\n }\r\n return baseFormatToFormatProps(format);\r\n}\r\n\r\nfunction baseFormatToFormatProps(format: ECFormat): FormatProps {\r\n const json = format.toJSON();\r\n return {\r\n ...json,\r\n composite: json.composite\r\n ? {\r\n ...json.composite,\r\n spacer: format.spacer,\r\n includeZero: format.includeZero,\r\n }\r\n : /* istanbul ignore next */ undefined,\r\n };\r\n}\r\n\r\nfunction getPersistenceUnitFormatProps(persistenceUnit: Unit | InvertedUnit): FormatProps {\r\n // Same as Format \"DefaultRealU\" in Formats ecschema\r\n return {\r\n formatTraits: [\"keepSingleZero\", \"keepDecimalPoint\", \"showUnitLabel\"],\r\n precision: 6,\r\n type: \"Decimal\",\r\n uomSeparator: \" \",\r\n decimalSeparator: \".\",\r\n composite: {\r\n units: [{\r\n name: persistenceUnit.fullName,\r\n label: persistenceUnit.label,\r\n }],\r\n },\r\n };\r\n}\r\n\r\nfunction getUnitSystemGroupNames(unitSystem: UnitSystemKey) {\r\n switch (unitSystem) {\r\n case \"imperial\":\r\n return [\"IMPERIAL\", \"USCUSTOM\", \"INTERNATIONAL\", \"FINANCE\"];\r\n case \"metric\":\r\n return [\"SI\", \"METRIC\", \"INTERNATIONAL\", \"FINANCE\"];\r\n case \"usCustomary\":\r\n return [\"USCUSTOM\", \"INTERNATIONAL\", \"FINANCE\"];\r\n case \"usSurvey\":\r\n return [\"USSURVEY\", \"USCUSTOM\", \"INTERNATIONAL\", \"FINANCE\"];\r\n }\r\n}\r\n"]}
@@ -1,27 +1,27 @@
1
- /** @packageDocumentation
2
- * @module Core
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";
8
- /**
9
- * A ruleset that is registered in a ruleset manager.
10
- * @public
11
- */
12
- export declare class RegisteredRuleset implements IDisposable, Ruleset {
13
- private _ruleset;
14
- private _uniqueIdentifier;
15
- private _disposeFunc;
16
- /** Create a registered ruleset */
17
- constructor(ruleset: Ruleset, uniqueIdentifier: string, disposeFunc: (ruleset: RegisteredRuleset) => void);
18
- /** Dispose registered ruleset. */
19
- dispose(): void;
20
- get uniqueIdentifier(): string;
21
- get id(): string;
22
- get supplementationInfo(): SupplementationInfo | undefined;
23
- get rules(): Rule[];
24
- get vars(): VariablesGroup[] | undefined;
25
- toJSON(): Ruleset;
26
- }
1
+ /** @packageDocumentation
2
+ * @module Core
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";
8
+ /**
9
+ * A ruleset that is registered in a ruleset manager.
10
+ * @public
11
+ */
12
+ export declare class RegisteredRuleset implements IDisposable, Ruleset {
13
+ private _ruleset;
14
+ private _uniqueIdentifier;
15
+ private _disposeFunc;
16
+ /** Create a registered ruleset */
17
+ constructor(ruleset: Ruleset, uniqueIdentifier: string, disposeFunc: (ruleset: RegisteredRuleset) => void);
18
+ /** Dispose registered ruleset. */
19
+ dispose(): void;
20
+ get uniqueIdentifier(): string;
21
+ get id(): string;
22
+ get supplementationInfo(): SupplementationInfo | undefined;
23
+ get rules(): Rule[];
24
+ get vars(): VariablesGroup[] | undefined;
25
+ toJSON(): Ruleset;
26
+ }
27
27
  //# sourceMappingURL=RegisteredRuleset.d.ts.map