@itwin/core-frontend 4.3.0-dev.33 → 4.3.0-dev.34

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 (126) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  3. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  4. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  5. package/lib/cjs/render/webgl/SurfaceGeometry.js +28 -2
  6. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  7. package/lib/cjs/render/webgl/ThematicUniforms.d.ts.map +1 -1
  8. package/lib/cjs/render/webgl/ThematicUniforms.js +6 -8
  9. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  10. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  11. package/lib/cjs/render/webgl/glsl/Surface.js +7 -11
  12. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  13. package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
  14. package/lib/cjs/render/webgl/glsl/Thematic.js +10 -8
  15. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  16. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +5 -3
  17. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -1
  18. package/lib/cjs/tile/map/ArcGISTileMap.js +4 -16
  19. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  20. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +27 -12
  21. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  22. package/lib/cjs/tile/map/ArcGisUtilities.js +25 -17
  23. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  24. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  25. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +6 -1
  26. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  27. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  28. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +4 -1
  29. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  30. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  31. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js +2 -1
  32. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  33. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  34. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +4 -2
  35. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  36. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  37. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +5 -4
  38. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  39. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +16 -2
  40. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  41. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +33 -10
  42. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  43. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -4
  44. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  45. package/lib/cjs/tile/map/MapLayerImageryFormats.js +32 -4
  46. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  47. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -0
  48. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  49. package/lib/cjs/tile/map/MapLayerImageryProvider.js +41 -0
  50. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  51. package/lib/cjs/tile/map/MapLayerSources.d.ts +26 -7
  52. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  53. package/lib/cjs/tile/map/MapLayerSources.js +22 -4
  54. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  55. package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -1
  56. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  57. package/lib/cjs/tile/map/WmsCapabilities.js +11 -2
  58. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  59. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +3 -1
  60. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  61. package/lib/cjs/tile/map/WmtsCapabilities.js +11 -2
  62. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  63. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  64. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  65. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  66. package/lib/esm/render/webgl/SurfaceGeometry.js +29 -3
  67. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  68. package/lib/esm/render/webgl/ThematicUniforms.d.ts.map +1 -1
  69. package/lib/esm/render/webgl/ThematicUniforms.js +8 -10
  70. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  71. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  72. package/lib/esm/render/webgl/glsl/Surface.js +7 -11
  73. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  74. package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
  75. package/lib/esm/render/webgl/glsl/Thematic.js +10 -8
  76. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  77. package/lib/esm/tile/map/ArcGISTileMap.d.ts +5 -3
  78. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -1
  79. package/lib/esm/tile/map/ArcGISTileMap.js +5 -17
  80. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  81. package/lib/esm/tile/map/ArcGisUtilities.d.ts +27 -12
  82. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  83. package/lib/esm/tile/map/ArcGisUtilities.js +25 -17
  84. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  85. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  86. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +6 -1
  87. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  88. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  89. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +4 -1
  90. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  91. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  92. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js +2 -1
  93. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  94. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  95. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +4 -2
  96. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  97. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  98. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +5 -4
  99. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  100. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +16 -2
  101. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  102. package/lib/esm/tile/map/MapLayerFormatRegistry.js +34 -11
  103. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  104. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -4
  105. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  106. package/lib/esm/tile/map/MapLayerImageryFormats.js +33 -5
  107. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  108. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -0
  109. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  110. package/lib/esm/tile/map/MapLayerImageryProvider.js +41 -0
  111. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  112. package/lib/esm/tile/map/MapLayerSources.d.ts +26 -7
  113. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  114. package/lib/esm/tile/map/MapLayerSources.js +22 -4
  115. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  116. package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -1
  117. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  118. package/lib/esm/tile/map/WmsCapabilities.js +11 -2
  119. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  120. package/lib/esm/tile/map/WmtsCapabilities.d.ts +3 -1
  121. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  122. package/lib/esm/tile/map/WmtsCapabilities.js +11 -2
  123. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  124. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  125. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  126. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"WmsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport WMS from \"wms-capabilities\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\";\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<string> {\r\n const options: RequestOptions = {\r\n timeout: 20000,\r\n retryCount: 2,\r\n auth: credentials,\r\n };\r\n return request(url, \"text\", options);\r\n}\r\nfunction rangeFromJSONArray(json: any): MapCartoRectangle | undefined {\r\n return (Array.isArray(json) && json.length === 4) ? MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;\r\n}\r\n\r\nfunction rangeFromJSON(json: any): MapCartoRectangle | undefined {\r\n if (undefined !== json.LatLonBoundingBox)\r\n return rangeFromJSONArray(json.LatLonBoundingBox);\r\n else if (Array.isArray(json.EX_GeographicBoundingBox)) {\r\n return rangeFromJSONArray(json.EX_GeographicBoundingBox);\r\n } else {\r\n if (Array.isArray(json.BoundingBox))\r\n for (const boundingBox of json.BoundingBox) {\r\n if (boundingBox.crs === \"CRS:84\" || boundingBox.crs === \"EPSG:4326\") {\r\n return rangeFromJSONArray(boundingBox.extent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction initArray<T>(input: any): undefined | T[] {\r\n return Array.isArray(input) ? input.slice() : undefined;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMS server\r\n * @internal\r\n */\r\nexport namespace WmsCapability {\r\n\r\n export class Service {\r\n public readonly name: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly onlineResource?: string;\r\n public readonly contactInformation?: string;\r\n public readonly accessConstraints?: string;\r\n\r\n constructor(json: any) {\r\n this.name = json.Name ? json.Name : \"\";\r\n this.title = json.Title;\r\n this.abstract = json.Abstract;\r\n this.onlineResource = json.OnlineResource;\r\n this.contactInformation = json.ContactInformation;\r\n this.accessConstraints = json.AccessConstraints;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly queryable: boolean;\r\n public readonly title?: string;\r\n public readonly srs?: string[];\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly subLayers = new Array<SubLayer>();\r\n private static readonly PREFIX_SEPARATOR = \":\";\r\n\r\n constructor(json: any, capabilities: WmsCapabilities) {\r\n this.queryable = json.queryable;\r\n this.title = json.title;\r\n this.srs = initArray<string>(capabilities.isVersion13 ? json.CRS : json.SRS);\r\n this.cartoRange = rangeFromJSON(json);\r\n this.subLayers.push(new SubLayer(json, capabilities));\r\n }\r\n public getSubLayers(visible = true): MapSubLayerProps[] {\r\n const subLayers = new Array<MapSubLayerProps>();\r\n let index = 1;\r\n let childrenFound = false;\r\n const pushSubLayer = ((subLayer: SubLayer, parent?: number) => {\r\n let children;\r\n const id = index++;\r\n if (subLayer.children) {\r\n childrenFound = false;\r\n children = new Array<number>();\r\n subLayer.children.forEach((child) => {\r\n children.push(index);\r\n pushSubLayer(child, id);\r\n });\r\n }\r\n subLayers.push({ name: subLayer.name, title: subLayer.title, visible, parent, children, id });\r\n });\r\n this.subLayers.forEach((subLayer) => pushSubLayer(subLayer));\r\n\r\n if (!childrenFound) {\r\n const prefixed = new Map<string, MapSubLayerProps[]>();\r\n subLayers.forEach((subLayer) => {\r\n if (subLayer.name && subLayer.name.indexOf(Layer.PREFIX_SEPARATOR) > 0) {\r\n const prefix = subLayer.name.slice(0, subLayer.name.indexOf(Layer.PREFIX_SEPARATOR));\r\n const found = prefixed.get(prefix);\r\n if (found)\r\n found.push(subLayer);\r\n else\r\n prefixed.set(prefix, [subLayer]);\r\n }\r\n });\r\n if (prefixed.size > 1) {\r\n // Preserve the root node if any.\r\n const rootNode = (this.subLayers.length === 1 && this.subLayers[0].children && this.subLayers[0].children.length > 1) ? subLayers.find((curSubLayer) => this.subLayers[0].name === curSubLayer.name)?.id : undefined;\r\n prefixed.forEach((children, parent) => {\r\n children.forEach((child) => {\r\n child.parent = index;\r\n // Remove the prefix from the title if present.\r\n if (child.title && child.title.indexOf(parent + Layer.PREFIX_SEPARATOR) === 0)\r\n child.title = child.title.slice(parent.length + Layer.PREFIX_SEPARATOR.length);\r\n });\r\n subLayers.push({ name: \"\", title: parent, parent: rootNode, id: index++, children: children.map((child) => child.id as number), visible });\r\n });\r\n }\r\n }\r\n\r\n return subLayers;\r\n }\r\n\r\n public getSubLayersCrs(layerNameFilter: string[]): Map<string, string[]> {\r\n const subLayerCrs = new Map<string, string[]>();\r\n\r\n const processSubLayer = ((subLayer: SubLayer) => {\r\n if (layerNameFilter.includes(subLayer.name)) {\r\n subLayerCrs.set(subLayer.name, subLayer.crs);\r\n }\r\n if (subLayer.children) {\r\n subLayer.children.forEach((child) => {\r\n processSubLayer(child);\r\n });\r\n }\r\n });\r\n\r\n this.subLayers.forEach((subLayer) => processSubLayer(subLayer));\r\n return subLayerCrs;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class SubLayer {\r\n public readonly name: string;\r\n public readonly title: string;\r\n public readonly crs: string[];\r\n public readonly ownCrs: string[]; // CRS specific to this layer (ie. not including inherited CRS)\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly children?: SubLayer[];\r\n public readonly queryable: boolean;\r\n public constructor(_json: any, capabilities: WmsCapabilities, public readonly parent?: SubLayer) {\r\n\r\n const getParentCrs = (parentLayer: SubLayer, crsSet: Set<string>) => {\r\n parentLayer.crs.forEach((parentCrs) => crsSet.add(parentCrs));\r\n if (parentLayer.parent) {\r\n getParentCrs(parentLayer.parent, crsSet);\r\n }\r\n };\r\n\r\n this.name = _json.Name ? _json.Name : \"\";\r\n this.title = _json.Title;\r\n this.queryable = _json.queryable ? true : false;\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.ownCrs = capabilities.isVersion13 ? _json.CRS : _json.SRS;\r\n const crs = new Set<string>(this.ownCrs);\r\n if (parent) {\r\n getParentCrs(parent, crs);\r\n }\r\n this.crs = [...crs];\r\n\r\n if (Array.isArray(_json.Layer)) {\r\n this.children = new Array<SubLayer>();\r\n for (const childLayer of _json.Layer) {\r\n this.children.push(new SubLayer(childLayer, capabilities, this));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmsCapabilities | undefined>();\r\n public readonly service: WmsCapability.Service;\r\n public readonly version?: string;\r\n public readonly isVersion13: boolean;\r\n public readonly layer?: WmsCapability.Layer;\r\n public get json() { return this._json; }\r\n public get maxLevel(): number { return this.layer ? this.layer.subLayers.length : - 1; }\r\n public get cartoRange(): MapCartoRectangle | undefined { return this.layer?.cartoRange; }\r\n public get featureInfoSupported() { return undefined !== this._json.Capability?.Request?.GetFeatureInfo; }\r\n public get featureInfoFormats(): string[] | undefined { return Array.isArray(this._json.Capability?.Request?.GetFeatureInfo?.Format) ? this._json.Capability?.Request?.GetFeatureInfo?.Format : undefined; }\r\n constructor(private _json: any) {\r\n this.version = _json.version;\r\n this.isVersion13 = _json.version !== undefined && 0 === _json.version.indexOf(\"1.3\");\r\n this.service = new WmsCapability.Service(_json.Service);\r\n if (_json.Capability)\r\n this.layer = new WmsCapability.Layer(_json.Capability.Layer, this);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMS`, credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = new WmsCapabilities(new WMS().parse(xmlCapabilities));\r\n if (!credentials) {\r\n // Avoid caching protected data\r\n WmsCapabilities._capabilitiesCache.set(url, capabilities);\r\n }\r\n\r\n return capabilities;\r\n }\r\n public getSubLayers(visible = true): undefined | MapSubLayerProps[] {\r\n return this.layer ? this.layer.getSubLayers(visible) : undefined;\r\n }\r\n\r\n public getSubLayersCrs(subLayerNames: string[]): Map<string, string[]> | undefined {\r\n return this.layer ? this.layer.getSubLayersCrs(subLayerNames) : undefined;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WmsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { MapSubLayerProps } from \"@itwin/core-common\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport WMS from \"wms-capabilities\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\";\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<string> {\r\n const options: RequestOptions = {\r\n timeout: 20000,\r\n retryCount: 2,\r\n auth: credentials,\r\n };\r\n return request(url, \"text\", options);\r\n}\r\nfunction rangeFromJSONArray(json: any): MapCartoRectangle | undefined {\r\n return (Array.isArray(json) && json.length === 4) ? MapCartoRectangle.fromDegrees(json[0], json[1], json[2], json[3]) : undefined;\r\n}\r\n\r\nfunction rangeFromJSON(json: any): MapCartoRectangle | undefined {\r\n if (undefined !== json.LatLonBoundingBox)\r\n return rangeFromJSONArray(json.LatLonBoundingBox);\r\n else if (Array.isArray(json.EX_GeographicBoundingBox)) {\r\n return rangeFromJSONArray(json.EX_GeographicBoundingBox);\r\n } else {\r\n if (Array.isArray(json.BoundingBox))\r\n for (const boundingBox of json.BoundingBox) {\r\n if (boundingBox.crs === \"CRS:84\" || boundingBox.crs === \"EPSG:4326\") {\r\n return rangeFromJSONArray(boundingBox.extent);\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction initArray<T>(input: any): undefined | T[] {\r\n return Array.isArray(input) ? input.slice() : undefined;\r\n}\r\n\r\n/** Encapsulation of the capabilities for an WMS server\r\n * @internal\r\n */\r\nexport namespace WmsCapability {\r\n\r\n export class Service {\r\n public readonly name: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly onlineResource?: string;\r\n public readonly contactInformation?: string;\r\n public readonly accessConstraints?: string;\r\n\r\n constructor(json: any) {\r\n this.name = json.Name ? json.Name : \"\";\r\n this.title = json.Title;\r\n this.abstract = json.Abstract;\r\n this.onlineResource = json.OnlineResource;\r\n this.contactInformation = json.ContactInformation;\r\n this.accessConstraints = json.AccessConstraints;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly queryable: boolean;\r\n public readonly title?: string;\r\n public readonly srs?: string[];\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly subLayers = new Array<SubLayer>();\r\n private static readonly PREFIX_SEPARATOR = \":\";\r\n\r\n constructor(json: any, capabilities: WmsCapabilities) {\r\n this.queryable = json.queryable;\r\n this.title = json.title;\r\n this.srs = initArray<string>(capabilities.isVersion13 ? json.CRS : json.SRS);\r\n this.cartoRange = rangeFromJSON(json);\r\n this.subLayers.push(new SubLayer(json, capabilities));\r\n }\r\n public getSubLayers(visible = true): MapSubLayerProps[] {\r\n const subLayers = new Array<MapSubLayerProps>();\r\n let index = 1;\r\n let childrenFound = false;\r\n const pushSubLayer = ((subLayer: SubLayer, parent?: number) => {\r\n let children;\r\n const id = index++;\r\n if (subLayer.children) {\r\n childrenFound = false;\r\n children = new Array<number>();\r\n subLayer.children.forEach((child) => {\r\n children.push(index);\r\n pushSubLayer(child, id);\r\n });\r\n }\r\n subLayers.push({ name: subLayer.name, title: subLayer.title, visible, parent, children, id });\r\n });\r\n this.subLayers.forEach((subLayer) => pushSubLayer(subLayer));\r\n\r\n if (!childrenFound) {\r\n const prefixed = new Map<string, MapSubLayerProps[]>();\r\n subLayers.forEach((subLayer) => {\r\n if (subLayer.name && subLayer.name.indexOf(Layer.PREFIX_SEPARATOR) > 0) {\r\n const prefix = subLayer.name.slice(0, subLayer.name.indexOf(Layer.PREFIX_SEPARATOR));\r\n const found = prefixed.get(prefix);\r\n if (found)\r\n found.push(subLayer);\r\n else\r\n prefixed.set(prefix, [subLayer]);\r\n }\r\n });\r\n if (prefixed.size > 1) {\r\n // Preserve the root node if any.\r\n const rootNode = (this.subLayers.length === 1 && this.subLayers[0].children && this.subLayers[0].children.length > 1) ? subLayers.find((curSubLayer) => this.subLayers[0].name === curSubLayer.name)?.id : undefined;\r\n prefixed.forEach((children, parent) => {\r\n children.forEach((child) => {\r\n child.parent = index;\r\n // Remove the prefix from the title if present.\r\n if (child.title && child.title.indexOf(parent + Layer.PREFIX_SEPARATOR) === 0)\r\n child.title = child.title.slice(parent.length + Layer.PREFIX_SEPARATOR.length);\r\n });\r\n subLayers.push({ name: \"\", title: parent, parent: rootNode, id: index++, children: children.map((child) => child.id as number), visible });\r\n });\r\n }\r\n }\r\n\r\n return subLayers;\r\n }\r\n\r\n public getSubLayersCrs(layerNameFilter: string[]): Map<string, string[]> {\r\n const subLayerCrs = new Map<string, string[]>();\r\n\r\n const processSubLayer = ((subLayer: SubLayer) => {\r\n if (layerNameFilter.includes(subLayer.name)) {\r\n subLayerCrs.set(subLayer.name, subLayer.crs);\r\n }\r\n if (subLayer.children) {\r\n subLayer.children.forEach((child) => {\r\n processSubLayer(child);\r\n });\r\n }\r\n });\r\n\r\n this.subLayers.forEach((subLayer) => processSubLayer(subLayer));\r\n return subLayerCrs;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class SubLayer {\r\n public readonly name: string;\r\n public readonly title: string;\r\n public readonly crs: string[];\r\n public readonly ownCrs: string[]; // CRS specific to this layer (ie. not including inherited CRS)\r\n public readonly cartoRange?: MapCartoRectangle;\r\n public readonly children?: SubLayer[];\r\n public readonly queryable: boolean;\r\n public constructor(_json: any, capabilities: WmsCapabilities, public readonly parent?: SubLayer) {\r\n\r\n const getParentCrs = (parentLayer: SubLayer, crsSet: Set<string>) => {\r\n parentLayer.crs.forEach((parentCrs) => crsSet.add(parentCrs));\r\n if (parentLayer.parent) {\r\n getParentCrs(parentLayer.parent, crsSet);\r\n }\r\n };\r\n\r\n this.name = _json.Name ? _json.Name : \"\";\r\n this.title = _json.Title;\r\n this.queryable = _json.queryable ? true : false;\r\n this.cartoRange = rangeFromJSON(_json);\r\n this.ownCrs = capabilities.isVersion13 ? _json.CRS : _json.SRS;\r\n const crs = new Set<string>(this.ownCrs);\r\n if (parent) {\r\n getParentCrs(parent, crs);\r\n }\r\n this.crs = [...crs];\r\n\r\n if (Array.isArray(_json.Layer)) {\r\n this.children = new Array<SubLayer>();\r\n for (const childLayer of _json.Layer) {\r\n this.children.push(new SubLayer(childLayer, capabilities, this));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WmsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmsCapabilities | undefined>();\r\n public readonly service: WmsCapability.Service;\r\n public readonly version?: string;\r\n public readonly isVersion13: boolean;\r\n public readonly layer?: WmsCapability.Layer;\r\n public get json() { return this._json; }\r\n public get maxLevel(): number { return this.layer ? this.layer.subLayers.length : - 1; }\r\n public get cartoRange(): MapCartoRectangle | undefined { return this.layer?.cartoRange; }\r\n public get featureInfoSupported() { return undefined !== this._json.Capability?.Request?.GetFeatureInfo; }\r\n public get featureInfoFormats(): string[] | undefined { return Array.isArray(this._json.Capability?.Request?.GetFeatureInfo?.Format) ? this._json.Capability?.Request?.GetFeatureInfo?.Format : undefined; }\r\n constructor(private _json: any) {\r\n this.version = _json.version;\r\n this.isVersion13 = _json.version !== undefined && 0 === _json.version.indexOf(\"1.3\");\r\n this.service = new WmsCapability.Service(_json.Service);\r\n if (_json.Capability)\r\n this.layer = new WmsCapability.Layer(_json.Capability.Layer, this);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\r\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\r\n tmpUrl.searchParams.append(\"service\", \"WMS\");\r\n if (queryParams) {\r\n Object.keys(queryParams).forEach((paramKey) => {\r\n if (!tmpUrl.searchParams.has(paramKey))\r\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\r\n });\r\n }\r\n const xmlCapabilities = await getXml(tmpUrl.toString(), credentials);\r\n\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = new WmsCapabilities(new WMS().parse(xmlCapabilities));\r\n if (!credentials) {\r\n // Avoid caching protected data\r\n WmsCapabilities._capabilitiesCache.set(url, capabilities);\r\n }\r\n\r\n return capabilities;\r\n }\r\n public getSubLayers(visible = true): undefined | MapSubLayerProps[] {\r\n return this.layer ? this.layer.getSubLayers(visible) : undefined;\r\n }\r\n\r\n public getSubLayersCrs(subLayerNames: string[]): Map<string, string[]> | undefined {\r\n return this.layer ? this.layer.getSubLayersCrs(subLayerNames) : undefined;\r\n }\r\n}\r\n"]}
