@itwin/core-frontend 5.1.0-dev.5 → 5.1.0-dev.52

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 (549) hide show
  1. package/CHANGELOG.md +101 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +2 -0
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.js +2 -2
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
  9. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  10. package/lib/cjs/GraphicalEditingScope.js +1 -1
  11. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  12. package/lib/cjs/HitDetail.d.ts +1 -1
  13. package/lib/cjs/HitDetail.d.ts.map +1 -1
  14. package/lib/cjs/HitDetail.js.map +1 -1
  15. package/lib/cjs/IModelApp.d.ts +19 -4
  16. package/lib/cjs/IModelApp.d.ts.map +1 -1
  17. package/lib/cjs/IModelApp.js +21 -2
  18. package/lib/cjs/IModelApp.js.map +1 -1
  19. package/lib/cjs/IModelConnection.d.ts +6 -6
  20. package/lib/cjs/IModelConnection.js +6 -6
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/IpcApp.d.ts +2 -1
  23. package/lib/cjs/IpcApp.d.ts.map +1 -1
  24. package/lib/cjs/IpcApp.js +4 -2
  25. package/lib/cjs/IpcApp.js.map +1 -1
  26. package/lib/cjs/RealityDataSource.d.ts +65 -3
  27. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  28. package/lib/cjs/RealityDataSource.js +79 -3
  29. package/lib/cjs/RealityDataSource.js.map +1 -1
  30. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  31. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  32. package/lib/cjs/SelectionSet.d.ts +7 -7
  33. package/lib/cjs/SelectionSet.js +3 -3
  34. package/lib/cjs/SelectionSet.js.map +1 -1
  35. package/lib/cjs/SheetViewState.d.ts +2 -0
  36. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  37. package/lib/cjs/SheetViewState.js +25 -3
  38. package/lib/cjs/SheetViewState.js.map +1 -1
  39. package/lib/cjs/ViewContext.d.ts +4 -1
  40. package/lib/cjs/ViewContext.d.ts.map +1 -1
  41. package/lib/cjs/ViewContext.js +10 -5
  42. package/lib/cjs/ViewContext.js.map +1 -1
  43. package/lib/cjs/ViewManager.js +2 -2
  44. package/lib/cjs/ViewManager.js.map +1 -1
  45. package/lib/cjs/ViewState.d.ts +1 -1
  46. package/lib/cjs/ViewState.js +1 -1
  47. package/lib/cjs/ViewState.js.map +1 -1
  48. package/lib/cjs/Viewport.d.ts +7 -5
  49. package/lib/cjs/Viewport.d.ts.map +1 -1
  50. package/lib/cjs/Viewport.js +9 -5
  51. package/lib/cjs/Viewport.js.map +1 -1
  52. package/lib/cjs/core-frontend.d.ts +1 -1
  53. package/lib/cjs/core-frontend.d.ts.map +1 -1
  54. package/lib/cjs/core-frontend.js.map +1 -1
  55. package/lib/cjs/extension/ExtensionRuntime.js +15 -2
  56. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  57. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  58. package/lib/cjs/internal/GoogleMapsDecorator.d.ts +53 -0
  59. package/lib/cjs/internal/GoogleMapsDecorator.d.ts.map +1 -0
  60. package/lib/cjs/internal/GoogleMapsDecorator.js +132 -0
  61. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -0
  62. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  63. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  64. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js +201 -0
  65. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  66. package/lib/cjs/internal/cross-package.d.ts +1 -0
  67. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  68. package/lib/cjs/internal/cross-package.js +4 -1
  69. package/lib/cjs/internal/cross-package.js.map +1 -1
  70. package/lib/cjs/internal/render/MockRender.d.ts +1 -1
  71. package/lib/cjs/internal/render/MockRender.d.ts.map +1 -1
  72. package/lib/cjs/internal/render/MockRender.js +1 -1
  73. package/lib/cjs/internal/render/MockRender.js.map +1 -1
  74. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  75. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  76. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
  77. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  78. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  79. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  80. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
  81. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  82. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
  83. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  84. package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
  85. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  86. package/lib/cjs/internal/render/webgl/RenderCommands.d.ts.map +1 -1
  87. package/lib/cjs/internal/render/webgl/RenderCommands.js +2 -3
  88. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  89. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
  90. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  91. package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
  92. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  93. package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
  94. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  95. package/lib/cjs/internal/render/webgl/Target.js +2 -2
  96. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  97. package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts +3 -3
  98. package/lib/cjs/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
  99. package/lib/cjs/internal/render/webgl/TargetGraphics.js +10 -7
  100. package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
  101. package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
  102. package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
  103. package/lib/cjs/internal/render/webgl/Technique.js +3 -3
  104. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  105. package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
  106. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  107. package/lib/cjs/internal/tile/IModelTile.d.ts +1 -0
  108. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
  109. package/lib/cjs/internal/tile/IModelTile.js +4 -0
  110. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  111. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  112. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  113. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  114. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +4 -1
  115. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  116. package/lib/cjs/internal/tile/OrbitGtTileTree.js +4 -0
  117. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  118. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  119. package/lib/cjs/internal/tile/PrimaryTileTree.js +4 -3
  120. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  121. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +20 -3
  122. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  123. package/lib/cjs/internal/tile/RealityModelTileTree.js +39 -14
  124. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  125. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  126. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  127. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  128. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  129. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  130. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  131. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  132. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  133. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  134. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  135. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  136. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  137. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  138. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  139. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  140. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  141. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  142. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  143. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  144. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  145. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  146. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  147. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +17 -0
  148. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  149. package/lib/cjs/properties/AngleDescription.d.ts +4 -1
  150. package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
  151. package/lib/cjs/properties/AngleDescription.js +10 -2
  152. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  153. package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
  154. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  155. package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
  156. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  157. package/lib/cjs/properties/LengthDescription.d.ts +12 -3
  158. package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
  159. package/lib/cjs/properties/LengthDescription.js +30 -6
  160. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  161. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
  162. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  163. package/lib/cjs/quantity-formatting/QuantityFormatter.js +212 -23
  164. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  165. package/lib/cjs/render/Decorations.d.ts +1 -1
  166. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  167. package/lib/cjs/render/Decorations.js +1 -1
  168. package/lib/cjs/render/Decorations.js.map +1 -1
  169. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  170. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  171. package/lib/cjs/render/GraphicBranch.js +1 -1
  172. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  173. package/lib/cjs/render/RenderGraphic.d.ts +1 -1
  174. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  175. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  176. package/lib/cjs/render/RenderSystem.d.ts +2 -2
  177. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  178. package/lib/cjs/render/RenderSystem.js.map +1 -1
  179. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  180. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  181. package/lib/cjs/render/RenderTarget.js.map +1 -1
  182. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  183. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  184. package/lib/cjs/request/Request.d.ts +2 -2
  185. package/lib/cjs/request/Request.js.map +1 -1
  186. package/lib/cjs/tile/GltfReader.d.ts +1 -0
  187. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  188. package/lib/cjs/tile/GltfReader.js +1 -0
  189. package/lib/cjs/tile/GltfReader.js.map +1 -1
  190. package/lib/cjs/tile/RealityTile.d.ts +5 -0
  191. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  192. package/lib/cjs/tile/RealityTile.js +5 -0
  193. package/lib/cjs/tile/RealityTile.js.map +1 -1
  194. package/lib/cjs/tile/Tile.d.ts +1 -1
  195. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  196. package/lib/cjs/tile/Tile.js +1 -1
  197. package/lib/cjs/tile/Tile.js.map +1 -1
  198. package/lib/cjs/tile/TileAdmin.d.ts +10 -0
  199. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  200. package/lib/cjs/tile/TileAdmin.js +3 -0
  201. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  202. package/lib/cjs/tile/TileTree.d.ts +1 -1
  203. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  204. package/lib/cjs/tile/TileTree.js +1 -1
  205. package/lib/cjs/tile/TileTree.js.map +1 -1
  206. package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
  207. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  208. package/lib/cjs/tile/TileTreeReference.js +1 -1
  209. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  210. package/lib/cjs/tile/map/CesiumTerrainProvider.js +1 -1
  211. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  212. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  213. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  214. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  215. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  216. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
  217. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  218. package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
  219. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  220. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
  221. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  222. package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
  223. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  224. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  225. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  226. package/lib/cjs/tile/map/MapTileTree.js +1 -1
  227. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  228. package/lib/cjs/tile/map/QuadId.d.ts +15 -0
  229. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  230. package/lib/cjs/tile/map/QuadId.js +12 -0
  231. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  232. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  233. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  234. package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
  235. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  236. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +7 -0
  237. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  238. package/lib/cjs/tools/AccuDrawViewportUI.js +14 -0
  239. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  240. package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
  241. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  242. package/lib/cjs/tools/ElementSetTool.js +128 -7
  243. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  244. package/lib/cjs/tools/MeasureTool.d.ts +9 -0
  245. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  246. package/lib/cjs/tools/MeasureTool.js +53 -22
  247. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  248. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -1
  249. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  250. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  251. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  252. package/lib/cjs/tools/SelectTool.d.ts +2 -2
  253. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  254. package/lib/cjs/tools/SelectTool.js +26 -97
  255. package/lib/cjs/tools/SelectTool.js.map +1 -1
  256. package/lib/cjs/tools/Tool.d.ts +10 -1
  257. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  258. package/lib/cjs/tools/Tool.js +27 -4
  259. package/lib/cjs/tools/Tool.js.map +1 -1
  260. package/lib/cjs/tools/ToolAdmin.d.ts +1 -0
  261. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  262. package/lib/cjs/tools/ToolAdmin.js +8 -2
  263. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  264. package/lib/cjs/tools/ToolSettings.d.ts +5 -0
  265. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  266. package/lib/cjs/tools/ToolSettings.js +5 -0
  267. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  268. package/lib/cjs/tools/ViewTool.d.ts +1 -2
  269. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  270. package/lib/cjs/tools/ViewTool.js +10 -47
  271. package/lib/cjs/tools/ViewTool.js.map +1 -1
  272. package/lib/esm/AccuDraw.d.ts +2 -0
  273. package/lib/esm/AccuDraw.d.ts.map +1 -1
  274. package/lib/esm/AccuDraw.js +2 -0
  275. package/lib/esm/AccuDraw.js.map +1 -1
  276. package/lib/esm/AccuSnap.js +2 -2
  277. package/lib/esm/AccuSnap.js.map +1 -1
  278. package/lib/esm/GraphicalEditingScope.d.ts +1 -1
  279. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  280. package/lib/esm/GraphicalEditingScope.js +1 -1
  281. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  282. package/lib/esm/HitDetail.d.ts +1 -1
  283. package/lib/esm/HitDetail.d.ts.map +1 -1
  284. package/lib/esm/HitDetail.js.map +1 -1
  285. package/lib/esm/IModelApp.d.ts +19 -4
  286. package/lib/esm/IModelApp.d.ts.map +1 -1
  287. package/lib/esm/IModelApp.js +22 -3
  288. package/lib/esm/IModelApp.js.map +1 -1
  289. package/lib/esm/IModelConnection.d.ts +6 -6
  290. package/lib/esm/IModelConnection.js +6 -6
  291. package/lib/esm/IModelConnection.js.map +1 -1
  292. package/lib/esm/IpcApp.d.ts +2 -1
  293. package/lib/esm/IpcApp.d.ts.map +1 -1
  294. package/lib/esm/IpcApp.js +4 -2
  295. package/lib/esm/IpcApp.js.map +1 -1
  296. package/lib/esm/RealityDataSource.d.ts +65 -3
  297. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  298. package/lib/esm/RealityDataSource.js +77 -3
  299. package/lib/esm/RealityDataSource.js.map +1 -1
  300. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  301. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  302. package/lib/esm/SelectionSet.d.ts +7 -7
  303. package/lib/esm/SelectionSet.js +3 -3
  304. package/lib/esm/SelectionSet.js.map +1 -1
  305. package/lib/esm/SheetViewState.d.ts +2 -0
  306. package/lib/esm/SheetViewState.d.ts.map +1 -1
  307. package/lib/esm/SheetViewState.js +25 -3
  308. package/lib/esm/SheetViewState.js.map +1 -1
  309. package/lib/esm/ViewContext.d.ts +4 -1
  310. package/lib/esm/ViewContext.d.ts.map +1 -1
  311. package/lib/esm/ViewContext.js +10 -5
  312. package/lib/esm/ViewContext.js.map +1 -1
  313. package/lib/esm/ViewManager.js +2 -2
  314. package/lib/esm/ViewManager.js.map +1 -1
  315. package/lib/esm/ViewState.d.ts +1 -1
  316. package/lib/esm/ViewState.js +1 -1
  317. package/lib/esm/ViewState.js.map +1 -1
  318. package/lib/esm/Viewport.d.ts +7 -5
  319. package/lib/esm/Viewport.d.ts.map +1 -1
  320. package/lib/esm/Viewport.js +9 -5
  321. package/lib/esm/Viewport.js.map +1 -1
  322. package/lib/esm/core-frontend.d.ts +1 -1
  323. package/lib/esm/core-frontend.d.ts.map +1 -1
  324. package/lib/esm/core-frontend.js.map +1 -1
  325. package/lib/esm/extension/ExtensionRuntime.js +15 -2
  326. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  327. package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -1
  328. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  329. package/lib/esm/internal/GoogleMapsDecorator.d.ts +53 -0
  330. package/lib/esm/internal/GoogleMapsDecorator.d.ts.map +1 -0
  331. package/lib/esm/internal/GoogleMapsDecorator.js +126 -0
  332. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -0
  333. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  334. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  335. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js +197 -0
  336. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  337. package/lib/esm/internal/cross-package.d.ts +1 -0
  338. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  339. package/lib/esm/internal/cross-package.js +1 -0
  340. package/lib/esm/internal/cross-package.js.map +1 -1
  341. package/lib/esm/internal/render/MockRender.d.ts +1 -1
  342. package/lib/esm/internal/render/MockRender.d.ts.map +1 -1
  343. package/lib/esm/internal/render/MockRender.js +1 -1
  344. package/lib/esm/internal/render/MockRender.js.map +1 -1
  345. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  346. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  347. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
  348. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  349. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  350. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  351. package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
  352. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  353. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
  354. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  355. package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
  356. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  357. package/lib/esm/internal/render/webgl/RenderCommands.d.ts.map +1 -1
  358. package/lib/esm/internal/render/webgl/RenderCommands.js +2 -3
  359. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  360. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
  361. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  362. package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
  363. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  364. package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
  365. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  366. package/lib/esm/internal/render/webgl/Target.js +2 -2
  367. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  368. package/lib/esm/internal/render/webgl/TargetGraphics.d.ts +3 -3
  369. package/lib/esm/internal/render/webgl/TargetGraphics.d.ts.map +1 -1
  370. package/lib/esm/internal/render/webgl/TargetGraphics.js +10 -7
  371. package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
  372. package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
  373. package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
  374. package/lib/esm/internal/render/webgl/Technique.js +3 -3
  375. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  376. package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
  377. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  378. package/lib/esm/internal/tile/IModelTile.d.ts +1 -0
  379. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
  380. package/lib/esm/internal/tile/IModelTile.js +4 -0
  381. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  382. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  383. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  384. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  385. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +4 -1
  386. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  387. package/lib/esm/internal/tile/OrbitGtTileTree.js +5 -1
  388. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  389. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  390. package/lib/esm/internal/tile/PrimaryTileTree.js +4 -3
  391. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  392. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +20 -3
  393. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  394. package/lib/esm/internal/tile/RealityModelTileTree.js +38 -14
  395. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  396. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  397. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  398. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  399. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  400. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  401. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  402. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  403. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  404. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  405. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  406. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  407. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  408. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  409. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  410. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  411. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  412. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  413. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  414. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  415. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  416. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  417. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  418. package/lib/esm/internal/tile/map/WmtsCapabilities.js +17 -0
  419. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  420. package/lib/esm/properties/AngleDescription.d.ts +4 -1
  421. package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
  422. package/lib/esm/properties/AngleDescription.js +10 -2
  423. package/lib/esm/properties/AngleDescription.js.map +1 -1
  424. package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
  425. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  426. package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
  427. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  428. package/lib/esm/properties/LengthDescription.d.ts +12 -3
  429. package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
  430. package/lib/esm/properties/LengthDescription.js +30 -6
  431. package/lib/esm/properties/LengthDescription.js.map +1 -1
  432. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
  433. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  434. package/lib/esm/quantity-formatting/QuantityFormatter.js +210 -23
  435. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  436. package/lib/esm/render/Decorations.d.ts +1 -1
  437. package/lib/esm/render/Decorations.d.ts.map +1 -1
  438. package/lib/esm/render/Decorations.js +1 -1
  439. package/lib/esm/render/Decorations.js.map +1 -1
  440. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  441. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  442. package/lib/esm/render/GraphicBranch.js +1 -1
  443. package/lib/esm/render/GraphicBranch.js.map +1 -1
  444. package/lib/esm/render/RenderGraphic.d.ts +1 -1
  445. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  446. package/lib/esm/render/RenderGraphic.js.map +1 -1
  447. package/lib/esm/render/RenderSystem.d.ts +2 -2
  448. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  449. package/lib/esm/render/RenderSystem.js.map +1 -1
  450. package/lib/esm/render/RenderTarget.d.ts +1 -1
  451. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  452. package/lib/esm/render/RenderTarget.js.map +1 -1
  453. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  454. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  455. package/lib/esm/request/Request.d.ts +2 -2
  456. package/lib/esm/request/Request.js.map +1 -1
  457. package/lib/esm/tile/GltfReader.d.ts +1 -0
  458. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  459. package/lib/esm/tile/GltfReader.js +1 -0
  460. package/lib/esm/tile/GltfReader.js.map +1 -1
  461. package/lib/esm/tile/RealityTile.d.ts +5 -0
  462. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  463. package/lib/esm/tile/RealityTile.js +5 -0
  464. package/lib/esm/tile/RealityTile.js.map +1 -1
  465. package/lib/esm/tile/Tile.d.ts +1 -1
  466. package/lib/esm/tile/Tile.d.ts.map +1 -1
  467. package/lib/esm/tile/Tile.js +1 -1
  468. package/lib/esm/tile/Tile.js.map +1 -1
  469. package/lib/esm/tile/TileAdmin.d.ts +10 -0
  470. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  471. package/lib/esm/tile/TileAdmin.js +3 -0
  472. package/lib/esm/tile/TileAdmin.js.map +1 -1
  473. package/lib/esm/tile/TileTree.d.ts +1 -1
  474. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  475. package/lib/esm/tile/TileTree.js +1 -1
  476. package/lib/esm/tile/TileTree.js.map +1 -1
  477. package/lib/esm/tile/TileTreeReference.d.ts +1 -1
  478. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  479. package/lib/esm/tile/TileTreeReference.js +1 -1
  480. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  481. package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
  482. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  483. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  484. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  485. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  486. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  487. package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
  488. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  489. package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
  490. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  491. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
  492. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  493. package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
  494. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  495. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  496. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  497. package/lib/esm/tile/map/MapTileTree.js +1 -1
  498. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  499. package/lib/esm/tile/map/QuadId.d.ts +15 -0
  500. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  501. package/lib/esm/tile/map/QuadId.js +12 -0
  502. package/lib/esm/tile/map/QuadId.js.map +1 -1
  503. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  504. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  505. package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
  506. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  507. package/lib/esm/tools/AccuDrawViewportUI.d.ts +7 -0
  508. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  509. package/lib/esm/tools/AccuDrawViewportUI.js +14 -0
  510. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  511. package/lib/esm/tools/ElementSetTool.d.ts +9 -1
  512. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  513. package/lib/esm/tools/ElementSetTool.js +130 -9
  514. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  515. package/lib/esm/tools/MeasureTool.d.ts +9 -0
  516. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  517. package/lib/esm/tools/MeasureTool.js +53 -22
  518. package/lib/esm/tools/MeasureTool.js.map +1 -1
  519. package/lib/esm/tools/PrimitiveTool.d.ts +1 -1
  520. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  521. package/lib/esm/tools/PrimitiveTool.js +2 -2
  522. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  523. package/lib/esm/tools/SelectTool.d.ts +2 -2
  524. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  525. package/lib/esm/tools/SelectTool.js +26 -97
  526. package/lib/esm/tools/SelectTool.js.map +1 -1
  527. package/lib/esm/tools/Tool.d.ts +10 -1
  528. package/lib/esm/tools/Tool.d.ts.map +1 -1
  529. package/lib/esm/tools/Tool.js +27 -4
  530. package/lib/esm/tools/Tool.js.map +1 -1
  531. package/lib/esm/tools/ToolAdmin.d.ts +1 -0
  532. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  533. package/lib/esm/tools/ToolAdmin.js +8 -2
  534. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  535. package/lib/esm/tools/ToolSettings.d.ts +5 -0
  536. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  537. package/lib/esm/tools/ToolSettings.js +5 -0
  538. package/lib/esm/tools/ToolSettings.js.map +1 -1
  539. package/lib/esm/tools/ViewTool.d.ts +1 -2
  540. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  541. package/lib/esm/tools/ViewTool.js +10 -47
  542. package/lib/esm/tools/ViewTool.js.map +1 -1
  543. package/lib/public/images/google_on_non_white.png +0 -0
  544. package/lib/public/images/google_on_non_white_hdpi.png +0 -0
  545. package/lib/public/images/google_on_white.png +0 -0
  546. package/lib/public/images/google_on_white_hdpi.png +0 -0
  547. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  548. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  549. package/package.json +22 -20
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\nimport { RequestBasicCredentials } from \"../../../request/Request\";\nimport { MapCartoRectangle, WmsUtilities } from \"../../../tile/internal\";\n\nenum OwsConstants {\n ABSTRACT_XMLTAG = \"ows:Abstract\",\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\n DCP_XMLTAG = \"ows:DCP\",\n FEES_XMLTAG = \"ows:Fees\",\n GET_XMLTAG = \"ows:Get\",\n HTTP_XMLTAG = \"ows:HTTP\",\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\n KEYWORDS_XMLTAG = \"ows:Keywords\",\n KEYWORD_XMLTAG = \"ows:Keyword\",\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\n OPERATION_XMLTAG = \"ows:Operation\",\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\n POST_XMLTAG = \"ows:Post\",\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\n TITLE_XMLTAG = \"ows:Title\",\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\n VALUE_XMLTAG = \"ows:Value\",\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\n\n}\n\nenum XmlConstants {\n // Operations names\n GETCAPABILITIES = \"GetCapabilities\",\n GETTILE = \"GetTile\",\n GETFEATUREINFO = \"GetFeatureInfo\",\n\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\n\n TILEHEIGHT_XMLTAG = \"TileHeight\",\n TILEMATRIX_XMLTAG = \"TileMatrix\",\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\n TILEWIDTH_XMLTAG = \"TileWidth\",\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\n\n CONSTRAINT_NAME_FILTER = \"Encoding\",\n STYLE_ISDEFAULT = \"IsDefault\",\n XLINK_HREF = \"xlink:href\",\n}\n\nexport enum WmtsConstants {\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\n}\n\n/**\n * Utility function to extract an element' text content\n * @return An element's text content, default to provided defaultTest value if no text is available.\n * @param url server URL to address the request\n */\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\n\n const tmpElem = elem.getElementsByTagName(qualifiedName);\n if (tmpElem.length > 0) {\n return tmpElem[0].textContent ?? defaultText;\n } else\n return defaultText;\n\n};\n\n/** Encapsulation of the capabilities for an WMTS server\n */\nexport namespace WmtsCapability {\n export class ServiceIdentification {\n public readonly abstract?: string;\n public readonly accessConstraints?: string;\n public readonly fees?: string;\n public readonly serviceType?: string;\n public readonly serviceTypeVersion?: string;\n public readonly title?: string;\n public readonly keywords?: string[];\n\n constructor(elem: Element) {\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\n if (keywords.length > 0) {\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\n this.keywords = [];\n for (const keyworkElem of keyword) {\n const keyWordText = keyworkElem.textContent;\n if (keyWordText)\n this.keywords.push(keyWordText);\n }\n }\n\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\n\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\n }\n }\n\n export class OperationMetadata {\n private _getCapabilities?: Operation;\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\n\n private _getFeatureInfo?: Operation;\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\n\n private _getTile?: Operation;\n public get getTile(): Operation | undefined { return this._getTile; }\n\n private readOperation(op: Element) {\n const nameAttr = op.attributes.getNamedItem(\"name\");\n if (!nameAttr)\n return;\n\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\n this._getCapabilities = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\n this._getTile = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\n this._getFeatureInfo = new Operation(op);\n }\n }\n\n constructor(elem: Element) {\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\n if (operation.length > 0) {\n for (const op of operation) {\n this.readOperation(op);\n }\n }\n }\n }\n\n export class HttpDcp {\n public readonly url?: string;\n public readonly constraintName?: string;\n\n // For simplicity of use we create a 'static' encoding property instead of having\n // a generic constraint data model.\n // We make sure the constraint name is 'encoding' related.\n public readonly encoding?: string;\n\n constructor(elem: Element) {\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\n if (url)\n this.url = url ?? \"\";\n\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\n if (constraint.length > 0) {\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\n if (allowedValues.length > 0) {\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\n }\n }\n }\n }\n }\n\n export class Operation {\n public readonly name?: string;\n private _getDcpHttp?: HttpDcp[];\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\n private _postDcpHttp?: HttpDcp[];\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\n\n constructor(elem: Element) {\n const name = elem.getAttribute(\"name\");\n if (name)\n this.name = name;\n\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\n if (!dcp || dcp.length === 0)\n return;\n\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\n if (!dcpHttp || dcpHttp.length === 0)\n return;\n\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\n if (get.length > 0) {\n this._getDcpHttp = [];\n\n for (const getItem of get) {\n this._getDcpHttp?.push(new HttpDcp(getItem));\n }\n }\n\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\n if (post.length > 0) {\n this._postDcpHttp = [];\n\n for (const postItem of post) {\n this._postDcpHttp?.push(new HttpDcp(postItem));\n }\n }\n }\n }\n\n export class Contents {\n public readonly layers: Layer[] = [];\n public readonly tileMatrixSets: TileMatrixSet[] = [];\n\n constructor(elem: Element) {\n // Layers\n const layer = elem.getElementsByTagName(\"Layer\");\n if (layer) {\n for (const layerElem of layer)\n this.layers.push(new Layer(layerElem));\n }\n\n // TileMatrixSet\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\n if (tms) {\n for (const tmsElem of tms)\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\n }\n\n }\n\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\n const googleMapsTms: TileMatrixSet[] = [];\n this.tileMatrixSets.forEach((tms) => {\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\n googleMapsTms.push(tms);\n\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\n else if (tms.tileMatrix.length > 0\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\n )\n googleMapsTms.push(tms);\n });\n return googleMapsTms;\n }\n\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\n }\n }\n\n export class Style {\n public readonly isDefault: boolean = false;\n public readonly title?: string;\n public readonly identifier?: string;\n // TODO: LegendURL\n\n constructor(elem: Element) {\n if (!elem)\n return;\n\n const isDefault = elem.getAttribute(\"isDefault\");\n if (isDefault)\n this.isDefault = isDefault.toLowerCase() === \"true\";\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n }\n }\n\n export class BoundingBox {\n public readonly crs?: string;\n public readonly range?: Range2d;\n\n constructor(elem: Element) {\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\n\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\n if (lowerCorner && upperCorner) {\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n }\n }\n }\n\n export class TileMatrixSetLimits {\n public limits?: Range2d;\n public tileMatrix?: string;\n\n constructor(elem: Element) {\n\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\n\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\n\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\n }\n }\n\n export class TileMatrixSetLink {\n public readonly tileMatrixSet: string;\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\n\n constructor(elem: Element) {\n\n this.tileMatrixSet = getElementTextContent(elem, \"TileMatrixSet\", \"\")!;\n\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\n if (tileMatrixLimitsRoot.length > 0) {\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\n for (const tmsl of tileMatrixLimits) {\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\n }\n }\n }\n }\n\n export class TileMatrixSet {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly supportedCrs: string;\n public readonly wellKnownScaleSet: string;\n public readonly tileMatrix: TileMatrix[] = [];\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\n if (supportedCrs)\n this.supportedCrs = supportedCrs;\n else\n throw new Error(\"No supported CRS found.\");\n\n this.wellKnownScaleSet = getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\")!;\n\n // TileMatrix:\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\n if (tileMatrix.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tm of tileMatrix) {\n this.tileMatrix.push(new TileMatrix(tm));\n }\n }\n }\n\n export class TileMatrix {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly scaleDenominator: number;\n public readonly topLeftCorner: Point2d;\n public readonly tileWidth: number;\n public readonly tileHeight: number;\n public readonly matrixWidth: number;\n public readonly matrixHeight: number;\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n // Scale denominator\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\n if (!scaleDenom)\n throw new Error(\"No scale denominator found on TileMatrix.\");\n this.scaleDenominator = +scaleDenom;\n\n // Top left corner\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\n if (topLeftCorner?.length !== 2)\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\n\n // Tile Width\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\n if (!tileWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.tileWidth = +tileWidth;\n\n // Tile Height\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\n if (!tileHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.tileHeight = +tileHeight;\n\n // Matrix Width\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\n if (!matrixWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.matrixWidth = +matrixWidth;\n\n // Matrix Height\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\n if (!matrixHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.matrixHeight = +matrixHeight;\n }\n }\n\n export class Layer {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly format?: string;\n public readonly wsg84BoundingBox?: MapCartoRectangle;\n public readonly boundingBox?: BoundingBox;\n public readonly styles: Style[] = [];\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\n\n constructor(elem: Element) {\n\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.format = getElementTextContent(elem, \"Format\");\n\n // BoundingBox\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\n if (boundingBox.length > 0)\n this.boundingBox = new BoundingBox(boundingBox[0]);\n\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\n if (bbox.length > 0) {\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n }\n\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\n const range = this.boundingBox.range;\n if (range)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\n else\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\n }\n\n // Style\n const style = elem.getElementsByTagName(\"Style\");\n if (style.length > 0) {\n for (const styleElem of style)\n this.styles.push(new Style(styleElem));\n }\n\n // TileMatrixSetLink\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\n\n if (tileMatrixSetLink.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tmsl of tileMatrixSetLink)\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\n }\n }\n}\n\nexport class WmtsCapabilities {\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\n\n public readonly version?: string;\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\n public readonly contents?: WmtsCapability.Contents;\n\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\n\n constructor(xmlDoc: Document) {\n\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\n if (capabilities.length !== 0) {\n const capability = capabilities[0];\n this.version = capability.getAttribute(\"version\") ?? undefined;\n\n // Service Identification\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\n if (serviceIdentification.length > 0)\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\n\n // Operations metadata\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\n if (operationsMetadata.length > 0)\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\n\n // Contents\n const content = capability.getElementsByTagName(\"Contents\");\n if (content.length > 0)\n this.contents = new WmtsCapability.Contents(content[0]);\n }\n }\n\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\n return new WmtsCapabilities(xmlDoc);\n }\n\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmtsCapabilities | undefined> {\n if (!ignoreCache) {\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\n if (cached !== undefined)\n return cached;\n }\n\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\n tmpUrl.searchParams.append(\"service\", \"WMTS\");\n if (queryParams) {\n Object.keys(queryParams).forEach((paramKey) => {\n if (!tmpUrl.searchParams.has(paramKey))\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\n });\n }\n\n const xmlCapabilities = await WmsUtilities.fetchXml(tmpUrl.toString(), credentials);\n if (!xmlCapabilities)\n return undefined;\n\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\n if (capabilities)\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\n\n return capabilities;\n }\n}\n"]}
1
+ {"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\nimport { RequestBasicCredentials } from \"../../../request/Request\";\nimport { MapCartoRectangle, WmsUtilities } from \"../../../tile/internal\";\n\nenum OwsConstants {\n ABSTRACT_XMLTAG = \"ows:Abstract\",\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\n DCP_XMLTAG = \"ows:DCP\",\n FEES_XMLTAG = \"ows:Fees\",\n GET_XMLTAG = \"ows:Get\",\n HTTP_XMLTAG = \"ows:HTTP\",\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\n KEYWORDS_XMLTAG = \"ows:Keywords\",\n KEYWORD_XMLTAG = \"ows:Keyword\",\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\n OPERATION_XMLTAG = \"ows:Operation\",\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\n POST_XMLTAG = \"ows:Post\",\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\n TITLE_XMLTAG = \"ows:Title\",\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\n VALUE_XMLTAG = \"ows:Value\",\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\n\n}\n\nenum XmlConstants {\n // Operations names\n GETCAPABILITIES = \"GetCapabilities\",\n GETTILE = \"GetTile\",\n GETFEATUREINFO = \"GetFeatureInfo\",\n\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\n\n TILEHEIGHT_XMLTAG = \"TileHeight\",\n TILEMATRIX_XMLTAG = \"TileMatrix\",\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\n RESOURCEURL_XMLTAG = \"ResourceURL\",\n TILEWIDTH_XMLTAG = \"TileWidth\",\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\n\n CONSTRAINT_NAME_FILTER = \"Encoding\",\n STYLE_ISDEFAULT = \"IsDefault\",\n XLINK_HREF = \"xlink:href\",\n}\n\nexport enum WmtsConstants {\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\n}\n\n/**\n * Utility function to extract an element' text content\n * @return An element's text content, default to provided defaultTest value if no text is available.\n * @param url server URL to address the request\n */\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\n\n const tmpElem = elem.getElementsByTagName(qualifiedName);\n if (tmpElem.length > 0) {\n return tmpElem[0].textContent ?? defaultText;\n } else\n return defaultText;\n\n};\n\n/** Encapsulation of the capabilities for an WMTS server\n */\nexport namespace WmtsCapability {\n export class ServiceIdentification {\n public readonly abstract?: string;\n public readonly accessConstraints?: string;\n public readonly fees?: string;\n public readonly serviceType?: string;\n public readonly serviceTypeVersion?: string;\n public readonly title?: string;\n public readonly keywords?: string[];\n\n constructor(elem: Element) {\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\n if (keywords.length > 0) {\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\n this.keywords = [];\n for (const keyworkElem of keyword) {\n const keyWordText = keyworkElem.textContent;\n if (keyWordText)\n this.keywords.push(keyWordText);\n }\n }\n\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\n\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\n }\n }\n\n export class OperationMetadata {\n private _getCapabilities?: Operation;\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\n\n private _getFeatureInfo?: Operation;\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\n\n private _getTile?: Operation;\n public get getTile(): Operation | undefined { return this._getTile; }\n\n private readOperation(op: Element) {\n const nameAttr = op.attributes.getNamedItem(\"name\");\n if (!nameAttr)\n return;\n\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\n this._getCapabilities = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\n this._getTile = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\n this._getFeatureInfo = new Operation(op);\n }\n }\n\n constructor(elem: Element) {\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\n if (operation.length > 0) {\n for (const op of operation) {\n this.readOperation(op);\n }\n }\n }\n }\n\n export class HttpDcp {\n public readonly url?: string;\n public readonly constraintName?: string;\n\n // For simplicity of use we create a 'static' encoding property instead of having\n // a generic constraint data model.\n // We make sure the constraint name is 'encoding' related.\n public readonly encoding?: string;\n\n constructor(elem: Element) {\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\n if (url)\n this.url = url ?? \"\";\n\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\n if (constraint.length > 0) {\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\n if (allowedValues.length > 0) {\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\n }\n }\n }\n }\n }\n\n export class Operation {\n public readonly name?: string;\n private _getDcpHttp?: HttpDcp[];\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\n private _postDcpHttp?: HttpDcp[];\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\n\n constructor(elem: Element) {\n const name = elem.getAttribute(\"name\");\n if (name)\n this.name = name;\n\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\n if (!dcp || dcp.length === 0)\n return;\n\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\n if (!dcpHttp || dcpHttp.length === 0)\n return;\n\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\n if (get.length > 0) {\n this._getDcpHttp = [];\n\n for (const getItem of get) {\n this._getDcpHttp?.push(new HttpDcp(getItem));\n }\n }\n\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\n if (post.length > 0) {\n this._postDcpHttp = [];\n\n for (const postItem of post) {\n this._postDcpHttp?.push(new HttpDcp(postItem));\n }\n }\n }\n }\n\n export class Contents {\n public readonly layers: Layer[] = [];\n public readonly tileMatrixSets: TileMatrixSet[] = [];\n\n constructor(elem: Element) {\n // Layers\n const layer = elem.getElementsByTagName(\"Layer\");\n if (layer) {\n for (const layerElem of layer)\n this.layers.push(new Layer(layerElem));\n }\n\n // TileMatrixSet\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\n if (tms) {\n for (const tmsElem of tms)\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\n }\n\n }\n\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\n const googleMapsTms: TileMatrixSet[] = [];\n this.tileMatrixSets.forEach((tms) => {\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\n googleMapsTms.push(tms);\n\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\n else if (tms.tileMatrix.length > 0\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\n )\n googleMapsTms.push(tms);\n });\n return googleMapsTms;\n }\n\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\n }\n }\n\n export class Style {\n public readonly isDefault: boolean = false;\n public readonly title?: string;\n public readonly identifier?: string;\n // TODO: LegendURL\n\n constructor(elem: Element) {\n if (!elem)\n return;\n\n const isDefault = elem.getAttribute(\"isDefault\");\n if (isDefault)\n this.isDefault = isDefault.toLowerCase() === \"true\";\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n }\n }\n\n export class BoundingBox {\n public readonly crs?: string;\n public readonly range?: Range2d;\n\n constructor(elem: Element) {\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\n\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\n if (lowerCorner && upperCorner) {\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n }\n }\n }\n\n export class TileMatrixSetLimits {\n public limits?: Range2d;\n public tileMatrix?: string;\n\n constructor(elem: Element) {\n\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\n\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\n\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\n }\n }\n\n export class TileMatrixSetLink {\n public readonly tileMatrixSet: string;\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\n\n constructor(elem: Element) {\n\n this.tileMatrixSet = getElementTextContent(elem, \"TileMatrixSet\", \"\")!;\n\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\n if (tileMatrixLimitsRoot.length > 0) {\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\n for (const tmsl of tileMatrixLimits) {\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\n }\n }\n }\n }\n\n export class ResourceURL {\n public readonly format: string;\n public readonly resourceType: string\n public readonly template: string;\n\n constructor(elem: Element) {\n this.format = elem.getAttribute(\"format\") ?? \"\";\n this.resourceType = elem.getAttribute(\"resourceType\") ?? \"\";\n this.template = elem.getAttribute(\"template\") ?? \"\";\n }\n }\n\n export class TileMatrixSet {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly supportedCrs: string;\n public readonly wellKnownScaleSet: string;\n public readonly tileMatrix: TileMatrix[] = [];\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\n if (supportedCrs)\n this.supportedCrs = supportedCrs;\n else\n throw new Error(\"No supported CRS found.\");\n\n this.wellKnownScaleSet = getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\")!;\n\n // TileMatrix:\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\n if (tileMatrix.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tm of tileMatrix) {\n this.tileMatrix.push(new TileMatrix(tm));\n }\n }\n }\n\n export class TileMatrix {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly scaleDenominator: number;\n public readonly topLeftCorner: Point2d;\n public readonly tileWidth: number;\n public readonly tileHeight: number;\n public readonly matrixWidth: number;\n public readonly matrixHeight: number;\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n // Scale denominator\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\n if (!scaleDenom)\n throw new Error(\"No scale denominator found on TileMatrix.\");\n this.scaleDenominator = +scaleDenom;\n\n // Top left corner\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\n if (topLeftCorner?.length !== 2)\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\n\n // Tile Width\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\n if (!tileWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.tileWidth = +tileWidth;\n\n // Tile Height\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\n if (!tileHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.tileHeight = +tileHeight;\n\n // Matrix Width\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\n if (!matrixWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.matrixWidth = +matrixWidth;\n\n // Matrix Height\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\n if (!matrixHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.matrixHeight = +matrixHeight;\n }\n }\n\n export class Layer {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly format?: string;\n public readonly wsg84BoundingBox?: MapCartoRectangle;\n public readonly boundingBox?: BoundingBox;\n public readonly styles: Style[] = [];\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\n public readonly resourceUrls: ResourceURL[] = [];\n\n constructor(elem: Element) {\n\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.format = getElementTextContent(elem, \"Format\");\n\n // BoundingBox\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\n if (boundingBox.length > 0)\n this.boundingBox = new BoundingBox(boundingBox[0]);\n\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\n if (bbox.length > 0) {\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n }\n\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\n const range = this.boundingBox.range;\n if (range)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\n else\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\n }\n\n // Style\n const style = elem.getElementsByTagName(\"Style\");\n if (style.length > 0) {\n for (const styleElem of style)\n this.styles.push(new Style(styleElem));\n }\n\n // TileMatrixSetLink\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\n\n if (tileMatrixSetLink.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tmsl of tileMatrixSetLink)\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\n\n // ResourceURL are optional. It can be repeated for different resource types.\n const resourceUrls = elem.getElementsByTagName(XmlConstants.RESOURCEURL_XMLTAG);\n\n for (const url of resourceUrls)\n this.resourceUrls.push(new ResourceURL(url));\n }\n }\n}\n\nexport class WmtsCapabilities {\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\n\n public readonly version?: string;\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\n public readonly contents?: WmtsCapability.Contents;\n\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\n\n constructor(xmlDoc: Document) {\n\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\n if (capabilities.length !== 0) {\n const capability = capabilities[0];\n this.version = capability.getAttribute(\"version\") ?? undefined;\n\n // Service Identification\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\n if (serviceIdentification.length > 0)\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\n\n // Operations metadata\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\n if (operationsMetadata.length > 0)\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\n\n // Contents\n const content = capability.getElementsByTagName(\"Contents\");\n if (content.length > 0)\n this.contents = new WmtsCapability.Contents(content[0]);\n }\n }\n\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\n return new WmtsCapabilities(xmlDoc);\n }\n\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmtsCapabilities | undefined> {\n if (!ignoreCache) {\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\n if (cached !== undefined)\n return cached;\n }\n\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\n tmpUrl.searchParams.append(\"service\", \"WMTS\");\n if (queryParams) {\n Object.keys(queryParams).forEach((paramKey) => {\n if (!tmpUrl.searchParams.has(paramKey))\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\n });\n }\n\n const xmlCapabilities = await WmsUtilities.fetchXml(tmpUrl.toString(), credentials);\n if (!xmlCapabilities)\n return undefined;\n\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\n if (capabilities)\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\n\n return capabilities;\n }\n}\n"]}
@@ -8,8 +8,11 @@ import { FormattedQuantityDescription } from "./FormattedQuantityDescription";
8
8
  * @beta
