@itwin/presentation-common 3.4.0 → 3.4.1

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 (458) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/assets/locales/en/BisCore.json +18 -18
  3. package/lib/cjs/assets/locales/en/ECPresentation.json +9 -9
  4. package/lib/cjs/assets/locales/en/RulesEngine.json +5 -5
  5. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  6. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  7. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  8. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  9. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  10. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  11. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  12. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  13. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  14. package/lib/cjs/presentation-common/EC.d.ts +315 -315
  15. package/lib/cjs/presentation-common/EC.js +270 -270
  16. package/lib/cjs/presentation-common/EC.js.map +1 -1
  17. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  18. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  19. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  20. package/lib/cjs/presentation-common/Error.d.ts +45 -45
  21. package/lib/cjs/presentation-common/Error.js +62 -62
  22. package/lib/cjs/presentation-common/Error.js.map +1 -1
  23. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  24. package/lib/cjs/presentation-common/KeySet.js +418 -418
  25. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  26. package/lib/cjs/presentation-common/LabelDefinition.d.ts +79 -79
  27. package/lib/cjs/presentation-common/LabelDefinition.js +76 -76
  28. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  29. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  30. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  31. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  32. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +37 -37
  33. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  34. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  35. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +242 -242
  36. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  37. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  38. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +181 -181
  39. package/lib/cjs/presentation-common/PresentationRpcInterface.js +102 -102
  40. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  41. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  42. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  43. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  44. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -82
  45. package/lib/cjs/presentation-common/RpcRequestsHandler.js +155 -155
  46. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  47. package/lib/cjs/presentation-common/RulesetVariables.d.ts +166 -166
  48. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  49. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  50. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  51. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  52. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  53. package/lib/cjs/presentation-common/Update.d.ts +194 -194
  54. package/lib/cjs/presentation-common/Update.js +196 -196
  55. package/lib/cjs/presentation-common/Update.js.map +1 -1
  56. package/lib/cjs/presentation-common/Utils.d.ts +64 -64
  57. package/lib/cjs/presentation-common/Utils.js +45 -45
  58. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  59. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  60. package/lib/cjs/presentation-common/content/Category.js +49 -49
  61. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  62. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  63. package/lib/cjs/presentation-common/content/Content.js +56 -56
  64. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  65. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +101 -101
  66. package/lib/cjs/presentation-common/content/ContentTraverser.js +420 -420
  67. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  68. package/lib/cjs/presentation-common/content/Descriptor.d.ts +240 -240
  69. package/lib/cjs/presentation-common/content/Descriptor.js +189 -189
  70. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  71. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  72. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  73. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  74. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  75. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  76. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  77. package/lib/cjs/presentation-common/content/Fields.d.ts +282 -282
  78. package/lib/cjs/presentation-common/content/Fields.js +394 -394
  79. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/Item.d.ts +87 -87
  81. package/lib/cjs/presentation-common/content/Item.js +86 -86
  82. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  83. package/lib/cjs/presentation-common/content/Property.d.ts +51 -51
  84. package/lib/cjs/presentation-common/content/Property.js +36 -36
  85. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  87. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  88. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  89. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  90. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  91. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/Value.d.ts +157 -157
  93. package/lib/cjs/presentation-common/content/Value.js +217 -217
  94. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  95. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +185 -185
  96. package/lib/cjs/presentation-common/hierarchy/Key.js +112 -112
  97. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  98. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +141 -141
  99. package/lib/cjs/presentation-common/hierarchy/Node.js +97 -97
  100. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  101. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +85 -85
  102. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +98 -98
  103. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  104. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  105. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  106. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  107. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  108. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  109. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  110. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  111. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  112. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  113. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +53 -53
  114. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  115. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  116. package/lib/cjs/presentation-common/rules/Rule.d.ts +74 -74
  117. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  118. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  119. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +66 -66
  120. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  121. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  122. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  123. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  124. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  125. package/lib/cjs/presentation-common/rules/Variables.d.ts +55 -55
  126. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  127. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  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/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  132. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  133. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  135. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  136. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  137. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +55 -55
  138. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  139. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  140. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  141. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  142. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  143. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  144. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  145. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  146. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  147. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  148. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  149. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  150. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  151. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  152. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  153. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  154. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  155. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  156. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  157. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  158. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  159. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  160. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  161. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +105 -105
  162. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  163. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  164. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +93 -93
  165. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  166. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  167. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  168. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  169. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  170. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  171. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  172. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  173. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  174. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  175. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  176. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +200 -200
  177. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  178. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  179. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  180. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  181. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  182. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +156 -156
  183. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  184. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  185. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  186. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  187. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  188. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  189. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  190. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  191. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  192. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  193. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  194. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +15 -15
  195. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  196. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  197. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +97 -97
  198. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +22 -22
  199. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  200. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  201. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  202. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  203. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +76 -76
  204. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  205. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  206. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  207. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  208. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  209. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  210. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  211. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  213. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  214. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  216. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  217. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  218. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +17 -17
  219. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  220. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  221. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +36 -36
  222. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  223. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  224. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +25 -25
  225. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  226. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  227. package/lib/cjs/presentation-common.d.ts +110 -110
  228. package/lib/cjs/presentation-common.js +126 -126
  229. package/lib/cjs/presentation-common.js.map +1 -1
  230. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  231. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  232. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  233. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  234. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  235. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  236. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  237. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  238. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  239. package/lib/esm/presentation-common/EC.d.ts +315 -315
  240. package/lib/esm/presentation-common/EC.js +267 -267
  241. package/lib/esm/presentation-common/EC.js.map +1 -1
  242. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  243. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  244. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  245. package/lib/esm/presentation-common/Error.d.ts +45 -45
  246. package/lib/esm/presentation-common/Error.js +58 -58
  247. package/lib/esm/presentation-common/Error.js.map +1 -1
  248. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  249. package/lib/esm/presentation-common/KeySet.js +414 -414
  250. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  251. package/lib/esm/presentation-common/LabelDefinition.d.ts +79 -79
  252. package/lib/esm/presentation-common/LabelDefinition.js +73 -73
  253. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  254. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  255. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  256. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  257. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +37 -37
  258. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  259. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  260. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +242 -242
  261. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  262. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  263. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +181 -181
  264. package/lib/esm/presentation-common/PresentationRpcInterface.js +98 -98
  265. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  266. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  267. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  268. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  269. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -82
  270. package/lib/esm/presentation-common/RpcRequestsHandler.js +151 -151
  271. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  272. package/lib/esm/presentation-common/RulesetVariables.d.ts +166 -166
  273. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  274. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  275. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  276. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  277. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  278. package/lib/esm/presentation-common/Update.d.ts +194 -194
  279. package/lib/esm/presentation-common/Update.js +193 -193
  280. package/lib/esm/presentation-common/Update.js.map +1 -1
  281. package/lib/esm/presentation-common/Utils.d.ts +64 -64
  282. package/lib/esm/presentation-common/Utils.js +41 -41
  283. package/lib/esm/presentation-common/Utils.js.map +1 -1
  284. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  285. package/lib/esm/presentation-common/content/Category.js +46 -46
  286. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  287. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  288. package/lib/esm/presentation-common/content/Content.js +52 -52
  289. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  290. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +101 -101
  291. package/lib/esm/presentation-common/content/ContentTraverser.js +411 -411
  292. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  293. package/lib/esm/presentation-common/content/Descriptor.d.ts +240 -240
  294. package/lib/esm/presentation-common/content/Descriptor.js +185 -185
  295. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  296. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  297. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  298. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  299. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  300. package/lib/esm/presentation-common/content/Editor.js +8 -8
  301. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  302. package/lib/esm/presentation-common/content/Fields.d.ts +282 -282
  303. package/lib/esm/presentation-common/content/Fields.js +387 -387
  304. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  305. package/lib/esm/presentation-common/content/Item.d.ts +87 -87
  306. package/lib/esm/presentation-common/content/Item.js +82 -82
  307. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  308. package/lib/esm/presentation-common/content/Property.d.ts +51 -51
  309. package/lib/esm/presentation-common/content/Property.js +33 -33
  310. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  311. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  312. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  313. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  314. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  315. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  316. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  317. package/lib/esm/presentation-common/content/Value.d.ts +157 -157
  318. package/lib/esm/presentation-common/content/Value.js +214 -214
  319. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  320. package/lib/esm/presentation-common/hierarchy/Key.d.ts +185 -185
  321. package/lib/esm/presentation-common/hierarchy/Key.js +109 -109
  322. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  323. package/lib/esm/presentation-common/hierarchy/Node.d.ts +141 -141
  324. package/lib/esm/presentation-common/hierarchy/Node.js +94 -94
  325. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  326. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +85 -85
  327. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +95 -95
  328. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  329. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  330. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  331. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  332. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  333. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  334. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  335. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  336. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  337. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  338. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +53 -53
  339. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  340. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  341. package/lib/esm/presentation-common/rules/Rule.d.ts +74 -74
  342. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  343. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  344. package/lib/esm/presentation-common/rules/Ruleset.d.ts +66 -66
  345. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  346. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  347. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  348. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  349. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  350. package/lib/esm/presentation-common/rules/Variables.d.ts +55 -55
  351. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  352. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  353. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  354. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  355. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  356. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  357. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  358. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  359. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  360. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  361. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  362. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +55 -55
  363. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  364. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  365. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  366. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  367. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  368. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  369. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  370. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  371. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  372. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  373. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  374. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  375. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  376. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  377. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  378. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  379. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  380. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  381. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  382. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  383. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  384. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  385. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  386. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +105 -105
  387. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  388. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  389. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +93 -93
  390. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  391. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  392. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  393. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  394. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  395. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  396. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  397. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  398. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  399. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  400. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  401. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +200 -200
  402. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  403. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  404. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  405. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  406. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  407. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +156 -156
  408. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  409. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  410. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  411. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  412. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  413. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  414. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  415. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  416. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  417. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  418. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  419. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +15 -15
  420. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  421. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  422. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +97 -97
  423. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +19 -19
  424. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  425. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  426. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  427. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  428. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +76 -76
  429. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  430. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  431. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  432. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  433. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  434. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  435. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  436. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  437. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  438. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  439. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  440. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  441. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  442. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  443. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +17 -17
  444. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  445. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  446. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +36 -36
  447. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  448. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  449. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +25 -25
  450. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  451. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  452. package/lib/esm/presentation-common.d.ts +110 -110
  453. package/lib/esm/presentation-common.js +114 -114
  454. package/lib/esm/presentation-common.js.map +1 -1
  455. package/lib/public/locales/en/BisCore.json +18 -18
  456. package/lib/public/locales/en/ECPresentation.json +9 -9
  457. package/lib/public/locales/en/RulesEngine.json +5 -5
  458. package/package.json +9 -9
