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

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 (485) hide show
  1. package/lib/cjs/assets/locales/en/Presentation.json +15 -0
  2. package/lib/cjs/assets/locales/en-PSEUDO/Presentation.json +15 -0
  3. package/lib/cjs/presentation-common/AsyncTasks.d.ts +22 -22
  4. package/lib/cjs/presentation-common/AsyncTasks.js +38 -38
  5. package/lib/cjs/presentation-common/AsyncTasks.js.map +1 -1
  6. package/lib/cjs/presentation-common/CommonLoggerCategory.d.ts +12 -12
  7. package/lib/cjs/presentation-common/CommonLoggerCategory.js +20 -20
  8. package/lib/cjs/presentation-common/CommonLoggerCategory.js.map +1 -1
  9. package/lib/cjs/presentation-common/Diagnostics.d.ts +125 -125
  10. package/lib/cjs/presentation-common/Diagnostics.js +72 -72
  11. package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
  12. package/lib/cjs/presentation-common/EC.d.ts +350 -350
  13. package/lib/cjs/presentation-common/EC.js +290 -290
  14. package/lib/cjs/presentation-common/EC.js.map +1 -1
  15. package/lib/cjs/presentation-common/ElementProperties.d.ts +123 -123
  16. package/lib/cjs/presentation-common/ElementProperties.js +9 -9
  17. package/lib/cjs/presentation-common/ElementProperties.js.map +1 -1
  18. package/lib/cjs/presentation-common/Error.d.ts +47 -45
  19. package/lib/cjs/presentation-common/Error.d.ts.map +1 -1
  20. package/lib/cjs/presentation-common/Error.js +64 -62
  21. package/lib/cjs/presentation-common/Error.js.map +1 -1
  22. package/lib/cjs/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  23. package/lib/cjs/presentation-common/InstanceFilterDefinition.js +9 -9
  24. package/lib/cjs/presentation-common/InstanceFilterDefinition.js.map +1 -1
  25. package/lib/cjs/presentation-common/KeySet.d.ts +146 -146
  26. package/lib/cjs/presentation-common/KeySet.js +428 -428
  27. package/lib/cjs/presentation-common/KeySet.js.map +1 -1
  28. package/lib/cjs/presentation-common/LabelDefinition.d.ts +93 -93
  29. package/lib/cjs/presentation-common/LabelDefinition.js +78 -78
  30. package/lib/cjs/presentation-common/LabelDefinition.js.map +1 -1
  31. package/lib/cjs/presentation-common/LocalizationHelper.d.ts +29 -29
  32. package/lib/cjs/presentation-common/LocalizationHelper.js +110 -110
  33. package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -1
  34. package/lib/cjs/presentation-common/PresentationIpcInterface.d.ts +40 -40
  35. package/lib/cjs/presentation-common/PresentationIpcInterface.js +12 -12
  36. package/lib/cjs/presentation-common/PresentationIpcInterface.js.map +1 -1
  37. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +273 -261
  38. package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  39. package/lib/cjs/presentation-common/PresentationManagerOptions.js +23 -23
  40. package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
  41. package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +186 -186
  42. package/lib/cjs/presentation-common/PresentationRpcInterface.js +104 -104
  43. package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
  44. package/lib/cjs/presentation-common/PropertyFormatter.d.ts +30 -30
  45. package/lib/cjs/presentation-common/PropertyFormatter.js +198 -198
  46. package/lib/cjs/presentation-common/PropertyFormatter.js.map +1 -1
  47. package/lib/cjs/presentation-common/RegisteredRuleset.d.ts +26 -26
  48. package/lib/cjs/presentation-common/RegisteredRuleset.js +33 -33
  49. package/lib/cjs/presentation-common/RegisteredRuleset.js.map +1 -1
  50. package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +82 -82
  51. package/lib/cjs/presentation-common/RpcRequestsHandler.js +166 -166
  52. package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
  53. package/lib/cjs/presentation-common/RulesetVariables.d.ts +171 -171
  54. package/lib/cjs/presentation-common/RulesetVariables.js +55 -55
  55. package/lib/cjs/presentation-common/RulesetVariables.js.map +1 -1
  56. package/lib/cjs/presentation-common/RulesetsFactory.d.ts +44 -44
  57. package/lib/cjs/presentation-common/RulesetsFactory.js +223 -223
  58. package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
  59. package/lib/cjs/presentation-common/Update.d.ts +213 -213
  60. package/lib/cjs/presentation-common/Update.js +226 -226
  61. package/lib/cjs/presentation-common/Update.js.map +1 -1
  62. package/lib/cjs/presentation-common/Utils.d.ts +62 -62
  63. package/lib/cjs/presentation-common/Utils.js +43 -43
  64. package/lib/cjs/presentation-common/Utils.js.map +1 -1
  65. package/lib/cjs/presentation-common/content/Category.d.ts +49 -49
  66. package/lib/cjs/presentation-common/content/Category.js +48 -48
  67. package/lib/cjs/presentation-common/content/Category.js.map +1 -1
  68. package/lib/cjs/presentation-common/content/Content.d.ts +38 -38
  69. package/lib/cjs/presentation-common/content/Content.js +56 -56
  70. package/lib/cjs/presentation-common/content/Content.js.map +1 -1
  71. package/lib/cjs/presentation-common/content/ContentTraverser.d.ts +271 -271
  72. package/lib/cjs/presentation-common/content/ContentTraverser.js +437 -437
  73. package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
  74. package/lib/cjs/presentation-common/content/Descriptor.d.ts +328 -328
  75. package/lib/cjs/presentation-common/content/Descriptor.js +191 -191
  76. package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
  77. package/lib/cjs/presentation-common/content/DisplayTypes.d.ts +21 -21
  78. package/lib/cjs/presentation-common/content/DisplayTypes.js +29 -29
  79. package/lib/cjs/presentation-common/content/DisplayTypes.js.map +1 -1
  80. package/lib/cjs/presentation-common/content/Editor.d.ts +15 -15
  81. package/lib/cjs/presentation-common/content/Editor.js +9 -9
  82. package/lib/cjs/presentation-common/content/Editor.js.map +1 -1
  83. package/lib/cjs/presentation-common/content/Fields.d.ts +298 -298
  84. package/lib/cjs/presentation-common/content/Fields.js +393 -393
  85. package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
  86. package/lib/cjs/presentation-common/content/Item.d.ts +85 -85
  87. package/lib/cjs/presentation-common/content/Item.js +84 -84
  88. package/lib/cjs/presentation-common/content/Item.js.map +1 -1
  89. package/lib/cjs/presentation-common/content/Property.d.ts +57 -57
  90. package/lib/cjs/presentation-common/content/Property.js +40 -40
  91. package/lib/cjs/presentation-common/content/Property.js.map +1 -1
  92. package/lib/cjs/presentation-common/content/Renderer.d.ts +11 -11
  93. package/lib/cjs/presentation-common/content/Renderer.js +9 -9
  94. package/lib/cjs/presentation-common/content/Renderer.js.map +1 -1
  95. package/lib/cjs/presentation-common/content/TypeDescription.d.ts +72 -72
  96. package/lib/cjs/presentation-common/content/TypeDescription.js +23 -23
  97. package/lib/cjs/presentation-common/content/TypeDescription.js.map +1 -1
  98. package/lib/cjs/presentation-common/content/Value.d.ts +189 -189
  99. package/lib/cjs/presentation-common/content/Value.js +273 -273
  100. package/lib/cjs/presentation-common/content/Value.js.map +1 -1
  101. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  102. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js +31 -31
  103. package/lib/cjs/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  104. package/lib/cjs/presentation-common/hierarchy/Key.d.ts +246 -246
  105. package/lib/cjs/presentation-common/hierarchy/Key.js +121 -121
  106. package/lib/cjs/presentation-common/hierarchy/Key.js.map +1 -1
  107. package/lib/cjs/presentation-common/hierarchy/Node.d.ts +154 -154
  108. package/lib/cjs/presentation-common/hierarchy/Node.js +106 -106
  109. package/lib/cjs/presentation-common/hierarchy/Node.js.map +1 -1
  110. package/lib/cjs/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  111. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js +122 -122
  112. package/lib/cjs/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  113. package/lib/cjs/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  114. package/lib/cjs/presentation-common/rules/ClassSpecifications.js +9 -9
  115. package/lib/cjs/presentation-common/rules/ClassSpecifications.js.map +1 -1
  116. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  117. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js +9 -9
  118. package/lib/cjs/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  119. package/lib/cjs/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  120. package/lib/cjs/presentation-common/rules/RelationshipDirection.js +21 -21
  121. package/lib/cjs/presentation-common/rules/RelationshipDirection.js.map +1 -1
  122. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  123. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js +9 -9
  124. package/lib/cjs/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  125. package/lib/cjs/presentation-common/rules/Rule.d.ts +76 -76
  126. package/lib/cjs/presentation-common/rules/Rule.js +35 -35
  127. package/lib/cjs/presentation-common/rules/Rule.js.map +1 -1
  128. package/lib/cjs/presentation-common/rules/Ruleset.d.ts +65 -65
  129. package/lib/cjs/presentation-common/rules/Ruleset.js +9 -9
  130. package/lib/cjs/presentation-common/rules/Ruleset.js.map +1 -1
  131. package/lib/cjs/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  132. package/lib/cjs/presentation-common/rules/SchemasSpecification.js +9 -9
  133. package/lib/cjs/presentation-common/rules/SchemasSpecification.js.map +1 -1
  134. package/lib/cjs/presentation-common/rules/Variables.d.ts +58 -58
  135. package/lib/cjs/presentation-common/rules/Variables.js +25 -25
  136. package/lib/cjs/presentation-common/rules/Variables.js.map +1 -1
  137. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  138. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +9 -9
  139. package/lib/cjs/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  140. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  141. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +9 -9
  142. package/lib/cjs/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  143. package/lib/cjs/presentation-common/rules/content/ContentRule.d.ts +30 -30
  144. package/lib/cjs/presentation-common/rules/content/ContentRule.js +9 -9
  145. package/lib/cjs/presentation-common/rules/content/ContentRule.js.map +1 -1
  146. package/lib/cjs/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  147. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js +20 -20
  148. package/lib/cjs/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  149. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  150. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +9 -9
  151. package/lib/cjs/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  152. package/lib/cjs/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  153. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js +9 -9
  154. package/lib/cjs/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  155. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  156. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +9 -9
  157. package/lib/cjs/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  158. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  159. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +9 -9
  160. package/lib/cjs/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  161. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  162. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js +9 -9
  163. package/lib/cjs/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  164. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  165. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +9 -9
  166. package/lib/cjs/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  167. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  168. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +9 -9
  169. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  170. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  171. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +21 -21
  172. package/lib/cjs/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  173. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  174. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +43 -43
  175. package/lib/cjs/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  176. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  177. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js +9 -9
  178. package/lib/cjs/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  179. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  180. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js +9 -9
  181. package/lib/cjs/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  182. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  183. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js +9 -9
  184. package/lib/cjs/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  185. package/lib/cjs/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  186. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js +51 -51
  187. package/lib/cjs/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  188. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  189. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js +9 -9
  190. package/lib/cjs/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  191. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  192. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js +25 -25
  193. package/lib/cjs/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  194. package/lib/cjs/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  195. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js +9 -9
  196. package/lib/cjs/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  197. package/lib/cjs/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  198. package/lib/cjs/presentation-common/rules/customization/SortingRule.js +9 -9
  199. package/lib/cjs/presentation-common/rules/customization/SortingRule.js.map +1 -1
  200. package/lib/cjs/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  201. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js +9 -9
  202. package/lib/cjs/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  203. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  204. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js +9 -9
  205. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  206. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  207. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js +21 -21
  208. package/lib/cjs/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  209. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  210. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js +9 -9
  211. package/lib/cjs/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  212. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  213. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +19 -19
  214. package/lib/cjs/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  215. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  216. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +9 -9
  217. package/lib/cjs/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  218. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  219. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js +9 -9
  220. package/lib/cjs/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  221. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  222. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js +9 -9
  223. package/lib/cjs/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  224. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  225. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +9 -9
  226. package/lib/cjs/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  227. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  228. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js +9 -9
  229. package/lib/cjs/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  230. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  231. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js +9 -9
  232. package/lib/cjs/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  233. package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +38 -38
  234. package/lib/cjs/presentation-common/selection/SelectionScope.js +9 -9
  235. package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
  236. package/lib/cjs/presentation-common.d.ts +113 -113
  237. package/lib/cjs/presentation-common.js +129 -129
  238. package/lib/cjs/presentation-common.js.map +1 -1
  239. package/lib/esm/presentation-common/AsyncTasks.d.ts +22 -22
  240. package/lib/esm/presentation-common/AsyncTasks.js +34 -34
  241. package/lib/esm/presentation-common/AsyncTasks.js.map +1 -1
  242. package/lib/esm/presentation-common/CommonLoggerCategory.d.ts +12 -12
  243. package/lib/esm/presentation-common/CommonLoggerCategory.js +17 -17
  244. package/lib/esm/presentation-common/CommonLoggerCategory.js.map +1 -1
  245. package/lib/esm/presentation-common/Diagnostics.d.ts +125 -125
  246. package/lib/esm/presentation-common/Diagnostics.js +67 -67
  247. package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
  248. package/lib/esm/presentation-common/EC.d.ts +350 -350
  249. package/lib/esm/presentation-common/EC.js +287 -287
  250. package/lib/esm/presentation-common/EC.js.map +1 -1
  251. package/lib/esm/presentation-common/ElementProperties.d.ts +123 -123
  252. package/lib/esm/presentation-common/ElementProperties.js +8 -8
  253. package/lib/esm/presentation-common/ElementProperties.js.map +1 -1
  254. package/lib/esm/presentation-common/Error.d.ts +47 -45
  255. package/lib/esm/presentation-common/Error.d.ts.map +1 -1
  256. package/lib/esm/presentation-common/Error.js +60 -58
  257. package/lib/esm/presentation-common/Error.js.map +1 -1
  258. package/lib/esm/presentation-common/InstanceFilterDefinition.d.ts +93 -93
  259. package/lib/esm/presentation-common/InstanceFilterDefinition.js +8 -8
  260. package/lib/esm/presentation-common/InstanceFilterDefinition.js.map +1 -1
  261. package/lib/esm/presentation-common/KeySet.d.ts +146 -146
  262. package/lib/esm/presentation-common/KeySet.js +424 -424
  263. package/lib/esm/presentation-common/KeySet.js.map +1 -1
  264. package/lib/esm/presentation-common/LabelDefinition.d.ts +93 -93
  265. package/lib/esm/presentation-common/LabelDefinition.js +75 -75
  266. package/lib/esm/presentation-common/LabelDefinition.js.map +1 -1
  267. package/lib/esm/presentation-common/LocalizationHelper.d.ts +29 -29
  268. package/lib/esm/presentation-common/LocalizationHelper.js +106 -106
  269. package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -1
  270. package/lib/esm/presentation-common/PresentationIpcInterface.d.ts +40 -40
  271. package/lib/esm/presentation-common/PresentationIpcInterface.js +9 -9
  272. package/lib/esm/presentation-common/PresentationIpcInterface.js.map +1 -1
  273. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +273 -261
  274. package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
  275. package/lib/esm/presentation-common/PresentationManagerOptions.js +18 -18
  276. package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
  277. package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +186 -186
  278. package/lib/esm/presentation-common/PresentationRpcInterface.js +100 -100
  279. package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
  280. package/lib/esm/presentation-common/PropertyFormatter.d.ts +30 -30
  281. package/lib/esm/presentation-common/PropertyFormatter.js +193 -193
  282. package/lib/esm/presentation-common/PropertyFormatter.js.map +1 -1
  283. package/lib/esm/presentation-common/RegisteredRuleset.d.ts +26 -26
  284. package/lib/esm/presentation-common/RegisteredRuleset.js +29 -29
  285. package/lib/esm/presentation-common/RegisteredRuleset.js.map +1 -1
  286. package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +82 -82
  287. package/lib/esm/presentation-common/RpcRequestsHandler.js +162 -162
  288. package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
  289. package/lib/esm/presentation-common/RulesetVariables.d.ts +171 -171
  290. package/lib/esm/presentation-common/RulesetVariables.js +52 -52
  291. package/lib/esm/presentation-common/RulesetVariables.js.map +1 -1
  292. package/lib/esm/presentation-common/RulesetsFactory.d.ts +44 -44
  293. package/lib/esm/presentation-common/RulesetsFactory.js +219 -219
  294. package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
  295. package/lib/esm/presentation-common/Update.d.ts +213 -213
  296. package/lib/esm/presentation-common/Update.js +223 -223
  297. package/lib/esm/presentation-common/Update.js.map +1 -1
  298. package/lib/esm/presentation-common/Utils.d.ts +62 -62
  299. package/lib/esm/presentation-common/Utils.js +39 -39
  300. package/lib/esm/presentation-common/Utils.js.map +1 -1
  301. package/lib/esm/presentation-common/content/Category.d.ts +49 -49
  302. package/lib/esm/presentation-common/content/Category.js +45 -45
  303. package/lib/esm/presentation-common/content/Category.js.map +1 -1
  304. package/lib/esm/presentation-common/content/Content.d.ts +38 -38
  305. package/lib/esm/presentation-common/content/Content.js +52 -52
  306. package/lib/esm/presentation-common/content/Content.js.map +1 -1
  307. package/lib/esm/presentation-common/content/ContentTraverser.d.ts +271 -271
  308. package/lib/esm/presentation-common/content/ContentTraverser.js +427 -427
  309. package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
  310. package/lib/esm/presentation-common/content/Descriptor.d.ts +328 -328
  311. package/lib/esm/presentation-common/content/Descriptor.js +187 -187
  312. package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
  313. package/lib/esm/presentation-common/content/DisplayTypes.d.ts +21 -21
  314. package/lib/esm/presentation-common/content/DisplayTypes.js +26 -26
  315. package/lib/esm/presentation-common/content/DisplayTypes.js.map +1 -1
  316. package/lib/esm/presentation-common/content/Editor.d.ts +15 -15
  317. package/lib/esm/presentation-common/content/Editor.js +8 -8
  318. package/lib/esm/presentation-common/content/Editor.js.map +1 -1
  319. package/lib/esm/presentation-common/content/Fields.d.ts +298 -298
  320. package/lib/esm/presentation-common/content/Fields.js +386 -386
  321. package/lib/esm/presentation-common/content/Fields.js.map +1 -1
  322. package/lib/esm/presentation-common/content/Item.d.ts +85 -85
  323. package/lib/esm/presentation-common/content/Item.js +80 -80
  324. package/lib/esm/presentation-common/content/Item.js.map +1 -1
  325. package/lib/esm/presentation-common/content/Property.d.ts +57 -57
  326. package/lib/esm/presentation-common/content/Property.js +37 -37
  327. package/lib/esm/presentation-common/content/Property.js.map +1 -1
  328. package/lib/esm/presentation-common/content/Renderer.d.ts +11 -11
  329. package/lib/esm/presentation-common/content/Renderer.js +8 -8
  330. package/lib/esm/presentation-common/content/Renderer.js.map +1 -1
  331. package/lib/esm/presentation-common/content/TypeDescription.d.ts +72 -72
  332. package/lib/esm/presentation-common/content/TypeDescription.js +20 -20
  333. package/lib/esm/presentation-common/content/TypeDescription.js.map +1 -1
  334. package/lib/esm/presentation-common/content/Value.d.ts +189 -189
  335. package/lib/esm/presentation-common/content/Value.js +270 -270
  336. package/lib/esm/presentation-common/content/Value.js.map +1 -1
  337. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.d.ts +37 -37
  338. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js +28 -28
  339. package/lib/esm/presentation-common/hierarchy/HierarchyLevel.js.map +1 -1
  340. package/lib/esm/presentation-common/hierarchy/Key.d.ts +246 -246
  341. package/lib/esm/presentation-common/hierarchy/Key.js +118 -118
  342. package/lib/esm/presentation-common/hierarchy/Key.js.map +1 -1
  343. package/lib/esm/presentation-common/hierarchy/Node.d.ts +154 -154
  344. package/lib/esm/presentation-common/hierarchy/Node.js +103 -103
  345. package/lib/esm/presentation-common/hierarchy/Node.js.map +1 -1
  346. package/lib/esm/presentation-common/hierarchy/NodePathElement.d.ts +96 -96
  347. package/lib/esm/presentation-common/hierarchy/NodePathElement.js +119 -119
  348. package/lib/esm/presentation-common/hierarchy/NodePathElement.js.map +1 -1
  349. package/lib/esm/presentation-common/rules/ClassSpecifications.d.ts +45 -45
  350. package/lib/esm/presentation-common/rules/ClassSpecifications.js +8 -8
  351. package/lib/esm/presentation-common/rules/ClassSpecifications.js.map +1 -1
  352. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.d.ts +31 -31
  353. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js +8 -8
  354. package/lib/esm/presentation-common/rules/RelatedInstanceSpecification.js.map +1 -1
  355. package/lib/esm/presentation-common/rules/RelationshipDirection.d.ts +13 -13
  356. package/lib/esm/presentation-common/rules/RelationshipDirection.js +18 -18
  357. package/lib/esm/presentation-common/rules/RelationshipDirection.js.map +1 -1
  358. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.d.ts +56 -56
  359. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js +8 -8
  360. package/lib/esm/presentation-common/rules/RelationshipPathSpecification.js.map +1 -1
  361. package/lib/esm/presentation-common/rules/Rule.d.ts +76 -76
  362. package/lib/esm/presentation-common/rules/Rule.js +32 -32
  363. package/lib/esm/presentation-common/rules/Rule.js.map +1 -1
  364. package/lib/esm/presentation-common/rules/Ruleset.d.ts +65 -65
  365. package/lib/esm/presentation-common/rules/Ruleset.js +8 -8
  366. package/lib/esm/presentation-common/rules/Ruleset.js.map +1 -1
  367. package/lib/esm/presentation-common/rules/SchemasSpecification.d.ts +41 -41
  368. package/lib/esm/presentation-common/rules/SchemasSpecification.js +8 -8
  369. package/lib/esm/presentation-common/rules/SchemasSpecification.js.map +1 -1
  370. package/lib/esm/presentation-common/rules/Variables.d.ts +58 -58
  371. package/lib/esm/presentation-common/rules/Variables.js +22 -22
  372. package/lib/esm/presentation-common/rules/Variables.js.map +1 -1
  373. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.d.ts +41 -41
  374. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js +8 -8
  375. package/lib/esm/presentation-common/rules/content/ContentInstancesOfSpecificClassesSpecification.js.map +1 -1
  376. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.d.ts +25 -25
  377. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js +8 -8
  378. package/lib/esm/presentation-common/rules/content/ContentRelatedInstancesSpecification.js.map +1 -1
  379. package/lib/esm/presentation-common/rules/content/ContentRule.d.ts +30 -30
  380. package/lib/esm/presentation-common/rules/content/ContentRule.js +8 -8
  381. package/lib/esm/presentation-common/rules/content/ContentRule.js.map +1 -1
  382. package/lib/esm/presentation-common/rules/content/ContentSpecification.d.ts +58 -58
  383. package/lib/esm/presentation-common/rules/content/ContentSpecification.js +17 -17
  384. package/lib/esm/presentation-common/rules/content/ContentSpecification.js.map +1 -1
  385. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.d.ts +19 -19
  386. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js +8 -8
  387. package/lib/esm/presentation-common/rules/content/DefaultPropertyCategoryOverride.js.map +1 -1
  388. package/lib/esm/presentation-common/rules/content/PropertySpecification.d.ts +86 -86
  389. package/lib/esm/presentation-common/rules/content/PropertySpecification.js +8 -8
  390. package/lib/esm/presentation-common/rules/content/PropertySpecification.js.map +1 -1
  391. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.d.ts +28 -28
  392. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js +8 -8
  393. package/lib/esm/presentation-common/rules/content/SelectedNodeInstancesSpecification.js.map +1 -1
  394. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.d.ts +25 -25
  395. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js +8 -8
  396. package/lib/esm/presentation-common/rules/content/modifiers/CalculatedPropertiesSpecification.js.map +1 -1
  397. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.d.ts +57 -57
  398. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js +8 -8
  399. package/lib/esm/presentation-common/rules/content/modifiers/ContentModifier.js.map +1 -1
  400. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.d.ts +17 -17
  401. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js +8 -8
  402. package/lib/esm/presentation-common/rules/content/modifiers/CustomRendererSpecification.js.map +1 -1
  403. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.d.ts +107 -107
  404. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js +8 -8
  405. package/lib/esm/presentation-common/rules/content/modifiers/PropertyCategorySpecification.js.map +1 -1
  406. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.d.ts +108 -108
  407. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js +18 -18
  408. package/lib/esm/presentation-common/rules/content/modifiers/PropertyEditorsSpecification.js.map +1 -1
  409. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.d.ts +96 -96
  410. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js +40 -40
  411. package/lib/esm/presentation-common/rules/content/modifiers/RelatedPropertiesSpecification.js.map +1 -1
  412. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.d.ts +44 -44
  413. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js +8 -8
  414. package/lib/esm/presentation-common/rules/customization/CheckBoxRule.js.map +1 -1
  415. package/lib/esm/presentation-common/rules/customization/CustomizationRule.d.ts +36 -36
  416. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js +8 -8
  417. package/lib/esm/presentation-common/rules/customization/CustomizationRule.js.map +1 -1
  418. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.d.ts +27 -27
  419. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js +8 -8
  420. package/lib/esm/presentation-common/rules/customization/ExtendedDataRule.js.map +1 -1
  421. package/lib/esm/presentation-common/rules/customization/GroupingRule.d.ts +207 -207
  422. package/lib/esm/presentation-common/rules/customization/GroupingRule.js +48 -48
  423. package/lib/esm/presentation-common/rules/customization/GroupingRule.js.map +1 -1
  424. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.d.ts +29 -29
  425. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js +8 -8
  426. package/lib/esm/presentation-common/rules/customization/ImageIdOverride.js.map +1 -1
  427. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.d.ts +158 -158
  428. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js +22 -22
  429. package/lib/esm/presentation-common/rules/customization/InstanceLabelOverride.js.map +1 -1
  430. package/lib/esm/presentation-common/rules/customization/LabelOverride.d.ts +40 -40
  431. package/lib/esm/presentation-common/rules/customization/LabelOverride.js +8 -8
  432. package/lib/esm/presentation-common/rules/customization/LabelOverride.js.map +1 -1
  433. package/lib/esm/presentation-common/rules/customization/SortingRule.d.ts +58 -58
  434. package/lib/esm/presentation-common/rules/customization/SortingRule.js +8 -8
  435. package/lib/esm/presentation-common/rules/customization/SortingRule.js.map +1 -1
  436. package/lib/esm/presentation-common/rules/customization/StyleOverride.d.ts +48 -48
  437. package/lib/esm/presentation-common/rules/customization/StyleOverride.js +8 -8
  438. package/lib/esm/presentation-common/rules/customization/StyleOverride.js.map +1 -1
  439. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.d.ts +14 -14
  440. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js +8 -8
  441. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeRule.js.map +1 -1
  442. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.d.ts +98 -98
  443. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js +18 -18
  444. package/lib/esm/presentation-common/rules/hierarchy/ChildNodeSpecification.js.map +1 -1
  445. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.d.ts +31 -31
  446. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js +8 -8
  447. package/lib/esm/presentation-common/rules/hierarchy/CustomNodeSpecification.js.map +1 -1
  448. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.d.ts +79 -79
  449. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js +16 -16
  450. package/lib/esm/presentation-common/rules/hierarchy/CustomQueryInstanceNodesSpecification.js.map +1 -1
  451. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.d.ts +39 -39
  452. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js +8 -8
  453. package/lib/esm/presentation-common/rules/hierarchy/InstanceNodesOfSpecificClassesSpecification.js.map +1 -1
  454. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.d.ts +50 -50
  455. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js +8 -8
  456. package/lib/esm/presentation-common/rules/hierarchy/NavigationRule.js.map +1 -1
  457. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.d.ts +27 -27
  458. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js +8 -8
  459. package/lib/esm/presentation-common/rules/hierarchy/NodeArtifactsRule.js.map +1 -1
  460. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.d.ts +27 -27
  461. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js +8 -8
  462. package/lib/esm/presentation-common/rules/hierarchy/RelatedInstanceNodesSpecification.js.map +1 -1
  463. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.d.ts +16 -16
  464. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js +8 -8
  465. package/lib/esm/presentation-common/rules/hierarchy/RootNodeRule.js.map +1 -1
  466. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.d.ts +35 -35
  467. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js +8 -8
  468. package/lib/esm/presentation-common/rules/hierarchy/SubCondition.js.map +1 -1
  469. package/lib/esm/presentation-common/selection/SelectionScope.d.ts +38 -38
  470. package/lib/esm/presentation-common/selection/SelectionScope.js +8 -8
  471. package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
  472. package/lib/esm/presentation-common.d.ts +113 -113
  473. package/lib/esm/presentation-common.js +117 -117
  474. package/lib/esm/presentation-common.js.map +1 -1
  475. package/lib/public/locales/en/Presentation.json +15 -0
  476. package/package.json +10 -10
  477. package/lib/cjs/assets/locales/en/BisCore.json +0 -18
  478. package/lib/cjs/assets/locales/en/ECPresentation.json +0 -9
  479. package/lib/cjs/assets/locales/en/RulesEngine.json +0 -6
  480. package/lib/cjs/assets/locales/en-PSEUDO/BisCore.json +0 -18
  481. package/lib/cjs/assets/locales/en-PSEUDO/ECPresentation.json +0 -9
  482. package/lib/cjs/assets/locales/en-PSEUDO/RulesEngine.json +0 -6
  483. package/lib/public/locales/en/BisCore.json +0 -18
  484. package/lib/public/locales/en/ECPresentation.json +0 -9
  485. package/lib/public/locales/en/RulesEngine.json +0 -6
