@itwin/core-frontend 5.3.0-dev.8 → 5.3.0

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 (206) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  3. package/lib/cjs/ElementLocateManager.js +2 -5
  4. package/lib/cjs/ElementLocateManager.js.map +1 -1
  5. package/lib/cjs/HitDetail.d.ts +1 -24
  6. package/lib/cjs/HitDetail.d.ts.map +1 -1
  7. package/lib/cjs/HitDetail.js +0 -5
  8. package/lib/cjs/HitDetail.js.map +1 -1
  9. package/lib/cjs/IModelApp.d.ts +4 -0
  10. package/lib/cjs/IModelApp.d.ts.map +1 -1
  11. package/lib/cjs/IModelApp.js +5 -1
  12. package/lib/cjs/IModelApp.js.map +1 -1
  13. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  14. package/lib/cjs/IModeljs-css.js +4 -0
  15. package/lib/cjs/IModeljs-css.js.map +1 -1
  16. package/lib/cjs/SubCategoriesCache.d.ts +1 -1
  17. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  18. package/lib/cjs/SubCategoriesCache.js +3 -3
  19. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  20. package/lib/cjs/ViewManager.d.ts +4 -2
  21. package/lib/cjs/ViewManager.d.ts.map +1 -1
  22. package/lib/cjs/ViewManager.js +3 -1
  23. package/lib/cjs/ViewManager.js.map +1 -1
  24. package/lib/cjs/Viewport.d.ts.map +1 -1
  25. package/lib/cjs/Viewport.js +9 -3
  26. package/lib/cjs/Viewport.js.map +1 -1
  27. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  28. package/lib/cjs/common/imdl/ParseImdlDocument.js +1 -43
  29. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  30. package/lib/cjs/common/internal/Symbols.d.ts +1 -0
  31. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
  32. package/lib/cjs/common/internal/Symbols.js +1 -0
  33. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  34. package/lib/cjs/internal/cross-package.d.ts +4 -0
  35. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  36. package/lib/cjs/internal/cross-package.js +3 -1
  37. package/lib/cjs/internal/cross-package.js.map +1 -1
  38. package/lib/cjs/internal/render/RenderAreaPattern.d.ts +1 -0
  39. package/lib/cjs/internal/render/RenderAreaPattern.d.ts.map +1 -1
  40. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
  41. package/lib/cjs/internal/render/RenderGeometry.d.ts +3 -1
  42. package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -1
  43. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  44. package/lib/cjs/internal/render/RenderPlan.d.ts +3 -1
  45. package/lib/cjs/internal/render/RenderPlan.d.ts.map +1 -1
  46. package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
  47. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts +0 -2
  48. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  49. package/lib/cjs/internal/render/webgl/FrustumUniforms.js +0 -7
  50. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  51. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts +0 -9
  52. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  53. package/lib/cjs/internal/render/webgl/SceneCompositor.js +4 -67
  54. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  55. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +3 -4
  56. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  57. package/lib/cjs/internal/render/webgl/ShaderBuilder.js +3 -3
  58. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  59. package/lib/cjs/internal/render/webgl/System.d.ts +1 -1
  60. package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
  61. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  62. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
  63. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  64. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +1 -2
  65. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  66. package/lib/cjs/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  67. package/lib/cjs/internal/render/webgl/glsl/Contours.js +1 -30
  68. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  69. package/lib/cjs/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  70. package/lib/cjs/internal/render/webgl/glsl/Fragment.js +2 -7
  71. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  72. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +1 -1
  73. package/lib/cjs/internal/render/webgl/glsl/Surface.js +1 -1
  74. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +2 -0
  75. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  76. package/lib/cjs/internal/tile/DynamicIModelTile.js +3 -0
  77. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  78. package/lib/cjs/internal/tile/IModelTileTree.d.ts +2 -0
  79. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  80. package/lib/cjs/internal/tile/IModelTileTree.js +5 -0
  81. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  82. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  83. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -0
  84. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  85. package/lib/cjs/render/Pixel.d.ts +2 -13
  86. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  87. package/lib/cjs/render/Pixel.js +1 -9
  88. package/lib/cjs/render/Pixel.js.map +1 -1
  89. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +4 -0
  90. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  91. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  92. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +17 -2
  93. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  94. package/lib/cjs/tile/map/MapLayerImageryProvider.js +29 -2
  95. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  96. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +82 -26
  97. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  98. package/lib/cjs/tools/AccuDrawViewportUI.js +171 -87
  99. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  100. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  101. package/lib/cjs/tools/ToolAdmin.js +3 -0
  102. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  103. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  104. package/lib/esm/ElementLocateManager.js +2 -5
  105. package/lib/esm/ElementLocateManager.js.map +1 -1
  106. package/lib/esm/HitDetail.d.ts +1 -24
  107. package/lib/esm/HitDetail.d.ts.map +1 -1
  108. package/lib/esm/HitDetail.js +0 -5
  109. package/lib/esm/HitDetail.js.map +1 -1
  110. package/lib/esm/IModelApp.d.ts +4 -0
  111. package/lib/esm/IModelApp.d.ts.map +1 -1
  112. package/lib/esm/IModelApp.js +5 -1
  113. package/lib/esm/IModelApp.js.map +1 -1
  114. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  115. package/lib/esm/IModeljs-css.js +4 -0
  116. package/lib/esm/IModeljs-css.js.map +1 -1
  117. package/lib/esm/SubCategoriesCache.d.ts +1 -1
  118. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  119. package/lib/esm/SubCategoriesCache.js +3 -3
  120. package/lib/esm/SubCategoriesCache.js.map +1 -1
  121. package/lib/esm/ViewManager.d.ts +4 -2
  122. package/lib/esm/ViewManager.d.ts.map +1 -1
  123. package/lib/esm/ViewManager.js +3 -1
  124. package/lib/esm/ViewManager.js.map +1 -1
  125. package/lib/esm/Viewport.d.ts.map +1 -1
  126. package/lib/esm/Viewport.js +9 -3
  127. package/lib/esm/Viewport.js.map +1 -1
  128. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  129. package/lib/esm/common/imdl/ParseImdlDocument.js +1 -43
  130. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  131. package/lib/esm/common/internal/Symbols.d.ts +1 -0
  132. package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
  133. package/lib/esm/common/internal/Symbols.js +1 -0
  134. package/lib/esm/common/internal/Symbols.js.map +1 -1
  135. package/lib/esm/internal/cross-package.d.ts +4 -0
  136. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  137. package/lib/esm/internal/cross-package.js +1 -0
  138. package/lib/esm/internal/cross-package.js.map +1 -1
  139. package/lib/esm/internal/render/RenderAreaPattern.d.ts +1 -0
  140. package/lib/esm/internal/render/RenderAreaPattern.d.ts.map +1 -1
  141. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
  142. package/lib/esm/internal/render/RenderGeometry.d.ts +3 -1
  143. package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -1
  144. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  145. package/lib/esm/internal/render/RenderPlan.d.ts +3 -1
  146. package/lib/esm/internal/render/RenderPlan.d.ts.map +1 -1
  147. package/lib/esm/internal/render/RenderPlan.js.map +1 -1
  148. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts +0 -2
  149. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  150. package/lib/esm/internal/render/webgl/FrustumUniforms.js +1 -8
  151. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  152. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts +0 -9
  153. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  154. package/lib/esm/internal/render/webgl/SceneCompositor.js +4 -67
  155. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  156. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +3 -4
  157. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  158. package/lib/esm/internal/render/webgl/ShaderBuilder.js +3 -3
  159. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  160. package/lib/esm/internal/render/webgl/System.d.ts +1 -1
  161. package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
  162. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  163. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
  164. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  165. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +1 -2
  166. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  167. package/lib/esm/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  168. package/lib/esm/internal/render/webgl/glsl/Contours.js +1 -30
  169. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  170. package/lib/esm/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  171. package/lib/esm/internal/render/webgl/glsl/Fragment.js +2 -7
  172. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  173. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +1 -1
  174. package/lib/esm/internal/render/webgl/glsl/Surface.js +1 -1
  175. package/lib/esm/internal/tile/DynamicIModelTile.d.ts +2 -0
  176. package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  177. package/lib/esm/internal/tile/DynamicIModelTile.js +3 -0
  178. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  179. package/lib/esm/internal/tile/IModelTileTree.d.ts +2 -0
  180. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  181. package/lib/esm/internal/tile/IModelTileTree.js +5 -0
  182. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  183. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  184. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -0
  185. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  186. package/lib/esm/render/Pixel.d.ts +2 -13
  187. package/lib/esm/render/Pixel.d.ts.map +1 -1
  188. package/lib/esm/render/Pixel.js +1 -9
  189. package/lib/esm/render/Pixel.js.map +1 -1
  190. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +4 -0
  191. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  192. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  193. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +17 -2
  194. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  195. package/lib/esm/tile/map/MapLayerImageryProvider.js +29 -2
  196. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  197. package/lib/esm/tools/AccuDrawViewportUI.d.ts +82 -26
  198. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  199. package/lib/esm/tools/AccuDrawViewportUI.js +171 -87
  200. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  201. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  202. package/lib/esm/tools/ToolAdmin.js +3 -0
  203. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  204. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  205. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  206. package/package.json +22 -23