@@ -1,186 +1,186 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Content
7
- */
8
- import { assert } from "@itwin/core-bentley";
9
- import { RelatedClassInfo, RelatedClassInfoWithOptionalRelationship, } from "../EC";
10
- import { CategoryDescription } from "./Category";
11
- import { Field, getFieldByName } from "./Fields";
12
- /** @public */
13
- export var SelectClassInfo;
14
- (function (SelectClassInfo) {
15
- /** Deserialize [[SelectClassInfo]] from compressed JSON */
16
- function fromCompressedJSON(json, classesMap) {
17
- assert(classesMap.hasOwnProperty(json.selectClassInfo));
18
- return {
19
- selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },
20
- isSelectPolymorphic: json.isSelectPolymorphic,
21
- ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),
22
- ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),
23
- ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),
24
- ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),
25
- };
26
- }
27
- SelectClassInfo.fromCompressedJSON = fromCompressedJSON;
28
- /** Serialize [[SelectClassInfo]] to compressed JSON */
29
- function toCompressedJSON(selectClass, classesMap) {
30
- const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;
31
- classesMap[id] = leftOverClassInfo;
32
- return {
33
- selectClassInfo: id,
34
- isSelectPolymorphic: selectClass.isSelectPolymorphic,
35
- ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),
36
- ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),
37
- ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),
38
- ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),
39
- };
40
- }
41
- SelectClassInfo.toCompressedJSON = toCompressedJSON;
42
- /**
43
- * Deserialize [[SelectClassInfo]] list from JSON
44
- * @param json JSON or JSON serialized to string to deserialize from
45
- * @returns Deserialized [[SelectClassInfo]] objects list
46
- *
47
- * @internal
48
- */
49
- function listFromCompressedJSON(json, classesMap) {
50
- return json.map((sci) => fromCompressedJSON(sci, classesMap));
51
- }
52
- SelectClassInfo.listFromCompressedJSON = listFromCompressedJSON;
53
- })(SelectClassInfo || (SelectClassInfo = {}));
54
- /**
55
- * Flags that control content format.
56
- * @public
57
- */
58
- export var ContentFlags;
59
- (function (ContentFlags) {
60
- /** Each content record only has [[InstanceKey]] and no data */
61
- ContentFlags[ContentFlags["KeysOnly"] = 1] = "KeysOnly";
62
- /**
63
- * Each content record additionally has an image id
64
- * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.
65
- */
66
- ContentFlags[ContentFlags["ShowImages"] = 2] = "ShowImages";
67
- /** Each content record additionally has a display label */
68
- ContentFlags[ContentFlags["ShowLabels"] = 4] = "ShowLabels";
69
- /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */
70
- ContentFlags[ContentFlags["MergeResults"] = 8] = "MergeResults";
71
- /** Content has only distinct values */
72
- ContentFlags[ContentFlags["DistinctValues"] = 16] = "DistinctValues";
73
- /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */
74
- ContentFlags[ContentFlags["NoFields"] = 32] = "NoFields";
75
- /**
76
- * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which
77
- * given input key at the cost of performance creating those items.
78
- *
79
- * @beta
80
- */
81
- ContentFlags[ContentFlags["IncludeInputKeys"] = 256] = "IncludeInputKeys";
82
- /**
83
- * Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain
84
- * operations to make obtaining content descriptor faster.
85
- * @internal
86
- */
87
- ContentFlags[ContentFlags["DescriptorOnly"] = 512] = "DescriptorOnly";
88
- })(ContentFlags || (ContentFlags = {}));
89
- /**
90
- * Data sorting direction
91
- * @public
92
- */
93
- export var SortDirection;
94
- (function (SortDirection) {
95
- SortDirection[SortDirection["Ascending"] = 0] = "Ascending";
96
- SortDirection[SortDirection["Descending"] = 1] = "Descending";
97
- })(SortDirection || (SortDirection = {}));
98
- /**
99
- * Data structure that describes content: fields, sorting, filtering, format, etc.
100
- * Descriptor may be changed to control how content is created.
101
- *
102
- * @public
103
- */
104
- export class Descriptor {
105
- /** Construct a new Descriptor using a [[DescriptorSource]] */
106
- constructor(source) {
107
- this.connectionId = source.connectionId;
108
- this.inputKeysHash = source.inputKeysHash;
109
- this.selectionInfo = source.selectionInfo;
110
- this.displayType = source.displayType;
111
- this.contentFlags = source.contentFlags;
112
- this.selectClasses = [...source.selectClasses];
113
- this.categories = [...source.categories];
114
- this.fields = [...source.fields];
115
- this.sortingField = source.sortingField;
116
- this.sortDirection = source.sortDirection;
117
- this.filterExpression = source.filterExpression;
118
- }
119
- /** Serialize [[Descriptor]] to JSON */
120
- toJSON() {
121
- const classesMap = {};
122
- const selectClasses = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));
123
- const fields = this.fields.map((field) => field.toCompressedJSON(classesMap));
124
- return Object.assign({
125
- connectionId: this.connectionId,
126
- inputKeysHash: this.inputKeysHash,
127
- contentOptions: this.contentOptions,
128
- displayType: this.displayType,
129
- contentFlags: this.contentFlags,
130
- categories: this.categories.map(CategoryDescription.toJSON),
131
- fields,
132
- selectClasses,
133
- classesMap,
134
- }, this.sortingField !== undefined && { sortingFieldName: this.sortingField.name }, this.sortDirection !== undefined && { sortDirection: this.sortDirection }, this.filterExpression !== undefined && { filterExpression: this.filterExpression }, this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo });
135
- }
136
- /** Deserialize [[Descriptor]] from JSON */
137
- static fromJSON(json) {
138
- if (!json)
139
- return undefined;
140
- const { classesMap, ...leftOverJson } = json;
141
- const categories = CategoryDescription.listFromJSON(json.categories);
142
- const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);
143
- const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));
144
- return new Descriptor({
145
- ...leftOverJson,
146
- selectClasses,
147
- categories,
148
- fields,
149
- sortingField: getFieldByName(fields, json.sortingFieldName, true),
150
- });
151
- }
152
- static getFieldsFromJSON(json, factory) {
153
- return json.map((fieldJson) => {
154
- const field = factory(fieldJson);
155
- if (field)
156
- field.rebuildParentship();
157
- return field;
158
- }).filter((field) => !!field);
159
- }
160
- /**
161
- * Get field by its name
162
- * @param name Name of the field to find
163
- * @param recurse Recurse into nested fields
164
- */
165
- getFieldByName(name, recurse) {
166
- return getFieldByName(this.fields, name, recurse);
167
- }
168
- /**
169
- * Create descriptor overrides object from this descriptor.
170
- * @public
171
- */
172
- createDescriptorOverrides() {
173
- var _a;
174
- const overrides = {};
175
- if (this.displayType)
176
- overrides.displayType = this.displayType;
177
- if (this.contentFlags !== 0)
178
- overrides.contentFlags = this.contentFlags;
179
- if (this.filterExpression)
180
- overrides.filterExpression = this.filterExpression;
181
- if (this.sortingField)
182
- overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: (_a = this.sortDirection) !== null && _a !== void 0 ? _a : SortDirection.Ascending };
183
- return overrides;
184
- }
185
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Content
7
+ */
8
+ import { assert } from "@itwin/core-bentley";
9
+ import { RelatedClassInfo, RelatedClassInfoWithOptionalRelationship, } from "../EC";
10
+ import { CategoryDescription } from "./Category";
11
+ import { Field, getFieldByName } from "./Fields";
12
+ /** @public */
13
+ export var SelectClassInfo;
14
+ (function (SelectClassInfo) {
15
+ /** Deserialize [[SelectClassInfo]] from compressed JSON */
16
+ function fromCompressedJSON(json, classesMap) {
17
+ assert(classesMap.hasOwnProperty(json.selectClassInfo));
18
+ return {
19
+ selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },
20
+ isSelectPolymorphic: json.isSelectPolymorphic,
21
+ ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),
22
+ ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),
23
+ ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),
24
+ ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),
25
+ };
26
+ }
27
+ SelectClassInfo.fromCompressedJSON = fromCompressedJSON;
28
+ /** Serialize [[SelectClassInfo]] to compressed JSON */
29
+ function toCompressedJSON(selectClass, classesMap) {
30
+ const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;
31
+ classesMap[id] = leftOverClassInfo;
32
+ return {
33
+ selectClassInfo: id,
34
+ isSelectPolymorphic: selectClass.isSelectPolymorphic,
35
+ ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),
36
+ ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),
37
+ ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),
38
+ ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),
39
+ };
40
+ }
41
+ SelectClassInfo.toCompressedJSON = toCompressedJSON;
42
+ /**
43
+ * Deserialize [[SelectClassInfo]] list from JSON
44
+ * @param json JSON or JSON serialized to string to deserialize from
45
+ * @returns Deserialized [[SelectClassInfo]] objects list
46
+ *
47
+ * @internal
48
+ */
49
+ function listFromCompressedJSON(json, classesMap) {
50
+ return json.map((sci) => fromCompressedJSON(sci, classesMap));
51
+ }
52
+ SelectClassInfo.listFromCompressedJSON = listFromCompressedJSON;
53
+ })(SelectClassInfo || (SelectClassInfo = {}));
54
+ /**
55
+ * Flags that control content format.
56
+ * @public
57
+ */
58
+ export var ContentFlags;
59
+ (function (ContentFlags) {
60
+ /** Each content record only has [[InstanceKey]] and no data */
61
+ ContentFlags[ContentFlags["KeysOnly"] = 1] = "KeysOnly";
62
+ /**
63
+ * Each content record additionally has an image id
64
+ * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.
65
+ */
66
+ ContentFlags[ContentFlags["ShowImages"] = 2] = "ShowImages";
67
+ /** Each content record additionally has a display label */
68
+ ContentFlags[ContentFlags["ShowLabels"] = 4] = "ShowLabels";
69
+ /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */
70
+ ContentFlags[ContentFlags["MergeResults"] = 8] = "MergeResults";
71
+ /** Content has only distinct values */
72
+ ContentFlags[ContentFlags["DistinctValues"] = 16] = "DistinctValues";
73
+ /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */
74
+ ContentFlags[ContentFlags["NoFields"] = 32] = "NoFields";
75
+ /**
76
+ * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which
77
+ * given input key at the cost of performance creating those items.
78
+ *
79
+ * @beta
80
+ */
81
+ ContentFlags[ContentFlags["IncludeInputKeys"] = 256] = "IncludeInputKeys";
82
+ /**
83
+ * Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain
84
+ * operations to make obtaining content descriptor faster.
85
+ * @internal
86
+ */
87
+ ContentFlags[ContentFlags["DescriptorOnly"] = 512] = "DescriptorOnly";
88
+ })(ContentFlags || (ContentFlags = {}));
89
+ /**
90
+ * Data sorting direction
91
+ * @public
92
+ */
93
+ export var SortDirection;
94
+ (function (SortDirection) {
95
+ SortDirection[SortDirection["Ascending"] = 0] = "Ascending";
96
+ SortDirection[SortDirection["Descending"] = 1] = "Descending";
97
+ })(SortDirection || (SortDirection = {}));
98
+ /**
99
+ * Data structure that describes content: fields, sorting, filtering, format, etc.
100
+ * Descriptor may be changed to control how content is created.
101
+ *
102
+ * @public
103
+ */
104
+ export class Descriptor {
105
+ /** Construct a new Descriptor using a [[DescriptorSource]] */
106
+ constructor(source) {
107
+ this.connectionId = source.connectionId;
108
+ this.inputKeysHash = source.inputKeysHash;
109
+ this.selectionInfo = source.selectionInfo;
110
+ this.displayType = source.displayType;
111
+ this.contentFlags = source.contentFlags;
112
+ this.selectClasses = [...source.selectClasses];
113
+ this.categories = [...source.categories];
114
+ this.fields = [...source.fields];
115
+ this.sortingField = source.sortingField;
116
+ this.sortDirection = source.sortDirection;
117
+ this.filterExpression = source.filterExpression;
118
+ }
119
+ /** Serialize [[Descriptor]] to JSON */
120
+ toJSON() {
121
+ const classesMap = {};
122
+ const selectClasses = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));
123
+ const fields = this.fields.map((field) => field.toCompressedJSON(classesMap));
124
+ return Object.assign({
125
+ connectionId: this.connectionId,
126
+ inputKeysHash: this.inputKeysHash,
127
+ contentOptions: this.contentOptions,
128
+ displayType: this.displayType,
129
+ contentFlags: this.contentFlags,
130
+ categories: this.categories.map(CategoryDescription.toJSON),
131
+ fields,
132
+ selectClasses,
133
+ classesMap,
134
+ }, this.sortingField !== undefined && { sortingFieldName: this.sortingField.name }, this.sortDirection !== undefined && { sortDirection: this.sortDirection }, this.filterExpression !== undefined && { filterExpression: this.filterExpression }, this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo });
135
+ }
136
+ /** Deserialize [[Descriptor]] from JSON */
137
+ static fromJSON(json) {
138
+ if (!json)
139
+ return undefined;
140
+ const { classesMap, ...leftOverJson } = json;
141
+ const categories = CategoryDescription.listFromJSON(json.categories);
142
+ const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);
143
+ const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));
144
+ return new Descriptor({
145
+ ...leftOverJson,
146
+ selectClasses,
147
+ categories,
148
+ fields,
149
+ sortingField: getFieldByName(fields, json.sortingFieldName, true),
150
+ });
151
+ }
152
+ static getFieldsFromJSON(json, factory) {
153
+ return json.map((fieldJson) => {
154
+ const field = factory(fieldJson);
155
+ if (field)
156
+ field.rebuildParentship();
157
+ return field;
158
+ }).filter((field) => !!field);
159
+ }
160
+ /**
161
+ * Get field by its name
162
+ * @param name Name of the field to find
163
+ * @param recurse Recurse into nested fields
164
+ */
165
+ getFieldByName(name, recurse) {
166
+ return getFieldByName(this.fields, name, recurse);
167
+ }
168
+ /**
169
+ * Create descriptor overrides object from this descriptor.
170
+ * @public
171
+ */
172
+ createDescriptorOverrides() {
173
+ var _a;
174
+ const overrides = {};
175
+ if (this.displayType)
176
+ overrides.displayType = this.displayType;
177
+ if (this.contentFlags !== 0)
178
+ overrides.contentFlags = this.contentFlags;
179
+ if (this.filterExpression)
180
+ overrides.filterExpression = this.filterExpression;
181
+ if (this.sortingField)
182
+ overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: (_a = this.sortDirection) !== null && _a !== void 0 ? _a : SortDirection.Ascending };
183
+ return overrides;
184
+ }
185
+ }
186
186
  //# sourceMappingURL=Descriptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.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 Content\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship,\r\n RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON,\r\n} from \"../EC\";\r\nimport { CategoryDescription, CategoryDescriptionJSON } from \"./Category\";\r\nimport { Field, FieldDescriptor, FieldJSON, getFieldByName } from \"./Fields\";\r\n\r\n/**\r\n * Data structure that describes an ECClass in content [[Descriptor]].\r\n * @public\r\n */\r\nexport interface SelectClassInfo {\r\n /** Information about the ECClass */\r\n selectClassInfo: ClassInfo;\r\n\r\n /** Is the class handled polymorphically */\r\n isSelectPolymorphic: boolean;\r\n\r\n /** Relationship path from input class to the select class. */\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationship[];\r\n\r\n /** Relationship paths to [related property]($docs/presentation/content/Terminology#related-properties) classes */\r\n relatedPropertyPaths?: RelationshipPath[];\r\n\r\n /** Relationship paths to navigation property classes */\r\n navigationPropertyClasses?: RelatedClassInfo[];\r\n\r\n /** Relationship paths to [related instance]($docs/presentation/content/Terminology#related-instance) classes. */\r\n relatedInstancePaths?: RelationshipPath[];\r\n}\r\n\r\n/**\r\n * Serialized [[SelectClassInfo]] JSON representation\r\n * @public\r\n */\r\nexport interface SelectClassInfoJSON<TClassInfoJSON = ClassInfoJSON> {\r\n selectClassInfo: TClassInfoJSON;\r\n isSelectPolymorphic: boolean;\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationshipJSON<TClassInfoJSON>[];\r\n relatedPropertyPaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n navigationPropertyClasses?: RelatedClassInfoJSON<TClassInfoJSON>[];\r\n relatedInstancePaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/** @public */\r\nexport namespace SelectClassInfo {\r\n /** Deserialize [[SelectClassInfo]] from compressed JSON */\r\n export function fromCompressedJSON(json: SelectClassInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo {\r\n assert(classesMap.hasOwnProperty(json.selectClassInfo));\r\n return {\r\n selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },\r\n isSelectPolymorphic: json.isSelectPolymorphic,\r\n ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /** Serialize [[SelectClassInfo]] to compressed JSON */\r\n export function toCompressedJSON(selectClass: SelectClassInfo, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfoJSON<string> {\r\n const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;\r\n classesMap[id] = leftOverClassInfo;\r\n return {\r\n selectClassInfo: id,\r\n isSelectPolymorphic: selectClass.isSelectPolymorphic,\r\n ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),\r\n ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),\r\n ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),\r\n ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[SelectClassInfo]] list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized [[SelectClassInfo]] objects list\r\n *\r\n * @internal\r\n */\r\n export function listFromCompressedJSON(json: SelectClassInfoJSON<Id64String>[], classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo[] {\r\n return json.map((sci) => fromCompressedJSON(sci, classesMap));\r\n }\r\n}\r\n\r\n/**\r\n * Flags that control content format.\r\n * @public\r\n */\r\nexport enum ContentFlags {\r\n /** Each content record only has [[InstanceKey]] and no data */\r\n KeysOnly = 1 << 0,\r\n\r\n /**\r\n * Each content record additionally has an image id\r\n * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n ShowImages = 1 << 1,\r\n\r\n /** Each content record additionally has a display label */\r\n ShowLabels = 1 << 2,\r\n\r\n /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */\r\n MergeResults = 1 << 3,\r\n\r\n /** Content has only distinct values */\r\n DistinctValues = 1 << 4,\r\n\r\n /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */\r\n NoFields = 1 << 5,\r\n\r\n /**\r\n * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which\r\n * given input key at the cost of performance creating those items.\r\n *\r\n * @beta\r\n */\r\n IncludeInputKeys = 1 << 8,\r\n\r\n /**\r\n * Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain\r\n * operations to make obtaining content descriptor faster.\r\n * @internal\r\n */\r\n DescriptorOnly = 1 << 9,\r\n}\r\n\r\n/**\r\n * Data sorting direction\r\n * @public\r\n */\r\nexport enum SortDirection {\r\n Ascending,\r\n Descending,\r\n}\r\n\r\n/**\r\n * Data structure that contains selection information. Used\r\n * for cases when requesting content after a selection change.\r\n *\r\n * @public\r\n */\r\nexport interface SelectionInfo {\r\n /** Name of selection provider which cause the selection change */\r\n providerName: string;\r\n /** Level of selection that changed */\r\n level?: number;\r\n}\r\n\r\n/**\r\n * Serialized [[Descriptor]] JSON representation.\r\n * @public\r\n */\r\nexport interface DescriptorJSON {\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n connectionId: string;\r\n inputKeysHash: string;\r\n contentOptions: any;\r\n selectionInfo?: SelectionInfo;\r\n displayType: string;\r\n selectClasses: SelectClassInfoJSON<Id64String>[];\r\n categories: CategoryDescriptionJSON[];\r\n fields: FieldJSON<Id64String>[];\r\n sortingFieldName?: string;\r\n sortDirection?: SortDirection;\r\n contentFlags: number;\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor overrides that can be used to customize content\r\n * @public\r\n */\r\nexport interface DescriptorOverrides {\r\n /**\r\n * Content display type. Can be accessed in presentation rules and used\r\n * to modify content in various ways. Defaults to empty string.\r\n */\r\n displayType?: string;\r\n\r\n /** Content flags used for content customization. See [[ContentFlags]] */\r\n contentFlags?: number;\r\n\r\n /** Fields selector that allows excluding or including only specified fields. */\r\n fieldsSelector?: {\r\n /** Should the specified fields be included or excluded */\r\n type: \"include\" | \"exclude\";\r\n /** A list of field descriptors that identify fields to include / exclude */\r\n fields: FieldDescriptor[];\r\n };\r\n\r\n /** Specification for sorting data. */\r\n sorting?: {\r\n /** Identifier of the field to use for sorting */\r\n field: FieldDescriptor;\r\n /** Sort direction */\r\n direction: SortDirection;\r\n };\r\n\r\n /** [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content */\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor properties\r\n * @public\r\n */\r\nexport interface DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n readonly inputKeysHash?: string;\r\n /** Selection info used to create the descriptor */\r\n readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n readonly displayType: string;\r\n /** A list of classes that will be selected from when creating content with this descriptor */\r\n readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n readonly sortingField?: Field;\r\n /** Sorting direction */\r\n readonly sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n readonly filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes content: fields, sorting, filtering, format, etc.\r\n * Descriptor may be changed to control how content is created.\r\n *\r\n * @public\r\n */\r\nexport class Descriptor implements DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n public readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n public readonly inputKeysHash?: string;\r\n /** Extended options used to create the descriptor */\r\n public readonly contentOptions: any;\r\n /** Selection info used to create the descriptor */\r\n public readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n public readonly displayType: string;\r\n /** A list of classes that will be selected when creating content with this descriptor */\r\n public readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n public readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n public readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n public readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n public sortingField?: Field;\r\n /** Sorting direction */\r\n public sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n public filterExpression?: string;\r\n\r\n /** Construct a new Descriptor using a [[DescriptorSource]] */\r\n public constructor(source: DescriptorSource) {\r\n this.connectionId = source.connectionId;\r\n this.inputKeysHash = source.inputKeysHash;\r\n this.selectionInfo = source.selectionInfo;\r\n this.displayType = source.displayType;\r\n this.contentFlags = source.contentFlags;\r\n this.selectClasses = [...source.selectClasses];\r\n this.categories = [...source.categories];\r\n this.fields = [...source.fields];\r\n this.sortingField = source.sortingField;\r\n this.sortDirection = source.sortDirection;\r\n this.filterExpression = source.filterExpression;\r\n }\r\n\r\n /** Serialize [[Descriptor]] to JSON */\r\n public toJSON(): DescriptorJSON {\r\n const classesMap: { [id: string]: CompressedClassInfoJSON } = {};\r\n const selectClasses: SelectClassInfoJSON<string>[] = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));\r\n const fields: FieldJSON<string>[] = this.fields.map((field) => field.toCompressedJSON(classesMap));\r\n return Object.assign(\r\n {\r\n connectionId: this.connectionId,\r\n inputKeysHash: this.inputKeysHash,\r\n contentOptions: this.contentOptions,\r\n displayType: this.displayType,\r\n contentFlags: this.contentFlags,\r\n categories: this.categories.map(CategoryDescription.toJSON),\r\n fields,\r\n selectClasses,\r\n classesMap,\r\n },\r\n this.sortingField !== undefined && { sortingFieldName: this.sortingField.name },\r\n this.sortDirection !== undefined && { sortDirection: this.sortDirection },\r\n this.filterExpression !== undefined && { filterExpression: this.filterExpression },\r\n this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo },\r\n );\r\n }\r\n\r\n /** Deserialize [[Descriptor]] from JSON */\r\n public static fromJSON(json: DescriptorJSON | undefined): Descriptor | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const { classesMap, ...leftOverJson } = json;\r\n const categories = CategoryDescription.listFromJSON(json.categories);\r\n const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);\r\n const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));\r\n return new Descriptor({\r\n ...leftOverJson,\r\n selectClasses,\r\n categories,\r\n fields,\r\n sortingField: getFieldByName(fields, json.sortingFieldName, true),\r\n });\r\n }\r\n\r\n private static getFieldsFromJSON(json: FieldJSON[], factory: (json: FieldJSON) => Field | undefined): Field[] {\r\n return json.map((fieldJson: FieldJSON) => {\r\n const field = factory(fieldJson);\r\n if (field)\r\n field.rebuildParentship();\r\n return field;\r\n }).filter((field): field is Field => !!field);\r\n }\r\n\r\n /**\r\n * Get field by its name\r\n * @param name Name of the field to find\r\n * @param recurse Recurse into nested fields\r\n */\r\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\r\n return getFieldByName(this.fields, name, recurse);\r\n }\r\n\r\n /**\r\n * Create descriptor overrides object from this descriptor.\r\n * @public\r\n */\r\n public createDescriptorOverrides(): DescriptorOverrides {\r\n const overrides: DescriptorOverrides = {};\r\n if (this.displayType)\r\n overrides.displayType = this.displayType;\r\n if (this.contentFlags !== 0)\r\n overrides.contentFlags = this.contentFlags;\r\n if (this.filterExpression)\r\n overrides.filterExpression = this.filterExpression;\r\n if (this.sortingField)\r\n overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: this.sortDirection ?? SortDirection.Ascending };\r\n return overrides;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport {\n ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship,\n RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON,\n} from \"../EC\";\nimport { CategoryDescription, CategoryDescriptionJSON } from \"./Category\";\nimport { Field, FieldDescriptor, FieldJSON, getFieldByName } from \"./Fields\";\n\n/**\n * Data structure that describes an ECClass in content [[Descriptor]].\n * @public\n */\nexport interface SelectClassInfo {\n /** Information about the ECClass */\n selectClassInfo: ClassInfo;\n\n /** Is the class handled polymorphically */\n isSelectPolymorphic: boolean;\n\n /** Relationship path from input class to the select class. */\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationship[];\n\n /** Relationship paths to [related property]($docs/presentation/content/Terminology#related-properties) classes */\n relatedPropertyPaths?: RelationshipPath[];\n\n /** Relationship paths to navigation property classes */\n navigationPropertyClasses?: RelatedClassInfo[];\n\n /** Relationship paths to [related instance]($docs/presentation/content/Terminology#related-instance) classes. */\n relatedInstancePaths?: RelationshipPath[];\n}\n\n/**\n * Serialized [[SelectClassInfo]] JSON representation\n * @public\n */\nexport interface SelectClassInfoJSON<TClassInfoJSON = ClassInfoJSON> {\n selectClassInfo: TClassInfoJSON;\n isSelectPolymorphic: boolean;\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationshipJSON<TClassInfoJSON>[];\n relatedPropertyPaths?: RelationshipPathJSON<TClassInfoJSON>[];\n navigationPropertyClasses?: RelatedClassInfoJSON<TClassInfoJSON>[];\n relatedInstancePaths?: RelationshipPathJSON<TClassInfoJSON>[];\n}\n\n/** @public */\nexport namespace SelectClassInfo {\n /** Deserialize [[SelectClassInfo]] from compressed JSON */\n export function fromCompressedJSON(json: SelectClassInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo {\n assert(classesMap.hasOwnProperty(json.selectClassInfo));\n return {\n selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },\n isSelectPolymorphic: json.isSelectPolymorphic,\n ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),\n ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\n ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),\n ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\n };\n }\n\n /** Serialize [[SelectClassInfo]] to compressed JSON */\n export function toCompressedJSON(selectClass: SelectClassInfo, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfoJSON<string> {\n const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;\n classesMap[id] = leftOverClassInfo;\n return {\n selectClassInfo: id,\n isSelectPolymorphic: selectClass.isSelectPolymorphic,\n ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),\n ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),\n ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),\n ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),\n };\n }\n\n /**\n * Deserialize [[SelectClassInfo]] list from JSON\n * @param json JSON or JSON serialized to string to deserialize from\n * @returns Deserialized [[SelectClassInfo]] objects list\n *\n * @internal\n */\n export function listFromCompressedJSON(json: SelectClassInfoJSON<Id64String>[], classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo[] {\n return json.map((sci) => fromCompressedJSON(sci, classesMap));\n }\n}\n\n/**\n * Flags that control content format.\n * @public\n */\nexport enum ContentFlags {\n /** Each content record only has [[InstanceKey]] and no data */\n KeysOnly = 1 << 0,\n\n /**\n * Each content record additionally has an image id\n * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\n */\n ShowImages = 1 << 1,\n\n /** Each content record additionally has a display label */\n ShowLabels = 1 << 2,\n\n /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */\n MergeResults = 1 << 3,\n\n /** Content has only distinct values */\n DistinctValues = 1 << 4,\n\n /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */\n NoFields = 1 << 5,\n\n /**\n * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which\n * given input key at the cost of performance creating those items.\n *\n * @beta\n */\n IncludeInputKeys = 1 << 8,\n\n /**\n * Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain\n * operations to make obtaining content descriptor faster.\n * @internal\n */\n DescriptorOnly = 1 << 9,\n}\n\n/**\n * Data sorting direction\n * @public\n */\nexport enum SortDirection {\n Ascending,\n Descending,\n}\n\n/**\n * Data structure that contains selection information. Used\n * for cases when requesting content after a selection change.\n *\n * @public\n */\nexport interface SelectionInfo {\n /** Name of selection provider which cause the selection change */\n providerName: string;\n /** Level of selection that changed */\n level?: number;\n}\n\n/**\n * Serialized [[Descriptor]] JSON representation.\n * @public\n */\nexport interface DescriptorJSON {\n classesMap: { [id: string]: CompressedClassInfoJSON };\n connectionId: string;\n inputKeysHash: string;\n contentOptions: any;\n selectionInfo?: SelectionInfo;\n displayType: string;\n selectClasses: SelectClassInfoJSON<Id64String>[];\n categories: CategoryDescriptionJSON[];\n fields: FieldJSON<Id64String>[];\n sortingFieldName?: string;\n sortDirection?: SortDirection;\n contentFlags: number;\n filterExpression?: string;\n}\n\n/**\n * Descriptor overrides that can be used to customize content\n * @public\n */\nexport interface DescriptorOverrides {\n /**\n * Content display type. Can be accessed in presentation rules and used\n * to modify content in various ways. Defaults to empty string.\n */\n displayType?: string;\n\n /** Content flags used for content customization. See [[ContentFlags]] */\n contentFlags?: number;\n\n /** Fields selector that allows excluding or including only specified fields. */\n fieldsSelector?: {\n /** Should the specified fields be included or excluded */\n type: \"include\" | \"exclude\";\n /** A list of field descriptors that identify fields to include / exclude */\n fields: FieldDescriptor[];\n };\n\n /** Specification for sorting data. */\n sorting?: {\n /** Identifier of the field to use for sorting */\n field: FieldDescriptor;\n /** Sort direction */\n direction: SortDirection;\n };\n\n /** [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content */\n filterExpression?: string;\n}\n\n/**\n * Descriptor properties\n * @public\n */\nexport interface DescriptorSource {\n /** Id of the connection used to create the descriptor */\n readonly connectionId?: string;\n /** Hash of the input keys used to create the descriptor */\n readonly inputKeysHash?: string;\n /** Selection info used to create the descriptor */\n readonly selectionInfo?: SelectionInfo;\n /** Display type used to create the descriptor */\n readonly displayType: string;\n /** A list of classes that will be selected from when creating content with this descriptor */\n readonly selectClasses: SelectClassInfo[];\n /** A list of content field categories used in this descriptor */\n readonly categories: CategoryDescription[];\n /** A list of fields contained in the descriptor */\n readonly fields: Field[];\n /** [[ContentFlags]] used to create the descriptor */\n readonly contentFlags: number;\n /** Field used to sort the content */\n readonly sortingField?: Field;\n /** Sorting direction */\n readonly sortDirection?: SortDirection;\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\n readonly filterExpression?: string;\n}\n\n/**\n * Data structure that describes content: fields, sorting, filtering, format, etc.\n * Descriptor may be changed to control how content is created.\n *\n * @public\n */\nexport class Descriptor implements DescriptorSource {\n /** Id of the connection used to create the descriptor */\n public readonly connectionId?: string;\n /** Hash of the input keys used to create the descriptor */\n public readonly inputKeysHash?: string;\n /** Extended options used to create the descriptor */\n public readonly contentOptions: any;\n /** Selection info used to create the descriptor */\n public readonly selectionInfo?: SelectionInfo;\n /** Display type used to create the descriptor */\n public readonly displayType: string;\n /** A list of classes that will be selected when creating content with this descriptor */\n public readonly selectClasses: SelectClassInfo[];\n /** A list of content field categories used in this descriptor */\n public readonly categories: CategoryDescription[];\n /** A list of fields contained in the descriptor */\n public readonly fields: Field[];\n /** [[ContentFlags]] used to create the descriptor */\n public readonly contentFlags: number;\n /** Field used to sort the content */\n public sortingField?: Field;\n /** Sorting direction */\n public sortDirection?: SortDirection;\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\n public filterExpression?: string;\n\n /** Construct a new Descriptor using a [[DescriptorSource]] */\n public constructor(source: DescriptorSource) {\n this.connectionId = source.connectionId;\n this.inputKeysHash = source.inputKeysHash;\n this.selectionInfo = source.selectionInfo;\n this.displayType = source.displayType;\n this.contentFlags = source.contentFlags;\n this.selectClasses = [...source.selectClasses];\n this.categories = [...source.categories];\n this.fields = [...source.fields];\n this.sortingField = source.sortingField;\n this.sortDirection = source.sortDirection;\n this.filterExpression = source.filterExpression;\n }\n\n /** Serialize [[Descriptor]] to JSON */\n public toJSON(): DescriptorJSON {\n const classesMap: { [id: string]: CompressedClassInfoJSON } = {};\n const selectClasses: SelectClassInfoJSON<string>[] = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));\n const fields: FieldJSON<string>[] = this.fields.map((field) => field.toCompressedJSON(classesMap));\n return Object.assign(\n {\n connectionId: this.connectionId,\n inputKeysHash: this.inputKeysHash,\n contentOptions: this.contentOptions,\n displayType: this.displayType,\n contentFlags: this.contentFlags,\n categories: this.categories.map(CategoryDescription.toJSON),\n fields,\n selectClasses,\n classesMap,\n },\n this.sortingField !== undefined && { sortingFieldName: this.sortingField.name },\n this.sortDirection !== undefined && { sortDirection: this.sortDirection },\n this.filterExpression !== undefined && { filterExpression: this.filterExpression },\n this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo },\n );\n }\n\n /** Deserialize [[Descriptor]] from JSON */\n public static fromJSON(json: DescriptorJSON | undefined): Descriptor | undefined {\n if (!json)\n return undefined;\n\n const { classesMap, ...leftOverJson } = json;\n const categories = CategoryDescription.listFromJSON(json.categories);\n const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);\n const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));\n return new Descriptor({\n ...leftOverJson,\n selectClasses,\n categories,\n fields,\n sortingField: getFieldByName(fields, json.sortingFieldName, true),\n });\n }\n\n private static getFieldsFromJSON(json: FieldJSON[], factory: (json: FieldJSON) => Field | undefined): Field[] {\n return json.map((fieldJson: FieldJSON) => {\n const field = factory(fieldJson);\n if (field)\n field.rebuildParentship();\n return field;\n }).filter((field): field is Field => !!field);\n }\n\n /**\n * Get field by its name\n * @param name Name of the field to find\n * @param recurse Recurse into nested fields\n */\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\n return getFieldByName(this.fields, name, recurse);\n }\n\n /**\n * Create descriptor overrides object from this descriptor.\n * @public\n */\n public createDescriptorOverrides(): DescriptorOverrides {\n const overrides: DescriptorOverrides = {};\n if (this.displayType)\n overrides.displayType = this.displayType;\n if (this.contentFlags !== 0)\n overrides.contentFlags = this.contentFlags;\n if (this.filterExpression)\n overrides.filterExpression = this.filterExpression;\n if (this.sortingField)\n overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: this.sortDirection ?? SortDirection.Ascending };\n return overrides;\n }\n}\n"]}
