@itwin/core-common 5.0.0-dev.10 → 5.0.0-dev.102

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 (746) hide show
  1. package/CHANGELOG.md +60 -1
  2. package/lib/cjs/AmbientOcclusion.js +17 -9
  3. package/lib/cjs/AmbientOcclusion.js.map +1 -1
  4. package/lib/cjs/AnalysisStyle.d.ts +0 -3
  5. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  6. package/lib/cjs/AnalysisStyle.js +20 -4
  7. package/lib/cjs/AnalysisStyle.js.map +1 -1
  8. package/lib/cjs/Atmosphere.js +39 -21
  9. package/lib/cjs/Atmosphere.js.map +1 -1
  10. package/lib/cjs/BackgroundMapProvider.js +4 -0
  11. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  12. package/lib/cjs/BackgroundMapSettings.js +19 -0
  13. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  14. package/lib/cjs/BlobReader.js +8 -6
  15. package/lib/cjs/BlobReader.js.map +1 -1
  16. package/lib/cjs/BriefcaseTypes.d.ts +2 -2
  17. package/lib/cjs/BriefcaseTypes.d.ts.map +1 -1
  18. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  19. package/lib/cjs/Camera.js +3 -0
  20. package/lib/cjs/Camera.js.map +1 -1
  21. package/lib/cjs/ChangesetProps.d.ts +1 -1
  22. package/lib/cjs/ChangesetProps.js.map +1 -1
  23. package/lib/cjs/ClipStyle.js +31 -5
  24. package/lib/cjs/ClipStyle.js.map +1 -1
  25. package/lib/cjs/Code.d.ts +0 -5
  26. package/lib/cjs/Code.d.ts.map +1 -1
  27. package/lib/cjs/Code.js +16 -11
  28. package/lib/cjs/Code.js.map +1 -1
  29. package/lib/cjs/ColorDef.js +11 -10
  30. package/lib/cjs/ColorDef.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.d.ts +35 -0
  32. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.js +19 -3
  34. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  35. package/lib/cjs/ContextRealityModel.js +53 -27
  36. package/lib/cjs/ContextRealityModel.js.map +1 -1
  37. package/lib/cjs/ContourDisplay.js +40 -5
  38. package/lib/cjs/ContourDisplay.js.map +1 -1
  39. package/lib/cjs/DisplayStyleSettings.js +95 -63
  40. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  41. package/lib/cjs/ECSqlReader.d.ts +2 -0
  42. package/lib/cjs/ECSqlReader.d.ts.map +1 -1
  43. package/lib/cjs/ECSqlReader.js +54 -50
  44. package/lib/cjs/ECSqlReader.js.map +1 -1
  45. package/lib/cjs/ElementProps.d.ts +14 -1
  46. package/lib/cjs/ElementProps.d.ts.map +1 -1
  47. package/lib/cjs/ElementProps.js +7 -3
  48. package/lib/cjs/ElementProps.js.map +1 -1
  49. package/lib/cjs/EntityProps.d.ts +25 -2
  50. package/lib/cjs/EntityProps.d.ts.map +1 -1
  51. package/lib/cjs/EntityProps.js +39 -0
  52. package/lib/cjs/EntityProps.js.map +1 -1
  53. package/lib/cjs/Environment.js +25 -2
  54. package/lib/cjs/Environment.js.map +1 -1
  55. package/lib/cjs/FeatureIndex.js +15 -6
  56. package/lib/cjs/FeatureIndex.js.map +1 -1
  57. package/lib/cjs/FeatureSymbology.d.ts +25 -73
  58. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  59. package/lib/cjs/FeatureSymbology.js +88 -103
  60. package/lib/cjs/FeatureSymbology.js.map +1 -1
  61. package/lib/cjs/FeatureTable.d.ts +6 -108
  62. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  63. package/lib/cjs/FeatureTable.js +13 -329
  64. package/lib/cjs/FeatureTable.js.map +1 -1
  65. package/lib/cjs/Fonts.d.ts +68 -10
  66. package/lib/cjs/Fonts.d.ts.map +1 -1
  67. package/lib/cjs/Fonts.js +19 -4
  68. package/lib/cjs/Fonts.js.map +1 -1
  69. package/lib/cjs/Frustum.js +2 -2
  70. package/lib/cjs/Frustum.js.map +1 -1
  71. package/lib/cjs/GeoCoordinateServices.d.ts +1 -0
  72. package/lib/cjs/GeoCoordinateServices.d.ts.map +1 -1
  73. package/lib/cjs/GeoCoordinateServices.js +2 -1
  74. package/lib/cjs/GeoCoordinateServices.js.map +1 -1
  75. package/lib/cjs/GeometryParams.js +58 -0
  76. package/lib/cjs/GeometryParams.js.map +1 -1
  77. package/lib/cjs/Gradient.d.ts +3 -4
  78. package/lib/cjs/Gradient.d.ts.map +1 -1
  79. package/lib/cjs/Gradient.js +21 -19
  80. package/lib/cjs/Gradient.js.map +1 -1
  81. package/lib/cjs/GraphicParams.js +14 -12
  82. package/lib/cjs/GraphicParams.js.map +1 -1
  83. package/lib/cjs/GroundPlane.js +8 -2
  84. package/lib/cjs/GroundPlane.js.map +1 -1
  85. package/lib/cjs/HSLColor.js +6 -0
  86. package/lib/cjs/HSLColor.js.map +1 -1
  87. package/lib/cjs/HSVColor.js +6 -0
  88. package/lib/cjs/HSVColor.js.map +1 -1
  89. package/lib/cjs/HiddenLine.d.ts +17 -18
  90. package/lib/cjs/HiddenLine.d.ts.map +1 -1
  91. package/lib/cjs/HiddenLine.js +24 -5
  92. package/lib/cjs/HiddenLine.js.map +1 -1
  93. package/lib/cjs/Hilite.js +10 -0
  94. package/lib/cjs/Hilite.js.map +1 -1
  95. package/lib/cjs/IModel.d.ts +3 -12
  96. package/lib/cjs/IModel.d.ts.map +1 -1
  97. package/lib/cjs/IModel.js +47 -23
  98. package/lib/cjs/IModel.js.map +1 -1
  99. package/lib/cjs/IModelError.d.ts +17 -9
  100. package/lib/cjs/IModelError.d.ts.map +1 -1
  101. package/lib/cjs/IModelError.js +7 -11
  102. package/lib/cjs/IModelError.js.map +1 -1
  103. package/lib/cjs/IModelVersion.js +4 -0
  104. package/lib/cjs/IModelVersion.js.map +1 -1
  105. package/lib/cjs/ITwinCoreErrors.d.ts +28 -0
  106. package/lib/cjs/ITwinCoreErrors.d.ts.map +1 -0
  107. package/lib/cjs/ITwinCoreErrors.js +28 -0
  108. package/lib/cjs/ITwinCoreErrors.js.map +1 -0
  109. package/lib/cjs/Image.d.ts +22 -8
  110. package/lib/cjs/Image.d.ts.map +1 -1
  111. package/lib/cjs/Image.js +20 -4
  112. package/lib/cjs/Image.js.map +1 -1
  113. package/lib/cjs/IpcAppProps.d.ts +2 -0
  114. package/lib/cjs/IpcAppProps.d.ts.map +1 -1
  115. package/lib/cjs/IpcAppProps.js.map +1 -1
  116. package/lib/cjs/LightSettings.js +39 -1
  117. package/lib/cjs/LightSettings.js.map +1 -1
  118. package/lib/cjs/Localization.d.ts +0 -10
  119. package/lib/cjs/Localization.d.ts.map +1 -1
  120. package/lib/cjs/Localization.js +0 -1
  121. package/lib/cjs/Localization.js.map +1 -1
  122. package/lib/cjs/MapImagerySettings.js +3 -2
  123. package/lib/cjs/MapImagerySettings.js.map +1 -1
  124. package/lib/cjs/MapLayerSettings.d.ts +38 -1
  125. package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
  126. package/lib/cjs/MapLayerSettings.js +71 -4
  127. package/lib/cjs/MapLayerSettings.js.map +1 -1
  128. package/lib/cjs/MassProperties.d.ts +2 -0
  129. package/lib/cjs/MassProperties.d.ts.map +1 -1
  130. package/lib/cjs/MassProperties.js.map +1 -1
  131. package/lib/cjs/ModelClipGroup.js +6 -0
  132. package/lib/cjs/ModelClipGroup.js.map +1 -1
  133. package/lib/cjs/OctEncodedNormal.js +4 -0
  134. package/lib/cjs/OctEncodedNormal.js.map +1 -1
  135. package/lib/cjs/PlanProjectionSettings.d.ts +1 -2
  136. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  137. package/lib/cjs/PlanProjectionSettings.js +8 -1
  138. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  139. package/lib/cjs/PlanarClipMask.d.ts +0 -12
  140. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  141. package/lib/cjs/PlanarClipMask.js +24 -2
  142. package/lib/cjs/PlanarClipMask.js.map +1 -1
  143. package/lib/cjs/QPoint.d.ts +5 -5
  144. package/lib/cjs/QPoint.d.ts.map +1 -1
  145. package/lib/cjs/QPoint.js +37 -29
  146. package/lib/cjs/QPoint.js.map +1 -1
  147. package/lib/cjs/RealityModelDisplaySettings.js +81 -4
  148. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  149. package/lib/cjs/RenderMaterial.d.ts +0 -43
  150. package/lib/cjs/RenderMaterial.d.ts.map +1 -1
  151. package/lib/cjs/RenderMaterial.js +6 -51
  152. package/lib/cjs/RenderMaterial.js.map +1 -1
  153. package/lib/cjs/RenderPolyline.d.ts +36 -0
  154. package/lib/cjs/RenderPolyline.d.ts.map +1 -0
  155. package/lib/cjs/RenderPolyline.js +26 -0
  156. package/lib/cjs/RenderPolyline.js.map +1 -0
  157. package/lib/cjs/RenderSchedule.d.ts +1 -2
  158. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  159. package/lib/cjs/RenderSchedule.js +138 -11
  160. package/lib/cjs/RenderSchedule.js.map +1 -1
  161. package/lib/cjs/RenderTexture.d.ts +5 -23
  162. package/lib/cjs/RenderTexture.d.ts.map +1 -1
  163. package/lib/cjs/RenderTexture.js +13 -16
  164. package/lib/cjs/RenderTexture.js.map +1 -1
  165. package/lib/cjs/RgbColor.js +3 -0
  166. package/lib/cjs/RgbColor.js.map +1 -1
  167. package/lib/cjs/RpcInterface.d.ts.map +1 -1
  168. package/lib/cjs/RpcInterface.js +7 -1
  169. package/lib/cjs/RpcInterface.js.map +1 -1
  170. package/lib/cjs/SkyBox.js +17 -4
  171. package/lib/cjs/SkyBox.js.map +1 -1
  172. package/lib/cjs/SolarShadows.js +5 -1
  173. package/lib/cjs/SolarShadows.js.map +1 -1
  174. package/lib/cjs/SpatialClassification.js +19 -1
  175. package/lib/cjs/SpatialClassification.js.map +1 -1
  176. package/lib/cjs/SubCategoryAppearance.js +35 -1
  177. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  178. package/lib/cjs/SubCategoryOverride.js +16 -2
  179. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  180. package/lib/cjs/TerrainSettings.d.ts +0 -7
  181. package/lib/cjs/TerrainSettings.d.ts.map +1 -1
  182. package/lib/cjs/TerrainSettings.js +19 -0
  183. package/lib/cjs/TerrainSettings.js.map +1 -1
  184. package/lib/cjs/TextureMapping.d.ts +17 -14
  185. package/lib/cjs/TextureMapping.d.ts.map +1 -1
  186. package/lib/cjs/TextureMapping.js +47 -19
  187. package/lib/cjs/TextureMapping.js.map +1 -1
  188. package/lib/cjs/ThematicDisplay.js +53 -2
  189. package/lib/cjs/ThematicDisplay.js.map +1 -1
  190. package/lib/cjs/Thumbnail.d.ts +1 -1
  191. package/lib/cjs/Thumbnail.js.map +1 -1
  192. package/lib/cjs/Tween.js +28 -19
  193. package/lib/cjs/Tween.js.map +1 -1
  194. package/lib/cjs/ViewDetails.js +10 -6
  195. package/lib/cjs/ViewDetails.js.map +1 -1
  196. package/lib/cjs/ViewFlags.d.ts +1 -3
  197. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  198. package/lib/cjs/ViewFlags.js +86 -5
  199. package/lib/cjs/ViewFlags.js.map +1 -1
  200. package/lib/cjs/ViewProps.d.ts +2 -6
  201. package/lib/cjs/ViewProps.d.ts.map +1 -1
  202. package/lib/cjs/ViewProps.js.map +1 -1
  203. package/lib/cjs/WhiteOnWhiteReversalSettings.js +7 -2
  204. package/lib/cjs/WhiteOnWhiteReversalSettings.js.map +1 -1
  205. package/lib/cjs/annotation/TextAnnotation.d.ts +3 -2
  206. package/lib/cjs/annotation/TextAnnotation.d.ts.map +1 -1
  207. package/lib/cjs/annotation/TextAnnotation.js +13 -2
  208. package/lib/cjs/annotation/TextAnnotation.js.map +1 -1
  209. package/lib/cjs/annotation/TextBlock.d.ts +17 -0
  210. package/lib/cjs/annotation/TextBlock.d.ts.map +1 -1
  211. package/lib/cjs/annotation/TextBlock.js +41 -6
  212. package/lib/cjs/annotation/TextBlock.js.map +1 -1
  213. package/lib/cjs/annotation/TextStyle.js +65 -19
  214. package/lib/cjs/annotation/TextStyle.js.map +1 -1
  215. package/lib/cjs/core-common.d.ts +3 -4
  216. package/lib/cjs/core-common.d.ts.map +1 -1
  217. package/lib/cjs/core-common.js +3 -4
  218. package/lib/cjs/core-common.js.map +1 -1
  219. package/lib/cjs/geometry/AdditionalTransform.js +12 -0
  220. package/lib/cjs/geometry/AdditionalTransform.js.map +1 -1
  221. package/lib/cjs/geometry/AreaPattern.js +17 -0
  222. package/lib/cjs/geometry/AreaPattern.js.map +1 -1
  223. package/lib/cjs/geometry/BoundingSphere.js +4 -0
  224. package/lib/cjs/geometry/BoundingSphere.js.map +1 -1
  225. package/lib/cjs/geometry/Cartographic.js +23 -20
  226. package/lib/cjs/geometry/Cartographic.js.map +1 -1
  227. package/lib/cjs/geometry/CoordinateReferenceSystem.js +62 -0
  228. package/lib/cjs/geometry/CoordinateReferenceSystem.js.map +1 -1
  229. package/lib/cjs/geometry/ElementGeometry.js +26 -8
  230. package/lib/cjs/geometry/ElementGeometry.js.map +1 -1
  231. package/lib/cjs/geometry/ElementGeometryFB.js +54 -108
  232. package/lib/cjs/geometry/ElementGeometryFB.js.map +1 -1
  233. package/lib/cjs/geometry/FrustumPlanes.js +1 -0
  234. package/lib/cjs/geometry/FrustumPlanes.js.map +1 -1
  235. package/lib/cjs/geometry/GeodeticDatum.js +100 -0
  236. package/lib/cjs/geometry/GeodeticDatum.js.map +1 -1
  237. package/lib/cjs/geometry/GeodeticEllipsoid.js +16 -0
  238. package/lib/cjs/geometry/GeodeticEllipsoid.js.map +1 -1
  239. package/lib/cjs/geometry/GeometryStream.js +19 -6
  240. package/lib/cjs/geometry/GeometryStream.js.map +1 -1
  241. package/lib/cjs/geometry/ImageGraphic.js +10 -0
  242. package/lib/cjs/geometry/ImageGraphic.js.map +1 -1
  243. package/lib/cjs/geometry/LineStyle.js +14 -0
  244. package/lib/cjs/geometry/LineStyle.js.map +1 -1
  245. package/lib/cjs/geometry/Placement.js +6 -0
  246. package/lib/cjs/geometry/Placement.js.map +1 -1
  247. package/lib/cjs/geometry/Projection.js +75 -0
  248. package/lib/cjs/geometry/Projection.js.map +1 -1
  249. package/lib/cjs/geometry/TextString.js +18 -0
  250. package/lib/cjs/geometry/TextString.js.map +1 -1
  251. package/lib/cjs/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  252. package/lib/cjs/internal/BackendTypes.d.ts.map +1 -0
  253. package/lib/cjs/internal/BackendTypes.js.map +1 -0
  254. package/lib/cjs/internal/PackedFeatureTable.d.ts +111 -0
  255. package/lib/cjs/internal/PackedFeatureTable.d.ts.map +1 -0
  256. package/lib/cjs/internal/PackedFeatureTable.js +359 -0
  257. package/lib/cjs/internal/PackedFeatureTable.js.map +1 -0
  258. package/lib/cjs/internal/RenderMaterialParams.d.ts +47 -0
  259. package/lib/cjs/internal/RenderMaterialParams.d.ts.map +1 -0
  260. package/lib/cjs/internal/RenderMaterialParams.js +68 -0
  261. package/lib/cjs/internal/RenderMaterialParams.js.map +1 -0
  262. package/lib/cjs/internal/RenderMesh.d.ts +52 -0
  263. package/lib/cjs/internal/RenderMesh.d.ts.map +1 -0
  264. package/lib/cjs/{Render.js → internal/RenderMesh.js} +12 -31
  265. package/lib/cjs/internal/RenderMesh.js.map +1 -0
  266. package/lib/cjs/internal/RenderTextureParams.d.ts +25 -0
  267. package/lib/cjs/internal/RenderTextureParams.d.ts.map +1 -0
  268. package/lib/cjs/internal/RenderTextureParams.js +37 -0
  269. package/lib/cjs/internal/RenderTextureParams.js.map +1 -0
  270. package/lib/cjs/internal/cross-package.d.ts +5 -0
  271. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  272. package/lib/cjs/internal/cross-package.js +16 -0
  273. package/lib/cjs/internal/cross-package.js.map +1 -1
  274. package/lib/cjs/ipc/IpcSession.js +1 -0
  275. package/lib/cjs/ipc/IpcSession.js.map +1 -1
  276. package/lib/cjs/ipc/IpcSocket.d.ts +2 -20
  277. package/lib/cjs/ipc/IpcSocket.d.ts.map +1 -1
  278. package/lib/cjs/ipc/IpcSocket.js.map +1 -1
  279. package/lib/cjs/ipc/IpcWebSocket.js +7 -6
  280. package/lib/cjs/ipc/IpcWebSocket.js.map +1 -1
  281. package/lib/cjs/ipc/IpcWebSocketTransport.js +8 -7
  282. package/lib/cjs/ipc/IpcWebSocketTransport.js.map +1 -1
  283. package/lib/cjs/rpc/DevToolsRpcInterface.js +6 -6
  284. package/lib/cjs/rpc/DevToolsRpcInterface.js.map +1 -1
  285. package/lib/cjs/rpc/IModelReadRpcInterface.js +8 -11
  286. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  287. package/lib/cjs/rpc/IModelTileRpcInterface.js +4 -4
  288. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  289. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js +4 -4
  290. package/lib/cjs/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  291. package/lib/cjs/rpc/TestRpcManager.js +1 -4
  292. package/lib/cjs/rpc/TestRpcManager.js.map +1 -1
  293. package/lib/cjs/rpc/core/RpcConfiguration.js +51 -64
  294. package/lib/cjs/rpc/core/RpcConfiguration.js.map +1 -1
  295. package/lib/cjs/rpc/core/RpcControl.js +29 -38
  296. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  297. package/lib/cjs/rpc/core/RpcInvocation.js +19 -13
  298. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  299. package/lib/cjs/rpc/core/RpcMarshaling.d.ts +1 -4
  300. package/lib/cjs/rpc/core/RpcMarshaling.d.ts.map +1 -1
  301. package/lib/cjs/rpc/core/RpcMarshaling.js +5 -4
  302. package/lib/cjs/rpc/core/RpcMarshaling.js.map +1 -1
  303. package/lib/cjs/rpc/core/RpcOperation.js +29 -31
  304. package/lib/cjs/rpc/core/RpcOperation.js.map +1 -1
  305. package/lib/cjs/rpc/core/RpcPendingQueue.js +17 -16
  306. package/lib/cjs/rpc/core/RpcPendingQueue.js.map +1 -1
  307. package/lib/cjs/rpc/core/RpcProtocol.js +32 -30
  308. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  309. package/lib/cjs/rpc/core/RpcPush.js +15 -8
  310. package/lib/cjs/rpc/core/RpcPush.js.map +1 -1
  311. package/lib/cjs/rpc/core/RpcRegistry.d.ts.map +1 -1
  312. package/lib/cjs/rpc/core/RpcRegistry.js +10 -9
  313. package/lib/cjs/rpc/core/RpcRegistry.js.map +1 -1
  314. package/lib/cjs/rpc/core/RpcRequest.d.ts +2 -2
  315. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  316. package/lib/cjs/rpc/core/RpcRequest.js +51 -29
  317. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  318. package/lib/cjs/rpc/core/RpcRoutingToken.js +4 -2
  319. package/lib/cjs/rpc/core/RpcRoutingToken.js.map +1 -1
  320. package/lib/cjs/rpc/core/RpcSessionInvocation.js +5 -10
  321. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -1
  322. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js +11 -17
  323. package/lib/cjs/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  324. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  325. package/lib/cjs/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  326. package/lib/cjs/rpc/web/OpenAPI.js +2 -0
  327. package/lib/cjs/rpc/web/OpenAPI.js.map +1 -1
  328. package/lib/cjs/rpc/web/RpcMultipart.d.ts +1 -1
  329. package/lib/cjs/rpc/web/RpcMultipart.d.ts.map +1 -1
  330. package/lib/cjs/rpc/web/RpcMultipart.js +13 -12
  331. package/lib/cjs/rpc/web/RpcMultipart.js.map +1 -1
  332. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts +3 -0
  333. package/lib/cjs/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  334. package/lib/cjs/rpc/web/WebAppRpcLogging.js +1 -6
  335. package/lib/cjs/rpc/web/WebAppRpcLogging.js.map +1 -1
  336. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  337. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  338. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +6 -6
  339. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  340. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  341. package/lib/cjs/rpc/web/WebAppRpcRequest.js +27 -27
  342. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  343. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  344. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  345. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js +14 -8
  346. package/lib/cjs/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  347. package/lib/cjs/tile/B3dmTileIO.js +7 -0
  348. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  349. package/lib/cjs/tile/CompositeTileIO.js +3 -0
  350. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  351. package/lib/cjs/tile/GltfTileIO.js +4 -3
  352. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  353. package/lib/cjs/tile/I3dmTileIO.js +8 -0
  354. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  355. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  356. package/lib/cjs/tile/IModelTileIO.js +26 -3
  357. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  358. package/lib/cjs/tile/PntsTileIO.js +5 -0
  359. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  360. package/lib/cjs/tile/TileIO.js +2 -0
  361. package/lib/cjs/tile/TileIO.js.map +1 -1
  362. package/lib/cjs/tile/TileMetadata.js +9 -1
  363. package/lib/cjs/tile/TileMetadata.js.map +1 -1
  364. package/lib/esm/AmbientOcclusion.js +17 -9
  365. package/lib/esm/AmbientOcclusion.js.map +1 -1
  366. package/lib/esm/AnalysisStyle.d.ts +0 -3
  367. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  368. package/lib/esm/AnalysisStyle.js +20 -4
  369. package/lib/esm/AnalysisStyle.js.map +1 -1
  370. package/lib/esm/Atmosphere.js +39 -21
  371. package/lib/esm/Atmosphere.js.map +1 -1
  372. package/lib/esm/BackgroundMapProvider.js +4 -0
  373. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  374. package/lib/esm/BackgroundMapSettings.js +19 -0
  375. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  376. package/lib/esm/BlobReader.js +8 -6
  377. package/lib/esm/BlobReader.js.map +1 -1
  378. package/lib/esm/BriefcaseTypes.d.ts +2 -2
  379. package/lib/esm/BriefcaseTypes.d.ts.map +1 -1
  380. package/lib/esm/BriefcaseTypes.js.map +1 -1
  381. package/lib/esm/Camera.js +3 -0
  382. package/lib/esm/Camera.js.map +1 -1
  383. package/lib/esm/ChangesetProps.d.ts +1 -1
  384. package/lib/esm/ChangesetProps.js.map +1 -1
  385. package/lib/esm/ClipStyle.js +31 -5
  386. package/lib/esm/ClipStyle.js.map +1 -1
  387. package/lib/esm/Code.d.ts +0 -5
  388. package/lib/esm/Code.d.ts.map +1 -1
  389. package/lib/esm/Code.js +16 -11
  390. package/lib/esm/Code.js.map +1 -1
  391. package/lib/esm/ColorDef.js +11 -10
  392. package/lib/esm/ColorDef.js.map +1 -1
  393. package/lib/esm/ConcurrentQuery.d.ts +35 -0
  394. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  395. package/lib/esm/ConcurrentQuery.js +19 -3
  396. package/lib/esm/ConcurrentQuery.js.map +1 -1
  397. package/lib/esm/ContextRealityModel.js +53 -27
  398. package/lib/esm/ContextRealityModel.js.map +1 -1
  399. package/lib/esm/ContourDisplay.js +40 -5
  400. package/lib/esm/ContourDisplay.js.map +1 -1
  401. package/lib/esm/DisplayStyleSettings.js +95 -63
  402. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  403. package/lib/esm/ECSqlReader.d.ts +2 -0
  404. package/lib/esm/ECSqlReader.d.ts.map +1 -1
  405. package/lib/esm/ECSqlReader.js +54 -50
  406. package/lib/esm/ECSqlReader.js.map +1 -1
  407. package/lib/esm/ElementProps.d.ts +14 -1
  408. package/lib/esm/ElementProps.d.ts.map +1 -1
  409. package/lib/esm/ElementProps.js +8 -4
  410. package/lib/esm/ElementProps.js.map +1 -1
  411. package/lib/esm/EntityProps.d.ts +25 -2
  412. package/lib/esm/EntityProps.d.ts.map +1 -1
  413. package/lib/esm/EntityProps.js +39 -0
  414. package/lib/esm/EntityProps.js.map +1 -1
  415. package/lib/esm/Environment.js +25 -2
  416. package/lib/esm/Environment.js.map +1 -1
  417. package/lib/esm/FeatureIndex.js +15 -6
  418. package/lib/esm/FeatureIndex.js.map +1 -1
  419. package/lib/esm/FeatureSymbology.d.ts +25 -73
  420. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  421. package/lib/esm/FeatureSymbology.js +88 -103
  422. package/lib/esm/FeatureSymbology.js.map +1 -1
  423. package/lib/esm/FeatureTable.d.ts +6 -108
  424. package/lib/esm/FeatureTable.d.ts.map +1 -1
  425. package/lib/esm/FeatureTable.js +11 -324
  426. package/lib/esm/FeatureTable.js.map +1 -1
  427. package/lib/esm/Fonts.d.ts +68 -10
  428. package/lib/esm/Fonts.d.ts.map +1 -1
  429. package/lib/esm/Fonts.js +19 -4
  430. package/lib/esm/Fonts.js.map +1 -1
  431. package/lib/esm/Frustum.js +2 -2
  432. package/lib/esm/Frustum.js.map +1 -1
  433. package/lib/esm/GeoCoordinateServices.d.ts +1 -0
  434. package/lib/esm/GeoCoordinateServices.d.ts.map +1 -1
  435. package/lib/esm/GeoCoordinateServices.js +2 -1
  436. package/lib/esm/GeoCoordinateServices.js.map +1 -1
  437. package/lib/esm/GeometryParams.js +58 -0
  438. package/lib/esm/GeometryParams.js.map +1 -1
  439. package/lib/esm/Gradient.d.ts +3 -4
  440. package/lib/esm/Gradient.d.ts.map +1 -1
  441. package/lib/esm/Gradient.js +21 -19
  442. package/lib/esm/Gradient.js.map +1 -1
  443. package/lib/esm/GraphicParams.js +14 -12
  444. package/lib/esm/GraphicParams.js.map +1 -1
  445. package/lib/esm/GroundPlane.js +8 -2
  446. package/lib/esm/GroundPlane.js.map +1 -1
  447. package/lib/esm/HSLColor.js +6 -0
  448. package/lib/esm/HSLColor.js.map +1 -1
  449. package/lib/esm/HSVColor.js +6 -0
  450. package/lib/esm/HSVColor.js.map +1 -1
  451. package/lib/esm/HiddenLine.d.ts +17 -18
  452. package/lib/esm/HiddenLine.d.ts.map +1 -1
  453. package/lib/esm/HiddenLine.js +24 -5
  454. package/lib/esm/HiddenLine.js.map +1 -1
  455. package/lib/esm/Hilite.js +10 -0
  456. package/lib/esm/Hilite.js.map +1 -1
  457. package/lib/esm/IModel.d.ts +3 -12
  458. package/lib/esm/IModel.d.ts.map +1 -1
  459. package/lib/esm/IModel.js +47 -23
  460. package/lib/esm/IModel.js.map +1 -1
  461. package/lib/esm/IModelError.d.ts +17 -9
  462. package/lib/esm/IModelError.d.ts.map +1 -1
  463. package/lib/esm/IModelError.js +6 -4
  464. package/lib/esm/IModelError.js.map +1 -1
  465. package/lib/esm/IModelVersion.js +4 -0
  466. package/lib/esm/IModelVersion.js.map +1 -1
  467. package/lib/esm/ITwinCoreErrors.d.ts +28 -0
  468. package/lib/esm/ITwinCoreErrors.d.ts.map +1 -0
  469. package/lib/esm/ITwinCoreErrors.js +25 -0
  470. package/lib/esm/ITwinCoreErrors.js.map +1 -0
  471. package/lib/esm/Image.d.ts +22 -8
  472. package/lib/esm/Image.d.ts.map +1 -1
  473. package/lib/esm/Image.js +19 -4
  474. package/lib/esm/Image.js.map +1 -1
  475. package/lib/esm/IpcAppProps.d.ts +2 -0
  476. package/lib/esm/IpcAppProps.d.ts.map +1 -1
  477. package/lib/esm/IpcAppProps.js.map +1 -1
  478. package/lib/esm/LightSettings.js +39 -1
  479. package/lib/esm/LightSettings.js.map +1 -1
  480. package/lib/esm/Localization.d.ts +0 -10
  481. package/lib/esm/Localization.d.ts.map +1 -1
  482. package/lib/esm/Localization.js +0 -1
  483. package/lib/esm/Localization.js.map +1 -1
  484. package/lib/esm/MapImagerySettings.js +3 -2
  485. package/lib/esm/MapImagerySettings.js.map +1 -1
  486. package/lib/esm/MapLayerSettings.d.ts +38 -1
  487. package/lib/esm/MapLayerSettings.d.ts.map +1 -1
  488. package/lib/esm/MapLayerSettings.js +70 -3
  489. package/lib/esm/MapLayerSettings.js.map +1 -1
  490. package/lib/esm/MassProperties.d.ts +2 -0
  491. package/lib/esm/MassProperties.d.ts.map +1 -1
  492. package/lib/esm/MassProperties.js.map +1 -1
  493. package/lib/esm/ModelClipGroup.js +6 -0
  494. package/lib/esm/ModelClipGroup.js.map +1 -1
  495. package/lib/esm/OctEncodedNormal.js +4 -0
  496. package/lib/esm/OctEncodedNormal.js.map +1 -1
  497. package/lib/esm/PlanProjectionSettings.d.ts +1 -2
  498. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  499. package/lib/esm/PlanProjectionSettings.js +8 -1
  500. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  501. package/lib/esm/PlanarClipMask.d.ts +0 -12
  502. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  503. package/lib/esm/PlanarClipMask.js +24 -2
  504. package/lib/esm/PlanarClipMask.js.map +1 -1
  505. package/lib/esm/QPoint.d.ts +5 -5
  506. package/lib/esm/QPoint.d.ts.map +1 -1
  507. package/lib/esm/QPoint.js +37 -29
  508. package/lib/esm/QPoint.js.map +1 -1
  509. package/lib/esm/RealityModelDisplaySettings.js +81 -4
  510. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  511. package/lib/esm/RenderMaterial.d.ts +0 -43
  512. package/lib/esm/RenderMaterial.d.ts.map +1 -1
  513. package/lib/esm/RenderMaterial.js +6 -51
  514. package/lib/esm/RenderMaterial.js.map +1 -1
  515. package/lib/esm/RenderPolyline.d.ts +36 -0
  516. package/lib/esm/RenderPolyline.d.ts.map +1 -0
  517. package/lib/esm/RenderPolyline.js +23 -0
  518. package/lib/esm/RenderPolyline.js.map +1 -0
  519. package/lib/esm/RenderSchedule.d.ts +1 -2
  520. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  521. package/lib/esm/RenderSchedule.js +138 -11
  522. package/lib/esm/RenderSchedule.js.map +1 -1
  523. package/lib/esm/RenderTexture.d.ts +5 -23
  524. package/lib/esm/RenderTexture.d.ts.map +1 -1
  525. package/lib/esm/RenderTexture.js +13 -16
  526. package/lib/esm/RenderTexture.js.map +1 -1
  527. package/lib/esm/RgbColor.js +3 -0
  528. package/lib/esm/RgbColor.js.map +1 -1
  529. package/lib/esm/RpcInterface.d.ts.map +1 -1
  530. package/lib/esm/RpcInterface.js +8 -2
  531. package/lib/esm/RpcInterface.js.map +1 -1
  532. package/lib/esm/SkyBox.js +17 -4
  533. package/lib/esm/SkyBox.js.map +1 -1
  534. package/lib/esm/SolarShadows.js +5 -1
  535. package/lib/esm/SolarShadows.js.map +1 -1
  536. package/lib/esm/SpatialClassification.js +19 -1
  537. package/lib/esm/SpatialClassification.js.map +1 -1
  538. package/lib/esm/SubCategoryAppearance.js +35 -1
  539. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  540. package/lib/esm/SubCategoryOverride.js +16 -2
  541. package/lib/esm/SubCategoryOverride.js.map +1 -1
  542. package/lib/esm/TerrainSettings.d.ts +0 -7
  543. package/lib/esm/TerrainSettings.d.ts.map +1 -1
  544. package/lib/esm/TerrainSettings.js +19 -0
  545. package/lib/esm/TerrainSettings.js.map +1 -1
  546. package/lib/esm/TextureMapping.d.ts +17 -14
  547. package/lib/esm/TextureMapping.d.ts.map +1 -1
  548. package/lib/esm/TextureMapping.js +47 -19
  549. package/lib/esm/TextureMapping.js.map +1 -1
  550. package/lib/esm/ThematicDisplay.js +53 -2
  551. package/lib/esm/ThematicDisplay.js.map +1 -1
  552. package/lib/esm/Thumbnail.d.ts +1 -1
  553. package/lib/esm/Thumbnail.js.map +1 -1
  554. package/lib/esm/Tween.js +28 -19
  555. package/lib/esm/Tween.js.map +1 -1
  556. package/lib/esm/ViewDetails.js +10 -6
  557. package/lib/esm/ViewDetails.js.map +1 -1
  558. package/lib/esm/ViewFlags.d.ts +1 -3
  559. package/lib/esm/ViewFlags.d.ts.map +1 -1
  560. package/lib/esm/ViewFlags.js +86 -5
  561. package/lib/esm/ViewFlags.js.map +1 -1
  562. package/lib/esm/ViewProps.d.ts +2 -6
  563. package/lib/esm/ViewProps.d.ts.map +1 -1
  564. package/lib/esm/ViewProps.js.map +1 -1
  565. package/lib/esm/WhiteOnWhiteReversalSettings.js +7 -2
  566. package/lib/esm/WhiteOnWhiteReversalSettings.js.map +1 -1
  567. package/lib/esm/annotation/TextAnnotation.d.ts +3 -2
  568. package/lib/esm/annotation/TextAnnotation.d.ts.map +1 -1
  569. package/lib/esm/annotation/TextAnnotation.js +13 -2
  570. package/lib/esm/annotation/TextAnnotation.js.map +1 -1
  571. package/lib/esm/annotation/TextBlock.d.ts +17 -0
  572. package/lib/esm/annotation/TextBlock.d.ts.map +1 -1
  573. package/lib/esm/annotation/TextBlock.js +41 -6
  574. package/lib/esm/annotation/TextBlock.js.map +1 -1
  575. package/lib/esm/annotation/TextStyle.js +65 -19
  576. package/lib/esm/annotation/TextStyle.js.map +1 -1
  577. package/lib/esm/core-common.d.ts +3 -4
  578. package/lib/esm/core-common.d.ts.map +1 -1
  579. package/lib/esm/core-common.js +3 -4
  580. package/lib/esm/core-common.js.map +1 -1
  581. package/lib/esm/geometry/AdditionalTransform.js +12 -0
  582. package/lib/esm/geometry/AdditionalTransform.js.map +1 -1
  583. package/lib/esm/geometry/AreaPattern.js +17 -0
  584. package/lib/esm/geometry/AreaPattern.js.map +1 -1
  585. package/lib/esm/geometry/BoundingSphere.js +4 -0
  586. package/lib/esm/geometry/BoundingSphere.js.map +1 -1
  587. package/lib/esm/geometry/Cartographic.js +23 -20
  588. package/lib/esm/geometry/Cartographic.js.map +1 -1
  589. package/lib/esm/geometry/CoordinateReferenceSystem.js +62 -0
  590. package/lib/esm/geometry/CoordinateReferenceSystem.js.map +1 -1
  591. package/lib/esm/geometry/ElementGeometry.js +26 -8
  592. package/lib/esm/geometry/ElementGeometry.js.map +1 -1
  593. package/lib/esm/geometry/ElementGeometryFB.js +54 -108
  594. package/lib/esm/geometry/ElementGeometryFB.js.map +1 -1
  595. package/lib/esm/geometry/FrustumPlanes.js +1 -0
  596. package/lib/esm/geometry/FrustumPlanes.js.map +1 -1
  597. package/lib/esm/geometry/GeodeticDatum.js +100 -0
  598. package/lib/esm/geometry/GeodeticDatum.js.map +1 -1
  599. package/lib/esm/geometry/GeodeticEllipsoid.js +16 -0
  600. package/lib/esm/geometry/GeodeticEllipsoid.js.map +1 -1
  601. package/lib/esm/geometry/GeometryStream.js +19 -6
  602. package/lib/esm/geometry/GeometryStream.js.map +1 -1
  603. package/lib/esm/geometry/ImageGraphic.js +10 -0
  604. package/lib/esm/geometry/ImageGraphic.js.map +1 -1
  605. package/lib/esm/geometry/LineStyle.js +14 -0
  606. package/lib/esm/geometry/LineStyle.js.map +1 -1
  607. package/lib/esm/geometry/Placement.js +6 -0
  608. package/lib/esm/geometry/Placement.js.map +1 -1
  609. package/lib/esm/geometry/Projection.js +75 -0
  610. package/lib/esm/geometry/Projection.js.map +1 -1
  611. package/lib/esm/geometry/TextString.js +18 -0
  612. package/lib/esm/geometry/TextString.js.map +1 -1
  613. package/lib/esm/{BackendTypes.d.ts → internal/BackendTypes.d.ts} +1 -0
  614. package/lib/esm/internal/BackendTypes.d.ts.map +1 -0
  615. package/lib/esm/internal/BackendTypes.js.map +1 -0
  616. package/lib/esm/internal/PackedFeatureTable.d.ts +111 -0
  617. package/lib/esm/internal/PackedFeatureTable.d.ts.map +1 -0
  618. package/lib/esm/internal/PackedFeatureTable.js +352 -0
  619. package/lib/esm/internal/PackedFeatureTable.js.map +1 -0
  620. package/lib/esm/internal/RenderMaterialParams.d.ts +47 -0
  621. package/lib/esm/internal/RenderMaterialParams.d.ts.map +1 -0
  622. package/lib/esm/internal/RenderMaterialParams.js +64 -0
  623. package/lib/esm/internal/RenderMaterialParams.js.map +1 -0
  624. package/lib/esm/internal/RenderMesh.d.ts +52 -0
  625. package/lib/esm/internal/RenderMesh.d.ts.map +1 -0
  626. package/lib/esm/{Render.js → internal/RenderMesh.js} +11 -29
  627. package/lib/esm/internal/RenderMesh.js.map +1 -0
  628. package/lib/esm/internal/RenderTextureParams.d.ts +25 -0
  629. package/lib/esm/internal/RenderTextureParams.d.ts.map +1 -0
  630. package/lib/esm/internal/RenderTextureParams.js +33 -0
  631. package/lib/esm/internal/RenderTextureParams.js.map +1 -0
  632. package/lib/esm/internal/cross-package.d.ts +5 -0
  633. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  634. package/lib/esm/internal/cross-package.js +4 -1
  635. package/lib/esm/internal/cross-package.js.map +1 -1
  636. package/lib/esm/ipc/IpcSession.js +1 -0
  637. package/lib/esm/ipc/IpcSession.js.map +1 -1
  638. package/lib/esm/ipc/IpcSocket.d.ts +2 -20
  639. package/lib/esm/ipc/IpcSocket.d.ts.map +1 -1
  640. package/lib/esm/ipc/IpcSocket.js.map +1 -1
  641. package/lib/esm/ipc/IpcWebSocket.js +7 -6
  642. package/lib/esm/ipc/IpcWebSocket.js.map +1 -1
  643. package/lib/esm/ipc/IpcWebSocketTransport.js +8 -7
  644. package/lib/esm/ipc/IpcWebSocketTransport.js.map +1 -1
  645. package/lib/esm/rpc/DevToolsRpcInterface.js +6 -6
  646. package/lib/esm/rpc/DevToolsRpcInterface.js.map +1 -1
  647. package/lib/esm/rpc/IModelReadRpcInterface.js +8 -11
  648. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  649. package/lib/esm/rpc/IModelTileRpcInterface.js +4 -4
  650. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  651. package/lib/esm/rpc/SnapshotIModelRpcInterface.js +4 -4
  652. package/lib/esm/rpc/SnapshotIModelRpcInterface.js.map +1 -1
  653. package/lib/esm/rpc/TestRpcManager.js +1 -4
  654. package/lib/esm/rpc/TestRpcManager.js.map +1 -1
  655. package/lib/esm/rpc/core/RpcConfiguration.js +51 -64
  656. package/lib/esm/rpc/core/RpcConfiguration.js.map +1 -1
  657. package/lib/esm/rpc/core/RpcControl.js +29 -38
  658. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  659. package/lib/esm/rpc/core/RpcInvocation.js +19 -13
  660. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  661. package/lib/esm/rpc/core/RpcMarshaling.d.ts +1 -4
  662. package/lib/esm/rpc/core/RpcMarshaling.d.ts.map +1 -1
  663. package/lib/esm/rpc/core/RpcMarshaling.js +2 -1
  664. package/lib/esm/rpc/core/RpcMarshaling.js.map +1 -1
  665. package/lib/esm/rpc/core/RpcOperation.js +29 -31
  666. package/lib/esm/rpc/core/RpcOperation.js.map +1 -1
  667. package/lib/esm/rpc/core/RpcPendingQueue.js +17 -16
  668. package/lib/esm/rpc/core/RpcPendingQueue.js.map +1 -1
  669. package/lib/esm/rpc/core/RpcProtocol.js +32 -30
  670. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  671. package/lib/esm/rpc/core/RpcPush.js +15 -8
  672. package/lib/esm/rpc/core/RpcPush.js.map +1 -1
  673. package/lib/esm/rpc/core/RpcRegistry.d.ts.map +1 -1
  674. package/lib/esm/rpc/core/RpcRegistry.js +10 -9
  675. package/lib/esm/rpc/core/RpcRegistry.js.map +1 -1
  676. package/lib/esm/rpc/core/RpcRequest.d.ts +2 -2
  677. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  678. package/lib/esm/rpc/core/RpcRequest.js +51 -29
  679. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  680. package/lib/esm/rpc/core/RpcRoutingToken.js +4 -2
  681. package/lib/esm/rpc/core/RpcRoutingToken.js.map +1 -1
  682. package/lib/esm/rpc/core/RpcSessionInvocation.js +5 -10
  683. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -1
  684. package/lib/esm/rpc/web/BentleyCloudRpcManager.js +11 -17
  685. package/lib/esm/rpc/web/BentleyCloudRpcManager.js.map +1 -1
  686. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js +16 -19
  687. package/lib/esm/rpc/web/BentleyCloudRpcProtocol.js.map +1 -1
  688. package/lib/esm/rpc/web/OpenAPI.js +2 -0
  689. package/lib/esm/rpc/web/OpenAPI.js.map +1 -1
  690. package/lib/esm/rpc/web/RpcMultipart.d.ts +1 -1
  691. package/lib/esm/rpc/web/RpcMultipart.d.ts.map +1 -1
  692. package/lib/esm/rpc/web/RpcMultipart.js +14 -13
  693. package/lib/esm/rpc/web/RpcMultipart.js.map +1 -1
  694. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts +3 -0
  695. package/lib/esm/rpc/web/WebAppRpcLogging.d.ts.map +1 -1
  696. package/lib/esm/rpc/web/WebAppRpcLogging.js +1 -6
  697. package/lib/esm/rpc/web/WebAppRpcLogging.js.map +1 -1
  698. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +1 -1
  699. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  700. package/lib/esm/rpc/web/WebAppRpcProtocol.js +6 -6
  701. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  702. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  703. package/lib/esm/rpc/web/WebAppRpcRequest.js +27 -27
  704. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  705. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts +0 -2
  706. package/lib/esm/rpc/web/multipart/RpcMultipartParser.d.ts.map +1 -1
  707. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js +14 -8
  708. package/lib/esm/rpc/web/multipart/RpcMultipartParser.js.map +1 -1
  709. package/lib/esm/tile/B3dmTileIO.js +7 -0
  710. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  711. package/lib/esm/tile/CompositeTileIO.js +3 -0
  712. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  713. package/lib/esm/tile/GltfTileIO.js +4 -3
  714. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  715. package/lib/esm/tile/I3dmTileIO.js +8 -0
  716. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  717. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  718. package/lib/esm/tile/IModelTileIO.js +26 -3
  719. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  720. package/lib/esm/tile/PntsTileIO.js +5 -0
  721. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  722. package/lib/esm/tile/TileIO.js +2 -0
  723. package/lib/esm/tile/TileIO.js.map +1 -1
  724. package/lib/esm/tile/TileMetadata.js +9 -1
  725. package/lib/esm/tile/TileMetadata.js.map +1 -1
  726. package/package.json +14 -14
  727. package/lib/cjs/BackendTypes.d.ts.map +0 -1
  728. package/lib/cjs/BackendTypes.js.map +0 -1
  729. package/lib/cjs/ITwinError.d.ts +0 -72
  730. package/lib/cjs/ITwinError.d.ts.map +0 -1
  731. package/lib/cjs/ITwinError.js +0 -55
  732. package/lib/cjs/ITwinError.js.map +0 -1
  733. package/lib/cjs/Render.d.ts +0 -85
  734. package/lib/cjs/Render.d.ts.map +0 -1
  735. package/lib/cjs/Render.js.map +0 -1
  736. package/lib/esm/BackendTypes.d.ts.map +0 -1
  737. package/lib/esm/BackendTypes.js.map +0 -1
  738. package/lib/esm/ITwinError.d.ts +0 -72
  739. package/lib/esm/ITwinError.d.ts.map +0 -1
  740. package/lib/esm/ITwinError.js +0 -52
  741. package/lib/esm/ITwinError.js.map +0 -1
  742. package/lib/esm/Render.d.ts +0 -85
  743. package/lib/esm/Render.d.ts.map +0 -1
  744. package/lib/esm/Render.js.map +0 -1
  745. /package/lib/cjs/{BackendTypes.js → internal/BackendTypes.js} +0 -0
  746. /package/lib/esm/{BackendTypes.js → internal/BackendTypes.js} +0 -0