9
9
  */
10
10
  export declare class AngleDescription extends FormattedQuantityDescription {
11
- constructor(name?: string, displayLabel?: string, iconSpec?: string);
11
+ constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string);
12
12
  get formatterQuantityType(): QuantityType;
13
+ /**
14
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
15
+ */
13
16
  get quantityType(): string;
14
17
  get parseError(): string;
15
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AngleDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/AngleDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,4BAA4B;gBACpD,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IASnE,IAAW,qBAAqB,IAAI,YAAY,CAA+B;IAC/E,IAAW,YAAY,IAAI,MAAM,CAAoB;IAErD,IAAW,UAAU,IAAI,MAAM,CAAgG;CAChI"}
1
+ {"version":3,"file":"AngleDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/AngleDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,4BAA4B;gBACpD,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAUhG,IAAW,qBAAqB,IAAI,YAAY,CAA+B;IAC/E;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAAoB;IAErD,IAAW,UAAU,IAAI,MAAM,CAAgG;CAChI"}
@@ -13,11 +13,19 @@ import { FormattedQuantityDescription } from "./FormattedQuantityDescription";
13
13
  * @beta
14
14
  */
15
15
  export class AngleDescription extends FormattedQuantityDescription {
16
- constructor(name, displayLabel, iconSpec) {
16
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
17
17
  const defaultName = "angle";
18
- super(name ? name : defaultName, displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Angle"), iconSpec);
18
+ super({
19
+ name: name ? name : defaultName,
20
+ displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Angle"),
21
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.ANGLE",
22
+ iconSpec
23
+ });
19
24
  }
20
25
  get formatterQuantityType() { return QuantityType.Angle; }
26
+ /**
27
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
28
+ */
21
29
  get quantityType() { return "Angle"; }
22
30
  get parseError() { return IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseAngle"); }
23
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AngleDescription.js","sourceRoot":"","sources":["../../../src/properties/AngleDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,4BAA4B;IAChE,YAAY,IAAa,EAAE,YAAqB,EAAE,QAAiB;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC;QAC5B,KAAK,CACH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EACzB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,EACpG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAW,qBAAqB,KAAmB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,IAAW,YAAY,KAAa,OAAO,OAAO,CAAC,CAAC,CAAC;IAErD,IAAW,UAAU,KAAa,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC;CAChI","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\nimport { FormattedQuantityDescription } from \"./FormattedQuantityDescription\";\n\n/**\n * Angle Property Description\n * @beta\n */\nexport class AngleDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string) {\n const defaultName = \"angle\";\n super(\n name ? name : defaultName,\n displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Angle\"),\n iconSpec,\n );\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.Angle; }\n public get quantityType(): string { return \"Angle\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseAngle\"); }\n}\n"]}
1
+ {"version":3,"file":"AngleDescription.js","sourceRoot":"","sources":["../../../src/properties/AngleDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,4BAA4B;IAChE,YAAY,IAAa,EAAE,YAAqB,EAAE,QAAiB,EAAE,kBAA2B;QAC9F,MAAM,WAAW,GAAG,OAAO,CAAC;QAC5B,KAAK,CAAC;YACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;YAC/B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,2BAA2B,CAAC;YAClH,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB;YAC9E,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAED,IAAW,qBAAqB,KAAmB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E;;OAEG;IACH,IAAW,YAAY,KAAa,OAAO,OAAO,CAAC,CAAC,CAAC;IAErD,IAAW,UAAU,KAAa,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC;CAChI","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\nimport { FormattedQuantityDescription } from \"./FormattedQuantityDescription\";\n\n/**\n * Angle Property Description\n * @beta\n */\nexport class AngleDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n const defaultName = \"angle\";\n super({\n name: name ? name : defaultName,\n displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Angle\"),\n kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : \"AecUnits.ANGLE\",\n iconSpec\n })\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.Angle; }\n /**\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.\n */\n public get quantityType(): string { return \"Angle\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseAngle\"); }\n}\n"]}
@@ -4,6 +4,15 @@
4
4
  import { FormatterSpec, ParserSpec } from "@itwin/core-quantity";
5
5
  import { BaseQuantityDescription, ParseResults } from "@itwin/appui-abstract";
6
6
  import { QuantityType } from "../quantity-formatting/QuantityFormatter";
7
+ /**
8
+ * @beta
9
+ */
10
+ export interface FormattedQuantityDescriptionArgs {
11
+ name: string;
12
+ displayLabel: string;
13
+ iconSpec?: string;
14
+ kindOfQuantityName?: string;
15
+ }
7
16
  /**
8
17
  * Base Quantity Property Description
9
18
  * @beta
@@ -11,7 +20,8 @@ import { QuantityType } from "../quantity-formatting/QuantityFormatter";
11
20
  export declare abstract class FormattedQuantityDescription extends BaseQuantityDescription {
12
21
  private _formatterSpec?;
13
22
  private _parserSpec?;
14
- constructor(name: string, displayLabel: string, iconSpec?: string);
23
+ constructor(args: FormattedQuantityDescriptionArgs);
24
+ constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string);
15
25
  protected formatValue(numberValue: number): string;
16
26
  protected parseString(userInput: string): ParseResults;
17
27
  get formatterSpec(): FormatterSpec | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"FormattedQuantityDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE;;;GAGG;AACH,8BAAsB,4BAA6B,SAAQ,uBAAuB;IAChF,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAa;gBAErB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAIjE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOlD,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAYtD,IAAW,aAAa,IAAI,aAAa,GAAG,SAAS,CAWpD;IAED,IAAW,UAAU,IAAI,UAAU,GAAG,SAAS,CAW9C;IAED,aAAoB,qBAAqB,IAAI,YAAY,CAAC;IAE1D,aAA6B,UAAU,IAAI,MAAM,CAAC;CACnD"}
1
+ {"version":3,"file":"FormattedQuantityDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,8BAAsB,4BAA6B,SAAQ,uBAAuB;IAChF,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAa;gBAErB,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAQ9F,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOlD,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAYtD,IAAW,aAAa,IAAI,aAAa,GAAG,SAAS,CAWpD;IAED,IAAW,UAAU,IAAI,UAAU,GAAG,SAAS,CAW9C;IAED,aAAoB,qBAAqB,IAAI,YAAY,CAAC;IAE1D,aAA6B,UAAU,IAAI,MAAM,CAAC;CACnD"}
@@ -15,8 +15,13 @@ import { IModelApp } from "../IModelApp";
15
15
  export class FormattedQuantityDescription extends BaseQuantityDescription {
16
16
  _formatterSpec;
17
17
  _parserSpec;
18
- constructor(name, displayLabel, iconSpec) {
19
- super(name, displayLabel, iconSpec);
18
+ constructor(argsOrName, displayLabel, iconSpec, kindOfQuantityName) {
19
+ if (typeof argsOrName === "string") {
20
+ super(argsOrName, displayLabel, iconSpec, kindOfQuantityName);
21
+ }
22
+ else {
23
+ super(argsOrName.name, argsOrName.displayLabel, argsOrName.iconSpec, argsOrName.kindOfQuantityName);
24
+ }
20
25
  }
21
26
  formatValue(numberValue) {
22
27
  if (this.formatterSpec) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormattedQuantityDescription.js","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAiB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAgB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AACH,MAAM,OAAgB,4BAA6B,SAAQ,uBAAuB;IACxE,cAAc,CAAiB;IAC/B,WAAW,CAAc;IAEjC,YAAY,IAAY,EAAE,YAAoB,EAAE,QAAiB;QAC/D,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAES,WAAW,CAAC,WAAmB;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjG,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,aAAa;QACtB,IAAI,IAAI,CAAC,cAAc;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;QAE7B,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9G,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,UAAU;QACnB,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;QAE1B,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxG,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CAKF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { FormatterSpec, Parser, ParserSpec } from \"@itwin/core-quantity\";\nimport { BaseQuantityDescription, ParseResults } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\n\n/**\n * Base Quantity Property Description\n * @beta\n */\nexport abstract class FormattedQuantityDescription extends BaseQuantityDescription {\n private _formatterSpec?: FormatterSpec;\n private _parserSpec?: ParserSpec;\n\n constructor(name: string, displayLabel: string, iconSpec?: string) {\n super(name, displayLabel, iconSpec);\n }\n\n protected formatValue(numberValue: number): string {\n if (this.formatterSpec) {\n return IModelApp.quantityFormatter.formatQuantity(numberValue, this.formatterSpec);\n }\n return numberValue.toFixed(2);\n }\n\n protected parseString(userInput: string): ParseResults {\n if (this.parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, this.parserSpec);\n if (Parser.isParsedQuantity(parseResult)) {\n return { value: parseResult.value };\n } else {\n return { parseError: this.parseError };\n }\n }\n return { parseError: \"no parser defined\" };\n }\n\n public get formatterSpec(): FormatterSpec | undefined {\n if (this._formatterSpec)\n return this._formatterSpec;\n\n const formatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(this.formatterQuantityType);\n if (formatterSpec) {\n this._formatterSpec = formatterSpec;\n return formatterSpec;\n }\n\n return undefined;\n }\n\n public get parserSpec(): ParserSpec | undefined {\n if (this._parserSpec)\n return this._parserSpec;\n\n const parserSpec = IModelApp.quantityFormatter.findParserSpecByQuantityType(this.formatterQuantityType);\n if (parserSpec) {\n this._parserSpec = parserSpec;\n return parserSpec;\n }\n\n return undefined;\n }\n\n public abstract get formatterQuantityType(): QuantityType;\n\n public abstract override get parseError(): string;\n}\n"]}
1
+ {"version":3,"file":"FormattedQuantityDescription.js","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAiB,MAAM,EAAc,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAgB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAazC;;;GAGG;AACH,MAAM,OAAgB,4BAA6B,SAAQ,uBAAuB;IACxE,cAAc,CAAiB;IAC/B,WAAW,CAAc;IAIjC,YAAY,UAAqD,EAAE,YAAqB,EAAE,QAAiB,EAAE,kBAA2B;QACtI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,UAAU,EAAE,YAAa,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACS,WAAW,CAAC,WAAmB;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,SAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjG,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,aAAa;QACtB,IAAI,IAAI,CAAC,cAAc;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;QAE7B,MAAM,aAAa,GAAG,SAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9G,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,UAAU;QACnB,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;QAE1B,MAAM,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxG,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CAKF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { FormatterSpec, Parser, ParserSpec } from \"@itwin/core-quantity\";\nimport { BaseQuantityDescription, ParseResults } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\n\n/**\n * @beta\n */\nexport interface FormattedQuantityDescriptionArgs {\n name: string;\n displayLabel: string;\n iconSpec?: string;\n kindOfQuantityName?: string;\n}\n\n/**\n * Base Quantity Property Description\n * @beta\n */\nexport abstract class FormattedQuantityDescription extends BaseQuantityDescription {\n private _formatterSpec?: FormatterSpec;\n private _parserSpec?: ParserSpec;\n\n constructor(args: FormattedQuantityDescriptionArgs);\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string);\n constructor(argsOrName: FormattedQuantityDescriptionArgs | string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n if (typeof argsOrName === \"string\") {\n super(argsOrName, displayLabel!, iconSpec, kindOfQuantityName);\n } else {\n super(argsOrName.name, argsOrName.displayLabel, argsOrName.iconSpec, argsOrName.kindOfQuantityName);\n }\n }\n protected formatValue(numberValue: number): string {\n if (this.formatterSpec) {\n return IModelApp.quantityFormatter.formatQuantity(numberValue, this.formatterSpec);\n }\n return numberValue.toFixed(2);\n }\n\n protected parseString(userInput: string): ParseResults {\n if (this.parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, this.parserSpec);\n if (Parser.isParsedQuantity(parseResult)) {\n return { value: parseResult.value };\n } else {\n return { parseError: this.parseError };\n }\n }\n return { parseError: \"no parser defined\" };\n }\n\n public get formatterSpec(): FormatterSpec | undefined {\n if (this._formatterSpec)\n return this._formatterSpec;\n\n const formatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(this.formatterQuantityType);\n if (formatterSpec) {\n this._formatterSpec = formatterSpec;\n return formatterSpec;\n }\n\n return undefined;\n }\n\n public get parserSpec(): ParserSpec | undefined {\n if (this._parserSpec)\n return this._parserSpec;\n\n const parserSpec = IModelApp.quantityFormatter.findParserSpecByQuantityType(this.formatterQuantityType);\n if (parserSpec) {\n this._parserSpec = parserSpec;\n return parserSpec;\n }\n\n return undefined;\n }\n\n public abstract get formatterQuantityType(): QuantityType;\n\n public abstract override get parseError(): string;\n}\n"]}
@@ -8,8 +8,11 @@ import { FormattedQuantityDescription } from "./FormattedQuantityDescription";
8
8
  * @beta