@@ -1,22 +1,22 @@
1
- /** @packageDocumentation
2
- * @module Content
3
- */
4
- /**
5
- * Displayed content types. Affects how the content is formatted, e.g.
6
- * the [[ContentFlags]].
7
- *
8
- * @public
9
- */
10
- export declare enum DefaultContentDisplayTypes {
11
- /** Unknown content type. */
12
- Undefined = "Undefined",
13
- /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */
14
- Grid = "Grid",
15
- /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */
16
- PropertyPane = "PropertyPane",
17
- /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */
18
- List = "List",
19
- /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */
20
- Viewport = "Graphics"
21
- }
1
+ /** @packageDocumentation
2
+ * @module Content
3
+ */
4
+ /**
5
+ * Displayed content types. Affects how the content is formatted, e.g.
6
+ * the [[ContentFlags]].
7
+ *
8
+ * @public
9
+ */
10
+ export declare enum DefaultContentDisplayTypes {
11
+ /** Unknown content type. */
12
+ Undefined = "Undefined",
13
+ /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */
14
+ Grid = "Grid",
15
+ /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */
16
+ PropertyPane = "PropertyPane",
17
+ /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */
18
+ List = "List",
19
+ /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */
20
+ Viewport = "Graphics"
21
+ }
22
22
  //# sourceMappingURL=DisplayTypes.d.ts.map