@@ -53,15 +53,6 @@ export interface Localization {
53
53
  * @throws Error if no keys resolve to a string.
54
54
  */
55
55
  getLocalizedString(key: string | string[], options?: TranslationOptions): string;
56
- /** Similar to `getLocalizedString` but the namespace is a separate param and the key does not include the namespace.
57
- * @param namespace - the namespace that identifies the particular localization file that contains the property.
58
- * @param key - the key that matches a property in the JSON localization file.
59
- * @returns The string corresponding to the first key that resolves.
60
- * @throws Error if no keys resolve to a string.
61
- * @deprecated in 3.x. Use `getLocalizedString` instead; providing either a key with a namespace `<namespace>:<key>` or
62
- * including `{ ns: <namespace> }` in the options.
63
- */
64
- getLocalizedStringWithNamespace(namespace: string, key: string | string[], options?: TranslationOptions): string;
65
56
  /** get the English string for a key. */
66
57
  getEnglishString(namespace: string, key: string | string[], options?: TranslationOptions): string;
67
58
  /** Replace all instances of `%{key}` within a string with the translations of those keys.
@@ -106,7 +97,6 @@ export interface Localization {
106
97
  export declare class EmptyLocalization implements Localization {
107
98
  initialize(): Promise<void>;
108
99
  getLocalizedString(key: string | string[]): string;
109
- getLocalizedStringWithNamespace(_namespace: string, key: string | string[]): string;
110
100
  getEnglishString(_namespace: string, key: string | string[]): string;
111
101
  getLocalizedKeys(inputString: string): string;
112
102
  registerNamespace(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Localization.d.ts","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACjF;;;;;;;OAOG;IACH,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACjH,wCAAwC;IACxC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAClG;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C,gBAAgB;IAChB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAE7D,2DAA2D;IAC3D,eAAe,IAAI,SAAS,MAAM,EAAE,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IAQlD,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACnF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACpE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IACvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,mBAAmB,IAAI,IAAI;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAChD,eAAe,IAAI,SAAS,MAAM,EAAE;IAC9B,cAAc;CAC5B"}
1
+ {"version":3,"file":"Localization.d.ts","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACjF,wCAAwC;IACxC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAClG;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9C;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C,gBAAgB;IAChB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAE7D,2DAA2D;IAC3D,eAAe,IAAI,SAAS,MAAM,EAAE,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IAQlD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM;IACpE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IACvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,mBAAmB,IAAI,IAAI;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAChD,eAAe,IAAI,SAAS,MAAM,EAAE;IAC9B,cAAc;CAC5B"}
@@ -18,7 +18,6 @@ export class EmptyLocalization {
18
18
  // Namely, remove the leading namespace substring if there is one
19
19
  return key.split(":", 2).pop();
20
20
  }
21
- getLocalizedStringWithNamespace(_namespace, key) { return this.getLocalizedString(key); }
22
21
  getEnglishString(_namespace, key) { return this.getLocalizedString(key); }
23
22
  getLocalizedKeys(inputString) { return inputString; }
24
23
  async registerNamespace() { }
@@ -1 +1 @@
1
- {"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AA6GH;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACrB,KAAK,CAAC,UAAU,KAAoB,CAAC;IACrC,kBAAkB,CAAC,GAAsB;QAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QACD,sEAAsE;QACtE,iEAAiE;QACjE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAG,CAAC;IAClC,CAAC;IACM,+BAA+B,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5H,gBAAgB,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,gBAAgB,CAAC,WAAmB,IAAY,OAAO,WAAW,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,iBAAiB,KAAoB,CAAC;IAC5C,mBAAmB,KAAW,CAAC;IAC/B,mBAAmB,KAAgC,OAAO,SAAS,CAAC,CAAC,CAAC;IACtE,eAAe,KAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,cAAc,KAAK,CAAC;CAClC","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 Localization\r\n */\r\n\r\n/** Options for Localization\r\n * @public\r\n */\r\nexport interface TranslationOptions {\r\n /** for interpolation values */\r\n [key: string]: any;\r\n /**\r\n * defaultValue to return if a translation was not found\r\n */\r\n defaultValue?: any;\r\n /**\r\n * count value used for plurals\r\n */\r\n count?: number;\r\n /**\r\n * used for contexts (eg. male\\female)\r\n */\r\n context?: any;\r\n /**\r\n * override languages to use\r\n */\r\n lngs?: string[];\r\n /**\r\n * override language to lookup key if not found see fallbacks for details\r\n */\r\n fallbackLng?: string;\r\n}\r\n\r\n/** The interface defining the localization requirements of [IModelApp]($frontend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface Localization {\r\n /** This method must be called and awaited before using an instance of Localization.\r\n * @param namespaces an array of namespaces to load. There must be at least one namespace, and it\r\n * becomes the default namespace.\r\n * @note IModelApp.startup calls this internally, so you should not call this method directly\r\n * except for Localization instances outside of IModelApp (e.g., for tests.)\r\n */\r\n initialize(namespaces: string[]): Promise<void>;\r\n\r\n /** Return the translated value of a key.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @note The key includes the namespace, which identifies the particular localization file that contains the property,\r\n * followed by a colon, followed by the property in the JSON file.\r\n * For example:\r\n * ``` ts\r\n * const dataString: string = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.BingDataAttribution\");\r\n * ```\r\n * assigns to dataString the string with property BackgroundMap.BingDataAttribution from the iModelJs.json localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedString(key: string | string[], options?: TranslationOptions): string;\r\n /** Similar to `getLocalizedString` but the namespace is a separate param and the key does not include the namespace.\r\n * @param namespace - the namespace that identifies the particular localization file that contains the property.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n * @deprecated in 3.x. Use `getLocalizedString` instead; providing either a key with a namespace `<namespace>:<key>` or\r\n * including `{ ns: <namespace> }` in the options.\r\n */\r\n getLocalizedStringWithNamespace(namespace: string, key: string | string[], options?: TranslationOptions): string;\r\n /** get the English string for a key. */\r\n getEnglishString(namespace: string, key: string | string[], options?: TranslationOptions): string;\r\n /** Replace all instances of `%{key}` within a string with the translations of those keys.\r\n * For example:\r\n * ``` ts\r\n * \"MyKeys\": {\r\n * \"Key1\": \"First value\",\r\n * \"Key2\": \"Second value\"\r\n * }\r\n * ```\r\n *\r\n * ``` ts\r\n * getLocalizedKeys(\"string with %{MyKeys.Key1} followed by %{MyKeys.Key2}!\"\") // returns \"string with First Value followed by Second Value!\"\r\n * ```\r\n */\r\n getLocalizedKeys(inputString: string): string;\r\n\r\n /** Register a new Namespace and return a Promise that is fulfilled when the content is loaded.\r\n * If the namespace is already registered, its Promise will be returned.\r\n * @param namespace - the name of the namespace.\r\n * @note - The registerNamespace method starts fetching the appropriate version of the JSON localization file from the server,\r\n * based on the current locale. To make sure that fetch is complete before performing translations from this namespace, await\r\n * fulfillment of returned Promise.\r\n * @see [Localization in iTwin.js]($docs/learning/frontend/Localization.md)\r\n */\r\n registerNamespace(namespace: string): Promise<void>;\r\n\r\n /** Unregister a namespace.\r\n * @param namespace - the name of the namespace.\r\n */\r\n unregisterNamespace(namespace: string): void;\r\n\r\n /** @internal */\r\n getNamespacePromise(name: string): Promise<void> | undefined;\r\n\r\n /** Get the list of available languages for translations */\r\n getLanguageList(): readonly string[];\r\n\r\n /** Change the language for translations. This overrides the language from the browser, for tests.\r\n * @param language - the language to change to.\r\n */\r\n changeLanguage(language: string): Promise<void>;\r\n}\r\n\r\n/** An empty [[Localization]] used if one is not provided to [IModelApp]($frontend). Does not perform localizations (merely returns the key.)\r\n * @public\r\n */\r\nexport class EmptyLocalization implements Localization {\r\n public async initialize(): Promise<void> { }\r\n public getLocalizedString(key: string | string[]): string {\r\n if (typeof (key) !== \"string\") {\r\n key = key[0];\r\n }\r\n // Simulate correct and simple usage of i18next's translation function\r\n // Namely, remove the leading namespace substring if there is one\r\n return key.split(\":\", 2).pop()!;\r\n }\r\n public getLocalizedStringWithNamespace(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getEnglishString(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getLocalizedKeys(inputString: string): string { return inputString; }\r\n public async registerNamespace(): Promise<void> { }\r\n public unregisterNamespace(): void { }\r\n public getNamespacePromise(): Promise<void> | undefined { return undefined; }\r\n public getLanguageList(): readonly string[] { return []; }\r\n public async changeLanguage() { }\r\n}\r\n"]}
1
+ {"version":3,"file":"Localization.js","sourceRoot":"","sources":["../../src/Localization.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAoGH;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACrB,KAAK,CAAC,UAAU,KAAoB,CAAC;IACrC,kBAAkB,CAAC,GAAsB;QAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;QACD,sEAAsE;QACtE,iEAAiE;QACjE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAG,CAAC;IAClC,CAAC;IACM,gBAAgB,CAAC,UAAkB,EAAE,GAAsB,IAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,gBAAgB,CAAC,WAAmB,IAAY,OAAO,WAAW,CAAC,CAAC,CAAC;IACrE,KAAK,CAAC,iBAAiB,KAAoB,CAAC;IAC5C,mBAAmB,KAAW,CAAC;IAC/B,mBAAmB,KAAgC,OAAO,SAAS,CAAC,CAAC,CAAC;IACtE,eAAe,KAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,cAAc,KAAK,CAAC;CAClC","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 Localization\r\n */\r\n\r\n/** Options for Localization\r\n * @public\r\n */\r\nexport interface TranslationOptions {\r\n /** for interpolation values */\r\n [key: string]: any;\r\n /**\r\n * defaultValue to return if a translation was not found\r\n */\r\n defaultValue?: any;\r\n /**\r\n * count value used for plurals\r\n */\r\n count?: number;\r\n /**\r\n * used for contexts (eg. male\\female)\r\n */\r\n context?: any;\r\n /**\r\n * override languages to use\r\n */\r\n lngs?: string[];\r\n /**\r\n * override language to lookup key if not found see fallbacks for details\r\n */\r\n fallbackLng?: string;\r\n}\r\n\r\n/** The interface defining the localization requirements of [IModelApp]($frontend).\r\n * @public\r\n * @extensions\r\n */\r\nexport interface Localization {\r\n /** This method must be called and awaited before using an instance of Localization.\r\n * @param namespaces an array of namespaces to load. There must be at least one namespace, and it\r\n * becomes the default namespace.\r\n * @note IModelApp.startup calls this internally, so you should not call this method directly\r\n * except for Localization instances outside of IModelApp (e.g., for tests.)\r\n */\r\n initialize(namespaces: string[]): Promise<void>;\r\n\r\n /** Return the translated value of a key.\r\n * @param key - the key that matches a property in the JSON localization file.\r\n * @note The key includes the namespace, which identifies the particular localization file that contains the property,\r\n * followed by a colon, followed by the property in the JSON file.\r\n * For example:\r\n * ``` ts\r\n * const dataString: string = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.BingDataAttribution\");\r\n * ```\r\n * assigns to dataString the string with property BackgroundMap.BingDataAttribution from the iModelJs.json localization file.\r\n * @returns The string corresponding to the first key that resolves.\r\n * @throws Error if no keys resolve to a string.\r\n */\r\n getLocalizedString(key: string | string[], options?: TranslationOptions): string;\r\n /** get the English string for a key. */\r\n getEnglishString(namespace: string, key: string | string[], options?: TranslationOptions): string;\r\n /** Replace all instances of `%{key}` within a string with the translations of those keys.\r\n * For example:\r\n * ``` ts\r\n * \"MyKeys\": {\r\n * \"Key1\": \"First value\",\r\n * \"Key2\": \"Second value\"\r\n * }\r\n * ```\r\n *\r\n * ``` ts\r\n * getLocalizedKeys(\"string with %{MyKeys.Key1} followed by %{MyKeys.Key2}!\"\") // returns \"string with First Value followed by Second Value!\"\r\n * ```\r\n */\r\n getLocalizedKeys(inputString: string): string;\r\n\r\n /** Register a new Namespace and return a Promise that is fulfilled when the content is loaded.\r\n * If the namespace is already registered, its Promise will be returned.\r\n * @param namespace - the name of the namespace.\r\n * @note - The registerNamespace method starts fetching the appropriate version of the JSON localization file from the server,\r\n * based on the current locale. To make sure that fetch is complete before performing translations from this namespace, await\r\n * fulfillment of returned Promise.\r\n * @see [Localization in iTwin.js]($docs/learning/frontend/Localization.md)\r\n */\r\n registerNamespace(namespace: string): Promise<void>;\r\n\r\n /** Unregister a namespace.\r\n * @param namespace - the name of the namespace.\r\n */\r\n unregisterNamespace(namespace: string): void;\r\n\r\n /** @internal */\r\n getNamespacePromise(name: string): Promise<void> | undefined;\r\n\r\n /** Get the list of available languages for translations */\r\n getLanguageList(): readonly string[];\r\n\r\n /** Change the language for translations. This overrides the language from the browser, for tests.\r\n * @param language - the language to change to.\r\n */\r\n changeLanguage(language: string): Promise<void>;\r\n}\r\n\r\n/** An empty [[Localization]] used if one is not provided to [IModelApp]($frontend). Does not perform localizations (merely returns the key.)\r\n * @public\r\n */\r\nexport class EmptyLocalization implements Localization {\r\n public async initialize(): Promise<void> { }\r\n public getLocalizedString(key: string | string[]): string {\r\n if (typeof (key) !== \"string\") {\r\n key = key[0];\r\n }\r\n // Simulate correct and simple usage of i18next's translation function\r\n // Namely, remove the leading namespace substring if there is one\r\n return key.split(\":\", 2).pop()!;\r\n }\r\n public getEnglishString(_namespace: string, key: string | string[]): string { return this.getLocalizedString(key); }\r\n public getLocalizedKeys(inputString: string): string { return inputString; }\r\n public async registerNamespace(): Promise<void> { }\r\n public unregisterNamespace(): void { }\r\n public getNamespacePromise(): Promise<void> | undefined { return undefined; }\r\n public getLanguageList(): readonly string[] { return []; }\r\n public async changeLanguage() { }\r\n}\r\n"]}
@@ -24,9 +24,10 @@ export var BaseLayerSettings;
24
24
  * @public
25
25
  */
26
26
  export class MapImagerySettings {
27
+ _backgroundBase;
28
+ _backgroundLayers = new Array();
29
+ _overlayLayers = new Array();
27
30
  constructor(base, backgroundLayerProps, overlayLayersProps) {
28
- this._backgroundLayers = new Array();
29
- this._overlayLayers = new Array();
30
31
  this._backgroundBase = base;
31
32
  if (backgroundLayerProps) {
32
33
  for (const layerProps of backgroundLayerProps) {
@@ -1 +1 @@
1
- {"version":3,"file":"MapImagerySettings.js","sourceRoot":"","sources":["../../src/MapImagerySettings.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 MapLayers\r\n */\r\n\r\nimport { DeprecatedBackgroundMapProps } from \"./BackgroundMapSettings\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\nimport { BaseMapLayerProps, BaseMapLayerSettings, MapLayerProps, MapLayerSettings } from \"./MapLayerSettings\";\r\n\r\n/** JSON representation of a [[BaseLayerSettings]].\r\n * @public\r\n */\r\nexport type BaseLayerProps = BaseMapLayerProps | ColorDefProps;\r\n\r\n/** The JSON representation of the map imagery. Map imagery include the specification for the base layer (which was originally\r\n * represented by [[BackgroundMapProps.providerName]] && [[BackgroundMapProps.providerData]]) and additional map layers.\r\n * In earlier versions only a background map was supported as specified by the providerName and mapType members of [[BackgroundMapSettings]] object.\r\n * In order to provide backward compatibility the original [[BackgroundMapSettings]] are synchronized with the [[MapImagerySettings]] base layer as long as\r\n * the settings are compatible.\r\n * The non-base map layers may represent image layers generated by tile servers or model layers that are generated by 2d projection of model geometry, typically from a model\r\n * that is generated from two dimensional GIS data.\r\n * @public\r\n */\r\nexport interface MapImageryProps {\r\n backgroundBase?: BaseLayerProps;\r\n backgroundLayers?: MapLayerProps[];\r\n overlayLayers?: MapLayerProps[];\r\n}\r\n\r\n/** The base layer for a [[MapImagerySettings]].\r\n * @see [[MapImagerySettings.backgroundBase]].\r\n * @public\r\n */\r\nexport type BaseLayerSettings = BaseMapLayerSettings | ColorDef;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace BaseLayerSettings {\r\n /** Create a base layer from its JSON representation. */\r\n export function fromJSON(props: BaseLayerProps): BaseLayerSettings {\r\n return typeof props === \"number\" ? ColorDef.fromJSON(props) : BaseMapLayerSettings.fromJSON(props);\r\n }\r\n}\r\n\r\n/** Provides access to the map imagery settings (Base and layers).\r\n * In earlier versions only a background map was supported as specified by the providerName and mapType members of [[BackgroundMapSettings]] object.\r\n * In order to provide backward compatibility the original [[BackgroundMapSettings]] are synchronized with the [[MapImagerySettings]] base layer as long as\r\n * the settings are compatible.\r\n * @public\r\n */\r\nexport class MapImagerySettings {\r\n private _backgroundBase: BaseLayerSettings;\r\n private _backgroundLayers = new Array<MapLayerSettings>();\r\n private _overlayLayers = new Array<MapLayerSettings>();\r\n\r\n private constructor(base: BaseLayerSettings, backgroundLayerProps?: MapLayerProps[], overlayLayersProps?: MapLayerProps[]) {\r\n this._backgroundBase = base;\r\n if (backgroundLayerProps) {\r\n for (const layerProps of backgroundLayerProps) {\r\n const layer = MapLayerSettings.fromJSON(layerProps);\r\n if (layer)\r\n this._backgroundLayers.push(layer);\r\n }\r\n }\r\n if (overlayLayersProps) {\r\n for (const overlayLayerProps of overlayLayersProps) {\r\n const overlayLayer = MapLayerSettings.fromJSON(overlayLayerProps);\r\n if (overlayLayer)\r\n this._overlayLayers.push(overlayLayer);\r\n }\r\n }\r\n }\r\n\r\n /** The settings for the base layer.\r\n * @note If changing the base provider it is currently necessary to also update the background map settings.\r\n */\r\n public get backgroundBase(): BaseLayerSettings { return this._backgroundBase; }\r\n public set backgroundBase(base: BaseLayerSettings) { this._backgroundBase = base; }\r\n\r\n public get backgroundLayers(): MapLayerSettings[] { return this._backgroundLayers; }\r\n public get overlayLayers(): MapLayerSettings[] { return this._overlayLayers; }\r\n\r\n /** Return base transparency as a number between 0 and 1.\r\n * @internal\r\n */\r\n public get baseTransparency(): number {\r\n return (this._backgroundBase instanceof ColorDef) ? (this._backgroundBase.getTransparency() / 255) : this._backgroundBase.transparency;\r\n\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static fromJSON(imageryJson?: MapImageryProps) {\r\n return this.createFromJSON(imageryJson, undefined);\r\n }\r\n\r\n /** @internal */\r\n public static createFromJSON(imageryJson?: MapImageryProps, mapProps?: DeprecatedBackgroundMapProps) {\r\n const baseLayer = imageryJson?.backgroundBase ? BaseLayerSettings.fromJSON(imageryJson.backgroundBase) : BaseMapLayerSettings.fromBackgroundMapProps(mapProps ?? { });\r\n\r\n return new MapImagerySettings(baseLayer, imageryJson?.backgroundLayers, imageryJson?.overlayLayers);\r\n }\r\n\r\n public toJSON(): MapImageryProps {\r\n const props: MapImageryProps = { backgroundBase: this._backgroundBase.toJSON() };\r\n if (this._backgroundLayers.length > 0)\r\n props.backgroundLayers = this._backgroundLayers.map((layer) => layer.toJSON());\r\n\r\n if (this._overlayLayers.length > 0)\r\n props.overlayLayers = this._overlayLayers.map((layer) => layer.toJSON());\r\n\r\n return props;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapImagerySettings.js","sourceRoot":"","sources":["../../src/MapImagerySettings.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 MapLayers\r\n */\r\n\r\nimport { DeprecatedBackgroundMapProps } from \"./BackgroundMapSettings\";\r\nimport { ColorDef, ColorDefProps } from \"./ColorDef\";\r\nimport { BaseMapLayerProps, BaseMapLayerSettings, MapLayerProps, MapLayerSettings } from \"./MapLayerSettings\";\r\n\r\n/** JSON representation of a [[BaseLayerSettings]].\r\n * @public\r\n */\r\nexport type BaseLayerProps = BaseMapLayerProps | ColorDefProps;\r\n\r\n/** The JSON representation of the map imagery. Map imagery include the specification for the base layer (which was originally\r\n * represented by [[BackgroundMapProps.providerName]] && [[BackgroundMapProps.providerData]]) and additional map layers.\r\n * In earlier versions only a background map was supported as specified by the providerName and mapType members of [[BackgroundMapSettings]] object.\r\n * In order to provide backward compatibility the original [[BackgroundMapSettings]] are synchronized with the [[MapImagerySettings]] base layer as long as\r\n * the settings are compatible.\r\n * The non-base map layers may represent image layers generated by tile servers or model layers that are generated by 2d projection of model geometry, typically from a model\r\n * that is generated from two dimensional GIS data.\r\n * @public\r\n */\r\nexport interface MapImageryProps {\r\n backgroundBase?: BaseLayerProps;\r\n backgroundLayers?: MapLayerProps[];\r\n overlayLayers?: MapLayerProps[];\r\n}\r\n\r\n/** The base layer for a [[MapImagerySettings]].\r\n * @see [[MapImagerySettings.backgroundBase]].\r\n * @public\r\n */\r\nexport type BaseLayerSettings = BaseMapLayerSettings | ColorDef;\r\n\r\n/** @public */\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport namespace BaseLayerSettings {\r\n /** Create a base layer from its JSON representation. */\r\n export function fromJSON(props: BaseLayerProps): BaseLayerSettings {\r\n return typeof props === \"number\" ? ColorDef.fromJSON(props) : BaseMapLayerSettings.fromJSON(props);\r\n }\r\n}\r\n\r\n/** Provides access to the map imagery settings (Base and layers).\r\n * In earlier versions only a background map was supported as specified by the providerName and mapType members of [[BackgroundMapSettings]] object.\r\n * In order to provide backward compatibility the original [[BackgroundMapSettings]] are synchronized with the [[MapImagerySettings]] base layer as long as\r\n * the settings are compatible.\r\n * @public\r\n */\r\nexport class MapImagerySettings {\r\n private _backgroundBase: BaseLayerSettings;\r\n private _backgroundLayers = new Array<MapLayerSettings>();\r\n private _overlayLayers = new Array<MapLayerSettings>();\r\n\r\n private constructor(base: BaseLayerSettings, backgroundLayerProps?: MapLayerProps[], overlayLayersProps?: MapLayerProps[]) {\r\n this._backgroundBase = base;\r\n if (backgroundLayerProps) {\r\n for (const layerProps of backgroundLayerProps) {\r\n const layer = MapLayerSettings.fromJSON(layerProps);\r\n if (layer)\r\n this._backgroundLayers.push(layer);\r\n }\r\n }\r\n if (overlayLayersProps) {\r\n for (const overlayLayerProps of overlayLayersProps) {\r\n const overlayLayer = MapLayerSettings.fromJSON(overlayLayerProps);\r\n if (overlayLayer)\r\n this._overlayLayers.push(overlayLayer);\r\n }\r\n }\r\n }\r\n\r\n /** The settings for the base layer.\r\n * @note If changing the base provider it is currently necessary to also update the background map settings.\r\n */\r\n public get backgroundBase(): BaseLayerSettings { return this._backgroundBase; }\r\n public set backgroundBase(base: BaseLayerSettings) { this._backgroundBase = base; }\r\n\r\n public get backgroundLayers(): MapLayerSettings[] { return this._backgroundLayers; }\r\n public get overlayLayers(): MapLayerSettings[] { return this._overlayLayers; }\r\n\r\n /** Return base transparency as a number between 0 and 1.\r\n * @internal\r\n */\r\n public get baseTransparency(): number {\r\n return (this._backgroundBase instanceof ColorDef) ? (this._backgroundBase.getTransparency() / 255) : this._backgroundBase.transparency;\r\n\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static fromJSON(imageryJson?: MapImageryProps) {\r\n return this.createFromJSON(imageryJson, undefined);\r\n }\r\n\r\n /** @internal */\r\n public static createFromJSON(imageryJson?: MapImageryProps, mapProps?: DeprecatedBackgroundMapProps) {\r\n const baseLayer = imageryJson?.backgroundBase ? BaseLayerSettings.fromJSON(imageryJson.backgroundBase) : BaseMapLayerSettings.fromBackgroundMapProps(mapProps ?? { });\r\n\r\n return new MapImagerySettings(baseLayer, imageryJson?.backgroundLayers, imageryJson?.overlayLayers);\r\n }\r\n\r\n public toJSON(): MapImageryProps {\r\n const props: MapImageryProps = { backgroundBase: this._backgroundBase.toJSON() };\r\n if (this._backgroundLayers.length > 0)\r\n props.backgroundLayers = this._backgroundLayers.map((layer) => layer.toJSON());\r\n\r\n if (this._overlayLayers.length > 0)\r\n props.overlayLayers = this._overlayLayers.map((layer) => layer.toJSON());\r\n\r\n return props;\r\n }\r\n}\r\n"]}
@@ -11,6 +11,18 @@ import { DeprecatedBackgroundMapProps } from "./BackgroundMapSettings";
11
11
  export type ImageryMapLayerFormatId = "ArcGIS" | "BingMaps" | "MapboxImagery" | "TileURL" | "WMS" | "WMTS";
12
12
  /** @public */
13
13
  export type SubLayerId = string | number;
14
+ /**
15
+ * Type for map layer provider array property.
16
+ * @beta
17
+ */
18
+ export type MapLayerProviderArrayProperty = number[] | string[] | boolean[];
19
+ /**
20
+ * Type for map layer provider properties.
21
+ * @beta
22
+ */
23
+ export interface MapLayerProviderProperties {
24
+ [key: string]: number | string | boolean | MapLayerProviderArrayProperty;
25
+ }
14
26
  /** JSON representation of the settings associated with a map sublayer included within a [[MapLayerProps]].
15
27
  * A map sub layer represents a set of objects within the layer that can be controlled separately. These
16
28
  * are produced only from map servers that produce images on demand and are not supported by tiled (cached) servers.
@@ -107,6 +119,19 @@ export interface ImageMapLayerProps extends CommonMapLayerProps {
107
119
  queryParams?: {
108
120
  [key: string]: string;
109
121
  };
122
+ /** Properties specific to the map layer provider.
123
+ * @beta
124
+ */
125
+ properties?: MapLayerProviderProperties;
126
+ }
127
+ /** The target onto which to drape a model map layer.
128
+ * @beta
129
+ */
130
+ export declare enum ModelMapLayerDrapeTarget {
131
+ /** Drape only onto the globe. */
132
+ Globe = 0,
133
+ /** Drape only onto all attached reality data. */
134
+ RealityData = 1
110
135
  }
111
136
  /** JSON representation of a [[ModelMapLayerSettings]].
112
137
  * @see [[MapImagerySettings]].
@@ -115,6 +140,10 @@ export interface ImageMapLayerProps extends CommonMapLayerProps {
115
140
  export interface ModelMapLayerProps extends CommonMapLayerProps {
116
141
  /** The Id of the [GeometricModel]($backend) containing the geometry to be drawn by the layer. */
117
142
  modelId: Id64String;
143
+ /** Specifies the target onto which to drape this model map layer. Defaults to [ModelMapLayerDrapeTarget.Globe]($common).
144
+ * @beta
145
+ */
146
+ drapeTarget?: ModelMapLayerDrapeTarget;
118
147
  /** @internal */
119
148
  url?: never;
120
149
  /** @internal */
@@ -192,6 +221,10 @@ export declare class ImageMapLayerSettings extends MapLayerSettings {
192
221
  unsavedQueryParams?: {
193
222
  [key: string]: string;
194
223
  };
224
+ /** Properties specific to the map layer provider.
225
+ * @beta
226
+ */
227
+ readonly properties?: MapLayerProviderProperties;
195
228
  readonly subLayers: MapSubLayerSettings[];
196
229
  get source(): string;
197
230
  /** @internal */
@@ -235,10 +268,14 @@ export declare class ImageMapLayerSettings extends MapLayerSettings {
235
268
  * @public
236
269
  */
237
270
  export declare class ModelMapLayerSettings extends MapLayerSettings {
271
+ /** Specifies the target onto which to drape this model map layer. Defaults to [ModelMapLayerDrapeTarget.Globe]($common).
272
+ * @beta
273
+ */
274
+ readonly drapeTarget: ModelMapLayerDrapeTarget;
238
275
  readonly modelId: Id64String;
239
276
  get source(): string;
240
277
  /** @internal */
241
- protected constructor(modelId: Id64String, name: string, visible?: boolean, transparency?: number, transparentBackground?: boolean);
278
+ protected constructor(modelId: Id64String, name: string, visible?: boolean, transparency?: number, transparentBackground?: boolean, drapeTarget?: ModelMapLayerDrapeTarget);
242
279
  /** Construct from JSON, performing validation and applying default values for undefined fields. */
243
280
  static fromJSON(json: ModelMapLayerProps): ModelMapLayerSettings;
244
281
  /** return JSON representation of this MapLayerSettings object */
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerSettings.d.ts","sourceRoot":"","sources":["../../src/MapLayerSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAI,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5G,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,mIAAmI;IACnI,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,aAAa;IACb,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,gIAAgI;IAChI,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,oFAAoF;IACpF,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,oCAAoC;IACpC,SAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxC,uBAAuB;IACvB,SAAgB,MAAM,CAAC,EAAE,UAAU,CAAC;gBAExB,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE;IAS1H,mGAAmG;WACrF,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB;IAI5D,MAAM,IAAI,gBAAgB;IAkBjC,uFAAuF;IAChF,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,mBAAmB;IAe1E,gBAAgB;IACT,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAI1D,6CAA6C;IAC7C,IAAW,OAAO,IAAI,OAAO,CAAiC;IAE9D,+DAA+D;IAC/D,IAAW,MAAM,IAAI,OAAO,CAAsE;IAElG,uDAAuD;IACvD,IAAW,cAAc,IAAI,OAAO,CAA0C;IAE9E,sGAAsG;IACtG,IAAW,QAAQ,IAAI,MAAM,CAA2E;CACzG;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B;;OAEG;IACH,gBAAgB;IAChB,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,gBAAgB;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;IAEhB;;MAEE;IACF,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAEzC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,iGAAiG;IACjG,OAAO,EAAE,UAAU,CAAC;IAEpB,gBAAgB;IAChB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,gBAAgB;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,gBAAgB;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,8BAAsB,gBAAgB;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,qBAAqB,EAAE,OAAO,CAAC;IAC/C,aAAoB,qBAAqB,IAAI,OAAO,CAAC;aACrC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,gBAAgB;aAC7D,MAAM,IAAI,aAAa;IAEvC,gBAAgB;IAChB,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,OAAO,UAAO,EAAE,YAAY,GAAE,MAAU,EAAE,qBAAqB,UAAO;IAO1G,gEAAgE;WAClD,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB;IAI9D,gBAAgB;IAChB,SAAS,CAAC,OAAO,IAAI,mBAAmB;IAexC,gBAAgB;IAChB,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,mBAAmB;IAS/E,gBAAgB;IACT,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAIvD,kHAAkH;IAClH,aAAoB,MAAM,IAAI,MAAM,CAAC;IAErC,gBAAgB;IACT,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAGnE;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IACzD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,WAAW,CAAC;IAE/B;;;MAGE;IACK,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAEpD;;MAEE;IACK,kBAAkB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACtD,SAAgB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjD,IAAoB,MAAM,IAAI,MAAM,CAAqB;IAEzD,gBAAgB;IAChB,SAAS,aAAa,KAAK,EAAE,kBAAkB;WAqBxB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,qBAAqB;IAIjF,iEAAiE;IACjD,MAAM,IAAI,kBAAkB;IAc5C;;;OAGG;IACI,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,qBAAqB;IAe9E,gBAAgB;cACG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAgB5F,gBAAgB;IACA,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAehE,iEAAiE;IAC1D,YAAY,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,mBAAmB,GAAG,SAAS;IAIrE,OAAO,CAAC,qBAAqB;IAa7B,4FAA4F;IACrF,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO;IAOhE,kDAAkD;IAClD,IAAW,qBAAqB,IAAI,OAAO,CAK1C;IAED,yCAAyC;IAClC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS;IAc5F,gBAAgB;IAChB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB;IAY7C,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK1D;;KAEC;IACM,kBAAkB;;;CAU1B;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IACzD,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,IAAoB,MAAM,IAAI,MAAM,CAAyB;IAE7D,gBAAgB;IAChB,SAAS,aAAa,OAAO,EAAE,UAAU,EAAG,IAAI,EAAE,MAAM,EAAE,OAAO,UAAO,EACtE,YAAY,GAAE,MAAU,EAAE,qBAAqB,UAAO;IAKxD,mGAAmG;WAC5E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,qBAAqB;IAKhF,iEAAiE;IACjD,MAAM,IAAI,kBAAkB;IAM5C;;;OAGG;IACI,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,qBAAqB;IAI9E,gBAAgB;cACG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAM5F,gBAAgB;IACA,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAOhE,0GAA0G;IAC1G,IAAW,qBAAqB,IAAI,OAAO,CAE1C;CACF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,qBAAqB;IAC7D,OAAO,CAAC,SAAS,CAAC,CAAwB;IAE1C,sEAAsE;IACtE,IAAW,QAAQ,IAAI,qBAAqB,GAAG,SAAS,CAA2B;IAEnF;;;;OAIG;WACoB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,oBAAoB;IAS/E,qDAAqD;IACrC,MAAM,IAAI,iBAAiB;IAQ3C,gBAAgB;IACA,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;IAWvF,mCAAmC;IACnB,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,oBAAoB;IAUrF,wDAAwD;WAC1C,YAAY,CAAC,QAAQ,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB;IA2D3I,gBAAgB;WACF,sBAAsB,CAAC,KAAK,EAAE,4BAA4B,GAAG,oBAAoB;IAI/F,aAAa;IACN,iBAAiB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,oBAAoB;CAGhF"}
1
+ {"version":3,"file":"MapLayerSettings.d.ts","sourceRoot":"","sources":["../../src/MapLayerSettings.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { assert } from "@itwin/core-bentley";
9
9
  import { BackgroundMapProvider, BackgroundMapType } from "./BackgroundMapProvider";
10
+ ;
10
11
  /** Normalized representation of a [[MapSubLayerProps]] for which values
11
12
  * have been validated and default values have been applied where explicit values not defined.
12
13
  * A map sub layer represents a set of objects within the layer that can be controlled separately. These
@@ -16,6 +17,18 @@ import { BackgroundMapProvider, BackgroundMapType } from "./BackgroundMapProvide
16
17
  * @public
17
18
  */
18
19
  export class MapSubLayerSettings {
20
+ /** Typically Name is a single word used for machine-to-machine communication while the Title is for the benefit of humans (WMS) */
21
+ name;
22
+ /** Title. */
23
+ title;
24
+ /** If true the sub layer is visible. If part of a hierarchy, a sub layer is visible only if its ancestors are also visible. */
25
+ visible;
26
+ /** A unique string or number that may be used to identify the sub layer (ArcGIS) */
27
+ id;
28
+ /** One or more sublayer children */
29
+ children;
30
+ /** sublayer parent. */
31
+ parent;
19
32
  constructor(name, title, visible, id, parent, children) {
20
33
  this.name = name;
21
34
  this.title = title;
@@ -67,6 +80,16 @@ export class MapSubLayerSettings {
67
80
  /** return a string representing this sublayer id (converting to string if underlying id is number) */
68
81
  get idString() { return (typeof this.id === "number") ? this.id.toString(10) : this.id; }
69
82
  }
83
+ /** The target onto which to drape a model map layer.
84
+ * @beta
85
+ */
86
+ export var ModelMapLayerDrapeTarget;
87
+ (function (ModelMapLayerDrapeTarget) {
88
+ /** Drape only onto the globe. */
89
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["Globe"] = 0] = "Globe";
90
+ /** Drape only onto all attached reality data. */
91
+ ModelMapLayerDrapeTarget[ModelMapLayerDrapeTarget["RealityData"] = 1] = "RealityData";
92
+ })(ModelMapLayerDrapeTarget || (ModelMapLayerDrapeTarget = {}));
70
93
  /** Abstract base class for normalized representation of a [[MapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.
71
94
  * This class is extended by [[ImageMapLayerSettings]] and [ModelMapLayerSettings]] to create the settings for image and model based layers.
72
95
  * One or more map layers may be included within [[MapImagerySettings]] object.
@@ -74,6 +97,10 @@ export class MapSubLayerSettings {
74
97
  * @public
75
98
  */
76
99
  export class MapLayerSettings {
100
+ visible;
101
+ name;
102
+ transparency;
103
+ transparentBackground;
77
104
  /** @internal */
78
105
  constructor(name, visible = true, transparency = 0, transparentBackground = true) {
79
106
  this.name = name;
@@ -123,6 +150,25 @@ export class MapLayerSettings {
123
150
  * @public
124
151
  */
125
152
  export class ImageMapLayerSettings extends MapLayerSettings {
153
+ formatId;
154
+ url;
155
+ userName;
156
+ password;
157
+ accessKey;
158
+ /** List of query parameters to append to the settings URL and persisted as part of the JSON representation.
159
+ * @note Sensitive information like user credentials should be provided in [[unsavedQueryParams]] to ensure it is never persisted.
160
+ * @beta
161
+ */
162
+ savedQueryParams;
163
+ /** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.
164
+ * @beta
165
+ */
166
+ unsavedQueryParams;
167
+ /** Properties specific to the map layer provider.
168
+ * @beta
169
+ */
170
+ properties;
171
+ subLayers;
126
172
  get source() { return this.url; }
127
173
  /** @internal */
128
174
  constructor(props) {
@@ -134,6 +180,9 @@ export class ImageMapLayerSettings extends MapLayerSettings {
134
180
  if (props.queryParams) {
135
181
  this.savedQueryParams = { ...props.queryParams };
136
182
  }
183
+ if (props.properties) {
184
+ this.properties = { ...props.properties };
185
+ }
137
186
  this.subLayers = [];
138
187
  if (!props.subLayers)
139
188
  return;
@@ -155,6 +204,9 @@ export class ImageMapLayerSettings extends MapLayerSettings {
155
204
  props.subLayers = this.subLayers.map((x) => x.toJSON());
156
205
  if (this.savedQueryParams)
157
206
  props.queryParams = { ...this.savedQueryParams };
207
+ if (this.properties) {
208
+ props.properties = structuredClone(this.properties);
209
+ }
158
210
  return props;
159
211
  }
160
212
  /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.
@@ -166,7 +218,6 @@ export class ImageMapLayerSettings extends MapLayerSettings {
166
218
  // Clone members not part of MapLayerProps
167
219
  clone.userName = this.userName;
168
220
  clone.password = this.password;
169
- clone.accessKey = this.accessKey;
170
221
  if (this.unsavedQueryParams)
171
222
  clone.unsavedQueryParams = { ...this.unsavedQueryParams };
172
223
  if (this.savedQueryParams)
@@ -186,6 +237,12 @@ export class ImageMapLayerSettings extends MapLayerSettings {
186
237
  else if (this.savedQueryParams) {
187
238
  props.queryParams = { ...this.savedQueryParams };
188
239
  }
240
+ if (changedProps.properties) {
241
+ props.properties = { ...changedProps.properties };
242
+ }
243
+ else if (this.properties) {
244
+ props.properties = { ...this.properties };
245
+ }
189
246
  return props;
190
247
  }
191
248
  /** @internal */
@@ -274,21 +331,29 @@ export class ImageMapLayerSettings extends MapLayerSettings {
274
331
  * @public
275
332
  */
276
333
  export class ModelMapLayerSettings extends MapLayerSettings {
334
+ /** Specifies the target onto which to drape this model map layer. Defaults to [ModelMapLayerDrapeTarget.Globe]($common).
335
+ * @beta
336
+ */
337
+ drapeTarget;
338
+ modelId;
277
339
  get source() { return this.modelId; }
278
340
  /** @internal */
279
- constructor(modelId, name, visible = true, transparency = 0, transparentBackground = true) {
341
+ constructor(modelId, name, visible = true, transparency = 0, transparentBackground = true, drapeTarget = ModelMapLayerDrapeTarget.Globe) {
280
342
  super(name, visible, transparency, transparentBackground);
281
343
  this.modelId = modelId;
344
+ this.drapeTarget = drapeTarget;
282
345
  }
283
346
  /** Construct from JSON, performing validation and applying default values for undefined fields. */
284
347
  static fromJSON(json) {
285
348
  const transparentBackground = (json.transparentBackground === undefined) ? true : json.transparentBackground;
286
- return new this(json.modelId, json.name, json.visible, json.transparency, transparentBackground);
349
+ return new this(json.modelId, json.name, json.visible, json.transparency, transparentBackground, json.drapeTarget);
287
350
  }
288
351
  /** return JSON representation of this MapLayerSettings object */
289
352
  toJSON() {
290
353
  const props = super._toJSON();
291
354
  props.modelId = this.modelId;
355
+ if (this.drapeTarget !== ModelMapLayerDrapeTarget.Globe)
356
+ props.drapeTarget = this.drapeTarget;
292
357
  return props;
293
358
  }
294
359
  /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.
@@ -302,6 +367,7 @@ export class ModelMapLayerSettings extends MapLayerSettings {
302
367
  cloneProps(changedProps) {
303
368
  const props = super.cloneProps(changedProps);
304
369
  props.modelId = changedProps.modelId ?? this.modelId;
370
+ props.drapeTarget = changedProps.drapeTarget ?? this.drapeTarget;
305
371
  return props;
306
372
  }
307
373
  /** @internal */
@@ -324,6 +390,7 @@ export class ModelMapLayerSettings extends MapLayerSettings {
324
390
  * @public
325
391
  */
326
392
  export class BaseMapLayerSettings extends ImageMapLayerSettings {
393
+ _provider;
327
394
  /** The provider from which this base layer was configured, if any. */
328
395
  get provider() { return this._provider; }
329
396
  /** Create a base layer from its JSON representation.
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerSettings.js","sourceRoot":"","sources":["../../src/MapLayerSettings.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 MapLayers\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { BackgroundMapProvider, BackgroundMapProviderProps, BackgroundMapType } from \"./BackgroundMapProvider\";\r\nimport { DeprecatedBackgroundMapProps } from \"./BackgroundMapSettings\";\r\n\r\n/** The current set of supported map layer formats.\r\n * In order to be displayed, a corresponding format must have been registered in the [MapLayerFormatRegistry]($frontend)\r\n * @public\r\n */\r\nexport type ImageryMapLayerFormatId = \"ArcGIS\" | \"BingMaps\" | \"MapboxImagery\" | \"TileURL\" | \"WMS\" | \"WMTS\";\r\n\r\n/** @public */\r\nexport type SubLayerId = string | number;\r\n\r\n/** JSON representation of the settings associated with a map sublayer included within a [[MapLayerProps]].\r\n * A map sub layer represents a set of objects within the layer that can be controlled separately. These\r\n * are produced only from map servers that produce images on demand and are not supported by tiled (cached) servers.\r\n * @see [[MapLayerProps]]\r\n * @public\r\n */\r\nexport interface MapSubLayerProps {\r\n name: string;\r\n title?: string;\r\n visible?: boolean;\r\n id?: SubLayerId;\r\n parent?: SubLayerId;\r\n children?: SubLayerId[];\r\n}\r\n\r\n/** Normalized representation of a [[MapSubLayerProps]] for which values\r\n * have been validated and default values have been applied where explicit values not defined.\r\n * A map sub layer represents a set of objects within the layer that can be controlled separately. These\r\n * are produced only from map servers that produce images on demand and are not supported by tiled (cached) servers.\r\n * This class can represent a hierarchy, in this case a sub layer is visible only if all its ancestors are also visible.\r\n * @see [[MapLayerSettings]]\r\n * @public\r\n */\r\nexport class MapSubLayerSettings {\r\n /** Typically Name is a single word used for machine-to-machine communication while the Title is for the benefit of humans (WMS) */\r\n public readonly name: string;\r\n /** Title. */\r\n public readonly title?: string;\r\n /** If true the sub layer is visible. If part of a hierarchy, a sub layer is visible only if its ancestors are also visible. */\r\n public readonly visible: boolean;\r\n /** A unique string or number that may be used to identify the sub layer (ArcGIS) */\r\n public readonly id: SubLayerId;\r\n /** One or more sublayer children */\r\n public readonly children?: SubLayerId[];\r\n /** sublayer parent. */\r\n public readonly parent?: SubLayerId;\r\n\r\n constructor(name: string, title?: string, visible?: boolean, id?: SubLayerId, parent?: SubLayerId, children?: SubLayerId[]) {\r\n this.name = name;\r\n this.title = title;\r\n this.visible = visible !== undefined && visible;\r\n this.id = (id === undefined) ? this.name : id;\r\n this.parent = parent;\r\n this.children = children;\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static fromJSON(json: MapSubLayerProps): MapSubLayerSettings {\r\n return new MapSubLayerSettings(json.name, json.title, json.visible, (json.id === json.name) ? undefined : json.id, json.parent, json.children);\r\n }\r\n\r\n public toJSON(): MapSubLayerProps {\r\n const props: MapSubLayerProps = { name: this.name, visible: this.visible };\r\n\r\n if (undefined !== this.id && this.id !== this.name)\r\n props.id = this.id;\r\n\r\n if (undefined !== this.title)\r\n props.title = this.title;\r\n\r\n if (this.children)\r\n props.children = [...this.children];\r\n\r\n if (undefined !== this.parent)\r\n props.parent = this.parent;\r\n\r\n return props;\r\n }\r\n\r\n /** Creating a copy of this MapSubLayer, optionally modifying some if its properties */\r\n public clone(changedProps: Partial<MapSubLayerProps>): MapSubLayerSettings {\r\n if (undefined === changedProps)\r\n return this;\r\n\r\n const props = {\r\n name: undefined !== changedProps.name ? changedProps.name : this.name,\r\n id: undefined !== changedProps.id ? changedProps.id : this.id,\r\n visible: undefined !== changedProps.visible ? changedProps.visible : this.visible,\r\n parent: undefined !== changedProps.parent ? changedProps.parent : this.parent,\r\n children: undefined !== changedProps.children ? changedProps.children.slice() : this.children?.slice(),\r\n title: undefined !== changedProps.title ? changedProps.title : this.title,\r\n };\r\n return MapSubLayerSettings.fromJSON(props);\r\n }\r\n\r\n /** @internal */\r\n public displayMatches(other: MapSubLayerSettings): boolean {\r\n return this.name === other.name && this.visible === other.visible;\r\n }\r\n\r\n /** return true if this sublayer is named. */\r\n public get isNamed(): boolean { return this.name.length > 0; }\r\n\r\n /** return true if this sublayer is a leaf (has no children) */\r\n public get isLeaf(): boolean { return this.children === undefined || this.children.length === 0; }\r\n\r\n /** return true if this sublayer is an unnamed group */\r\n public get isUnnamedGroup(): boolean { return !this.isLeaf && !this.isNamed; }\r\n\r\n /** return a string representing this sublayer id (converting to string if underlying id is number) */\r\n public get idString(): string { return (typeof this.id === \"number\") ? this.id.toString(10) : this.id; }\r\n}\r\n\r\n/** JSON representation of properties common to both [[ImageMapLayerProps]] and [[ModelMapLayerProps]].\r\n * @see [[MapImageryProps]]\r\n * @public\r\n */\r\nexport interface CommonMapLayerProps {\r\n /** Controls visibility of layer. Defaults to 'true'. */\r\n visible?: boolean;\r\n\r\n /** A user-friendly name for the layer. */\r\n name: string;\r\n /** A transparency value from 0.0 (fully opaque) to 1.0 (fully transparent) to apply to map graphics when drawing,\r\n * or false to indicate the transparency should not be overridden.\r\n * Default value: 0.\r\n */\r\n transparency?: number;\r\n /** True to indicate background is transparent.\r\n * Default: true.\r\n */\r\n transparentBackground?: boolean;\r\n}\r\n\r\n/** JSON representation of an [[ImageMapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @see [[ImageryMapLayerFormatId]].\r\n * @public\r\n */\r\nexport interface ImageMapLayerProps extends CommonMapLayerProps {\r\n /** URL */\r\n url: string;\r\n /** Identifies the map layers source.*/\r\n formatId: string;\r\n /** Source layers. If undefined all layers are displayed. */\r\n subLayers?: MapSubLayerProps[];\r\n /** Access Key for the Layer, like a subscription key or access token.\r\n * ###TODO This does not belong in the props object. It should never be persisted.\r\n */\r\n /** @internal */\r\n accessKey?: MapLayerKey;\r\n\r\n /** @internal */\r\n modelId?: never;\r\n\r\n /** List of query parameters that will get appended to the source.\r\n * @beta\r\n */\r\n queryParams?: { [key: string]: string };\r\n\r\n}\r\n\r\n/** JSON representation of a [[ModelMapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @public\r\n */\r\nexport interface ModelMapLayerProps extends CommonMapLayerProps {\r\n /** The Id of the [GeometricModel]($backend) containing the geometry to be drawn by the layer. */\r\n modelId: Id64String;\r\n\r\n /** @internal */\r\n url?: never;\r\n /** @internal */\r\n formatId?: never;\r\n /** @internal */\r\n subLayers?: never;\r\n /** @internal */\r\n accessKey?: never;\r\n}\r\n\r\n/** JSON representation of a [[MapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @public\r\n */\r\nexport type MapLayerProps = ImageMapLayerProps | ModelMapLayerProps;\r\n\r\n/**\r\n * stores key-value pair to be added to all requests made involving map layer.\r\n * @public\r\n */\r\nexport interface MapLayerKey {\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/** Abstract base class for normalized representation of a [[MapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * This class is extended by [[ImageMapLayerSettings]] and [ModelMapLayerSettings]] to create the settings for image and model based layers.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @public\r\n */\r\nexport abstract class MapLayerSettings {\r\n public readonly visible: boolean;\r\n\r\n public readonly name: string;\r\n public readonly transparency: number;\r\n public readonly transparentBackground: boolean;\r\n public abstract get allSubLayersInvisible(): boolean;\r\n public abstract clone(changedProps: Partial<MapLayerProps>): MapLayerSettings;\r\n public abstract toJSON(): MapLayerProps;\r\n\r\n /** @internal */\r\n protected constructor(name: string, visible = true, transparency: number = 0, transparentBackground = true) {\r\n this.name = name;\r\n this.visible = visible;\r\n this.transparentBackground = transparentBackground;\r\n this.transparency = transparency;\r\n }\r\n\r\n /** Create a map layer settings from its JSON representation. */\r\n public static fromJSON(props: MapLayerProps): MapLayerSettings {\r\n return undefined !== props.modelId ? ModelMapLayerSettings.fromJSON(props) : ImageMapLayerSettings.fromJSON(props);\r\n }\r\n\r\n /** @internal */\r\n protected _toJSON(): CommonMapLayerProps {\r\n const props: CommonMapLayerProps = {\r\n name: this.name,\r\n visible: this.visible,\r\n };\r\n\r\n if (0 !== this.transparency)\r\n props.transparency = this.transparency;\r\n\r\n if (this.transparentBackground === false)\r\n props.transparentBackground = this.transparentBackground;\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n protected cloneProps(changedProps: Partial<MapLayerProps>): CommonMapLayerProps {\r\n return {\r\n name: undefined !== changedProps.name ? changedProps.name : this.name,\r\n visible: undefined !== changedProps.visible ? changedProps.visible : this.visible,\r\n transparency: undefined !== changedProps.transparency ? changedProps.transparency : this.transparency,\r\n transparentBackground: undefined !== changedProps.transparentBackground ? changedProps.transparentBackground : this.transparentBackground,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public displayMatches(other: MapLayerSettings): boolean {\r\n return this.name === other.name && this.visible === other.visible && this.transparency === other.transparency && this.transparentBackground === other.transparentBackground;\r\n }\r\n\r\n /** Return a unique string identifying the layers source... The URL for image layer or modelID for model layer */\r\n public abstract get source(): string;\r\n\r\n /** @internal */\r\n public matchesNameAndSource(name: string, source: string): boolean {\r\n return this.name === name && this.source === source;\r\n }\r\n}\r\n\r\n/** Normalized representation of a [[ImageMapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * Image map layers are created from servers that produce images that represent map tiles. Map layers map also be represented by models.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @see [[ModelMapLayerSettings]] for model based map layer settings.\r\n * @public\r\n */\r\nexport class ImageMapLayerSettings extends MapLayerSettings {\r\n public readonly formatId: string;\r\n public readonly url: string;\r\n public userName?: string;\r\n public password?: string;\r\n public accessKey?: MapLayerKey;\r\n\r\n /** List of query parameters to append to the settings URL and persisted as part of the JSON representation.\r\n * @note Sensitive information like user credentials should be provided in [[unsavedQueryParams]] to ensure it is never persisted.\r\n * @beta\r\n */\r\n public savedQueryParams?: { [key: string]: string };\r\n\r\n /** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.\r\n * @beta\r\n */\r\n public unsavedQueryParams?: { [key: string]: string };\r\n public readonly subLayers: MapSubLayerSettings[];\r\n public override get source(): string { return this.url; }\r\n\r\n /** @internal */\r\n protected constructor(props: ImageMapLayerProps) {\r\n const transparentBackground = props.transparentBackground ?? true;\r\n super(props.name, props.visible, props.transparency, transparentBackground);\r\n\r\n this.formatId = props.formatId;\r\n this.url = props.url;\r\n this.accessKey = props.accessKey;\r\n if (props.queryParams) {\r\n this.savedQueryParams = {...props.queryParams};\r\n }\r\n this.subLayers = [];\r\n if (!props.subLayers)\r\n return;\r\n\r\n for (const subLayerProps of props.subLayers) {\r\n const subLayer = MapSubLayerSettings.fromJSON(subLayerProps);\r\n if (subLayer)\r\n this.subLayers.push(subLayer);\r\n }\r\n }\r\n\r\n public static override fromJSON(props: ImageMapLayerProps): ImageMapLayerSettings {\r\n return new this(props);\r\n }\r\n\r\n /** return JSON representation of this MapLayerSettings object */\r\n public override toJSON(): ImageMapLayerProps {\r\n const props = super._toJSON() as ImageMapLayerProps;\r\n props.url = this.url;\r\n props.formatId = this.formatId;\r\n\r\n if (this.subLayers.length > 0)\r\n props.subLayers = this.subLayers.map((x) => x.toJSON());\r\n\r\n if (this.savedQueryParams)\r\n props.queryParams = {...this.savedQueryParams};\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A MapLayerSettings with all of its properties set to match those of `this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps: Partial<ImageMapLayerProps>): ImageMapLayerSettings {\r\n const clone = ImageMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n\r\n // Clone members not part of MapLayerProps\r\n clone.userName = this.userName;\r\n clone.password = this.password;\r\n clone.accessKey = this.accessKey;\r\n if (this.unsavedQueryParams)\r\n clone.unsavedQueryParams = {...this.unsavedQueryParams};\r\n if (this.savedQueryParams)\r\n clone.savedQueryParams = {...this.savedQueryParams};\r\n\r\n return clone;\r\n }\r\n\r\n /** @internal */\r\n protected override cloneProps(changedProps: Partial<ImageMapLayerProps>): ImageMapLayerProps {\r\n const props = super.cloneProps(changedProps) as ImageMapLayerProps;\r\n\r\n props.formatId = changedProps.formatId ?? this.formatId;\r\n props.url = changedProps.url ?? this.url;\r\n props.accessKey = changedProps.accessKey ?? this.accessKey;\r\n props.subLayers = changedProps.subLayers ?? this.subLayers;\r\n if (changedProps.queryParams) {\r\n props.queryParams = {...changedProps.queryParams};\r\n } else if (this.savedQueryParams) {\r\n props.queryParams = {...this.savedQueryParams};\r\n }\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override displayMatches(other: MapLayerSettings): boolean {\r\n if (! (other instanceof ImageMapLayerSettings) || !super.displayMatches(other))\r\n return false;\r\n\r\n if (this.userName !== other.userName || this.password !== other.password || this.subLayers.length !== other.subLayers.length) {\r\n return false;\r\n }\r\n\r\n for (let i = 0; i < this.subLayers.length; i++)\r\n if (!this.subLayers[i].displayMatches(other.subLayers[i]))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /** Return a sublayer matching id -- or undefined if not found */\r\n public subLayerById(id?: SubLayerId): MapSubLayerSettings | undefined {\r\n return id === undefined ? undefined : this.subLayers.find((subLayer) => subLayer.id === id);\r\n }\r\n\r\n private hasInvisibleAncestors(subLayer?: MapSubLayerSettings): boolean {\r\n if (!subLayer || !subLayer.parent)\r\n return false;\r\n\r\n const parent = this.subLayerById(subLayer.parent);\r\n if (!parent)\r\n return false;\r\n\r\n // Visibility of named group has no impact on the visibility of children (only unnamed group does)\r\n // i.e For WMS, its should be possible to request a child layer when its parent is not visible (if the parent is also named)\r\n return (!parent.visible && !parent.isNamed) || this.hasInvisibleAncestors(parent);\r\n }\r\n\r\n /** Return true if sublayer is visible -- testing ancestors for visibility if they exist. */\r\n public isSubLayerVisible(subLayer: MapSubLayerSettings): boolean {\r\n if (!subLayer.visible)\r\n return false;\r\n\r\n return !this.hasInvisibleAncestors(subLayer);\r\n }\r\n\r\n /** Return true if all sublayers are invisible. */\r\n public get allSubLayersInvisible(): boolean {\r\n if (this.subLayers.length === 0)\r\n return false;\r\n\r\n return this.subLayers.every((subLayer) => (subLayer.isUnnamedGroup || !this.isSubLayerVisible(subLayer)));\r\n }\r\n\r\n /** Return the children for a sublayer */\r\n public getSubLayerChildren(subLayer: MapSubLayerSettings): MapSubLayerSettings[] | undefined {\r\n if (!subLayer.children)\r\n return undefined;\r\n\r\n const children = new Array<MapSubLayerSettings>();\r\n subLayer.children.forEach((childId) => {\r\n const child = this.subLayerById(childId);\r\n if (child !== undefined)\r\n children.push(child);\r\n });\r\n\r\n return children;\r\n }\r\n\r\n /** @internal */\r\n protected static mapTypeName(type: BackgroundMapType) { // TBD.. Localization.\r\n switch (type) {\r\n case BackgroundMapType.Aerial:\r\n return \"Aerial Imagery\";\r\n default:\r\n case BackgroundMapType.Hybrid:\r\n return \"Aerial Imagery with labels\";\r\n case BackgroundMapType.Street:\r\n return \"Streets\";\r\n }\r\n }\r\n\r\n public setCredentials(userName?: string, password?: string) {\r\n this.userName = userName;\r\n this.password = password;\r\n }\r\n\r\n /** Collect all query parameters\r\n * @beta\r\n */\r\n public collectQueryParams() {\r\n let queryParams: {[key: string]: string} = {};\r\n if (this.savedQueryParams)\r\n queryParams = {...this.savedQueryParams};\r\n\r\n if (this.unsavedQueryParams)\r\n queryParams = {...queryParams, ...this.unsavedQueryParams};\r\n\r\n return queryParams;\r\n }\r\n}\r\n\r\n/** Normalized representation of a [[ModelMapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * Model map layers are produced from models, typically from two dimensional geometry that may originate in a GIS system.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @see [[ImageMapLayerSettings]] for image based map layer settings.\r\n * @public\r\n */\r\nexport class ModelMapLayerSettings extends MapLayerSettings {\r\n public readonly modelId: Id64String;\r\n public override get source(): string { return this.modelId; }\r\n\r\n /** @internal */\r\n protected constructor(modelId: Id64String, name: string, visible = true,\r\n transparency: number = 0, transparentBackground = true) {\r\n super(name, visible, transparency, transparentBackground);\r\n this.modelId = modelId;\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static override fromJSON(json: ModelMapLayerProps): ModelMapLayerSettings {\r\n const transparentBackground = (json.transparentBackground === undefined) ? true : json.transparentBackground;\r\n return new this(json.modelId, json.name, json.visible, json.transparency, transparentBackground);\r\n }\r\n\r\n /** return JSON representation of this MapLayerSettings object */\r\n public override toJSON(): ModelMapLayerProps {\r\n const props = super._toJSON() as ModelMapLayerProps;\r\n props.modelId = this.modelId;\r\n return props;\r\n }\r\n\r\n /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A MapLayerSettings with all of its properties set to match those of `this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps: Partial<ModelMapLayerProps>): ModelMapLayerSettings {\r\n return ModelMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n }\r\n\r\n /** @internal */\r\n protected override cloneProps(changedProps: Partial<ModelMapLayerProps>): ModelMapLayerProps {\r\n const props = super.cloneProps(changedProps) as ModelMapLayerProps;\r\n props.modelId = changedProps.modelId ?? this.modelId;\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override displayMatches(other: MapLayerSettings): boolean {\r\n if (!(other instanceof ModelMapLayerSettings) || !super.displayMatches(other))\r\n return false;\r\n\r\n return this.modelId === other.modelId;\r\n }\r\n\r\n /** Return true if all sublayers are invisible (always false as model layers do not include sublayers). */\r\n public get allSubLayersInvisible(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n/** JSON representation of a [[BaseMapLayerSettings]].\r\n * @public\r\n */\r\nexport interface BaseMapLayerProps extends ImageMapLayerProps {\r\n provider?: BackgroundMapProviderProps;\r\n}\r\n\r\n/** A [[ImageMapLayerSettings]] that can serve as the base layer for a [[MapImagerySettings]].\r\n * The base layer supports all of the same options as any other layer, but also allows for simplified configuration based\r\n * on a small set of known supported [[BackgroundMapProvider]]s like [Bing Maps](https://www.microsoft.com/en-us/maps).\r\n * If the base layer was configured from such a provider, that information will be preserved and can be queried; this allows\r\n * the imagery provider and/or type to be easily modified.\r\n * @see [[MapImagerySettings.backgroundBase]].\r\n * @public\r\n */\r\nexport class BaseMapLayerSettings extends ImageMapLayerSettings {\r\n private _provider?: BackgroundMapProvider;\r\n\r\n /** The provider from which this base layer was configured, if any. */\r\n public get provider(): BackgroundMapProvider | undefined { return this._provider; }\r\n\r\n /** Create a base layer from its JSON representation.\r\n * TODO: This, MapLayerSettings.fromJSON, and MapSubLayerSettings.fromJSON should never return undefined.\r\n * That means they should not accept undefined for props and should define props such that it fully describes the\r\n * layer - e.g., url and name must be defined.\r\n */\r\n public static override fromJSON(props: BaseMapLayerProps): BaseMapLayerSettings {\r\n const settings = super.fromJSON(props);\r\n assert(settings instanceof BaseMapLayerSettings);\r\n if (props.provider)\r\n settings._provider = BackgroundMapProvider.fromJSON(props.provider);\r\n\r\n return settings;\r\n }\r\n\r\n /** Convert this layer to its JSON representation. */\r\n public override toJSON(): BaseMapLayerProps {\r\n const props = super.toJSON() as BaseMapLayerProps;\r\n if (this.provider)\r\n props.provider = this.provider.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override cloneProps(changedProps: Partial<BaseMapLayerProps>): BaseMapLayerProps {\r\n const props = super.cloneProps(changedProps) as BaseMapLayerProps;\r\n\r\n if (changedProps.provider)\r\n props.provider = changedProps.provider;\r\n else if (this.provider)\r\n props.provider = this.provider.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of this layer. */\r\n public override clone(changedProps: Partial<BaseMapLayerProps>): BaseMapLayerSettings {\r\n const prevUrl = this.url;\r\n const clone = BaseMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n\r\n if (this.provider && prevUrl !== this.url)\r\n clone._provider = undefined;\r\n\r\n return clone;\r\n }\r\n\r\n /** Create a base layer from a BackgroundMapProvider. */\r\n public static fromProvider(provider: BackgroundMapProvider, options?: { invisible?: boolean, transparency?: number }): BaseMapLayerSettings {\r\n let formatId: string, url: string, name: string;\r\n switch (provider.name) {\r\n case \"BingProvider\":\r\n default:\r\n formatId = \"BingMaps\";\r\n\r\n let imagerySet;\r\n switch (provider.type) {\r\n case BackgroundMapType.Street:\r\n imagerySet = \"Road\";\r\n break;\r\n case BackgroundMapType.Aerial:\r\n imagerySet = \"Aerial\";\r\n break;\r\n case BackgroundMapType.Hybrid:\r\n default:\r\n imagerySet = \"AerialWithLabels\";\r\n break;\r\n }\r\n\r\n name = `Bing Maps: ${ImageMapLayerSettings.mapTypeName(provider.type)}`;\r\n url = `https://dev.virtualearth.net/REST/v1/Imagery/Metadata/${imagerySet}?o=json&incl=ImageryProviders&key={bingKey}`;\r\n break;\r\n\r\n case \"MapBoxProvider\":\r\n formatId = \"MapboxImagery\";\r\n name = `MapBox: ${ImageMapLayerSettings.mapTypeName(provider.type)}`;\r\n switch (provider.type) {\r\n case BackgroundMapType.Street:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/streets-v11/tiles/\";\r\n break;\r\n case BackgroundMapType.Aerial:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/\";\r\n break;\r\n case BackgroundMapType.Hybrid:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v11/tiles/\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n\r\n const settings = super.fromJSON({\r\n name,\r\n formatId,\r\n url,\r\n transparentBackground: false,\r\n visible: !options?.invisible,\r\n transparency: options?.transparency,\r\n });\r\n\r\n assert(undefined !== settings);\r\n assert(settings instanceof BaseMapLayerSettings);\r\n\r\n settings._provider = provider;\r\n return settings;\r\n }\r\n\r\n /** @internal */\r\n public static fromBackgroundMapProps(props: DeprecatedBackgroundMapProps): BaseMapLayerSettings {\r\n return this.fromProvider(BackgroundMapProvider.fromBackgroundMapProps(props));\r\n }\r\n\r\n /** @alpha */\r\n public cloneWithProvider(provider: BackgroundMapProvider): BaseMapLayerSettings {\r\n return BaseMapLayerSettings.fromProvider(provider, { invisible: !this.visible, transparency: this.transparency });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MapLayerSettings.js","sourceRoot":"","sources":["../../src/MapLayerSettings.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 MapLayers\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { BackgroundMapProvider, BackgroundMapProviderProps, BackgroundMapType } from \"./BackgroundMapProvider\";\r\nimport { DeprecatedBackgroundMapProps } from \"./BackgroundMapSettings\";\r\n\r\n/** The current set of supported map layer formats.\r\n * In order to be displayed, a corresponding format must have been registered in the [MapLayerFormatRegistry]($frontend)\r\n * @public\r\n */\r\nexport type ImageryMapLayerFormatId = \"ArcGIS\" | \"BingMaps\" | \"MapboxImagery\" | \"TileURL\" | \"WMS\" | \"WMTS\";\r\n\r\n/** @public */\r\nexport type SubLayerId = string | number;\r\n\r\n/**\r\n * Type for map layer provider array property.\r\n * @beta\r\n */\r\nexport type MapLayerProviderArrayProperty = number[] | string[] | boolean[];\r\n\r\n/**\r\n * Type for map layer provider properties.\r\n * @beta\r\n */\r\nexport interface MapLayerProviderProperties { [key: string]: number | string | boolean | MapLayerProviderArrayProperty };\r\n\r\n/** JSON representation of the settings associated with a map sublayer included within a [[MapLayerProps]].\r\n * A map sub layer represents a set of objects within the layer that can be controlled separately. These\r\n * are produced only from map servers that produce images on demand and are not supported by tiled (cached) servers.\r\n * @see [[MapLayerProps]]\r\n * @public\r\n */\r\nexport interface MapSubLayerProps {\r\n name: string;\r\n title?: string;\r\n visible?: boolean;\r\n id?: SubLayerId;\r\n parent?: SubLayerId;\r\n children?: SubLayerId[];\r\n}\r\n\r\n/** Normalized representation of a [[MapSubLayerProps]] for which values\r\n * have been validated and default values have been applied where explicit values not defined.\r\n * A map sub layer represents a set of objects within the layer that can be controlled separately. These\r\n * are produced only from map servers that produce images on demand and are not supported by tiled (cached) servers.\r\n * This class can represent a hierarchy, in this case a sub layer is visible only if all its ancestors are also visible.\r\n * @see [[MapLayerSettings]]\r\n * @public\r\n */\r\nexport class MapSubLayerSettings {\r\n /** Typically Name is a single word used for machine-to-machine communication while the Title is for the benefit of humans (WMS) */\r\n public readonly name: string;\r\n /** Title. */\r\n public readonly title?: string;\r\n /** If true the sub layer is visible. If part of a hierarchy, a sub layer is visible only if its ancestors are also visible. */\r\n public readonly visible: boolean;\r\n /** A unique string or number that may be used to identify the sub layer (ArcGIS) */\r\n public readonly id: SubLayerId;\r\n /** One or more sublayer children */\r\n public readonly children?: SubLayerId[];\r\n /** sublayer parent. */\r\n public readonly parent?: SubLayerId;\r\n\r\n constructor(name: string, title?: string, visible?: boolean, id?: SubLayerId, parent?: SubLayerId, children?: SubLayerId[]) {\r\n this.name = name;\r\n this.title = title;\r\n this.visible = visible !== undefined && visible;\r\n this.id = (id === undefined) ? this.name : id;\r\n this.parent = parent;\r\n this.children = children;\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static fromJSON(json: MapSubLayerProps): MapSubLayerSettings {\r\n return new MapSubLayerSettings(json.name, json.title, json.visible, (json.id === json.name) ? undefined : json.id, json.parent, json.children);\r\n }\r\n\r\n public toJSON(): MapSubLayerProps {\r\n const props: MapSubLayerProps = { name: this.name, visible: this.visible };\r\n\r\n if (undefined !== this.id && this.id !== this.name)\r\n props.id = this.id;\r\n\r\n if (undefined !== this.title)\r\n props.title = this.title;\r\n\r\n if (this.children)\r\n props.children = [...this.children];\r\n\r\n if (undefined !== this.parent)\r\n props.parent = this.parent;\r\n\r\n return props;\r\n }\r\n\r\n /** Creating a copy of this MapSubLayer, optionally modifying some if its properties */\r\n public clone(changedProps: Partial<MapSubLayerProps>): MapSubLayerSettings {\r\n if (undefined === changedProps)\r\n return this;\r\n\r\n const props = {\r\n name: undefined !== changedProps.name ? changedProps.name : this.name,\r\n id: undefined !== changedProps.id ? changedProps.id : this.id,\r\n visible: undefined !== changedProps.visible ? changedProps.visible : this.visible,\r\n parent: undefined !== changedProps.parent ? changedProps.parent : this.parent,\r\n children: undefined !== changedProps.children ? changedProps.children.slice() : this.children?.slice(),\r\n title: undefined !== changedProps.title ? changedProps.title : this.title,\r\n };\r\n return MapSubLayerSettings.fromJSON(props);\r\n }\r\n\r\n /** @internal */\r\n public displayMatches(other: MapSubLayerSettings): boolean {\r\n return this.name === other.name && this.visible === other.visible;\r\n }\r\n\r\n /** return true if this sublayer is named. */\r\n public get isNamed(): boolean { return this.name.length > 0; }\r\n\r\n /** return true if this sublayer is a leaf (has no children) */\r\n public get isLeaf(): boolean { return this.children === undefined || this.children.length === 0; }\r\n\r\n /** return true if this sublayer is an unnamed group */\r\n public get isUnnamedGroup(): boolean { return !this.isLeaf && !this.isNamed; }\r\n\r\n /** return a string representing this sublayer id (converting to string if underlying id is number) */\r\n public get idString(): string { return (typeof this.id === \"number\") ? this.id.toString(10) : this.id; }\r\n}\r\n\r\n/** JSON representation of properties common to both [[ImageMapLayerProps]] and [[ModelMapLayerProps]].\r\n * @see [[MapImageryProps]]\r\n * @public\r\n */\r\nexport interface CommonMapLayerProps {\r\n /** Controls visibility of layer. Defaults to 'true'. */\r\n visible?: boolean;\r\n\r\n /** A user-friendly name for the layer. */\r\n name: string;\r\n\r\n /** A transparency value from 0.0 (fully opaque) to 1.0 (fully transparent) to apply to map graphics when drawing,\r\n * or false to indicate the transparency should not be overridden.\r\n * Default value: 0.\r\n */\r\n\r\n transparency?: number;\r\n /** True to indicate background is transparent.\r\n * Default: true.\r\n */\r\n transparentBackground?: boolean;\r\n}\r\n\r\n/** JSON representation of an [[ImageMapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @see [[ImageryMapLayerFormatId]].\r\n * @public\r\n */\r\nexport interface ImageMapLayerProps extends CommonMapLayerProps {\r\n /** URL */\r\n url: string;\r\n /** Identifies the map layers source.*/\r\n formatId: string;\r\n /** Source layers. If undefined all layers are displayed. */\r\n subLayers?: MapSubLayerProps[];\r\n /** Access Key for the Layer, like a subscription key or access token.\r\n * ###TODO This does not belong in the props object. It should never be persisted.\r\n */\r\n /** @internal */\r\n accessKey?: MapLayerKey;\r\n\r\n /** @internal */\r\n modelId?: never;\r\n\r\n /** List of query parameters that will get appended to the source.\r\n * @beta\r\n */\r\n queryParams?: { [key: string]: string };\r\n\r\n /** Properties specific to the map layer provider.\r\n * @beta\r\n */\r\n properties?: MapLayerProviderProperties;\r\n\r\n}\r\n\r\n/** The target onto which to drape a model map layer.\r\n * @beta\r\n */\r\nexport enum ModelMapLayerDrapeTarget {\r\n /** Drape only onto the globe. */\r\n Globe = 0,\r\n /** Drape only onto all attached reality data. */\r\n RealityData = 1,\r\n}\r\n\r\n/** JSON representation of a [[ModelMapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @public\r\n */\r\nexport interface ModelMapLayerProps extends CommonMapLayerProps {\r\n /** The Id of the [GeometricModel]($backend) containing the geometry to be drawn by the layer. */\r\n modelId: Id64String;\r\n /** Specifies the target onto which to drape this model map layer. Defaults to [ModelMapLayerDrapeTarget.Globe]($common).\r\n * @beta\r\n */\r\n drapeTarget?: ModelMapLayerDrapeTarget;\r\n\r\n /** @internal */\r\n url?: never;\r\n /** @internal */\r\n formatId?: never;\r\n /** @internal */\r\n subLayers?: never;\r\n /** @internal */\r\n accessKey?: never;\r\n}\r\n\r\n/** JSON representation of a [[MapLayerSettings]].\r\n * @see [[MapImagerySettings]].\r\n * @public\r\n */\r\nexport type MapLayerProps = ImageMapLayerProps | ModelMapLayerProps;\r\n\r\n/**\r\n * stores key-value pair to be added to all requests made involving map layer.\r\n * @public\r\n */\r\nexport interface MapLayerKey {\r\n key: string;\r\n value: string;\r\n}\r\n\r\n/** Abstract base class for normalized representation of a [[MapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * This class is extended by [[ImageMapLayerSettings]] and [ModelMapLayerSettings]] to create the settings for image and model based layers.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @public\r\n */\r\nexport abstract class MapLayerSettings {\r\n public readonly visible: boolean;\r\n\r\n public readonly name: string;\r\n public readonly transparency: number;\r\n public readonly transparentBackground: boolean;\r\n public abstract get allSubLayersInvisible(): boolean;\r\n public abstract clone(changedProps: Partial<MapLayerProps>): MapLayerSettings;\r\n public abstract toJSON(): MapLayerProps;\r\n\r\n /** @internal */\r\n protected constructor(name: string, visible = true, transparency: number = 0, transparentBackground = true) {\r\n this.name = name;\r\n this.visible = visible;\r\n this.transparentBackground = transparentBackground;\r\n this.transparency = transparency;\r\n }\r\n\r\n /** Create a map layer settings from its JSON representation. */\r\n public static fromJSON(props: MapLayerProps): MapLayerSettings {\r\n return undefined !== props.modelId ? ModelMapLayerSettings.fromJSON(props) : ImageMapLayerSettings.fromJSON(props);\r\n }\r\n\r\n /** @internal */\r\n protected _toJSON(): CommonMapLayerProps {\r\n const props: CommonMapLayerProps = {\r\n name: this.name,\r\n visible: this.visible,\r\n };\r\n\r\n if (0 !== this.transparency)\r\n props.transparency = this.transparency;\r\n\r\n if (this.transparentBackground === false)\r\n props.transparentBackground = this.transparentBackground;\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n protected cloneProps(changedProps: Partial<MapLayerProps>): CommonMapLayerProps {\r\n return {\r\n name: undefined !== changedProps.name ? changedProps.name : this.name,\r\n visible: undefined !== changedProps.visible ? changedProps.visible : this.visible,\r\n transparency: undefined !== changedProps.transparency ? changedProps.transparency : this.transparency,\r\n transparentBackground: undefined !== changedProps.transparentBackground ? changedProps.transparentBackground : this.transparentBackground,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public displayMatches(other: MapLayerSettings): boolean {\r\n return this.name === other.name && this.visible === other.visible && this.transparency === other.transparency && this.transparentBackground === other.transparentBackground;\r\n }\r\n\r\n /** Return a unique string identifying the layers source... The URL for image layer or modelID for model layer */\r\n public abstract get source(): string;\r\n\r\n /** @internal */\r\n public matchesNameAndSource(name: string, source: string): boolean {\r\n return this.name === name && this.source === source;\r\n }\r\n}\r\n\r\n/** Normalized representation of a [[ImageMapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * Image map layers are created from servers that produce images that represent map tiles. Map layers map also be represented by models.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @see [[ModelMapLayerSettings]] for model based map layer settings.\r\n * @public\r\n */\r\nexport class ImageMapLayerSettings extends MapLayerSettings {\r\n public readonly formatId: string;\r\n public readonly url: string;\r\n public userName?: string;\r\n public password?: string;\r\n public accessKey?: MapLayerKey;\r\n\r\n /** List of query parameters to append to the settings URL and persisted as part of the JSON representation.\r\n * @note Sensitive information like user credentials should be provided in [[unsavedQueryParams]] to ensure it is never persisted.\r\n * @beta\r\n */\r\n public savedQueryParams?: { [key: string]: string };\r\n\r\n /** List of query parameters that will get appended to the settings URL that should *not* be be persisted part of the JSON representation.\r\n * @beta\r\n */\r\n public unsavedQueryParams?: { [key: string]: string };\r\n\r\n /** Properties specific to the map layer provider.\r\n * @beta\r\n */\r\n public readonly properties?: MapLayerProviderProperties;\r\n\r\n public readonly subLayers: MapSubLayerSettings[];\r\n public override get source(): string { return this.url; }\r\n\r\n /** @internal */\r\n protected constructor(props: ImageMapLayerProps) {\r\n const transparentBackground = props.transparentBackground ?? true;\r\n super(props.name, props.visible, props.transparency, transparentBackground);\r\n\r\n this.formatId = props.formatId;\r\n this.url = props.url;\r\n this.accessKey = props.accessKey;\r\n if (props.queryParams) {\r\n this.savedQueryParams = {...props.queryParams};\r\n }\r\n\r\n if (props.properties) {\r\n this.properties = {...props.properties}\r\n }\r\n\r\n this.subLayers = [];\r\n if (!props.subLayers)\r\n return;\r\n\r\n for (const subLayerProps of props.subLayers) {\r\n const subLayer = MapSubLayerSettings.fromJSON(subLayerProps);\r\n if (subLayer)\r\n this.subLayers.push(subLayer);\r\n }\r\n }\r\n\r\n public static override fromJSON(props: ImageMapLayerProps): ImageMapLayerSettings {\r\n return new this(props);\r\n }\r\n\r\n /** return JSON representation of this MapLayerSettings object */\r\n public override toJSON(): ImageMapLayerProps {\r\n const props = super._toJSON() as ImageMapLayerProps;\r\n props.url = this.url;\r\n props.formatId = this.formatId;\r\n\r\n if (this.subLayers.length > 0)\r\n props.subLayers = this.subLayers.map((x) => x.toJSON());\r\n\r\n if (this.savedQueryParams)\r\n props.queryParams = {...this.savedQueryParams};\r\n\r\n if (this.properties) {\r\n props.properties = structuredClone(this.properties);\r\n }\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A MapLayerSettings with all of its properties set to match those of `this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps: Partial<ImageMapLayerProps>): ImageMapLayerSettings {\r\n const clone = ImageMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n\r\n // Clone members not part of MapLayerProps\r\n clone.userName = this.userName;\r\n clone.password = this.password;\r\n if (this.unsavedQueryParams)\r\n clone.unsavedQueryParams = {...this.unsavedQueryParams};\r\n if (this.savedQueryParams)\r\n clone.savedQueryParams = {...this.savedQueryParams};\r\n\r\n return clone;\r\n }\r\n\r\n /** @internal */\r\n protected override cloneProps(changedProps: Partial<ImageMapLayerProps>): ImageMapLayerProps {\r\n const props = super.cloneProps(changedProps) as ImageMapLayerProps;\r\n\r\n props.formatId = changedProps.formatId ?? this.formatId;\r\n props.url = changedProps.url ?? this.url;\r\n props.accessKey = changedProps.accessKey ?? this.accessKey;\r\n props.subLayers = changedProps.subLayers ?? this.subLayers;\r\n if (changedProps.queryParams) {\r\n props.queryParams = {...changedProps.queryParams};\r\n } else if (this.savedQueryParams) {\r\n props.queryParams = {...this.savedQueryParams};\r\n }\r\n\r\n if (changedProps.properties) {\r\n props.properties = {...changedProps.properties}\r\n } else if (this.properties) {\r\n props.properties = {...this.properties}\r\n }\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override displayMatches(other: MapLayerSettings): boolean {\r\n if (! (other instanceof ImageMapLayerSettings) || !super.displayMatches(other))\r\n return false;\r\n\r\n if (this.userName !== other.userName || this.password !== other.password || this.subLayers.length !== other.subLayers.length) {\r\n return false;\r\n }\r\n\r\n for (let i = 0; i < this.subLayers.length; i++)\r\n if (!this.subLayers[i].displayMatches(other.subLayers[i]))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /** Return a sublayer matching id -- or undefined if not found */\r\n public subLayerById(id?: SubLayerId): MapSubLayerSettings | undefined {\r\n return id === undefined ? undefined : this.subLayers.find((subLayer) => subLayer.id === id);\r\n }\r\n\r\n private hasInvisibleAncestors(subLayer?: MapSubLayerSettings): boolean {\r\n if (!subLayer || !subLayer.parent)\r\n return false;\r\n\r\n const parent = this.subLayerById(subLayer.parent);\r\n if (!parent)\r\n return false;\r\n\r\n // Visibility of named group has no impact on the visibility of children (only unnamed group does)\r\n // i.e For WMS, its should be possible to request a child layer when its parent is not visible (if the parent is also named)\r\n return (!parent.visible && !parent.isNamed) || this.hasInvisibleAncestors(parent);\r\n }\r\n\r\n /** Return true if sublayer is visible -- testing ancestors for visibility if they exist. */\r\n public isSubLayerVisible(subLayer: MapSubLayerSettings): boolean {\r\n if (!subLayer.visible)\r\n return false;\r\n\r\n return !this.hasInvisibleAncestors(subLayer);\r\n }\r\n\r\n /** Return true if all sublayers are invisible. */\r\n public get allSubLayersInvisible(): boolean {\r\n if (this.subLayers.length === 0)\r\n return false;\r\n\r\n return this.subLayers.every((subLayer) => (subLayer.isUnnamedGroup || !this.isSubLayerVisible(subLayer)));\r\n }\r\n\r\n /** Return the children for a sublayer */\r\n public getSubLayerChildren(subLayer: MapSubLayerSettings): MapSubLayerSettings[] | undefined {\r\n if (!subLayer.children)\r\n return undefined;\r\n\r\n const children = new Array<MapSubLayerSettings>();\r\n subLayer.children.forEach((childId) => {\r\n const child = this.subLayerById(childId);\r\n if (child !== undefined)\r\n children.push(child);\r\n });\r\n\r\n return children;\r\n }\r\n\r\n /** @internal */\r\n protected static mapTypeName(type: BackgroundMapType) { // TBD.. Localization.\r\n switch (type) {\r\n case BackgroundMapType.Aerial:\r\n return \"Aerial Imagery\";\r\n default:\r\n case BackgroundMapType.Hybrid:\r\n return \"Aerial Imagery with labels\";\r\n case BackgroundMapType.Street:\r\n return \"Streets\";\r\n }\r\n }\r\n\r\n public setCredentials(userName?: string, password?: string) {\r\n this.userName = userName;\r\n this.password = password;\r\n }\r\n\r\n /** Collect all query parameters\r\n * @beta\r\n */\r\n public collectQueryParams() {\r\n let queryParams: {[key: string]: string} = {};\r\n if (this.savedQueryParams)\r\n queryParams = {...this.savedQueryParams};\r\n\r\n if (this.unsavedQueryParams)\r\n queryParams = {...queryParams, ...this.unsavedQueryParams};\r\n\r\n return queryParams;\r\n }\r\n}\r\n\r\n/** Normalized representation of a [[ModelMapLayerProps]] for which values have been validated and default values have been applied where explicit values not defined.\r\n * Model map layers are produced from models, typically from two dimensional geometry that may originate in a GIS system.\r\n * One or more map layers may be included within [[MapImagerySettings]] object.\r\n * @see [[MapImagerySettings]]\r\n * @see [[ImageMapLayerSettings]] for image based map layer settings.\r\n * @public\r\n */\r\nexport class ModelMapLayerSettings extends MapLayerSettings {\r\n /** Specifies the target onto which to drape this model map layer. Defaults to [ModelMapLayerDrapeTarget.Globe]($common).\r\n * @beta\r\n */\r\n public readonly drapeTarget: ModelMapLayerDrapeTarget;\r\n public readonly modelId: Id64String;\r\n public override get source(): string { return this.modelId; }\r\n\r\n /** @internal */\r\n protected constructor(modelId: Id64String, name: string, visible = true,\r\n transparency: number = 0, transparentBackground = true, drapeTarget = ModelMapLayerDrapeTarget.Globe) {\r\n super(name, visible, transparency, transparentBackground);\r\n this.modelId = modelId;\r\n this.drapeTarget = drapeTarget;\r\n }\r\n\r\n /** Construct from JSON, performing validation and applying default values for undefined fields. */\r\n public static override fromJSON(json: ModelMapLayerProps): ModelMapLayerSettings {\r\n const transparentBackground = (json.transparentBackground === undefined) ? true : json.transparentBackground;\r\n return new this(json.modelId, json.name, json.visible, json.transparency, transparentBackground, json.drapeTarget);\r\n }\r\n\r\n /** return JSON representation of this MapLayerSettings object */\r\n public override toJSON(): ModelMapLayerProps {\r\n const props = super._toJSON() as ModelMapLayerProps;\r\n props.modelId = this.modelId;\r\n if (this.drapeTarget !== ModelMapLayerDrapeTarget.Globe)\r\n props.drapeTarget = this.drapeTarget;\r\n return props;\r\n }\r\n\r\n /** Create a copy of this MapLayerSettings, optionally modifying some of its properties.\r\n * @param changedProps JSON representation of the properties to change.\r\n * @returns A MapLayerSettings with all of its properties set to match those of `this`, except those explicitly defined in `changedProps`.\r\n */\r\n public clone(changedProps: Partial<ModelMapLayerProps>): ModelMapLayerSettings {\r\n return ModelMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n }\r\n\r\n /** @internal */\r\n protected override cloneProps(changedProps: Partial<ModelMapLayerProps>): ModelMapLayerProps {\r\n const props = super.cloneProps(changedProps) as ModelMapLayerProps;\r\n props.modelId = changedProps.modelId ?? this.modelId;\r\n props.drapeTarget = changedProps.drapeTarget ?? this.drapeTarget;\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override displayMatches(other: MapLayerSettings): boolean {\r\n if (!(other instanceof ModelMapLayerSettings) || !super.displayMatches(other))\r\n return false;\r\n\r\n return this.modelId === other.modelId;\r\n }\r\n\r\n /** Return true if all sublayers are invisible (always false as model layers do not include sublayers). */\r\n public get allSubLayersInvisible(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n/** JSON representation of a [[BaseMapLayerSettings]].\r\n * @public\r\n */\r\nexport interface BaseMapLayerProps extends ImageMapLayerProps {\r\n provider?: BackgroundMapProviderProps;\r\n}\r\n\r\n/** A [[ImageMapLayerSettings]] that can serve as the base layer for a [[MapImagerySettings]].\r\n * The base layer supports all of the same options as any other layer, but also allows for simplified configuration based\r\n * on a small set of known supported [[BackgroundMapProvider]]s like [Bing Maps](https://www.microsoft.com/en-us/maps).\r\n * If the base layer was configured from such a provider, that information will be preserved and can be queried; this allows\r\n * the imagery provider and/or type to be easily modified.\r\n * @see [[MapImagerySettings.backgroundBase]].\r\n * @public\r\n */\r\nexport class BaseMapLayerSettings extends ImageMapLayerSettings {\r\n private _provider?: BackgroundMapProvider;\r\n\r\n /** The provider from which this base layer was configured, if any. */\r\n public get provider(): BackgroundMapProvider | undefined { return this._provider; }\r\n\r\n /** Create a base layer from its JSON representation.\r\n * TODO: This, MapLayerSettings.fromJSON, and MapSubLayerSettings.fromJSON should never return undefined.\r\n * That means they should not accept undefined for props and should define props such that it fully describes the\r\n * layer - e.g., url and name must be defined.\r\n */\r\n public static override fromJSON(props: BaseMapLayerProps): BaseMapLayerSettings {\r\n const settings = super.fromJSON(props);\r\n assert(settings instanceof BaseMapLayerSettings);\r\n if (props.provider)\r\n settings._provider = BackgroundMapProvider.fromJSON(props.provider);\r\n\r\n return settings;\r\n }\r\n\r\n /** Convert this layer to its JSON representation. */\r\n public override toJSON(): BaseMapLayerProps {\r\n const props = super.toJSON() as BaseMapLayerProps;\r\n if (this.provider)\r\n props.provider = this.provider.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** @internal */\r\n public override cloneProps(changedProps: Partial<BaseMapLayerProps>): BaseMapLayerProps {\r\n const props = super.cloneProps(changedProps) as BaseMapLayerProps;\r\n\r\n if (changedProps.provider)\r\n props.provider = changedProps.provider;\r\n else if (this.provider)\r\n props.provider = this.provider.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of this layer. */\r\n public override clone(changedProps: Partial<BaseMapLayerProps>): BaseMapLayerSettings {\r\n const prevUrl = this.url;\r\n const clone = BaseMapLayerSettings.fromJSON(this.cloneProps(changedProps));\r\n\r\n if (this.provider && prevUrl !== this.url)\r\n clone._provider = undefined;\r\n\r\n return clone;\r\n }\r\n\r\n /** Create a base layer from a BackgroundMapProvider. */\r\n public static fromProvider(provider: BackgroundMapProvider, options?: { invisible?: boolean, transparency?: number }): BaseMapLayerSettings {\r\n let formatId: string, url: string, name: string;\r\n switch (provider.name) {\r\n case \"BingProvider\":\r\n default:\r\n formatId = \"BingMaps\";\r\n\r\n let imagerySet;\r\n switch (provider.type) {\r\n case BackgroundMapType.Street:\r\n imagerySet = \"Road\";\r\n break;\r\n case BackgroundMapType.Aerial:\r\n imagerySet = \"Aerial\";\r\n break;\r\n case BackgroundMapType.Hybrid:\r\n default:\r\n imagerySet = \"AerialWithLabels\";\r\n break;\r\n }\r\n\r\n name = `Bing Maps: ${ImageMapLayerSettings.mapTypeName(provider.type)}`;\r\n url = `https://dev.virtualearth.net/REST/v1/Imagery/Metadata/${imagerySet}?o=json&incl=ImageryProviders&key={bingKey}`;\r\n break;\r\n\r\n case \"MapBoxProvider\":\r\n formatId = \"MapboxImagery\";\r\n name = `MapBox: ${ImageMapLayerSettings.mapTypeName(provider.type)}`;\r\n switch (provider.type) {\r\n case BackgroundMapType.Street:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/streets-v11/tiles/\";\r\n break;\r\n case BackgroundMapType.Aerial:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/\";\r\n break;\r\n case BackgroundMapType.Hybrid:\r\n url = \"https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v11/tiles/\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n\r\n const settings = super.fromJSON({\r\n name,\r\n formatId,\r\n url,\r\n transparentBackground: false,\r\n visible: !options?.invisible,\r\n transparency: options?.transparency,\r\n });\r\n\r\n assert(undefined !== settings);\r\n assert(settings instanceof BaseMapLayerSettings);\r\n\r\n settings._provider = provider;\r\n return settings;\r\n }\r\n\r\n /** @internal */\r\n public static fromBackgroundMapProps(props: DeprecatedBackgroundMapProps): BaseMapLayerSettings {\r\n return this.fromProvider(BackgroundMapProvider.fromBackgroundMapProps(props));\r\n }\r\n\r\n /** @alpha */\r\n public cloneWithProvider(provider: BackgroundMapProvider): BaseMapLayerSettings {\r\n return BaseMapLayerSettings.fromProvider(provider, { invisible: !this.visible, transparency: this.transparency });\r\n }\r\n}\r\n"]}