@cesium/engine 26.2.0 → 26.3.1-wasm.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +707 -600
  2. package/Build/Workers/chunk-2P3WKV6V.js +290 -0
  3. package/Build/Workers/{chunk-M6QKXVAU.js → chunk-2U5272QU.js} +17 -17
  4. package/Build/Workers/{chunk-NEFDMMLY.js → chunk-4KCOC6OZ.js} +8 -10
  5. package/Build/Workers/{chunk-SJYSIOEM.js → chunk-5FULJNWY.js} +11 -13
  6. package/Build/Workers/{chunk-NCL22ZUX.js → chunk-65ZF23AQ.js} +1 -1
  7. package/Build/Workers/{chunk-KP5QD7WU.js → chunk-6D5534B7.js} +10 -12
  8. package/Build/Workers/{chunk-FX3VEAIU.js → chunk-6GFMBHBD.js} +19 -19
  9. package/Build/Workers/{chunk-A62YI6S6.js → chunk-6VRGQF3D.js} +4 -4
  10. package/Build/Workers/{chunk-DSGLDRTI.js → chunk-6XUIECFB.js} +4 -6
  11. package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-7KWUH6RK.js} +14 -14
  12. package/Build/Workers/{chunk-UAZUP4I5.js → chunk-7ZBJRQQT.js} +7 -7
  13. package/Build/Workers/{chunk-CRCGE4J4.js → chunk-AEHANE5A.js} +991 -5612
  14. package/Build/Workers/chunk-AUU74SIZ.js +2420 -0
  15. package/Build/Workers/{chunk-ARZICEEP.js → chunk-B6V5NMIE.js} +13 -11
  16. package/Build/Workers/{chunk-76FDC45O.js → chunk-BRQ52ASU.js} +15 -17
  17. package/Build/Workers/{chunk-SA2A2AN5.js → chunk-FVLSQBPH.js} +7 -14
  18. package/Build/Workers/{chunk-CUTRKXUQ.js → chunk-IFKM2GZR.js} +12 -12
  19. package/Build/Workers/{chunk-NSKZ6SBK.js → chunk-KF6OEWVT.js} +17 -17
  20. package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-KOAXSU77.js} +5 -7
  21. package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-KRVYCMGN.js} +6 -6
  22. package/Build/Workers/{chunk-SXSP3JHS.js → chunk-LTZRLNQP.js} +1 -1
  23. package/Build/Workers/{chunk-6FZDPMTO.js → chunk-M7WEAGWT.js} +8 -8
  24. package/Build/Workers/{chunk-NXGQBQWE.js → chunk-MJTLGN63.js} +14 -14
  25. package/Build/Workers/{chunk-XCBZVTIV.js → chunk-MUNZ77KV.js} +1 -1
  26. package/Build/Workers/{chunk-NLLCQBX3.js → chunk-NC5BUJEF.js} +2 -2
  27. package/Build/Workers/chunk-NYKURYFR.js +2131 -0
  28. package/Build/Workers/{chunk-5LSOO2KD.js → chunk-NZAQG57U.js} +7 -7
  29. package/Build/Workers/{chunk-DZUFEE4L.js → chunk-O5GUOP2G.js} +5 -7
  30. package/Build/Workers/{chunk-D6AY775A.js → chunk-OQUOLQTN.js} +8 -10
  31. package/Build/Workers/{chunk-CDJDJ5LK.js → chunk-OUG5JB2K.js} +16 -14
  32. package/Build/Workers/{chunk-ACTVJHSP.js → chunk-P4SDLSGF.js} +13 -6
  33. package/Build/Workers/{chunk-MAAHFYPC.js → chunk-P6PC2OIM.js} +7 -7
  34. package/Build/Workers/{chunk-6YR6JBMY.js → chunk-PPRK3XQU.js} +31 -35
  35. package/Build/Workers/{chunk-IMBVP57H.js → chunk-QGTYLWOT.js} +2 -2
  36. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-QHTLIQUH.js} +5 -7
  37. package/Build/Workers/{chunk-EZGQPOIG.js → chunk-ROHWZQZ5.js} +5 -5
  38. package/Build/Workers/{chunk-B3QHNA4A.js → chunk-SNUWISJO.js} +6 -8
  39. package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-T67YY3KP.js} +4 -2
  40. package/Build/Workers/{chunk-IJZJMIUY.js → chunk-TF5473GK.js} +13 -13
  41. package/Build/Workers/{chunk-OZGPS7FB.js → chunk-THHFTMAL.js} +4 -6
  42. package/Build/Workers/{chunk-PRWUMCXF.js → chunk-UFCZ62WM.js} +15 -13
  43. package/Build/Workers/{chunk-27FWRTJI.js → chunk-UV2YC2Q5.js} +11 -11
  44. package/Build/Workers/{chunk-N7CCOFLX.js → chunk-V4ICCWYA.js} +1 -1
  45. package/Build/Workers/{chunk-GHXVQVUM.js → chunk-VC6XXI2Z.js} +9 -9
  46. package/Build/Workers/{chunk-I74ZH5LK.js → chunk-VXJ6P4UI.js} +10 -10
  47. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-W2BKP7G7.js} +15 -17
  48. package/Build/Workers/{chunk-LDRQSYBN.js → chunk-WMVGNBSH.js} +2 -2
  49. package/Build/Workers/{chunk-SMTGMFBL.js → chunk-XFZMQZSZ.js} +4 -4
  50. package/Build/Workers/{chunk-7MM3N2VE.js → chunk-XJ532R6R.js} +20 -20
  51. package/Build/Workers/{chunk-NJVBJG63.js → chunk-YJNU4SM4.js} +5 -5
  52. package/Build/Workers/{chunk-DIGUUD6G.js → chunk-YJRDTEHQ.js} +8 -8
  53. package/Build/Workers/chunk-YUICDZKO.js +2660 -0
  54. package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-Z3DEVGJV.js} +7 -7
  55. package/Build/Workers/{chunk-3PSS3T43.js → chunk-ZECGI7UZ.js} +4 -4
  56. package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-ZFLPVPUJ.js} +6 -8
  57. package/Build/Workers/{chunk-2RGJPWQX.js → chunk-ZIM5H2DB.js} +11 -11
  58. package/Build/Workers/{chunk-GVA7XQI2.js → chunk-ZSQMGGSB.js} +14 -16
  59. package/Build/Workers/{chunk-FU4BGABC.js → chunk-ZWYRGMBK.js} +16 -18
  60. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-ZY733NZA.js} +1 -1
  61. package/Build/Workers/combineGeometry.js +24 -24
  62. package/Build/Workers/createBoxGeometry.js +18 -18
  63. package/Build/Workers/createBoxOutlineGeometry.js +20 -19
  64. package/Build/Workers/createCircleGeometry.js +28 -27
  65. package/Build/Workers/createCircleOutlineGeometry.js +21 -20
  66. package/Build/Workers/createCoplanarPolygonGeometry.js +34 -34
  67. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +33 -32
  68. package/Build/Workers/createCorridorGeometry.js +31 -31
  69. package/Build/Workers/createCorridorOutlineGeometry.js +30 -30
  70. package/Build/Workers/createCylinderGeometry.js +20 -20
  71. package/Build/Workers/createCylinderOutlineGeometry.js +22 -21
  72. package/Build/Workers/createEllipseGeometry.js +26 -26
  73. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  74. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  75. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  76. package/Build/Workers/createFrustumGeometry.js +18 -18
  77. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  78. package/Build/Workers/createGeometry.js +27 -26
  79. package/Build/Workers/createGroundPolylineGeometry.js +27 -26
  80. package/Build/Workers/createPlaneGeometry.js +18 -17
  81. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  82. package/Build/Workers/createPolygonGeometry.js +35 -35
  83. package/Build/Workers/createPolygonOutlineGeometry.js +34 -34
  84. package/Build/Workers/createPolylineGeometry.js +28 -29
  85. package/Build/Workers/createPolylineVolumeGeometry.js +34 -35
  86. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +30 -31
  87. package/Build/Workers/createRectangleGeometry.js +30 -30
  88. package/Build/Workers/createRectangleOutlineGeometry.js +23 -24
  89. package/Build/Workers/createSimplePolylineGeometry.js +26 -27
  90. package/Build/Workers/createSphereGeometry.js +19 -19
  91. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  92. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  93. package/Build/Workers/createVectorTileClampedPolylines.js +17 -16
  94. package/Build/Workers/createVectorTileGeometries.js +24 -24
  95. package/Build/Workers/createVectorTilePoints.js +13 -13
  96. package/Build/Workers/createVectorTilePolygons.js +22 -22
  97. package/Build/Workers/createVectorTilePolylines.js +17 -16
  98. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +36 -26
  99. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -24
  100. package/Build/Workers/createVerticesFromHeightmap.js +24 -25
  101. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  102. package/Build/Workers/createWallGeometry.js +27 -28
  103. package/Build/Workers/createWallOutlineGeometry.js +26 -27
  104. package/Build/Workers/decodeDraco.js +16 -12
  105. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +336 -337
  106. package/Build/Workers/decodeI3S.js +17 -12
  107. package/Build/Workers/{chunk-GXWQZBAI.js → decodeMeshopt.js} +23 -29
  108. package/Build/Workers/decodeSpz.js +1960 -0
  109. package/Build/Workers/gaussianSplatSorter.js +13 -6
  110. package/Build/Workers/gaussianSplatTextureGenerator.js +13 -6
  111. package/Build/Workers/incrementallyBuildTerrainPicker.js +9 -10
  112. package/Build/Workers/transcodeKTX2.js +26 -12
  113. package/Build/Workers/transferTypedArrayTest.js +1 -1
  114. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  115. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  116. package/Source/Core/Cesium3DTilesTerrainData.js +11 -1
  117. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +33 -23
  118. package/Source/Core/Ion.js +1 -1
  119. package/Source/Core/IonResource.js +5 -0
  120. package/Source/Core/IonSnapGeometryType.js +59 -0
  121. package/Source/Core/IonSnapHeat.js +33 -0
  122. package/Source/Core/IonSnapMode.js +45 -0
  123. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  124. package/Source/Core/IonSnapService.js +369 -0
  125. package/Source/Core/KTX2Transcoder.js +99 -5
  126. package/Source/Core/Resource.js +2 -0
  127. package/Source/Core/SnapService.js +63 -0
  128. package/Source/Core/TaskProcessor.js +249 -129
  129. package/Source/Core/TrustedServers.js +34 -1
  130. package/Source/Core/VectorPipeline.js +139 -45
  131. package/Source/Core/VectorProvider.js +311 -71
  132. package/Source/Core/WebAssemblyWorkerInitializer.js +125 -0
  133. package/Source/Core/fetchWebAssemblyBinary.js +52 -0
  134. package/Source/Renderer/AutomaticUniforms.js +44 -2
  135. package/Source/Renderer/ShaderBuilder.js +1 -1
  136. package/Source/Renderer/UniformState.js +47 -1
  137. package/Source/Scene/ArcGisMapService.js +1 -1
  138. package/Source/Scene/BufferPointCollection.js +4 -7
  139. package/Source/Scene/BufferPolygonCollection.js +56 -27
  140. package/Source/Scene/BufferPolylineCollection.js +61 -8
  141. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  142. package/Source/Scene/BufferPrimitiveCollection.js +199 -29
  143. package/Source/Scene/Cesium3DTile.js +12 -0
  144. package/Source/Scene/Cesium3DTileset.js +61 -8
  145. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  146. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  147. package/Source/Scene/ClippingPolygon.js +154 -100
  148. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  149. package/Source/Scene/CreditDisplay.js +62 -0
  150. package/Source/Scene/GaussianSplatPrimitive.js +153 -66
  151. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  152. package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
  153. package/Source/Scene/GlobeSurfaceTile.js +14 -1
  154. package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
  155. package/Source/Scene/GltfBufferViewLoader.js +25 -13
  156. package/Source/Scene/GltfLoader.js +56 -6
  157. package/Source/Scene/GltfSpzLoader.js +5 -4
  158. package/Source/Scene/HeightReference.js +1 -1
  159. package/Source/Scene/MVTDataProvider.js +9 -0
  160. package/Source/Scene/Model/Model.js +242 -16
  161. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  162. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  163. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  164. package/Source/Scene/Model/ModelSceneGraph.js +10 -1
  165. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  166. package/Source/Scene/Model/PickingPipelineStage.js +4 -0
  167. package/Source/Scene/PostProcessStage.js +22 -3
  168. package/Source/Scene/Scene.js +56 -1
  169. package/Source/Scene/Snapping.js +57 -0
  170. package/Source/Scene/SpzDecoder.js +106 -0
  171. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
  172. package/Source/Scene/VectorGltf3DTileContent.js +10 -2
  173. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  174. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  175. package/Source/Scene/renderBufferPolylineCollection.js +5 -1
  176. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  177. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  178. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
  179. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  180. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  181. package/Source/Shaders/GlobeFS.glsl +10 -9
  182. package/Source/Shaders/GlobeFS.js +11 -9
  183. package/Source/Shaders/GlobeVS.glsl +0 -32
  184. package/Source/Shaders/GlobeVS.js +0 -32
  185. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  186. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  187. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  188. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  189. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  190. package/Source/Shaders/Model/ModelFS.js +4 -0
  191. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  192. package/Source/Shaders/Model/ModelVS.js +7 -2
  193. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  194. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  195. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  196. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  197. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  198. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  199. package/Source/Shaders/VectorCommon.glsl +177 -50
  200. package/Source/Shaders/VectorCommon.js +251 -19
  201. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  202. package/Source/ThirdParty/zip-module.wasm +0 -0
  203. package/Source/Workers/createTaskProcessorWorker.js +2 -0
  204. package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +13 -1
  205. package/Source/Workers/decodeDraco.js +7 -3
  206. package/Source/Workers/decodeI3S.js +7 -3
  207. package/Source/Workers/decodeMeshopt.js +21 -0
  208. package/Source/Workers/decodeSpz.js +20 -0
  209. package/Source/Workers/gaussianSplatSorter.js +7 -3
  210. package/Source/Workers/gaussianSplatTextureGenerator.js +7 -3
  211. package/Source/Workers/transcodeKTX2.js +22 -5
  212. package/index.d.ts +649 -55
  213. package/index.js +23 -13
  214. package/package.json +6 -6
  215. package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
  216. package/Build/Workers/chunk-2H5264K7.js +0 -1284
  217. package/Build/Workers/chunk-2H73KDBM.js +0 -511
  218. package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
  219. package/Build/Workers/chunk-36NI5E6W.js +0 -3820
  220. package/Build/Workers/chunk-37SW7SYS.js +0 -778
  221. package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
  222. package/Build/Workers/chunk-3LB4UVPU.js +0 -387
  223. package/Build/Workers/chunk-3PONLKEL.js +0 -778
  224. package/Build/Workers/chunk-3QR662HH.js +0 -3820
  225. package/Build/Workers/chunk-3SX2WYSO.js +0 -973
  226. package/Build/Workers/chunk-3UDN6LYX.js +0 -476
  227. package/Build/Workers/chunk-47MCBSXI.js +0 -9237
  228. package/Build/Workers/chunk-4E626OCE.js +0 -1067
  229. package/Build/Workers/chunk-4NW2MJKH.js +0 -455
  230. package/Build/Workers/chunk-52YK5BSN.js +0 -198
  231. package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
  232. package/Build/Workers/chunk-5YPQBFRD.js +0 -519
  233. package/Build/Workers/chunk-6FHT43QR.js +0 -140
  234. package/Build/Workers/chunk-6HK6IXK2.js +0 -138
  235. package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
  236. package/Build/Workers/chunk-7A2OGDHT.js +0 -305
  237. package/Build/Workers/chunk-7CGEQUM2.js +0 -305
  238. package/Build/Workers/chunk-7D2HZKH7.js +0 -455
  239. package/Build/Workers/chunk-7I325HV6.js +0 -1344
  240. package/Build/Workers/chunk-7KVKHY7O.js +0 -147
  241. package/Build/Workers/chunk-7TKLTCZW.js +0 -219
  242. package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
  243. package/Build/Workers/chunk-7W6DUHAB.js +0 -693
  244. package/Build/Workers/chunk-7XM5JK5F.js +0 -162
  245. package/Build/Workers/chunk-7YG3ND3P.js +0 -454
  246. package/Build/Workers/chunk-A3O6EDBK.js +0 -73
  247. package/Build/Workers/chunk-A6X24AZI.js +0 -1992
  248. package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
  249. package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
  250. package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
  251. package/Build/Workers/chunk-AHWAZRBV.js +0 -82
  252. package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
  253. package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
  254. package/Build/Workers/chunk-BKPQFCXH.js +0 -511
  255. package/Build/Workers/chunk-BSPCI2LO.js +0 -959
  256. package/Build/Workers/chunk-BUJWSX5S.js +0 -301
  257. package/Build/Workers/chunk-C7JQVRLM.js +0 -497
  258. package/Build/Workers/chunk-C7QDUNI3.js +0 -138
  259. package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
  260. package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
  261. package/Build/Workers/chunk-CLCTQVVL.js +0 -241
  262. package/Build/Workers/chunk-CQNFIAZU.js +0 -56
  263. package/Build/Workers/chunk-DBD5WWG2.js +0 -959
  264. package/Build/Workers/chunk-DZBQUULR.js +0 -138
  265. package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
  266. package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
  267. package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
  268. package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
  269. package/Build/Workers/chunk-ELE6SC2C.js +0 -837
  270. package/Build/Workers/chunk-ENNFMWDW.js +0 -789
  271. package/Build/Workers/chunk-EOWDZN5S.js +0 -288
  272. package/Build/Workers/chunk-ERKUET22.js +0 -3201
  273. package/Build/Workers/chunk-F2IMBMZY.js +0 -241
  274. package/Build/Workers/chunk-F4CSNRZO.js +0 -219
  275. package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
  276. package/Build/Workers/chunk-FDK4K5IA.js +0 -280
  277. package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
  278. package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
  279. package/Build/Workers/chunk-FQ42MT7M.js +0 -58
  280. package/Build/Workers/chunk-GGNWQWSB.js +0 -301
  281. package/Build/Workers/chunk-GNKXEN4C.js +0 -682
  282. package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
  283. package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
  284. package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
  285. package/Build/Workers/chunk-H2WCFXLP.js +0 -241
  286. package/Build/Workers/chunk-HHV3MCGV.js +0 -162
  287. package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
  288. package/Build/Workers/chunk-HS6AD4P2.js +0 -398
  289. package/Build/Workers/chunk-HT6FASOT.js +0 -973
  290. package/Build/Workers/chunk-IDVHUDZT.js +0 -352
  291. package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
  292. package/Build/Workers/chunk-ILME5BXA.js +0 -301
  293. package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
  294. package/Build/Workers/chunk-IUIFLOYO.js +0 -44
  295. package/Build/Workers/chunk-J73T2VOY.js +0 -171
  296. package/Build/Workers/chunk-JALGQYDY.js +0 -288
  297. package/Build/Workers/chunk-JW6OZT4R.js +0 -288
  298. package/Build/Workers/chunk-JXYLJCTC.js +0 -124
  299. package/Build/Workers/chunk-K27QOAW6.js +0 -97
  300. package/Build/Workers/chunk-KMV25A63.js +0 -789
  301. package/Build/Workers/chunk-KZWFWJML.js +0 -2719
  302. package/Build/Workers/chunk-LCXRRALY.js +0 -387
  303. package/Build/Workers/chunk-LD64RPYV.js +0 -368
  304. package/Build/Workers/chunk-LGNDTZVX.js +0 -97
  305. package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
  306. package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
  307. package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
  308. package/Build/Workers/chunk-MEENMEAH.js +0 -198
  309. package/Build/Workers/chunk-NAWU5RF4.js +0 -162
  310. package/Build/Workers/chunk-NIWITKQK.js +0 -693
  311. package/Build/Workers/chunk-OA6MYL2C.js +0 -837
  312. package/Build/Workers/chunk-OBEU25PI.js +0 -1067
  313. package/Build/Workers/chunk-OHP4ELS7.js +0 -198
  314. package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
  315. package/Build/Workers/chunk-PD4GK4EM.js +0 -57
  316. package/Build/Workers/chunk-PEDU33QG.js +0 -2342
  317. package/Build/Workers/chunk-PVTSNNVI.js +0 -288
  318. package/Build/Workers/chunk-QHPZH22L.js +0 -241
  319. package/Build/Workers/chunk-QIZDWZK6.js +0 -301
  320. package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
  321. package/Build/Workers/chunk-QVLAFFJY.js +0 -56
  322. package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
  323. package/Build/Workers/chunk-R4K7EHOU.js +0 -171
  324. package/Build/Workers/chunk-R7JGHDD6.js +0 -789
  325. package/Build/Workers/chunk-RASQEYD4.js +0 -1483
  326. package/Build/Workers/chunk-RG4F5R57.js +0 -454
  327. package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
  328. package/Build/Workers/chunk-RYSQVJR6.js +0 -398
  329. package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
  330. package/Build/Workers/chunk-SDFHDNS4.js +0 -147
  331. package/Build/Workers/chunk-SF6K72D7.js +0 -124
  332. package/Build/Workers/chunk-SGRGNDOD.js +0 -682
  333. package/Build/Workers/chunk-SM2CDCYF.js +0 -198
  334. package/Build/Workers/chunk-SS5ABQGY.js +0 -102
  335. package/Build/Workers/chunk-T5QBPLE3.js +0 -414
  336. package/Build/Workers/chunk-TN35HP5B.js +0 -1067
  337. package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
  338. package/Build/Workers/chunk-TOAF47AQ.js +0 -102
  339. package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
  340. package/Build/Workers/chunk-TSDSILQB.js +0 -124
  341. package/Build/Workers/chunk-TVZD72WJ.js +0 -778
  342. package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
  343. package/Build/Workers/chunk-UEY73NRN.js +0 -38
  344. package/Build/Workers/chunk-UF46SZEZ.js +0 -789
  345. package/Build/Workers/chunk-UNRTMCET.js +0 -398
  346. package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
  347. package/Build/Workers/chunk-UVO6COT2.js +0 -352
  348. package/Build/Workers/chunk-V46YGZE6.js +0 -352
  349. package/Build/Workers/chunk-VAL7DYNR.js +0 -278
  350. package/Build/Workers/chunk-VDGOCROW.js +0 -57
  351. package/Build/Workers/chunk-VFWSSBPT.js +0 -511
  352. package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
  353. package/Build/Workers/chunk-VXWHPYQM.js +0 -837
  354. package/Build/Workers/chunk-VXYUBRSB.js +0 -219
  355. package/Build/Workers/chunk-VZLDLEWI.js +0 -387
  356. package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
  357. package/Build/Workers/chunk-WBSY7HDY.js +0 -837
  358. package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
  359. package/Build/Workers/chunk-WPRUWXGV.js +0 -693
  360. package/Build/Workers/chunk-WTO2ERBP.js +0 -414
  361. package/Build/Workers/chunk-WVHMDVG4.js +0 -959
  362. package/Build/Workers/chunk-XGA23TAX.js +0 -73
  363. package/Build/Workers/chunk-XLQZNQ4Z.js +0 -163
  364. package/Build/Workers/chunk-XLXSDIP5.js +0 -973
  365. package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
  366. package/Build/Workers/chunk-XQH66YJC.js +0 -147
  367. package/Build/Workers/chunk-XTA7BXJG.js +0 -682
  368. package/Build/Workers/chunk-XTIDAFRS.js +0 -476
  369. package/Build/Workers/chunk-XUEDWBUD.js +0 -682
  370. package/Build/Workers/chunk-XYFLRH3H.js +0 -124
  371. package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
  372. package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
  373. package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
  374. package/Build/Workers/chunk-YEYOSTJX.js +0 -219
  375. package/Build/Workers/chunk-YGFVAGYF.js +0 -630
  376. package/Build/Workers/chunk-YIIACKQO.js +0 -368
  377. package/Build/Workers/chunk-YJGSP6PE.js +0 -511
  378. package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
  379. package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
  380. package/Build/Workers/chunk-Z66EVE2A.js +0 -44
  381. package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
  382. package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
  383. package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
  384. package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
  385. package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
  386. package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
  387. package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
  388. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  389. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  390. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  391. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  392. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  393. package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