@@ -1,387 +1,387 @@
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 { NavigationPropertyInfo, RelatedClassInfo, RelationshipPath, } from "../EC";
10
- import { PresentationError, PresentationStatus } from "../Error";
11
- import { RelationshipMeaning } from "../rules/content/modifiers/RelatedPropertiesSpecification";
12
- import { Property } from "./Property";
13
- /** Is supplied field a properties field. */
14
- const isPropertiesField = (field) => {
15
- return !!field.properties;
16
- };
17
- /** Is supplied field a nested content field. */
18
- const isNestedContentField = (field) => {
19
- return !!field.nestedFields;
20
- };
21
- /**
22
- * Describes a single content field. A field is usually represented as a grid column
23
- * or a property pane row.
24
- *
25
- * @public
26
- */
27
- export class Field {
28
- /**
29
- * Creates an instance of Field.
30
- * @param category Category information
31
- * @param name Unique name
32
- * @param label Display label
33
- * @param type Description of this field's values data type
34
- * @param isReadonly Are values in this field read-only
35
- * @param priority Priority of the field
36
- * @param editor Property editor used to edit values of this field
37
- * @param renderer Property renderer used to render values of this field
38
- */
39
- constructor(category, name, label, type, isReadonly, priority, editor, renderer) {
40
- this.category = category;
41
- this.name = name;
42
- this.label = label;
43
- this.type = type;
44
- this.isReadonly = isReadonly;
45
- this.priority = priority;
46
- this.editor = editor;
47
- this.renderer = renderer;
48
- }
49
- /**
50
- * Is this a [[PropertiesField]]
51
- */
52
- isPropertiesField() { return isPropertiesField(this); }
53
- /**
54
- * Is this a [[NestedContentField]]
55
- */
56
- isNestedContentField() { return isNestedContentField(this); }
57
- /**
58
- * Get parent
59
- */
60
- get parent() { return this._parent; }
61
- clone() {
62
- const clone = new Field(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.editor, this.renderer);
63
- clone.rebuildParentship(this.parent);
64
- return clone;
65
- }
66
- /** Serialize this object to JSON */
67
- toJSON() {
68
- return {
69
- category: this.category.name,
70
- name: this.name,
71
- label: this.label,
72
- type: this.type,
73
- isReadonly: this.isReadonly,
74
- priority: this.priority,
75
- renderer: this.renderer,
76
- editor: this.editor,
77
- };
78
- }
79
- /** Serialize this object to compressed JSON */
80
- toCompressedJSON(classesMap) {
81
- if (this.isPropertiesField())
82
- return {
83
- ...this.toJSON(),
84
- properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),
85
- };
86
- if (this.isNestedContentField()) {
87
- const { id, ...leftOverInfo } = this.contentClassInfo;
88
- classesMap[id] = leftOverInfo;
89
- return {
90
- ...this.toJSON(),
91
- contentClassInfo: id,
92
- pathToPrimaryClass: this.pathToPrimaryClass.map((classInfo) => RelatedClassInfo.toCompressedJSON(classInfo, classesMap)),
93
- nestedFields: this.nestedFields.map((field) => field.toCompressedJSON(classesMap)),
94
- };
95
- }
96
- return this.toJSON();
97
- }
98
- /** Deserialize [[Field]] from JSON */
99
- static fromJSON(json, categories) {
100
- if (!json)
101
- return undefined;
102
- if (isPropertiesField(json))
103
- return PropertiesField.fromJSON(json, categories);
104
- if (isNestedContentField(json))
105
- // eslint-disable-next-line deprecation/deprecation
106
- return NestedContentField.fromJSON(json, categories);
107
- const field = Object.create(Field.prototype);
108
- return Object.assign(field, json, {
109
- category: Field.getCategoryFromFieldJson(json, categories),
110
- });
111
- }
112
- /** Deserialize a [[Field]] from compressed JSON. */
113
- static fromCompressedJSON(json, classesMap, categories) {
114
- if (!json)
115
- return undefined;
116
- if (isPropertiesField(json))
117
- return PropertiesField.fromCompressedJSON(json, classesMap, categories);
118
- if (isNestedContentField(json))
119
- return NestedContentField.fromCompressedJSON(json, classesMap, categories);
120
- const field = Object.create(Field.prototype);
121
- return Object.assign(field, json, {
122
- category: Field.getCategoryFromFieldJson(json, categories),
123
- });
124
- }
125
- static getCategoryFromFieldJson(fieldJson, categories) {
126
- const category = categories.find((c) => c.name === fieldJson.category);
127
- if (!category)
128
- throw new PresentationError(PresentationStatus.InvalidArgument, `Invalid content field category`);
129
- return category;
130
- }
131
- /** Resets field's parent. */
132
- resetParentship() {
133
- this._parent = undefined;
134
- }
135
- /** Sets provided [[NestedContentField]] as parent of this field. */
136
- rebuildParentship(parentField) {
137
- this._parent = parentField;
138
- }
139
- /**
140
- * Get descriptor for this field.
141
- * @public
142
- */
143
- getFieldDescriptor() {
144
- return {
145
- type: FieldDescriptorType.Name,
146
- fieldName: this.name,
147
- };
148
- }
149
- }
150
- /**
151
- * Describes a content field that's based on one or more similar
152
- * EC properties.
153
- *
154
- * @public
155
- */
156
- export class PropertiesField extends Field {
157
- /**
158
- * Creates an instance of PropertiesField.
159
- * @param category Category information
160
- * @param name Unique name
161
- * @param label Display label
162
- * @param type Description of this field's values data type
163
- * @param isReadonly Are values in this field read-only
164
- * @param priority Priority of the field
165
- * @param properties A list of properties this field is created from
166
- * @param editor Property editor used to edit values of this field
167
- * @param renderer Property renderer used to render values of this field
168
- */
169
- constructor(category, name, label, description, isReadonly, priority, properties, editor, renderer) {
170
- super(category, name, label, description, isReadonly, priority, editor, renderer);
171
- this.properties = properties;
172
- }
173
- clone() {
174
- const clone = new PropertiesField(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.properties, this.editor, this.renderer);
175
- clone.rebuildParentship(this.parent);
176
- return clone;
177
- }
178
- /** Serialize this object to JSON */
179
- toJSON() {
180
- return {
181
- ...super.toJSON(),
182
- properties: this.properties,
183
- };
184
- }
185
- /** Deserialize [[PropertiesField]] from JSON */
186
- static fromJSON(json, categories) {
187
- if (!json)
188
- return undefined;
189
- const field = Object.create(PropertiesField.prototype);
190
- return Object.assign(field, json, {
191
- category: this.getCategoryFromFieldJson(json, categories),
192
- });
193
- }
194
- /**
195
- * Deserialize a [[PropertiesField]] from compressed JSON.
196
- * @public
197
- */
198
- static fromCompressedJSON(json, classesMap, categories) {
199
- const field = Object.create(PropertiesField.prototype);
200
- return Object.assign(field, json, {
201
- category: this.getCategoryFromFieldJson(json, categories),
202
- properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),
203
- });
204
- }
205
- /**
206
- * Get descriptor for this field.
207
- * @public
208
- */
209
- getFieldDescriptor() {
210
- const pathFromPropertyToSelectClass = new Array();
211
- let currAncestor = this.parent;
212
- while (currAncestor) {
213
- pathFromPropertyToSelectClass.push(...currAncestor.pathToPrimaryClass);
214
- currAncestor = currAncestor.parent;
215
- }
216
- return {
217
- type: FieldDescriptorType.Properties,
218
- pathFromSelectToPropertyClass: RelationshipPath.strip(RelationshipPath.reverse(pathFromPropertyToSelectClass)),
219
- properties: this.properties.map((p) => ({
220
- class: p.property.classInfo.name,
221
- name: p.property.name,
222
- })),
223
- };
224
- }
225
- }
226
- /**
227
- * Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).
228
- *
229
- * @public
230
- */
231
- export class NestedContentField extends Field {
232
- /**
233
- * Creates an instance of NestedContentField.
234
- * @param category Category information
235
- * @param name Unique name
236
- * @param label Display label
237
- * @param type Description of this field's values data type
238
- * @param isReadonly Are values in this field read-only
239
- * @param priority Priority of the field
240
- * @param contentClassInfo Information about an ECClass whose properties are nested inside this field
241
- * @param pathToPrimaryClass Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class)
242
- * @param nestedFields Contained nested fields
243
- * @param editor Property editor used to edit values of this field
244
- * @param autoExpand Flag specifying whether field should be expanded
245
- * @param relationshipMeaning RelationshipMeaning of the field
246
- * @param renderer Property renderer used to render values of this field
247
- */
248
- constructor(category, name, label, description, isReadonly, priority, contentClassInfo, pathToPrimaryClass, nestedFields, editor, autoExpand, renderer) {
249
- super(category, name, label, description, isReadonly, priority, editor, renderer);
250
- this.contentClassInfo = contentClassInfo;
251
- this.pathToPrimaryClass = pathToPrimaryClass;
252
- this.relationshipMeaning = RelationshipMeaning.RelatedInstance;
253
- this.nestedFields = nestedFields;
254
- this.autoExpand = autoExpand;
255
- this.actualPrimaryClassIds = [];
256
- }
257
- clone() {
258
- const clone = new NestedContentField(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.contentClassInfo, this.pathToPrimaryClass, this.nestedFields.map((n) => n.clone()), this.editor, this.autoExpand, this.renderer);
259
- clone.actualPrimaryClassIds = this.actualPrimaryClassIds;
260
- clone.relationshipMeaning = this.relationshipMeaning;
261
- clone.rebuildParentship(this.parent);
262
- return clone;
263
- }
264
- /**
265
- * Get field by its name
266
- * @param name Name of the field to find
267
- * @param recurse Recurse into nested fields
268
- */
269
- getFieldByName(name, recurse) {
270
- return getFieldByName(this.nestedFields, name, recurse);
271
- }
272
- /** Serialize this object to JSON */
273
- toJSON() {
274
- return {
275
- ...super.toJSON(),
276
- contentClassInfo: this.contentClassInfo,
277
- pathToPrimaryClass: this.pathToPrimaryClass,
278
- relationshipMeaning: this.relationshipMeaning,
279
- actualPrimaryClassIds: this.actualPrimaryClassIds,
280
- nestedFields: this.nestedFields.map((field) => field.toJSON()),
281
- autoExpand: this.autoExpand,
282
- };
283
- }
284
- /**
285
- * Deserialize [[NestedContentField]] from JSON
286
- * @deprecated in 3.x. Use [[NestedContentField.fromCompressedJSON]]
287
- */
288
- static fromJSON(json, categories) {
289
- if (!json)
290
- return undefined;
291
- const field = Object.create(NestedContentField.prototype);
292
- return Object.assign(field, json, this.fromCommonJSON(json, categories), {
293
- nestedFields: json.nestedFields
294
- .map((nestedFieldJson) => Field.fromJSON(nestedFieldJson, categories))
295
- .filter((nestedField) => !!nestedField),
296
- });
297
- }
298
- /** Deserialize a [[NestedContentField]] from compressed JSON. */
299
- static fromCompressedJSON(json, classesMap, categories) {
300
- assert(classesMap.hasOwnProperty(json.contentClassInfo));
301
- const field = Object.create(NestedContentField.prototype);
302
- return Object.assign(field, json, this.fromCommonJSON(json, categories), {
303
- category: this.getCategoryFromFieldJson(json, categories),
304
- nestedFields: json.nestedFields.map((nestedFieldJson) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))
305
- .filter((nestedField) => !!nestedField),
306
- contentClassInfo: { id: json.contentClassInfo, ...classesMap[json.contentClassInfo] },
307
- pathToPrimaryClass: json.pathToPrimaryClass.map((stepJson) => RelatedClassInfo.fromCompressedJSON(stepJson, classesMap)),
308
- });
309
- }
310
- // eslint-disable-next-line deprecation/deprecation
311
- static fromCommonJSON(json, categories) {
312
- return {
313
- category: this.getCategoryFromFieldJson(json, categories),
314
- relationshipMeaning: json.relationshipMeaning ?? RelationshipMeaning.RelatedInstance,
315
- actualPrimaryClassIds: json.actualPrimaryClassIds ?? [],
316
- autoExpand: json.autoExpand,
317
- };
318
- }
319
- /** Resets parent of this field and all nested fields. */
320
- resetParentship() {
321
- super.resetParentship();
322
- for (const nestedField of this.nestedFields)
323
- nestedField.resetParentship();
324
- }
325
- /**
326
- * Sets provided [[NestedContentField]] as parent of this fields and recursively updates
327
- * all nested fields parents.
328
- */
329
- rebuildParentship(parentField) {
330
- super.rebuildParentship(parentField);
331
- for (const nestedField of this.nestedFields)
332
- nestedField.rebuildParentship(this);
333
- }
334
- }
335
- /** @internal */
336
- export const getFieldByName = (fields, name, recurse) => {
337
- if (name) {
338
- for (const field of fields) {
339
- if (field.name === name)
340
- return field;
341
- if (recurse && field.isNestedContentField()) {
342
- const nested = getFieldByName(field.nestedFields, name, recurse);
343
- if (nested)
344
- return nested;
345
- }
346
- }
347
- }
348
- return undefined;
349
- };
350
- /**
351
- * Types of different field descriptors.
352
- * @public
353
- */
354
- export var FieldDescriptorType;
355
- (function (FieldDescriptorType) {
356
- FieldDescriptorType["Name"] = "name";
357
- FieldDescriptorType["Properties"] = "properties";
358
- })(FieldDescriptorType || (FieldDescriptorType = {}));
359
- /** @public */
360
- export var FieldDescriptor;
361
- (function (FieldDescriptor) {
362
- /** Is this a named field descriptor */
363
- function isNamed(d) {
364
- return d.type === FieldDescriptorType.Name;
365
- }
366
- FieldDescriptor.isNamed = isNamed;
367
- /** Is this a properties field descriptor */
368
- function isProperties(d) {
369
- return d.type === FieldDescriptorType.Properties;
370
- }
371
- FieldDescriptor.isProperties = isProperties;
372
- })(FieldDescriptor || (FieldDescriptor = {}));
373
- function fromCompressedPropertyJSON(compressedPropertyJSON, classesMap) {
374
- return {
375
- property: fromCompressedPropertyInfoJSON(compressedPropertyJSON.property, classesMap),
376
- };
377
- }
378
- function fromCompressedPropertyInfoJSON(compressedPropertyJSON, classesMap) {
379
- assert(classesMap.hasOwnProperty(compressedPropertyJSON.classInfo));
380
- const { navigationPropertyInfo, ...leftOverPropertyJSON } = compressedPropertyJSON;
381
- return {
382
- ...leftOverPropertyJSON,
383
- classInfo: { id: compressedPropertyJSON.classInfo, ...classesMap[compressedPropertyJSON.classInfo] },
384
- ...(navigationPropertyInfo ? { navigationPropertyInfo: NavigationPropertyInfo.fromCompressedJSON(navigationPropertyInfo, classesMap) } : undefined),
385
- };
386
- }
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 { NavigationPropertyInfo, RelatedClassInfo, RelationshipPath, } from "../EC";
10
+ import { PresentationError, PresentationStatus } from "../Error";
11
+ import { RelationshipMeaning } from "../rules/content/modifiers/RelatedPropertiesSpecification";
12
+ import { Property } from "./Property";
13
+ /** Is supplied field a properties field. */
14
+ const isPropertiesField = (field) => {
15
+ return !!field.properties;
16
+ };
17
+ /** Is supplied field a nested content field. */
18
+ const isNestedContentField = (field) => {
19
+ return !!field.nestedFields;
20
+ };
21
+ /**
22
+ * Describes a single content field. A field is usually represented as a grid column
23
+ * or a property pane row.
24
+ *
25
+ * @public
26
+ */
27
+ export class Field {
28
+ /**
29
+ * Creates an instance of Field.
30
+ * @param category Category information
31
+ * @param name Unique name
32
+ * @param label Display label
33
+ * @param type Description of this field's values data type
34
+ * @param isReadonly Are values in this field read-only
35
+ * @param priority Priority of the field
36
+ * @param editor Property editor used to edit values of this field
37
+ * @param renderer Property renderer used to render values of this field
38
+ */
39
+ constructor(category, name, label, type, isReadonly, priority, editor, renderer) {
40
+ this.category = category;
41
+ this.name = name;
42
+ this.label = label;
43
+ this.type = type;
44
+ this.isReadonly = isReadonly;
45
+ this.priority = priority;
46
+ this.editor = editor;
47
+ this.renderer = renderer;
48
+ }
49
+ /**
50
+ * Is this a [[PropertiesField]]
51
+ */
52
+ isPropertiesField() { return isPropertiesField(this); }
53
+ /**
54
+ * Is this a [[NestedContentField]]
55
+ */
56
+ isNestedContentField() { return isNestedContentField(this); }
57
+ /**
58
+ * Get parent
59
+ */
60
+ get parent() { return this._parent; }
61
+ clone() {
62
+ const clone = new Field(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.editor, this.renderer);
63
+ clone.rebuildParentship(this.parent);
64
+ return clone;
65
+ }
66
+ /** Serialize this object to JSON */
67
+ toJSON() {
68
+ return {
69
+ category: this.category.name,
70
+ name: this.name,
71
+ label: this.label,
72
+ type: this.type,
73
+ isReadonly: this.isReadonly,
74
+ priority: this.priority,
75
+ renderer: this.renderer,
76
+ editor: this.editor,
77
+ };
78
+ }
79
+ /** Serialize this object to compressed JSON */
80
+ toCompressedJSON(classesMap) {
81
+ if (this.isPropertiesField())
82
+ return {
83
+ ...this.toJSON(),
84
+ properties: this.properties.map((property) => Property.toCompressedJSON(property, classesMap)),
85
+ };
86
+ if (this.isNestedContentField()) {
87
+ const { id, ...leftOverInfo } = this.contentClassInfo;
88
+ classesMap[id] = leftOverInfo;
89
+ return {
90
+ ...this.toJSON(),
91
+ contentClassInfo: id,
92
+ pathToPrimaryClass: this.pathToPrimaryClass.map((classInfo) => RelatedClassInfo.toCompressedJSON(classInfo, classesMap)),
93
+ nestedFields: this.nestedFields.map((field) => field.toCompressedJSON(classesMap)),
94
+ };
95
+ }
96
+ return this.toJSON();
97
+ }
98
+ /** Deserialize [[Field]] from JSON */
99
+ static fromJSON(json, categories) {
100
+ if (!json)
101
+ return undefined;
102
+ if (isPropertiesField(json))
103
+ return PropertiesField.fromJSON(json, categories);
104
+ if (isNestedContentField(json))
105
+ // eslint-disable-next-line deprecation/deprecation
106
+ return NestedContentField.fromJSON(json, categories);
107
+ const field = Object.create(Field.prototype);
108
+ return Object.assign(field, json, {
109
+ category: Field.getCategoryFromFieldJson(json, categories),
110
+ });
111
+ }
112
+ /** Deserialize a [[Field]] from compressed JSON. */
113
+ static fromCompressedJSON(json, classesMap, categories) {
114
+ if (!json)
115
+ return undefined;
116
+ if (isPropertiesField(json))
117
+ return PropertiesField.fromCompressedJSON(json, classesMap, categories);
118
+ if (isNestedContentField(json))
119
+ return NestedContentField.fromCompressedJSON(json, classesMap, categories);
120
+ const field = Object.create(Field.prototype);
121
+ return Object.assign(field, json, {
122
+ category: Field.getCategoryFromFieldJson(json, categories),
123
+ });
124
+ }
125
+ static getCategoryFromFieldJson(fieldJson, categories) {
126
+ const category = categories.find((c) => c.name === fieldJson.category);
127
+ if (!category)
128
+ throw new PresentationError(PresentationStatus.InvalidArgument, `Invalid content field category`);
129
+ return category;
130
+ }
131
+ /** Resets field's parent. */
132
+ resetParentship() {
133
+ this._parent = undefined;
134
+ }
135
+ /** Sets provided [[NestedContentField]] as parent of this field. */
136
+ rebuildParentship(parentField) {
137
+ this._parent = parentField;
138
+ }
139
+ /**
140
+ * Get descriptor for this field.
141
+ * @public
142
+ */
143
+ getFieldDescriptor() {
144
+ return {
145
+ type: FieldDescriptorType.Name,
146
+ fieldName: this.name,
147
+ };
148
+ }
149
+ }
150
+ /**
151
+ * Describes a content field that's based on one or more similar
152
+ * EC properties.
153
+ *
154
+ * @public
155
+ */
156
+ export class PropertiesField extends Field {
157
+ /**
158
+ * Creates an instance of PropertiesField.
159
+ * @param category Category information
160
+ * @param name Unique name
161
+ * @param label Display label
162
+ * @param type Description of this field's values data type
163
+ * @param isReadonly Are values in this field read-only
164
+ * @param priority Priority of the field
165
+ * @param properties A list of properties this field is created from
166
+ * @param editor Property editor used to edit values of this field
167
+ * @param renderer Property renderer used to render values of this field
168
+ */
169
+ constructor(category, name, label, description, isReadonly, priority, properties, editor, renderer) {
170
+ super(category, name, label, description, isReadonly, priority, editor, renderer);
171
+ this.properties = properties;
172
+ }
173
+ clone() {
174
+ const clone = new PropertiesField(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.properties, this.editor, this.renderer);
175
+ clone.rebuildParentship(this.parent);
176
+ return clone;
177
+ }
178
+ /** Serialize this object to JSON */
179
+ toJSON() {
180
+ return {
181
+ ...super.toJSON(),
182
+ properties: this.properties,
183
+ };
184
+ }
185
+ /** Deserialize [[PropertiesField]] from JSON */
186
+ static fromJSON(json, categories) {
187
+ if (!json)
188
+ return undefined;
189
+ const field = Object.create(PropertiesField.prototype);
190
+ return Object.assign(field, json, {
191
+ category: this.getCategoryFromFieldJson(json, categories),
192
+ });
193
+ }
194
+ /**
195
+ * Deserialize a [[PropertiesField]] from compressed JSON.
196
+ * @public
197
+ */
198
+ static fromCompressedJSON(json, classesMap, categories) {
199
+ const field = Object.create(PropertiesField.prototype);
200
+ return Object.assign(field, json, {
201
+ category: this.getCategoryFromFieldJson(json, categories),
202
+ properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),
203
+ });
204
+ }
205
+ /**
206
+ * Get descriptor for this field.
207
+ * @public
208
+ */
209
+ getFieldDescriptor() {
210
+ const pathFromPropertyToSelectClass = new Array();
211
+ let currAncestor = this.parent;
212
+ while (currAncestor) {
213
+ pathFromPropertyToSelectClass.push(...currAncestor.pathToPrimaryClass);
214
+ currAncestor = currAncestor.parent;
215
+ }
216
+ return {
217
+ type: FieldDescriptorType.Properties,
218
+ pathFromSelectToPropertyClass: RelationshipPath.strip(RelationshipPath.reverse(pathFromPropertyToSelectClass)),
219
+ properties: this.properties.map((p) => ({
220
+ class: p.property.classInfo.name,
221
+ name: p.property.name,
222
+ })),
223
+ };
224
+ }
225
+ }
226
+ /**
227
+ * Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).
228
+ *
229
+ * @public
230
+ */
231
+ export class NestedContentField extends Field {
232
+ /**
233
+ * Creates an instance of NestedContentField.
234
+ * @param category Category information
235
+ * @param name Unique name
236
+ * @param label Display label
237
+ * @param type Description of this field's values data type
238
+ * @param isReadonly Are values in this field read-only
239
+ * @param priority Priority of the field
240
+ * @param contentClassInfo Information about an ECClass whose properties are nested inside this field
241
+ * @param pathToPrimaryClass Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class)
242
+ * @param nestedFields Contained nested fields
243
+ * @param editor Property editor used to edit values of this field
244
+ * @param autoExpand Flag specifying whether field should be expanded
245
+ * @param relationshipMeaning RelationshipMeaning of the field
246
+ * @param renderer Property renderer used to render values of this field
247
+ */
248
+ constructor(category, name, label, description, isReadonly, priority, contentClassInfo, pathToPrimaryClass, nestedFields, editor, autoExpand, renderer) {
249
+ super(category, name, label, description, isReadonly, priority, editor, renderer);
250
+ this.contentClassInfo = contentClassInfo;
251
+ this.pathToPrimaryClass = pathToPrimaryClass;
252
+ this.relationshipMeaning = RelationshipMeaning.RelatedInstance;
253
+ this.nestedFields = nestedFields;
254
+ this.autoExpand = autoExpand;
255
+ this.actualPrimaryClassIds = [];
256
+ }
257
+ clone() {
258
+ const clone = new NestedContentField(this.category, this.name, this.label, this.type, this.isReadonly, this.priority, this.contentClassInfo, this.pathToPrimaryClass, this.nestedFields.map((n) => n.clone()), this.editor, this.autoExpand, this.renderer);
259
+ clone.actualPrimaryClassIds = this.actualPrimaryClassIds;
260
+ clone.relationshipMeaning = this.relationshipMeaning;
261
+ clone.rebuildParentship(this.parent);
262
+ return clone;
263
+ }
264
+ /**
265
+ * Get field by its name
266
+ * @param name Name of the field to find
267
+ * @param recurse Recurse into nested fields
268
+ */
269
+ getFieldByName(name, recurse) {
270
+ return getFieldByName(this.nestedFields, name, recurse);
271
+ }
272
+ /** Serialize this object to JSON */
273
+ toJSON() {
274
+ return {
275
+ ...super.toJSON(),
276
+ contentClassInfo: this.contentClassInfo,
277
+ pathToPrimaryClass: this.pathToPrimaryClass,
278
+ relationshipMeaning: this.relationshipMeaning,
279
+ actualPrimaryClassIds: this.actualPrimaryClassIds,
280
+ nestedFields: this.nestedFields.map((field) => field.toJSON()),
281
+ autoExpand: this.autoExpand,
282
+ };
283
+ }
284
+ /**
285
+ * Deserialize [[NestedContentField]] from JSON
286
+ * @deprecated in 3.x. Use [[NestedContentField.fromCompressedJSON]]
287
+ */
288
+ static fromJSON(json, categories) {
289
+ if (!json)
290
+ return undefined;
291
+ const field = Object.create(NestedContentField.prototype);
292
+ return Object.assign(field, json, this.fromCommonJSON(json, categories), {
293
+ nestedFields: json.nestedFields
294
+ .map((nestedFieldJson) => Field.fromJSON(nestedFieldJson, categories))
295
+ .filter((nestedField) => !!nestedField),
296
+ });
297
+ }
298
+ /** Deserialize a [[NestedContentField]] from compressed JSON. */
299
+ static fromCompressedJSON(json, classesMap, categories) {
300
+ assert(classesMap.hasOwnProperty(json.contentClassInfo));
301
+ const field = Object.create(NestedContentField.prototype);
302
+ return Object.assign(field, json, this.fromCommonJSON(json, categories), {
303
+ category: this.getCategoryFromFieldJson(json, categories),
304
+ nestedFields: json.nestedFields.map((nestedFieldJson) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))
305
+ .filter((nestedField) => !!nestedField),
306
+ contentClassInfo: { id: json.contentClassInfo, ...classesMap[json.contentClassInfo] },
307
+ pathToPrimaryClass: json.pathToPrimaryClass.map((stepJson) => RelatedClassInfo.fromCompressedJSON(stepJson, classesMap)),
308
+ });
309
+ }
310
+ // eslint-disable-next-line deprecation/deprecation
311
+ static fromCommonJSON(json, categories) {
312
+ return {
313
+ category: this.getCategoryFromFieldJson(json, categories),
314
+ relationshipMeaning: json.relationshipMeaning ?? RelationshipMeaning.RelatedInstance,
315
+ actualPrimaryClassIds: json.actualPrimaryClassIds ?? [],
316
+ autoExpand: json.autoExpand,
317
+ };
318
+ }
319
+ /** Resets parent of this field and all nested fields. */
320
+ resetParentship() {
321
+ super.resetParentship();
322
+ for (const nestedField of this.nestedFields)
323
+ nestedField.resetParentship();
324
+ }
325
+ /**
326
+ * Sets provided [[NestedContentField]] as parent of this fields and recursively updates
327
+ * all nested fields parents.
328
+ */
329
+ rebuildParentship(parentField) {
330
+ super.rebuildParentship(parentField);
331
+ for (const nestedField of this.nestedFields)
332
+ nestedField.rebuildParentship(this);
333
+ }
334
+ }
335
+ /** @internal */
336
+ export const getFieldByName = (fields, name, recurse) => {
337
+ if (name) {
338
+ for (const field of fields) {
339
+ if (field.name === name)
340
+ return field;
341
+ if (recurse && field.isNestedContentField()) {
342
+ const nested = getFieldByName(field.nestedFields, name, recurse);
343
+ if (nested)
344
+ return nested;
345
+ }
346
+ }
347
+ }
348
+ return undefined;
349
+ };
350
+ /**
351
+ * Types of different field descriptors.
352
+ * @public
353
+ */
354
+ export var FieldDescriptorType;
355
+ (function (FieldDescriptorType) {
356
+ FieldDescriptorType["Name"] = "name";
357
+ FieldDescriptorType["Properties"] = "properties";
358
+ })(FieldDescriptorType || (FieldDescriptorType = {}));
359
+ /** @public */
360
+ export var FieldDescriptor;
361
+ (function (FieldDescriptor) {
362
+ /** Is this a named field descriptor */
363
+ function isNamed(d) {
364
+ return d.type === FieldDescriptorType.Name;
365
+ }
366
+ FieldDescriptor.isNamed = isNamed;
367
+ /** Is this a properties field descriptor */
368
+ function isProperties(d) {
369
+ return d.type === FieldDescriptorType.Properties;
370
+ }
371
+ FieldDescriptor.isProperties = isProperties;
372
+ })(FieldDescriptor || (FieldDescriptor = {}));
373
+ function fromCompressedPropertyJSON(compressedPropertyJSON, classesMap) {
374
+ return {
375
+ property: fromCompressedPropertyInfoJSON(compressedPropertyJSON.property, classesMap),
376
+ };
377
+ }
378
+ function fromCompressedPropertyInfoJSON(compressedPropertyJSON, classesMap) {
379
+ assert(classesMap.hasOwnProperty(compressedPropertyJSON.classInfo));
380
+ const { navigationPropertyInfo, ...leftOverPropertyJSON } = compressedPropertyJSON;
381
+ return {
382
+ ...leftOverPropertyJSON,
383
+ classInfo: { id: compressedPropertyJSON.classInfo, ...classesMap[compressedPropertyJSON.classInfo] },
384
+ ...(navigationPropertyInfo ? { navigationPropertyInfo: NavigationPropertyInfo.fromCompressedJSON(navigationPropertyInfo, classesMap) } : undefined),
385
+ };
386
+ }
387
387
  //# sourceMappingURL=Fields.js.map