@@ -1,27 +1,27 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Content
7
- */
8
- /**
9
- * Displayed content types. Affects how the content is formatted, e.g.
10
- * the [[ContentFlags]].
11
- *
12
- * @public
13
- */
14
- export var DefaultContentDisplayTypes;
15
- (function (DefaultContentDisplayTypes) {
16
- /** Unknown content type. */
17
- DefaultContentDisplayTypes["Undefined"] = "Undefined";
18
- /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */
19
- DefaultContentDisplayTypes["Grid"] = "Grid";
20
- /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */
21
- DefaultContentDisplayTypes["PropertyPane"] = "PropertyPane";
22
- /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */
23
- DefaultContentDisplayTypes["List"] = "List";
24
- /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */
25
- DefaultContentDisplayTypes["Viewport"] = "Graphics";
26
- })(DefaultContentDisplayTypes || (DefaultContentDisplayTypes = {}));
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Content
7
+ */
8
+ /**
9
+ * Displayed content types. Affects how the content is formatted, e.g.
10
+ * the [[ContentFlags]].
11
+ *
12
+ * @public
13
+ */
14
+ export var DefaultContentDisplayTypes;
15
+ (function (DefaultContentDisplayTypes) {
16
+ /** Unknown content type. */
17
+ DefaultContentDisplayTypes["Undefined"] = "Undefined";
18
+ /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */
19
+ DefaultContentDisplayTypes["Grid"] = "Grid";
20
+ /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */
21
+ DefaultContentDisplayTypes["PropertyPane"] = "PropertyPane";
22
+ /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */
23
+ DefaultContentDisplayTypes["List"] = "List";
24
+ /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */
25
+ DefaultContentDisplayTypes["Viewport"] = "Graphics";
26
+ })(DefaultContentDisplayTypes || (DefaultContentDisplayTypes = {}));
27
27
  //# sourceMappingURL=DisplayTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayTypes.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/DisplayTypes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,0BAeX;AAfD,WAAY,0BAA0B;IACpC,4BAA4B;IAC5B,qDAAuB,CAAA;IAEvB,yFAAyF;IACzF,2CAAa,CAAA;IAEb,sFAAsF;IACtF,2DAA6B,CAAA;IAE7B,yGAAyG;IACzG,2CAAa,CAAA;IAEb,6EAA6E;IAC7E,mDAAqB,CAAA;AACvB,CAAC,EAfW,0BAA0B,KAA1B,0BAA0B,QAerC","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 Content\r\n */\r\n\r\n/**\r\n * Displayed content types. Affects how the content is formatted, e.g.\r\n * the [[ContentFlags]].\r\n *\r\n * @public\r\n */\r\nexport enum DefaultContentDisplayTypes {\r\n /** Unknown content type. */\r\n Undefined = \"Undefined\", // eslint-disable-line id-blacklist\r\n\r\n /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */\r\n Grid = \"Grid\",\r\n\r\n /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */\r\n PropertyPane = \"PropertyPane\",\r\n\r\n /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */\r\n List = \"List\",\r\n\r\n /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */\r\n Viewport = \"Graphics\",\r\n}\r\n"]}