@@ -33,10 +33,6 @@ var Pixel;
33
33
  batchType;
34
34
  /** The iModel from which the geometry producing the pixel originated. */
35
35
  iModel;
36
- /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, that generated this pixel.
37
- * @beta
38
- */
39
- contour;
40
36
  /** @internal */
41
37
  transformFromIModel;
42
38
  /** @internal */
@@ -70,7 +66,6 @@ var Pixel;
70
66
  this.tileId = args.tileId;
71
67
  this.viewAttachmentId = args.viewAttachmentId;
72
68
  this.transformFromIModel = args.transformFromIModel;
73
- this.contour = args.contour;
74
69
  }
75
70
  /** The Id of the element that produced the pixel. */
76
71
  get elementId() {
@@ -135,7 +130,6 @@ var Pixel;
135
130
  sourceIModel: this.iModel,
136
131
  transformFromSourceIModel: this.transformFromIModel,
137
132
  path,
138
- contour: this.contour,
139
133
  };
140
134
  }
141
135
  }
@@ -179,10 +173,8 @@ var Pixel;
179
173
  Selector[Selector["Feature"] = 1] = "Feature";
180
174
  /** Select the type and planarity of geometry which produced each pixel as well as the fraction of its distance between the near and far planes. */
181
175
  Selector[Selector["GeometryAndDistance"] = 4] = "GeometryAndDistance";
182
- /** Select the [[ContourHit]]s describing which if any contour line produced each pixel. */
183
- Selector[Selector["Contours"] = 8] = "Contours";
184
176
  /** Select all aspects of each pixel. */
185
- Selector[Selector["All"] = 13] = "All";
177
+ Selector[Selector["All"] = 5] = "All";
186
178
  })(Selector = Pixel.Selector || (Pixel.Selector = {}));
187
179
  })(Pixel || (exports.Pixel = Pixel = {}));
188
180
  //# sourceMappingURL=Pixel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pixel.js","sourceRoot":"","sources":["../../../src/render/Pixel.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 Rendering\n */\n\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\nimport { BatchType, Feature, GeometryClass, ModelFeature } from \"@itwin/core-common\";\nimport { ContourHit, HitPath, HitPriority } from \"../HitDetail\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport type { Viewport } from \"../Viewport\";\nimport { Transform } from \"@itwin/core-geometry\";\n\n/** Describes aspects of a pixel as read from a [[Viewport]].\n * @see [[Viewport.readPixels]].\n * @public\n * @extensions\n */\nexport namespace Pixel {\n /** Describes a single pixel within a [[Pixel.Buffer]]. */\n export class Data {\n /** The feature that produced the pixel. */\n public readonly feature?: Feature;\n public readonly modelId?: Id64String;\n /** The pixel's depth in [[CoordSystem.Npc]] coordinates (0 to 1), or -1 if depth was not written or not requested. */\n public readonly distanceFraction: number;\n /** The type of geometry that produced the pixel. */\n public readonly type: GeometryType;\n /** The planarity of the geometry that produced the pixel. */\n public readonly planarity: Planarity;\n /** @internal */\n public readonly batchType?: BatchType;\n /** The iModel from which the geometry producing the pixel originated. */\n public readonly iModel?: IModelConnection;\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, that generated this pixel.\n * @beta\n */\n public readonly contour?: ContourHit;\n /** @internal */\n public readonly transformFromIModel?: Transform;\n /** @internal */\n public readonly tileId?: string;\n /** The Id of the [ViewAttachment]($backend), if any, from which the pixel originated.\n * @beta\n */\n public readonly viewAttachmentId?: Id64String;\n /** True if the pixel originated from a [[SpatialViewState]] attached via a [SectionDrawing]($backend).\n * @beta\n */\n public readonly inSectionDrawingAttachment: boolean;\n /** @internal */\n public get isClassifier(): boolean {\n return undefined !== this.batchType && BatchType.Primary !== this.batchType;\n }\n\n /** @internal */\n public constructor(args?: {\n feature?: ModelFeature;\n distanceFraction?: number;\n type?: GeometryType;\n planarity?: Planarity;\n batchType?: BatchType;\n iModel?: IModelConnection;\n tileId?: string;\n viewAttachmentId?: string;\n inSectionDrawingAttachment?: boolean;\n transformFromIModel?: Transform;\n contour?: ContourHit;\n }) {\n this.distanceFraction = args?.distanceFraction ?? -1;\n this.type = args?.type ?? GeometryType.Unknown;\n this.planarity = args?.planarity ?? Planarity.Unknown;\n this.inSectionDrawingAttachment = true === args?.inSectionDrawingAttachment;\n\n if (!args) {\n return;\n }\n\n if (args.feature) {\n this.feature = new Feature(args.feature.elementId, args.feature.subCategoryId, args.feature.geometryClass);\n }\n\n this.modelId = args.feature?.modelId;\n this.iModel = args.iModel;\n this.tileId = args.tileId;\n this.viewAttachmentId = args.viewAttachmentId;\n this.transformFromIModel = args.transformFromIModel;\n this.contour = args.contour;\n }\n\n /** The Id of the element that produced the pixel. */\n public get elementId(): Id64String | undefined {\n return this.feature?.elementId;\n }\n\n /** The Id of the [SubCategory]($backend) that produced the pixel. */\n public get subCategoryId(): Id64String | undefined {\n return this.feature?.subCategoryId;\n }\n\n /** The class of geometry that produced the pixel. */\n public get geometryClass(): GeometryClass | undefined {\n return this.feature?.geometryClass;\n }\n\n /** Computes the [[HitPriority]] of this pixel based on its [[type]] and [[planarity]]. */\n public computeHitPriority(): HitPriority {\n switch (this.type) {\n case Pixel.GeometryType.Surface:\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\n case Pixel.GeometryType.Linear:\n return HitPriority.WireEdge;\n case Pixel.GeometryType.Edge:\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\n case Pixel.GeometryType.Silhouette:\n return HitPriority.SilhouetteEdge;\n default:\n return HitPriority.Unknown;\n }\n }\n\n /** Convert this pixel to a [[Pixel.HitProps]] suitable for constructing a [[HitDetail]].\n * @param viewport The viewport in which the hit originated.\n */\n public toHitProps(viewport: Viewport): Pixel.HitProps {\n let path: HitPath | undefined;\n if (this.viewAttachmentId) {\n const attachmentViewport = viewport.view.getAttachmentViewport({ viewAttachmentId: this.viewAttachmentId });\n if (attachmentViewport) {\n path = {\n viewAttachment: {\n viewport: attachmentViewport,\n id: this.viewAttachmentId,\n },\n };\n }\n }\n\n if (this.inSectionDrawingAttachment) {\n const checkVp = path?.viewAttachment?.viewport ?? viewport;\n const attachVp = checkVp.view.getAttachmentViewport({ inSectionDrawingAttachment: true });\n if (attachVp) {\n path = path ?? { };\n path.sectionDrawingAttachment = { viewport: attachVp };\n }\n }\n\n return {\n sourceId: this.elementId ?? Id64.invalid,\n priority: this.computeHitPriority(),\n distFraction: this.distanceFraction,\n subCategoryId: this.subCategoryId,\n geometryClass: this.geometryClass,\n modelId: this.modelId,\n tileId: this.tileId,\n isClassifier: this.isClassifier,\n sourceIModel: this.iModel,\n transformFromSourceIModel: this.transformFromIModel,\n path,\n contour: this.contour,\n };\n }\n }\n\n /** Describes a subset of [[HitDetailProps]] computed from a [[Pixel.Data]], suitable for constructing a [[HitDetail]].\n * For example, the following function creates a `HitDetail` from a `Pixel.Data` and other hit information:\n * ```ts\n * function makeHitDetail(pixel: Pixel.Data, viewport: ScreenViewport, testPoint: Point3d, hitSource: HitSource, hitPoint: Point3d, distXY: number): HitDetail {\n * return new HitDetail({\n * ...pixel.toHitProps(viewport),\n * viewport, testPoint, hitSource, hitPoint, distXY,\n * };\n * }\n * ```\n * @see [[Data.toHitProps]] to convert a [[Pixel.Data]] to a `HitProps`.\n * @public\n */\n export interface HitProps {\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n sourceId: Id64String;\n /** The hit geometry priority/classification. */\n priority: HitPriority;\n /** The distance in view coordinates between the hit and the near plane. */\n distFraction: number;\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n subCategoryId?: Id64String;\n /** The class of the hit geometry. */\n geometryClass?: GeometryClass;\n /** The Id of the [[ModelState]] from which the hit originated. */\n modelId?: Id64String;\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n sourceIModel?: IModelConnection;\n /** @internal */\n transformFromSourceIModel?: Transform;\n /** @internal chiefly for debugging */\n tileId?: string;\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n isClassifier?: boolean;\n /** Path through which the hit was located.\n * @beta\n */\n path?: HitPath;\n /** Information about the [contour line]($docs/learning/display/ContourDisplay.md), if any, from which the hit originated.\n * @beta\n */\n contour?: ContourHit;\n }\n\n /** Describes the type of geometry that produced the [[Pixel.Data]]. */\n export enum GeometryType {\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the type could not be determined. */\n Unknown, // Geometry was not selected, or type could not be determined\n /** No geometry was rendered to this pixel. */\n None,\n /** A surface produced this pixel. */\n Surface,\n /** A point primitive or polyline produced this pixel. */\n Linear,\n /** This pixel was produced by an edge of a surface. */\n Edge,\n /** This pixel was produced by a silhouette edge of a curved surface. */\n Silhouette,\n }\n\n /** Describes the planarity of the foremost geometry which produced the pixel. */\n export enum Planarity {\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the planarity could not be determined. */\n Unknown,\n /** No geometry was rendered to this pixel. */\n None,\n /** Planar geometry produced this pixel. */\n Planar,\n /** Non-planar geometry produced this pixel. */\n NonPlanar,\n }\n\n /**\n * Bit-mask by which callers of [[Viewport.readPixels]] specify which aspects are of interest.\n * Aspects not specified will be omitted from the returned data.\n */\n export enum Selector {\n None = 0,\n /** Select the [[Feature]] which produced each pixel. */\n Feature = 1 << 0, // eslint-disable-line @typescript-eslint/no-shadow\n /** Select the type and planarity of geometry which produced each pixel as well as the fraction of its distance between the near and far planes. */\n GeometryAndDistance = 1 << 2,\n /** Select the [[ContourHit]]s describing which if any contour line produced each pixel. */\n Contours = 1 << 3,\n /** Select all aspects of each pixel. */\n All = GeometryAndDistance | Feature | Contours,\n }\n\n /** A rectangular array of pixels as read from a [[Viewport]]'s frame buffer. Each pixel is represented as a [[Pixel.Data]] object.\n * The contents of the pixel buffer will be specified using device pixels, not CSS pixels. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\n * @see [[Viewport.readPixels]].\n */\n export interface Buffer {\n /** Retrieve the data associated with the pixel at (x,y) in view coordinates. */\n getPixel(x: number, y: number): Data;\n }\n\n /** A function which receives the results of a call to [[Viewport.readPixels]].\n * @note The contents of the buffer become invalid once the Receiver function returns. Do not store a reference to it.\n */\n export type Receiver = (pixels: Buffer | undefined) => void;\n}\n"]}