9
9
  */
10
10
  export declare class LengthDescription extends FormattedQuantityDescription {
11
- constructor(name?: string, displayLabel?: string, iconSpec?: string);
11
+ constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string);
12
12
  get formatterQuantityType(): QuantityType;
13
+ /**
14
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
15
+ */
13
16
  get quantityType(): string;
14
17
  get parseError(): string;
15
18
  }
@@ -18,8 +21,11 @@ export declare class LengthDescription extends FormattedQuantityDescription {
18
21
  * @beta
19
22
  */
20
23
  export declare class SurveyLengthDescription extends FormattedQuantityDescription {
21
- constructor(name?: string, displayLabel?: string, iconSpec?: string);
24
+ constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string);
22
25
  get formatterQuantityType(): QuantityType;
26
+ /**
27
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
28
+ */
23
29
  get quantityType(): string;
24
30
  get parseError(): string;
25
31
  }
@@ -28,8 +34,11 @@ export declare class SurveyLengthDescription extends FormattedQuantityDescriptio
28
34
  * @beta
29
35
  */
30
36
  export declare class EngineeringLengthDescription extends FormattedQuantityDescription {
31
- constructor(name?: string, displayLabel?: string, iconSpec?: string);
37
+ constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string);
32
38
  get formatterQuantityType(): QuantityType;