@@ -118,6 +118,8 @@ export declare class WmtsCapabilities {
118
118
  readonly operationsMetadata?: WmtsCapability.OperationMetadata;
119
119
  constructor(xmlDoc: Document);
120
120
  static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined;
121
- static create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmtsCapabilities | undefined>;
121
+ static create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {
122
+ [key: string]: string;
123
+ }): Promise<WmtsCapabilities | undefined>;
122
124
  }
123
125
  //# sourceMappingURL=WmtsCapabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsCapabilities.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAW,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAoD9D;EACE;AACF,oBAAY,aAAa;IACvB,6BAA6B,oBAAoB;IACjD,mCAAmC,yBAAyB;CAC7D;AAgCD;;GAEG;AACH,yBAAiB,cAAc,CAAC;IAC9B,MAAa,qBAAqB;QAChC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClC,SAAgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3C,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;QAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrC,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5C,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;oBAExB,IAAI,EAAE,OAAO;KAqB1B;IAED,MAAa,iBAAiB;QAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAY;QACrC,IAAW,eAAe,IAAI,SAAS,GAAG,SAAS,CAAkC;QAErF,OAAO,CAAC,eAAe,CAAC,CAAY;QACpC,IAAW,cAAc,IAAI,SAAS,GAAG,SAAS,CAAiC;QAEnF,OAAO,CAAC,QAAQ,CAAC,CAAY;QAC7B,IAAW,OAAO,IAAI,SAAS,GAAG,SAAS,CAA0B;QAErE,OAAO,CAAC,aAAa;oBAcT,IAAI,EAAE,OAAO;KAQ1B;IAED,MAAa,OAAO;QAClB,SAAgB,GAAG,CAAC,EAAE,MAAM,CAAC;QAC7B,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;QAKxC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAEtB,IAAI,EAAE,OAAO;KAgB1B;IAED,MAAa,SAAS;QACpB,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,CAAC,WAAW,CAAC,CAAY;QAChC,IAAW,UAAU,IAAI,OAAO,EAAE,GAAG,SAAS,CAA6B;QAC3E,OAAO,CAAC,YAAY,CAAC,CAAY;QACjC,IAAW,WAAW,IAAI,OAAO,EAAE,GAAG,SAAS,CAA8B;oBAEjE,IAAI,EAAE,OAAO;KA+B1B;IAED,MAAa,QAAQ;QACnB,SAAgB,MAAM,EAAE,KAAK,EAAE,CAAM;QACrC,SAAgB,cAAc,EAAE,aAAa,EAAE,CAAM;oBAEzC,IAAI,EAAE,OAAO;QAiBlB,oCAAoC,IAAI,aAAa,EAAE;QAiBvD,kCAAkC,IAAI,aAAa,EAAE;KAG7D;IAED,MAAa,KAAK;QAChB,SAAgB,SAAS,EAAE,OAAO,CAAS;QAC3C,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;oBAGxB,IAAI,EAAE,OAAO;KAW1B;IAED,MAAa,WAAW;QACtB,SAAgB,GAAG,CAAC,EAAE,MAAM,CAAC;QAC7B,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC;oBAEpB,IAAI,EAAE,OAAO;KAY1B;IAED,MAAa,mBAAmB;QACvB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;oBAEf,IAAI,EAAE,OAAO;KAY1B;IAED,MAAa,iBAAiB;QAC5B,SAAgB,aAAa,EAAE,MAAM,CAAC;QACtC,SAAgB,mBAAmB,wBAAoC;oBAE3D,IAAI,EAAE,OAAO;KAY1B;IAED,MAAa,aAAa;QACxB,SAAgB,UAAU,EAAE,MAAM,CAAC;QACnC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClC,SAAgB,YAAY,EAAE,MAAM,CAAC;QACrC,SAAgB,iBAAiB,EAAE,MAAM,CAAC;QAC1C,SAAgB,UAAU,EAAE,UAAU,EAAE,CAAM;oBAElC,IAAI,EAAE,OAAO;KA4B1B;IAED,MAAa,UAAU;QACrB,SAAgB,UAAU,EAAE,MAAM,CAAC;QACnC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;QACzC,SAAgB,aAAa,EAAE,OAAO,CAAC;QACvC,SAAgB,SAAS,EAAE,MAAM,CAAC;QAClC,SAAgB,UAAU,EAAE,MAAM,CAAC;QACnC,SAAgB,WAAW,EAAE,MAAM,CAAC;QACpC,SAAgB,YAAY,EAAE,MAAM,CAAC;oBAEzB,IAAI,EAAE,OAAO;KA8C1B;IAED,MAAa,KAAK;QAChB,SAAgB,UAAU,EAAE,MAAM,CAAC;QACnC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChC,SAAgB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;QACrD,SAAgB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1C,SAAgB,MAAM,EAAE,KAAK,EAAE,CAAM;QACrC,SAAgB,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;oBAEjD,IAAI,EAAE,OAAO;KAoD1B;CACF;AACD,gBAAgB;AAChB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAmD;IAEpF,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,qBAAqB,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC;IAC7E,SAAgB,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC;IAEnD,SAAgB,kBAAkB,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC;gBAE1D,MAAM,EAAE,QAAQ;WAwBd,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;WAM9D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAiB7I"}