@@ -0,0 +1,2131 @@
1
+ /**
2
+ * @license
3
+ * Cesium - https://github.com/CesiumGS/cesium
4
+ * Version 1.145.1-wasm.0
5
+ *
6
+ * Copyright 2011-2022 Cesium Contributors
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ *
20
+ * Columbus View (Pat. Pend.)
21
+ *
22
+ * Portions licensed separately.
23
+ * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
24
+ */
25
+
26
+ import {
27
+ Frozen_default,
28
+ Math_default
29
+ } from "./chunk-P4SDLSGF.js";
30
+ import {
31
+ Check_default,
32
+ RuntimeError_default
33
+ } from "./chunk-PPRK3XQU.js";
34
+ import {
35
+ DeveloperError_default,
36
+ TrustedServers_default,
37
+ __toESM,
38
+ defined_default,
39
+ require_URI
40
+ } from "./chunk-YUICDZKO.js";
41
+
42
+ // packages/engine/Source/Core/combine.js
43
+ function combine(object1, object2, deep) {
44
+ deep = deep ?? false;
45
+ const result = {};
46
+ const object1Defined = defined_default(object1);
47
+ const object2Defined = defined_default(object2);
48
+ let property;
49
+ let object1Value;
50
+ let object2Value;
51
+ if (object1Defined) {
52
+ for (property in object1) {
53
+ if (object1.hasOwnProperty(property)) {
54
+ object1Value = object1[property];
55
+ if (object2Defined && deep && typeof object1Value === "object" && object2.hasOwnProperty(property)) {
56
+ object2Value = object2[property];
57
+ if (typeof object2Value === "object") {
58
+ result[property] = combine(object1Value, object2Value, deep);
59
+ } else {
60
+ result[property] = object1Value;
61
+ }
62
+ } else {
63
+ result[property] = object1Value;
64
+ }
65
+ }
66
+ }
67
+ }
68
+ if (object2Defined) {
69
+ for (property in object2) {
70
+ if (object2.hasOwnProperty(property) && !result.hasOwnProperty(property)) {
71
+ object2Value = object2[property];
72
+ result[property] = object2Value;
73
+ }
74
+ }
75
+ }
76
+ return result;
77
+ }
78
+ var combine_default = combine;
79
+
80
+ // packages/engine/Source/Core/Resource.js
81
+ var import_urijs5 = __toESM(require_URI(), 1);
82
+
83
+ // packages/engine/Source/Core/appendForwardSlash.js
84
+ function appendForwardSlash(url) {
85
+ if (url.length === 0 || url[url.length - 1] !== "/") {
86
+ url = `${url}/`;
87
+ }
88
+ return url;
89
+ }
90
+ var appendForwardSlash_default = appendForwardSlash;
91
+
92
+ // packages/engine/Source/Core/clone.js
93
+ function clone(object, deep) {
94
+ if (object === null || typeof object !== "object") {
95
+ return object;
96
+ }
97
+ deep = deep ?? false;
98
+ const result = new object.constructor();
99
+ for (const propertyName in object) {
100
+ if (object.hasOwnProperty(propertyName)) {
101
+ let value = object[propertyName];
102
+ if (deep) {
103
+ value = clone(value, deep);
104
+ }
105
+ result[propertyName] = value;
106
+ }
107
+ }
108
+ return result;
109
+ }
110
+ var clone_default = clone;
111
+
112
+ // packages/engine/Source/Core/defer.js
113
+ function defer() {
114
+ let resolve;
115
+ let reject;
116
+ const promise = new Promise(function(res, rej) {
117
+ resolve = res;
118
+ reject = rej;
119
+ });
120
+ return {
121
+ resolve,
122
+ reject,
123
+ promise
124
+ };
125
+ }
126
+ var defer_default = defer;
127
+
128
+ // packages/engine/Source/Core/getAbsoluteUri.js
129
+ var import_urijs = __toESM(require_URI(), 1);
130
+ function getAbsoluteUri(relative, base) {
131
+ let documentObject;
132
+ if (typeof document !== "undefined") {
133
+ documentObject = document;
134
+ }
135
+ return getAbsoluteUri._implementation(relative, base, documentObject);
136
+ }
137
+ getAbsoluteUri._implementation = function(relative, base, documentObject) {
138
+ if (!defined_default(relative)) {
139
+ throw new DeveloperError_default("relative uri is required.");
140
+ }
141
+ if (!defined_default(base)) {
142
+ if (typeof documentObject === "undefined") {
143
+ return relative;
144
+ }
145
+ base = documentObject.baseURI ?? documentObject.location.href;
146
+ }
147
+ const relativeUri = new import_urijs.default(relative);
148
+ if (relativeUri.scheme() !== "") {
149
+ return relativeUri.toString();
150
+ }
151
+ return relativeUri.absoluteTo(base).toString();
152
+ };
153
+ var getAbsoluteUri_default = getAbsoluteUri;
154
+
155
+ // packages/engine/Source/Core/getBaseUri.js
156
+ var import_urijs2 = __toESM(require_URI(), 1);
157
+ function getBaseUri(uri, includeQuery) {
158
+ if (!defined_default(uri)) {
159
+ throw new DeveloperError_default("uri is required.");
160
+ }
161
+ let basePath = "";
162
+ const i = uri.lastIndexOf("/");
163
+ if (i !== -1) {
164
+ basePath = uri.substring(0, i + 1);
165
+ }
166
+ if (!includeQuery) {
167
+ return basePath;
168
+ }
169
+ uri = new import_urijs2.default(uri);
170
+ if (uri.query().length !== 0) {
171
+ basePath += `?${uri.query()}`;
172
+ }
173
+ if (uri.fragment().length !== 0) {
174
+ basePath += `#${uri.fragment()}`;
175
+ }
176
+ return basePath;
177
+ }
178
+ var getBaseUri_default = getBaseUri;
179
+
180
+ // packages/engine/Source/Core/getExtensionFromUri.js
181
+ var import_urijs3 = __toESM(require_URI(), 1);
182
+ function getExtensionFromUri(uri) {
183
+ if (!defined_default(uri)) {
184
+ throw new DeveloperError_default("uri is required.");
185
+ }
186
+ const uriObject = new import_urijs3.default(uri);
187
+ uriObject.normalize();
188
+ let path = uriObject.path();
189
+ let index = path.lastIndexOf("/");
190
+ if (index !== -1) {
191
+ path = path.substr(index + 1);
192
+ }
193
+ index = path.lastIndexOf(".");
194
+ if (index === -1) {
195
+ path = "";
196
+ } else {
197
+ path = path.substr(index + 1);
198
+ }
199
+ return path;
200
+ }
201
+ var getExtensionFromUri_default = getExtensionFromUri;
202
+
203
+ // packages/engine/Source/Core/getImagePixels.js
204
+ var context2DsByWidthAndHeight = {};
205
+ function getImagePixels(image, width, height) {
206
+ if (!defined_default(width)) {
207
+ width = image.width;
208
+ }
209
+ if (!defined_default(height)) {
210
+ height = image.height;
211
+ }
212
+ let context2DsByHeight = context2DsByWidthAndHeight[width];
213
+ if (!defined_default(context2DsByHeight)) {
214
+ context2DsByHeight = {};
215
+ context2DsByWidthAndHeight[width] = context2DsByHeight;
216
+ }
217
+ let context2d = context2DsByHeight[height];
218
+ if (!defined_default(context2d)) {
219
+ const canvas = document.createElement("canvas");
220
+ canvas.width = width;
221
+ canvas.height = height;
222
+ context2d = canvas.getContext("2d", { willReadFrequently: true });
223
+ context2d.globalCompositeOperation = "copy";
224
+ context2DsByHeight[height] = context2d;
225
+ }
226
+ context2d.drawImage(image, 0, 0, width, height);
227
+ return context2d.getImageData(0, 0, width, height).data;
228
+ }
229
+ var getImagePixels_default = getImagePixels;
230
+
231
+ // packages/engine/Source/Core/isBlobUri.js
232
+ var blobUriRegex = /^blob:/i;
233
+ function isBlobUri(uri) {
234
+ Check_default.typeOf.string("uri", uri);
235
+ return blobUriRegex.test(uri);
236
+ }
237
+ var isBlobUri_default = isBlobUri;
238
+
239
+ // packages/engine/Source/Core/isCrossOriginUrl.js
240
+ var a;
241
+ function isCrossOriginUrl(url) {
242
+ if (!defined_default(a)) {
243
+ a = document.createElement("a");
244
+ }
245
+ a.href = window.location.href;
246
+ const host = a.host;
247
+ const protocol = a.protocol;
248
+ a.href = url;
249
+ a.href = a.href;
250
+ return protocol !== a.protocol || host !== a.host;
251
+ }
252
+ var isCrossOriginUrl_default = isCrossOriginUrl;
253
+
254
+ // packages/engine/Source/Core/isDataUri.js
255
+ var dataUriRegex = /^data:/i;
256
+ function isDataUri(uri) {
257
+ Check_default.typeOf.string("uri", uri);
258
+ return dataUriRegex.test(uri);
259
+ }
260
+ var isDataUri_default = isDataUri;
261
+
262
+ // packages/engine/Source/Core/loadAndExecuteScript.js
263
+ function loadAndExecuteScript(url) {
264
+ const script = document.createElement("script");
265
+ script.async = true;
266
+ script.src = url;
267
+ return new Promise((resolve, reject) => {
268
+ if (window.crossOriginIsolated) {
269
+ script.setAttribute("crossorigin", "anonymous");
270
+ }
271
+ const head = document.getElementsByTagName("head")[0];
272
+ script.onload = function() {
273
+ script.onload = void 0;
274
+ head.removeChild(script);
275
+ resolve();
276
+ };
277
+ script.onerror = function(e) {
278
+ reject(e);
279
+ };
280
+ head.appendChild(script);
281
+ });
282
+ }
283
+ var loadAndExecuteScript_default = loadAndExecuteScript;
284
+
285
+ // packages/engine/Source/Core/objectToQuery.js
286
+ function objectToQuery(obj) {
287
+ if (!defined_default(obj)) {
288
+ throw new DeveloperError_default("obj is required.");
289
+ }
290
+ let result = "";
291
+ for (const propName in obj) {
292
+ if (obj.hasOwnProperty(propName)) {
293
+ const value = obj[propName];
294
+ const part = `${encodeURIComponent(propName)}=`;
295
+ if (Array.isArray(value)) {
296
+ for (let i = 0, len = value.length; i < len; ++i) {
297
+ result += `${part + encodeURIComponent(value[i])}&`;
298
+ }
299
+ } else {
300
+ result += `${part + encodeURIComponent(value)}&`;
301
+ }
302
+ }
303
+ }
304
+ result = result.slice(0, -1);
305
+ return result;
306
+ }
307
+ var objectToQuery_default = objectToQuery;
308
+
309
+ // packages/engine/Source/Core/queryToObject.js
310
+ function queryToObject(queryString) {
311
+ if (!defined_default(queryString)) {
312
+ throw new DeveloperError_default("queryString is required.");
313
+ }
314
+ const result = {};
315
+ if (queryString === "") {
316
+ return result;
317
+ }
318
+ const parts = queryString.replace(/\+/g, "%20").split(/[&;]/);
319
+ for (let i = 0, len = parts.length; i < len; ++i) {
320
+ const subparts = parts[i].split("=");
321
+ const name = decodeURIComponent(subparts[0]);
322
+ let value = subparts[1];
323
+ if (defined_default(value)) {
324
+ value = decodeURIComponent(value);
325
+ } else {
326
+ value = "";
327
+ }
328
+ const resultValue = result[name];
329
+ if (typeof resultValue === "string") {
330
+ result[name] = [resultValue, value];
331
+ } else if (Array.isArray(resultValue)) {
332
+ resultValue.push(value);
333
+ } else {
334
+ result[name] = value;
335
+ }
336
+ }
337
+ return result;
338
+ }
339
+ var queryToObject_default = queryToObject;
340
+
341
+ // packages/engine/Source/Core/RequestState.js
342
+ var RequestState = {
343
+ /**
344
+ * Initial unissued state.
345
+ *
346
+ * @type {number}
347
+ * @constant
348
+ */
349
+ UNISSUED: 0,
350
+ /**
351
+ * Issued but not yet active. Will become active when open slots are available.
352
+ *
353
+ * @type {number}
354
+ * @constant
355
+ */
356
+ ISSUED: 1,
357
+ /**
358
+ * Actual http request has been sent.
359
+ *
360
+ * @type {number}
361
+ * @constant
362
+ */
363
+ ACTIVE: 2,
364
+ /**
365
+ * Request completed successfully.
366
+ *
367
+ * @type {number}
368
+ * @constant
369
+ */
370
+ RECEIVED: 3,
371
+ /**
372
+ * Request was cancelled, either explicitly or automatically because of low priority.
373
+ *
374
+ * @type {number}
375
+ * @constant
376
+ */
377
+ CANCELLED: 4,
378
+ /**
379
+ * Request failed.
380
+ *
381
+ * @type {number}
382
+ * @constant
383
+ */
384
+ FAILED: 5
385
+ };
386
+ Object.freeze(RequestState);
387
+ var RequestState_default = RequestState;
388
+
389
+ // packages/engine/Source/Core/RequestType.js
390
+ var RequestType = {
391
+ /**
392
+ * Terrain request.
393
+ *
394
+ * @type {number}
395
+ * @constant
396
+ */
397
+ TERRAIN: 0,
398
+ /**
399
+ * Imagery request.
400
+ *
401
+ * @type {number}
402
+ * @constant
403
+ */
404
+ IMAGERY: 1,
405
+ /**
406
+ * 3D Tiles request.
407
+ *
408
+ * @type {number}
409
+ * @constant
410
+ */
411
+ TILES3D: 2,
412
+ /**
413
+ * Other request.
414
+ *
415
+ * @type {number}
416
+ * @constant
417
+ */
418
+ OTHER: 3
419
+ };
420
+ Object.freeze(RequestType);
421
+ var RequestType_default = RequestType;
422
+
423
+ // packages/engine/Source/Core/Request.js
424
+ function Request(options) {
425
+ options = options ?? Frozen_default.EMPTY_OBJECT;
426
+ const throttleByServer = options.throttleByServer ?? false;
427
+ const throttle = options.throttle ?? false;
428
+ this.url = options.url;
429
+ this.requestFunction = options.requestFunction;
430
+ this.cancelFunction = options.cancelFunction;
431
+ this.priorityFunction = options.priorityFunction;
432
+ this.priority = options.priority ?? 0;
433
+ this.throttle = throttle;
434
+ this.throttleByServer = throttleByServer;
435
+ this.type = options.type ?? RequestType_default.OTHER;
436
+ this.serverKey = options.serverKey;
437
+ this.state = RequestState_default.UNISSUED;
438
+ this.deferred = void 0;
439
+ this.cancelled = false;
440
+ }
441
+ Request.prototype.cancel = function() {
442
+ this.cancelled = true;
443
+ };
444
+ Request.prototype.clone = function(result) {
445
+ if (!defined_default(result)) {
446
+ return new Request(this);
447
+ }
448
+ result.url = this.url;
449
+ result.requestFunction = this.requestFunction;
450
+ result.cancelFunction = this.cancelFunction;
451
+ result.priorityFunction = this.priorityFunction;
452
+ result.priority = this.priority;
453
+ result.throttle = this.throttle;
454
+ result.throttleByServer = this.throttleByServer;
455
+ result.type = this.type;
456
+ result.serverKey = this.serverKey;
457
+ result.state = RequestState_default.UNISSUED;
458
+ result.deferred = void 0;
459
+ result.cancelled = false;
460
+ return result;
461
+ };
462
+ var Request_default = Request;
463
+
464
+ // packages/engine/Source/Core/parseResponseHeaders.js
465
+ function parseResponseHeaders(headerString) {
466
+ const headers = {};
467
+ if (!headerString) {
468
+ return headers;
469
+ }
470
+ const headerPairs = headerString.split("\r\n");
471
+ for (let i = 0; i < headerPairs.length; ++i) {
472
+ const headerPair = headerPairs[i];
473
+ const index = headerPair.indexOf(": ");
474
+ if (index > 0) {
475
+ const key = headerPair.substring(0, index);
476
+ const val = headerPair.substring(index + 2);
477
+ headers[key] = val;
478
+ }
479
+ }
480
+ return headers;
481
+ }
482
+ var parseResponseHeaders_default = parseResponseHeaders;
483
+
484
+ // packages/engine/Source/Core/RequestErrorEvent.js
485
+ function RequestErrorEvent(statusCode, response, responseHeaders) {
486
+ this.statusCode = statusCode;
487
+ this.response = response;
488
+ this.responseHeaders = responseHeaders;
489
+ if (typeof this.responseHeaders === "string") {
490
+ this.responseHeaders = parseResponseHeaders_default(this.responseHeaders);
491
+ }
492
+ }
493
+ RequestErrorEvent.prototype.toString = function() {
494
+ let str = "Request has failed.";
495
+ if (defined_default(this.statusCode)) {
496
+ str += ` Status Code: ${this.statusCode}`;
497
+ }
498
+ return str;
499
+ };
500
+ var RequestErrorEvent_default = RequestErrorEvent;
501
+
502
+ // packages/engine/Source/Core/RequestScheduler.js
503
+ var import_urijs4 = __toESM(require_URI(), 1);
504
+
505
+ // packages/engine/Source/Core/Event.js
506
+ function Event() {
507
+ this._listeners = /* @__PURE__ */ new Map();
508
+ this._toRemove = /* @__PURE__ */ new Map();
509
+ this._toAdd = /* @__PURE__ */ new Map();
510
+ this._invokingListeners = false;
511
+ this._listenerCount = 0;
512
+ }
513
+ Object.defineProperties(Event.prototype, {
514
+ /**
515
+ * The number of listeners currently subscribed to the event.
516
+ * @memberof Event.prototype
517
+ * @type {number}
518
+ * @readonly
519
+ */
520
+ numberOfListeners: {
521
+ get: function() {
522
+ return this._listenerCount;
523
+ }
524
+ }
525
+ });
526
+ Event.prototype.addEventListener = function(listener, scope) {
527
+ Check_default.typeOf.func("listener", listener);
528
+ const event = this;
529
+ const listenerMap = event._invokingListeners ? event._toAdd : event._listeners;
530
+ const added = addEventListener(this, listenerMap, listener, scope);
531
+ if (added) {
532
+ event._listenerCount++;
533
+ }
534
+ return function() {
535
+ event.removeEventListener(listener, scope);
536
+ };
537
+ };
538
+ function addEventListener(event, listenerMap, listener, scope) {
539
+ if (!listenerMap.has(listener)) {
540
+ listenerMap.set(listener, /* @__PURE__ */ new Set());
541
+ }
542
+ const scopes = listenerMap.get(listener);
543
+ if (!scopes.has(scope)) {
544
+ scopes.add(scope);
545
+ return true;
546
+ }
547
+ return false;
548
+ }
549
+ Event.prototype.removeEventListener = function(listener, scope) {
550
+ Check_default.typeOf.func("listener", listener);
551
+ const removedFromListeners = removeEventListener(
552
+ this,
553
+ this._listeners,
554
+ listener,
555
+ scope
556
+ );
557
+ const removedFromToAdd = removeEventListener(
558
+ this,
559
+ this._toAdd,
560
+ listener,
561
+ scope
562
+ );
563
+ const removed = removedFromListeners || removedFromToAdd;
564
+ if (removed) {
565
+ this._listenerCount--;
566
+ }
567
+ return removed;
568
+ };
569
+ function removeEventListener(event, listenerMap, listener, scope) {
570
+ const scopes = listenerMap.get(listener);
571
+ if (!scopes || !scopes.has(scope)) {
572
+ return false;
573
+ }
574
+ if (event._invokingListeners) {
575
+ if (!addEventListener(event, event._toRemove, listener, scope)) {
576
+ return false;
577
+ }
578
+ } else {
579
+ scopes.delete(scope);
580
+ if (scopes.size === 0) {
581
+ listenerMap.delete(listener);
582
+ }
583
+ }
584
+ return true;
585
+ }
586
+ Event.prototype.raiseEvent = function() {
587
+ this._invokingListeners = true;
588
+ for (const [listener, scopes] of this._listeners.entries()) {
589
+ if (!defined_default(listener)) {
590
+ continue;
591
+ }
592
+ for (const scope of scopes) {
593
+ listener.apply(scope, arguments);
594
+ }
595
+ }
596
+ this._invokingListeners = false;
597
+ for (const [listener, scopes] of this._toAdd.entries()) {
598
+ for (const scope of scopes) {
599
+ addEventListener(this, this._listeners, listener, scope);
600
+ }
601
+ }
602
+ this._toAdd.clear();
603
+ for (const [listener, scopes] of this._toRemove.entries()) {
604
+ for (const scope of scopes) {
605
+ removeEventListener(this, this._listeners, listener, scope);
606
+ }
607
+ }
608
+ this._toRemove.clear();
609
+ };
610
+ var Event_default = Event;
611
+
612
+ // packages/engine/Source/Core/Heap.js
613
+ function Heap(options) {
614
+ Check_default.typeOf.object("options", options);
615
+ Check_default.defined("options.comparator", options.comparator);
616
+ this._comparator = options.comparator;
617
+ this._array = [];
618
+ this._length = 0;
619
+ this._maximumLength = void 0;
620
+ }
621
+ Object.defineProperties(Heap.prototype, {
622
+ /**
623
+ * Gets the length of the heap.
624
+ *
625
+ * @memberof Heap.prototype
626
+ *
627
+ * @type {number}
628
+ * @readonly
629
+ */
630
+ length: {
631
+ get: function() {
632
+ return this._length;
633
+ }
634
+ },
635
+ /**
636
+ * Gets the internal array.
637
+ *
638
+ * @memberof Heap.prototype
639
+ *
640
+ * @type {Array}
641
+ * @readonly
642
+ */
643
+ internalArray: {
644
+ get: function() {
645
+ return this._array;
646
+ }
647
+ },
648
+ /**
649
+ * Gets and sets the maximum length of the heap.
650
+ *
651
+ * @memberof Heap.prototype
652
+ *
653
+ * @type {number}
654
+ */
655
+ maximumLength: {
656
+ get: function() {
657
+ return this._maximumLength;
658
+ },
659
+ set: function(value) {
660
+ Check_default.typeOf.number.greaterThanOrEquals("maximumLength", value, 0);
661
+ const originalLength = this._length;
662
+ if (value < originalLength) {
663
+ const array = this._array;
664
+ for (let i = value; i < originalLength; ++i) {
665
+ array[i] = void 0;
666
+ }
667
+ this._length = value;
668
+ array.length = value;
669
+ }
670
+ this._maximumLength = value;
671
+ }
672
+ },
673
+ /**
674
+ * The comparator to use for the heap. If comparator(a, b) is less than 0, sort a to a lower index than b, otherwise sort to a higher index.
675
+ *
676
+ * @memberof Heap.prototype
677
+ *
678
+ * @type {Heap.ComparatorCallback}
679
+ */
680
+ comparator: {
681
+ get: function() {
682
+ return this._comparator;
683
+ }
684
+ }
685
+ });
686
+ function swap(array, a2, b) {
687
+ const temp = array[a2];
688
+ array[a2] = array[b];
689
+ array[b] = temp;
690
+ }
691
+ Heap.prototype.reserve = function(length) {
692
+ length = length ?? this._length;
693
+ this._array.length = length;
694
+ };
695
+ Heap.prototype.heapify = function(index) {
696
+ index = index ?? 0;
697
+ const length = this._length;
698
+ const comparator = this._comparator;
699
+ const array = this._array;
700
+ let candidate;
701
+ let inserting = true;
702
+ while (inserting) {
703
+ const right = 2 * (index + 1);
704
+ const left = right - 1;
705
+ if (left < length && comparator(array[left], array[index]) < 0) {
706
+ candidate = left;
707
+ } else {
708
+ candidate = index;
709
+ }
710
+ if (right < length && comparator(array[right], array[candidate]) < 0) {
711
+ candidate = right;
712
+ }
713
+ if (candidate !== index) {
714
+ swap(array, candidate, index);
715
+ index = candidate;
716
+ } else {
717
+ inserting = false;
718
+ }
719
+ }
720
+ };
721
+ Heap.prototype.resort = function() {
722
+ const length = this._length;
723
+ for (let i = Math.ceil(length / 2); i >= 0; --i) {
724
+ this.heapify(i);
725
+ }
726
+ };
727
+ Heap.prototype.insert = function(element) {
728
+ Check_default.defined("element", element);
729
+ const array = this._array;
730
+ const comparator = this._comparator;
731
+ const maximumLength = this._maximumLength;
732
+ let index = this._length++;
733
+ if (index < array.length) {
734
+ array[index] = element;
735
+ } else {
736
+ array.push(element);
737
+ }
738
+ while (index !== 0) {
739
+ const parent = Math.floor((index - 1) / 2);
740
+ if (comparator(array[index], array[parent]) < 0) {
741
+ swap(array, index, parent);
742
+ index = parent;
743
+ } else {
744
+ break;
745
+ }
746
+ }
747
+ let removedElement;
748
+ if (defined_default(maximumLength) && this._length > maximumLength) {
749
+ removedElement = array[maximumLength];
750
+ this._length = maximumLength;
751
+ }
752
+ return removedElement;
753
+ };
754
+ Heap.prototype.pop = function(index) {
755
+ index = index ?? 0;
756
+ if (this._length === 0) {
757
+ return void 0;
758
+ }
759
+ Check_default.typeOf.number.lessThan("index", index, this._length);
760
+ const array = this._array;
761
+ const root = array[index];
762
+ swap(array, index, --this._length);
763
+ this.heapify(index);
764
+ array[this._length] = void 0;
765
+ return root;
766
+ };
767
+ var Heap_default = Heap;
768
+
769
+ // packages/engine/Source/Core/RequestScheduler.js
770
+ function sortRequests(a2, b) {
771
+ return a2.priority - b.priority;
772
+ }
773
+ var statistics = {
774
+ numberOfAttemptedRequests: 0,
775
+ numberOfActiveRequests: 0,
776
+ numberOfCancelledRequests: 0,
777
+ numberOfCancelledActiveRequests: 0,
778
+ numberOfFailedRequests: 0,
779
+ numberOfActiveRequestsEver: 0,
780
+ lastNumberOfActiveRequests: 0
781
+ };
782
+ var priorityHeapLength = 20;
783
+ var requestHeap = new Heap_default({
784
+ comparator: sortRequests
785
+ });
786
+ requestHeap.maximumLength = priorityHeapLength;
787
+ requestHeap.reserve(priorityHeapLength);
788
+ var activeRequests = [];
789
+ var numberOfActiveRequestsByServer = {};
790
+ var pageUri = typeof document !== "undefined" ? new import_urijs4.default(document.location.href) : new import_urijs4.default();
791
+ var requestCompletedEvent = new Event_default();
792
+ function RequestScheduler() {
793
+ }
794
+ RequestScheduler.maximumRequests = 50;
795
+ RequestScheduler.maximumRequestsPerServer = 18;
796
+ RequestScheduler.requestsByServer = {};
797
+ RequestScheduler.throttleRequests = true;
798
+ RequestScheduler.debugShowStatistics = false;
799
+ RequestScheduler.requestCompletedEvent = requestCompletedEvent;
800
+ Object.defineProperties(RequestScheduler, {
801
+ /**
802
+ * Returns the statistics used by the request scheduler.
803
+ *
804
+ * @memberof RequestScheduler
805
+ *
806
+ * @type {object}
807
+ * @readonly
808
+ * @private
809
+ */
810
+ statistics: {
811
+ get: function() {
812
+ return statistics;
813
+ }
814
+ },
815
+ /**
816
+ * The maximum size of the priority heap. This limits the number of requests that are sorted by priority. Only applies to requests that are not yet active.
817
+ *
818
+ * @memberof RequestScheduler
819
+ *
820
+ * @type {number}
821
+ * @default 20
822
+ * @private
823
+ */
824
+ priorityHeapLength: {
825
+ get: function() {
826
+ return priorityHeapLength;
827
+ },
828
+ set: function(value) {
829
+ if (value < priorityHeapLength) {
830
+ while (requestHeap.length > value) {
831
+ const request = requestHeap.pop();
832
+ cancelRequest(request);
833
+ }
834
+ }
835
+ priorityHeapLength = value;
836
+ requestHeap.maximumLength = value;
837
+ requestHeap.reserve(value);
838
+ }
839
+ }
840
+ });
841
+ function updatePriority(request) {
842
+ if (defined_default(request.priorityFunction)) {
843
+ request.priority = request.priorityFunction();
844
+ }
845
+ }
846
+ RequestScheduler.serverHasOpenSlots = function(serverKey, desiredRequests) {
847
+ desiredRequests = desiredRequests ?? 1;
848
+ const maxRequests = RequestScheduler.requestsByServer[serverKey] ?? RequestScheduler.maximumRequestsPerServer;
849
+ const hasOpenSlotsServer = numberOfActiveRequestsByServer[serverKey] + desiredRequests <= maxRequests;
850
+ return hasOpenSlotsServer;
851
+ };
852
+ RequestScheduler.heapHasOpenSlots = function(desiredRequests) {
853
+ const hasOpenSlotsHeap = requestHeap.length + desiredRequests <= priorityHeapLength;
854
+ return hasOpenSlotsHeap;
855
+ };
856
+ function issueRequest(request) {
857
+ if (request.state === RequestState_default.UNISSUED) {
858
+ request.state = RequestState_default.ISSUED;
859
+ request.deferred = defer_default();
860
+ }
861
+ return request.deferred.promise;
862
+ }
863
+ function getRequestReceivedFunction(request) {
864
+ return function(results) {
865
+ if (request.state === RequestState_default.CANCELLED) {
866
+ return;
867
+ }
868
+ const deferred = request.deferred;
869
+ --statistics.numberOfActiveRequests;
870
+ --numberOfActiveRequestsByServer[request.serverKey];
871
+ requestCompletedEvent.raiseEvent();
872
+ request.state = RequestState_default.RECEIVED;
873
+ request.deferred = void 0;
874
+ deferred.resolve(results);
875
+ };
876
+ }
877
+ function getRequestFailedFunction(request) {
878
+ return function(error) {
879
+ if (request.state === RequestState_default.CANCELLED) {
880
+ return;
881
+ }
882
+ ++statistics.numberOfFailedRequests;
883
+ --statistics.numberOfActiveRequests;
884
+ --numberOfActiveRequestsByServer[request.serverKey];
885
+ requestCompletedEvent.raiseEvent(error);
886
+ request.state = RequestState_default.FAILED;
887
+ request.deferred.reject(error);
888
+ };
889
+ }
890
+ function startRequest(request) {
891
+ const promise = issueRequest(request);
892
+ request.state = RequestState_default.ACTIVE;
893
+ activeRequests.push(request);
894
+ ++statistics.numberOfActiveRequests;
895
+ ++statistics.numberOfActiveRequestsEver;
896
+ ++numberOfActiveRequestsByServer[request.serverKey];
897
+ request.requestFunction().then(getRequestReceivedFunction(request)).catch(getRequestFailedFunction(request));
898
+ return promise;
899
+ }
900
+ function cancelRequest(request) {
901
+ const active = request.state === RequestState_default.ACTIVE;
902
+ request.state = RequestState_default.CANCELLED;
903
+ ++statistics.numberOfCancelledRequests;
904
+ if (defined_default(request.deferred)) {
905
+ const deferred = request.deferred;
906
+ deferred.promise.catch(() => {
907
+ });
908
+ request.deferred = void 0;
909
+ deferred.reject(new RuntimeError_default(`Request cancelled: "${request.url}"`));
910
+ }
911
+ if (active) {
912
+ --statistics.numberOfActiveRequests;
913
+ --numberOfActiveRequestsByServer[request.serverKey];
914
+ ++statistics.numberOfCancelledActiveRequests;
915
+ }
916
+ if (defined_default(request.cancelFunction)) {
917
+ request.cancelFunction();
918
+ }
919
+ }
920
+ RequestScheduler.update = function() {
921
+ let i;
922
+ let request;
923
+ let removeCount = 0;
924
+ const activeLength = activeRequests.length;
925
+ for (i = 0; i < activeLength; ++i) {
926
+ request = activeRequests[i];
927
+ if (request.cancelled) {
928
+ cancelRequest(request);
929
+ }
930
+ if (request.state !== RequestState_default.ACTIVE) {
931
+ ++removeCount;
932
+ continue;
933
+ }
934
+ if (removeCount > 0) {
935
+ activeRequests[i - removeCount] = request;
936
+ }
937
+ }
938
+ activeRequests.length -= removeCount;
939
+ const issuedRequests = requestHeap.internalArray;
940
+ const issuedLength = requestHeap.length;
941
+ for (i = 0; i < issuedLength; ++i) {
942
+ updatePriority(issuedRequests[i]);
943
+ }
944
+ requestHeap.resort();
945
+ const openSlots = Math.max(
946
+ RequestScheduler.maximumRequests - activeRequests.length,
947
+ 0
948
+ );
949
+ let filledSlots = 0;
950
+ while (filledSlots < openSlots && requestHeap.length > 0) {
951
+ request = requestHeap.pop();
952
+ if (request.cancelled) {
953
+ cancelRequest(request);
954
+ continue;
955
+ }
956
+ if (request.throttleByServer && !RequestScheduler.serverHasOpenSlots(request.serverKey)) {
957
+ cancelRequest(request);
958
+ continue;
959
+ }
960
+ startRequest(request);
961
+ ++filledSlots;
962
+ }
963
+ updateStatistics();
964
+ };
965
+ RequestScheduler.getServerKey = function(url) {
966
+ Check_default.typeOf.string("url", url);
967
+ let uri = new import_urijs4.default(url);
968
+ if (uri.scheme() === "") {
969
+ uri = uri.absoluteTo(pageUri);
970
+ uri.normalize();
971
+ }
972
+ let serverKey = uri.authority();
973
+ if (!/:/.test(serverKey)) {
974
+ serverKey = `${serverKey}:${uri.scheme() === "https" ? "443" : "80"}`;
975
+ }
976
+ const length = numberOfActiveRequestsByServer[serverKey];
977
+ if (!defined_default(length)) {
978
+ numberOfActiveRequestsByServer[serverKey] = 0;
979
+ }
980
+ return serverKey;
981
+ };
982
+ RequestScheduler.request = function(request) {
983
+ Check_default.typeOf.object("request", request);
984
+ Check_default.typeOf.string("request.url", request.url);
985
+ Check_default.typeOf.func("request.requestFunction", request.requestFunction);
986
+ if (isDataUri_default(request.url) || isBlobUri_default(request.url)) {
987
+ requestCompletedEvent.raiseEvent();
988
+ request.state = RequestState_default.RECEIVED;
989
+ return request.requestFunction();
990
+ }
991
+ ++statistics.numberOfAttemptedRequests;
992
+ if (!defined_default(request.serverKey)) {
993
+ request.serverKey = RequestScheduler.getServerKey(request.url);
994
+ }
995
+ if (RequestScheduler.throttleRequests && request.throttleByServer && !RequestScheduler.serverHasOpenSlots(request.serverKey)) {
996
+ return void 0;
997
+ }
998
+ if (!RequestScheduler.throttleRequests || !request.throttle) {
999
+ return startRequest(request);
1000
+ }
1001
+ if (activeRequests.length >= RequestScheduler.maximumRequests) {
1002
+ return void 0;
1003
+ }
1004
+ updatePriority(request);
1005
+ const removedRequest = requestHeap.insert(request);
1006
+ if (defined_default(removedRequest)) {
1007
+ if (removedRequest === request) {
1008
+ return void 0;
1009
+ }
1010
+ cancelRequest(removedRequest);
1011
+ }
1012
+ return issueRequest(request);
1013
+ };
1014
+ function updateStatistics() {
1015
+ if (!RequestScheduler.debugShowStatistics) {
1016
+ return;
1017
+ }
1018
+ if (statistics.numberOfActiveRequests === 0 && statistics.lastNumberOfActiveRequests > 0) {
1019
+ if (statistics.numberOfAttemptedRequests > 0) {
1020
+ console.log(
1021
+ `Number of attempted requests: ${statistics.numberOfAttemptedRequests}`
1022
+ );
1023
+ statistics.numberOfAttemptedRequests = 0;
1024
+ }
1025
+ if (statistics.numberOfCancelledRequests > 0) {
1026
+ console.log(
1027
+ `Number of cancelled requests: ${statistics.numberOfCancelledRequests}`
1028
+ );
1029
+ statistics.numberOfCancelledRequests = 0;
1030
+ }
1031
+ if (statistics.numberOfCancelledActiveRequests > 0) {
1032
+ console.log(
1033
+ `Number of cancelled active requests: ${statistics.numberOfCancelledActiveRequests}`
1034
+ );
1035
+ statistics.numberOfCancelledActiveRequests = 0;
1036
+ }
1037
+ if (statistics.numberOfFailedRequests > 0) {
1038
+ console.log(
1039
+ `Number of failed requests: ${statistics.numberOfFailedRequests}`
1040
+ );
1041
+ statistics.numberOfFailedRequests = 0;
1042
+ }
1043
+ }
1044
+ statistics.lastNumberOfActiveRequests = statistics.numberOfActiveRequests;
1045
+ }
1046
+ RequestScheduler.clearForSpecs = function() {
1047
+ while (requestHeap.length > 0) {
1048
+ const request = requestHeap.pop();
1049
+ cancelRequest(request);
1050
+ }
1051
+ const length = activeRequests.length;
1052
+ for (let i = 0; i < length; ++i) {
1053
+ cancelRequest(activeRequests[i]);
1054
+ }
1055
+ activeRequests.length = 0;
1056
+ numberOfActiveRequestsByServer = {};
1057
+ statistics.numberOfAttemptedRequests = 0;
1058
+ statistics.numberOfActiveRequests = 0;
1059
+ statistics.numberOfCancelledRequests = 0;
1060
+ statistics.numberOfCancelledActiveRequests = 0;
1061
+ statistics.numberOfFailedRequests = 0;
1062
+ statistics.numberOfActiveRequestsEver = 0;
1063
+ statistics.lastNumberOfActiveRequests = 0;
1064
+ };
1065
+ RequestScheduler.numberOfActiveRequestsByServer = function(serverKey) {
1066
+ return numberOfActiveRequestsByServer[serverKey];
1067
+ };
1068
+ RequestScheduler.requestHeap = requestHeap;
1069
+ var RequestScheduler_default = RequestScheduler;
1070
+
1071
+ // packages/engine/Source/Core/Resource.js
1072
+ var xhrBlobSupported = (function() {
1073
+ try {
1074
+ const xhr = new XMLHttpRequest();
1075
+ xhr.open("GET", "#", true);
1076
+ xhr.responseType = "blob";
1077
+ return xhr.responseType === "blob";
1078
+ } catch (e) {
1079
+ return false;
1080
+ }
1081
+ })();
1082
+ function Resource(options) {
1083
+ options = options ?? Frozen_default.EMPTY_OBJECT;
1084
+ if (typeof options === "string") {
1085
+ options = {
1086
+ url: options
1087
+ };
1088
+ }
1089
+ Check_default.typeOf.string("options.url", options.url);
1090
+ this._url = void 0;
1091
+ this._templateValues = defaultClone(options.templateValues, {});
1092
+ this._queryParameters = defaultClone(options.queryParameters, {});
1093
+ this.headers = defaultClone(options.headers, {});
1094
+ this.request = options.request ?? new Request_default();
1095
+ this.proxy = options.proxy;
1096
+ this.retryCallback = options.retryCallback;
1097
+ this.retryAttempts = options.retryAttempts ?? 0;
1098
+ this._retryCount = 0;
1099
+ const parseUrl = options.parseUrl ?? true;
1100
+ if (parseUrl) {
1101
+ this.parseUrl(options.url, true, true);
1102
+ } else {
1103
+ this._url = options.url;
1104
+ }
1105
+ this._credits = options.credits;
1106
+ }
1107
+ function defaultClone(value, defaultValue) {
1108
+ return defined_default(value) ? clone_default(value) : defaultValue;
1109
+ }
1110
+ Resource.createIfNeeded = function(resource) {
1111
+ if (resource instanceof Resource) {
1112
+ return resource.getDerivedResource({
1113
+ request: resource.request
1114
+ });
1115
+ }
1116
+ if (typeof resource !== "string") {
1117
+ return resource;
1118
+ }
1119
+ return new Resource({
1120
+ url: resource
1121
+ });
1122
+ };
1123
+ var supportsImageBitmapOptionsPromise;
1124
+ Resource.supportsImageBitmapOptions = function() {
1125
+ if (defined_default(supportsImageBitmapOptionsPromise)) {
1126
+ return supportsImageBitmapOptionsPromise;
1127
+ }
1128
+ if (typeof createImageBitmap !== "function") {
1129
+ supportsImageBitmapOptionsPromise = Promise.resolve(false);
1130
+ return supportsImageBitmapOptionsPromise;
1131
+ }
1132
+ const imageDataUri = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";
1133
+ supportsImageBitmapOptionsPromise = Resource.fetchBlob({
1134
+ url: imageDataUri
1135
+ }).then(function(blob) {
1136
+ const imageBitmapOptions = {
1137
+ // 'from-image' is deprecated, new option is 'none'. However, we still need to support older browsers,
1138
+ // and there's no good way to detect support for these options. For now, continue to use 'from-image'. See: https://github.com/CesiumGS/cesium/issues/12846
1139
+ imageOrientation: "flipY",
1140
+ // default is "from-image"
1141
+ premultiplyAlpha: "none",
1142
+ // default is "default"
1143
+ colorSpaceConversion: "none"
1144
+ // default is "default"
1145
+ };
1146
+ return Promise.all([
1147
+ createImageBitmap(blob, imageBitmapOptions),
1148
+ createImageBitmap(blob)
1149
+ ]);
1150
+ }).then(function(imageBitmaps) {
1151
+ const colorWithOptions = getImagePixels_default(imageBitmaps[0]);
1152
+ const colorWithDefaults = getImagePixels_default(imageBitmaps[1]);
1153
+ return colorWithOptions[1] !== colorWithDefaults[1];
1154
+ }).catch(function() {
1155
+ return false;
1156
+ });
1157
+ return supportsImageBitmapOptionsPromise;
1158
+ };
1159
+ Object.defineProperties(Resource, {
1160
+ /**
1161
+ * Returns true if blobs are supported.
1162
+ *
1163
+ * @memberof Resource
1164
+ * @type {boolean}
1165
+ *
1166
+ * @readonly
1167
+ */
1168
+ isBlobSupported: {
1169
+ get: function() {
1170
+ return xhrBlobSupported;
1171
+ }
1172
+ }
1173
+ });
1174
+ Object.defineProperties(Resource.prototype, {
1175
+ /**
1176
+ * Query parameters appended to the url.
1177
+ *
1178
+ * @memberof Resource.prototype
1179
+ * @type {object}
1180
+ *
1181
+ * @readonly
1182
+ */
1183
+ queryParameters: {
1184
+ get: function() {
1185
+ return this._queryParameters;
1186
+ }
1187
+ },
1188
+ /**
1189
+ * The key/value pairs used to replace template parameters in the url.
1190
+ *
1191
+ * @memberof Resource.prototype
1192
+ * @type {object}
1193
+ *
1194
+ * @readonly
1195
+ */
1196
+ templateValues: {
1197
+ get: function() {
1198
+ return this._templateValues;
1199
+ }
1200
+ },
1201
+ /**
1202
+ * The url to the resource with template values replaced, query string appended and encoded by proxy if one was set.
1203
+ *
1204
+ * @memberof Resource.prototype
1205
+ * @type {string}
1206
+ */
1207
+ url: {
1208
+ get: function() {
1209
+ return this.getUrlComponent(true, true);
1210
+ },
1211
+ set: function(value) {
1212
+ this.parseUrl(value, false, false);
1213
+ }
1214
+ },
1215
+ /**
1216
+ * The file extension of the resource.
1217
+ *
1218
+ * @memberof Resource.prototype
1219
+ * @type {string}
1220
+ *
1221
+ * @readonly
1222
+ */
1223
+ extension: {
1224
+ get: function() {
1225
+ return getExtensionFromUri_default(this._url);
1226
+ }
1227
+ },
1228
+ /**
1229
+ * True if the Resource refers to a data URI.
1230
+ *
1231
+ * @memberof Resource.prototype
1232
+ * @type {boolean}
1233
+ */
1234
+ isDataUri: {
1235
+ get: function() {
1236
+ return isDataUri_default(this._url);
1237
+ }
1238
+ },
1239
+ /**
1240
+ * True if the Resource refers to a blob URI.
1241
+ *
1242
+ * @memberof Resource.prototype
1243
+ * @type {boolean}
1244
+ */
1245
+ isBlobUri: {
1246
+ get: function() {
1247
+ return isBlobUri_default(this._url);
1248
+ }
1249
+ },
1250
+ /**
1251
+ * True if the Resource refers to a cross origin URL.
1252
+ *
1253
+ * @memberof Resource.prototype
1254
+ * @type {boolean}
1255
+ */
1256
+ isCrossOriginUrl: {
1257
+ get: function() {
1258
+ return isCrossOriginUrl_default(this._url);
1259
+ }
1260
+ },
1261
+ /**
1262
+ * True if the Resource has request headers. This is equivalent to checking if the headers property has any keys.
1263
+ *
1264
+ * @memberof Resource.prototype
1265
+ * @type {boolean}
1266
+ */
1267
+ hasHeaders: {
1268
+ get: function() {
1269
+ return Object.keys(this.headers).length > 0;
1270
+ }
1271
+ },
1272
+ /**
1273
+ * Gets the credits required for attribution of an asset.
1274
+ * @private
1275
+ */
1276
+ credits: {
1277
+ get: function() {
1278
+ return this._credits;
1279
+ }
1280
+ }
1281
+ });
1282
+ Resource.prototype.toString = function() {
1283
+ return this.getUrlComponent(true, true);
1284
+ };
1285
+ Resource.prototype.parseUrl = function(url, merge, preserveQuery, baseUrl) {
1286
+ let uri = new import_urijs5.default(url);
1287
+ const query = parseQueryString(uri.query());
1288
+ this._queryParameters = merge ? combineQueryParameters(query, this.queryParameters, preserveQuery) : query;
1289
+ uri.search("");
1290
+ uri.fragment("");
1291
+ if (defined_default(baseUrl) && uri.scheme() === "") {
1292
+ uri = uri.absoluteTo(getAbsoluteUri_default(baseUrl));
1293
+ }
1294
+ this._url = uri.toString();
1295
+ };
1296
+ function parseQueryString(queryString) {
1297
+ if (queryString.length === 0) {
1298
+ return {};
1299
+ }
1300
+ if (queryString.indexOf("=") === -1) {
1301
+ return { [queryString]: void 0 };
1302
+ }
1303
+ return queryToObject_default(queryString);
1304
+ }
1305
+ function combineQueryParameters(q1, q2, preserveQueryParameters) {
1306
+ if (!preserveQueryParameters) {
1307
+ return combine_default(q1, q2);
1308
+ }
1309
+ const result = clone_default(q1, true);
1310
+ for (const param in q2) {
1311
+ if (q2.hasOwnProperty(param)) {
1312
+ let value = result[param];
1313
+ const q2Value = q2[param];
1314
+ if (defined_default(value)) {
1315
+ if (!Array.isArray(value)) {
1316
+ value = result[param] = [value];
1317
+ }
1318
+ result[param] = value.concat(q2Value);
1319
+ } else {
1320
+ result[param] = Array.isArray(q2Value) ? q2Value.slice() : q2Value;
1321
+ }
1322
+ }
1323
+ }
1324
+ return result;
1325
+ }
1326
+ Resource.prototype.getUrlComponent = function(query, proxy) {
1327
+ if (this.isDataUri) {
1328
+ return this._url;
1329
+ }
1330
+ let url = this._url;
1331
+ if (query) {
1332
+ url = `${url}${stringifyQuery(this.queryParameters)}`;
1333
+ }
1334
+ url = url.replace(/%7B/g, "{").replace(/%7D/g, "}");
1335
+ const templateValues = this._templateValues;
1336
+ if (Object.keys(templateValues).length > 0) {
1337
+ url = url.replace(/{(.*?)}/g, function(match, key) {
1338
+ const replacement = templateValues[key];
1339
+ if (defined_default(replacement)) {
1340
+ return encodeURIComponent(replacement);
1341
+ }
1342
+ return match;
1343
+ });
1344
+ }
1345
+ if (proxy && defined_default(this.proxy)) {
1346
+ url = this.proxy.getURL(url);
1347
+ }
1348
+ return url;
1349
+ };
1350
+ function stringifyQuery(queryObject) {
1351
+ const keys = Object.keys(queryObject);
1352
+ if (keys.length === 0) {
1353
+ return "";
1354
+ }
1355
+ if (keys.length === 1 && !defined_default(queryObject[keys[0]])) {
1356
+ return `?${keys[0]}`;
1357
+ }
1358
+ return `?${objectToQuery_default(queryObject)}`;
1359
+ }
1360
+ Resource.prototype.setQueryParameters = function(params, useAsDefault) {
1361
+ if (useAsDefault) {
1362
+ this._queryParameters = combineQueryParameters(
1363
+ this._queryParameters,
1364
+ params,
1365
+ false
1366
+ );
1367
+ } else {
1368
+ this._queryParameters = combineQueryParameters(
1369
+ params,
1370
+ this._queryParameters,
1371
+ false
1372
+ );
1373
+ }
1374
+ };
1375
+ Resource.prototype.appendQueryParameters = function(params) {
1376
+ this._queryParameters = combineQueryParameters(
1377
+ params,
1378
+ this._queryParameters,
1379
+ true
1380
+ );
1381
+ };
1382
+ Resource.prototype.setTemplateValues = function(template, useAsDefault) {
1383
+ if (useAsDefault) {
1384
+ this._templateValues = combine_default(this._templateValues, template);
1385
+ } else {
1386
+ this._templateValues = combine_default(template, this._templateValues);
1387
+ }
1388
+ };
1389
+ Resource.prototype.getDerivedResource = function(options) {
1390
+ const resource = this.clone();
1391
+ resource._retryCount = 0;
1392
+ if (defined_default(options.url)) {
1393
+ const preserveQuery = options.preserveQueryParameters ?? false;
1394
+ resource.parseUrl(options.url, true, preserveQuery, this._url);
1395
+ }
1396
+ if (defined_default(options.queryParameters)) {
1397
+ resource._queryParameters = combine_default(
1398
+ options.queryParameters,
1399
+ resource.queryParameters
1400
+ );
1401
+ }
1402
+ if (defined_default(options.templateValues)) {
1403
+ resource._templateValues = combine_default(
1404
+ options.templateValues,
1405
+ resource.templateValues
1406
+ );
1407
+ }
1408
+ if (defined_default(options.headers)) {
1409
+ resource.headers = combine_default(options.headers, resource.headers);
1410
+ }
1411
+ if (defined_default(options.proxy)) {
1412
+ resource.proxy = options.proxy;
1413
+ }
1414
+ if (defined_default(options.request)) {
1415
+ resource.request = options.request;
1416
+ }
1417
+ if (defined_default(options.retryCallback)) {
1418
+ resource.retryCallback = options.retryCallback;
1419
+ }
1420
+ if (defined_default(options.retryAttempts)) {
1421
+ resource.retryAttempts = options.retryAttempts;
1422
+ }
1423
+ return resource;
1424
+ };
1425
+ Resource.prototype.retryOnError = function(error) {
1426
+ const retryCallback = this.retryCallback;
1427
+ if (typeof retryCallback !== "function" || this._retryCount >= this.retryAttempts) {
1428
+ return Promise.resolve(false);
1429
+ }
1430
+ const that = this;
1431
+ return Promise.resolve(retryCallback(this, error)).then(function(result) {
1432
+ ++that._retryCount;
1433
+ return result;
1434
+ });
1435
+ };
1436
+ Resource.prototype.clone = function(result) {
1437
+ if (!defined_default(result)) {
1438
+ return new Resource({
1439
+ url: this._url,
1440
+ queryParameters: this.queryParameters,
1441
+ templateValues: this.templateValues,
1442
+ headers: this.headers,
1443
+ proxy: this.proxy,
1444
+ retryCallback: this.retryCallback,
1445
+ retryAttempts: this.retryAttempts,
1446
+ request: this.request.clone(),
1447
+ parseUrl: false,
1448
+ credits: defined_default(this.credits) ? this.credits.slice() : void 0
1449
+ });
1450
+ }
1451
+ result._url = this._url;
1452
+ result._queryParameters = clone_default(this._queryParameters);
1453
+ result._templateValues = clone_default(this._templateValues);
1454
+ result.headers = clone_default(this.headers);
1455
+ result.proxy = this.proxy;
1456
+ result.retryCallback = this.retryCallback;
1457
+ result.retryAttempts = this.retryAttempts;
1458
+ result._retryCount = 0;
1459
+ result.request = this.request.clone();
1460
+ return result;
1461
+ };
1462
+ Resource.prototype.getBaseUri = function(includeQuery) {
1463
+ return getBaseUri_default(this.getUrlComponent(includeQuery), includeQuery);
1464
+ };
1465
+ Resource.prototype.appendForwardSlash = function() {
1466
+ this._url = appendForwardSlash_default(this._url);
1467
+ };
1468
+ Resource.prototype.fetchArrayBuffer = function() {
1469
+ return this.fetch({
1470
+ responseType: "arraybuffer"
1471
+ });
1472
+ };
1473
+ Resource.fetchArrayBuffer = function(options) {
1474
+ const resource = new Resource(options);
1475
+ return resource.fetchArrayBuffer();
1476
+ };
1477
+ Resource.prototype.fetchBlob = function() {
1478
+ return this.fetch({
1479
+ responseType: "blob"
1480
+ });
1481
+ };
1482
+ Resource.fetchBlob = function(options) {
1483
+ const resource = new Resource(options);
1484
+ return resource.fetchBlob();
1485
+ };
1486
+ Resource.prototype.fetchImage = function(options) {
1487
+ options = options ?? Frozen_default.EMPTY_OBJECT;
1488
+ const preferImageBitmap = options.preferImageBitmap ?? false;
1489
+ const preferBlob = options.preferBlob ?? false;
1490
+ const flipY = options.flipY ?? false;
1491
+ const skipColorSpaceConversion = options.skipColorSpaceConversion ?? false;
1492
+ checkAndResetRequest(this.request);
1493
+ if (!xhrBlobSupported || this.isDataUri || this.isBlobUri || !this.hasHeaders && !preferBlob) {
1494
+ return this._fetchImage({
1495
+ resource: this,
1496
+ flipY,
1497
+ skipColorSpaceConversion,
1498
+ preferImageBitmap
1499
+ });
1500
+ }
1501
+ const blobPromise = this.fetchBlob();
1502
+ if (!defined_default(blobPromise)) {
1503
+ return;
1504
+ }
1505
+ let supportsImageBitmap;
1506
+ let useImageBitmap;
1507
+ let generatedBlobResource;
1508
+ let generatedBlob;
1509
+ return Resource.supportsImageBitmapOptions().then(function(result) {
1510
+ supportsImageBitmap = result;
1511
+ useImageBitmap = supportsImageBitmap && preferImageBitmap;
1512
+ return blobPromise;
1513
+ }).then(function(blob) {
1514
+ if (!defined_default(blob)) {
1515
+ return;
1516
+ }
1517
+ generatedBlob = blob;
1518
+ if (useImageBitmap) {
1519
+ return Resource.createImageBitmapFromBlob(blob, {
1520
+ flipY,
1521
+ premultiplyAlpha: false,
1522
+ skipColorSpaceConversion
1523
+ });
1524
+ }
1525
+ const blobUrl = window.URL.createObjectURL(blob);
1526
+ generatedBlobResource = new Resource({
1527
+ url: blobUrl
1528
+ });
1529
+ return generatedBlobResource._fetchImage({
1530
+ flipY,
1531
+ skipColorSpaceConversion,
1532
+ preferImageBitmap: false
1533
+ });
1534
+ }).then(function(image) {
1535
+ if (!defined_default(image)) {
1536
+ return;
1537
+ }
1538
+ image.blob = generatedBlob;
1539
+ if (useImageBitmap) {
1540
+ return image;
1541
+ }
1542
+ window.URL.revokeObjectURL(generatedBlobResource.url);
1543
+ return image;
1544
+ }).catch(function(error) {
1545
+ if (defined_default(generatedBlobResource)) {
1546
+ window.URL.revokeObjectURL(generatedBlobResource.url);
1547
+ }
1548
+ error.blob = generatedBlob;
1549
+ return Promise.reject(error);
1550
+ });
1551
+ };
1552
+ Resource.prototype._fetchImage = function(options) {
1553
+ const resource = this;
1554
+ const flipY = options.flipY;
1555
+ const skipColorSpaceConversion = options.skipColorSpaceConversion;
1556
+ const preferImageBitmap = options.preferImageBitmap;
1557
+ const request = resource.request;
1558
+ request.url = resource.url;
1559
+ request.requestFunction = function() {
1560
+ let crossOrigin = false;
1561
+ if (!resource.isDataUri && !resource.isBlobUri) {
1562
+ crossOrigin = resource.isCrossOriginUrl;
1563
+ }
1564
+ const deferred = defer_default();
1565
+ Resource._Implementations.createImage(
1566
+ request,
1567
+ crossOrigin,
1568
+ deferred,
1569
+ flipY,
1570
+ skipColorSpaceConversion,
1571
+ preferImageBitmap
1572
+ );
1573
+ return deferred.promise;
1574
+ };
1575
+ const promise = RequestScheduler_default.request(request);
1576
+ if (!defined_default(promise)) {
1577
+ return;
1578
+ }
1579
+ return promise.catch(function(e) {
1580
+ if (request.state !== RequestState_default.FAILED) {
1581
+ return Promise.reject(e);
1582
+ }
1583
+ return resource.retryOnError(e).then(function(retry) {
1584
+ if (retry) {
1585
+ request.state = RequestState_default.UNISSUED;
1586
+ request.deferred = void 0;
1587
+ return resource._fetchImage({
1588
+ flipY,
1589
+ skipColorSpaceConversion,
1590
+ preferImageBitmap
1591
+ });
1592
+ }
1593
+ return Promise.reject(e);
1594
+ });
1595
+ });
1596
+ };
1597
+ Resource.fetchImage = function(options) {
1598
+ const resource = new Resource(options);
1599
+ return resource.fetchImage({
1600
+ flipY: options.flipY,
1601
+ skipColorSpaceConversion: options.skipColorSpaceConversion,
1602
+ preferBlob: options.preferBlob,
1603
+ preferImageBitmap: options.preferImageBitmap
1604
+ });
1605
+ };
1606
+ Resource.prototype.fetchText = function() {
1607
+ return this.fetch({
1608
+ responseType: "text"
1609
+ });
1610
+ };
1611
+ Resource.fetchText = function(options) {
1612
+ const resource = new Resource(options);
1613
+ return resource.fetchText();
1614
+ };
1615
+ Resource.prototype.fetchJson = function() {
1616
+ const promise = this.fetch({
1617
+ responseType: "text",
1618
+ headers: {
1619
+ Accept: "application/json,*/*;q=0.01"
1620
+ }
1621
+ });
1622
+ if (!defined_default(promise)) {
1623
+ return void 0;
1624
+ }
1625
+ return promise.then(function(value) {
1626
+ if (!defined_default(value)) {
1627
+ return;
1628
+ }
1629
+ return JSON.parse(value);
1630
+ });
1631
+ };
1632
+ Resource.fetchJson = function(options) {
1633
+ const resource = new Resource(options);
1634
+ return resource.fetchJson();
1635
+ };
1636
+ Resource.prototype.fetchXML = function() {
1637
+ return this.fetch({
1638
+ responseType: "document",
1639
+ overrideMimeType: "text/xml"
1640
+ });
1641
+ };
1642
+ Resource.fetchXML = function(options) {
1643
+ const resource = new Resource(options);
1644
+ return resource.fetchXML();
1645
+ };
1646
+ Resource.prototype.fetchJsonp = function(callbackParameterName) {
1647
+ callbackParameterName = callbackParameterName ?? "callback";
1648
+ checkAndResetRequest(this.request);
1649
+ let functionName;
1650
+ do {
1651
+ functionName = `loadJsonp${Math_default.nextRandomNumber().toString().substring(2, 8)}`;
1652
+ } while (defined_default(window[functionName]));
1653
+ return fetchJsonp(this, callbackParameterName, functionName);
1654
+ };
1655
+ function fetchJsonp(resource, callbackParameterName, functionName) {
1656
+ const callbackQuery = {};
1657
+ callbackQuery[callbackParameterName] = functionName;
1658
+ resource.setQueryParameters(callbackQuery);
1659
+ const request = resource.request;
1660
+ const url = resource.url;
1661
+ request.url = url;
1662
+ request.requestFunction = function() {
1663
+ const deferred = defer_default();
1664
+ window[functionName] = function(data) {
1665
+ deferred.resolve(data);
1666
+ try {
1667
+ delete window[functionName];
1668
+ } catch (e) {
1669
+ window[functionName] = void 0;
1670
+ }
1671
+ };
1672
+ Resource._Implementations.loadAndExecuteScript(url, functionName, deferred);
1673
+ return deferred.promise;
1674
+ };
1675
+ const promise = RequestScheduler_default.request(request);
1676
+ if (!defined_default(promise)) {
1677
+ return;
1678
+ }
1679
+ return promise.catch(function(e) {
1680
+ if (request.state !== RequestState_default.FAILED) {
1681
+ return Promise.reject(e);
1682
+ }
1683
+ return resource.retryOnError(e).then(function(retry) {
1684
+ if (retry) {
1685
+ request.state = RequestState_default.UNISSUED;
1686
+ request.deferred = void 0;
1687
+ return fetchJsonp(resource, callbackParameterName, functionName);
1688
+ }
1689
+ return Promise.reject(e);
1690
+ });
1691
+ });
1692
+ }
1693
+ Resource.fetchJsonp = function(options) {
1694
+ const resource = new Resource(options);
1695
+ return resource.fetchJsonp(options.callbackParameterName);
1696
+ };
1697
+ Resource.prototype._makeRequest = function(options) {
1698
+ const resource = this;
1699
+ checkAndResetRequest(resource.request);
1700
+ const request = resource.request;
1701
+ const url = resource.url;
1702
+ request.url = url;
1703
+ request.requestFunction = function() {
1704
+ const responseType = options.responseType;
1705
+ const headers = combine_default(options.headers, resource.headers);
1706
+ const overrideMimeType = options.overrideMimeType;
1707
+ const method = options.method;
1708
+ const data = options.data;
1709
+ const deferred = defer_default();
1710
+ const xhr = Resource._Implementations.loadWithXhr(
1711
+ url,
1712
+ responseType,
1713
+ method,
1714
+ data,
1715
+ headers,
1716
+ deferred,
1717
+ overrideMimeType
1718
+ );
1719
+ if (defined_default(xhr) && defined_default(xhr.abort)) {
1720
+ request.cancelFunction = function() {
1721
+ xhr.abort();
1722
+ };
1723
+ }
1724
+ return deferred.promise;
1725
+ };
1726
+ const promise = RequestScheduler_default.request(request);
1727
+ if (!defined_default(promise)) {
1728
+ return;
1729
+ }
1730
+ return promise.then(function(data) {
1731
+ request.cancelFunction = void 0;
1732
+ return data;
1733
+ }).catch(function(e) {
1734
+ request.cancelFunction = void 0;
1735
+ if (request.state !== RequestState_default.FAILED) {
1736
+ return Promise.reject(e);
1737
+ }
1738
+ return resource.retryOnError(e).then(function(retry) {
1739
+ if (retry) {
1740
+ request.state = RequestState_default.UNISSUED;
1741
+ request.deferred = void 0;
1742
+ return resource.fetch(options);
1743
+ }
1744
+ return Promise.reject(e);
1745
+ });
1746
+ });
1747
+ };
1748
+ function checkAndResetRequest(request) {
1749
+ if (request.state === RequestState_default.ISSUED || request.state === RequestState_default.ACTIVE) {
1750
+ throw new RuntimeError_default("The Resource is already being fetched.");
1751
+ }
1752
+ request.state = RequestState_default.UNISSUED;
1753
+ request.deferred = void 0;
1754
+ }
1755
+ var dataUriRegex2 = /^data:(.*?)(;base64)?,(.*)$/;
1756
+ function decodeDataUriText(isBase64, data) {
1757
+ const result = decodeURIComponent(data);
1758
+ if (isBase64) {
1759
+ return atob(result);
1760
+ }
1761
+ return result;
1762
+ }
1763
+ function decodeDataUriArrayBuffer(isBase64, data) {
1764
+ const byteString = decodeDataUriText(isBase64, data);
1765
+ const buffer = new ArrayBuffer(byteString.length);
1766
+ const view = new Uint8Array(buffer);
1767
+ for (let i = 0; i < byteString.length; i++) {
1768
+ view[i] = byteString.charCodeAt(i);
1769
+ }
1770
+ return buffer;
1771
+ }
1772
+ function decodeDataUri(dataUriRegexResult, responseType) {
1773
+ responseType = responseType ?? "";
1774
+ const mimeType = dataUriRegexResult[1];
1775
+ const isBase64 = !!dataUriRegexResult[2];
1776
+ const data = dataUriRegexResult[3];
1777
+ let buffer;
1778
+ let parser;
1779
+ switch (responseType) {
1780
+ case "":
1781
+ case "text":
1782
+ return decodeDataUriText(isBase64, data);
1783
+ case "arraybuffer":
1784
+ return decodeDataUriArrayBuffer(isBase64, data);
1785
+ case "blob":
1786
+ buffer = decodeDataUriArrayBuffer(isBase64, data);
1787
+ return new Blob([buffer], {
1788
+ type: mimeType
1789
+ });
1790
+ case "document":
1791
+ parser = new DOMParser();
1792
+ return parser.parseFromString(
1793
+ decodeDataUriText(isBase64, data),
1794
+ mimeType
1795
+ );
1796
+ case "json":
1797
+ return JSON.parse(decodeDataUriText(isBase64, data));
1798
+ default:
1799
+ throw new DeveloperError_default(`Unhandled responseType: ${responseType}`);
1800
+ }
1801
+ }
1802
+ Resource.prototype.fetch = function(options) {
1803
+ options = defaultClone(options, {});
1804
+ options.method = "GET";
1805
+ return this._makeRequest(options);
1806
+ };
1807
+ Resource.fetch = function(options) {
1808
+ const resource = new Resource(options);
1809
+ return resource.fetch({
1810
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to fetch
1811
+ responseType: options.responseType,
1812
+ overrideMimeType: options.overrideMimeType
1813
+ });
1814
+ };
1815
+ Resource.prototype.delete = function(options) {
1816
+ options = defaultClone(options, {});
1817
+ options.method = "DELETE";
1818
+ return this._makeRequest(options);
1819
+ };
1820
+ Resource.delete = function(options) {
1821
+ const resource = new Resource(options);
1822
+ return resource.delete({
1823
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to fetch
1824
+ responseType: options.responseType,
1825
+ overrideMimeType: options.overrideMimeType,
1826
+ data: options.data
1827
+ });
1828
+ };
1829
+ Resource.prototype.head = function(options) {
1830
+ options = defaultClone(options, {});
1831
+ options.method = "HEAD";
1832
+ return this._makeRequest(options);
1833
+ };
1834
+ Resource.head = function(options) {
1835
+ const resource = new Resource(options);
1836
+ return resource.head({
1837
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to fetch
1838
+ responseType: options.responseType,
1839
+ overrideMimeType: options.overrideMimeType
1840
+ });
1841
+ };
1842
+ Resource.prototype.options = function(options) {
1843
+ options = defaultClone(options, {});
1844
+ options.method = "OPTIONS";
1845
+ return this._makeRequest(options);
1846
+ };
1847
+ Resource.options = function(options) {
1848
+ const resource = new Resource(options);
1849
+ return resource.options({
1850
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to fetch
1851
+ responseType: options.responseType,
1852
+ overrideMimeType: options.overrideMimeType
1853
+ });
1854
+ };
1855
+ Resource.prototype.post = function(data, options) {
1856
+ Check_default.defined("data", data);
1857
+ options = defaultClone(options, {});
1858
+ options.method = "POST";
1859
+ options.data = data;
1860
+ return this._makeRequest(options);
1861
+ };
1862
+ Resource.post = function(options) {
1863
+ const resource = new Resource(options);
1864
+ return resource.post(options.data, {
1865
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to post
1866
+ responseType: options.responseType,
1867
+ overrideMimeType: options.overrideMimeType
1868
+ });
1869
+ };
1870
+ Resource.prototype.put = function(data, options) {
1871
+ Check_default.defined("data", data);
1872
+ options = defaultClone(options, {});
1873
+ options.method = "PUT";
1874
+ options.data = data;
1875
+ return this._makeRequest(options);
1876
+ };
1877
+ Resource.put = function(options) {
1878
+ const resource = new Resource(options);
1879
+ return resource.put(options.data, {
1880
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to post
1881
+ responseType: options.responseType,
1882
+ overrideMimeType: options.overrideMimeType
1883
+ });
1884
+ };
1885
+ Resource.prototype.patch = function(data, options) {
1886
+ Check_default.defined("data", data);
1887
+ options = defaultClone(options, {});
1888
+ options.method = "PATCH";
1889
+ options.data = data;
1890
+ return this._makeRequest(options);
1891
+ };
1892
+ Resource.patch = function(options) {
1893
+ const resource = new Resource(options);
1894
+ return resource.patch(options.data, {
1895
+ // Make copy of just the needed fields because headers can be passed to both the constructor and to post
1896
+ responseType: options.responseType,
1897
+ overrideMimeType: options.overrideMimeType
1898
+ });
1899
+ };
1900
+ Resource._Implementations = {};
1901
+ Resource._Implementations.loadImageElement = function(url, crossOrigin, deferred) {
1902
+ const image = new Image();
1903
+ image.onload = function() {
1904
+ if (image.naturalWidth === 0 && image.naturalHeight === 0 && image.width === 0 && image.height === 0) {
1905
+ image.width = 300;
1906
+ image.height = 150;
1907
+ }
1908
+ deferred.resolve(image);
1909
+ };
1910
+ image.onerror = function(e) {
1911
+ deferred.reject(e);
1912
+ };
1913
+ if (crossOrigin) {
1914
+ if (TrustedServers_default.contains(url)) {
1915
+ image.crossOrigin = "use-credentials";
1916
+ } else {
1917
+ image.crossOrigin = "";
1918
+ }
1919
+ }
1920
+ image.src = url;
1921
+ };
1922
+ Resource._Implementations.createImage = function(request, crossOrigin, deferred, flipY, skipColorSpaceConversion, preferImageBitmap, headers) {
1923
+ const url = request.url;
1924
+ Resource.supportsImageBitmapOptions().then(function(supportsImageBitmap) {
1925
+ if (!(supportsImageBitmap && preferImageBitmap)) {
1926
+ Resource._Implementations.loadImageElement(url, crossOrigin, deferred);
1927
+ return;
1928
+ }
1929
+ const responseType = "blob";
1930
+ const method = "GET";
1931
+ const xhrDeferred = defer_default();
1932
+ const xhr = Resource._Implementations.loadWithXhr(
1933
+ url,
1934
+ responseType,
1935
+ method,
1936
+ void 0,
1937
+ headers,
1938
+ xhrDeferred,
1939
+ void 0,
1940
+ void 0,
1941
+ void 0
1942
+ );
1943
+ if (defined_default(xhr) && defined_default(xhr.abort)) {
1944
+ request.cancelFunction = function() {
1945
+ xhr.abort();
1946
+ };
1947
+ }
1948
+ return xhrDeferred.promise.then(function(blob) {
1949
+ if (!defined_default(blob)) {
1950
+ deferred.reject(
1951
+ new RuntimeError_default(
1952
+ `Successfully retrieved ${url} but it contained no content.`
1953
+ )
1954
+ );
1955
+ return;
1956
+ }
1957
+ return Resource.createImageBitmapFromBlob(blob, {
1958
+ flipY,
1959
+ premultiplyAlpha: false,
1960
+ skipColorSpaceConversion
1961
+ });
1962
+ }).then(function(image) {
1963
+ deferred.resolve(image);
1964
+ });
1965
+ }).catch(function(e) {
1966
+ deferred.reject(e);
1967
+ });
1968
+ };
1969
+ Resource.createImageBitmapFromBlob = function(blob, options) {
1970
+ Check_default.defined("options", options);
1971
+ Check_default.typeOf.bool("options.flipY", options.flipY);
1972
+ Check_default.typeOf.bool("options.premultiplyAlpha", options.premultiplyAlpha);
1973
+ Check_default.typeOf.bool(
1974
+ "options.skipColorSpaceConversion",
1975
+ options.skipColorSpaceConversion
1976
+ );
1977
+ return createImageBitmap(blob, {
1978
+ // 'from-image' is deprecated, new option is 'none'. However, we still need to support older browsers,
1979
+ // and there's no good way to detect support for these options. For now, continue to use 'from-image'. See: https://github.com/CesiumGS/cesium/issues/12846
1980
+ imageOrientation: options.flipY ? "flipY" : "none",
1981
+ premultiplyAlpha: options.premultiplyAlpha ? "premultiply" : "none",
1982
+ colorSpaceConversion: options.skipColorSpaceConversion ? "none" : "default"
1983
+ });
1984
+ };
1985
+ function loadWithHttpRequest(url, responseType, method, data, headers, deferred, overrideMimeType) {
1986
+ fetch(url, {
1987
+ method,
1988
+ headers,
1989
+ credentials: TrustedServers_default.contains(url) ? "include" : "same-origin"
1990
+ }).then(async (response) => {
1991
+ if (!response.ok) {
1992
+ const responseHeaders = {};
1993
+ response.headers.forEach((value, key) => {
1994
+ responseHeaders[key] = value;
1995
+ });
1996
+ deferred.reject(
1997
+ new RequestErrorEvent_default(response.status, response, responseHeaders)
1998
+ );
1999
+ return;
2000
+ }
2001
+ switch (responseType) {
2002
+ case "text":
2003
+ deferred.resolve(response.text());
2004
+ break;
2005
+ case "json":
2006
+ deferred.resolve(response.json());
2007
+ break;
2008
+ default:
2009
+ deferred.resolve(new Uint8Array(await response.arrayBuffer()).buffer);
2010
+ break;
2011
+ }
2012
+ }).catch(() => {
2013
+ deferred.reject(new RequestErrorEvent_default());
2014
+ });
2015
+ }
2016
+ var noXMLHttpRequest = typeof XMLHttpRequest === "undefined";
2017
+ Resource._Implementations.loadWithXhr = function(url, responseType, method, data, headers, deferred, overrideMimeType) {
2018
+ const dataUriRegexResult = dataUriRegex2.exec(url);
2019
+ if (dataUriRegexResult !== null) {
2020
+ deferred.resolve(decodeDataUri(dataUriRegexResult, responseType));
2021
+ return;
2022
+ }
2023
+ if (noXMLHttpRequest) {
2024
+ loadWithHttpRequest(
2025
+ url,
2026
+ responseType,
2027
+ method,
2028
+ data,
2029
+ headers,
2030
+ deferred,
2031
+ overrideMimeType
2032
+ );
2033
+ return;
2034
+ }
2035
+ const xhr = new XMLHttpRequest();
2036
+ if (TrustedServers_default.contains(url)) {
2037
+ xhr.withCredentials = true;
2038
+ }
2039
+ xhr.open(method, url, true);
2040
+ if (defined_default(overrideMimeType) && defined_default(xhr.overrideMimeType)) {
2041
+ xhr.overrideMimeType(overrideMimeType);
2042
+ }
2043
+ if (defined_default(headers)) {
2044
+ for (const key in headers) {
2045
+ if (headers.hasOwnProperty(key)) {
2046
+ xhr.setRequestHeader(key, headers[key]);
2047
+ }
2048
+ }
2049
+ }
2050
+ if (defined_default(responseType)) {
2051
+ xhr.responseType = responseType;
2052
+ }
2053
+ let localFile = false;
2054
+ if (typeof url === "string") {
2055
+ localFile = url.indexOf("file://") === 0 || typeof window !== "undefined" && window.location.origin === "file://";
2056
+ }
2057
+ xhr.onload = function() {
2058
+ if ((xhr.status < 200 || xhr.status >= 300) && !(localFile && xhr.status === 0)) {
2059
+ deferred.reject(
2060
+ new RequestErrorEvent_default(
2061
+ xhr.status,
2062
+ xhr.response,
2063
+ xhr.getAllResponseHeaders()
2064
+ )
2065
+ );
2066
+ return;
2067
+ }
2068
+ const response = xhr.response;
2069
+ const browserResponseType = xhr.responseType;
2070
+ if (method === "HEAD" || method === "OPTIONS") {
2071
+ const responseHeaderString = xhr.getAllResponseHeaders();
2072
+ const splitHeaders = responseHeaderString.trim().split(/[\r\n]+/);
2073
+ const responseHeaders = {};
2074
+ splitHeaders.forEach(function(line) {
2075
+ const parts = line.split(": ");
2076
+ const header = parts.shift();
2077
+ responseHeaders[header] = parts.join(": ");
2078
+ });
2079
+ deferred.resolve(responseHeaders);
2080
+ return;
2081
+ }
2082
+ if (xhr.status === 204) {
2083
+ deferred.resolve(void 0);
2084
+ } else if (defined_default(response) && (!defined_default(responseType) || browserResponseType === responseType)) {
2085
+ deferred.resolve(response);
2086
+ } else if (responseType === "json" && typeof response === "string") {
2087
+ try {
2088
+ deferred.resolve(JSON.parse(response));
2089
+ } catch (e) {
2090
+ deferred.reject(e);
2091
+ }
2092
+ } else if ((browserResponseType === "" || browserResponseType === "document") && defined_default(xhr.responseXML) && xhr.responseXML.hasChildNodes()) {
2093
+ deferred.resolve(xhr.responseXML);
2094
+ } else if ((browserResponseType === "" || browserResponseType === "text") && defined_default(xhr.responseText)) {
2095
+ deferred.resolve(xhr.responseText);
2096
+ } else {
2097
+ deferred.reject(
2098
+ new RuntimeError_default("Invalid XMLHttpRequest response type.")
2099
+ );
2100
+ }
2101
+ };
2102
+ xhr.onerror = function(e) {
2103
+ deferred.reject(new RequestErrorEvent_default());
2104
+ };
2105
+ xhr.send(data);
2106
+ return xhr;
2107
+ };
2108
+ Resource._Implementations.loadAndExecuteScript = function(url, functionName, deferred) {
2109
+ return loadAndExecuteScript_default(url, functionName).catch(function(e) {
2110
+ deferred.reject(e);
2111
+ });
2112
+ };
2113
+ Resource._DefaultImplementations = {};
2114
+ Resource._DefaultImplementations.createImage = Resource._Implementations.createImage;
2115
+ Resource._DefaultImplementations.loadWithXhr = Resource._Implementations.loadWithXhr;
2116
+ Resource._DefaultImplementations.loadWithHttpRequest = loadWithHttpRequest;
2117
+ Resource._DefaultImplementations.loadAndExecuteScript = Resource._Implementations.loadAndExecuteScript;
2118
+ Resource.DEFAULT = Object.freeze(
2119
+ new Resource({
2120
+ url: typeof document === "undefined" ? "" : document.location.href.split("?")[0]
2121
+ })
2122
+ );
2123
+ var Resource_default = Resource;
2124
+
2125
+ export {
2126
+ combine_default,
2127
+ getAbsoluteUri_default,
2128
+ isCrossOriginUrl_default,
2129
+ Event_default,
2130
+ Resource_default
2131
+ };