1
+ {"version":3,"file":"DisplayTypes.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/DisplayTypes.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,0BAeX;AAfD,WAAY,0BAA0B;IACpC,4BAA4B;IAC5B,qDAAuB,CAAA;IAEvB,yFAAyF;IACzF,2CAAa,CAAA;IAEb,sFAAsF;IACtF,2DAA6B,CAAA;IAE7B,yGAAyG;IACzG,2CAAa,CAAA;IAEb,6EAA6E;IAC7E,mDAAqB,CAAA;AACvB,CAAC,EAfW,0BAA0B,KAA1B,0BAA0B,QAerC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Content\n */\n\n/**\n * Displayed content types. Affects how the content is formatted, e.g.\n * the [[ContentFlags]].\n *\n * @public\n */\nexport enum DefaultContentDisplayTypes {\n /** Unknown content type. */\n Undefined = \"Undefined\", // eslint-disable-line id-blacklist\n\n /** Grid or table view content type. By default adds [[ContentFlags.ShowLabels]] flag. */\n Grid = \"Grid\",\n\n /** Property pane content type. By default adds [[ContentFlags.MergeResults]] flag. */\n PropertyPane = \"PropertyPane\",\n\n /** List content type. By default adds [[ContentFlags.NoFields]] and [[ContentFlags.ShowLabels]] flags */\n List = \"List\",\n\n /** Viewport content type. By default adds [[ContentFlags.KeysOnly]] flag. */\n Viewport = \"Graphics\",\n}\n"]}
@@ -1,16 +1,16 @@
1
- /** @packageDocumentation
2
- * @module Content
3
- */
4
- /**
5
- * A data structure which describes property editor used
6
- * for a content [[Field]].
7
- *
8
- * @public
9
- */
10
- export interface EditorDescription {
11
- /** Unique name */
12
- name: string;
13
- /** Editor-specific parameters */
14
- params?: any;
15
- }
1
+ /** @packageDocumentation
2
+ * @module Content
3
+ */
4
+ /**
5
+ * A data structure which describes property editor used
6
+ * for a content [[Field]].
7
+ *
8
+ * @public
9
+ */
10
+ export interface EditorDescription {
11
+ /** Unique name */
12
+ name: string;
13
+ /** Editor-specific parameters */
14
+ params?: any;
15
+ }
16
16
  //# sourceMappingURL=Editor.d.ts.map