1
+ {"version":3,"file":"WmtsCapabilities.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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"}
@@ -426,13 +426,22 @@ class WmtsCapabilities {
426
426
  const xmlDoc = parser.parseFromString(xmlCapabilities, "text/xml");
427
427
  return new WmtsCapabilities(xmlDoc);
428
428
  }
429
- static async create(url, credentials, ignoreCache) {
429
+ static async create(url, credentials, ignoreCache, queryParams) {
430
430
  if (!ignoreCache) {
431
431
  const cached = WmtsCapabilities._capabilitiesCache.get(url);
432
432
  if (cached !== undefined)
433
433
  return cached;
434
434
  }
435
- const xmlCapabilities = await getXml(`${internal_1.WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMTS`, credentials);
435
+ const tmpUrl = new URL(internal_1.WmsUtilities.getBaseUrl(url));
436
+ tmpUrl.searchParams.append("request", "GetCapabilities");
437
+ tmpUrl.searchParams.append("service", "WMTS");
438
+ if (queryParams) {
439
+ Object.keys(queryParams).forEach((paramKey) => {
440
+ if (!tmpUrl.searchParams.has(paramKey))
441
+ tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);
442
+ });
443
+ }
444
+ const xmlCapabilities = await getXml(tmpUrl.toString(), credentials);
436
445
  if (!xmlCapabilities)
437
446
  return undefined;
438
447
  const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);