39
+ /**
40
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
41
+ */
33
42
  get quantityType(): string;
34
43
  get parseError(): string;
35
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LengthDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/LengthDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,4BAA4B;gBACrD,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IASnE,IAAW,qBAAqB,IAAI,YAAY,CAAgC;IAChF,IAAW,YAAY,IAAI,MAAM,CAAqB;IAEtD,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,4BAA4B;gBAC3D,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IASnE,IAAW,qBAAqB,IAAI,YAAY,CAAsC;IACtF,IAAW,YAAY,IAAI,MAAM,CAA2B;IAE5D,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI;AAED;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,4BAA4B;gBAEhE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IASnE,IAAW,qBAAqB,IAAI,YAAY,CAA2C;IAC3F,IAAW,YAAY,IAAI,MAAM,CAAgC;IAEjE,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI"}
1
+ {"version":3,"file":"LengthDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/LengthDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,4BAA4B;gBACrD,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAUhG,IAAW,qBAAqB,IAAI,YAAY,CAAgC;IAChF;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAAqB;IAEtD,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,4BAA4B;gBAC3D,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAUhG,IAAW,qBAAqB,IAAI,YAAY,CAAsC;IACtF;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAA2B;IAE5D,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI;AAED;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,4BAA4B;gBAEhE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAUhG,IAAW,qBAAqB,IAAI,YAAY,CAA2C;IAC3F;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAAgC;IAEjE,IAAW,UAAU,IAAI,MAAM,CAAiG;CACjI"}
@@ -13,11 +13,19 @@ import { FormattedQuantityDescription } from "./FormattedQuantityDescription";
13
13
  * @beta