1
+ {"version":3,"file":"Pixel.js","sourceRoot":"","sources":["../../../src/render/Pixel.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 Rendering\n */\n\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\nimport { BatchType, Feature, GeometryClass, ModelFeature } from \"@itwin/core-common\";\nimport { HitPath, HitPriority } from \"../HitDetail\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport type { Viewport } from \"../Viewport\";\nimport { Transform } from \"@itwin/core-geometry\";\n\n/** Describes aspects of a pixel as read from a [[Viewport]].\n * @see [[Viewport.readPixels]].\n * @public\n * @extensions\n */\nexport namespace Pixel {\n /** Describes a single pixel within a [[Pixel.Buffer]]. */\n export class Data {\n /** The feature that produced the pixel. */\n public readonly feature?: Feature;\n public readonly modelId?: Id64String;\n /** The pixel's depth in [[CoordSystem.Npc]] coordinates (0 to 1), or -1 if depth was not written or not requested. */\n public readonly distanceFraction: number;\n /** The type of geometry that produced the pixel. */\n public readonly type: GeometryType;\n /** The planarity of the geometry that produced the pixel. */\n public readonly planarity: Planarity;\n /** @internal */\n public readonly batchType?: BatchType;\n /** The iModel from which the geometry producing the pixel originated. */\n public readonly iModel?: IModelConnection;\n /** @internal */\n public readonly transformFromIModel?: Transform;\n /** @internal */\n public readonly tileId?: string;\n /** The Id of the [ViewAttachment]($backend), if any, from which the pixel originated.\n * @beta\n */\n public readonly viewAttachmentId?: Id64String;\n /** True if the pixel originated from a [[SpatialViewState]] attached via a [SectionDrawing]($backend).\n * @beta\n */\n public readonly inSectionDrawingAttachment: boolean;\n /** @internal */\n public get isClassifier(): boolean {\n return undefined !== this.batchType && BatchType.Primary !== this.batchType;\n }\n\n /** @internal */\n public constructor(args?: {\n feature?: ModelFeature;\n distanceFraction?: number;\n type?: GeometryType;\n planarity?: Planarity;\n batchType?: BatchType;\n iModel?: IModelConnection;\n tileId?: string;\n viewAttachmentId?: string;\n inSectionDrawingAttachment?: boolean;\n transformFromIModel?: Transform;\n }) {\n this.distanceFraction = args?.distanceFraction ?? -1;\n this.type = args?.type ?? GeometryType.Unknown;\n this.planarity = args?.planarity ?? Planarity.Unknown;\n this.inSectionDrawingAttachment = true === args?.inSectionDrawingAttachment;\n\n if (!args) {\n return;\n }\n\n if (args.feature) {\n this.feature = new Feature(args.feature.elementId, args.feature.subCategoryId, args.feature.geometryClass);\n }\n\n this.modelId = args.feature?.modelId;\n this.iModel = args.iModel;\n this.tileId = args.tileId;\n this.viewAttachmentId = args.viewAttachmentId;\n this.transformFromIModel = args.transformFromIModel;\n }\n\n /** The Id of the element that produced the pixel. */\n public get elementId(): Id64String | undefined {\n return this.feature?.elementId;\n }\n\n /** The Id of the [SubCategory]($backend) that produced the pixel. */\n public get subCategoryId(): Id64String | undefined {\n return this.feature?.subCategoryId;\n }\n\n /** The class of geometry that produced the pixel. */\n public get geometryClass(): GeometryClass | undefined {\n return this.feature?.geometryClass;\n }\n\n /** Computes the [[HitPriority]] of this pixel based on its [[type]] and [[planarity]]. */\n public computeHitPriority(): HitPriority {\n switch (this.type) {\n case Pixel.GeometryType.Surface:\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\n case Pixel.GeometryType.Linear:\n return HitPriority.WireEdge;\n case Pixel.GeometryType.Edge:\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\n case Pixel.GeometryType.Silhouette:\n return HitPriority.SilhouetteEdge;\n default:\n return HitPriority.Unknown;\n }\n }\n\n /** Convert this pixel to a [[Pixel.HitProps]] suitable for constructing a [[HitDetail]].\n * @param viewport The viewport in which the hit originated.\n */\n public toHitProps(viewport: Viewport): Pixel.HitProps {\n let path: HitPath | undefined;\n if (this.viewAttachmentId) {\n const attachmentViewport = viewport.view.getAttachmentViewport({ viewAttachmentId: this.viewAttachmentId });\n if (attachmentViewport) {\n path = {\n viewAttachment: {\n viewport: attachmentViewport,\n id: this.viewAttachmentId,\n },\n };\n }\n }\n\n if (this.inSectionDrawingAttachment) {\n const checkVp = path?.viewAttachment?.viewport ?? viewport;\n const attachVp = checkVp.view.getAttachmentViewport({ inSectionDrawingAttachment: true });\n if (attachVp) {\n path = path ?? { };\n path.sectionDrawingAttachment = { viewport: attachVp };\n }\n }\n\n return {\n sourceId: this.elementId ?? Id64.invalid,\n priority: this.computeHitPriority(),\n distFraction: this.distanceFraction,\n subCategoryId: this.subCategoryId,\n geometryClass: this.geometryClass,\n modelId: this.modelId,\n tileId: this.tileId,\n isClassifier: this.isClassifier,\n sourceIModel: this.iModel,\n transformFromSourceIModel: this.transformFromIModel,\n path,\n };\n }\n }\n\n /** Describes a subset of [[HitDetailProps]] computed from a [[Pixel.Data]], suitable for constructing a [[HitDetail]].\n * For example, the following function creates a `HitDetail` from a `Pixel.Data` and other hit information:\n * ```ts\n * function makeHitDetail(pixel: Pixel.Data, viewport: ScreenViewport, testPoint: Point3d, hitSource: HitSource, hitPoint: Point3d, distXY: number): HitDetail {\n * return new HitDetail({\n * ...pixel.toHitProps(viewport),\n * viewport, testPoint, hitSource, hitPoint, distXY,\n * };\n * }\n * ```\n * @see [[Data.toHitProps]] to convert a [[Pixel.Data]] to a `HitProps`.\n * @public\n */\n export interface HitProps {\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\n sourceId: Id64String;\n /** The hit geometry priority/classification. */\n priority: HitPriority;\n /** The distance in view coordinates between the hit and the near plane. */\n distFraction: number;\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\n subCategoryId?: Id64String;\n /** The class of the hit geometry. */\n geometryClass?: GeometryClass;\n /** The Id of the [[ModelState]] from which the hit originated. */\n modelId?: Id64String;\n /** The IModelConnection from which the hit originated.\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\n * other than the one associated with the viewport.\n * @internal\n */\n sourceIModel?: IModelConnection;\n /** @internal */\n transformFromSourceIModel?: Transform;\n /** @internal chiefly for debugging */\n tileId?: string;\n /** True if the hit originated from a reality model classifier.\n * @alpha\n */\n isClassifier?: boolean;\n /** Path through which the hit was located.\n * @beta\n */\n path?: HitPath;\n }\n\n /** Describes the type of geometry that produced the [[Pixel.Data]]. */\n export enum GeometryType {\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the type could not be determined. */\n Unknown, // Geometry was not selected, or type could not be determined\n /** No geometry was rendered to this pixel. */\n None,\n /** A surface produced this pixel. */\n Surface,\n /** A point primitive or polyline produced this pixel. */\n Linear,\n /** This pixel was produced by an edge of a surface. */\n Edge,\n /** This pixel was produced by a silhouette edge of a curved surface. */\n Silhouette,\n }\n\n /** Describes the planarity of the foremost geometry which produced the pixel. */\n export enum Planarity {\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the planarity could not be determined. */\n Unknown,\n /** No geometry was rendered to this pixel. */\n None,\n /** Planar geometry produced this pixel. */\n Planar,\n /** Non-planar geometry produced this pixel. */\n NonPlanar,\n }\n\n /**\n * Bit-mask by which callers of [[Viewport.readPixels]] specify which aspects are of interest.\n * Aspects not specified will be omitted from the returned data.\n */\n export enum Selector {\n None = 0,\n /** Select the [[Feature]] which produced each pixel. */\n Feature = 1 << 0, // eslint-disable-line @typescript-eslint/no-shadow\n /** Select the type and planarity of geometry which produced each pixel as well as the fraction of its distance between the near and far planes. */\n GeometryAndDistance = 1 << 2,\n /** Select all aspects of each pixel. */\n All = GeometryAndDistance | Feature,\n }\n\n /** A rectangular array of pixels as read from a [[Viewport]]'s frame buffer. Each pixel is represented as a [[Pixel.Data]] object.\n * The contents of the pixel buffer will be specified using device pixels, not CSS pixels. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\n * @see [[Viewport.readPixels]].\n */\n export interface Buffer {\n /** Retrieve the data associated with the pixel at (x,y) in view coordinates. */\n getPixel(x: number, y: number): Data;\n }\n\n /** A function which receives the results of a call to [[Viewport.readPixels]].\n * @note The contents of the buffer become invalid once the Receiver function returns. Do not store a reference to it.\n */\n export type Receiver = (pixels: Buffer | undefined) => void;\n}\n"]}
@@ -18,6 +18,10 @@ export interface MapLayerAccessToken {
18
18
  /** @beta */
19
19
  export interface MapLayerAccessTokenParams {
20
20
  mapLayerUrl: URL;
21
+ /**
22
+ * Optional portal URL for ArcGIS services. If set overrides the portal inferred from the mapLayerUrl
23
+ */
24
+ portal?: string;
21
25
  userName?: string;
22
26
  password?: string;
23
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerAuthentication.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerAuthentication.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY;AACZ,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,YAAY;AACZ,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED,YAAY;AACZ,MAAM,WAAW,mBAAmB;IAElC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,YAAY;AACZ,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,GAAG,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,YAAY;AACZ,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC5F,uBAAuB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAC1F,eAAe,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAEtD,iBAAiB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"MapLayerAuthentication.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerAuthentication.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY;AACZ,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,YAAY;AACZ,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED,YAAY;AACZ,MAAM,WAAW,mBAAmB;IAElC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,YAAY;AACZ,MAAM,WAAW,yBAAyB;IAExC,WAAW,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,YAAY;AACZ,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAC5F,uBAAuB,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAC1F,eAAe,CAAC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAEtD,iBAAiB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerAuthentication.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerAuthentication.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 MapLayers\n */\n\nimport { BeEvent, Listener } from \"@itwin/core-bentley\";\n\n/** @beta */\nexport interface MapLayerTokenEndpoint {\n getLoginUrl(stateData?: any): string | undefined;\n getUrl(): string;\n}\n\n/** @beta */\nexport interface MapLayerAuthenticationInfo {\n tokenEndpoint?: MapLayerTokenEndpoint;\n}\n\n/** @beta */\nexport interface MapLayerAccessToken {\n // The generated token.\n token: string;\n}\n\n/** @beta */\nexport interface MapLayerAccessTokenParams {\n mapLayerUrl: URL;\n\n // credentials are used to generate non-oauth tokens (i.e ArcGIS legacy tokens)\n userName?: string;\n password?: string;\n}\n\n/** @beta */\nexport interface MapLayerAccessClient {\n getAccessToken(params: MapLayerAccessTokenParams): Promise<MapLayerAccessToken | undefined>;\n getTokenServiceEndPoint?(mapLayerUrl: string): Promise<MapLayerTokenEndpoint | undefined>;\n invalidateToken?(token: MapLayerAccessToken): boolean;\n\n onOAuthProcessEnd?: BeEvent<Listener>;\n}\n\n"]}
1
+ {"version":3,"file":"MapLayerAuthentication.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerAuthentication.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 MapLayers\n */\n\nimport { BeEvent, Listener } from \"@itwin/core-bentley\";\n\n/** @beta */\nexport interface MapLayerTokenEndpoint {\n getLoginUrl(stateData?: any): string | undefined;\n getUrl(): string;\n}\n\n/** @beta */\nexport interface MapLayerAuthenticationInfo {\n tokenEndpoint?: MapLayerTokenEndpoint;\n}\n\n/** @beta */\nexport interface MapLayerAccessToken {\n // The generated token.\n token: string;\n}\n\n/** @beta */\nexport interface MapLayerAccessTokenParams {\n /* @deprecated in 5.2.0 - will not be removed until after 2026-10-09. Use `portal` instead */\n mapLayerUrl: URL;\n\n /**\n * Optional portal URL for ArcGIS services. If set overrides the portal inferred from the mapLayerUrl\n */\n portal?: string;\n\n // credentials are used to generate non-oauth tokens (i.e ArcGIS legacy tokens)\n userName?: string;\n password?: string;\n}\n\n/** @beta */\nexport interface MapLayerAccessClient {\n getAccessToken(params: MapLayerAccessTokenParams): Promise<MapLayerAccessToken | undefined>;\n getTokenServiceEndPoint?(mapLayerUrl: string): Promise<MapLayerTokenEndpoint | undefined>;\n invalidateToken?(token: MapLayerAccessToken): boolean;\n\n onOAuthProcessEnd?: BeEvent<Listener>;\n}\n\n"]}
@@ -42,7 +42,10 @@ export declare abstract class MapLayerImageryProvider {
42
42
  protected readonly onFirstRequestCompleted: BeEvent<() => void>;
43
43
  /** @internal */
44
44
  protected _firstRequestPromise: Promise<void> | undefined;
45
- /** @internal */
45
+ /**
46
+ * The status of the map layer imagery provider.
47
+ * @public @preview
48
+ */
46
49
  get status(): MapLayerImageryProviderStatus;
47
50
  /** Determine if this provider supports map feature info.
48
51
  * For example, this can be used to show the map feature info tool only when a provider is registered to support it.
@@ -62,7 +65,19 @@ export declare abstract class MapLayerImageryProvider {
62
65
  get mutualExclusiveSubLayer(): boolean;
63
66
  /** @internal */
64
67
  get useGeographicTilingScheme(): boolean;
65
- cartoRange?: MapCartoRectangle;
68
+ private _cartoRange?;
69
+ /** Validates a cartographic range for NaN and infinite values.
70
+ * @param range The cartographic range to validate.
71
+ * @returns true if the range is valid, false otherwise.
72
+ * @internal
73
+ */
74
+ private static isRangeValid;
75
+ /** Gets or sets the cartographic range for this provider.
76
+ * When setting, if the range is invalid (contains NaN or infinite values), it will be stored as undefined.
77
+ * When getting, returns undefined if the range was set to an invalid value.
78
+ */
79
+ get cartoRange(): MapCartoRectangle | undefined;
80
+ set cartoRange(range: MapCartoRectangle | undefined);
66
81
  /**
67
82
  * This value is used internally for various computations, this should not get overriden.
68
83
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapLayerImageryProvider.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,10 @@ class MapLayerImageryProvider {
48
48
  onFirstRequestCompleted = new core_bentley_1.BeEvent();
49
49
  /** @internal */
50
50
  _firstRequestPromise;
51
- /** @internal */
51
+ /**
52
+ * The status of the map layer imagery provider.
53
+ * @public @preview
54
+ */
52
55
  get status() { return this._status; }
53
56
  /** Determine if this provider supports map feature info.
54
57
  * For example, this can be used to show the map feature info tool only when a provider is registered to support it.
@@ -68,7 +71,31 @@ class MapLayerImageryProvider {
68
71
  get mutualExclusiveSubLayer() { return false; }
69
72
  /** @internal */
70
73
  get useGeographicTilingScheme() { return false; }
71
- cartoRange;
74
+ _cartoRange;
75
+ /** Validates a cartographic range for NaN and infinite values.
76
+ * @param range The cartographic range to validate.
77
+ * @returns true if the range is valid, false otherwise.
78
+ * @internal
79
+ */
80
+ static isRangeValid(range) {
81
+ if (!range) {
82
+ return false;
83
+ }
84
+ return !Number.isNaN(range.low.x) && !Number.isNaN(range.low.y) &&
85
+ !Number.isNaN(range.high.x) && !Number.isNaN(range.high.y) &&
86
+ Number.isFinite(range.low.x) && Number.isFinite(range.low.y) &&
87
+ Number.isFinite(range.high.x) && Number.isFinite(range.high.y);
88
+ }
89
+ /** Gets or sets the cartographic range for this provider.
90
+ * When setting, if the range is invalid (contains NaN or infinite values), it will be stored as undefined.
91
+ * When getting, returns undefined if the range was set to an invalid value.
92
+ */
93
+ get cartoRange() {
94
+ return this._cartoRange;
95
+ }
96
+ set cartoRange(range) {
97
+ this._cartoRange = MapLayerImageryProvider.isRangeValid(range) ? range : undefined;
98
+ }
72
99
  /**
73
100
  * This value is used internally for various computations, this should not get overriden.
74
101
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.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 MapLayers\n */\n\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\nimport { Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\nimport { Angle } from \"@itwin/core-geometry\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\nimport { ScreenViewport } from \"../../Viewport\";\nimport { appendQueryParams, GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\nimport { HitDetail } from \"../../HitDetail\";\nimport { headersIncludeAuthMethod, setBasicAuthorization, setRequestTimeout } from \"../../request/utils\";\nimport { DecorateContext } from \"../../ViewContext\";\n\n/** @internal */\nconst tileImageSize = 256, untiledImageSize = 256;\nconst earthRadius = 6378137;\nconst doDebugToolTips = false;\n\n/** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.\n * @public\n */\nexport enum MapLayerImageryProviderStatus {\n Valid,\n RequireAuth,\n}\n\n/** @internal */\nexport interface WGS84Extent\n{\n longitudeLeft: number;\n longitudeRight: number;\n latitudeTop: number;\n latitudeBottom: number;\n}\n\n/** Abstract class for map layer imagery providers.\n * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.\n * @beta\n */\nexport abstract class MapLayerImageryProvider {\n protected _hasSuccessfullyFetchedTile = false;\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\n\n /** @internal */\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\n\n /** @internal */\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\n\n /** @internal */\n private _status = MapLayerImageryProviderStatus.Valid;\n\n /** @internal */\n protected _includeUserCredentials = false;\n\n /** @internal */\n protected readonly onFirstRequestCompleted = new BeEvent<() => void>();\n\n /** @internal */\n protected _firstRequestPromise: Promise<void>|undefined;\n\n /** @internal */\n public get status() { return this._status; }\n\n /** Determine if this provider supports map feature info.\n * For example, this can be used to show the map feature info tool only when a provider is registered to support it.\n * @returns true if provider supports map feature info else return false.\n * @public\n */\n public get supportsMapFeatureInfo(): boolean { return false; }\n\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }\n\n /** @internal */\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\n\n /** @internal */\n public get maximumScreenSize() { return 2 * this.tileSize; }\n\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\n\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\n\n /** @internal */\n public get usesCachedTiles() { return this._usesCachedTiles; }\n\n public get mutualExclusiveSubLayer(): boolean { return false; }\n\n /** @internal */\n public get useGeographicTilingScheme() { return false; }\n\n public cartoRange?: MapCartoRectangle;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMinimumZoomLevel = 0;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMaximumZoomLevel = 22;\n\n /** @internal */\n protected get _filterByCartoRange() { return true; }\n\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\n }\n\n /**\n * Initialize the provider by loading the first tile at its default maximum zoom level.\n * @beta\n */\n public async initialize(): Promise<void> {\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\n if (tileData !== undefined)\n this._missingTileData = tileData.data as Uint8Array;\n });\n }\n\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\n\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\n\n /**\n * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.\n * @param _cards Logo cards HTML element that may contain custom data attributes.\n * @param _viewport Viewport to add logo cards to.\n * @beta\n */\n public async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n /** @internal */\n protected _missingTileData?: Uint8Array;\n\n /** @internal */\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\n\n /** @internal */\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\n\n /** @internal */\n public getPotentialChildIds(quadId: QuadId): QuadId[] {\n const childLevel = quadId.level + 1;\n return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\n }\n\n /**\n * Get child IDs of a quad and generate tiles based on these child IDs.\n * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.\n * @param quadId quad to generate child IDs for.\n * @param resolveChildren Function that creates tiles from child IDs.\n * @beta\n */\n protected _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n resolveChildren(this.getPotentialChildIds(quadId));\n }\n\n /** @internal */\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\n tile.setLeaf();\n return;\n }\n this._generateChildIds(tile.quadId, resolveChildren);\n }\n\n /**\n * Get tooltip text for a specific quad and cartographic position.\n * @param strings List of strings to contain tooltip text.\n * @param quadId Quad ID to get tooltip for.\n * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.\n * @param tree Tree associated with the quad to get the tooltip for.\n * @internal\n */\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\n if (doDebugToolTips) {\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\n }\n }\n\n /** @internal */\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree, _hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<void> {\n // default implementation; simply return an empty feature info\n featureInfos.push({ layerName: this._settings.name });\n }\n\n /** @internal */\n public decorate(_context: DecorateContext): void {\n }\n\n /** @internal */\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\n const arrayBuffer = await tileResponse.arrayBuffer();\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\n if (!byteArray || (byteArray.length === 0))\n return undefined;\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\n return undefined;\n\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\n let imageFormat: ImageSourceFormat | undefined;\n if (contentType) {\n // Note: 'includes' is used here instead of exact comparison because we encountered\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\n if (contentType.includes(\"image/jpeg\"))\n imageFormat = ImageSourceFormat.Jpeg;\n else if (contentType.includes(\"image/png\"))\n imageFormat = ImageSourceFormat.Png;\n }\n\n if (imageFormat !== undefined)\n return new ImageSource(byteArray, imageFormat);\n\n assert(false, \"Invalid tile content type\");\n return undefined;\n }\n\n /**\n * Change the status of this provider.\n * Sub-classes should override 'onStatusUpdated' instead of this method.\n * @internal\n */\n public setStatus(status: MapLayerImageryProviderStatus) {\n if (this._status !== status) {\n this.onStatusUpdated(status);\n this._status = status;\n this.onStatusChanged.raiseEvent(this);\n }\n }\n\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\n * @internal\n */\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus) { }\n\n /** @internal */\n protected setRequestAuthorization(headers: Headers) {\n if (this._settings.userName && this._settings.password) {\n setBasicAuthorization(headers, this._settings.userName, this._settings.password);\n }\n }\n\n /** @internal */\n public async makeTileRequest(url: string, timeoutMs?: number, authorization?: string): Promise<Response> {\n\n // We want to complete the first request before letting other requests go;\n // this done to avoid flooding server with requests missing credentials\n if (!this._firstRequestPromise)\n this._firstRequestPromise = new Promise<void>((resolve: any) => this.onFirstRequestCompleted.addOnce(()=>resolve()));\n else\n await this._firstRequestPromise;\n\n let response: Response|undefined;\n try {\n response = await this.makeRequest(url, timeoutMs, authorization);\n } finally {\n this.onFirstRequestCompleted.raiseEvent();\n }\n\n if (response === undefined)\n throw new Error(\"fetch call failed\");\n\n return response;\n }\n\n /** @internal */\n public async makeRequest(url: string, timeoutMs?: number, authorization?: string): Promise<Response> {\n\n let response: Response|undefined;\n\n let headers: Headers | undefined;\n let hasCreds = false;\n if (authorization) {\n headers = new Headers();\n headers.set(\"Authorization\", authorization);\n } else if (this._settings.userName && this._settings.password) {\n hasCreds = true;\n headers = new Headers();\n this.setRequestAuthorization(headers);\n }\n const opts: RequestInit = {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n };\n\n if (timeoutMs !== undefined)\n setRequestTimeout(opts, timeoutMs);\n\n response = await fetch(url, opts);\n\n if (response.status === 401\n && headersIncludeAuthMethod(response.headers, [\"ntlm\", \"negotiate\"])\n && !this._includeUserCredentials\n && !hasCreds\n ) {\n // Removed the previous headers and make sure \"include\" credentials is set\n opts.headers = undefined;\n opts.credentials = \"include\";\n\n // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)\n response = await fetch(url, opts);\n if (response.status === 200) {\n this._includeUserCredentials = true; // avoid going through 401 challenges over and over\n }\n }\n\n return response;\n }\n\n /** Returns a map layer tile at the specified settings. */\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\n\n try {\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\n if (tileUrl.length === 0)\n return undefined;\n\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\n\n if (!this._hasSuccessfullyFetchedTile) {\n this._hasSuccessfullyFetchedTile = true;\n }\n\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\n } catch (error: any) {\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n\n // Only report error to end-user if we were previously able to fetch tiles\n // and then encountered an error, otherwise I assume an error was already reported\n // through the source validation process.\n if (this._hasSuccessfullyFetchedTile) {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\n }\n\n }\n return undefined;\n }\n }\n\n /** @internal */\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\n const headers = new Headers();\n this.setRequestAuthorization(headers);\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n });\n const text = await response.text();\n if (undefined !== text) {\n strings.push(text);\n }\n } catch {\n }\n }\n\n /** @internal */\n public matchesMissingTile(tileData: Uint8Array): boolean {\n if (!this._missingTileData)\n return false;\n if (tileData.length !== this._missingTileData.length)\n return false;\n for (let i: number = 0; i < tileData.length; i += 10) {\n if (this._missingTileData[i] !== tileData[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)\n * @param longitude Longitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857X(longitude: number): number {\n return longitude * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)\n * @param latitude Latitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857Y(latitude: number): number {\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\n return y * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\n * @param x3857 Projected x cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lon(x3857: number): number {\n return Angle.radiansToDegrees(x3857 / earthRadius);\n }\n\n /**\n * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\n * @param y3857 Projected y cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lat(y3857: number): number {\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);\n return Angle.radiansToDegrees(y);\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.\n * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.\n * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): WGS84Extent {\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\n // so use Math.pow instead (I assume the performance lost to be minimal)\n const mapSize = this.tileSize * Math.pow(2, zoomLevel);\n const leftGrid = this.tileSize * column;\n const topGrid = this.tileSize * row;\n\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\n const y0 = 0.5 - ((topGrid + this.tileSize) / mapSize);\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\n\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\n const y1 = 0.5 - (topGrid / mapSize);\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\n\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:3857 format.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\n\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\n\n return { left, right, bottom, top };\n }\n\n /** @internal */\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\n }\n\n /** @internal */\n public getEPSG4326TileExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\n return this.getEPSG4326ExtentString(tileExtent, latLongAxisOrdering);\n\n }\n\n /** @internal */\n public getEPSG4326ExtentString(tileExtent: WGS84Extent, latLongAxisOrdering: boolean) {\n\n if (latLongAxisOrdering) {\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\n } else {\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\n }\n }\n\n /** Append custom parameters for settings to provided URL object.\n * @internal\n */\n protected appendCustomParams(url: string) {\n if (!this._settings.savedQueryParams && !this._settings.unsavedQueryParams)\n return url;\n\n let tmpUrl = appendQueryParams(url, this._settings.savedQueryParams);\n tmpUrl = appendQueryParams(tmpUrl, this._settings.unsavedQueryParams);\n return tmpUrl;\n }\n}\n"]}
1
+ {"version":3,"file":"MapLayerImageryProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/MapLayerImageryProvider.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 MapLayers\n */\n\nimport { assert, BeEvent } from \"@itwin/core-bentley\";\nimport { Cartographic, ImageMapLayerSettings, ImageSource, ImageSourceFormat } from \"@itwin/core-common\";\nimport { Angle } from \"@itwin/core-geometry\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { NotifyMessageDetails, OutputMessagePriority } from \"../../NotificationManager\";\nimport { ScreenViewport } from \"../../Viewport\";\nimport { appendQueryParams, GeographicTilingScheme, ImageryMapTile, ImageryMapTileTree, MapCartoRectangle, MapFeatureInfoOptions, MapLayerFeatureInfo, MapTilingScheme, QuadId, WebMercatorTilingScheme } from \"../internal\";\nimport { HitDetail } from \"../../HitDetail\";\nimport { headersIncludeAuthMethod, setBasicAuthorization, setRequestTimeout } from \"../../request/utils\";\nimport { DecorateContext } from \"../../ViewContext\";\n\n/** @internal */\nconst tileImageSize = 256, untiledImageSize = 256;\nconst earthRadius = 6378137;\nconst doDebugToolTips = false;\n\n/** The status of the map layer imagery provider that lets you know if authentication is needed to request tiles.\n * @public\n */\nexport enum MapLayerImageryProviderStatus {\n Valid,\n RequireAuth,\n}\n\n/** @internal */\nexport interface WGS84Extent\n{\n longitudeLeft: number;\n longitudeRight: number;\n latitudeTop: number;\n latitudeBottom: number;\n}\n\n/** Abstract class for map layer imagery providers.\n * Map layer imagery providers request and provide tile images and other data. Each map layer from a separate source needs its own imagery provider object.\n * @beta\n */\nexport abstract class MapLayerImageryProvider {\n protected _hasSuccessfullyFetchedTile = false;\n public readonly onStatusChanged = new BeEvent<(provider: MapLayerImageryProvider) => void>();\n\n /** @internal */\n private readonly _mercatorTilingScheme = new WebMercatorTilingScheme();\n\n /** @internal */\n private readonly _geographicTilingScheme = new GeographicTilingScheme();\n\n /** @internal */\n private _status = MapLayerImageryProviderStatus.Valid;\n\n /** @internal */\n protected _includeUserCredentials = false;\n\n /** @internal */\n protected readonly onFirstRequestCompleted = new BeEvent<() => void>();\n\n /** @internal */\n protected _firstRequestPromise: Promise<void>|undefined;\n\n /**\n * The status of the map layer imagery provider.\n * @public @preview\n */\n public get status() { return this._status; }\n\n /** Determine if this provider supports map feature info.\n * For example, this can be used to show the map feature info tool only when a provider is registered to support it.\n * @returns true if provider supports map feature info else return false.\n * @public\n */\n public get supportsMapFeatureInfo(): boolean { return false; }\n\n public resetStatus() { this.setStatus(MapLayerImageryProviderStatus.Valid); }\n\n /** @internal */\n public get tileSize(): number { return this._usesCachedTiles ? tileImageSize : untiledImageSize; }\n\n /** @internal */\n public get maximumScreenSize() { return 2 * this.tileSize; }\n\n public get minimumZoomLevel(): number { return this.defaultMinimumZoomLevel; }\n\n public get maximumZoomLevel(): number { return this.defaultMaximumZoomLevel; }\n\n /** @internal */\n public get usesCachedTiles() { return this._usesCachedTiles; }\n\n public get mutualExclusiveSubLayer(): boolean { return false; }\n\n /** @internal */\n public get useGeographicTilingScheme() { return false; }\n\n private _cartoRange?: MapCartoRectangle;\n\n /** Validates a cartographic range for NaN and infinite values.\n * @param range The cartographic range to validate.\n * @returns true if the range is valid, false otherwise.\n * @internal\n */\n private static isRangeValid(range: MapCartoRectangle | undefined): boolean {\n if (!range) {\n return false;\n }\n\n return !Number.isNaN(range.low.x) && !Number.isNaN(range.low.y) &&\n !Number.isNaN(range.high.x) && !Number.isNaN(range.high.y) &&\n Number.isFinite(range.low.x) && Number.isFinite(range.low.y) &&\n Number.isFinite(range.high.x) && Number.isFinite(range.high.y);\n }\n\n /** Gets or sets the cartographic range for this provider.\n * When setting, if the range is invalid (contains NaN or infinite values), it will be stored as undefined.\n * When getting, returns undefined if the range was set to an invalid value.\n */\n public get cartoRange(): MapCartoRectangle | undefined {\n return this._cartoRange;\n }\n\n public set cartoRange(range: MapCartoRectangle | undefined) {\n this._cartoRange = MapLayerImageryProvider.isRangeValid(range) ? range : undefined;\n }\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMinimumZoomLevel = 0;\n\n /**\n * This value is used internally for various computations, this should not get overriden.\n * @internal\n */\n protected readonly defaultMaximumZoomLevel = 22;\n\n /** @internal */\n protected get _filterByCartoRange() { return true; }\n\n constructor(protected readonly _settings: ImageMapLayerSettings, protected _usesCachedTiles: boolean) {\n this._mercatorTilingScheme = new WebMercatorTilingScheme();\n this._geographicTilingScheme = new GeographicTilingScheme(2, 1, true);\n }\n\n /**\n * Initialize the provider by loading the first tile at its default maximum zoom level.\n * @beta\n */\n public async initialize(): Promise<void> {\n this.loadTile(0, 0, this.defaultMaximumZoomLevel).then((tileData: ImageSource | undefined) => { // eslint-disable-line @typescript-eslint/no-floating-promises\n if (tileData !== undefined)\n this._missingTileData = tileData.data as Uint8Array;\n });\n }\n\n public abstract constructUrl(row: number, column: number, zoomLevel: number): Promise<string>;\n\n public get tilingScheme(): MapTilingScheme { return this.useGeographicTilingScheme ? this._geographicTilingScheme : this._mercatorTilingScheme; }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public addLogoCards(_cards: HTMLTableElement, _viewport: ScreenViewport): void { }\n\n /**\n * Add attribution logo cards for the data supplied by this provider to the [[Viewport]]'s logo div.\n * @param _cards Logo cards HTML element that may contain custom data attributes.\n * @param _viewport Viewport to add logo cards to.\n * @beta\n */\n public async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n /** @internal */\n protected _missingTileData?: Uint8Array;\n\n /** @internal */\n public get transparentBackgroundString(): string { return this._settings.transparentBackground ? \"true\" : \"false\"; }\n\n /** @internal */\n protected async _areChildrenAvailable(_tile: ImageryMapTile): Promise<boolean> { return true; }\n\n /** @internal */\n public getPotentialChildIds(quadId: QuadId): QuadId[] {\n const childLevel = quadId.level + 1;\n return quadId.getChildIds(this.tilingScheme.getNumberOfXChildrenAtLevel(childLevel), this.tilingScheme.getNumberOfYChildrenAtLevel(childLevel));\n }\n\n /**\n * Get child IDs of a quad and generate tiles based on these child IDs.\n * See [[ImageryTileTree._loadChildren]] for the definition of `resolveChildren` where this function is commonly called.\n * @param quadId quad to generate child IDs for.\n * @param resolveChildren Function that creates tiles from child IDs.\n * @beta\n */\n protected _generateChildIds(quadId: QuadId, resolveChildren: (childIds: QuadId[]) => void) {\n resolveChildren(this.getPotentialChildIds(quadId));\n }\n\n /** @internal */\n public generateChildIds(tile: ImageryMapTile, resolveChildren: (childIds: QuadId[]) => void) {\n if (tile.depth >= this.maximumZoomLevel || (undefined !== this.cartoRange && this._filterByCartoRange && !this.cartoRange.intersectsRange(tile.rectangle))) {\n tile.setLeaf();\n return;\n }\n this._generateChildIds(tile.quadId, resolveChildren);\n }\n\n /**\n * Get tooltip text for a specific quad and cartographic position.\n * @param strings List of strings to contain tooltip text.\n * @param quadId Quad ID to get tooltip for.\n * @param _carto Cartographic that may be used to retrieve and/or format tooltip text.\n * @param tree Tree associated with the quad to get the tooltip for.\n * @internal\n */\n public async getToolTip(strings: string[], quadId: QuadId, _carto: Cartographic, tree: ImageryMapTileTree): Promise<void> {\n if (doDebugToolTips) {\n const range = quadId.getLatLongRangeDegrees(tree.tilingScheme);\n strings.push(`QuadId: ${quadId.debugString}, Lat: ${range.low.x} - ${range.high.x} Long: ${range.low.y} - ${range.high.y}`);\n }\n }\n\n /** @internal */\n public async getFeatureInfo(featureInfos: MapLayerFeatureInfo[], _quadId: QuadId, _carto: Cartographic, _tree: ImageryMapTileTree, _hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<void> {\n // default implementation; simply return an empty feature info\n featureInfos.push({ layerName: this._settings.name });\n }\n\n /** @internal */\n public decorate(_context: DecorateContext): void {\n }\n\n /** @internal */\n protected async getImageFromTileResponse(tileResponse: Response, zoomLevel: number) {\n const arrayBuffer = await tileResponse.arrayBuffer();\n const byteArray: Uint8Array = new Uint8Array(arrayBuffer);\n if (!byteArray || (byteArray.length === 0))\n return undefined;\n if (this.matchesMissingTile(byteArray) && zoomLevel > 8)\n return undefined;\n\n const contentType = tileResponse.headers.get(\"content-type\")?.toLowerCase();\n let imageFormat: ImageSourceFormat | undefined;\n if (contentType) {\n // Note: 'includes' is used here instead of exact comparison because we encountered\n // some servers that would give content type such as 'image/png;charset=UTF-8'.\n if (contentType.includes(\"image/jpeg\"))\n imageFormat = ImageSourceFormat.Jpeg;\n else if (contentType.includes(\"image/png\"))\n imageFormat = ImageSourceFormat.Png;\n }\n\n if (imageFormat !== undefined)\n return new ImageSource(byteArray, imageFormat);\n\n assert(false, \"Invalid tile content type\");\n return undefined;\n }\n\n /**\n * Change the status of this provider.\n * Sub-classes should override 'onStatusUpdated' instead of this method.\n * @internal\n */\n public setStatus(status: MapLayerImageryProviderStatus) {\n if (this._status !== status) {\n this.onStatusUpdated(status);\n this._status = status;\n this.onStatusChanged.raiseEvent(this);\n }\n }\n\n /** Method called whenever the status changes, giving the opportunity to sub-classes to have a custom behavior.\n * @internal\n */\n protected onStatusUpdated(_newStatus: MapLayerImageryProviderStatus) { }\n\n /** @internal */\n protected setRequestAuthorization(headers: Headers) {\n if (this._settings.userName && this._settings.password) {\n setBasicAuthorization(headers, this._settings.userName, this._settings.password);\n }\n }\n\n /** @internal */\n public async makeTileRequest(url: string, timeoutMs?: number, authorization?: string): Promise<Response> {\n\n // We want to complete the first request before letting other requests go;\n // this done to avoid flooding server with requests missing credentials\n if (!this._firstRequestPromise)\n this._firstRequestPromise = new Promise<void>((resolve: any) => this.onFirstRequestCompleted.addOnce(()=>resolve()));\n else\n await this._firstRequestPromise;\n\n let response: Response|undefined;\n try {\n response = await this.makeRequest(url, timeoutMs, authorization);\n } finally {\n this.onFirstRequestCompleted.raiseEvent();\n }\n\n if (response === undefined)\n throw new Error(\"fetch call failed\");\n\n return response;\n }\n\n /** @internal */\n public async makeRequest(url: string, timeoutMs?: number, authorization?: string): Promise<Response> {\n\n let response: Response|undefined;\n\n let headers: Headers | undefined;\n let hasCreds = false;\n if (authorization) {\n headers = new Headers();\n headers.set(\"Authorization\", authorization);\n } else if (this._settings.userName && this._settings.password) {\n hasCreds = true;\n headers = new Headers();\n this.setRequestAuthorization(headers);\n }\n const opts: RequestInit = {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n };\n\n if (timeoutMs !== undefined)\n setRequestTimeout(opts, timeoutMs);\n\n response = await fetch(url, opts);\n\n if (response.status === 401\n && headersIncludeAuthMethod(response.headers, [\"ntlm\", \"negotiate\"])\n && !this._includeUserCredentials\n && !hasCreds\n ) {\n // Removed the previous headers and make sure \"include\" credentials is set\n opts.headers = undefined;\n opts.credentials = \"include\";\n\n // We got a http 401 challenge, lets try again with SSO enabled (i.e. Windows Authentication)\n response = await fetch(url, opts);\n if (response.status === 200) {\n this._includeUserCredentials = true; // avoid going through 401 challenges over and over\n }\n }\n\n return response;\n }\n\n /** Returns a map layer tile at the specified settings. */\n public async loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined> {\n\n try {\n const tileUrl: string = await this.constructUrl(row, column, zoomLevel);\n if (tileUrl.length === 0)\n return undefined;\n\n const tileResponse: Response = await this.makeTileRequest(tileUrl);\n\n if (!this._hasSuccessfullyFetchedTile) {\n this._hasSuccessfullyFetchedTile = true;\n }\n\n return await this.getImageFromTileResponse(tileResponse, zoomLevel);\n } catch (error: any) {\n if (error?.status === 401) {\n this.setStatus(MapLayerImageryProviderStatus.RequireAuth);\n\n // Only report error to end-user if we were previously able to fetch tiles\n // and then encountered an error, otherwise I assume an error was already reported\n // through the source validation process.\n if (this._hasSuccessfullyFetchedTile) {\n const msg = IModelApp.localization.getLocalizedString(\"iModelJs:MapLayers.Messages.LoadTileTokenError\", { layerName: this._settings.name });\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Warning, msg));\n }\n\n }\n return undefined;\n }\n }\n\n /** @internal */\n protected async toolTipFromUrl(strings: string[], url: string): Promise<void> {\n const headers = new Headers();\n this.setRequestAuthorization(headers);\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers,\n credentials: this._includeUserCredentials ? \"include\" : undefined,\n });\n const text = await response.text();\n if (undefined !== text) {\n strings.push(text);\n }\n } catch {\n }\n }\n\n /** @internal */\n public matchesMissingTile(tileData: Uint8Array): boolean {\n if (!this._missingTileData)\n return false;\n if (tileData.length !== this._missingTileData.length)\n return false;\n for (let i: number = 0; i < tileData.length; i += 10) {\n if (this._missingTileData[i] !== tileData[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Calculates the projected x cartesian coordinate in EPSG:3857 from the longitude in EPSG:4326 (WGS84)\n * @param longitude Longitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857X(longitude: number): number {\n return longitude * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the projected y cartesian coordinate in EPSG:3857 from the latitude in EPSG:4326 (WGS84)\n * @param latitude Latitude in EPSG:4326 (WGS84)\n * @internal\n */\n public getEPSG3857Y(latitude: number): number {\n const y = Math.log(Math.tan((90.0 + latitude) * Math.PI / 360.0)) / (Math.PI / 180.0);\n return y * 20037508.34 / 180.0;\n }\n\n /**\n * Calculates the longitude in EPSG:4326 (WGS84) from the projected x cartesian coordinate in EPSG:3857\n * @param x3857 Projected x cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lon(x3857: number): number {\n return Angle.radiansToDegrees(x3857 / earthRadius);\n }\n\n /**\n * Calculates the latitude in EPSG:4326 (WGS84) from the projected y cartesian coordinate in EPSG:3857\n * @param y3857 Projected y cartesian coordinate in EPSG:3857\n * @internal\n */\n public getEPSG4326Lat(y3857: number): number {\n const y = 2 * Math.atan(Math.exp(y3857 / earthRadius)) - (Math.PI / 2);\n return Angle.radiansToDegrees(y);\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:4326 (WGS84) format.\n * Map tile providers like Bing and Mapbox allow the URL to be constructed directly from the zoom level and tile coordinates.\n * However, WMS-based servers take a bounding box instead. This method can help get that bounding box from a tile.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG4326Extent(row: number, column: number, zoomLevel: number): WGS84Extent {\n // Shift left (this.tileSize << zoomLevel) overflow when using 512 pixels tile at higher resolution,\n // so use Math.pow instead (I assume the performance lost to be minimal)\n const mapSize = this.tileSize * Math.pow(2, zoomLevel);\n const leftGrid = this.tileSize * column;\n const topGrid = this.tileSize * row;\n\n const longitudeLeft = 360 * ((leftGrid / mapSize) - 0.5);\n const y0 = 0.5 - ((topGrid + this.tileSize) / mapSize);\n const latitudeBottom = 90.0 - 360.0 * Math.atan(Math.exp(-y0 * 2 * Math.PI)) / Math.PI;\n\n const longitudeRight = 360 * (((leftGrid + this.tileSize) / mapSize) - 0.5);\n const y1 = 0.5 - (topGrid / mapSize);\n const latitudeTop = 90.0 - 360.0 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;\n\n return { longitudeLeft, longitudeRight, latitudeTop, latitudeBottom };\n }\n\n /**\n * Get the bounding box/extents of a tile in EPSG:3857 format.\n * @param row Row of the tile\n * @param column Column of the tile\n * @param zoomLevel Desired zoom level of the tile\n * @internal\n */\n public getEPSG3857Extent(row: number, column: number, zoomLevel: number): { left: number, right: number, top: number, bottom: number } {\n const epsg4326Extent = this.getEPSG4326Extent(row, column, zoomLevel);\n\n const left = this.getEPSG3857X(epsg4326Extent.longitudeLeft);\n const right = this.getEPSG3857X(epsg4326Extent.longitudeRight);\n const bottom = this.getEPSG3857Y(epsg4326Extent.latitudeBottom);\n const top = this.getEPSG3857Y(epsg4326Extent.latitudeTop);\n\n return { left, right, bottom, top };\n }\n\n /** @internal */\n public getEPSG3857ExtentString(row: number, column: number, zoomLevel: number) {\n const tileExtent = this.getEPSG3857Extent(row, column, zoomLevel);\n return `${tileExtent.left.toFixed(2)},${tileExtent.bottom.toFixed(2)},${tileExtent.right.toFixed(2)},${tileExtent.top.toFixed(2)}`;\n }\n\n /** @internal */\n public getEPSG4326TileExtentString(row: number, column: number, zoomLevel: number, latLongAxisOrdering: boolean) {\n const tileExtent = this.getEPSG4326Extent(row, column, zoomLevel);\n return this.getEPSG4326ExtentString(tileExtent, latLongAxisOrdering);\n\n }\n\n /** @internal */\n public getEPSG4326ExtentString(tileExtent: WGS84Extent, latLongAxisOrdering: boolean) {\n\n if (latLongAxisOrdering) {\n return `${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)}`;\n } else {\n return `${tileExtent.longitudeLeft.toFixed(8)},${tileExtent.latitudeBottom.toFixed(8)},${tileExtent.longitudeRight.toFixed(8)},${tileExtent.latitudeTop.toFixed(8)}`;\n }\n }\n\n /** Append custom parameters for settings to provided URL object.\n * @internal\n */\n protected appendCustomParams(url: string) {\n if (!this._settings.savedQueryParams && !this._settings.unsavedQueryParams)\n return url;\n\n let tmpUrl = appendQueryParams(url, this._settings.savedQueryParams);\n tmpUrl = appendQueryParams(tmpUrl, this._settings.unsavedQueryParams);\n return tmpUrl;\n }\n}\n"]}
@@ -29,37 +29,93 @@ export declare class AccuDrawViewportUI extends AccuDraw {
29
29
  simplifiedInput: boolean;
30
30
  /** Enable simple math operations not supported by quantity parser. */
31
31
  mathOperations: boolean;
32
- /** Number of visible characters to show in text input fields. */
33
- fieldSize: number;
34
- /** Row spacing of text input fields for vertical arrangement. */
35
- rowSpacingFactor: number;
36
- /** Column spacing of text input fields and buttons for horizontal arrangement. */
37
- columnSpacingFactor: number;
38
- /** Corner radius of text input fields and locks buttons. */
39
- borderRadius: string;
40
- /** Background color of unfocused text input fields and unlocked buttons. */
41
- backgroundColor: string;
42
- /** Settings specific to text input fields and lock button labels. */
43
- text: {
44
- /** Font family to use for text input field values and button labels. */
45
- fontFamily: string;
46
- /** Font size to use for text input field values and button labels. */
47
- fontSize: string;
48
- /** Font color to use for text input field values and button labels. */
32
+ /** Settings that apply to both text input fields and lock buttons. */
33
+ field: {
34
+ /** Number of visible characters to show in text input fields. */
35
+ size: number;
36
+ /** Height of text input fields and lock buttons. */
37
+ height: string;
38
+ /** Border settings for text input fields and lock buttons. */
39
+ border: {
40
+ /** Border width to use for text input fields and lock buttons. */
41
+ width: string;
42
+ /** Border style to use for text input fields and lock buttons. */
43
+ style: string;
44
+ /** Corner radius of text input fields and locks buttons. */
45
+ radius: string;
46
+ };
47
+ /** Settings specific to text input fields and lock button labels. */
48
+ text: {
49
+ /** Font family to use for text input field values and button labels. */
50
+ fontFamily: string;
51
+ /** Font size to use for text input field values and button labels. */
52
+ fontSize: string;
53
+ };
54
+ };
55
+ /** Settings specific to text input fields. */
56
+ input: {
57
+ /** Font color to use for text input field values. */
49
58
  color: string;
50
- /** Background color of focused text input field. */
51
- focusColor: string;
59
+ /** Padding applied to text input fields. */
60
+ padding: string;
61
+ /** Settings applied to text input fields when they have focus. */
62
+ focused: {
63
+ /** Background color for focused text input fields. */
64
+ backgroundColor: string;
65
+ /** Inner stroke for focused text input fields. */
66
+ innerStroke: string;
67
+ /** Border settings for focused text input fields. */
68
+ border: {
69
+ /** Border color for focused text input fields. */
70
+ color: string;
71
+ };
72
+ };
73
+ /** Settings applied to text input fields when they do not have focus. */
74
+ unfocused: {
75
+ /** Background color for unfocused text input fields. */
76
+ backgroundColor: string;
77
+ /** Border settings for unfocused text input fields. */
78
+ border: {
79
+ /** Border color for unfocused text input fields. */
80
+ color: string;
81
+ };
82
+ };
52
83
  };
53
84
  /** Settings specific to lock buttons. */
54
85
  button: {
55
- /** Background color of locked buttons. */
56
- pressedColor: string;
57
- /** Margin to use on left and right to position relative to text input field. */
86
+ /** Padding applied to lock buttons. */
87
+ padding: string;
88
+ /** Settings applied to lock buttons when they are unlocked. */
89
+ unlocked: {
90
+ /** Text color for unlocked lock buttons. */
91
+ color: string;
92
+ /** Background color for unlocked lock buttons. */
93
+ backgroundColor: string;
94
+ /** Border settings for unlocked lock buttons. */
95
+ border: {
96
+ /** Border color for unlocked lock buttons. */
97
+ color: string;
98
+ };
99
+ };
100
+ /** Settings applied to lock buttons when they are locked. */
101
+ locked: {
102
+ /** Text color for locked lock buttons. */
103
+ color: string;
104
+ /** Background color for locked lock buttons. */
105
+ backgroundColor: string;
106
+ /** Border settings for locked lock buttons. */
107
+ border: {
108
+ /** Border color for locked lock buttons. */
109
+ color: string;
110
+ };
111
+ };
112
+ };
113
+ /** Spacing between fields within a control and between rows of controls. */
114
+ spacing: {
115
+ /** Spacing between input field and lock button within each field group. */
116
+ gap: string;
117
+ /** Spacing between field groups (distance/angle, x, y, z controls). */
58
118
  margin: string;
59
- /** Width of border outline. */
60
- outlineWidth: string;
61
- /** Shadow shown when unlocked to make it appear raised. */
62
- shadow: string;
63
119
  };
64
120
  };
65
121
  /** Create a new instance of this class to set as [[IModelAppOptions.accuDraw]] for this session. */
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawViewportUI.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawViewportUI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccuDrawViewportUI.d.ts","sourceRoot":"","sources":["../../../src/tools/AccuDrawViewportUI.ts"],"names":[],"mappings":"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"}