@@ -1 +1 @@
1
- {"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\"; // WmsUtilities needed for getBaseUrl\r\n\r\nenum OwsConstants {\r\n ABSTRACT_XMLTAG = \"ows:Abstract\",\r\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\r\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\r\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\r\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\r\n DCP_XMLTAG = \"ows:DCP\",\r\n FEES_XMLTAG = \"ows:Fees\",\r\n GET_XMLTAG = \"ows:Get\",\r\n HTTP_XMLTAG = \"ows:HTTP\",\r\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\r\n KEYWORDS_XMLTAG = \"ows:Keywords\",\r\n KEYWORD_XMLTAG = \"ows:Keyword\",\r\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\r\n OPERATION_XMLTAG = \"ows:Operation\",\r\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\r\n POST_XMLTAG = \"ows:Post\",\r\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\r\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\r\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\r\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\r\n TITLE_XMLTAG = \"ows:Title\",\r\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\r\n VALUE_XMLTAG = \"ows:Value\",\r\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\r\n\r\n}\r\n\r\nenum XmlConstants {\r\n // Operations names\r\n GETCAPABILITIES = \"GetCapabilities\",\r\n GETTILE = \"GetTile\",\r\n GETFEATUREINFO = \"GetFeatureInfo\",\r\n\r\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\r\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\r\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\r\n\r\n TILEHEIGHT_XMLTAG = \"TileHeight\",\r\n TILEMATRIX_XMLTAG = \"TileMatrix\",\r\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\r\n TILEWIDTH_XMLTAG = \"TileWidth\",\r\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\r\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\r\n\r\n CONSTRAINT_NAME_FILTER = \"Encoding\",\r\n STYLE_ISDEFAULT = \"IsDefault\",\r\n XLINK_HREF = \"xlink:href\",\r\n}\r\n\r\n/** @internal\r\n*/\r\nexport enum WmtsConstants {\r\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\r\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\r\n}\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<string> {\r\n const options: RequestOptions = {\r\n timeout: 20000,\r\n retryCount: 2,\r\n auth: credentials,\r\n };\r\n return request(url, \"text\", options);\r\n}\r\n\r\n/**\r\n * Utility function to extract an element' text content\r\n * @return An element's text content, default to provided defaultTest value if no text is available.\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\r\n\r\n const tmpElem = elem.getElementsByTagName(qualifiedName);\r\n if (tmpElem.length > 0) {\r\n return tmpElem[0].textContent ?? defaultText;\r\n } else\r\n return defaultText;\r\n\r\n};\r\n\r\n/** Encapsulation of the capabilities for an WMTS server\r\n * @internal\r\n */\r\nexport namespace WmtsCapability {\r\n export class ServiceIdentification {\r\n public readonly abstract?: string;\r\n public readonly accessConstraints?: string;\r\n public readonly fees?: string;\r\n public readonly serviceType?: string;\r\n public readonly serviceTypeVersion?: string;\r\n public readonly title?: string;\r\n public readonly keywords?: string[];\r\n\r\n constructor(elem: Element) {\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\r\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n\r\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\r\n if (keywords.length > 0) {\r\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\r\n this.keywords = [];\r\n for (const keyworkElem of keyword) {\r\n const keyWordText = keyworkElem.textContent;\r\n if (keyWordText)\r\n this.keywords.push(keyWordText);\r\n }\r\n }\r\n\r\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\r\n\r\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\r\n }\r\n }\r\n\r\n export class OperationMetadata {\r\n private _getCapabilities?: Operation;\r\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\r\n\r\n private _getFeatureInfo?: Operation;\r\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\r\n\r\n private _getTile?: Operation;\r\n public get getTile(): Operation | undefined { return this._getTile; }\r\n\r\n private readOperation(op: Element) {\r\n const nameAttr = op.attributes.getNamedItem(\"name\");\r\n if (!nameAttr)\r\n return;\r\n\r\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\r\n this._getCapabilities = new Operation(op);\r\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\r\n this._getTile = new Operation(op);\r\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\r\n this._getFeatureInfo = new Operation(op);\r\n }\r\n }\r\n\r\n constructor(elem: Element) {\r\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\r\n if (operation.length > 0) {\r\n for (const op of operation) {\r\n this.readOperation(op);\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class HttpDcp {\r\n public readonly url?: string;\r\n public readonly constraintName?: string;\r\n\r\n // For simplicity of use we create a 'static' encoding property instead of having\r\n // a generic constraint data model.\r\n // We make sure the constraint name is 'encoding' related.\r\n public readonly encoding?: string;\r\n\r\n constructor(elem: Element) {\r\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\r\n if (url)\r\n this.url = url ?? \"\";\r\n\r\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\r\n if (constraint.length > 0) {\r\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\r\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\r\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\r\n if (allowedValues.length > 0) {\r\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Operation {\r\n public readonly name?: string;\r\n private _getDcpHttp?: HttpDcp[];\r\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\r\n private _postDcpHttp?: HttpDcp[];\r\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\r\n\r\n constructor(elem: Element) {\r\n const name = elem.getAttribute(\"name\");\r\n if (name)\r\n this.name = name;\r\n\r\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\r\n if (!dcp || dcp.length === 0)\r\n return;\r\n\r\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\r\n if (!dcpHttp || dcpHttp.length === 0)\r\n return;\r\n\r\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\r\n if (get.length > 0) {\r\n this._getDcpHttp = [];\r\n\r\n for (const getItem of get) {\r\n this._getDcpHttp?.push(new HttpDcp(getItem));\r\n }\r\n }\r\n\r\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\r\n if (post.length > 0) {\r\n this._postDcpHttp = [];\r\n\r\n for (const postItem of post) {\r\n this._postDcpHttp?.push(new HttpDcp(postItem));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Contents {\r\n public readonly layers: Layer[] = [];\r\n public readonly tileMatrixSets: TileMatrixSet[] = [];\r\n\r\n constructor(elem: Element) {\r\n // Layers\r\n const layer = elem.getElementsByTagName(\"Layer\");\r\n if (layer) {\r\n for (const layerElem of layer)\r\n this.layers.push(new Layer(layerElem));\r\n }\r\n\r\n // TileMatrixSet\r\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\r\n if (tms) {\r\n for (const tmsElem of tms)\r\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\r\n }\r\n\r\n }\r\n\r\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\r\n const googleMapsTms: TileMatrixSet[] = [];\r\n this.tileMatrixSets.forEach((tms) => {\r\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\r\n googleMapsTms.push(tms);\r\n\r\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\r\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\r\n else if (tms.tileMatrix.length > 0\r\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\r\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\r\n )\r\n googleMapsTms.push(tms);\r\n });\r\n return googleMapsTms;\r\n }\r\n\r\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\r\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\r\n }\r\n }\r\n\r\n export class Style {\r\n public readonly isDefault: boolean = false;\r\n public readonly title?: string;\r\n public readonly identifier?: string;\r\n // TODO: LegendURL\r\n\r\n constructor(elem: Element) {\r\n if (!elem)\r\n return;\r\n\r\n const isDefault = elem.getAttribute(\"isDefault\");\r\n if (isDefault)\r\n this.isDefault = isDefault.toLowerCase() === \"true\";\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\r\n }\r\n }\r\n\r\n export class BoundingBox {\r\n public readonly crs?: string;\r\n public readonly range?: Range2d;\r\n\r\n constructor(elem: Element) {\r\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\r\n\r\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\r\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\r\n if (lowerCorner && upperCorner) {\r\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\r\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\r\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\r\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrixSetLimits {\r\n public limits?: Range2d;\r\n public tileMatrix?: string;\r\n\r\n constructor(elem: Element) {\r\n\r\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\r\n\r\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\r\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\r\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\r\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\r\n\r\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\r\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\r\n }\r\n }\r\n\r\n export class TileMatrixSetLink {\r\n public readonly tileMatrixSet: string;\r\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\r\n\r\n constructor(elem: Element) {\r\n\r\n this.tileMatrixSet = getElementTextContent(elem, \"TileMatrixSet\", \"\")!;\r\n\r\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\r\n if (tileMatrixLimitsRoot.length > 0) {\r\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\r\n for (const tmsl of tileMatrixLimits) {\r\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrixSet {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly supportedCrs: string;\r\n public readonly wellKnownScaleSet: string;\r\n public readonly tileMatrix: TileMatrix[] = [];\r\n\r\n constructor(elem: Element) {\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n\r\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\r\n if (supportedCrs)\r\n this.supportedCrs = supportedCrs;\r\n else\r\n throw new Error(\"No supported CRS found.\");\r\n\r\n this.wellKnownScaleSet = getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\")!;\r\n\r\n // TileMatrix:\r\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\r\n if (tileMatrix.length === 0)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n for (const tm of tileMatrix) {\r\n this.tileMatrix.push(new TileMatrix(tm));\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrix {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly scaleDenominator: number;\r\n public readonly topLeftCorner: Point2d;\r\n public readonly tileWidth: number;\r\n public readonly tileHeight: number;\r\n public readonly matrixWidth: number;\r\n public readonly matrixHeight: number;\r\n\r\n constructor(elem: Element) {\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n\r\n // Scale denominator\r\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\r\n if (!scaleDenom)\r\n throw new Error(\"No scale denominator found on TileMatrix.\");\r\n this.scaleDenominator = +scaleDenom;\r\n\r\n // Top left corner\r\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\r\n if (topLeftCorner?.length !== 2)\r\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\r\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\r\n\r\n // Tile Width\r\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\r\n if (!tileWidth)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.tileWidth = +tileWidth;\r\n\r\n // Tile Height\r\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\r\n if (!tileHeight)\r\n throw new Error(\"No tile height found on TileMatrix.\");\r\n this.tileHeight = +tileHeight;\r\n\r\n // Matrix Width\r\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\r\n if (!matrixWidth)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.matrixWidth = +matrixWidth;\r\n\r\n // Matrix Height\r\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\r\n if (!matrixHeight)\r\n throw new Error(\"No tile height found on TileMatrix.\");\r\n this.matrixHeight = +matrixHeight;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly format?: string;\r\n public readonly wsg84BoundingBox?: MapCartoRectangle;\r\n public readonly boundingBox?: BoundingBox;\r\n public readonly styles: Style[] = [];\r\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\r\n\r\n constructor(elem: Element) {\r\n\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.format = getElementTextContent(elem, \"Format\");\r\n\r\n // BoundingBox\r\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\r\n if (boundingBox.length > 0)\r\n this.boundingBox = new BoundingBox(boundingBox[0]);\r\n\r\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\r\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\r\n if (bbox.length > 0) {\r\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\r\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\r\n }\r\n\r\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\r\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\r\n\r\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\r\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\r\n const range = this.boundingBox.range;\r\n if (range)\r\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\r\n else\r\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\r\n }\r\n\r\n // Style\r\n const style = elem.getElementsByTagName(\"Style\");\r\n if (style.length > 0) {\r\n for (const styleElem of style)\r\n this.styles.push(new Style(styleElem));\r\n }\r\n\r\n // TileMatrixSetLink\r\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\r\n\r\n if (tileMatrixSetLink.length === 0)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n for (const tmsl of tileMatrixSetLink)\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\r\n }\r\n }\r\n}\r\n/** @internal */\r\nexport class WmtsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\r\n\r\n public readonly version?: string;\r\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\r\n public readonly contents?: WmtsCapability.Contents;\r\n\r\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\r\n\r\n constructor(xmlDoc: Document) {\r\n\r\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\r\n if (capabilities.length !== 0) {\r\n const capability = capabilities[0];\r\n this.version = capability.getAttribute(\"version\") ?? undefined;\r\n\r\n // Service Identification\r\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\r\n if (serviceIdentification.length > 0)\r\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\r\n\r\n // Operations metadata\r\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\r\n if (operationsMetadata.length > 0)\r\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\r\n\r\n // Contents\r\n const content = capability.getElementsByTagName(\"Contents\");\r\n if (content.length > 0)\r\n this.contents = new WmtsCapability.Contents(content[0]);\r\n }\r\n }\r\n\r\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\r\n return new WmtsCapabilities(xmlDoc);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean): Promise<WmtsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const xmlCapabilities = await getXml(`${WmsUtilities.getBaseUrl(url)}?request=GetCapabilities&service=WMTS`, credentials);\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\r\n if (capabilities)\r\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../src/tile/map/WmtsCapabilities.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\r\nimport { request, RequestBasicCredentials, RequestOptions } from \"../../request/Request\";\r\nimport { MapCartoRectangle, WmsUtilities } from \"../internal\"; // WmsUtilities needed for getBaseUrl\r\n\r\nenum OwsConstants {\r\n ABSTRACT_XMLTAG = \"ows:Abstract\",\r\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\r\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\r\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\r\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\r\n DCP_XMLTAG = \"ows:DCP\",\r\n FEES_XMLTAG = \"ows:Fees\",\r\n GET_XMLTAG = \"ows:Get\",\r\n HTTP_XMLTAG = \"ows:HTTP\",\r\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\r\n KEYWORDS_XMLTAG = \"ows:Keywords\",\r\n KEYWORD_XMLTAG = \"ows:Keyword\",\r\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\r\n OPERATION_XMLTAG = \"ows:Operation\",\r\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\r\n POST_XMLTAG = \"ows:Post\",\r\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\r\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\r\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\r\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\r\n TITLE_XMLTAG = \"ows:Title\",\r\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\r\n VALUE_XMLTAG = \"ows:Value\",\r\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\r\n\r\n}\r\n\r\nenum XmlConstants {\r\n // Operations names\r\n GETCAPABILITIES = \"GetCapabilities\",\r\n GETTILE = \"GetTile\",\r\n GETFEATUREINFO = \"GetFeatureInfo\",\r\n\r\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\r\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\r\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\r\n\r\n TILEHEIGHT_XMLTAG = \"TileHeight\",\r\n TILEMATRIX_XMLTAG = \"TileMatrix\",\r\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\r\n TILEWIDTH_XMLTAG = \"TileWidth\",\r\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\r\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\r\n\r\n CONSTRAINT_NAME_FILTER = \"Encoding\",\r\n STYLE_ISDEFAULT = \"IsDefault\",\r\n XLINK_HREF = \"xlink:href\",\r\n}\r\n\r\n/** @internal\r\n*/\r\nexport enum WmtsConstants {\r\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\r\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\r\n}\r\n\r\n/**\r\n * fetch XML from HTTP request\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nasync function getXml(url: string, credentials?: RequestBasicCredentials): Promise<string> {\r\n const options: RequestOptions = {\r\n timeout: 20000,\r\n retryCount: 2,\r\n auth: credentials,\r\n };\r\n return request(url, \"text\", options);\r\n}\r\n\r\n/**\r\n * Utility function to extract an element' text content\r\n * @return An element's text content, default to provided defaultTest value if no text is available.\r\n * @param url server URL to address the request\r\n * @internal\r\n */\r\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\r\n\r\n const tmpElem = elem.getElementsByTagName(qualifiedName);\r\n if (tmpElem.length > 0) {\r\n return tmpElem[0].textContent ?? defaultText;\r\n } else\r\n return defaultText;\r\n\r\n};\r\n\r\n/** Encapsulation of the capabilities for an WMTS server\r\n * @internal\r\n */\r\nexport namespace WmtsCapability {\r\n export class ServiceIdentification {\r\n public readonly abstract?: string;\r\n public readonly accessConstraints?: string;\r\n public readonly fees?: string;\r\n public readonly serviceType?: string;\r\n public readonly serviceTypeVersion?: string;\r\n public readonly title?: string;\r\n public readonly keywords?: string[];\r\n\r\n constructor(elem: Element) {\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\r\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n\r\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\r\n if (keywords.length > 0) {\r\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\r\n this.keywords = [];\r\n for (const keyworkElem of keyword) {\r\n const keyWordText = keyworkElem.textContent;\r\n if (keyWordText)\r\n this.keywords.push(keyWordText);\r\n }\r\n }\r\n\r\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\r\n\r\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\r\n }\r\n }\r\n\r\n export class OperationMetadata {\r\n private _getCapabilities?: Operation;\r\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\r\n\r\n private _getFeatureInfo?: Operation;\r\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\r\n\r\n private _getTile?: Operation;\r\n public get getTile(): Operation | undefined { return this._getTile; }\r\n\r\n private readOperation(op: Element) {\r\n const nameAttr = op.attributes.getNamedItem(\"name\");\r\n if (!nameAttr)\r\n return;\r\n\r\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\r\n this._getCapabilities = new Operation(op);\r\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\r\n this._getTile = new Operation(op);\r\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\r\n this._getFeatureInfo = new Operation(op);\r\n }\r\n }\r\n\r\n constructor(elem: Element) {\r\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\r\n if (operation.length > 0) {\r\n for (const op of operation) {\r\n this.readOperation(op);\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class HttpDcp {\r\n public readonly url?: string;\r\n public readonly constraintName?: string;\r\n\r\n // For simplicity of use we create a 'static' encoding property instead of having\r\n // a generic constraint data model.\r\n // We make sure the constraint name is 'encoding' related.\r\n public readonly encoding?: string;\r\n\r\n constructor(elem: Element) {\r\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\r\n if (url)\r\n this.url = url ?? \"\";\r\n\r\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\r\n if (constraint.length > 0) {\r\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\r\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\r\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\r\n if (allowedValues.length > 0) {\r\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Operation {\r\n public readonly name?: string;\r\n private _getDcpHttp?: HttpDcp[];\r\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\r\n private _postDcpHttp?: HttpDcp[];\r\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\r\n\r\n constructor(elem: Element) {\r\n const name = elem.getAttribute(\"name\");\r\n if (name)\r\n this.name = name;\r\n\r\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\r\n if (!dcp || dcp.length === 0)\r\n return;\r\n\r\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\r\n if (!dcpHttp || dcpHttp.length === 0)\r\n return;\r\n\r\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\r\n if (get.length > 0) {\r\n this._getDcpHttp = [];\r\n\r\n for (const getItem of get) {\r\n this._getDcpHttp?.push(new HttpDcp(getItem));\r\n }\r\n }\r\n\r\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\r\n if (post.length > 0) {\r\n this._postDcpHttp = [];\r\n\r\n for (const postItem of post) {\r\n this._postDcpHttp?.push(new HttpDcp(postItem));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class Contents {\r\n public readonly layers: Layer[] = [];\r\n public readonly tileMatrixSets: TileMatrixSet[] = [];\r\n\r\n constructor(elem: Element) {\r\n // Layers\r\n const layer = elem.getElementsByTagName(\"Layer\");\r\n if (layer) {\r\n for (const layerElem of layer)\r\n this.layers.push(new Layer(layerElem));\r\n }\r\n\r\n // TileMatrixSet\r\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\r\n if (tms) {\r\n for (const tmsElem of tms)\r\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\r\n }\r\n\r\n }\r\n\r\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\r\n const googleMapsTms: TileMatrixSet[] = [];\r\n this.tileMatrixSets.forEach((tms) => {\r\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\r\n googleMapsTms.push(tms);\r\n\r\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\r\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\r\n else if (tms.tileMatrix.length > 0\r\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\r\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\r\n )\r\n googleMapsTms.push(tms);\r\n });\r\n return googleMapsTms;\r\n }\r\n\r\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\r\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\r\n }\r\n }\r\n\r\n export class Style {\r\n public readonly isDefault: boolean = false;\r\n public readonly title?: string;\r\n public readonly identifier?: string;\r\n // TODO: LegendURL\r\n\r\n constructor(elem: Element) {\r\n if (!elem)\r\n return;\r\n\r\n const isDefault = elem.getAttribute(\"isDefault\");\r\n if (isDefault)\r\n this.isDefault = isDefault.toLowerCase() === \"true\";\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\r\n }\r\n }\r\n\r\n export class BoundingBox {\r\n public readonly crs?: string;\r\n public readonly range?: Range2d;\r\n\r\n constructor(elem: Element) {\r\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\r\n\r\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\r\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\r\n if (lowerCorner && upperCorner) {\r\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\r\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\r\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\r\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrixSetLimits {\r\n public limits?: Range2d;\r\n public tileMatrix?: string;\r\n\r\n constructor(elem: Element) {\r\n\r\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\r\n\r\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\r\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\r\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\r\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\r\n\r\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\r\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\r\n }\r\n }\r\n\r\n export class TileMatrixSetLink {\r\n public readonly tileMatrixSet: string;\r\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\r\n\r\n constructor(elem: Element) {\r\n\r\n this.tileMatrixSet = getElementTextContent(elem, \"TileMatrixSet\", \"\")!;\r\n\r\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\r\n if (tileMatrixLimitsRoot.length > 0) {\r\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\r\n for (const tmsl of tileMatrixLimits) {\r\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\r\n }\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrixSet {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly supportedCrs: string;\r\n public readonly wellKnownScaleSet: string;\r\n public readonly tileMatrix: TileMatrix[] = [];\r\n\r\n constructor(elem: Element) {\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n\r\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\r\n if (supportedCrs)\r\n this.supportedCrs = supportedCrs;\r\n else\r\n throw new Error(\"No supported CRS found.\");\r\n\r\n this.wellKnownScaleSet = getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\")!;\r\n\r\n // TileMatrix:\r\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\r\n if (tileMatrix.length === 0)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n for (const tm of tileMatrix) {\r\n this.tileMatrix.push(new TileMatrix(tm));\r\n }\r\n }\r\n }\r\n\r\n export class TileMatrix {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly scaleDenominator: number;\r\n public readonly topLeftCorner: Point2d;\r\n public readonly tileWidth: number;\r\n public readonly tileHeight: number;\r\n public readonly matrixWidth: number;\r\n public readonly matrixHeight: number;\r\n\r\n constructor(elem: Element) {\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\r\n\r\n // Scale denominator\r\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\r\n if (!scaleDenom)\r\n throw new Error(\"No scale denominator found on TileMatrix.\");\r\n this.scaleDenominator = +scaleDenom;\r\n\r\n // Top left corner\r\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\r\n if (topLeftCorner?.length !== 2)\r\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\r\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\r\n\r\n // Tile Width\r\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\r\n if (!tileWidth)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.tileWidth = +tileWidth;\r\n\r\n // Tile Height\r\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\r\n if (!tileHeight)\r\n throw new Error(\"No tile height found on TileMatrix.\");\r\n this.tileHeight = +tileHeight;\r\n\r\n // Matrix Width\r\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\r\n if (!matrixWidth)\r\n throw new Error(\"No tile width found on TileMatrix.\");\r\n this.matrixWidth = +matrixWidth;\r\n\r\n // Matrix Height\r\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\r\n if (!matrixHeight)\r\n throw new Error(\"No tile height found on TileMatrix.\");\r\n this.matrixHeight = +matrixHeight;\r\n }\r\n }\r\n\r\n export class Layer {\r\n public readonly identifier: string;\r\n public readonly title?: string;\r\n public readonly abstract?: string;\r\n public readonly format?: string;\r\n public readonly wsg84BoundingBox?: MapCartoRectangle;\r\n public readonly boundingBox?: BoundingBox;\r\n public readonly styles: Style[] = [];\r\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\r\n\r\n constructor(elem: Element) {\r\n\r\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\r\n if (identifier)\r\n this.identifier = identifier;\r\n else\r\n throw new Error(\"No Identifier found.\");\r\n\r\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\r\n this.format = getElementTextContent(elem, \"Format\");\r\n\r\n // BoundingBox\r\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\r\n if (boundingBox.length > 0)\r\n this.boundingBox = new BoundingBox(boundingBox[0]);\r\n\r\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\r\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\r\n if (bbox.length > 0) {\r\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\r\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\r\n }\r\n\r\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\r\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\r\n\r\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\r\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\r\n const range = this.boundingBox.range;\r\n if (range)\r\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\r\n else\r\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\r\n }\r\n\r\n // Style\r\n const style = elem.getElementsByTagName(\"Style\");\r\n if (style.length > 0) {\r\n for (const styleElem of style)\r\n this.styles.push(new Style(styleElem));\r\n }\r\n\r\n // TileMatrixSetLink\r\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\r\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\r\n\r\n if (tileMatrixSetLink.length === 0)\r\n throw new Error(\"No matrix set link found for WMTS layer\");\r\n\r\n for (const tmsl of tileMatrixSetLink)\r\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\r\n }\r\n }\r\n}\r\n/** @internal */\r\nexport class WmtsCapabilities {\r\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\r\n\r\n public readonly version?: string;\r\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\r\n public readonly contents?: WmtsCapability.Contents;\r\n\r\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\r\n\r\n constructor(xmlDoc: Document) {\r\n\r\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\r\n if (capabilities.length !== 0) {\r\n const capability = capabilities[0];\r\n this.version = capability.getAttribute(\"version\") ?? undefined;\r\n\r\n // Service Identification\r\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\r\n if (serviceIdentification.length > 0)\r\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\r\n\r\n // Operations metadata\r\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\r\n if (operationsMetadata.length > 0)\r\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\r\n\r\n // Contents\r\n const content = capability.getElementsByTagName(\"Contents\");\r\n if (content.length > 0)\r\n this.contents = new WmtsCapability.Contents(content[0]);\r\n }\r\n }\r\n\r\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\r\n return new WmtsCapabilities(xmlDoc);\r\n }\r\n\r\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmtsCapabilities | undefined> {\r\n if (!ignoreCache) {\r\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\r\n if (cached !== undefined)\r\n return cached;\r\n }\r\n\r\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\r\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\r\n tmpUrl.searchParams.append(\"service\", \"WMTS\");\r\n if (queryParams) {\r\n Object.keys(queryParams).forEach((paramKey) => {\r\n if (!tmpUrl.searchParams.has(paramKey))\r\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\r\n });\r\n }\r\n\r\n const xmlCapabilities = await getXml(tmpUrl.toString(), credentials);\r\n if (!xmlCapabilities)\r\n return undefined;\r\n\r\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\r\n if (capabilities)\r\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\r\n\r\n return capabilities;\r\n }\r\n}\r\n"]}
@@ -20,7 +20,7 @@ ACSDisplayOptions, ACSType, ActivityMessageEndReason, BeButton, BeModifierKeys,
20
20
  AccuDrawHintBuilder, AccuSnap, ActivityMessageDetails, AuxCoordSystem2dState, AuxCoordSystem3dState, AuxCoordSystemSpatialState, AuxCoordSystemState, BeButtonEvent, BeButtonState, BeTouchEvent, BeWheelEvent, BingElevationProvider, BingLocationProvider, CategorySelectorState, ChangeFlags, Cluster, ContextRealityModelState, DecorateContext, Decorations, DisclosedTileTreeSet, DisplayStyle2dState, DisplayStyle3dState, DisplayStyleState, DrawingModelState, DrawingViewState, EditManipulator, ElementLocateManager, ElementPicker, ElementState, EmphasizeElements, EntityState, EventController, FeatureSymbology, FlashSettings, FrustumAnimator, GeometricModel2dState, GeometricModel3dState, GeometricModelState, GlobeAnimator, GraphicBranch, GraphicBuilder, HiliteSet, HitDetail, HitList, IModelConnection, IconSprites, InputCollector, InteractiveTool, IntersectDetail, LocateOptions, LocateResponse, MarginPercent, Marker, MarkerSet, ModelSelectorState, ModelState, NotificationHandler, NotificationManager, NotifyMessageDetails, OffScreenViewport, OrthographicViewState, PerModelCategoryVisibility, PhysicalModelState, Pixel, PrimitiveTool, RenderClipVolume, RenderContext, RenderGraphic, RenderGraphicOwner, RenderSystem, Scene, ScreenViewport, SectionDrawingModelState, SelectionSet, SheetModelState, SheetViewState, SnapDetail, SpatialLocationModelState, SpatialModelState, SpatialViewState, Sprite, SpriteLocation, TentativePoint, Tile, TileAdmin, TileDrawArgs, TileRequest, TileRequestChannel, TileRequestChannelStatistics, TileRequestChannels, TileTree, TileTreeReference, TileUsageMarker, Tiles, Tool, ToolAdmin, ToolAssistance, ToolSettings, TwoWayViewportFrustumSync, TwoWayViewportSync, ViewClipClearTool, ViewClipDecoration, ViewClipDecorationProvider, ViewClipTool, ViewCreator2d, ViewCreator3d, ViewManager, ViewManip, ViewPose, ViewPose2d, ViewPose3d, ViewRect, ViewState, ViewState2d, ViewState3d, ViewTool, ViewingSpace, Viewport, canvasToImageBuffer, canvasToResizedCanvasWithBars, connectViewportFrusta, connectViewportViews, connectViewports, extractImageSourceDimensions, getCompressedJpegFromCanvas, getImageSourceFormatForMimeType, getImageSourceMimeType, imageBufferToBase64EncodedPng, imageBufferToCanvas, imageBufferToPngDataUrl, imageElementFromImageSource, imageElementFromUrl, queryTerrainElevationOffset, readElementGraphics, readGltfGraphics, synchronizeViewportFrusta, synchronizeViewportViews, } from "../core-frontend";