14
14
  */
15
15
  export class LengthDescription extends FormattedQuantityDescription {
16
- constructor(name, displayLabel, iconSpec) {
16
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
17
17
  const defaultName = "length";
18
- super(name ? name : defaultName, displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
18
+ super({
19
+ name: name ? name : defaultName,
20
+ displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
21
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
22
+ iconSpec,
23
+ });
19
24
  }
20
25
  get formatterQuantityType() { return QuantityType.Length; }
26
+ /**
27
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
28
+ */
21
29
  get quantityType() { return "Length"; }
22
30
  get parseError() { return IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
23
31
  }
@@ -26,11 +34,19 @@ export class LengthDescription extends FormattedQuantityDescription {
26
34
  * @beta
27
35
  */
28
36
  export class SurveyLengthDescription extends FormattedQuantityDescription {
29
- constructor(name, displayLabel, iconSpec) {
37
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
30
38
  const defaultName = "surveyLength";
31
- super(name ? name : defaultName, displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
39
+ super({
40
+ name: name ? name : defaultName,
41
+ displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
42
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
43
+ iconSpec,
44
+ });
32
45
  }
33
46
  get formatterQuantityType() { return QuantityType.LengthSurvey; }
47
+ /**
48
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
49
+ */
34
50
  get quantityType() { return "LengthSurvey"; }
35
51
  get parseError() { return IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
36
52
  }
@@ -39,11 +55,19 @@ export class SurveyLengthDescription extends FormattedQuantityDescription {
39
55
  * @beta
40
56
  */
41
57
  export class EngineeringLengthDescription extends FormattedQuantityDescription {
42
- constructor(name, displayLabel, iconSpec) {
58
+ constructor(name, displayLabel, iconSpec, kindOfQuantityName) {
43
59
  const defaultName = "engineeringLength";
44
- super(name ? name : defaultName, displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"), iconSpec);
60
+ super({
61
+ name: name ? name : defaultName,
62
+ displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString("iModelJs:Properties.Length"),
63
+ kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : "AecUnits.LENGTH",
64
+ iconSpec,
65
+ });
45
66
  }
46
67
  get formatterQuantityType() { return QuantityType.LengthEngineering; }
68
+ /**
69
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.
70
+ */
47
71
  get quantityType() { return "LengthEngineering"; }
48
72
  get parseError() { return IModelApp.localization.getLocalizedString("iModelJs:Properties.UnableToParseLength"); }
49
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LengthDescription.js","sourceRoot":"","sources":["../../../src/properties/LengthDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,4BAA4B;IACjE,YAAY,IAAa,EAAE,YAAqB,EAAE,QAAiB;QACjE,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC7B,KAAK,CACH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EACzB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,EACrG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAW,qBAAqB,KAAmB,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,IAAW,YAAY,KAAa,OAAO,QAAQ,CAAC,CAAC,CAAC;IAEtD,IAAW,UAAU,KAAa,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC;CACjI;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,4BAA4B;IACvE,YAAY,IAAa,EAAE,YAAqB,EAAE,QAAiB;QACjE,MAAM,WAAW,GAAG,cAAc,CAAC;QACnC,KAAK,CACH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EACzB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,EACrG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAW,qBAAqB,KAAmB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IACtF,IAAW,YAAY,KAAa,OAAO,cAAc,CAAC,CAAC,CAAC;IAE5D,IAAW,UAAU,KAAa,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC;CACjI;AAED;;;GAGG;AACH,MAAM,OAAO,4BAA6B,SAAQ,4BAA4B;IAE5E,YAAY,IAAa,EAAE,YAAqB,EAAE,QAAiB;QACjE,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,KAAK,CACH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EACzB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,EACrG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAW,qBAAqB,KAAmB,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3F,IAAW,YAAY,KAAa,OAAO,mBAAmB,CAAC,CAAC,CAAC;IAEjE,IAAW,UAAU,KAAa,OAAO,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC;CACjI","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\nimport { FormattedQuantityDescription } from \"./FormattedQuantityDescription\";\n\n/**\n * Length Property Description\n * @beta\n */\nexport class LengthDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string) {\n const defaultName = \"length\";\n super(\n name ? name : defaultName,\n displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n iconSpec,\n );\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.Length; }\n public get quantityType(): string { return \"Length\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n\n/**\n * Survey Length Property Description\n * @beta\n */\nexport class SurveyLengthDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string) {\n const defaultName = \"surveyLength\";\n super(\n name ? name : defaultName,\n displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n iconSpec,\n );\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.LengthSurvey; }\n public get quantityType(): string { return \"LengthSurvey\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n\n/**\n * Engineering Length Property Description\n * @beta\n */\nexport class EngineeringLengthDescription extends FormattedQuantityDescription {\n\n constructor(name?: string, displayLabel?: string, iconSpec?: string) {\n const defaultName = \"engineeringLength\";\n super(\n name ? name : defaultName,\n displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n iconSpec,\n );\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.LengthEngineering; }\n public get quantityType(): string { return \"LengthEngineering\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n"]}
1
+ {"version":3,"file":"LengthDescription.js","sourceRoot":"","sources":["../../../src/properties/LengthDescription.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Properties\n */\n\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\nimport { FormattedQuantityDescription } from \"./FormattedQuantityDescription\";\n\n/**\n * Length Property Description\n * @beta\n */\nexport class LengthDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n const defaultName = \"length\";\n super({\n name: name ? name : defaultName,\n displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : \"AecUnits.LENGTH\",\n iconSpec,\n });\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.Length; }\n /**\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.\n */\n public get quantityType(): string { return \"Length\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n\n/**\n * Survey Length Property Description\n * @beta\n */\nexport class SurveyLengthDescription extends FormattedQuantityDescription {\n constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n const defaultName = \"surveyLength\";\n super({\n name: name ? name : defaultName,\n displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : \"AecUnits.LENGTH\",\n iconSpec,\n });\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.LengthSurvey; }\n /**\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.\n */\n public get quantityType(): string { return \"LengthSurvey\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n\n/**\n * Engineering Length Property Description\n * @beta\n */\nexport class EngineeringLengthDescription extends FormattedQuantityDescription {\n\n constructor(name?: string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n const defaultName = \"engineeringLength\";\n super({\n name: name ? name : defaultName,\n displayLabel: displayLabel ? displayLabel : IModelApp.localization.getLocalizedString(\"iModelJs:Properties.Length\"),\n kindOfQuantityName: kindOfQuantityName ? kindOfQuantityName : \"AecUnits.LENGTH\",\n iconSpec,\n });\n }\n\n public get formatterQuantityType(): QuantityType { return QuantityType.LengthEngineering; }\n /**\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `kindOfQuantityName` property instead.\n */\n public get quantityType(): string { return \"LengthEngineering\"; }\n\n public get parseError(): string { return IModelApp.localization.getLocalizedString(\"iModelJs:Properties.UnableToParseLength\"); }\n}\n"]}