21
21
  import {
22
22
  // @public enum(s) from @itwin/core-common
23
- BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangeOpCode, ChangedValueState, ChangesetType, CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, TxnAction, TypeOfChange,
23
+ BackgroundFill, BackgroundMapType, BatchType, BisCodeSpec, BriefcaseIdValue, ChangeOpCode, ChangedValueState, ChangesetType, CommonLoggerCategory, ECSqlSystemProperty, ECSqlValueType, ElementGeometryOpcode, FeatureOverrideType, FillDisplay, FillFlags, FontType, GeoCoordStatus, GeometryClass, GeometryStreamFlags, GeometrySummaryVerbosity, GlobeMode, GridOrientationType, HSVConstants, ImageBufferFormat, ImageSourceFormat, LinePixels, MassPropertiesOperation, MonochromeMode, Npc, PlanarClipMaskMode, PlanarClipMaskPriority, QueryRowFormat, Rank, RenderMode, SectionType, SkyBoxImageType, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, SyncMode, TerrainHeightOriginMode, TextureMapUnits, ThematicDisplayMode, ThematicGradientColorScheme, ThematicGradientMode, ThematicGradientTransparencyMode, TxnAction, TypeOfChange,
24
24
  // @public real(s) from @itwin/core-common
25
25
  ClipIntersectionStyle, ColorByName, ColorDef, FrustumPlanes, QParams2d, QParams3d, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint2dList, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, QPoint3dList, Quantization, } from "@itwin/core-common";
26
26
  const extensionExports = {
@@ -206,6 +206,7 @@ const extensionExports = {
206
206
  ThematicDisplayMode,
207
207
  ThematicGradientColorScheme,
208
208
  ThematicGradientMode,
209
+ ThematicGradientTransparencyMode,
209
210
  Tile,
210
211
  TileAdmin,
211
212
  TileBoundingBoxes,
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ClipIntersectionStyle,\r\n ColorByName,\r\n ColorDef,\r\n FrustumPlanes,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n ClipIntersectionStyle,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n FrustumPlanes,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (_id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
1
+ {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n ThematicGradientTransparencyMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ClipIntersectionStyle,\r\n ColorByName,\r\n ColorDef,\r\n FrustumPlanes,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n ClipIntersectionStyle,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n FrustumPlanes,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n ThematicGradientTransparencyMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (_id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SurfaceGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAA8C,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAkC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAA+B,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEpD;AAMD,gBAAgB;AAChB,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC,IAAW,UAAU,qBAA4B;WAEnC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAKzF,IAAW,UAAU,IAAI,OAAO,CAG/B;IAEM,OAAO;IAKP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAI9D,IAAW,KAAK,YAAmG;IACnH,IAAW,cAAc,YAAwG;IACjI,IAAW,UAAU,YAAgE;IACrF,IAAW,YAAY,YAAgF;IACvG,IAAW,OAAO,YAAgC;IAClD,IAAoB,uBAAuB,YAA2B;IACtE,IAAW,aAAa,YAAuE;IAC/F,IAAW,YAAY,YAAgE;IACvF,IAAoB,uBAAuB,YAE1C;IAED,IAAoB,kBAAkB,YAKrC;IAED,IAAoB,SAAS,SAAmB;IAChD,IAAoB,MAAM,cAAwB;IAClD,IAAoB,YAAY,cAAwB;IAExD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAmBxE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/D,IAAW,WAAW,IAAI,WAAW,CAAgC;IACrE,IAAoB,YAAY,YAAyB;IACzD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,WAAW,IAAI,WAAW,CASpC;IAEe,QAAQ,CAAC,MAAM,EAAE,MAAM;IAOvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwD7C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAmBnD,IAAoB,YAAY,IAAI,YAAY,GAAG,SAAS,CAAmC;IAExF,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIhD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIlD,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAwDhF,OAAO;IASP,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,cAAc;CAavB"}
1
+ {"version":3,"file":"SurfaceGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAgF,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7H,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAkC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAA+B,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEpD;AAMD,gBAAgB;AAChB,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC,IAAW,UAAU,qBAA4B;WAEnC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAKzF,IAAW,UAAU,IAAI,OAAO,CAG/B;IAEM,OAAO;IAKP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAI9D,IAAW,KAAK,YAAmG;IACnH,IAAW,cAAc,YAAwG;IACjI,IAAW,UAAU,YAAgE;IACrF,IAAW,YAAY,YAAgF;IACvG,IAAW,OAAO,YAAgC;IAClD,IAAoB,uBAAuB,YAA2B;IACtE,IAAW,aAAa,YAAuE;IAC/F,IAAW,YAAY,YAAgE;IACvF,IAAoB,uBAAuB,YAE1C;IAED,IAAoB,kBAAkB,YAKrC;IAED,IAAoB,SAAS,SAAmB;IAChD,IAAoB,MAAM,cAAwB;IAClD,IAAoB,YAAY,cAAwB;IAExD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAmBxE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/D,IAAW,WAAW,IAAI,WAAW,CAAgC;IACrE,IAAoB,YAAY,YAAyB;IACzD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,WAAW,IAAI,WAAW,CASpC;IAEe,QAAQ,CAAC,MAAM,EAAE,MAAM;IAOvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoF7C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAmBnD,IAAoB,YAAY,IAAI,YAAY,GAAG,SAAS,CAAmC;IAExF,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIhD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIlD,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAwDhF,OAAO;IASP,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,cAAc;CAavB"}
@@ -6,7 +6,7 @@
6
6
  * @module WebGL
7
7
  */
8
8
  import { assert, dispose } from "@itwin/core-bentley";
9
- import { FillFlags, RenderMode, TextureTransparency } from "@itwin/core-common";
9
+ import { FillFlags, RenderMode, TextureTransparency, ThematicGradientTransparencyMode } from "@itwin/core-common";
10
10
  import { SurfaceType } from "../../common/render/primitives/SurfaceParams";
11
11
  import { AttributeMap } from "./AttributeMap";
12
12
  import { GL } from "./GL";
@@ -104,7 +104,8 @@ export class SurfaceGeometry extends MeshGeometry {
104
104
  return target.isReadPixelsInProgress ? opaquePass : "translucent";
105
105
  const vf = target.currentViewFlags;
106
106
  // When rendering thematic isolines, we need translucency because they have anti-aliasing.
107
- if (target.wantThematicDisplay && this.supportsThematicDisplay && target.uniforms.thematic.wantIsoLines)
107
+ const thematic = target.wantThematicDisplay && this.supportsThematicDisplay ? target.uniforms.thematic.thematicDisplay : undefined;
108
+ if (thematic && target.uniforms.thematic.wantIsoLines)
108
109
  return "translucent";
109
110
  // In wireframe, unless fill is explicitly enabled for planar region, surface does not draw
110
111
  if (RenderMode.Wireframe === vf.renderMode && !this.mesh.isTextureAlwaysDisplayed) {
@@ -116,6 +117,18 @@ export class SurfaceGeometry extends MeshGeometry {
116
117
  // If transparency disabled by render mode or view flag, always draw opaque.
117
118
  if (!vf.transparency || RenderMode.SolidFill === vf.renderMode || RenderMode.HiddenLine === vf.renderMode)
118
119
  return opaquePass;
120
+ // A gradient texture applied by analysis style always fully determines the transparency of the surface.
121
+ if (this.hasScalarAnimation && undefined !== target.analysisTexture) {
122
+ assert(undefined !== target.analysisStyle?.thematic);
123
+ switch (target.analysisStyle.thematic.thematicSettings.textureTransparency) {
124
+ case TextureTransparency.Translucent:
125
+ return "translucent";
126
+ case TextureTransparency.Opaque:
127
+ return opaquePass;
128
+ case TextureTransparency.Mixed:
129
+ return `${opaquePass}-translucent`;
130
+ }
131
+ }
119
132
  // We have 3 sources of alpha: the material, the texture, and the color.
120
133
  // Base alpha comes from the material if it overrides it; otherwise from the color.
121
134
  // The texture's alpha is multiplied by the base alpha.
@@ -126,8 +139,21 @@ export class SurfaceGeometry extends MeshGeometry {
126
139
  hasAlpha = mat.hasTranslucency;
127
140
  else
128
141
  hasAlpha = this.getColor(target).hasTranslucency;
142
+ // Thematic gradient can optionally multiply gradient alpha with surface alpha.
143
+ if (thematic && thematic.gradientSettings.transparencyMode === ThematicGradientTransparencyMode.MultiplySurfaceAndGradient) {
144
+ switch (thematic.gradientSettings.textureTransparency) {
145
+ case TextureTransparency.Opaque:
146
+ // This surface's alpha gets multiplied by 1 - gradient colors are all opaque.
147
+ return hasAlpha ? "translucent" : opaquePass;
148
+ case TextureTransparency.Translucent:
149
+ // This surface's alpha gets multiplied by < 1 - gradient colors are all translucent.
150
+ return "translucent";
151
+ case TextureTransparency.Mixed:
152
+ // The gradient contains a mix of translucent and opaque colors.
153
+ return hasAlpha ? "translucent" : `${opaquePass}-translucent`;
154
+ }
155
+ }
129
156
  if (!hasAlpha) {
130
- // ###TODO handle TextureTransparency.Mixed; remove Texture.hasTranslucency.
131
157
  const tex = this.wantTextures(target, true) ? this.texture : undefined;
132
158
  switch (tex?.transparency) {
133
159
  case TextureTransparency.Translucent: