@arcgis/core 6.0.0-next.1 → 6.0.0-next.10

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 (701) hide show
  1. package/analysis/AreaMeasurementAnalysis.d.ts +11 -1
  2. package/analysis/DimensionSimpleStyle.js +1 -1
  3. package/analysis/DirectLineMeasurementAnalysis.d.ts +11 -1
  4. package/analysis/DistanceMeasurementAnalysis.d.ts +8 -0
  5. package/arcade/featureSetUtils.js +1 -1
  6. package/arcade/functions/knowledgegraph.js +1 -1
  7. package/arcade/geometry/unitConversion.js +1 -1
  8. package/arcgisGlobal.d.ts +5 -5
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/01803f76bc0d9f2cd566.js +1 -0
  11. package/assets/esri/core/workers/chunks/{f09c9d9a554c33a753b4.js → 02253bdffbd580af22d8.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{5078b66ba31b770b689f.js → 037a8cc19debbaaa4e10.js} +1 -1
  13. package/assets/esri/core/workers/chunks/066550852483ab8f77bc.js +1 -0
  14. package/assets/esri/core/workers/chunks/{1ede8666d804c553803e.js → 0b6941781e35ce0f7274.js} +1 -1
  15. package/assets/esri/core/workers/chunks/0ccab50877b24f862d6e.js +1 -0
  16. package/assets/esri/core/workers/chunks/0f725cf79ce00e790a7d.js +1 -0
  17. package/assets/esri/core/workers/chunks/{a0d459bdb91ee892d4b6.js → 116293b1ee788a89ce1e.js} +1 -1
  18. package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
  19. package/assets/esri/core/workers/chunks/{a7325ebb7edf3273bb34.js → 12b84262dedc6b393136.js} +1 -1
  20. package/assets/esri/core/workers/chunks/1b077c92345ffb5916c2.js +1 -0
  21. package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
  22. package/assets/esri/core/workers/chunks/1c0c5cb13c2590aae906.js +1 -0
  23. package/assets/esri/core/workers/chunks/{8959a825f5e1ce6f38ac.js → 1c65ab9ed611c322ce27.js} +1 -1
  24. package/assets/esri/core/workers/chunks/1e0d2715d603f48a7e0b.js +1 -0
  25. package/assets/esri/core/workers/chunks/261fea092ee7d27608a0.js +1 -0
  26. package/assets/esri/core/workers/chunks/2686fe5b62dd0be699c0.js +1 -0
  27. package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +1 -0
  28. package/assets/esri/core/workers/chunks/{83589144eeeb08f45557.js → 2aeb5cc32284dd3e4d22.js} +1 -1
  29. package/assets/esri/core/workers/chunks/2d9a1f23ec6ce90723ac.js +1 -0
  30. package/assets/esri/core/workers/chunks/2e096537a3a5555a4a93.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/37d6a264a3f1d8072aa0.js +1 -0
  33. package/assets/esri/core/workers/chunks/3b3e519f15ed52c83f0c.js +1 -0
  34. package/assets/esri/core/workers/chunks/3c0ed15b544df6fb0903.js +1 -0
  35. package/assets/esri/core/workers/chunks/{b612de42ee86c0d95247.js → 3d9d7d3a40b51eb7ee3d.js} +1 -1
  36. package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +1 -0
  37. package/assets/esri/core/workers/chunks/3ffda5bf0b91700dc308.js +1 -0
  38. package/assets/esri/core/workers/chunks/40a584cb952e94326e9e.js +1 -0
  39. package/assets/esri/core/workers/chunks/{1317ecdfd0cfa683a493.js → 42323093827adffe56d3.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
  41. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
  42. package/assets/esri/core/workers/chunks/{d201fbf3ceff946d2bd6.js → 44d5508042cacdfcac47.js} +1 -1
  43. package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +1 -0
  44. package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
  45. package/assets/esri/core/workers/chunks/45800373650fbc8262e6.js +1 -0
  46. package/assets/esri/core/workers/chunks/{6a7ab1ef9a37e87db5ae.js → 46a7da93a63663878583.js} +1 -1
  47. package/assets/esri/core/workers/chunks/46b4fb6a7fe4877b0efc.js +1120 -0
  48. package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
  49. package/assets/esri/core/workers/chunks/4911ce62421a6c3320b0.js +1 -0
  50. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +1 -0
  51. package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +1 -0
  52. package/assets/esri/core/workers/chunks/4debf2d9c3465250ef7a.js +1 -0
  53. package/assets/esri/core/workers/chunks/4e544de61f07ca660236.js +1 -0
  54. package/assets/esri/core/workers/chunks/4e8e322b469657ac22e2.js +1 -0
  55. package/assets/esri/core/workers/chunks/505227797bcf2a1d908d.js +1 -0
  56. package/assets/esri/core/workers/chunks/{67ac6b326bf80fc3d33d.js → 53be85d04cd2da4f391d.js} +1 -1
  57. package/assets/esri/core/workers/chunks/54778dec1598818d93cb.js +1 -0
  58. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
  59. package/assets/esri/core/workers/chunks/557671c897ca5563be6c.js +1 -0
  60. package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +1 -0
  61. package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +1 -0
  62. package/assets/esri/core/workers/chunks/606ea251075fe81a1206.js +1 -0
  63. package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{e521bb9ee2030245c3ce.js → 612104dff305ff062dfa.js} +2 -2
  65. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
  66. package/assets/esri/core/workers/chunks/{3ac9dcbb0571a2580236.js → 62c8c9ad09e0166207fd.js} +1 -1
  67. package/assets/esri/core/workers/chunks/6400446b7615b97c3521.js +1 -0
  68. package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +1 -0
  69. package/assets/esri/core/workers/chunks/6588725275c75fae0d9c.js +1 -0
  70. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +1 -0
  71. package/assets/esri/core/workers/chunks/{9232f57623e1fa3ccabc.js → 67e4b5651fd7ff7d8cf0.js} +1 -1
  72. package/assets/esri/core/workers/chunks/68be3fb88ca61f82fb90.js +1 -0
  73. package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +1 -0
  74. package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
  75. package/assets/esri/core/workers/chunks/6ebe73f69ae822053b70.js +1 -0
  76. package/assets/esri/core/workers/chunks/709e019885822b1f6f3e.js +1 -0
  77. package/assets/esri/core/workers/chunks/70cc2d79653d66e85b58.js +1 -0
  78. package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
  79. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +1 -0
  80. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
  81. package/assets/esri/core/workers/chunks/76196c414e48834f7b92.js +1 -0
  82. package/assets/esri/core/workers/chunks/78472a57c2ba146fec65.js +1 -0
  83. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +1 -0
  84. package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
  85. package/assets/esri/core/workers/chunks/814751e705c05099f864.js +1 -0
  86. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
  87. package/assets/esri/core/workers/chunks/8487727f1197cf7dbf50.js +1 -0
  88. package/assets/esri/core/workers/chunks/88e54449261ef94e390d.js +1 -0
  89. package/assets/esri/core/workers/chunks/8b0d5551978ab0aac0d1.js +1 -0
  90. package/assets/esri/core/workers/chunks/8d0c2de92770a1567536.js +1 -0
  91. package/assets/esri/core/workers/chunks/900181f68449d8f82eeb.js +1 -0
  92. package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +1 -0
  93. package/assets/esri/core/workers/chunks/943a0f140813ee4ab04a.js +1 -0
  94. package/assets/esri/core/workers/chunks/96c3900685cfb2a8ca12.js +1 -0
  95. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +1 -0
  96. package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{86a051e9fe71aa356108.js → 9e3e442a9874ed23a043.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{aa1054834738aef48bda.js → a0356702f2d3f787aeac.js} +1 -1
  99. package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
  100. package/assets/esri/core/workers/chunks/{1ba1f705b6ce5c8ea702.js → a655ebdb4bf0660615a2.js} +1 -1
  101. package/assets/esri/core/workers/chunks/a8286febe371dc186aaa.js +1 -0
  102. package/assets/esri/core/workers/chunks/aaba33611753c6aada68.js +1 -0
  103. package/assets/esri/core/workers/chunks/aba42885c5d6b2b5fe7f.js +1 -0
  104. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +1 -0
  105. package/assets/esri/core/workers/chunks/ae40eac1eadd1a537bf4.js +1 -0
  106. package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
  107. package/assets/esri/core/workers/chunks/af349c7bc8ef41a0e1bd.js +1 -0
  108. package/assets/esri/core/workers/chunks/af75747b06d79446a855.js +1 -0
  109. package/assets/esri/core/workers/chunks/b564ec4e03478f5659db.js +1 -0
  110. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +1 -0
  111. package/assets/esri/core/workers/chunks/bc0f54a2c15502b630ec.js +1 -0
  112. package/assets/esri/core/workers/chunks/{ff3a53c3f00335552317.js → c29c474c4b1049352d3e.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
  114. package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
  115. package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
  116. package/assets/esri/core/workers/chunks/d6ad4390df576198e45b.js +1 -0
  117. package/assets/esri/core/workers/chunks/d7f6021fd41b9571a02c.js +1 -0
  118. package/assets/esri/core/workers/chunks/d90a3bfd45b5ed4092e0.js +1 -0
  119. package/assets/esri/core/workers/chunks/dba280c370df13196711.js +1 -0
  120. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +1 -0
  121. package/assets/esri/core/workers/chunks/{c18189710d6198516175.js → de5ecb567bd69c613e9d.js} +1 -1
  122. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +1 -0
  123. package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
  124. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +1 -0
  125. package/assets/esri/core/workers/chunks/e932951598499befabf5.js +1 -0
  126. package/assets/esri/core/workers/chunks/{e1ba915dae7747932c0f.js → eb04e1717a1002cda3ab.js} +1 -1
  127. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +1 -0
  128. package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
  129. package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +1 -0
  130. package/assets/esri/core/workers/chunks/f46d9a19f79d4a4bd354.js +1 -0
  131. package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
  132. package/assets/esri/core/workers/chunks/{711cfb84659cb4437679.js → f528ac5c648ca6a98582.js} +1 -1
  133. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +1 -0
  134. package/assets/esri/core/workers/chunks/fb444954be74c1962ced.js +1 -0
  135. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
  136. package/assets/esri/core/workers/chunks/{72019baeba520edb6bb0.js → fc44d45598a7476bc606.js} +1 -1
  137. package/assets/esri/core/workers/chunks/fecaf0bc28aeea4d15db.js +1 -0
  138. package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
  139. package/assets/esri/themes/base/_mixins.scss +2 -2
  140. package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
  141. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +2 -2
  142. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -5
  143. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -1
  144. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +2 -2
  145. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +5 -5
  146. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +1 -1
  147. package/assets/esri/themes/base/widgets/_Compass.scss +0 -2
  148. package/assets/esri/themes/base/widgets/_DirectionalPad.scss +4 -10
  149. package/assets/esri/themes/base/widgets/_Directions.scss +40 -40
  150. package/assets/esri/themes/base/widgets/_Editor.scss +7 -7
  151. package/assets/esri/themes/base/widgets/_Expand.scss +1 -1
  152. package/assets/esri/themes/base/widgets/_Feature.scss +1 -1
  153. package/assets/esri/themes/base/widgets/_FeatureForm.scss +6 -6
  154. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +1 -1
  155. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +1 -1
  156. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +4 -4
  157. package/assets/esri/themes/base/widgets/_FeatureTable.scss +27 -27
  158. package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +1 -1
  159. package/assets/esri/themes/base/widgets/_Features.scss +6 -6
  160. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -1
  161. package/assets/esri/themes/base/widgets/_FilterCondition.scss +1 -1
  162. package/assets/esri/themes/base/widgets/_Grid.scss +18 -18
  163. package/assets/esri/themes/base/widgets/_GridControls.scss +11 -11
  164. package/assets/esri/themes/base/widgets/_LayerList.scss +1 -1
  165. package/assets/esri/themes/base/widgets/_Legend.scss +5 -5
  166. package/assets/esri/themes/base/widgets/_NavigationToggle.scss +4 -1
  167. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +23 -28
  168. package/assets/esri/themes/base/widgets/_ResponsiveToolbar.scss +0 -2
  169. package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +1 -1
  170. package/assets/esri/themes/base/widgets/_SelectionList.scss +15 -15
  171. package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +3 -5
  172. package/assets/esri/themes/base/widgets/_ShadowCast.scss +11 -11
  173. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  174. package/assets/esri/themes/base/widgets/_Slice.scss +3 -3
  175. package/assets/esri/themes/base/widgets/_SnappingControls.scss +1 -1
  176. package/assets/esri/themes/base/widgets/_TimeSlider.scss +5 -5
  177. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +5 -4
  178. package/assets/esri/themes/base/widgets/_Tooltip.scss +14 -17
  179. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +2 -2
  180. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  181. package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +2 -2
  182. package/assets/esri/themes/base/widgets/_ValuePicker.scss +2 -2
  183. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +5 -5
  184. package/assets/esri/themes/base/widgets/_Widget.scss +5 -1
  185. package/assets/esri/themes/dark/main.css +1 -1
  186. package/assets/esri/themes/light/main.css +1 -1
  187. package/assets/esri/themes/light/view.css +1 -1
  188. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  189. package/{basemaps/BasemapCollection.d.ts → basemapGallery/BasemapGalleryModel.d.ts} +8 -8
  190. package/{basemaps/BasemapCollection.js → basemapGallery/BasemapGalleryModel.js} +1 -1
  191. package/{basemaps → basemapGallery}/BasemapsSource.d.ts +1 -1
  192. package/{basemaps → basemapGallery}/BasemapsSource.js +1 -1
  193. package/{basemaps → basemapGallery}/LocalBasemapsSource.d.ts +2 -2
  194. package/{basemaps → basemapGallery}/LocalBasemapsSource.js +1 -1
  195. package/{basemaps → basemapGallery}/PortalBasemapsSource.d.ts +2 -2
  196. package/{basemaps → basemapGallery}/PortalBasemapsSource.js +1 -1
  197. package/{basemaps → basemapGallery}/support/BasemapItem.d.ts +2 -2
  198. package/{basemaps → basemapGallery}/support/BasemapItem.js +1 -1
  199. package/{basemaps → basemapGallery}/types.d.ts +2 -2
  200. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  201. package/chunks/ChapmanAtmosphere.glsl.js +3 -3
  202. package/chunks/CloudsComposition.glsl.js +1 -1
  203. package/chunks/Component.glsl.js +41 -41
  204. package/chunks/DefaultMaterial.glsl.js +2 -2
  205. package/chunks/EdgeShader.glsl.js +9 -9
  206. package/chunks/Fog.glsl.js +5 -5
  207. package/chunks/GaussianSplat.glsl.js +2 -2
  208. package/chunks/GlobalIllumination.glsl.js +13 -11
  209. package/chunks/GlobalIlluminationBlur.glsl.js +3 -5
  210. package/chunks/GlobalIlluminationUpscale.glsl.js +1 -1
  211. package/chunks/HUDMaterial.glsl.js +13 -13
  212. package/chunks/Haze.glsl.js +6 -6
  213. package/chunks/HazeCompositing.glsl.js +1 -1
  214. package/chunks/LaserlinePath.glsl.js +6 -6
  215. package/chunks/LineCallout.glsl.js +1 -1
  216. package/chunks/LineMarker.glsl.js +5 -5
  217. package/chunks/NavigationDepth.glsl.js +2 -2
  218. package/chunks/Path.glsl.js +1 -1
  219. package/chunks/Pattern.glsl.js +26 -26
  220. package/chunks/Precipitation.glsl.js +7 -7
  221. package/chunks/RealisticTree.glsl.js +2 -2
  222. package/chunks/RibbonLine.glsl.js +80 -73
  223. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  224. package/chunks/ShadowHighlight.glsl.js +5 -5
  225. package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
  226. package/chunks/SimpleAtmosphere.glsl.js +4 -4
  227. package/chunks/Terrain.glsl.js +29 -32
  228. package/chunks/Viewshed.glsl.js +2 -2
  229. package/chunks/Water.glsl.js +2 -2
  230. package/config.js +1 -1
  231. package/core/Loadable.js +1 -1
  232. package/core/arrayUtils.js +1 -1
  233. package/core/colorUtils.js +1 -1
  234. package/core/has.js +1 -1
  235. package/core/screenUtils.js +1 -1
  236. package/core/units.js +1 -1
  237. package/core/workers/workerFactory.js +1 -1
  238. package/form/elements/inputs/DynamicChoiceInput.d.ts +35 -5
  239. package/geometry/HeightModelInfo.js +1 -1
  240. package/geometry/operators/proximityOperator.js +1 -1
  241. package/geometry/projectionUtils.js +1 -1
  242. package/geometry/support/meshUtils.d.ts +1 -1
  243. package/geometry/support/scaleUtils.js +1 -1
  244. package/geometry/support/wkt.js +2 -0
  245. package/kernel.js +1 -1
  246. package/layers/BaseDynamicLayer.d.ts +1 -0
  247. package/layers/BaseElevationLayer.d.ts +2 -0
  248. package/layers/BaseTileLayer.d.ts +12 -9
  249. package/layers/CSVLayer.d.ts +0 -15
  250. package/layers/FeatureLayer.d.ts +2 -15
  251. package/layers/GeoJSONLayer.d.ts +0 -52
  252. package/layers/GeoRSSLayer.d.ts +0 -44
  253. package/layers/GeospatialPDFLayer.d.ts +2 -5
  254. package/layers/GeospatialPDFLayer.js +1 -1
  255. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  256. package/layers/OrientedImageryLayer.js +1 -1
  257. package/layers/ParquetLayer.d.ts +100 -12
  258. package/layers/ParquetLayer.js +1 -1
  259. package/layers/SketchLayer.d.ts +0 -1
  260. package/layers/VectorTileLayer.d.ts +2 -12
  261. package/layers/geospatialPDF/renderExtentUtils.js +1 -1
  262. package/layers/graphics/data/FeatureStore.js +1 -1
  263. package/layers/graphics/data/QueryEngineResult.js +1 -1
  264. package/layers/graphics/data/geometryUtils.js +1 -1
  265. package/layers/graphics/data/projectionSupport.js +1 -1
  266. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  267. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  268. package/layers/graphics/transferFeatures.js +1 -1
  269. package/layers/knowledgeGraph/layerUtils.js +1 -1
  270. package/layers/knowledgeGraph/nodeMovementUtils.js +1 -1
  271. package/layers/mixins/PortalLayer.js +1 -1
  272. package/layers/mixins/RefreshableLayer.d.ts +1 -3
  273. package/layers/mixins/ScaleRangeLayer.js +1 -1
  274. package/layers/mixins/SublayersOwner.js +1 -1
  275. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  276. package/layers/orientedImagery/core/utils.js +1 -1
  277. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  278. package/layers/raster/datasets/TIFFRaster.js +1 -1
  279. package/layers/raster/datasets/byteStreamUtils.js +1 -1
  280. package/layers/raster/formats/tiffParser.js +1 -1
  281. package/layers/support/ParquetPortalItemData.d.ts +2 -0
  282. package/layers/support/ParquetPortalItemData.js +1 -1
  283. package/layers/support/PortalItemData.d.ts +21 -0
  284. package/layers/support/PortalItemData.js +1 -1
  285. package/layers/support/Sublayer.js +1 -1
  286. package/layers/support/SubtypeSublayer.js +1 -1
  287. package/layers/support/layersLoader.js +1 -1
  288. package/layers/support/parquetUtils.d.ts +1 -1
  289. package/layers/support/types.d.ts +1 -1
  290. package/package.json +3 -3
  291. package/popup/FeaturesModel.d.ts +27 -6
  292. package/popup/FeaturesModel.js +1 -1
  293. package/portal/support/layersLoader.js +1 -1
  294. package/portal/support/portalLayers.js +1 -1
  295. package/renderers/VectorFieldRenderer.d.ts +4 -4
  296. package/rest/print.d.ts +49 -3
  297. package/rest/print.js +1 -1
  298. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  299. package/rest/support/printTaskUtils.js +1 -1
  300. package/smartMapping/renderers/color.js +1 -1
  301. package/smartMapping/renderers/dotDensity.js +1 -1
  302. package/smartMapping/renderers/heatmap.js +1 -1
  303. package/smartMapping/renderers/pieChart.js +1 -1
  304. package/smartMapping/renderers/support/spikeUtils.js +3 -3
  305. package/smartMapping/renderers/type.js +1 -1
  306. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  307. package/smartMapping/statistics/histogram.js +1 -1
  308. package/smartMapping/statistics/summaryStatistics.js +1 -1
  309. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  310. package/smartMapping/statistics/uniqueValues.js +1 -1
  311. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  312. package/smartMapping/types.d.ts +3 -1
  313. package/symbols/LineSymbol3DLayer.js +1 -1
  314. package/symbols/callouts/LineCallout3D.js +1 -1
  315. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  316. package/symbols/cim/CIMSymbolHelper.js +1 -1
  317. package/symbols/cim/cimAnalyzer.js +1 -1
  318. package/symbols/edges/Edges3D.js +1 -1
  319. package/symbols/support/Symbol3DIconOutline.js +1 -1
  320. package/symbols/support/Symbol3DOutline.js +1 -1
  321. package/symbols/support/Symbol3DTextBorder.js +1 -1
  322. package/symbols/support/defaults3D.js +1 -1
  323. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  324. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +6 -4
  325. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  326. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  327. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +6 -4
  328. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  330. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  331. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  332. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  333. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  334. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  335. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  336. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  337. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  338. package/views/2d/layers/LayerView2D.js +1 -1
  339. package/views/2d/layers/features/FeatureContainer.js +1 -1
  340. package/views/2d/layers/features/FeatureSourceEventLog.js +1 -1
  341. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  342. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  343. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  344. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  345. package/views/2d/layers/features/sources/strategies/FeatureDrillDownTileLoadStrategy.js +1 -1
  346. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  347. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  348. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  349. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  350. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  351. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  352. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  353. package/views/3d/analysis/LineOfSight/LineOfSightInteractionVisuals.js +1 -1
  354. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  355. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  356. package/views/3d/analysis/LineOfSight/LineOfSightPlacementController.js +1 -1
  357. package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
  358. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  359. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  360. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  361. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  362. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  363. package/views/3d/analysis/Viewshed/types.d.ts +3 -1
  364. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +3 -0
  365. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +2 -1
  366. package/views/3d/environment/Environment.d.ts +2 -2
  367. package/views/3d/environment/Environment.js +1 -1
  368. package/views/3d/environment/EnvironmentView.js +2 -0
  369. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  370. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  371. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  372. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  373. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  374. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  375. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  376. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  377. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  378. package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
  379. package/views/3d/layers/FlowSubView3D.js +1 -1
  380. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  381. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  382. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  383. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  384. package/views/3d/layers/MediaLayerView3D.js +1 -1
  385. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  386. package/views/3d/layers/RouteLayerView3D.js +1 -1
  387. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  388. package/views/3d/layers/SceneLayerView3D.js +1 -1
  389. package/views/3d/layers/TiledLayerView3D.js +1 -1
  390. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  391. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  392. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  393. package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +2 -0
  394. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  395. package/views/3d/layers/graphics/Graphics3DDrapedBufferGraphicLayer.js +2 -0
  396. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  397. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +2 -0
  398. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  399. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  400. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  401. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  402. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  403. package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +2 -0
  404. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  405. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  406. package/views/3d/layers/graphics/Labeler.js +1 -1
  407. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  408. package/views/3d/layers/graphics/pointUtils.js +1 -1
  409. package/views/3d/layers/support/FeatureMemory.js +1 -1
  410. package/views/3d/layers/support/FeatureTile.js +1 -1
  411. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  412. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  413. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  414. package/views/3d/layers/support/SampledGeometryMaxDistanceRatio.js +1 -1
  415. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  416. package/views/3d/support/PBFDecoder.js +1 -1
  417. package/views/3d/support/elevationUpdateUtils.js +1 -1
  418. package/views/3d/support/popupHitTest.js +1 -1
  419. package/views/3d/terrain/OverlayManager.js +1 -1
  420. package/views/3d/terrain/OverlayRenderer.js +1 -1
  421. package/views/3d/terrain/TerrainRenderer.js +1 -1
  422. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  423. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +5 -5
  424. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +13 -13
  425. package/views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js +2 -0
  426. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  427. package/views/3d/webgl-engine/core/shaderLibrary/lastFrameUniforms.js +2 -0
  428. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -7
  429. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +31 -29
  430. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +26 -12
  431. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  432. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +14 -14
  433. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  434. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadGlobalIllumination.glsl.js +16 -11
  435. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +5 -5
  436. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +8 -8
  437. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +1 -1
  438. package/views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js +2 -0
  439. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +1 -1
  440. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +6 -6
  441. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  442. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  443. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  444. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  445. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  446. package/views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js +3 -3
  447. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.glsl.js +1 -1
  448. package/views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js +1 -1
  449. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  450. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  451. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  452. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  453. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  454. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  455. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  456. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +2 -2
  457. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +5 -5
  458. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  459. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  460. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  461. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  462. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  463. package/views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js +1 -1
  464. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  465. package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
  466. package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
  467. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  468. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  469. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  470. package/views/3d/webgl-engine/lib/affectsGeometry.js +1 -1
  471. package/views/3d/webgl-engine/lib/bufferGeometryUtils.js +2 -0
  472. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +5 -5
  473. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  474. package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +11 -11
  475. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  476. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  477. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  478. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  479. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  480. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  481. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  482. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  483. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  484. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  485. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  486. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  487. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  488. package/views/3d/webgl-engine/shaders/lineUniforms.js +2 -0
  489. package/views/DOMContainer.d.ts +28 -9
  490. package/views/DOMContainer.js +1 -1
  491. package/views/PopupView.d.ts +6 -0
  492. package/views/SceneView.d.ts +4 -10
  493. package/views/SceneView.js +1 -1
  494. package/views/VideoView.d.ts +27 -9
  495. package/views/View.d.ts +20 -19
  496. package/views/View.js +1 -1
  497. package/views/View2D.d.ts +13 -13
  498. package/views/draw/Draw.d.ts +1 -1
  499. package/views/draw/support/InteractiveHandle.js +1 -1
  500. package/views/draw/support/PluginContext.js +1 -1
  501. package/views/draw/support/managers/TooltipManager.js +1 -1
  502. package/views/interactive/options/SnappingOptions.d.ts +29 -12
  503. package/views/interactive/options/TooltipOptions.d.ts +9 -1
  504. package/views/interactive/options/ValueOptions.d.ts +9 -2
  505. package/views/interactive/options/ViewOptions.d.ts +82 -6
  506. package/views/interactive/snapping/FeatureSnappingSourceInfo.js +1 -1
  507. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  508. package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
  509. package/views/interactive/snapping/SnappingVisualizer.js +1 -1
  510. package/views/interactive/support/Units.d.ts +1 -0
  511. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  512. package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
  513. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  514. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  515. package/views/layers/FeatureLikeLayerView.d.ts +2 -2
  516. package/views/layers/GraphicsLayerView.d.ts +1 -0
  517. package/views/layers/ImageryLayerView.d.ts +1 -0
  518. package/views/layers/LayerView.js +1 -1
  519. package/views/layers/LineOfSightLayerView.d.ts +3 -4
  520. package/views/layers/ParquetLayerView.d.ts +15 -0
  521. package/views/layers/ParquetLayerView.js +1 -1
  522. package/views/layers/ViewshedLayerView.d.ts +5 -6
  523. package/views/support/layerViewUtils.js +1 -1
  524. package/views/support/projectionUtils.js +1 -1
  525. package/views/types.d.ts +3 -1
  526. package/webdoc/support/saveUtils.js +1 -1
  527. package/webdoc/support/unsupportedErrors.js +1 -1
  528. package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +2 -2
  529. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  530. package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +3 -3
  531. package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +2 -2
  532. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
  533. package/widgets/BasemapGallery/types.d.ts +3 -3
  534. package/widgets/BasemapLayerList.js +1 -1
  535. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  536. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  537. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  538. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +6 -0
  539. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  540. package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
  541. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  542. package/widgets/BatchAttributeForm.js +1 -1
  543. package/widgets/DirectionalPad.js +1 -1
  544. package/widgets/Editor/EditorViewModel.d.ts +13 -8
  545. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  546. package/widgets/Editor/workflowUtils.js +1 -1
  547. package/widgets/Editor.d.ts +19 -9
  548. package/widgets/Expand.js +1 -1
  549. package/widgets/FeatureForm.d.ts +2 -2
  550. package/widgets/FeatureForm.js +1 -1
  551. package/widgets/FeatureTable/FieldColumn.js +1 -1
  552. package/widgets/FeatureTable.js +1 -1
  553. package/widgets/Features/FeaturesDrillIn.js +1 -1
  554. package/widgets/Features.js +1 -1
  555. package/widgets/Legend.d.ts +1 -0
  556. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  557. package/widgets/OrientedImageryViewer/adapters/draw/HeightMeasurementAdapter.js +1 -1
  558. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  559. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  560. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  561. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  562. package/widgets/OrientedImageryViewer/components/SequentialNavigationUI.js +1 -1
  563. package/widgets/OrientedImageryViewer/components/SketchTools.js +1 -1
  564. package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
  565. package/widgets/OrientedImageryViewer/types.d.ts +20 -0
  566. package/widgets/OrientedImageryViewer.d.ts +9 -1
  567. package/widgets/PanoramicVideoViewer.js +1 -1
  568. package/widgets/Print/PrintViewModel.d.ts +3 -2
  569. package/widgets/Print/PrintViewModel.js +1 -1
  570. package/widgets/Print.js +1 -1
  571. package/widgets/ScaleRangeSlider.js +1 -1
  572. package/widgets/Search/SearchResultRenderer.js +1 -1
  573. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  574. package/widgets/Sketch/SketchViewModel.d.ts +14 -9
  575. package/widgets/Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js +1 -1
  576. package/widgets/Sketch.d.ts +10 -10
  577. package/widgets/Track/TrackViewModel.d.ts +1 -1
  578. package/widgets/UtilityNetworkAssociations.js +1 -1
  579. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  580. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +1 -1
  581. package/widgets/UtilityNetworkTrace/types.d.ts +2 -2
  582. package/widgets/UtilityNetworkTrace.js +1 -1
  583. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  584. package/widgets/ValuePicker.js +1 -1
  585. package/widgets/VideoPlayer/components/PlayerActionsGroup.js +1 -1
  586. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  587. package/widgets/support/GridControls.js +1 -1
  588. package/widgets/support/PluginSettingsControls.js +1 -1
  589. package/widgets/support/SelectionList/FeatureItem.d.ts +9 -2
  590. package/widgets/support/SelectionToolbar.js +1 -1
  591. package/widgets/support/SnappingControls.d.ts +1 -1
  592. package/widgets/support/SnappingControls.js +1 -1
  593. package/widgets/support/componentsUtils.js +1 -1
  594. package/arcade/geometry/wkt.js +0 -2
  595. package/assets/esri/core/workers/chunks/00a600c71ceebe7bfeee.js +0 -1
  596. package/assets/esri/core/workers/chunks/00d24415bdeb0adae3df.js +0 -1
  597. package/assets/esri/core/workers/chunks/0193df3f9fb23633da87.js +0 -1
  598. package/assets/esri/core/workers/chunks/01b00fbf6a6a22d573ee.js +0 -1
  599. package/assets/esri/core/workers/chunks/02d4f91652a79d2b637e.js +0 -1
  600. package/assets/esri/core/workers/chunks/050c4b212f2b5691db34.js +0 -1
  601. package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
  602. package/assets/esri/core/workers/chunks/05d865b2736f452ad2aa.js +0 -1
  603. package/assets/esri/core/workers/chunks/06e7400f5ebe0719b81c.js +0 -1
  604. package/assets/esri/core/workers/chunks/07aa6d36f1006b6ab7ff.js +0 -1
  605. package/assets/esri/core/workers/chunks/084222c00d263a534952.js +0 -1
  606. package/assets/esri/core/workers/chunks/0b36abcbf03037b4073d.js +0 -1
  607. package/assets/esri/core/workers/chunks/107b025dc5b09465a78f.js +0 -1
  608. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +0 -1
  609. package/assets/esri/core/workers/chunks/1ef39aef6b33c530cbe4.js +0 -1
  610. package/assets/esri/core/workers/chunks/1f3148cebee1961249a4.js +0 -1
  611. package/assets/esri/core/workers/chunks/1f43e06dcfe56229bb0f.js +0 -1
  612. package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
  613. package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
  614. package/assets/esri/core/workers/chunks/25d6c674b1c4829f040f.js +0 -1
  615. package/assets/esri/core/workers/chunks/260dcb79dfd0f981949f.js +0 -1
  616. package/assets/esri/core/workers/chunks/2a570ce6b99dac6ee996.js +0 -1
  617. package/assets/esri/core/workers/chunks/2e6a2f4d686b71249c0e.js +0 -1
  618. package/assets/esri/core/workers/chunks/2f9033890c465acff698.js +0 -1
  619. package/assets/esri/core/workers/chunks/303676d1b10676c9cab4.js +0 -1
  620. package/assets/esri/core/workers/chunks/303fde8f3459dde16555.js +0 -1
  621. package/assets/esri/core/workers/chunks/32d08b571bbd996d4e6d.js +0 -1
  622. package/assets/esri/core/workers/chunks/33956f12505e72e60293.js +0 -1
  623. package/assets/esri/core/workers/chunks/350540770781b281c39a.js +0 -1
  624. package/assets/esri/core/workers/chunks/37a636f61cfe89c6bfd1.js +0 -1
  625. package/assets/esri/core/workers/chunks/380cc538c1ab453870fa.js +0 -1
  626. package/assets/esri/core/workers/chunks/3880d2c7fb14955d7f93.js +0 -1
  627. package/assets/esri/core/workers/chunks/3b017b718ea2d4ed498f.js +0 -1
  628. package/assets/esri/core/workers/chunks/40fb1910f780e78c128c.js +0 -1
  629. package/assets/esri/core/workers/chunks/4310c8d2b40ae69c3681.js +0 -1
  630. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +0 -1
  631. package/assets/esri/core/workers/chunks/4848f195eb93cc93dd15.js +0 -1
  632. package/assets/esri/core/workers/chunks/4cddd217383b9333f32e.js +0 -1
  633. package/assets/esri/core/workers/chunks/4d82db661365daa513a6.js +0 -1
  634. package/assets/esri/core/workers/chunks/4fa59f8ed3b7b6239548.js +0 -1
  635. package/assets/esri/core/workers/chunks/57970d43cdcc5cf57a30.js +0 -1
  636. package/assets/esri/core/workers/chunks/5e184fd47e76eb976fa9.js +0 -1
  637. package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
  638. package/assets/esri/core/workers/chunks/5f3ab77a79c408423fde.js +0 -1
  639. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +0 -1
  640. package/assets/esri/core/workers/chunks/604344e45c0f27497188.js +0 -1
  641. package/assets/esri/core/workers/chunks/61ad8306ab79aca79505.js +0 -1
  642. package/assets/esri/core/workers/chunks/633a9051580c5302d2f7.js +0 -1
  643. package/assets/esri/core/workers/chunks/6469c0d18d3663e7da4b.js +0 -1
  644. package/assets/esri/core/workers/chunks/65654e481cce9ae40e54.js +0 -1
  645. package/assets/esri/core/workers/chunks/669e39c3437d7273f0c7.js +0 -1
  646. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +0 -1
  647. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +0 -1
  648. package/assets/esri/core/workers/chunks/71f739bb3f7350704af6.js +0 -1
  649. package/assets/esri/core/workers/chunks/750a9f3cdb96b966274a.js +0 -1
  650. package/assets/esri/core/workers/chunks/776565dd9741ba2ba151.js +0 -1
  651. package/assets/esri/core/workers/chunks/798a63653f82c0e842c5.js +0 -1
  652. package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
  653. package/assets/esri/core/workers/chunks/84fcbf7a1d04f01685d1.js +0 -1
  654. package/assets/esri/core/workers/chunks/897fc8e78a0d54a5ff5a.js +0 -1
  655. package/assets/esri/core/workers/chunks/8af92bcc075e03e3e902.js +0 -1742
  656. package/assets/esri/core/workers/chunks/8e511079918e2fd9261f.js +0 -1
  657. package/assets/esri/core/workers/chunks/8e7a33cc1f83063043f2.js +0 -1
  658. package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
  659. package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
  660. package/assets/esri/core/workers/chunks/9432feca48ca3e5849bd.js +0 -1
  661. package/assets/esri/core/workers/chunks/956a40f40bde416efe93.js +0 -1
  662. package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +0 -1
  663. package/assets/esri/core/workers/chunks/9673a9efec86040b8c13.js +0 -1
  664. package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
  665. package/assets/esri/core/workers/chunks/985b3f18cee87c3fe022.js +0 -1
  666. package/assets/esri/core/workers/chunks/9a7fc93cc693fd12b5d8.js +0 -1
  667. package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
  668. package/assets/esri/core/workers/chunks/a010d2e4e34eb7bc1fec.js +0 -1
  669. package/assets/esri/core/workers/chunks/a20526996d01386ec3b7.js +0 -1
  670. package/assets/esri/core/workers/chunks/a23272a7a47a95f6ddea.js +0 -1
  671. package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
  672. package/assets/esri/core/workers/chunks/aa5b42e44d2959fdacd3.js +0 -1
  673. package/assets/esri/core/workers/chunks/ae2181805d8ba130babc.js +0 -1
  674. package/assets/esri/core/workers/chunks/b05a41a60e30935644be.js +0 -1
  675. package/assets/esri/core/workers/chunks/b0cfec11c758eed8095f.js +0 -1
  676. package/assets/esri/core/workers/chunks/bff767ec5bb4c0d6b324.js +0 -1
  677. package/assets/esri/core/workers/chunks/c906f984b2b6e7578c06.js +0 -1
  678. package/assets/esri/core/workers/chunks/ca7fb75e2c62e7d37122.js +0 -1
  679. package/assets/esri/core/workers/chunks/cbdebdfa5f2cded29d0d.js +0 -1
  680. package/assets/esri/core/workers/chunks/cbe6c0f32608cb504695.js +0 -1
  681. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +0 -1
  682. package/assets/esri/core/workers/chunks/d270cc9807161033686e.js +0 -1
  683. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +0 -1
  684. package/assets/esri/core/workers/chunks/d6d5a9e73ee43d6066d3.js +0 -1
  685. package/assets/esri/core/workers/chunks/d89fe41c71c9621c41ae.js +0 -1
  686. package/assets/esri/core/workers/chunks/da18d96b35af20e73b3b.js +0 -1
  687. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +0 -1
  688. package/assets/esri/core/workers/chunks/df0481bcc1613ee4b7af.js +0 -1
  689. package/assets/esri/core/workers/chunks/e22d45aeef293a5ffb78.js +0 -1
  690. package/assets/esri/core/workers/chunks/e5943f3a4bbc12c06c4d.js +0 -1
  691. package/assets/esri/core/workers/chunks/e7c60bd85abbd36cdc64.js +0 -1
  692. package/assets/esri/core/workers/chunks/ec9a2425b4a498054a19.js +0 -1
  693. package/assets/esri/core/workers/chunks/edf3be87a997f4f05b96.js +0 -1
  694. package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
  695. package/assets/esri/core/workers/chunks/f0a68d2900d24f56afa0.js +0 -1
  696. package/assets/esri/core/workers/chunks/f0aaa646b17ffdbdcefa.js +0 -1
  697. package/assets/esri/core/workers/chunks/f0c0c02730fe0d948fc1.js +0 -1
  698. package/assets/esri/core/workers/chunks/fd0254c6fc6c03ec11ba.js +0 -1
  699. package/assets/esri/core/workers/chunks/ffb3728e6ac428f62af1.js +0 -1
  700. package/views/3d/environment/EnvironmentManager.js +0 -2
  701. /package/{basemaps → basemapGallery}/support/basemapCompatibilityUtils.js +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as n}from"../../../../core/compilerUtils.js";import r from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as o,throwIfAborted as s}from"../../../../core/promiseUtils.js";import{QueueProcessor as c}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import{getMetersPerUnitForSR as u}from"../../../../core/units.js";import d from"../../../../geometry/SpatialReference.js";import{set as f,create as p,expandWithAABB as m,expandWithRect as ee,negativeInfinity as h}from"../../../../geometry/support/aaBoundingBox.js";import{copy as te,negativeInfinity as g,create as ne,expandWithRect as re}from"../../../../geometry/support/aaBoundingRect.js";import{isWebMercator as _,isWGS84 as v}from"../../../../geometry/support/spatialReferenceUtils.js";import{normalizeColumnPath as y,readParquetFileAttribute as b}from"../../../parquet.js";import{convertToGeometry as x}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as S}from"../../data/attributeSupport.js";import{getQueryResultExtent as C,getQueryBoundingRects as w,QueryEngine as T}from"../../data/QueryEngine.js";import{queryCapabilities as ie}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as E}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as D}from"../../data/queryUtils.js";import{createFileProvider as O}from"../parquet/createFileProvider.js";import{readFieldStatistic as k}from"../parquet/ParquetFileStatistics.js";import{createDrawingInfo as ae}from"./clientSideDefaults.js";import{getParquetFileId as oe,getParquetRowId as se,getParquetObjectId as ce}from"./parquetIdUtils.js";import A from"../../../support/Field.js";import j from"../../../support/FieldsIndex.js";import{isNumericField as M}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as N}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as P,fromParquetJSONGeometryType as F,toParquetJSONGeometryType as I}from"../../../support/parquetUtils.js";import{loadParquetModule as L}from"../../../../libs/librust-parquet/loadParquetModule.js";import{utc as R}from"../../../../time/constants.js";import{FeatureStoreQueryAdapter as z}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as B}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as V}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as H}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as U}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const W=new z,G=`__OBJECTID`,K=8e3;class le{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){s(e),await this._fill(e);let t=await ue(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,t.chunk!=null)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<8;){let t=this._getOrCreateNextStream(e);if(t==null)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){let t=this._resolvedCount>=8?8:2;if(this._fileIndex<this._files.length&&this._streams.length<t){let t=this._files[this._fileIndex++],n=new de(t.id,this._createFileStream(t,e));return this._streams.push(n),n}return this._getNextStream()}_getNextStream(){let e=this._streams.length;for(let t=0;t<e;t++){let n=(this._streamIndex+t)%e,r=this._streams[n];if(r.canRead)return this._streamIndex=(n+1)%e,r}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ue(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class de{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&this._readCount===0}async read(e){this._readCount++;try{let t=await(await this._stream).next(e);return t==null?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:t}}finally{this._readCount--}}}class fe{constructor(){this._hasZ=!1,this._hasM=!1,this._queue=new c({concurrency:4,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){let t=e.spatialReference?d.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new r(`parquet:unsupported-projection`,`Only WGS84 and Web Mercator are supported`);this._customParameters=e.customParameters,this._loadParameters=e,await this._updateProvider(O(e.provider,null,()=>this._customParameters));let n=await this._provider.getMetadata(),i=await P(n,{fields:e.fields?.map(e=>A.fromJSON(e)),geometryEncoding:e.geometryEncoding?N(e.geometryEncoding):null,geometryType:e.geometryType?F(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(this._hasZ=!!n?.hasZ,this._hasM=!!n?.hasM,!i.fields)throw new r(`parquet:unsupported`,`Fields must be defined`);let o;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new r(`parquet:unsupported`,`SpatialReference must be defined`);if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new r(`parquet:unsupported-projection`,`Only WGS84 and Web Mercator are supported`);i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger(`parquet:unsupported-projection`).warn(`Found a geographic projection that is not WGS84. Handling as WGS84.`,{spatialReference:i.spatialReference}),i.spatialReference=d.WGS84),o={geometry:i.geometryEncoding?{geometryType:I(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(o),this._capabilities=$(await this._getFileStatistics(),this._hasZ,this._hasM);let s=await this._provider.getFiles();if(!s.length)return{layerDefinition:{},capabilities:$(null,this._hasZ,this._hasM)};let c=await s[0].file;i.file=c;let{fields:l}=i;if(l==null)throw new r(`parquet-layer:missing-metadata`,`Unable to create parquet source: cannot infer fields`,l);l.push(new A({name:G,type:`oid`,alias:G}));for(let e of l){let t=c.getColumnId(e.name);t!=null&&(this._indexMap[e.name]=t)}let u=j.fromLayerJSON({fields:l.map(e=>e.toJSON()),dateFieldsTimeReference:{timeZoneIANA:`UTC`}});this._fieldsIndex=u;let f=I(i.geometryType??`point`);return this._metadata=H.createFeature({fieldsIndex:u.toJSON(),geometryType:f,hasZ:this._hasZ,hasM:this._hasM,featureIdInfo:{type:`object-id`,fieldName:G},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,attributeSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:R}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:f,featureIdInfo:{type:`object-id`,fieldName:G},hasM:this._hasM,hasZ:this._hasZ,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=n?.extent?n.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:ae(f),extent:this._fullExtent??void 0,geometryType:f,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(let{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy(``)}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._loadParameters={...this._loadParameters,provider:e};let t=O(e,this._provider.getGeometryInfo(),()=>this._customParameters);await this._updateProvider(t)}async getDiagnosticsSnapshot(){let e=await this._provider.getFiles();return{files:await Promise.all(e.map(e=>e.getDiagnosticsSnapshot()))}}async getColumnIndex(e){return(await this._getFileInfoById(e.fileId)).getColumnIndex(e.rowGroupIndex,e.columnIndex)}async getOffsetIndex(e){return(await this._getFileInfoById(e.fileId)).getOffsetIndex(e.rowGroupIndex,e.columnIndex)}async queryFeatures(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),we(n)||(n.resultRecordCount=n.resultRecordCount?Math.min(n.resultRecordCount,K):K,n.resultOffset=n.resultOffset??0),n.outStatistics?this._queryStatistics(n,t):(n.returnDistinctValues&&(n.returnGeometry=void 0),(await this._enqueueQuery(n,t)).createQueryResponse())}async queryFeatureCount(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),!q(n)&&!n.returnDistinctValues&&!n.groupByFieldsForStatistics?.length&&!n.outStatistics?.length?this._getFeatureCount():(n.returnDistinctValues||(n.outFields=void 0),n.returnGeometry=void 0,(await this._enqueueQuery(n,t)).createQueryResponseForCount())}async queryObjectIds(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),q(n)?(n.resultRecordCount=n.resultRecordCount?Math.min(n.resultRecordCount,8e3):8e3,n.resultOffset=n.resultOffset??0,n.returnGeometry=void 0,n.outFields=void 0,n.returnDistinctValues=void 0,(await this._enqueueQuery(n,t)).items.map(e=>e.getObjectId())):Array.from({length:await this._getFeatureCount()},(e,t)=>t)}async queryAttributeBins(e,t={}){throw new r(`parquet:unsupported`,`queryAttributeBins not supported.`)}async queryExtent(e,t){let r=await D(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),this._fullExtent&&!q(r))return{count:await this._getFeatureCount(),extent:this._fullExtent};let i=n(this._metadata.spatialReference);r.returnGeometry=!0,r.outFields=void 0;let a=f(p(),h),o=p(),s=await this._enqueueQuery(r,t),c=0;for(let e of s.items)e.getBounds(o)&&(m(a,o),c+=1);let l=C(a,i,r.outSR?n(r.outSR):i.toJSON(),i,!1);return{count:c,extent:l}}async queryStream(e,t){if(!t.signal)throw Error(`InternalError: AbortSignal must be passed`);let n=await this._getCandidateFiles(e),r=new le(n,async(t,n)=>{let r=await t.file,i=await this._createParquetDisplayQuery(r,t.id,e);return r.executeQuery(i,K,n)}),i=this._streamIdCounter++,a=o(t.signal,e=>{let t=this._streams.get(i);t!=null&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:r,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw Error(`InternalError: AbortSignal must be passed`);let n=this._streams.get(e);if(!n)return{result:null};let r=await n.stream.next(t.signal);if(r==null)return n.handle.remove(),this._streams.delete(e),{result:null};let i=r.chunk.serialize().buffer,a={fileId:r.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){let{result:n}=await this.getStreamNext(e,t);if(n==null)return null;let r=(await L()).ParquetChunk.deserialize(new Uint8Array(n.buffer)),i=new U(this._metadata,this._indexMap,r,n.fileId),a=[];for(;i.next();){let e=x(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,n,r,i){if(!i.signal)throw Error(`InternalError: AbortSignal must be passed`);return(await(await(await this._getFileInfoById(e)).file).createChunkPatch(t,n,r,i.signal)).serialize().buffer}async _updateProvider(e){let t=this._provider;this._handles.removeAll(),this._provider=e,this._handles.add([e.events.on(`rangeRead`,e=>{this._source.onRangeRead(e)}),e.events.on(`sourceChanged`,async()=>{await this.reload(this._loadParameters),await this._source.onSourceChange()})]),await t?.destroy()}async _getCandidateFiles(e){let t=await this._provider.getFiles(),n=await this._getSpatialFilePruning(e);if(n==null)return t;let r=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,n));return n.type===`xz`?Ce(r,n):r}async _queryStatistics(e,t){let n=await D({...e},null,this._queryEngineParams.spatialReference);if(n.returnGeometry=void 0,ve(n,this._fieldsIndex)){let e=await this._getStatisticsFromFiles(n);if(e)return e}return(await this._enqueueQuery(n,t)).createQueryResponse()}async _getStatisticsFromFiles(e){let t=await this._provider.getFiles(),n={},r=[];for(let i of e.outStatistics??[]){let e=xe(i,t);if(!e.available)return null;n[i.outStatisticFieldName]=e.value,r.push(be(i,this._fieldsIndex))}return{fields:r,features:[{attributes:n}]}}async _getSpatialFilePruning(e){if(e.type!==`tile`&&(e.type!==`arcade`||e.extent==null))return null;let t=this._displayOptimization?.index;if(t==null)return null;let n=e.outSpatialReference.wkid;if(t.wkid==null||n==null)return null;let r=t.wkid,i=await L();switch(t.type){case`xz`:return{type:`xz`,fieldName:y(t.code),intersects:(a,o)=>i.queryIntersectsXZStatistics(t.fullExtent,e.extent,n,r,t.maxLevel,a,o)};case`z`:return{type:`xy`,xFieldName:y(t.xColumn),yFieldName:y(t.yColumn),intersects:(t,a,o,s)=>i.queryIntersectsXYStatistics(e.extent,n,r,t,a,o,s)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case`xz`:{let n=Z(e,t);return n?.type===`null-only`?!1:n?.type!==`bounds`||t.intersects(n.minValue,n.maxValue)}case`xy`:{let n=e.statistics.statistics.get(t.xFieldName),r=e.statistics.statistics.get(t.yFieldName);return n?.type===`null-only`||r?.type===`null-only`?!1:n?.type!==`bounds`||r?.type!==`bounds`||t.intersects(n.minValue,n.maxValue,r.minValue,r.maxValue)}}}async _tryDeriveParquetFullExtent(n){if(!n.spatialReference)return null;if(this._fullExtent==null&&n.geometryEncoding?.type===`location`){let r=await this._provider.getFiles(),{xField:i,yField:a}=n.geometryEncoding,o=f(p(),h),s=!1;for(let n of r){let r=await n.file;for(let n of r.rowGroups()){let r={stack:[],error:void 0,hasError:!1};try{let t=e(r,n.columnDescriptorForAttribute(i),!1),c=e(r,n.columnDescriptorForAttribute(a),!1),l=k(t),u=k(c);if(l?.type===`bounds`&&u?.type===`bounds`){let e=[l.minValue,u.minValue,l.maxValue,u.maxValue];ee(o,e),s=!0}n.free()}catch(e){r.error=e,r.hasError=!0}finally{t(r)}}}return s?{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:n.spatialReference?.toJSON()}:null}return null}async _getFileInfoById(e){let t=await this._provider.getFiles();for(let n of t)if(n.id===e)return n;throw Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,n,r,i){let a=(await L()).Query.new();n!=null&&a.setPreFilterStart(n),r!=null&&a.setPreFilterCount(r),i!=null&&a.setPostFilterCount(i);let o=await this._getRequiredFields(e);a.setOutFields(o),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM);let s=this._tryGetGeneralizedGeometryResolution(e);s!=null&&a.setSourceResolution(s);let c=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=c.wkid;if(e.geometry&&(_(c)||v(c))){let t=te(ne(),g);for(let n of w(e.geometry))re(t,n);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){let{id:n,file:r}=t;await this._setWhereClause(a,await r,n,e.where)}return a}async _createParquetDisplayQuery(e,t,n){let r=(await L()).Query.new();if(n.type===`tile`){r.setExtent(n.extent),r.setQuantizationTransform(n.transform);let e=this._sourceResolution(n.resolution,n.outSpatialReference);e!=null&&r.setSourceResolution(e)}else n.type===`arcade`&&n.extent!=null&&r.setExtent(n.extent);return r.setOutFields(n.outFields.filter(e=>this._indexMap[e]!=null)),r.setOutSpatialReference(n.outSpatialReference.wkid),r.setReturnGeometry(n.returnGeometry),r.setReturnZ(n.returnZ),r.setReturnM(n.returnM),n.where&&await this._setWhereClause(r,e,t,n.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new r(`parquet:unsupported`,`Statistics queries are not supported`,{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new r(`parquet:unsupported`,`Queries using orderBy are not supported`,{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new r(`parquet:unsupported`,`Queries using returnDistinctValues are not supported`,{query:e})}async _setWhereClause(e,t,n,i){let a=this._indexMap,o=this._fieldsIndex,s={getAttribute(e,r){let i=a[r];if(i==null){if(o.get(r)?.name===`__OBJECTID`){let t=e.row+e.rowGroupStart;return ce(n,t)}return null}let s=o.get(r);return b(t,e.rowGroup,e.row,i,s.type)}},c=await l(i,this._fieldsIndex);if(!c.isStandardized)throw new r(`sql-parse-error`,`expression is not standardized`);let u=(e,t,n)=>c.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:n},s,null),d=c.fieldNames.map(e=>o.get(e)).filter(e=>e&&this._indexMap[e?.name]!=null);e.setWhere(i),e.setWhereEvaluator(u),e.setWhereFields(d.map(e=>e.name))}async*_streamFeatures(e,t,n,r,i){let a=await this._provider.getFiles(),o=0;for(let s of a){let a=o,c=o+s.statistics.rowCount;if(o+=s.statistics.rowCount,t!=null&&t>=c)continue;let l=t==null?null:Math.max(t-a,0),u=n;if(n!=null){let e=t??0,r=e+n;u=Math.max(Math.min(r,c)-Math.max(e,a),0)}if(u===0)continue;let d=await this._createParquetQuery(e,s,l,u,r),f=await(await s.file).executeQuery(d,K),p=async()=>{let e=await f.next(i);if(!e)return null;let t=new U(this._metadata,this._indexMap,e,s.id);return X([new B(t,null,0,!1)],this._queryEngineParams)},m=await p();for(;m!=null;)yield m,m=await p()}}async _queryFeaturesWithQueryEnginePagination(e,t){let n=[],r=this._streamFeatures(e,null,null,null,t),i=await r.next();for(;!i.done;){let a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(let e of a)n.push(e);i=await r.next()}return n}async _queryFeaturesWithUpfrontPagination(e,t){let n=e.resultOffset??0,r=e.resultRecordCount??K,i,a,o;ge(e)?_e(e)||(o=n+r):(n&&=(i=n,0),a=e.resultRecordCount);let s=[],c=this._streamFeatures(e,i,a,o,t),l=await c.next();for(;!l.done&&r>0;){let i=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(let e of i)if(n>0)n--;else if(s.push(e),--r<=0)return s;l=await c.next()}return s}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){let n=new Map;for(let t of e.objectIds){let e=oe(t),r=se(t),i=n.get(e);i||(i=[],n.set(e,i)),i.push(r)}let r=[];for(let[i,a]of n.entries()){let n=await this._executeFileIdQuery(e,i,a,t);for(let e of n)r.push(e)}return new E(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:W,featureIdInfo:this._queryEngineParams.featureIdInfo})}if(e.where===`1=1`&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>2e7&&!(this._displayOptimization&&e.geometry))throw new r(`parquet:cannot-execute-query`,`Unable to execute query, dataset is too large.`);let n=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=n?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return n||(e.resultOffset=0),new E(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:W,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,n,r){let i=await this._getRequiredFields(e),a=(await L()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM),a.setIds(new Uint32Array(n));let o=await(await this._getFile(t)).executeQuery(a,K,r),s=await o.next(r),c=0,l=[];for(;s!=null;){let e=new U(this._metadata,this._indexMap,s,t),n=new B(e,null,c++,!1);l.push(n),s=await o.next(r)}return X(l,this._queryEngineParams).executeQueryForOpaqueFeatures(e,r)}async _getRequiredFields(e){let t=new Set;if(e.outStatistics)for(let n of S(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(n);else if(e.outFields)for(let n of e.outFields)t.add(n);return(t.has(`*`)?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>this._indexMap[e]!=null)}_tryGetGeneralizedGeometryResolution(e){if(!this._displayOptimization)return null;let t=e.outSR??this._queryEngineParams.spatialReference;if(!_(t)&&!v(t))return null;let n=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return n?this._sourceResolution(n,t):null}_sourceResolution(e,t){let n=this._queryEngineParams.spatialReference,r=u(t)/u(n)*e;return!Number.isFinite(r)||r<=0?null:r}}function pe(e){switch(e){case`fullText`:case`having`:case`timeExtent`:case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:case`objectIds`:case`where`:case`geometry`:case`resultOffset`:case`resultRecordCount`:return!0;default:return!1}}function me(e){switch(e){case`fullText`:case`having`:case`timeExtent`:case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:case`objectIds`:case`where`:case`geometry`:return!0;default:return!1}}function he(e){switch(e){case`fullText`:case`having`:case`timeExtent`:return!0;case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:return!1;case`objectIds`:case`where`:case`resultOffset`:case`geometry`:case`resultRecordCount`:return!1}return!1}function q(e){for(let t in e){let n=t;if(pe(n)&&e[n]!==null)return!0}return!1}function ge(e){for(let t in e){let n=t;if(me(n)&&e[n]!==null)return!0}return!1}function _e(e){for(let t in e){let n=t;if(he(n)&&e[n]!==null)return!0}return!1}function ve(e,t){return!!e.outStatistics?.length&&!q(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case`count`:return e.onStatisticField===`1`||t.get(e.onStatisticField)!=null;case`min`:case`max`:{let n=t.get(e.onStatisticField);return n!=null&&M(n)}default:return!1}}function be(e,t){let n=e.statisticType===`exceedslimit`?null:t.get(e.onStatisticField),r=(e.statisticType===`min`||e.statisticType===`max`)&&n?.type===`esriFieldTypeDate`?n.type:`esriFieldTypeDouble`;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:r}}function xe(e,t){switch(e.statisticType){case`count`:return J(e,t);case`min`:return Y(e,t,Math.min);case`max`:return Y(e,t,Math.max);default:return{available:!1,value:null}}}function J(e,t){if(e.statisticType!==`count`)return{available:!1,value:null};if(e.onStatisticField===`1`)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let n=0;for(let r of t){let t=r.statistics.statistics.get(e.onStatisticField);if(t==null||t.nullCount==null)return{available:!1,value:null};n+=r.statistics.rowCount-t.nullCount}return{available:!0,value:n}}function Y(e,t,n){if(e.statisticType!==`min`&&e.statisticType!==`max`)return{available:!1,value:null};let r=null,i=e.statisticType===`min`?`minValue`:`maxValue`;for(let a of t){let t=a.statistics.statistics.get(e.onStatisticField);if(t==null)return{available:!1,value:null};switch(t.type){case`null-only`:continue;case`unknown`:return{available:!1,value:null};case`bounds`:{let e=Se(t[i]);if(e==null)return{available:!1,value:null};r=r==null?e:n(r,e);break}}}return{available:!0,value:r}}function Se(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function X(e,t){let n=new V;for(let t of e)n.insert(t);return new T({...t,featureStore:n})}function Z(e,t){return e.statistics.statistics.get(t.fieldName)??null}function Ce(e,t){return e.slice().sort((e,n)=>{let r=Q(e,t),i=Q(n,t);return r===i?0:r<i?-1:1})}function Q(e,t){let n=Z(e,t);return n?.type===`bounds`?n.maxValue-n.minValue:1/0}function $(e,t,n){let r=e?.featureCount,i=!1;return r!=null&&r<has(`parquetlayer-full-query-feature-count`)&&(i=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:n,supportsTrueCurve:!1,supportsZ:t},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...ie,maxRecordCount:K,supportsOrderBy:i,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function we(e){return!!e.objectIds?.length||!!e.outStatistics||!!e.orderByFields?.length||!!e.returnDistinctValues}export{fe as default};
2
+ import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as n}from"../../../../core/compilerUtils.js";import r from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as o,throwIfAborted as s}from"../../../../core/promiseUtils.js";import{QueueProcessor as c}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import{getMetersPerUnitForSR as u}from"../../../../core/units.js";import d from"../../../../geometry/SpatialReference.js";import{set as f,create as p,expandWithAABB as m,expandWithRect as ee,negativeInfinity as h}from"../../../../geometry/support/aaBoundingBox.js";import{copy as te,negativeInfinity as g,create as ne,expandWithRect as re}from"../../../../geometry/support/aaBoundingRect.js";import{isWebMercator as _,isWGS84 as v}from"../../../../geometry/support/spatialReferenceUtils.js";import{normalizeColumnPath as y,readParquetFileAttribute as b}from"../../../parquet.js";import{convertToGeometry as x}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as S}from"../../data/attributeSupport.js";import{getQueryResultExtent as C,getQueryBoundingRects as w,QueryEngine as T}from"../../data/QueryEngine.js";import{queryCapabilities as ie}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as E}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as D}from"../../data/queryUtils.js";import{createFileProvider as O}from"../parquet/createFileProvider.js";import{readFieldStatistic as k}from"../parquet/ParquetFileStatistics.js";import{createDrawingInfo as ae}from"./clientSideDefaults.js";import{getParquetFileId as oe,getParquetRowId as se,getParquetObjectId as ce}from"./parquetIdUtils.js";import A from"../../../support/Field.js";import j from"../../../support/FieldsIndex.js";import{isNumericField as M}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as N}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as P,fromParquetJSONGeometryType as F,toParquetJSONGeometryType as I}from"../../../support/parquetUtils.js";import{loadParquetModule as L}from"../../../../libs/librust-parquet/loadParquetModule.js";import{utc as R}from"../../../../time/constants.js";import{FeatureStoreQueryAdapter as z}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as B}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as V}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as H}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as U}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const W=new z,G=`__OBJECTID`,K=8e3;class le{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){s(e),await this._fill(e);let t=await ue(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,t.chunk!=null)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<8;){let t=this._getOrCreateNextStream(e);if(t==null)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){let t=this._resolvedCount>=8?8:2;if(this._fileIndex<this._files.length&&this._streams.length<t){let t=this._files[this._fileIndex++],n=new de(t.id,this._createFileStream(t,e));return this._streams.push(n),n}return this._getNextStream()}_getNextStream(){let e=this._streams.length;for(let t=0;t<e;t++){let n=(this._streamIndex+t)%e,r=this._streams[n];if(r.canRead)return this._streamIndex=(n+1)%e,r}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ue(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class de{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&this._readCount===0}async read(e){this._readCount++;try{let t=await(await this._stream).next(e);return t==null?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:t}}finally{this._readCount--}}}class fe{constructor(){this._hasZ=!1,this._hasM=!1,this._queue=new c({concurrency:4,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){let t=e.spatialReference?d.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new r(`parquet:unsupported-projection`,`Only WGS84 and Web Mercator are supported`);this._customParameters=e.customParameters,this._loadParameters=e,await this._updateProvider(O(e.provider,null,()=>this._customParameters));let n=await this._provider.getMetadata(),i=await P(n,{fields:e.fields?.map(e=>A.fromJSON(e)),geometryEncoding:e.geometryEncoding?N(e.geometryEncoding):null,geometryType:e.geometryType?F(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(this._hasZ=!!n?.hasZ,this._hasM=!!n?.hasM,!i.fields)throw new r(`parquet:unsupported`,`Fields must be defined`);let o;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new r(`parquet:unsupported`,`SpatialReference must be defined`);if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new r(`parquet:unsupported-projection`,`Only WGS84 and Web Mercator are supported`);i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger(`parquet:unsupported-projection`).warn(`Found a geographic projection that is not WGS84. Handling as WGS84.`,{spatialReference:i.spatialReference}),i.spatialReference=d.WGS84),o={geometry:i.geometryEncoding?{geometryType:I(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(o),this._capabilities=$(await this._getFileStatistics(),this._hasZ,this._hasM);let s=await this._provider.getFiles();if(!s.length)return{layerDefinition:{},capabilities:$(null,this._hasZ,this._hasM)};let c=await s[0].file;i.file=c;let{fields:l}=i;if(l==null)throw new r(`parquet-layer:missing-metadata`,`Unable to create parquet source: cannot infer fields`,l);l.push(new A({name:G,type:`oid`,alias:G}));for(let e of l){let t=c.getColumnId(e.name);t!=null&&(this._indexMap[e.name]=t)}let u=j.fromLayerJSON({fields:l.map(e=>e.toJSON()),dateFieldsTimeReference:{timeZoneIANA:`UTC`}});this._fieldsIndex=u;let f=I(i.geometryType??`point`);return this._metadata=H.createFeature({fieldsIndex:u.toJSON(),geometryType:f,hasZ:this._hasZ,hasM:this._hasM,featureIdInfo:{type:`object-id`,fieldName:G},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,attributeSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:R}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:f,featureIdInfo:{type:`object-id`,fieldName:G},hasM:this._hasM,hasZ:this._hasZ,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=n?.extent?n.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:ae(f),extent:this._fullExtent??void 0,geometryType:f,hasZ:this._hasZ,hasM:this._hasM,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(let{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy(``)}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._loadParameters={...this._loadParameters,provider:e};let t=O(e,this._provider.getGeometryInfo(),()=>this._customParameters);await this._updateProvider(t)}async getDiagnosticsSnapshot(){let e=await this._provider.getFiles();return{files:await Promise.all(e.map(e=>e.getDiagnosticsSnapshot()))}}async getColumnIndex(e){return(await this._getFileInfoById(e.fileId)).getColumnIndex(e.rowGroupIndex,e.columnIndex)}async getOffsetIndex(e){return(await this._getFileInfoById(e.fileId)).getOffsetIndex(e.rowGroupIndex,e.columnIndex)}async queryFeatures(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),we(n)||(n.resultRecordCount=n.resultRecordCount?Math.min(n.resultRecordCount,K):K,n.resultOffset=n.resultOffset??0),n.outStatistics?this._queryStatistics(n,t):(n.returnDistinctValues&&(n.returnGeometry=void 0),(await this._enqueueQuery(n,t)).createQueryResponse())}async queryFeatureCount(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),!q(n)&&!n.returnDistinctValues&&!n.groupByFieldsForStatistics?.length&&!n.outStatistics?.length?this._getFeatureCount():(n.returnDistinctValues||(n.outFields=void 0),n.returnGeometry=void 0,(await this._enqueueQuery(n,t)).createQueryResponseForCount())}async queryObjectIds(e,t){let n=await D(e,null,this._queryEngineParams.spatialReference);return this._validateQuery(n),q(n)?(n.resultRecordCount=n.resultRecordCount?Math.min(n.resultRecordCount,8e3):8e3,n.resultOffset=n.resultOffset??0,n.returnGeometry=void 0,n.outFields=void 0,n.returnDistinctValues=void 0,(await this._enqueueQuery(n,t)).items.map(e=>e.getObjectId())):Array.from({length:await this._getFeatureCount()},(e,t)=>t)}async queryAttributeBins(e,t={}){throw new r(`parquet:unsupported`,`queryAttributeBins not supported.`)}async queryExtent(e,t){let r=await D(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),this._fullExtent&&!q(r))return{count:await this._getFeatureCount(),extent:this._fullExtent};let i=n(this._metadata.spatialReference);r.returnGeometry=!0,r.outFields=void 0;let a=f(p(),h),o=p(),s=await this._enqueueQuery(r,t),c=0;for(let e of s.items)e.getBounds(o)&&(m(a,o),c+=1);let l=C(a,i,r.outSR?n(r.outSR):i.toJSON(),i,!1);return{count:c,extent:l}}async queryStream(e,t){if(!t.signal)throw Error(`InternalError: AbortSignal must be passed`);let n=await this._getCandidateFiles(e),r=new le(n,async(t,n)=>{let r=await t.file,i=await this._createParquetDisplayQuery(r,t.id,e);return r.executeQuery(i,K,n)}),i=this._streamIdCounter++,a=o(t.signal,e=>{let t=this._streams.get(i);t!=null&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:r,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw Error(`InternalError: AbortSignal must be passed`);let n=this._streams.get(e);if(!n)return{result:null};let r=await n.stream.next(t.signal);if(r==null)return n.handle.remove(),this._streams.delete(e),{result:null};let i=r.chunk.serialize().buffer,a={fileId:r.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){let{result:n}=await this.getStreamNext(e,t);if(n==null)return null;let r=(await L()).ParquetChunk.deserialize(new Uint8Array(n.buffer)),i=new U(this._metadata,this._indexMap,r,n.fileId),a=[];for(;i.next();){let e=x(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,n,r,i){if(!i.signal)throw Error(`InternalError: AbortSignal must be passed`);return(await(await(await this._getFileInfoById(e)).file).createChunkPatch(t,n,r,i.signal)).serialize().buffer}async _updateProvider(e){let t=this._provider;this._handles.removeAll(),this._provider=e,this._handles.add([e.events.on(`rangeRead`,e=>{this._source.onRangeRead(e)}),e.events.on(`sourceChanged`,async()=>{await this.reload(this._loadParameters),await this._source.onSourceChange()})]),await t?.destroy()}async _getCandidateFiles(e){let t=await this._provider.getFiles(),n=await this._getSpatialFilePruning(e);if(n==null)return t;let r=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,n));return n.type===`xz`?Ce(r,n):r}async _queryStatistics(e,t){let n=await D({...e},null,this._queryEngineParams.spatialReference);if(n.returnGeometry=void 0,ve(n,this._fieldsIndex)){let e=await this._getStatisticsFromFiles(n);if(e)return e}return(await this._enqueueQuery(n,t)).createQueryResponse()}async _getStatisticsFromFiles(e){let t=await this._provider.getFiles(),n={},r=[];for(let i of e.outStatistics??[]){let e=xe(i,t);if(!e.available)return null;n[i.outStatisticFieldName]=e.value,r.push(be(i,this._fieldsIndex))}return{fields:r,features:[{attributes:n}]}}async _getSpatialFilePruning(e){if(e.type!==`tile`&&(e.type!==`arcade`||e.extent==null))return null;let t=this._displayOptimization?.index;if(t==null)return null;let n=e.outSpatialReference.wkid;if(t.wkid==null||n==null)return null;let r=t.wkid,i=await L();switch(t.type){case`xz`:return{type:`xz`,fieldName:y(t.code),intersects:(a,o)=>i.queryIntersectsXZStatistics(t.fullExtent,e.extent,n,r,t.maxLevel,a,o)};case`z`:return{type:`xy`,xFieldName:y(t.xColumn),yFieldName:y(t.yColumn),intersects:(t,a,o,s)=>i.queryIntersectsXYStatistics(e.extent,n,r,t,a,o,s)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case`xz`:{let n=Z(e,t);return n?.type===`null-only`?!1:n?.type!==`bounds`||t.intersects(n.minValue,n.maxValue)}case`xy`:{let n=e.statistics.statistics.get(t.xFieldName),r=e.statistics.statistics.get(t.yFieldName);return n?.type===`null-only`||r?.type===`null-only`?!1:n?.type!==`bounds`||r?.type!==`bounds`||t.intersects(n.minValue,n.maxValue,r.minValue,r.maxValue)}}}async _tryDeriveParquetFullExtent(n){if(!n.spatialReference)return null;if(this._fullExtent==null&&n.geometryEncoding?.type===`location`){let r=await this._provider.getFiles(),{xField:i,yField:a}=n.geometryEncoding,o=f(p(),h),s=!1;for(let n of r){let r=await n.file;for(let n of r.rowGroups()){let r={stack:[],error:void 0,hasError:!1};try{let t=e(r,n.columnDescriptorForAttribute(i),!1),c=e(r,n.columnDescriptorForAttribute(a),!1),l=k(t),u=k(c);if(l?.type===`bounds`&&u?.type===`bounds`){let e=[l.minValue,u.minValue,l.maxValue,u.maxValue];ee(o,e),s=!0}n.free()}catch(e){r.error=e,r.hasError=!0}finally{t(r)}}}return s?{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:n.spatialReference?.toJSON()}:null}return null}async _getFileInfoById(e){let t=await this._provider.getFiles();for(let n of t)if(n.id===e)return n;throw Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,n,r,i){let a=(await L()).Query.new();n!=null&&a.setPreFilterStart(n),r!=null&&a.setPreFilterCount(r),i!=null&&a.setPostFilterCount(i);let o=await this._getRequiredFields(e);a.setOutFields(o),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM);let s=this._tryGetGeneralizedGeometryResolution(e);s!=null&&a.setSourceResolution(s);let c=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=c.wkid;if(e.geometry&&(_(c)||v(c))){let t=te(ne(),g);for(let n of w(e.geometry))re(t,n);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){let{id:n,file:r}=t;await this._setWhereClause(a,await r,n,e.where)}return a}async _createParquetDisplayQuery(e,t,n){let r=(await L()).Query.new();if(n.type===`tile`){r.setExtent(n.extent),r.setQuantizationTransform(n.transform);let e=this._sourceResolution(n.resolution,n.outSpatialReference);e!=null&&r.setSourceResolution(e)}else n.type===`arcade`&&n.extent!=null&&r.setExtent(n.extent);return r.setOutFields(n.outFields.filter(e=>this._indexMap[e]!=null)),r.setOutSpatialReference(n.outSpatialReference.wkid),r.setReturnGeometry(n.returnGeometry),r.setReturnZ(n.returnZ),r.setReturnM(n.returnM),n.where&&await this._setWhereClause(r,e,t,n.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new r(`parquet:unsupported`,`Statistics queries are not supported`,{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new r(`parquet:unsupported`,`Queries using orderBy are not supported`,{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new r(`parquet:unsupported`,`Queries using returnDistinctValues are not supported`,{query:e})}async _setWhereClause(e,t,n,i){let a=this._indexMap,o=this._fieldsIndex,s={getAttribute(e,r){let i=a[r];if(i==null){if(o.get(r)?.name===`__OBJECTID`){let t=e.row+e.rowGroupStart;return ce(n,t)}return null}let s=o.get(r);return b(t,e.rowGroup,e.row,i,s.type)}},c=await l(i,this._fieldsIndex);if(!c.isStandardized)throw new r(`sql-parse-error`,`expression is not standardized`);let u=(e,t,n)=>c.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:n},s,null),d=c.fieldNames.map(e=>o.get(e)).filter(e=>e&&this._indexMap[e?.name]!=null);e.setWhere(i),e.setWhereEvaluator(u),e.setWhereFields(d.map(e=>e.name))}async*_streamFeatures(e,t,n,r,i){let a=await this._provider.getFiles(),o=0;for(let s of a){let a=o,c=o+s.statistics.rowCount;if(o+=s.statistics.rowCount,t!=null&&t>=c)continue;let l=t==null?null:Math.max(t-a,0),u=n;if(n!=null){let e=t??0,r=e+n;u=Math.max(Math.min(r,c)-Math.max(e,a),0)}if(u===0)continue;let d=await this._createParquetQuery(e,s,l,u,r),f=await(await s.file).executeQuery(d,K),p=async()=>{let e=await f.next(i);if(!e)return null;let t=new U(this._metadata,this._indexMap,e,s.id);return X([new B(t,null,0,!1)],this._queryEngineParams)},m=await p();for(;m!=null;)yield m,m=await p()}}async _queryFeaturesWithQueryEnginePagination(e,t){let n=[],r=this._streamFeatures(e,null,null,null,t),i=await r.next();for(;!i.done;){let a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(let e of a)n.push(e);i=await r.next()}return n}async _queryFeaturesWithUpfrontPagination(e,t){let n=e.resultOffset??0,r=e.resultRecordCount??K,i,a,o;ge(e)?_e(e)||(o=n+r):(n&&=(i=n,0),a=e.resultRecordCount);let s=[],c=this._streamFeatures(e,i,a,o,t),l=await c.next();for(;!l.done&&r>0;){let i=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(let e of i)if(n>0)n--;else if(s.push(e),--r<=0)return s;l=await c.next()}return s}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){let n=new Map;for(let t of e.objectIds){let e=oe(t),r=se(t),i=n.get(e);i||(i=[],n.set(e,i)),i.push(r)}let r=[];for(let[i,a]of n.entries()){let n=await this._executeFileIdQuery(e,i,a,t);for(let e of n)r.push(e)}return new E(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:W,featureIdInfo:this._queryEngineParams.featureIdInfo})}if(e.where===`1=1`&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>2e7&&!(this._displayOptimization&&e.geometry))throw new r(`parquet:cannot-execute-query`,`Unable to execute query, dataset is too large.`);let n=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=n?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return n||(e.resultOffset=0),new E(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:W,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,n,r){let i=await this._getRequiredFields(e),a=(await L()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM),a.setIds(new Uint32Array(n));let o=await(await this._getFile(t)).executeQuery(a,K,r),s=await o.next(r),c=0,l=[];for(;s!=null;){let e=new U(this._metadata,this._indexMap,s,t),n=new B(e,null,c++,!1);l.push(n),s=await o.next(r)}return X(l,this._queryEngineParams).executeQueryForOpaqueFeatures(e,r)}async _getRequiredFields(e){let t=new Set;if(e.outStatistics)for(let n of S(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(n);else if(e.outFields)for(let n of e.outFields)t.add(n);return(t.has(`*`)?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>this._indexMap[e]!=null)}_tryGetGeneralizedGeometryResolution(e){if(!this._displayOptimization)return null;let t=e.outSR??this._queryEngineParams.spatialReference;if(!_(t)&&!v(t))return null;let n=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return n?this._sourceResolution(n,t):null}_sourceResolution(e,t){let n=this._queryEngineParams.spatialReference,r=u(t)/u(n)*e;return!Number.isFinite(r)||r<=0?null:r}}function pe(e){switch(e){case`fullText`:case`having`:case`timeExtent`:case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:case`objectIds`:case`where`:case`geometry`:case`resultOffset`:case`resultRecordCount`:return!0;default:return!1}}function me(e){switch(e){case`fullText`:case`having`:case`timeExtent`:case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:case`objectIds`:case`where`:case`geometry`:return!0;default:return!1}}function he(e){switch(e){case`fullText`:case`having`:case`timeExtent`:return!0;case`historicMoment`:case`aggregateIds`:case`uniqueIds`:case`gdbVersion`:return!1;case`objectIds`:case`where`:case`resultOffset`:case`geometry`:case`resultRecordCount`:return!1}return!1}function q(e){for(let t in e){let n=t;if(pe(n)&&e[n]!==null)return!0}return!1}function ge(e){for(let t in e){let n=t;if(me(n)&&e[n]!==null)return!0}return!1}function _e(e){for(let t in e){let n=t;if(he(n)&&e[n]!==null)return!0}return!1}function ve(e,t){return!!e.outStatistics?.length&&!q(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case`count`:return e.onStatisticField===`1`||t.get(e.onStatisticField)!=null;case`min`:case`max`:{let n=t.get(e.onStatisticField);return n!=null&&M(n)}default:return!1}}function be(e,t){let n=e.statisticType===`exceedslimit`?null:t.get(e.onStatisticField),r=(e.statisticType===`min`||e.statisticType===`max`)&&n?.type===`esriFieldTypeDate`?n.type:`esriFieldTypeDouble`;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:r}}function xe(e,t){switch(e.statisticType){case`count`:return J(e,t);case`min`:return Y(e,t,Math.min);case`max`:return Y(e,t,Math.max);default:return{available:!1,value:null}}}function J(e,t){if(e.statisticType!==`count`)return{available:!1,value:null};if(e.onStatisticField===`1`)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let n=0;for(let r of t){let t=r.statistics.statistics.get(e.onStatisticField);if(t==null||t.nullCount==null)return{available:!1,value:null};n+=r.statistics.rowCount-t.nullCount}return{available:!0,value:n}}function Y(e,t,n){if(e.statisticType!==`min`&&e.statisticType!==`max`)return{available:!1,value:null};let r=null,i=e.statisticType===`min`?`minValue`:`maxValue`;for(let a of t){let t=a.statistics.statistics.get(e.onStatisticField);if(t==null)return{available:!1,value:null};switch(t.type){case`null-only`:continue;case`unknown`:return{available:!1,value:null};case`bounds`:{let e=Se(t[i]);if(e==null)return{available:!1,value:null};r=r==null?e:n(r,e);break}}}return{available:!0,value:r}}function Se(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function X(e,t){let n=new V;for(let t of e)n.insert(t);return new T({...t,featureStore:n})}function Z(e,t){return e.statistics.statistics.get(t.fieldName)??null}function Ce(e,t){return e.slice().sort((e,n)=>{let r=Q(e,t),i=Q(n,t);return r===i?0:r<i?-1:1})}function Q(e,t){let n=Z(e,t);return n?.type===`bounds`?n.maxValue-n.minValue:1/0}function $(e,t,n){let r=e?.featureCount,i=!1;return r!=null&&r<has(`parquetlayer-full-query-feature-count`)&&(i=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:n,supportsTrueCurve:!1,supportsZ:t},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...ie,maxRecordCount:K,supportsOrderBy:i,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function we(e){return!!e.objectIds?.length||!!e.outStatistics||!!e.orderByFields?.length||!!e.returnDistinctValues}export{fe as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- function e(e,t,n){if(!e||e.type===`extent`||e.type===`mesh`)return e;if(e.type===`point`)return e.spatialReference=n,e;let{coords:r,lengths:i}=t,{hasZ:a,hasM:o}=e,s=2+Number(!!a)+Number(!!o),c=e.type===`multipoint`?[r.length/s]:i,l=[],u=0;if(s===2)for(let e of c){let t=[];for(let n=0;n<e;n++,u+=2)t.push([r[u],r[u+1]]);l.push(t)}else if(s===3)for(let e of c){let t=[];for(let n=0;n<e;n++,u+=3)t.push([r[u],r[u+1],r[u+2]]);l.push(t)}else for(let e of c){let t=[];for(let n=0;n<e;n++,u+=4)t.push([r[u],r[u+1],r[u+2],r[u+3]]);l.push(t)}return e.spatialReference=n,e.type===`multipoint`?e.points=l[0]:e.type===`polygon`?e.rings=l:e.paths=l,e}export{e as toDehydratedGeometry};
2
+ import{isPlainObject as e}from"../../core/lang.js";function t(e,t){if(c(e))return r(e,a,l(e),t)}function n(e,t,n){if(c(e)&&t)return r(t,e.type===`multipoint`?s:o,l(e),n)}function r(e,t,n,r){let i=t.vertexCount(e,n);if(i<1024)return;let a=t.partCount(e),o=`${r},${i},${a}`,s=Math.min(a,3),c=0,l=0;for(let r=0;r<s;++r){let i=s===1?0:Math.floor(r*(a-1)/(s-1));for(;c<i;)l+=t.partLength(e,c++,n)*n;let u=t.partLength(e,c,n);if(o+=`,${u}`,u>0)for(let r=0;r<3;++r){let i=r===0?0:r===1?Math.floor(u/2):Math.max(0,u-2);for(let r=0;r<n;++r){let a=t.coordinate(e,c,i,r,l,n);o+=`,${a.toFixed(5)}`}}}return o}function i(e,t,n){if(!e||!c(n)||!t)return!1;let{coords:r}=t,i=2+Number(!!e.hasZ)+Number(!!e.hasM),a=e.type===`multipoint`?s:o,l=u(n);if(a.partCount(t)!==l)return!1;let f=0;for(let e=0;e<l;++e){let o=d(n,e);if(a.partLength(t,e,i)!==o.length)return!1;for(let e of o)for(let t=0;t<i;++t)if(r[f++]!==e[t])return!1}return!0}const a={partCount:u,vertexCount(e){let t=0,n=u(e);for(let r=0;r<n;++r)t+=d(e,r).length;return t},partLength:(e,t)=>d(e,t).length,coordinate:(e,t,n,r)=>d(e,t)[n][r]},o={partCount:e=>e.lengths.length,vertexCount:(e,t)=>e.coords.length/t,partLength:(e,t)=>e.lengths[t],coordinate:(e,t,n,r,i,a)=>e.coords[i+n*a+r]},s={...o,partCount:()=>1,partLength:(e,t,n)=>e.coords.length/n};function c(t){return!!t&&e(t)&&(t.type===`polygon`||t.type===`polyline`||t.type===`multipoint`)&&!(t.type===`polygon`&&t.curveRings?.length)&&!(t.type===`polyline`&&t.curvePaths?.length)}function l(e){return 2+Number(!!e.hasZ)+Number(!!e.hasM)}function u(e){return e.type===`multipoint`?1:e.type===`polygon`?e.rings.length:e.paths.length}function d(e,t){return e.type===`multipoint`?e.points:e.type===`polygon`?e.rings[t]:e.paths[t]}function f(e,t,n){p(e.geometry,t,n)}function p(e,t,n){if(!e||(e.spatialReference=n,e.type===`extent`||e.type===`mesh`||e.type===`point`||!t))return;let{coords:r,lengths:i}=t,a=l(e),o=e.type===`multipoint`?[r.length/a]:i,s=[],c=0;if(a===2)for(let e of o){let t=[];for(let n=0;n<e;n++,c+=2)t.push([r[c],r[c+1]]);s.push(t)}else if(a===3)for(let e of o){let t=[];for(let n=0;n<e;n++,c+=3)t.push([r[c],r[c+1],r[c+2]]);s.push(t)}else for(let e of o){let t=[];for(let n=0;n<e;n++,c+=4)t.push([r[c],r[c+1],r[c+2],r[c+3]]);s.push(t)}e.type===`multipoint`?e.points=s[0]:e.type===`polygon`?e.rings=s:e.paths=s}export{f as completeDehydratedFeatureFromTransfer,p as completeDehydratedGeometryFromTransfer,t as geometryKey,i as identicalTransferGeometry,n as transferGeometryKey};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../Color.js";import t from"../../config.js";import{id as n}from"../../kernel.js";import r from"../../core/Error.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{throwIfAbortError as a}from"../../core/promiseUtils.js";import o from"../../form/FormTemplate.js";import s from"../../form/elements/FieldElement.js";import{initializeProjection as c,project as l}from"../../geometry/projectionUtils.js";import u from"../../geometry/SpatialReference.js";import{normalizeCentralMeridian as d}from"../../geometry/support/normalizeUtils.js";import{queryBinsCapabilities as f,queryCapabilities as p}from"../graphics/data/QueryEngineCapabilities.js";import{systemOidFieldName as m}from"./constants.js";import h from"../support/FeatureTemplate.js";import g from"../support/LabelClass.js";import _ from"../support/LabelExpressionInfo.js";import{isKnowledgeGraphSublayer as v,getOwningPortalUrl as y}from"../support/layerUtils.js";import b from"../../portal/PortalItem.js";import{getUserPrivileges as x}from"../../portal/support/portalItemUtils.js";import{executeQueryStreaming as S,fetchClientDataAtKeys as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/Entity.js";import T from"../../rest/knowledgeGraph/GraphApplyEdits.js";import E from"../../rest/knowledgeGraph/Relationship.js";import{isGraphic as D}from"../../support/graphicInstanceUtils.js";import O from"../../symbols/CIMSymbol.js";import k from"../../symbols/TextSymbol.js";const A={initializeLayersFromClientData:async(e,t,n)=>{if(t||=[...e.layers,...e.tables].map(e=>e.graphTypeName),t?.length===0)return;let r=new Map;for(let n of t)r.set(n,j(e,n));let i=await C(e.dataManager.knowledgeGraph,Array.from(r.values()),{requestOptions:{signal:n?.signal}});for(let t of[...e.layers,...e.tables]){let n=t.objectType.name;if(n==null)continue;let r=i.get(j(e,n));if(r){let e=JSON.parse(r);typeof e==`object`&&e&&!e.hasOwnProperty(`showLabels`)&&(e.showLabels=!1),t.read(e,{origin:`service`})}}},getInclusionDefinitionFromCypherResults:async(e,t,n)=>{let r=Q(e.dataModel),i=(await S(e,t,n)).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await i.read();if(e)break;for(let e of t)for(let t of e)$(t,r)}return r},getInclusionDefinitionFromIdTypePairs:(e,t)=>{let n=Q(e.dataModel);for(let{id:e,typeName:i}of t){let t=n.namedTypeDefinitions.get(i);if(!t)throw new r(`WebLinkChart:data-model-desync`,`The provided id-type pairs contained a named type not reflected in the provided knowledge graph data model.`);t.members?.set(e,{id:e})}return n},getUserKGSPrivileges:async(e,r,i)=>{let a=!0,o=!1,s=!1;if(!t.userPrivilegesApplied)return{edit:a,fullEdit:o,updateItem:s};let c=await y(r,i);if(!c||!n?.getCredential(`${c}/sharing`,{...i,prompt:!1}))return{edit:a,fullEdit:o,updateItem:s};let l=new b({id:e,portal:{url:c}});return await l.load(i),{features:{edit:a,fullEdit:o},content:{updateItem:s}}=x(l),{edit:a,fullEdit:o,updateItem:s}}},j=(e,t)=>e.type===`knowledge-graph`?`${t}/Map`:`${t}/LinkChart/LinkChartSubLayer`;async function M(e,t,n){return A.initializeLayersFromClientData(e,t,n)}async function N(e,t,n){return A.getInclusionDefinitionFromCypherResults(e,t,n)}function P(e,t){return A.getInclusionDefinitionFromIdTypePairs(e,t)}const F=`#4a0932.#b31515.#18382e.#a64f1b.#102432.#8c213f.#ed9310.#2c6954.#144d59.#ffc730.#75351e.#454f4b.#78b1c2.#191921.#8f8f82.#9be0c0.#dbb658.#87b051.#11495c.#c43541.#9c5596.#44498b.#ad9d63.#86afb3.#5c98ca.#b0bfa2.#73241f.#b86b53.#d9d78c.#3e756d.#f260a1.#a0d17d.#c27c30.#eb82eb.#ffdf3c.#ffb259.#ab52b3.#3cccb4.#0095ba.#d92b30`.split(`.`),I=`#8f8f82`;function L(t){return t<0||t>=F.length?new e(I):new e(F[t])}function R(e){let t=e.toArray();return new O({data:{type:`CIMSymbolReference`,symbol:{type:`CIMLineSymbol`,symbolLayers:[{type:`CIMSolidStroke`,enable:!0,style:`solid`,width:.75,color:t},{type:`CIMVectorMarker`,enable:!0,size:6,markerPlacement:{type:`CIMMarkerPlacementOnLine`,angleToLine:!0,relativeTo:`LineMiddle`},frame:{xmin:-10,ymin:-5,xmax:0,ymax:5},markerGraphics:[{type:`CIMMarkerGraphic`,geometry:{rings:[[[-12,-3.47],[-12,3.6],[1.96,-.03],[-12,-3.47]]]},symbol:{type:`CIMPolygonSymbol`,symbolLayers:[{type:`CIMSolidFill`,enable:!0,color:t}]}}]}]}}})}function z(e){let t=`ESRI__ID`,n=4;for(let r of e)if(r.name){if(r.name.toLowerCase()===`name`){t=r.name;break}r.name.toLowerCase().includes(`name`)?(t=r.name,n=2):r.fieldType===`esriFieldTypeString`&&n>3&&(t=r.name,n=3)}return t}function B(e,t,n){let r={color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:`normal`}},i=new g({labelExpressionInfo:new _({expression:n===`ESRI__ID`?`${t}`:`$feature.${n}`}),labelPlacement:`above-center`,symbol:new k(r)}),a=new g({labelExpressionInfo:new _({expression:`'${t}' + IIf($feature.ESRI__AggregationCount>1, ' (' + $feature.ESRI__AggregationCount + ')', '')`}),labelPlacement:`center-along`,labelPosition:`parallel`,repeatLabel:!1,symbol:new k({...r,yoffset:`12px`})});return e===`entity`?[i]:[a]}function V(e,t,n){let r={color:[255,255,255],haloColor:[0,0,0],haloSize:.7,font:{size:10,weight:`bold`}},i=n===`ESRI__ID`?`${e}`:`$feature.${n}`;return t===`point`?[new g({labelExpressionInfo:new _({expression:i}),labelPlacement:`above-center`,symbol:new k(r)})]:t===`polyline`?[new g({labelExpressionInfo:new _({expression:i}),labelPlacement:`center-along`,repeatLabel:!0,symbol:new k(r)})]:t===`polygon`?[new g({labelExpressionInfo:new _({expression:i}),labelPlacement:`always-horizontal`,symbol:new k(r)})]:null}async function H(e,t,n){return A.getUserKGSPrivileges(e,t,n).catch(e=>(a(e),{edit:!0,fullEdit:!1,updateItem:!1}))}const U={capabilities:[],allowGeometryUpdates:!1,serviceCapabilities:{geometryCapabilities:{supportsZValues:!1,supportsMValues:!1}}};function W(e){let{capabilities:t,allowGeometryUpdates:n,serviceCapabilities:{geometryCapabilities:{supportsZValues:r,supportsMValues:i}}}=e?.serviceDefinition||U,a=e?.dataModel.arcgisManaged?t:t.filter(e=>e===`Query`),o=new Set(a);return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:i,supportsTrueCurve:!1,supportsZ:r},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:o.has(`Create`),supportsDelete:o.has(`Delete`),supportsEditing:o.has(`Editing`),supportsChangeTracking:!1,supportsQuery:o.has(`Query`),supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:o.has(`Update`),supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:p,queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},queryAttributeBins:f,editing:{supportsGeometryUpdate:!!e?.dataModel.arcgisManaged&&n,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:o.has(`Delete`),supportsUpdateByAnonymous:!1,supportsUpdateByOthers:o.has(`Update`),supportsAsyncApplyEdits:!1,zDefault:void 0}}}async function G(e,t,n){let r=new T,a=t.graphTypeName,o=t.graphType,s=n.type===`knowledge-graph`?t.geometryFieldName:null,f=!!t.fieldsIndex.get(s)?.editable,p=e=>{let n={...e};for(let e of t.fields)e.editable||delete n[e.name];for(let t of Object.keys(e))t.includes(`ESRI__`)&&delete n[t];return n},h=async e=>{await c(e.spatialReference,u.WGS84);let t=l(e,u.WGS84);return t.type===`point`?t.normalize():(await d(t))[0]};for(let t of e.addFeatures??[]){let e=p(t.attributes);v(t.sourceLayer)&&t.sourceLayer.graphTypeName===a&&(o===`entity`?(r.entityAdds||=[],s&&t.geometry&&(e[s]=await h(t.geometry)),r.entityAdds.push(new w({properties:e,typeName:a}))):(r.relationshipAdds||=[],r.relationshipAdds.push(new E({properties:e,typeName:a}))))}for(let t of e.updateFeatures??[]){let e=t.attributes[m],n=p(t.attributes);v(t.sourceLayer)&&t.sourceLayer.graphTypeName===a&&(o===`entity`?(r.entityUpdates||=[],s&&f&&t.geometry&&(n[s]=await h(t.geometry)),r.entityUpdates.push(new w({id:e,properties:n,typeName:a}))):(r.relationshipUpdates||=[],r.relationshipUpdates.push(new E({id:e,properties:n,typeName:a}))))}let g=new Map;for(let t of e.deleteFeatures??[])if(D(t)){let e=t,n=i(g,e.sourceLayer.graphTypeName,()=>({typeName:e.sourceLayer.graphTypeName,ids:[]}));e.sourceLayer.graphTypeName===a&&n.ids.push(e.attributes[m])}else t.objectId&&typeof t.objectId==`string`&&i(g,a,()=>({typeName:a,ids:[]})).ids.push(t.objectId);for(let e of g.values())e.ids.length>0&&(o===`entity`?(r.entityDeletes||=[],r.entityDeletes.push({typeName:e.typeName,ids:e.ids})):(r.relationshipDeletes||=[],r.relationshipDeletes.push({typeName:e.typeName,ids:e.ids})));return r}function K(e,t){let n={addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]};for(let r of e.editResults)if(r.typeName===t){for(let e of r.adds)n.addFeatureResults.push({objectId:e.id,globalId:e.id});for(let e of r.updates)n.updateFeatureResults.push({objectId:e.id,globalId:e.id});for(let e of r.deletes)n.deleteFeatureResults.push({objectId:e.id,globalId:e.id})}return n}function q(e){if(!e.objectType)return null;let t=[];for(let n of e.fields)!n.name.includes(`ESRI__`)&&n.editable&&n.type!==`geometry`&&t.push(new s({fieldName:n.name}));return new o({elements:t})}function J(e){if(!e.objectType)return null;let t=null;switch(e.geometryType){case`point`:case`multipoint`:t=`point`;break;case`polyline`:t=`line`;break;case`polygon`:t=`polygon`;break;default:t=null}return[new h({name:e.graphTypeName,drawingTool:t,prototype:{}})]}function Y(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:`id`in e&&`typeName`in e}function X(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:e&&`path`in e&&Array.isArray(e.path)}function Z(e){return!e||typeof e!=`object`||Array.isArray(e)||`id`in e?!1:`properties`in e&&typeof e.properties==`object`}function Q(e){let t={namedTypeDefinitions:new Map,generateAllSublayers:!1},{entityTypes:n,relationshipTypes:r}=e,i=[...n,...r];for(let e of i)t.namedTypeDefinitions.set(e.name,{useAllData:!1,members:new Map});return t}function $(e,t){if(e&&typeof e==`object`){if(Y(e)){let n=t.namedTypeDefinitions.get(e.typeName);if(!n)throw new r(`WebLinkChart:data-model-desync`,`The query result contained a named type not reflected in the provided knowledge graph data model.`);n.members.set(e.id,{id:e.id})}else if(X(e))for(let n of e.path)$(n,t);else if(Array.isArray(e))for(let n of e)$(n,t);else if(Z(e))for(let n of Object.values(e.properties??{}))$(n,t)}}const ee=e=>{let t=``,n=e.split(`/`),r=n.lastIndexOf(`KnowledgeGraphServer`);return r>0&&(t=n[r-1]),t};export{K as convertGraphEditsResultToFeatureEdits,G as convertLayerEditsToGraphEdits,W as createCapabilitiesFromKnowledgeGraph,J as createDefaultKGSLFeatureTemplates,q as createDefaultKGSLFormTemplate,$ as extractGraphNamedObjectsFromQueryValueRecursive,I as fallbackKGSublayerSymbolHexColor,R as getDefaultLCRelationshipSublayerSymbol,z as getDisplayLabelProperty,Q as getEmptyInclusionListFromDataModel,N as getInclusionDefinitionFromCypherResults,P as getInclusionDefinitionFromIdTypePairs,L as getKGSublayerSymbolColor,B as getLinkChartDefaultLabelingInfo,V as getMapDefaultLabelingInfo,ee as getTitleFromServerUrl,H as getUserKGSPrivileges,M as initializeLayersFromClientData,Y as isGraphNamedObject,Z as isGraphObject,X as isPathObject,A as layerUtils};
2
+ import e from"../../Color.js";import t from"../../config.js";import{id as n}from"../../kernel.js";import r from"../../core/Error.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{throwIfAbortError as a}from"../../core/promiseUtils.js";import o from"../../form/FormTemplate.js";import s from"../../form/elements/FieldElement.js";import{assertNotMesh as c}from"../../geometry/asserts.js";import{initializeProjection as l,project as u}from"../../geometry/projectionUtils.js";import d from"../../geometry/SpatialReference.js";import{normalizeCentralMeridian as f}from"../../geometry/support/normalizeUtils.js";import{queryBinsCapabilities as p,queryCapabilities as m}from"../graphics/data/QueryEngineCapabilities.js";import{systemOidFieldName as h}from"./constants.js";import g from"../support/FeatureTemplate.js";import _ from"../support/LabelClass.js";import v from"../support/LabelExpressionInfo.js";import{isKnowledgeGraphSublayer as y,getOwningPortalUrl as ee}from"../support/layerUtils.js";import b from"../../portal/PortalItem.js";import{getUserPrivileges as x}from"../../portal/support/portalItemUtils.js";import{executeQueryStreaming as S,fetchClientDataAtKeys as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/Entity.js";import T from"../../rest/knowledgeGraph/GraphApplyEdits.js";import E from"../../rest/knowledgeGraph/Relationship.js";import{isGraphic as D}from"../../support/graphicInstanceUtils.js";import O from"../../symbols/CIMSymbol.js";import k from"../../symbols/TextSymbol.js";const A={initializeLayersFromClientData:async(e,t,n)=>{if(t||=[...e.layers,...e.tables].map(e=>e.graphTypeName),t?.length===0)return;let r=new Map;for(let n of t)r.set(n,j(e,n));let i=await C(e.dataManager.knowledgeGraph,Array.from(r.values()),{requestOptions:{signal:n?.signal}});for(let t of[...e.layers,...e.tables]){let n=t.objectType.name;if(n==null)continue;let r=i.get(j(e,n));if(r){let e=JSON.parse(r);typeof e==`object`&&e&&!e.hasOwnProperty(`showLabels`)&&(e.showLabels=!1),t.read(e,{origin:`service`})}}},getInclusionDefinitionFromCypherResults:async(e,t,n)=>{let r=Q(e.dataModel),i=(await S(e,t,n)).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await i.read();if(e)break;for(let e of t)for(let t of e)$(t,r)}return r},getInclusionDefinitionFromIdTypePairs:(e,t)=>{let n=Q(e.dataModel);for(let{id:e,typeName:i}of t){let t=n.namedTypeDefinitions.get(i);if(!t)throw new r(`WebLinkChart:data-model-desync`,`The provided id-type pairs contained a named type not reflected in the provided knowledge graph data model.`);t.members?.set(e,{id:e})}return n},getUserKGSPrivileges:async(e,r,i)=>{let a=!0,o=!1,s=!1;if(!t.userPrivilegesApplied)return{edit:a,fullEdit:o,updateItem:s};let c=await ee(r,i);if(!c||!n?.getCredential(`${c}/sharing`,{...i,prompt:!1}))return{edit:a,fullEdit:o,updateItem:s};let l=new b({id:e,portal:{url:c}});return await l.load(i),{features:{edit:a,fullEdit:o},content:{updateItem:s}}=x(l),{edit:a,fullEdit:o,updateItem:s}}},j=(e,t)=>e.type===`knowledge-graph`?`${t}/Map`:`${t}/LinkChart/LinkChartSubLayer`;async function M(e,t,n){return A.initializeLayersFromClientData(e,t,n)}async function N(e,t,n){return A.getInclusionDefinitionFromCypherResults(e,t,n)}function P(e,t){return A.getInclusionDefinitionFromIdTypePairs(e,t)}const F=`#4a0932.#b31515.#18382e.#a64f1b.#102432.#8c213f.#ed9310.#2c6954.#144d59.#ffc730.#75351e.#454f4b.#78b1c2.#191921.#8f8f82.#9be0c0.#dbb658.#87b051.#11495c.#c43541.#9c5596.#44498b.#ad9d63.#86afb3.#5c98ca.#b0bfa2.#73241f.#b86b53.#d9d78c.#3e756d.#f260a1.#a0d17d.#c27c30.#eb82eb.#ffdf3c.#ffb259.#ab52b3.#3cccb4.#0095ba.#d92b30`.split(`.`),I=`#8f8f82`;function L(t){return t<0||t>=F.length?new e(I):new e(F[t])}function R(e){let t=e.toArray();return new O({data:{type:`CIMSymbolReference`,symbol:{type:`CIMLineSymbol`,symbolLayers:[{type:`CIMSolidStroke`,enable:!0,style:`solid`,width:.75,color:t},{type:`CIMVectorMarker`,enable:!0,size:6,markerPlacement:{type:`CIMMarkerPlacementOnLine`,angleToLine:!0,relativeTo:`LineMiddle`},frame:{xmin:-10,ymin:-5,xmax:0,ymax:5},markerGraphics:[{type:`CIMMarkerGraphic`,geometry:{rings:[[[-12,-3.47],[-12,3.6],[1.96,-.03],[-12,-3.47]]]},symbol:{type:`CIMPolygonSymbol`,symbolLayers:[{type:`CIMSolidFill`,enable:!0,color:t}]}}]}]}}})}function z(e){let t=`ESRI__ID`,n=4;for(let r of e)if(r.name){if(r.name.toLowerCase()===`name`){t=r.name;break}r.name.toLowerCase().includes(`name`)?(t=r.name,n=2):r.fieldType===`esriFieldTypeString`&&n>3&&(t=r.name,n=3)}return t}function B(e,t,n){let r={color:[80,80,80],haloColor:[255,255,255],haloSize:.7,font:{size:10,weight:`normal`}},i=new _({labelExpressionInfo:new v({expression:n===`ESRI__ID`?`${t}`:`$feature.${n}`}),labelPlacement:`above-center`,symbol:new k(r)}),a=new _({labelExpressionInfo:new v({expression:`'${t}' + IIf($feature.ESRI__AggregationCount>1, ' (' + $feature.ESRI__AggregationCount + ')', '')`}),labelPlacement:`center-along`,labelPosition:`parallel`,repeatLabel:!1,symbol:new k({...r,yoffset:`12px`})});return e===`entity`?[i]:[a]}function V(e,t,n){let r={color:[255,255,255],haloColor:[0,0,0],haloSize:.7,font:{size:10,weight:`bold`}},i=n===`ESRI__ID`?`${e}`:`$feature.${n}`;return t===`point`?[new _({labelExpressionInfo:new v({expression:i}),labelPlacement:`above-center`,symbol:new k(r)})]:t===`polyline`?[new _({labelExpressionInfo:new v({expression:i}),labelPlacement:`center-along`,repeatLabel:!0,symbol:new k(r)})]:t===`polygon`?[new _({labelExpressionInfo:new v({expression:i}),labelPlacement:`always-horizontal`,symbol:new k(r)})]:null}async function H(e,t,n){return A.getUserKGSPrivileges(e,t,n).catch(e=>(a(e),{edit:!0,fullEdit:!1,updateItem:!1}))}const U={capabilities:[],allowGeometryUpdates:!1,serviceCapabilities:{geometryCapabilities:{supportsZValues:!1,supportsMValues:!1}}};function W(e){let{capabilities:t,allowGeometryUpdates:n,serviceCapabilities:{geometryCapabilities:{supportsZValues:r,supportsMValues:i}}}=e?.serviceDefinition||U,a=e?.dataModel.arcgisManaged?t:t.filter(e=>e===`Query`),o=new Set(a);return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:i,supportsTrueCurve:!1,supportsZ:r},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:o.has(`Create`),supportsDelete:o.has(`Delete`),supportsEditing:o.has(`Editing`),supportsChangeTracking:!1,supportsQuery:o.has(`Query`),supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:o.has(`Update`),supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:m,queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},queryAttributeBins:p,editing:{supportsGeometryUpdate:!!e?.dataModel.arcgisManaged&&n,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:o.has(`Delete`),supportsUpdateByAnonymous:!1,supportsUpdateByOthers:o.has(`Update`),supportsAsyncApplyEdits:!1,zDefault:void 0}}}async function G(e,t,n){let r=new T,a=t.graphTypeName,o=t.graphType,s=n.type===`knowledge-graph`?t.geometryFieldName:null,p=!!t.fieldsIndex.get(s)?.editable,m=e=>{let n={...e};for(let e of t.fields)e.editable||delete n[e.name];for(let t of Object.keys(e))t.includes(`ESRI__`)&&delete n[t];return n},g=async e=>{await l(e.spatialReference,d.WGS84);let t=u(e,d.WGS84);if(t.type===`point`)return t.normalize();let[n]=await f(t);return n};for(let t of e.addFeatures??[]){let e=m(t.attributes);y(t.sourceLayer)&&t.sourceLayer.graphTypeName===a&&(o===`entity`?(r.entityAdds||=[],s&&t.geometry&&(c(t.geometry),e[s]=await g(t.geometry)),r.entityAdds.push(new w({properties:e,typeName:a}))):(r.relationshipAdds||=[],r.relationshipAdds.push(new E({properties:e,typeName:a}))))}for(let t of e.updateFeatures??[]){let e=t.attributes[h],n=m(t.attributes);y(t.sourceLayer)&&t.sourceLayer.graphTypeName===a&&(o===`entity`?(r.entityUpdates||=[],s&&p&&t.geometry&&(c(t.geometry),n[s]=await g(t.geometry)),r.entityUpdates.push(new w({id:e,properties:n,typeName:a}))):(r.relationshipUpdates||=[],r.relationshipUpdates.push(new E({id:e,properties:n,typeName:a}))))}let _=new Map;for(let t of e.deleteFeatures??[])if(D(t)){let e=t,n=i(_,e.sourceLayer.graphTypeName,()=>({typeName:e.sourceLayer.graphTypeName,ids:[]}));e.sourceLayer.graphTypeName===a&&n.ids.push(e.attributes[h])}else t.objectId&&typeof t.objectId==`string`&&i(_,a,()=>({typeName:a,ids:[]})).ids.push(t.objectId);for(let e of _.values())e.ids.length>0&&(o===`entity`?(r.entityDeletes||=[],r.entityDeletes.push({typeName:e.typeName,ids:e.ids})):(r.relationshipDeletes||=[],r.relationshipDeletes.push({typeName:e.typeName,ids:e.ids})));return r}function K(e,t){let n={addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]};for(let r of e.editResults)if(r.typeName===t){for(let e of r.adds)n.addFeatureResults.push({objectId:e.id,globalId:e.id});for(let e of r.updates)n.updateFeatureResults.push({objectId:e.id,globalId:e.id});for(let e of r.deletes)n.deleteFeatureResults.push({objectId:e.id,globalId:e.id})}return n}function q(e){if(!e.objectType)return null;let t=[];for(let n of e.fields)!n.name.includes(`ESRI__`)&&n.editable&&n.type!==`geometry`&&t.push(new s({fieldName:n.name}));return new o({elements:t})}function J(e){if(!e.objectType)return null;let t=null;switch(e.geometryType){case`point`:case`multipoint`:t=`point`;break;case`polyline`:t=`line`;break;case`polygon`:t=`polygon`;break;default:t=null}return[new g({name:e.graphTypeName,drawingTool:t,prototype:{}})]}function Y(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:`id`in e&&`typeName`in e}function X(e){return!e||typeof e!=`object`||Array.isArray(e)?!1:e&&`path`in e&&Array.isArray(e.path)}function Z(e){return!e||typeof e!=`object`||Array.isArray(e)||`id`in e?!1:`properties`in e&&typeof e.properties==`object`}function Q(e){let t={namedTypeDefinitions:new Map,generateAllSublayers:!1},{entityTypes:n,relationshipTypes:r}=e,i=[...n,...r];for(let e of i)t.namedTypeDefinitions.set(e.name,{useAllData:!1,members:new Map});return t}function $(e,t){if(e&&typeof e==`object`){if(Y(e)){let n=t.namedTypeDefinitions.get(e.typeName);if(!n)throw new r(`WebLinkChart:data-model-desync`,`The query result contained a named type not reflected in the provided knowledge graph data model.`);n.members.set(e.id,{id:e.id})}else if(X(e))for(let n of e.path)$(n,t);else if(Array.isArray(e))for(let n of e)$(n,t);else if(Z(e))for(let n of Object.values(e.properties??{}))$(n,t)}}const te=e=>{let t=``,n=e.split(`/`),r=n.lastIndexOf(`KnowledgeGraphServer`);return r>0&&(t=n[r-1]),t};export{K as convertGraphEditsResultToFeatureEdits,G as convertLayerEditsToGraphEdits,W as createCapabilitiesFromKnowledgeGraph,J as createDefaultKGSLFeatureTemplates,q as createDefaultKGSLFormTemplate,$ as extractGraphNamedObjectsFromQueryValueRecursive,I as fallbackKGSublayerSymbolHexColor,R as getDefaultLCRelationshipSublayerSymbol,z as getDisplayLabelProperty,Q as getEmptyInclusionListFromDataModel,N as getInclusionDefinitionFromCypherResults,P as getInclusionDefinitionFromIdTypePairs,L as getKGSublayerSymbolColor,B as getLinkChartDefaultLabelingInfo,V as getMapDefaultLabelingInfo,te as getTitleFromServerUrl,H as getUserKGSPrivileges,M as initializeLayersFromClientData,Y as isGraphNamedObject,Z as isGraphObject,X as isPathObject,A as layerUtils};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../core/Error.js";import{makeHandle as t}from"../../core/handleUtils.js";import{getOrCreateMapValue as n}from"../../core/MapUtils.js";import{floatEqualRelative as r}from"../../core/mathUtils.js";import i from"../../geometry/Point.js";import a from"../../geometry/Polyline.js";import{initializeProjection as o,project as s}from"../../geometry/projectionUtils.js";import c from"../../geometry/SpatialReference.js";import l from"../GraphicsLayer.js";import{convertToGeometry as u}from"../graphics/featureConversionUtils.js";import{kgRestServices as d}from"../../rest/knowledgeGraphService.js";import f from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import p from"../../rest/knowledgeGraph/KnowledgeGraph.js";import m from"../../views/draw/support/Reshape.js";const h={newReshapeWrapper:async({getFeatureReshapeProvider:e,targetGraphic:t,reshapeGraphicsLayer:n,view:r,snappingManager:i})=>new m({connectedReshapeProviders:[{getFeatureReshapeProvider:e,getVertexReshapeProvider(){throw Error(`Link Charts do not support vertex (polyline) reshape at this time`)}}],enableMidpoints:!1,graphic:t,layer:n,view:r,snappingManager:i})},g=async({targetEntityId:n,targetEntityType:a,view:d,snappingManager:f})=>{await o(c.WGS84,d.spatialReference);let p=d.map?.activeLinkChartLayer?.layers.find(e=>e.objectType.name===a);if(!p)throw new e(`LinkChartView:target-layer-not-found`,`No layer found for target entity type ${a}`);let m=p.createQuery();m.objectIds=[n];let g=await p.queryFeatures(m);if(g.features.length===0)throw new e(`LinkChartView:no-matching-feature-found`,`No feature found with ID ${n} in layer ${p.title}`);let y=g.features[0].clone(),x=y.attributes.ESRI__ID;if(!y.sourceLayer)throw new e(`LinkChartView:no-source-layer`,`The target graphic does not have a source layer: ${x}`);let S=new l({listMode:`hide`,internal:!0});y.geometry=s(new i(u(y.attributes.ESRI__LayoutGeometry,`esriGeometryPoint`,!1,!1)),d.spatialReference),d.map.add(S),S.add(y);let C=y.sourceLayer,w=C.parent,T=new Map([[x,[]]]),E=new Map,D=new Map,O=await _(n,p,d),k=new Map;for(let e of w.layers)k.set(e.objectType.name,e);let A=new Map;for(let[e,t]of w.sublayerIdsCache)w.dataManager.relationshipTypeNames.has(e)&&A.set(e,Array.from(t));let j=await v(x,C.objectType.name,w.knowledgeGraph,A),M=w.entityLinkChartDiagramLookup.get(x);for(let e of j){let t=E.get(e.id);if(t||(t=w.relationshipLinkChartDiagramLookup.get(e.id),E.set(e.id,t??null)),t){let n=k.get(e.typeName);n&&r(t.coords[0],M.coords[0])&&r(t.coords[1],M.coords[1])?T.get(x)?.push({objectId:e.id,pathIndex:0,vertexIndex:0,associatedSublayer:n}):n&&r(t.coords.at(-2),M.coords[0])&&r(t.coords.at(-1),M.coords[1])&&T.get(x)?.push({objectId:e.id,pathIndex:0,vertexIndex:t.coords.length/2-1,associatedSublayer:n})}}let N=await h.newReshapeWrapper({getFeatureReshapeProvider:e=>new b(e,D,T,d),targetGraphic:y,reshapeGraphicsLayer:S,view:d,snappingManager:f});N.on(`move-stop`,e=>{d.emit(`node-movement-stop`,e)});let P=t(()=>{O.remove(),S.removeAll(),d.map.remove(S),S.destroy(),D.clear(),E.clear(),N.destroy()});return{currentReshapeGraphic:N.graphic,localEdits:D,originalRelationshipGeometries:E,teardownHandle:P}},_=async(e,t,n)=>{let r=await n.whenLayerView(t);return r.setVisibility(e,!1),{remove:()=>r.setVisibility(e,!0)}},v=async(e,t,n,r,i)=>{let a={sourceId:e},o=[],s=[];for(let[e,n]of r){let r=`${e}_ids`;a[r]=n,s.push(`Match (n:${t}) WHERE id(n) = $sourceId WITH n MATCH (n)-[r:${e}]-() WHERE ID(r) IN $${r} RETURN {id: ID(r), typeName: type(r)} as result`)}let c=s.join(` UNION `),l=(await d.executeQueryStreaming(new p(JSON.parse(JSON.stringify(n))),new f({openCypherQuery:c,bindParameters:a}),i)).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;t.forEach(e=>{o.push(e[0].properties)})}return o};class y{constructor(e,t){this.modifiedFeatures=new Map,this.updating=!1,this._totalDx=0,this._totalDy=0,this._localEditsCache=e,this._view=t}async initializeModifiedFeatures(e){let t=new Map;for(let e of this._view.map?.activeLinkChartLayer?.layers??[]){let n=e;t.set(n.objectType.name,n)}let r=new Map;for(let t of e){let i=this._localEditsCache.get(t.objectId);i?this.initializeModifiedFeature(i,e):n(r,t.associatedSublayer.objectType.name,()=>[]).push(t.objectId)}for(let[n,i]of r){let r=t.get(n),a=r.createQuery();a.outFields=[`ESRI__ID`],a.objectIds=i,r.queryFeatures(a).then(t=>{for(let n of t.features)this.initializeModifiedFeature(this.makeModifiedFeature(n,r),e)})}}makeModifiedFeature(e,t){let n=e.attributes.ESRI__ID,r={graphic:e,layer:t,originalGraphic:e.clone(),uniqueId:n};return this._localEditsCache.set(n,r),r}initializeModifiedFeature(e,t){let n=t.filter(({objectId:t})=>t===e.uniqueId);this.modifiedFeatures.set(e,n);let r=e.graphic.geometry?s(e.graphic.geometry,this._view.spatialReference):void 0,i=e.graphic.sourceLayer,o=i.parent;if(!r&&i.graphType===`relationship`){let t=o.relationshipLinkChartDiagramLookup.get(e.uniqueId);r=s(new a(u(t,`esriGeometryPolyline`,!1,!1)),this._view.spatialReference)}let l=r.clone();for(let{pathIndex:e,vertexIndex:t}of n)l=this.getTranslatedGeometry(r,e,t,this._totalDx,this._totalDy);e.graphic.geometry=s(l,c.WGS84),o.relationshipLinkChartDiagramLookup.get(e.uniqueId)&&(o.relationshipLinkChartDiagramLookup.set(e.uniqueId,null),i.refreshCachedQueryEngine().then(()=>{i.emit(`refresh`,{dataChanged:!0})}))}translate(e,t){this._totalDx+=e,this._totalDy+=t;let n=new Set;for(let[r,i]of this.modifiedFeatures){let o=r.graphic.geometry?s(r.graphic.geometry,this._view.spatialReference):void 0,l=r.graphic.sourceLayer,d=l.parent;if(l&&!r.graphic.geometry&&l.graphType===`relationship`){let e=d.relationshipLinkChartDiagramLookup.get(r.uniqueId);o=s(new a(u(e,`esriGeometryPolyline`,!1,!1)),this._view.spatialReference)}for(let a of i){if(!o)continue;let i=this.getTranslatedGeometry(o,a.pathIndex,a.vertexIndex,e,t);r.graphic.geometry=s(i,c.WGS84),d.relationshipLinkChartDiagramLookup.get(r.uniqueId)&&(d.relationshipLinkChartDiagramLookup.set(r.uniqueId,null),n.add(l))}}for(let e of n)e.refreshCachedQueryEngine().then(()=>{e.emit(`refresh`,{dataChanged:!0})});return Array.from(this.modifiedFeatures.keys())}getTranslatedGeometry(e,t,n,r,i){let a=e.clone(),o=e.paths.slice();return o.at(t)?.at(n)==null||(o[t][n][0]+=r??0,o[t][n][1]+=i??0,a.paths=o),a}}class b extends y{constructor(e,t,n,r){super(t,r),this._connectedVerticesLookup=n;let i=[];for(let t of e){let e=this.getConnectedVerticesForFeature(t);for(let t of e)i.push(t)}this.initializeModifiedFeatures(i)}getConnectedVerticesForFeature(e){return this._connectedVerticesLookup.get(e.graphic.attributes.ESRI__ID)??[]}}export{b as ConnectedFeatureReshapeProvider,g as startNodeMovement,h as wrapperObject};
2
+ import e from"../../core/Error.js";import{makeHandle as t}from"../../core/handleUtils.js";import{getOrCreateMapValue as n}from"../../core/MapUtils.js";import{floatEqualRelative as r}from"../../core/mathUtils.js";import{assertNotMesh as i}from"../../geometry/asserts.js";import a from"../../geometry/Point.js";import o from"../../geometry/Polyline.js";import{initializeProjection as s,project as c}from"../../geometry/projectionUtils.js";import l from"../../geometry/SpatialReference.js";import u from"../GraphicsLayer.js";import{convertToGeometry as d}from"../graphics/featureConversionUtils.js";import{kgRestServices as f}from"../../rest/knowledgeGraphService.js";import p from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import m from"../../rest/knowledgeGraph/KnowledgeGraph.js";import h from"../../views/draw/support/Reshape.js";const g={newReshapeWrapper:async({getFeatureReshapeProvider:e,targetGraphic:t,reshapeGraphicsLayer:n,view:r,snappingManager:i})=>new h({connectedReshapeProviders:[{getFeatureReshapeProvider:e,getVertexReshapeProvider(){throw Error(`Link Charts do not support vertex (polyline) reshape at this time`)}}],enableMidpoints:!1,graphic:t,layer:n,view:r,snappingManager:i})},_=async({targetEntityId:n,targetEntityType:i,view:o,snappingManager:f})=>{await s(l.WGS84,o.spatialReference);let p=o.map?.activeLinkChartLayer?.layers.find(e=>e.objectType.name===i);if(!p)throw new e(`LinkChartView:target-layer-not-found`,`No layer found for target entity type ${i}`);let m=p.createQuery();m.objectIds=[n];let h=await p.queryFeatures(m);if(h.features.length===0)throw new e(`LinkChartView:no-matching-feature-found`,`No feature found with ID ${n} in layer ${p.title}`);let _=h.features[0].clone(),b=_.attributes.ESRI__ID;if(!_.sourceLayer)throw new e(`LinkChartView:no-source-layer`,`The target graphic does not have a source layer: ${b}`);let S=new u({listMode:`hide`,internal:!0});_.geometry=c(new a(d(_.attributes.ESRI__LayoutGeometry,`esriGeometryPoint`,!1,!1)),o.spatialReference),o.map.add(S),S.add(_);let C=_.sourceLayer,w=C.parent,T=new Map([[b,[]]]),E=new Map,D=new Map,O=await v(n,p,o),k=new Map;for(let e of w.layers)k.set(e.objectType.name,e);let A=new Map;for(let[e,t]of w.sublayerIdsCache)w.dataManager.relationshipTypeNames.has(e)&&A.set(e,Array.from(t));let j=await y(b,C.objectType.name,w.knowledgeGraph,A),M=w.entityLinkChartDiagramLookup.get(b);for(let e of j){let t=E.get(e.id);if(t||(t=w.relationshipLinkChartDiagramLookup.get(e.id),E.set(e.id,t??null)),t){let n=k.get(e.typeName);n&&r(t.coords[0],M.coords[0])&&r(t.coords[1],M.coords[1])?T.get(b)?.push({objectId:e.id,pathIndex:0,vertexIndex:0,associatedSublayer:n}):n&&r(t.coords.at(-2),M.coords[0])&&r(t.coords.at(-1),M.coords[1])&&T.get(b)?.push({objectId:e.id,pathIndex:0,vertexIndex:t.coords.length/2-1,associatedSublayer:n})}}let N=await g.newReshapeWrapper({getFeatureReshapeProvider:e=>new x(e,D,T,o),targetGraphic:_,reshapeGraphicsLayer:S,view:o,snappingManager:f});N.on(`move-stop`,e=>{o.emit(`node-movement-stop`,e)});let P=t(()=>{O.remove(),S.removeAll(),o.map.remove(S),S.destroy(),D.clear(),E.clear(),N.destroy()});return{currentReshapeGraphic:N.graphic,localEdits:D,originalRelationshipGeometries:E,teardownHandle:P}},v=async(e,t,n)=>{let r=await n.whenLayerView(t);return r.setVisibility(e,!1),{remove:()=>r.setVisibility(e,!0)}},y=async(e,t,n,r,i)=>{let a={sourceId:e},o=[],s=[];for(let[e,n]of r){let r=`${e}_ids`;a[r]=n,s.push(`Match (n:${t}) WHERE id(n) = $sourceId WITH n MATCH (n)-[r:${e}]-() WHERE ID(r) IN $${r} RETURN {id: ID(r), typeName: type(r)} as result`)}let c=s.join(` UNION `),l=(await f.executeQueryStreaming(new m(JSON.parse(JSON.stringify(n))),new p({openCypherQuery:c,bindParameters:a}),i)).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;t.forEach(e=>{o.push(e[0].properties)})}return o};class b{constructor(e,t){this.modifiedFeatures=new Map,this.updating=!1,this._totalDx=0,this._totalDy=0,this._localEditsCache=e,this._view=t}async initializeModifiedFeatures(e){let t=new Map;for(let e of this._view.map?.activeLinkChartLayer?.layers??[]){let n=e;t.set(n.objectType.name,n)}let r=new Map;for(let t of e){let i=this._localEditsCache.get(t.objectId);i?this.initializeModifiedFeature(i,e):n(r,t.associatedSublayer.objectType.name,()=>[]).push(t.objectId)}for(let[n,i]of r){let r=t.get(n),a=r.createQuery();a.outFields=[`ESRI__ID`],a.objectIds=i,r.queryFeatures(a).then(t=>{for(let n of t.features)this.initializeModifiedFeature(this.makeModifiedFeature(n,r),e)})}}makeModifiedFeature(e,t){let n=e.attributes.ESRI__ID,r={graphic:e,layer:t,originalGraphic:e.clone(),uniqueId:n};return this._localEditsCache.set(n,r),r}initializeModifiedFeature(e,t){let n=t.filter(({objectId:t})=>t===e.uniqueId);this.modifiedFeatures.set(e,n),i(e.graphic.geometry);let r=e.graphic.geometry?c(e.graphic.geometry,this._view.spatialReference):void 0,a=e.graphic.sourceLayer,s=a.parent;if(!r&&a.graphType===`relationship`){let t=s.relationshipLinkChartDiagramLookup.get(e.uniqueId);r=c(new o(d(t,`esriGeometryPolyline`,!1,!1)),this._view.spatialReference)}let u=r.clone();for(let{pathIndex:e,vertexIndex:t}of n)u=this.getTranslatedGeometry(r,e,t,this._totalDx,this._totalDy);e.graphic.geometry=c(u,l.WGS84),s.relationshipLinkChartDiagramLookup.get(e.uniqueId)&&(s.relationshipLinkChartDiagramLookup.set(e.uniqueId,null),a.refreshCachedQueryEngine().then(()=>{a.emit(`refresh`,{dataChanged:!0})}))}translate(e,t){this._totalDx+=e,this._totalDy+=t;let n=new Set;for(let[r,a]of this.modifiedFeatures){i(r.graphic.geometry);let s=r.graphic.geometry?c(r.graphic.geometry,this._view.spatialReference):void 0,u=r.graphic.sourceLayer,f=u.parent;if(u&&!r.graphic.geometry&&u.graphType===`relationship`){let e=f.relationshipLinkChartDiagramLookup.get(r.uniqueId);s=c(new o(d(e,`esriGeometryPolyline`,!1,!1)),this._view.spatialReference)}for(let i of a){if(!s)continue;let a=this.getTranslatedGeometry(s,i.pathIndex,i.vertexIndex,e,t);r.graphic.geometry=c(a,l.WGS84),f.relationshipLinkChartDiagramLookup.get(r.uniqueId)&&(f.relationshipLinkChartDiagramLookup.set(r.uniqueId,null),n.add(u))}}for(let e of n)e.refreshCachedQueryEngine().then(()=>{e.emit(`refresh`,{dataChanged:!0})});return Array.from(this.modifiedFeatures.keys())}getTranslatedGeometry(e,t,n,r,i){let a=e.clone(),o=e.paths.slice();return o.at(t)?.at(n)==null||(o[t][n][0]+=r??0,o[t][n][1]+=i??0,a.paths=o),a}}class x extends b{constructor(e,t,n,r){super(t,r),this._connectedVerticesLookup=n;let i=[];for(let t of e){let e=this.getConnectedVerticesForFeature(t);for(let t of e)i.push(t)}this.initializeModifiedFeatures(i)}getConnectedVerticesForFeature(e){return this._connectedVerticesLookup.get(e.graphic.attributes.ESRI__ID)??[]}}export{x as ConnectedFeatureReshapeProvider,_ as startNodeMovement,g as wrapperObject};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../config.js";import{id as n}from"../../kernel.js";import r from"../../request.js";import{result as i}from"../../core/asyncUtils.js";import a from"../../core/Error.js";import{abortHandle as o}from"../../core/handleUtils.js";import s from"../../core/Logger.js";import{destroyMaybe as c}from"../../core/maybe.js";import{throwIfAborted as l,isAbortError as u,throwIfAbortError as d}from"../../core/promiseUtils.js";import{hasSameCanonicalPortal as f,hasSamePortal as p,normalize as m}from"../../core/urlUtils.js";import{property as h,subclass as g}from"../../core/accessorSupport/decorators.js";import{getOwningPortalUrl as _}from"../support/layerUtils.js";import v from"../../portal/Portal.js";import y from"../../portal/PortalItem.js";import b from"../../portal/PortalUser.js";import{getUserPrivileges as x}from"../../portal/support/portalItemUtils.js";import{reader as S}from"../../core/accessorSupport/decorators/reader.js";import{writer as C}from"../../core/accessorSupport/decorators/writer.js";const w=w=>{let E=w,D=class extends E{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){super.destroy(),this.portalItem=c(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get(`portalItem`)}set portalItem(e){e!==this._get(`portalItem`)&&(this.removeOrigin(`portal-item`),this._set(`portalItem`,e))}readPortalItem(e,t,n){if(t.itemId)return new y({id:t.itemId,portal:n?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{let{load:n}=await import(`../../portal/support/layersLoader.js`);return l(t),await n({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw u(e)||s.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async reloadFromPortal(e,t){if(!this.loaded||!this.portalItem?.id)return!1;let n=t?.signal?null:new AbortController;try{let{reload:r}=await import(`../../portal/support/layersLoader.js`);return n&&this.addHandles(o(n),`reloadFromPortal`),await r({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t?.signal?t:{signal:n.signal})}catch(e){throw u(e)||s.getLogger(this).warn(`Failed to reload layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}finally{n&&this.removeHandles(`reloadFromPortal`)}}async finishLoadEditablePortalLayer(e){this._set(`userHasEditingPrivileges`,await this._fetchUserHasEditingPrivileges(e).catch(e=>(d(e),!0)))}async setUserPrivileges(e,n){if(!t.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(n);if(this.url)try{let{features:{edit:t,fullEdit:r},content:{updateItem:i}}=await this._fetchUserPrivileges(e,n);this._set(`userHasEditingPrivileges`,t),this._set(`userHasFullEditingPrivileges`,r),this._set(`userHasUpdateItemPrivileges`,i)}catch(e){d(e)}}async _fetchUserPrivileges(e,t){let r=this.portalItem;if(!e||!r||!r.loaded||r.sourceUrl)return this._fetchFallbackUserPrivileges(t);let i=!n?.findCredential(this.url),a=e===r.id;if(a&&r.portal.user)return this._getUserPrivileges(r,i);let o;if(a)o=r.portal.url;else try{o=await _(this.url,t)}catch(e){d(e)}if(!o||!f(o,r.portal.url))return this._fetchFallbackUserPrivileges(t);let s;try{let e=t==null?null:t.signal;s=await n?.getCredential(`${o}/sharing`,{prompt:!1,signal:e})}catch(e){d(e)}if(!s)return{features:{edit:!0,fullEdit:!1},content:{updateItem:!1}};try{if(a?await r.reload():(r=new y({id:e,portal:{url:o}}),await r.load(t)),r.portal.user)return this._getUserPrivileges(r,i)}catch(e){d(e)}return{features:{edit:!0,fullEdit:!1},content:{updateItem:!1}}}_getUserPrivileges(e,t){let n=x(e);return t&&(n.features.edit=!0),n}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){d(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){let t=this.url?n?.findCredential(this.url):null;if(!t)return!0;let r=T.credential===t?T.user:await this._fetchEditingUser(e);return T.credential=t,T.user=r,r?.privileges==null||r.privileges.includes(`features:user:edit`)}async _fetchEditingUser(e){let t=this.portalItem?.portal?.user;if(t)return t;let a=n?.findServerInfo(this.url??``);if(!a?.owningSystemUrl)return null;let o=`${a.owningSystemUrl}/sharing/rest`,s=v.getDefault();if(s&&s.loaded&&m(s.restUrl)===m(o))return s.user;let c=`${o}/community/self`,l=e==null?null:e.signal,u=await i(r(c,{authMode:`no-prompt`,query:{f:`json`},signal:l}));return u.ok?b.fromJSON(u.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){let n=t?.portal,r=this.portalItem?.id&&(this.portalItem.portal||v.getDefault());return n&&r&&!p(r.restUrl,n.restUrl)?(t.messages&&t.messages.push(new a(`layer:cross-portal`,`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return e([h({type:y})],D.prototype,`portalItem`,null),e([S(`web-document`,`portalItem`,[`itemId`])],D.prototype,`readPortalItem`,null),e([C(`web-document`,`portalItem`,{itemId:{type:String}})],D.prototype,`writePortalItem`,null),e([h({clonable:!1})],D.prototype,`resourceReferences`,void 0),e([h({type:Boolean,readOnly:!0})],D.prototype,`userHasEditingPrivileges`,void 0),e([h({type:Boolean,readOnly:!0})],D.prototype,`userHasFullEditingPrivileges`,void 0),e([h({type:Boolean,readOnly:!0})],D.prototype,`userHasUpdateItemPrivileges`,void 0),D=e([g(`esri.layers.mixins.PortalLayer`)],D),D},T={credential:null,user:null};export{w as PortalLayer};
2
+ import{__decorate as e}from"tslib";import t from"../../config.js";import{id as n}from"../../kernel.js";import r from"../../request.js";import{result as i}from"../../core/asyncUtils.js";import a from"../../core/Error.js";import{abortHandle as o}from"../../core/handleUtils.js";import s from"../../core/Logger.js";import{destroyMaybe as c}from"../../core/maybe.js";import{throwIfAborted as l,isAbortError as u,throwIfAbortError as d}from"../../core/promiseUtils.js";import{hasSameCanonicalPortal as f,normalize as p}from"../../core/urlUtils.js";import{property as m,subclass as h}from"../../core/accessorSupport/decorators.js";import{getOwningPortalUrl as g}from"../support/layerUtils.js";import _ from"../../portal/Portal.js";import v from"../../portal/PortalItem.js";import y from"../../portal/PortalUser.js";import{getUserPrivileges as b}from"../../portal/support/portalItemUtils.js";import{isCrossPortalWrite as x}from"../../webdoc/support/saveUtils.js";import{reader as S}from"../../core/accessorSupport/decorators/reader.js";import{writer as C}from"../../core/accessorSupport/decorators/writer.js";const w=w=>{let E=w,D=class extends E{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){super.destroy(),this.portalItem=c(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get(`portalItem`)}set portalItem(e){e!==this._get(`portalItem`)&&(this.removeOrigin(`portal-item`),this._set(`portalItem`,e))}readPortalItem(e,t,n){if(t.itemId)return new v({id:t.itemId,portal:n?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{let{load:n}=await import(`../../portal/support/layersLoader.js`);return l(t),await n({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw u(e)||s.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async reloadFromPortal(e,t){if(!this.loaded||!this.portalItem?.id)return!1;let n=t?.signal?null:new AbortController;try{let{reload:r}=await import(`../../portal/support/layersLoader.js`);return n&&this.addHandles(o(n),`reloadFromPortal`),await r({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t?.signal?t:{signal:n.signal})}catch(e){throw u(e)||s.getLogger(this).warn(`Failed to reload layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}finally{n&&this.removeHandles(`reloadFromPortal`)}}async finishLoadEditablePortalLayer(e){this._set(`userHasEditingPrivileges`,await this._fetchUserHasEditingPrivileges(e).catch(e=>(d(e),!0)))}async setUserPrivileges(e,n){if(!t.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(n);if(this.url)try{let{features:{edit:t,fullEdit:r},content:{updateItem:i}}=await this._fetchUserPrivileges(e,n);this._set(`userHasEditingPrivileges`,t),this._set(`userHasFullEditingPrivileges`,r),this._set(`userHasUpdateItemPrivileges`,i)}catch(e){d(e)}}async _fetchUserPrivileges(e,t){let r=this.portalItem;if(!e||!r||!r.loaded||r.sourceUrl)return this._fetchFallbackUserPrivileges(t);let i=!n?.findCredential(this.url),a=e===r.id;if(a&&r.portal.user)return this._getUserPrivileges(r,i);let o;if(a)o=r.portal.url;else try{o=await g(this.url,t)}catch(e){d(e)}if(!o||!f(o,r.portal.url))return this._fetchFallbackUserPrivileges(t);let s;try{let e=t==null?null:t.signal;s=await n?.getCredential(`${o}/sharing`,{prompt:!1,signal:e})}catch(e){d(e)}if(!s)return{features:{edit:!0,fullEdit:!1},content:{updateItem:!1}};try{if(a?await r.reload():(r=new v({id:e,portal:{url:o}}),await r.load(t)),r.portal.user)return this._getUserPrivileges(r,i)}catch(e){d(e)}return{features:{edit:!0,fullEdit:!1},content:{updateItem:!1}}}_getUserPrivileges(e,t){let n=b(e);return t&&(n.features.edit=!0),n}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){d(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){let t=this.url?n?.findCredential(this.url):null;if(!t)return!0;let r=T.credential===t?T.user:await this._fetchEditingUser(e);return T.credential=t,T.user=r,r?.privileges==null||r.privileges.includes(`features:user:edit`)}async _fetchEditingUser(e){let t=this.portalItem?.portal?.user;if(t)return t;let a=n?.findServerInfo(this.url??``);if(!a?.owningSystemUrl)return null;let o=`${a.owningSystemUrl}/sharing/rest`,s=_.getDefault();if(s&&s.loaded&&p(s.restUrl)===p(o))return s.user;let c=`${o}/community/self`,l=e==null?null:e.signal,u=await i(r(c,{authMode:`no-prompt`,query:{f:`json`},signal:l}));return u.ok?y.fromJSON(u.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){return x(this.portalItem,t)?(t?.messages?.push(new a(`layer:cross-portal`,`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return e([m({type:v})],D.prototype,`portalItem`,null),e([S(`web-document`,`portalItem`,[`itemId`])],D.prototype,`readPortalItem`,null),e([C(`web-document`,`portalItem`,{itemId:{type:String}})],D.prototype,`writePortalItem`,null),e([m({clonable:!1})],D.prototype,`resourceReferences`,void 0),e([m({type:Boolean,readOnly:!0})],D.prototype,`userHasEditingPrivileges`,void 0),e([m({type:Boolean,readOnly:!0})],D.prototype,`userHasFullEditingPrivileges`,void 0),e([m({type:Boolean,readOnly:!0})],D.prototype,`userHasUpdateItemPrivileges`,void 0),D=e([h(`esri.layers.mixins.PortalLayer`)],D),D},T={credential:null,user:null};export{w as PortalLayer};
@@ -10,7 +10,6 @@ export interface RefreshableLayerEvents {
10
10
  * Fires if the layer has the [refreshInterval](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refreshInterval) set or when [refresh()](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refresh) method is called.
11
11
  * The event payload indicates if the layer's data has changed.
12
12
  *
13
- * @since 4.21
14
13
  * @see [refreshInterval](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refreshInterval)
15
14
  * @see [refresh()](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refresh)
16
15
  * @see [Sample - GeoJSONLayer with dynamic URL](https://developers.arcgis.com/javascript/latest/sample-code/layers-geojson-refresh/)
@@ -76,7 +75,7 @@ export abstract class RefreshableLayer {
76
75
  * Refresh interval of the layer in minutes. Value of `0` indicates no refresh.
77
76
  *
78
77
  * @default 0
79
- * @since 4.6
78
+ * @see [Sample - GeoJSONLayer with dynamic URL](https://developers.arcgis.com/javascript/latest/sample-code/layers-geojson-refresh/)
80
79
  * @see [RefreshableLayer.refresh()](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refresh)
81
80
  * @see [refresh event](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#event-refresh)
82
81
  * @example
@@ -87,7 +86,6 @@ export abstract class RefreshableLayer {
87
86
  /**
88
87
  * Fetches all the data for the layer.
89
88
  *
90
- * @since 4.6
91
89
  * @see [RefreshableLayer.refreshInterval](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#refreshInterval)
92
90
  * @see [refresh event](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#event-refresh)
93
91
  */
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../core/accessorSupport/decorators.js";const r=r=>{let a=r,o=class extends a{constructor(){super(...arguments),this.minScale=0,this.maxScale=0}get effectiveScaleRange(){let e={minScale:this.minScale,maxScale:this.maxScale},t=this.parent;t?.effectiveScaleRange!==void 0&&i(e,t.effectiveScaleRange);let n=this._get(`effectiveScaleRange`);return n&&n.minScale===e.minScale&&n.maxScale===e.maxScale?n:e}};return e([t({type:Number,nonNullable:!0,json:{write:!0}})],o.prototype,`minScale`,void 0),e([t({type:Number,nonNullable:!0,json:{write:!0}})],o.prototype,`maxScale`,void 0),e([t({readOnly:!0})],o.prototype,`effectiveScaleRange`,null),o=e([n(`esri.layers.mixins.ScaleRangeLayer`)],o),o};function i(e,t){return e.minScale=e.minScale>0?t.minScale>0?Math.min(e.minScale,t.minScale):e.minScale:t.minScale,e.maxScale=e.maxScale>0?t.maxScale>0?Math.max(e.maxScale,t.maxScale):e.maxScale:t.maxScale,e}export{r as ScaleRangeLayer};
2
+ import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../core/accessorSupport/decorators.js";import{joinScaleRanges as r}from"../../geometry/support/scaleUtils.js";const i=i=>{let a=i,o=class extends a{constructor(){super(...arguments),this.minScale=0,this.maxScale=0}get effectiveScaleRange(){let e={minScale:this.minScale,maxScale:this.maxScale},t=this.parent;t?.effectiveScaleRange!==void 0&&r(e,t.effectiveScaleRange);let n=this._get(`effectiveScaleRange`);return n&&n.minScale===e.minScale&&n.maxScale===e.maxScale?n:e}};return e([t({type:Number,nonNullable:!0,json:{write:!0}})],o.prototype,`minScale`,void 0),e([t({type:Number,nonNullable:!0,json:{write:!0}})],o.prototype,`maxScale`,void 0),e([t({readOnly:!0})],o.prototype,`effectiveScaleRange`,null),o=e([n(`esri.layers.mixins.ScaleRangeLayer`)],o),o};export{i as ScaleRangeLayer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import n from"../../core/CollectionFlattener.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{watch as a,sync as o}from"../../core/reactiveUtils.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import{nameToId as l,idToName as u}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as d}from"../../core/accessorSupport/utils.js";import f from"../support/Sublayer.js";import{isSublayerOverhaul as p}from"../support/sublayerUtils.js";function m(e,t){let n=[],r={};return e&&e.forEach(e=>{let i=new f;if(i.read(e,t),r[i.id]=i,e.parentLayerId!=null&&e.parentLayerId!==-1){let t=r[e.parentLayerId];t.sublayers||=[],t.sublayers.unshift(i)}else n.unshift(i)}),n}const h=t.ofType(f);function g(e,t){e&&e.forEach(e=>{t(e),e.sublayers&&e.sublayers.length&&g(e.sublayers,t)})}const _=_=>{let v=_,y=class extends v{constructor(...e){super(...e),this.allSublayers=new n({getCollections:()=>[this.sublayers],getChildrenFunction(e){return e.sublayers}}),this.sublayersSourceJSON={2:{},3:{},4:{},5:{},6:{}},this.subtables=null,this.addHandles([a(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),o),a(()=>this.subtables,(e,t)=>this._handleSublayersChange(e,t),o)])}destroy(){this.allSublayers.destroy()}readSublayers(e,t){if(!t||!e)return;let{sublayersSourceJSON:n}=this,r=l(t.origin);if(r<2||(n[r]={context:t,visibleLayers:e.visibleLayers||n[r].visibleLayers,layers:e.layers||n[r].layers},r>2))return;this._set(`serviceSublayers`,this.createSublayersForOrigin(`service`).sublayers);let{sublayers:i,origin:a}=this.createSublayersForOrigin(`web-document`),o=d(this);o.setDefaultOrigin(a),this._set(`sublayers`,new h(i)),o.setDefaultOrigin(`user`)}findSublayerById(e){return this.allSublayers.find(t=>t.id===e)}createServiceSublayers(){return this.createSublayersForOrigin(`service`).sublayers}createSublayersForOrigin(e){let t,n=l(e===`web-document`?`web-map`:e),r=2,i=this.sublayersSourceJSON[2].layers,a=this.sublayersSourceJSON[2].context,o=null,s=[3,4,5].filter(e=>e<=n);for(let e of s){let t=this.sublayersSourceJSON[e];p(t.layers)&&(r=e,i=t.layers,a=t.context,t.visibleLayers&&(o={visibleLayers:t.visibleLayers,context:t.context}))}let c=[3,4,5].filter(e=>e>r&&e<=n),d=null;for(let e of c){let{layers:n,visibleLayers:r,context:i}=this.sublayersSourceJSON[e];n&&(d={layers:n,context:i},t??=e),r&&(o={visibleLayers:r,context:i})}let f=m(i,a),_=new Map,v=new Set;if(d)for(let e of d.layers)_.set(e.id,e);if(o?.visibleLayers)for(let e of o.visibleLayers)v.add(e);return g(f,e=>{d&&e.read(_.get(e.id),d.context),o&&e.read({defaultVisibility:v.has(e.id)},o.context)}),{origin:u(r),originWithPartialOverrides:t?u(t):null,sublayers:new h({items:f})}}read(e,t){super.read(e,t),this.readSublayers(e,t)}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null,e.layer=null}),this.removeHandles(`sublayers-owner`)),e&&(e.forEach(e=>{e.parent=this,e.layer=this}),this.addHandles([e.on(`after-add`,({item:e})=>{e.parent=this,e.layer=this}),e.on(`after-remove`,({item:e})=>{e.parent=null,e.layer=null})],`sublayers-owner`),this.type===`tile`&&this.addHandles(e.on(`before-changes`,e=>{i.getLogger(`esri.layers.TileLayer`).error(new r(`tilelayer:sublayers-non-modifiable`,`Sublayer can't be added, moved, or removed from the layer's sublayers`,{layer:this})),e.preventDefault()}),`sublayers-owner`))}};return e([s({readOnly:!0})],y.prototype,`allSublayers`,void 0),e([s({readOnly:!0,type:t.ofType(f)})],y.prototype,`serviceSublayers`,void 0),e([s({value:null,type:h,json:{read:!1,write:{allowNull:!0,ignoreOrigin:!0}}})],y.prototype,`sublayers`,void 0),e([s({readOnly:!0})],y.prototype,`sublayersSourceJSON`,void 0),e([s({type:h,json:{read:{source:`tables`}}})],y.prototype,`subtables`,void 0),y=e([c(`esri.layers.mixins.SublayersOwner`)],y),y};export{_ as SublayersOwner,g as forEachSublayer};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import n from"../../core/CollectionFlattener.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{watch as a,sync as o}from"../../core/reactiveUtils.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import{nameToId as l,idToName as u}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as d}from"../../core/accessorSupport/utils.js";import f from"../support/Sublayer.js";import{isSublayerOverhaul as p}from"../support/sublayerUtils.js";function m(e,t){let n=[],r={};return e&&e.forEach(e=>{let i=new f;if(i.read(e,t),r[i.id]=i,e.parentLayerId!=null&&e.parentLayerId!==-1){let t=r[e.parentLayerId];t.sublayers||=[],t.sublayers.unshift(i)}else n.unshift(i)}),n}const h=t.ofType(f);function g(e,t){e&&e.forEach(e=>{t(e),e.sublayers&&e.sublayers.length&&g(e.sublayers,t)})}const _=_=>{let v=_,y=class extends v{constructor(...e){super(...e),this.allSublayers=new n({getCollections:()=>[this.sublayers],getChildrenFunction(e){return e.sublayers}}),this.sublayersSourceJSON={2:{},3:{},4:{},5:{},6:{}},this.subtables=null,this.addHandles([a(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),o),a(()=>this.subtables,(e,t)=>this._handleSublayersChange(e,t),o)])}destroy(){this.allSublayers.destroy()}readSublayers(e,t){if(!t||!e)return;let{sublayersSourceJSON:n}=this,r=l(t.origin);if(r<2||(n[r]={context:t,visibleLayers:e.visibleLayers||n[r].visibleLayers,layers:e.layers||n[r].layers},r>2))return;this._set(`serviceSublayers`,this.createSublayersForOrigin(`service`).sublayers);let{sublayers:i,origin:a}=this.createSublayersForOrigin(`web-document`),o=d(this);o.setDefaultOrigin(a),this._set(`sublayers`,new h(i)),o.setDefaultOrigin(`user`)}findSublayerById(e){return this.allSublayers.find(t=>t.id===e)}createServiceSublayers(){return this.createSublayersForOrigin(`service`).sublayers}createSublayersForOrigin(e){let t,n=l(e===`web-document`?`web-map`:e),r=2,i=this.sublayersSourceJSON[2].layers,a=this.sublayersSourceJSON[2].context,o=null,s=[3,4,5].filter(e=>e<=n);for(let e of s){let t=this.sublayersSourceJSON[e];p(t.layers)&&(r=e,i=t.layers,a=t.context,t.visibleLayers&&(o={visibleLayers:t.visibleLayers,context:t.context}))}let c=[3,4,5].filter(e=>e>r&&e<=n),d=null;for(let e of c){let{layers:n,visibleLayers:r,context:i}=this.sublayersSourceJSON[e];n&&(d={layers:n,context:i},t??=e),r&&(o={visibleLayers:r,context:i})}let f=m(i,a),_=new Map,v=new Set;if(d)for(let e of d.layers)_.set(e.id,e);if(o?.visibleLayers)for(let e of o.visibleLayers)v.add(e);return g(f,e=>{d&&e.read(_.get(e.id),d.context),o&&e.read({defaultVisibility:v.has(e.id)},o.context)}),{origin:u(r),originWithPartialOverrides:t?u(t):null,sublayers:new h({items:f})}}read(e,t){super.read(e,t),this.readSublayers(e,t)}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null,e.layer=null}),this.removeHandles(`sublayers-owner`)),e&&(e.forEach(e=>{e.parent=this,e.layer=this}),this.addHandles([e.on(`after-add`,({item:e})=>{e.parent=this,e.layer=this}),e.on(`after-remove`,({item:e})=>{e.parent=null,e.layer=null})],`sublayers-owner`),this.type===`tile`&&this.addHandles(e.on(`before-changes`,e=>{i.getLogger(`esri.layers.TileLayer`).error(new r(`tilelayer:sublayers-non-modifiable`,`Sublayer can't be added, moved, or removed from the layer's sublayers`,{layer:this})),e.preventDefault()}),`sublayers-owner`))}};return e([s({readOnly:!0})],y.prototype,`allSublayers`,void 0),e([s({readOnly:!0})],y.prototype,`effectiveScaleRange`,void 0),e([s({readOnly:!0,type:t.ofType(f)})],y.prototype,`serviceSublayers`,void 0),e([s({value:null,type:h,json:{read:!1,write:{allowNull:!0,ignoreOrigin:!0}}})],y.prototype,`sublayers`,void 0),e([s({readOnly:!0})],y.prototype,`sublayersSourceJSON`,void 0),e([s({type:h,json:{read:{source:`tables`}}})],y.prototype,`subtables`,void 0),y=e([c(`esri.layers.mixins.SublayersOwner`)],y),y};export{_ as SublayersOwner,g as forEachSublayer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{id as t}from"../../../kernel.js";import{ClonableMixin as n}from"../../../core/Clonable.js";import r from"../../../core/Error.js";import{JSONSupport as i}from"../../../core/JSONSupport.js";import a from"../../../core/Logger.js";import{isAbsolute as o,addQueryParameter as s}from"../../../core/urlUtils.js";import{property as c,cast as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import d from"../../../geometry/Point.js";import{getGeometryZScaler as f}from"../../../geometry/support/zscale.js";import p from"./CameraOrientation.js";import m from"./cameraOrientationFactory.js";import{appendPrefixAndSuffix as h,getEffectiveElevationSource as g,getArcGISServerUrl as _,getMetersPerUnitOfSR as v,orientedImageryTypeMap as y}from"./utils.js";import{ltpToGeographic as b}from"../transformations/utils.js";import{reader as x}from"../../../core/accessorSupport/decorators/reader.js";import{writer as S}from"../../../core/accessorSupport/decorators/writer.js";import{enumeration as C}from"../../../core/accessorSupport/decorators/enumeration.js";function w(e){throw new r(`exposure-point:missing-default-value`,`a value for ${e} is missing in default properties`)}function T(e,t){throw new r(`exposure-point:missing-attribute-value`,`a value for ${e} is missing in attribute table`,{exposurePoint:t})}function E(e){return e.trim().replaceAll(`\\`,`/`).replace(/^\/+/,``)}function D(e,t){return o(e)?e:h(e,t.imagePathPrefix,t.imagePathSuffix)}function O(e,t){if(o(e))return e;let n=t.url?_(t.url):null;return n?`${n}/${E(e)}`:null}function k(e){return t?.findCredential(e.url)?.token??null}function A(e,t){let n=k(t);return n?s(e,`token`,n):e}const j=e=>({cast:e=>{let t=parseFloat(e);return Number.isFinite(t)?t:void 0},json:{name:e,write:{writer:(e,t,n)=>{t[n]=Number.isFinite(e)?e:void 0}}}}),M=e=>({cast:e=>typeof e==`string`?e.split(`;`).map(Number):e,json:{default:e,write:{writer:(e,t,n)=>{t[n]=e?.join(`;`)}}}}),N=`$virtualCacheDirectory:`,P=new Set([`location`]);let F=class extends n(i){constructor(e){super(e),this._geometry=null,this.cameraOrientation=null,this.elevation=null,this.elevationSource=null,this.name=null,this.sourceMap=null}read(e,t){let n={},{attributes:r,geometry:i}=e,a={};for(let e in r)P.has(e.toLowerCase())||(n[e.toLowerCase()]=r[e],a[e.toLowerCase()]=e);let o=e.layer??{},s=o.effectiveSequenceOrderField,c=null;s?.length&&(s.map(e=>e.fieldName).forEach(e=>{a[e.toLowerCase()]=e}),c=s.map(e=>({value:r[e.fieldName],...e}))),super.read({geometry:i,layer:o,sourceMap:a,sequenceOrder:c,...n},t)}write(e,t){let n=super.write(e,t),{sourceMap:r}=this;if(!r||!n)return n;let i={};for(let e in n){let t=r[e.toLowerCase()];t&&(i[t]=n[e])}return i}readCameraHeading(e,t){let{cameraheading:n,camheading:r,layer:i}=t;return n??r??i.cameraHeading}readCameraHeight(e,t){let{cameraheight:n,avghtag:r,layer:i}=t;return n??r??i.cameraHeight}readCamOffset(e,t){let{cameraoffset:n,camoffset:r}=t;return n?.split(`;`).map(Number)??r?.split(`;`).map(Number)??null}writeCameraOffset(e,t){e&&(t.cameraOffset=e.join(`;`))}readCameraOrientation(e,t){let{cameraorientation:n,camori:r}=t;return n??r}readCameraPitch(e,t){let{camerapitch:n,campitch:r,layer:i}=t;return n??r??i.cameraPitch}readCameraRoll(e,t){let{cameraroll:n,camroll:r,layer:i}=t;return n??r??i.cameraRoll}readDepthImage(e,t){let{depthimage:n,depthimg:r,layer:i}=t,a=n??r??null,{depthImagePathPrefix:o,depthImagePathSuffix:s}=i??{};return h(a,o,s)}readElevationSource(e,t){let{elevationsource:n,layer:r}=t,{demPathSuffix:i,demPathPrefix:a}=r;if(n){let e=this._parseIfJSON(n);return g(e,a,i)}return r.effectiveElevationSource}readFarDistance(e,t){let{fardistance:n,fardist:r,layer:i}=t;return n??r??i.farDistance}get geometry(){let e=this._geometry.clone();if(!e)return null;let{cameraOffset:t}=this;if(t){let[n,r,i]=t;e.x+=n,e.y+=r,e.z!=null&&i!=null&&(e.z+=i)}return e}set geometry(e){this._geometry=e}writeGeometry(e,t){t.geometry=this._geometry.toJSON()}readHFOV(e,t){let{horizontalfieldofview:n,hfov:r,layer:i}=t;return n??r??i.horizontalFieldOfView}readImageURL(e,t){let{connectionid:n,imagepath:r,layer:i}=t;if(r||T(`imagePath`,this),r.startsWith(N))return`${_(i.url)}/rest/directories/dsid_${r.replace(N,i.dataStoreID+`/`)}`;if(n==null)return D(r,i);let a=i.imageAccessPaths?.[n];if(!a)return D(r,i);let o=O(a,i);return o?A(`${o}/${E(r)}`,i):D(r,i)}readImageRotation(e,t){let{imagerotation:n,imgrot:r,layer:i}=t;return n??r??i.imageRotation}get isHorizontal(){return this.orientedImageryType===`horizontal`}get isInspection(){return this.orientedImageryType===`inspection`}get isNadir(){return this.orientedImageryType===`nadir`}get isOblique(){return this.orientedImageryType===`oblique`}get isSpherical(){return this.orientedImageryType?.includes(`360`)??!1}get location(){let{cameraOrientation:e,cameraHeight:t,elevation:n}=this;if(e){let{type:t,x:n,y:r,z:i,horizontalWKID:a,verticalWKID:o}=e,s=typeof a==`number`?{wkid:a}:{wkt:a};if(t===4){let{latitude:t,longitude:n,ellipsoidRadius:r,squaredEccentricity:i,properties:a}=e,{x:o,y:s,z:c}=a;return new d(b([o,s,c],[t,n,r,i]))}let c=new d({x:n,y:r,z:i,spatialReference:s}),l=o?f(`point`,{wkid:o},s):null;return l&&l(c),c}if(typeof t!=`number`)throw w(`cameraHeight`);let r=this.geometry.clone(),i=(n??0)+t/v(r.spatialReference);return r.z=r.hasZ?r.z:i,r}set matrix(e){e&&(e.length===9?this._set(`matrix`,e):(a.getLogger(this).warnOnce(`Ignoring rotation matrix because it doesn't have 9 values`,{value:e}),this._set(`matrix`,null)))}readNearDistance(e,t){let{neardistance:n,neardist:r,layer:i}=t;return n??r??i.nearDistance}readOffsetFromStart(e,t){return t.offsetfromstart??null}readOrientationAccuracy(e,t){let{accuracy:n,orientationaccuracy:r}=t;return r?.split(`;`).map(Number)??n?.split(`;`).map(Number)??null}writeOrientationAccuracy(e,t){e&&(t.orientationAccuracy=e.join(`;`))}readOIType(e,t){let{orientedimagerytype:n,oitype:r,camerapitch:i,campitch:a,layer:o}=t,s=y.read(n??r??o.orientedImageryType),c=i??a??o.cameraPitch;return s===`oblique`?c<10?`nadir`:`oblique`:s}set radial(e){if(!e)this._set(`radial`,[0,0,0]);else if(typeof e==`string`){let[t,n,r]=e.split(`;`).map(Number);this._set(`radial`,[t??0,n??0,r??0])}else this._set(`radial`,e)}set tangential(e){if(!e)this._set(`tangential`,[0,0]);else if(typeof e==`string`){let[t,n]=e.split(`;`).map(Number);this._set(`tangential`,[t??0,n??0])}else this._set(`tangential`,e)}readVFOV(e,t){let{verticalfieldofview:n,vfov:r,layer:i}=t;return n??r??i.verticalFieldOfView}_parseIfJSON(e){let t=null;try{t=JSON.parse(e)}catch(t){a.getLogger(this).error(`couldn't parse the given elevation source JSON`,e,t)}return t}clone(){let e=super.clone();return e._geometry=this._geometry.clone(),e}};e([c()],F.prototype,`_geometry`,void 0),e([c(j())],F.prototype,`a0`,void 0),e([c(j())],F.prototype,`a1`,void 0),e([c(j())],F.prototype,`a2`,void 0),e([c({type:Date,json:{write:{enabled:!0,target:`acquisitionDate`},name:`acquisitiondate`}})],F.prototype,`acquisitionDate`,void 0),e([c(j())],F.prototype,`b0`,void 0),e([c(j())],F.prototype,`b1`,void 0),e([c(j())],F.prototype,`b2`,void 0),e([c({type:Number,json:{write:!0,read:{source:[`cameraheading`,`camheading`,`layer.cameraHeading`]}}})],F.prototype,`cameraHeading`,void 0),e([x(`cameraHeading`)],F.prototype,`readCameraHeading`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`cameraHeight`,void 0),e([x(`cameraHeight`,[`cameraheight`,`avghtag`,`layer.cameraHeight`])],F.prototype,`readCameraHeight`,null),e([c()],F.prototype,`cameraOffset`,void 0),e([x(`cameraOffset`,[`cameraoffset`,`camoffset`])],F.prototype,`readCamOffset`,null),e([S(`cameraOffset`)],F.prototype,`writeCameraOffset`,null),e([c({json:{write:{writer:(e,t,n)=>{t[n]=e.toString()}}},type:p}),l(e=>e?m.getCameraOrientation(e):null)],F.prototype,`cameraOrientation`,void 0),e([x(`cameraOrientation`,[`cameraorientation`,`camori`])],F.prototype,`readCameraOrientation`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`cameraPitch`,void 0),e([x(`cameraPitch`,[`camerapitch`,`campitch`,`layer.cameraPitch`])],F.prototype,`readCameraPitch`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`cameraRoll`,void 0),e([x(`cameraRoll`,[`cameraroll`,`camroll`,`layer.cameraRoll`])],F.prototype,`readCameraRoll`,null),e([c({json:{write:!0},type:String})],F.prototype,`depthImage`,void 0),e([x(`depthImage`,[`depthimage`,`depthimg`])],F.prototype,`readDepthImage`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`elevation`,void 0),e([c({json:{write:!0},clonable:`reference`})],F.prototype,`elevationSource`,void 0),e([x(`elevationSource`,[`elevationsource`,`layer.effectiveElevationSource`])],F.prototype,`readElevationSource`,null),e([c({json:{name:`exposurestationid`,write:{target:`exposureStationId`}},type:String})],F.prototype,`exposureStationId`,void 0),e([c({type:Number,json:{write:!0}})],F.prototype,`farDistance`,void 0),e([x(`farDistance`,[`fardistance`,`fardist`,`layer.farDistance`])],F.prototype,`readFarDistance`,null),e([c(j(`focallength`))],F.prototype,`focalLength`,void 0),e([c({type:d,json:{name:`geometry`}})],F.prototype,`geometry`,null),e([S(`geometry`)],F.prototype,`writeGeometry`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`horizontalFieldOfView`,void 0),e([x(`horizontalFieldOfView`,[`horizontalfieldofview`,`hfov`,`layer.horizontalFieldOfView`])],F.prototype,`readHFOV`,null),e([c({json:{write:!0},type:String})],F.prototype,`imagePath`,void 0),e([x(`imagePath`,[`imagepath`])],F.prototype,`readImageURL`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`imageRotation`,void 0),e([x(`imageRotation`,[`imagerotation`,`imgrot`,`layer.imageRotation`])],F.prototype,`readImageRotation`,null),e([c()],F.prototype,`isHorizontal`,null),e([c()],F.prototype,`isInspection`,null),e([c()],F.prototype,`isNadir`,null),e([c()],F.prototype,`isOblique`,null),e([c()],F.prototype,`isSpherical`,null),e([c()],F.prototype,`location`,null),e([c(M())],F.prototype,`matrix`,null),e([c({json:{write:!0},type:String})],F.prototype,`name`,void 0),e([c({type:Number,json:{write:!0}})],F.prototype,`nearDistance`,void 0),e([x(`nearDistance`,[`neardistance`,`neardist`,`layer.nearDistance`])],F.prototype,`readNearDistance`,null),e([c({json:{write:!0,name:`objectid`},type:Number})],F.prototype,`objectId`,void 0),e([c({type:Number,json:{write:!0}})],F.prototype,`offsetFromStart`,void 0),e([x(`offsetFromStart`,[`offsetfromstart`])],F.prototype,`readOffsetFromStart`,null),e([c()],F.prototype,`orientationAccuracy`,void 0),e([x(`orientationAccuracy`,[`accuracy`,`orientationaccuracy`])],F.prototype,`readOrientationAccuracy`,null),e([S(`orientationAccuracy`)],F.prototype,`writeOrientationAccuracy`,null),e([C(y)],F.prototype,`orientedImageryType`,void 0),e([x(`orientedImageryType`,[`orientedimagerytype`,`oitype`,`layer.orientedImageryType`])],F.prototype,`readOIType`,null),e([c({type:Number,json:{write:!0,read:{source:`principalx`}}})],F.prototype,`principalX`,void 0),e([c({type:Number,json:{write:!0,read:{source:`principaly`}}})],F.prototype,`principalY`,void 0),e([c(M([0,0,0]))],F.prototype,`radial`,null),e([c({json:{write:(e,t)=>{e&&e.forEach(e=>t[e.fieldName]=e.value)}}})],F.prototype,`sequenceOrder`,void 0),e([c({type:Object})],F.prototype,`sourceMap`,void 0),e([c(M([0,0]))],F.prototype,`tangential`,null),e([c({type:Number,json:{write:!0}})],F.prototype,`verticalFieldOfView`,void 0),e([x(`verticalFieldOfView`,[`verticalfieldofview`,`vfov`,`layer.verticalFieldOfView`])],F.prototype,`readVFOV`,null),F=e([u(`esri.layers.orientedImagery.core.ExposurePoint`)],F);const I=F;export{I as default};
2
+ import{__decorate as e}from"tslib";import{id as t}from"../../../kernel.js";import{ClonableMixin as n}from"../../../core/Clonable.js";import r from"../../../core/Error.js";import{JSONSupport as i}from"../../../core/JSONSupport.js";import a from"../../../core/Logger.js";import{isAbsolute as o,addQueryParameter as s}from"../../../core/urlUtils.js";import{property as c,cast as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import d from"../../../geometry/Point.js";import{getGeometryZScaler as f}from"../../../geometry/support/zscale.js";import p from"./CameraOrientation.js";import m from"./cameraOrientationFactory.js";import{appendPrefixAndSuffix as h,getEffectiveElevationSource as g,getArcGISServerUrl as _,getMetersPerUnitOfSR as v,parseOrientationAccuracy as y,normalizeOrientationAccuracy as b,orientedImageryTypeMap as x}from"./utils.js";import{ltpToGeographic as S}from"../transformations/utils.js";import{reader as C}from"../../../core/accessorSupport/decorators/reader.js";import{writer as w}from"../../../core/accessorSupport/decorators/writer.js";import{enumeration as T}from"../../../core/accessorSupport/decorators/enumeration.js";function E(e){throw new r(`exposure-point:missing-default-value`,`a value for ${e} is missing in default properties`)}function D(e,t){throw new r(`exposure-point:missing-attribute-value`,`a value for ${e} is missing in attribute table`,{exposurePoint:t})}function O(e){return e.trim().replaceAll(`\\`,`/`).replace(/^\/+/,``)}function k(e,t){return o(e)?e:h(e,t.imagePathPrefix,t.imagePathSuffix)}function A(e,t){if(o(e))return e;let n=t.url?_(t.url):null;return n?`${n}/${O(e)}`:null}function j(e){return t?.findCredential(e.url)?.token??null}function M(e,t){let n=j(t);return n?s(e,`token`,n):e}const N=e=>({cast:e=>{let t=parseFloat(e);return Number.isFinite(t)?t:void 0},json:{name:e,write:{writer:(e,t,n)=>{t[n]=Number.isFinite(e)?e:void 0}}}}),P=e=>({cast:e=>typeof e==`string`?e.split(`;`).map(Number):e,json:{default:e,write:{writer:(e,t,n)=>{t[n]=e?.join(`;`)}}}}),F=`$virtualCacheDirectory:`,I=new Set([`location`]);let L=class extends n(i){constructor(e){super(e),this._geometry=null,this.cameraOrientation=null,this.elevation=null,this.elevationSource=null,this.name=null,this.sourceMap=null}read(e,t){let n={},{attributes:r,geometry:i}=e,a={};for(let e in r)I.has(e.toLowerCase())||(n[e.toLowerCase()]=r[e],a[e.toLowerCase()]=e);let o=e.layer??{},s=o.effectiveSequenceOrderField,c=null;s?.length&&(s.map(e=>e.fieldName).forEach(e=>{a[e.toLowerCase()]=e}),c=s.map(e=>({value:r[e.fieldName],...e}))),super.read({geometry:i,layer:o,sourceMap:a,sequenceOrder:c,...n},t)}write(e,t){let n=super.write(e,t),{sourceMap:r}=this;if(!r||!n)return n;let i={};for(let e in n){let t=r[e.toLowerCase()];t&&(i[t]=n[e])}return i}readCameraHeading(e,t){let{cameraheading:n,camheading:r,layer:i}=t;return n??r??i.cameraHeading}readCameraHeight(e,t){let{cameraheight:n,avghtag:r,layer:i}=t;return n??r??i.cameraHeight}readCamOffset(e,t){let{cameraoffset:n,camoffset:r}=t;return n?.split(`;`).map(Number)??r?.split(`;`).map(Number)??null}writeCameraOffset(e,t){e&&(t.cameraOffset=e.join(`;`))}readCameraOrientation(e,t){let{cameraorientation:n,camori:r}=t;return n??r}readCameraPitch(e,t){let{camerapitch:n,campitch:r,layer:i}=t;return n??r??i.cameraPitch}readCameraRoll(e,t){let{cameraroll:n,camroll:r,layer:i}=t;return n??r??i.cameraRoll}readDepthImage(e,t){let{depthimage:n,depthimg:r,layer:i}=t,a=n??r??null,{depthImagePathPrefix:o,depthImagePathSuffix:s}=i??{};return h(a,o,s)}readElevationSource(e,t){let{elevationsource:n,layer:r}=t,{demPathSuffix:i,demPathPrefix:a}=r;if(n){let e=this._parseIfJSON(n);return g(e,a,i)}return r.effectiveElevationSource}readFarDistance(e,t){let{fardistance:n,fardist:r,layer:i}=t;return n??r??i.farDistance}get geometry(){let e=this._geometry.clone();if(!e)return null;let{cameraOffset:t}=this;if(t){let[n,r,i]=t;e.x+=n,e.y+=r,e.z!=null&&i!=null&&(e.z+=i)}return e}set geometry(e){this._geometry=e}writeGeometry(e,t){t.geometry=this._geometry.toJSON()}readHFOV(e,t){let{horizontalfieldofview:n,hfov:r,layer:i}=t;return n??r??i.horizontalFieldOfView}readImageURL(e,t){let{connectionid:n,imagepath:r,layer:i}=t;if(r||D(`imagePath`,this),r.startsWith(F))return`${_(i.url)}/rest/directories/dsid_${r.replace(F,i.dataStoreID+`/`)}`;if(n==null)return k(r,i);let a=i.imageAccessPaths?.[n];if(!a)return k(r,i);let o=A(a,i);return o?M(`${o}/${O(r)}`,i):k(r,i)}readImageRotation(e,t){let{imagerotation:n,imgrot:r,layer:i}=t;return n??r??i.imageRotation}get isHorizontal(){return this.orientedImageryType===`horizontal`}get isInspection(){return this.orientedImageryType===`inspection`}get isNadir(){return this.orientedImageryType===`nadir`}get isOblique(){return this.orientedImageryType===`oblique`}get isSpherical(){return this.orientedImageryType?.includes(`360`)??!1}get location(){let{cameraOrientation:e,cameraHeight:t,elevation:n}=this;if(e){let{type:t,x:n,y:r,z:i,horizontalWKID:a,verticalWKID:o}=e,s=typeof a==`number`?{wkid:a}:{wkt:a};if(t===4){let{latitude:t,longitude:n,ellipsoidRadius:r,squaredEccentricity:i,properties:a}=e,{x:o,y:s,z:c}=a;return new d(S([o,s,c],[t,n,r,i]))}let c=new d({x:n,y:r,z:i,spatialReference:s}),l=o?f(`point`,{wkid:o},s):null;return l&&l(c),c}if(typeof t!=`number`)throw E(`cameraHeight`);let r=this.geometry.clone(),i=(n??0)+t/v(r.spatialReference);return r.z=r.hasZ?r.z:i,r}set matrix(e){e&&(e.length===9?this._set(`matrix`,e):(a.getLogger(this).warnOnce(`Ignoring rotation matrix because it doesn't have 9 values`,{value:e}),this._set(`matrix`,null)))}readNearDistance(e,t){let{neardistance:n,neardist:r,layer:i}=t;return n??r??i.nearDistance}readOffsetFromStart(e,t){return t.offsetfromstart??null}readOrientationAccuracy(e,t){let{accuracy:n,layer:r,orientationaccuracy:i}=t;return y(i===void 0?n:i)??b(r.orientationAccuracy)}writeOrientationAccuracy(e,t){e&&(t.orientationAccuracy=e.join(`;`))}readOIType(e,t){let{orientedimagerytype:n,oitype:r,camerapitch:i,campitch:a,layer:o}=t,s=x.read(n??r??o.orientedImageryType),c=i??a??o.cameraPitch;return s===`oblique`?c<10?`nadir`:`oblique`:s}set radial(e){if(!e)this._set(`radial`,[0,0,0]);else if(typeof e==`string`){let[t,n,r]=e.split(`;`).map(Number);this._set(`radial`,[t??0,n??0,r??0])}else this._set(`radial`,e)}set tangential(e){if(!e)this._set(`tangential`,[0,0]);else if(typeof e==`string`){let[t,n]=e.split(`;`).map(Number);this._set(`tangential`,[t??0,n??0])}else this._set(`tangential`,e)}readVFOV(e,t){let{verticalfieldofview:n,vfov:r,layer:i}=t;return n??r??i.verticalFieldOfView}_parseIfJSON(e){let t=null;try{t=JSON.parse(e)}catch(t){a.getLogger(this).error(`couldn't parse the given elevation source JSON`,e,t)}return t}clone(){let e=super.clone();return e._geometry=this._geometry.clone(),e}};e([c()],L.prototype,`_geometry`,void 0),e([c(N())],L.prototype,`a0`,void 0),e([c(N())],L.prototype,`a1`,void 0),e([c(N())],L.prototype,`a2`,void 0),e([c({type:Date,json:{write:{enabled:!0,target:`acquisitionDate`},name:`acquisitiondate`}})],L.prototype,`acquisitionDate`,void 0),e([c(N())],L.prototype,`b0`,void 0),e([c(N())],L.prototype,`b1`,void 0),e([c(N())],L.prototype,`b2`,void 0),e([c({type:Number,json:{write:!0,read:{source:[`cameraheading`,`camheading`,`layer.cameraHeading`]}}})],L.prototype,`cameraHeading`,void 0),e([C(`cameraHeading`)],L.prototype,`readCameraHeading`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`cameraHeight`,void 0),e([C(`cameraHeight`,[`cameraheight`,`avghtag`,`layer.cameraHeight`])],L.prototype,`readCameraHeight`,null),e([c()],L.prototype,`cameraOffset`,void 0),e([C(`cameraOffset`,[`cameraoffset`,`camoffset`])],L.prototype,`readCamOffset`,null),e([w(`cameraOffset`)],L.prototype,`writeCameraOffset`,null),e([c({json:{write:{writer:(e,t,n)=>{t[n]=e.toString()}}},type:p}),l(e=>e?m.getCameraOrientation(e):null)],L.prototype,`cameraOrientation`,void 0),e([C(`cameraOrientation`,[`cameraorientation`,`camori`])],L.prototype,`readCameraOrientation`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`cameraPitch`,void 0),e([C(`cameraPitch`,[`camerapitch`,`campitch`,`layer.cameraPitch`])],L.prototype,`readCameraPitch`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`cameraRoll`,void 0),e([C(`cameraRoll`,[`cameraroll`,`camroll`,`layer.cameraRoll`])],L.prototype,`readCameraRoll`,null),e([c({json:{write:!0},type:String})],L.prototype,`depthImage`,void 0),e([C(`depthImage`,[`depthimage`,`depthimg`])],L.prototype,`readDepthImage`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`elevation`,void 0),e([c({json:{write:!0},clonable:`reference`})],L.prototype,`elevationSource`,void 0),e([C(`elevationSource`,[`elevationsource`,`layer.effectiveElevationSource`])],L.prototype,`readElevationSource`,null),e([c({json:{name:`exposurestationid`,write:{target:`exposureStationId`}},type:String})],L.prototype,`exposureStationId`,void 0),e([c({type:Number,json:{write:!0}})],L.prototype,`farDistance`,void 0),e([C(`farDistance`,[`fardistance`,`fardist`,`layer.farDistance`])],L.prototype,`readFarDistance`,null),e([c(N(`focallength`))],L.prototype,`focalLength`,void 0),e([c({type:d,json:{name:`geometry`}})],L.prototype,`geometry`,null),e([w(`geometry`)],L.prototype,`writeGeometry`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`horizontalFieldOfView`,void 0),e([C(`horizontalFieldOfView`,[`horizontalfieldofview`,`hfov`,`layer.horizontalFieldOfView`])],L.prototype,`readHFOV`,null),e([c({json:{write:!0},type:String})],L.prototype,`imagePath`,void 0),e([C(`imagePath`,[`imagepath`])],L.prototype,`readImageURL`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`imageRotation`,void 0),e([C(`imageRotation`,[`imagerotation`,`imgrot`,`layer.imageRotation`])],L.prototype,`readImageRotation`,null),e([c()],L.prototype,`isHorizontal`,null),e([c()],L.prototype,`isInspection`,null),e([c()],L.prototype,`isNadir`,null),e([c()],L.prototype,`isOblique`,null),e([c()],L.prototype,`isSpherical`,null),e([c()],L.prototype,`location`,null),e([c(P())],L.prototype,`matrix`,null),e([c({json:{write:!0},type:String})],L.prototype,`name`,void 0),e([c({type:Number,json:{write:!0}})],L.prototype,`nearDistance`,void 0),e([C(`nearDistance`,[`neardistance`,`neardist`,`layer.nearDistance`])],L.prototype,`readNearDistance`,null),e([c({json:{write:!0,name:`objectid`},type:Number})],L.prototype,`objectId`,void 0),e([c({type:Number,json:{write:!0}})],L.prototype,`offsetFromStart`,void 0),e([C(`offsetFromStart`,[`offsetfromstart`])],L.prototype,`readOffsetFromStart`,null),e([c()],L.prototype,`orientationAccuracy`,void 0),e([C(`orientationAccuracy`,[`accuracy`,`orientationaccuracy`,`layer.orientationAccuracy`])],L.prototype,`readOrientationAccuracy`,null),e([w(`orientationAccuracy`)],L.prototype,`writeOrientationAccuracy`,null),e([T(x)],L.prototype,`orientedImageryType`,void 0),e([C(`orientedImageryType`,[`orientedimagerytype`,`oitype`,`layer.orientedImageryType`])],L.prototype,`readOIType`,null),e([c({type:Number,json:{write:!0,read:{source:`principalx`}}})],L.prototype,`principalX`,void 0),e([c({type:Number,json:{write:!0,read:{source:`principaly`}}})],L.prototype,`principalY`,void 0),e([c(P([0,0,0]))],L.prototype,`radial`,null),e([c({json:{write:(e,t)=>{e&&e.forEach(e=>t[e.fieldName]=e.value)}}})],L.prototype,`sequenceOrder`,void 0),e([c({type:Object})],L.prototype,`sourceMap`,void 0),e([c(P([0,0]))],L.prototype,`tangential`,null),e([c({type:Number,json:{write:!0}})],L.prototype,`verticalFieldOfView`,void 0),e([C(`verticalFieldOfView`,[`verticalfieldofview`,`vfov`,`layer.verticalFieldOfView`])],L.prototype,`readVFOV`,null),L=e([u(`esri.layers.orientedImagery.core.ExposurePoint`)],L);const R=L;export{R as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{JSONMap as e}from"../../../core/jsonMap.js";import{getMetersPerUnitForSR as t}from"../../../core/units.js";import{geographicToWebMercator as n}from"../../../geometry/support/webMercatorUtils.js";import r from"./cameraOrientationRegistry.js";import{isConstantElevation as i,ConstantElevation as a,ElevationSource as o}from"./ElevationSourceDefinitions.js";function s(e,t,n){return t&&(e=`${t}${e}`),n&&(e+=`${n}`),e}function c(e,t,n){let{url:r}=e;return r?(r=s(r,t,n),new o({...e,url:r})):null}function l(e,t,n){return e&&(i(e)?new a(e):c(e,t,n))}const u=new e({Minutes:`minutes`,Hours:`hours`,Days:`days`,Weeks:`weeks`,Months:`months`,Years:`years`}),d=new e({Feet:`feet`,Meter:`meter`}),f=new e({360:`360`,Horizontal:`horizontal`,Inspection:`inspection`,Nadir:`nadir`,Oblique:`oblique`,Terrestrial360Video:`terrestrial-360-video`,TerrestrialFrameVideo:`terrestrial-frame-video`,Aerial360Video:`aerial-360-video`,AerialFrameVideo:`aerial-frame-video`,"":null}),p=new Map;p.set(`1`,_),p.set(`3`,v),p.set(`2`,m),p.set(`4`,y);function m(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,omega:o,phi:s,kappa:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}const h=e=>{let t=e.map(e=>parseFloat(e)).filter(e=>!isNaN(e));if(t.length===e.length)return t};function g(e,t,n,r,i){let a=h(e),o=h(t),s=h(n),c=h(r);return{affineTransformations:a?.length===6?a:void 0,focalLength:a?.length===6?parseFloat(i):void 0,principalOffsetPoint:o?.length===2?o:[0,0],radialDistortionCoefficients:s?.length===3?s:[0,0,0],tangentialDistortionCoefficients:c?.length===2?c:[0,0]}}function _(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,heading:o,pitch:s,roll:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}function v(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,yaw:o,pitch:s,roll:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}function y(e){let[t,n,i,a,o,...s]=e.slice(1),c=p.get(o),l=r.get(o)?.constructor;return!c||!l?null:{latitude:t,longitude:n,ellipsoidRadius:i,squaredEccentricity:a,properties:new l(c([o,``,...s]))}}function b(e){if(!e)return null;let t=`${e}`.split(`|`);if(t.length===0)return null;let n=r.get(t[0]);if(!n)return null;let i=p.get(t[0]);if(!i)return null;let a=n.constructor;return new a(i(t))}function x(e){return Array.isArray(e)&&e?.length>5&&!e.some(isNaN)}function S(e){for(e=e.slice(0,8);e.length<8;)e.push(0);return e}function C(e){return e.spatialReference.isGeographic?n(e):e.clone()}function w(e){return e.isGeographic?1:t(e)}function T(e){let t=e.match(/^(.*)\/rest\/services\/(.*)$/);return t?t[1]:null}const E=`sequenceorder`;function D(e,t){return e?.length?e.map(({field:e,order:n})=>{let r=t.find(t=>t.name.toLowerCase()===e.toLowerCase());return r?{fieldName:r.name,sortOrder:n?.toLowerCase()===`desc`?`desc`:`asc`}:null}).filter(e=>e!=null):null}function O(e,t,n){let r=D(n,t);if(r?.length)return r;if(!e){let e=t.find(e=>e.name.toLocaleLowerCase()===E.toLocaleLowerCase());return e?[{fieldName:e.name,sortOrder:`asc`}]:null}let i=t.find(t=>t.name.toLowerCase()===e.trim().toLowerCase());return i?[{fieldName:i.name,sortOrder:`asc`}]:null}export{s as appendPrefixAndSuffix,C as convertGeographicToWebMercator,b as createCameraOrientation,E as defaultSequenceOrderField,T as getArcGISServerUrl,l as getEffectiveElevationSource,w as getMetersPerUnitOfSR,x as isOrientationAccuracy,f as orientedImageryTypeMap,S as padAccuracyArray,O as parseSequenceOrderFields,c as processElevationSource,u as timeIntervalUnitTypeMap,p as transformersRegistry,d as verticalMeasurementTypeMap};
2
+ import{JSONMap as e}from"../../../core/jsonMap.js";import{getMetersPerUnitForSR as t}from"../../../core/units.js";import{geographicToWebMercator as n}from"../../../geometry/support/webMercatorUtils.js";import r from"./cameraOrientationRegistry.js";import{isConstantElevation as i,ConstantElevation as a,ElevationSource as o}from"./ElevationSourceDefinitions.js";function s(e,t,n){return t&&(e=`${t}${e}`),n&&(e+=`${n}`),e}function c(e,t,n){let{url:r}=e;return r?(r=s(r,t,n),new o({...e,url:r})):null}function l(e,t,n){return e&&(i(e)?new a(e):c(e,t,n))}const u=new e({Minutes:`minutes`,Hours:`hours`,Days:`days`,Weeks:`weeks`,Months:`months`,Years:`years`}),d=new e({Feet:`feet`,Meter:`meter`}),f=new e({360:`360`,Horizontal:`horizontal`,Inspection:`inspection`,Nadir:`nadir`,Oblique:`oblique`,Terrestrial360Video:`terrestrial-360-video`,TerrestrialFrameVideo:`terrestrial-frame-video`,Aerial360Video:`aerial-360-video`,AerialFrameVideo:`aerial-frame-video`,"":null}),p=new Map;p.set(`1`,_),p.set(`3`,v),p.set(`2`,m),p.set(`4`,y);function m(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,omega:o,phi:s,kappa:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}const h=e=>{let t=e.map(e=>parseFloat(e)).filter(e=>!isNaN(e));if(t.length===e.length)return t};function g(e,t,n,r,i){let a=h(e),o=h(t),s=h(n),c=h(r);return{affineTransformations:a?.length===6?a:void 0,focalLength:a?.length===6?parseFloat(i):void 0,principalOffsetPoint:o?.length===2?o:[0,0],radialDistortionCoefficients:s?.length===3?s:[0,0,0],tangentialDistortionCoefficients:c?.length===2?c:[0,0]}}function _(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,heading:o,pitch:s,roll:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}function v(e){let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,v,y,b,x,S,C]=e.slice(1);return{horizontalWKID:t,verticalWKID:n,x:r,y:i,z:a,yaw:o,pitch:s,roll:c,...g([l,u,d,f,p,m],[_,v],[y,b,x],[S,C],h)}}function y(e){let[t,n,i,a,o,...s]=e.slice(1),c=p.get(o),l=r.get(o)?.constructor;return!c||!l?null:{latitude:t,longitude:n,ellipsoidRadius:i,squaredEccentricity:a,properties:new l(c([o,``,...s]))}}function b(e){if(!e)return null;let t=`${e}`.split(`|`);if(t.length===0)return null;let n=r.get(t[0]);if(!n)return null;let i=p.get(t[0]);if(!i)return null;let a=n.constructor;return new a(i(t))}function x(e){if(!Array.isArray(e)||e.length<=5)return!1;for(let t of e)if(typeof t!=`number`||!Number.isFinite(t)||t<0)return!1;return!0}function S(e){for(e=e.slice(0,8);e.length<8;)e.push(0);return e}function C(e){return x(e)?S(e):null}function w(e){if(typeof e!=`string`)return null;let t=e.split(`;`);return t.some(e=>!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(e.trim()))?null:C(t.map(e=>Number(e.trim())))}function T(e){return e.spatialReference.isGeographic?n(e):e.clone()}function E(e){return e.isGeographic?1:t(e)}function D(e){let t=e.match(/^(.*)\/rest\/services\/(.*)$/);return t?t[1]:null}const O=`sequenceorder`;function k(e,t){return e?.length?e.map(({field:e,order:n})=>{let r=t.find(t=>t.name.toLowerCase()===e.toLowerCase());return r?{fieldName:r.name,sortOrder:n?.toLowerCase()===`desc`?`desc`:`asc`}:null}).filter(e=>e!=null):null}function A(e,t,n){let r=k(n,t);if(r?.length)return r;if(!e){let e=t.find(e=>e.name.toLocaleLowerCase()===O.toLocaleLowerCase());return e?[{fieldName:e.name,sortOrder:`asc`}]:null}let i=t.find(t=>t.name.toLowerCase()===e.trim().toLowerCase());return i?[{fieldName:i.name,sortOrder:`asc`}]:null}export{s as appendPrefixAndSuffix,T as convertGeographicToWebMercator,b as createCameraOrientation,O as defaultSequenceOrderField,D as getArcGISServerUrl,l as getEffectiveElevationSource,E as getMetersPerUnitOfSR,x as isOrientationAccuracy,C as normalizeOrientationAccuracy,f as orientedImageryTypeMap,S as padAccuracyArray,w as parseOrientationAccuracy,A as parseSequenceOrderFields,c as processElevationSource,u as timeIntervalUnitTypeMap,p as transformersRegistry,d as verticalMeasurementTypeMap};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{property as n,subclass as r}from"../../../core/accessorSupport/decorators.js";import i from"../../../geometry/Point.js";import{GeospatialPDFWorkerClient as a}from"../../geospatialPDF/GeospatialPDFWorkerClient.js";import o from"./BaseRaster.js";import s from"../../support/PixelBlock.js";import c from"../../support/RasterInfo.js";let l=class extends o{constructor(){super(...arguments),this._workerClient=new a,this._extent=null,this._ctm=null,this._neatlineRing=[],this._width=0,this._height=0,this._tileSize=512,this.datasetFormat=`PDF`,this.frame=null,this.neatlineExtent=null,this.page=1,this.tileType=`Raster`}destroy(){this._workerClient.destroy(),this.neatlineExtent=null,this._extent=null,this._ctm=null,this._neatlineRing=[]}async fetchRawTile(e,t,n,r={}){let i=this._extent,a=this._ctm,o=this.getTileExtentPDF(e,t,n);return o.intersects(i)?u(await this._workerClient.render(o,this._tileSize,this._tileSize,a,this._neatlineRing,r)):null}async _open(e){if(!this.url)throw new t(`geospatial-pdf-raster:open`,`GeospatialPDFRaster requires a url.`);let n=await this._workerClient.loadPDF({url:this.url,page:this.page},e);this.frame=n.frame;let r=this.frame.outerExtentMediabox;if(!r)throw new t(`geospatial-pdf-raster:open`,`Failed to compute Geospatial PDF extent.`);this.neatlineExtent=n.fullExtent,this._extent=r,this._ctm=this.frame.ctm,this._neatlineRing=this.frame.sourceMediaBoxPolygon.rings[0];let i=d(this.frame.ctm,this._extent);this._width=i[0],this._height=i[1];let a={x:r.width/this._width,y:r.height/this._height},o=new c({width:this._width,height:this._height,pixelType:`u8`,extent:r,pixelSize:a,spatialReference:r.spatialReference,bandCount:3,keyProperties:{DataType:`Processed`}});this.createRemoteDatasetStorageInfo(o,this._tileSize,this._tileSize),this._set(`rasterInfo`,o),this.updateTileInfo()}getTileExtentPDF(e,t,n){let r=this._extent,a=2**e,o=r.width/this._width*a,s=r.height/this._height*a,c=new i({x:r.xmin,y:r.ymax});return this.getTileExtent({x:o,y:s},t,n,c,r.spatialReference,[512,512])}};e([n({type:String,json:{write:!0}})],l.prototype,`datasetFormat`,void 0),e([n({constructOnly:!0})],l.prototype,`page`,void 0),e([n({readOnly:!0})],l.prototype,`tileType`,void 0),l=e([r(`esri.layers.raster.datasets.GeospatialPDFRaster`)],l);function u(e){return new s({width:e.width,height:e.height,pixelType:`u8`,pixels:[e.red,e.green,e.blue],mask:e.mask})}function d(e,n){let[r,i,a,o]=e,s=r*o-i*a;if(!Number.isFinite(s)||s===0)throw new t(`geospatial-pdf-raster:open`,`Failed to derive raster dimensions from an invalid PDF CTM.`);let c=10*Math.hypot(o,i)/Math.abs(s),l=10*Math.hypot(a,r)/Math.abs(s),u=Math.max(1,Math.ceil(n.width*c)),d=Math.max(1,Math.ceil(n.height*l));if(!Number.isFinite(u)||!Number.isFinite(d))throw new t(`geospatial-pdf-raster:open`,`PDF CTM produced invalid raster dimensions.`);return[u,d]}export{l as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{property as n,subclass as r}from"../../../core/accessorSupport/decorators.js";import i from"../../../geometry/Point.js";import{GeospatialPDFWorkerClient as a}from"../../geospatialPDF/GeospatialPDFWorkerClient.js";import o from"./BaseRaster.js";import s from"../../support/PixelBlock.js";import c from"../../support/RasterInfo.js";let l=class extends o{constructor(){super(...arguments),this._workerClient=new a,this._extent=null,this._ctm=null,this._neatlineRing=[],this._width=0,this._height=0,this._tileSize=512,this.datasetFormat=`PDF`,this.frame=null,this.neatlineExtent=null,this.page=1,this.tileType=`Raster`}destroy(){this._workerClient.destroy(),this.neatlineExtent=null,this._extent=null,this._ctm=null,this._neatlineRing=[]}async fetchRawTile(e,t,n,r={}){let i=this._extent,a=this._ctm,o=this.getTileExtentPDF(e,t,n);return o.intersects(i)?d(await this._workerClient.render(o,this._tileSize,this._tileSize,a,this._neatlineRing,r)):null}async _open(e){if(!this.url)throw new t(`geospatial-pdf-raster:open`,`GeospatialPDFRaster requires a url.`);let n=await this._workerClient.loadPDF({url:this.url,page:this.page},e);this.frame=n.frame;let r=this.frame.outerExtentMediabox;if(!r)throw new t(`geospatial-pdf-raster:open`,`Failed to compute Geospatial PDF extent.`);this.neatlineExtent=n.fullExtent,this._extent=r,this._ctm=this.frame.ctm,this._neatlineRing=this.frame.sourceMediaBoxPolygon.rings[0];let i=f(this.frame.ctm,this._extent);this._width=i[0],this._height=i[1];let a={x:r.width/this._width,y:r.height/this._height},o=new c({width:this._width,height:this._height,pixelType:`u8`,extent:r,pixelSize:a,spatialReference:r.spatialReference,bandCount:3,keyProperties:{DataType:`Processed`}});this.createRemoteDatasetStorageInfo(o,this._tileSize,this._tileSize),this._set(`rasterInfo`,o),this.updateTileInfo()}getTileExtentPDF(e,t,n){let r=this._extent,a=2**e,o=r.width/this._width*a,s=r.height/this._height*a,c=new i({x:r.xmin,y:r.ymax});return this.getTileExtent({x:o,y:s},t,n,c,r.spatialReference,[512,512])}};e([n({type:String,json:{write:!0}})],l.prototype,`datasetFormat`,void 0),e([n({constructOnly:!0})],l.prototype,`page`,void 0),e([n({readOnly:!0})],l.prototype,`tileType`,void 0),l=e([r(`esri.layers.raster.datasets.GeospatialPDFRaster`)],l);const u=l;function d(e){return new s({width:e.width,height:e.height,pixelType:`u8`,pixels:[e.red,e.green,e.blue],mask:e.mask})}function f(e,n){let[r,i,a,o]=e,s=r*o-i*a;if(!Number.isFinite(s)||s===0)throw new t(`geospatial-pdf-raster:open`,`Failed to derive raster dimensions from an invalid PDF CTM.`);let c=10*Math.hypot(o,i)/Math.abs(s),l=10*Math.hypot(a,r)/Math.abs(s),u=Math.max(1,Math.ceil(n.width*c)),d=Math.max(1,Math.ceil(n.height*l));if(!Number.isFinite(u)||!Number.isFinite(d))throw new t(`geospatial-pdf-raster:open`,`PDF CTM produced invalid raster dimensions.`);return[u,d]}export{u as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import a from"../../../geometry/Extent.js";import o from"../../../geometry/Point.js";import s from"../../../geometry/SpatialReference.js";import c from"./BaseRaster.js";import{parse as l}from"./DBFParser.js";import{parsePAMInfo as u,parseSpatialReference as d}from"./pamParser.js";import{parseSignature as f,getPyramidIFDs as p,getMaskIFDs as m,parseIFD as h,parseFieldValues as g,isBSQConfig as _,getTagNumericValues as v,getTagFirstNumericValue as y,getImageInfo as b}from"../formats/tiffParser.js";import{tiffTags as x,geoKeys as S}from"../formats/tiffTag.js";import{estimateStatisticsFromHistograms as C}from"../functions/stretchUtils.js";import w from"../transforms/PolynomialTransform.js";import T from"../../support/RasterInfo.js";import E from"../../support/RasterStorageInfo.js";import D from"../../../rest/support/FeatureSet.js";let O=class extends c{constructor(){super(...arguments),this._files=null,this._headerInfo=null,this._bufferSize=1048576,this._chunkSize=10*1024**2,this.datasetFormat=`TIFF`}async fetchRawTile(e,t,n,r={}){if(!this._headerInfo?.isSupported||this.isBlockOutside(e,t,n))return null;let i=await this._fetchRawTiffTile(e,t,n,!1,r);if(i!=null&&this._headerInfo.hasMaskBand){let a=await this._fetchRawTiffTile(e,t,n,!0,r);a!=null&&a.pixels[0]instanceof Uint8Array&&(i.mask=a.pixels[0])}return i}async _open(e){let r=e?e.signal:null,{data:i}=await this.request(this.url,{range:{from:0,to:this._bufferSize},responseType:`array-buffer`,signal:r});if(!i)throw new t(`tiffraster:open`,`failed to open url `+this.url);this.datasetName=this.url.slice(this.url.lastIndexOf(`/`)+1,this.url.lastIndexOf(`.`));let{littleEndian:a,firstIFDPos:o,isBigTiff:s}=f(i),c=[],l={fileChunk:i,posIFD:o,fileOffset:0};await this._readIFDs(c,l,a,s?8:4,r);let{imageInfo:u,rasterInfo:d}=k(c),h=p(c),g=m(c);if(this._headerInfo={littleEndian:a,isBigTiff:s,ifds:c,pyramidIFDs:h,maskIFDs:g,...u},this._set(`rasterInfo`,d),!u.isSupported)throw new t(`tiffraster:open`,`this tiff is not supported: `+u.message);if(!u.tileWidth)throw new t(`tiffraster:open`,`none-tiled tiff is not optimized for access, convert to COG and retry.`);d.isPseudoSpatialReference&&n.getLogger(this).warn(`The spatial reference for this tiff is unsupported. Only EPSG spatial reference codes and Esri WKTs are supported.`);let _=c[0].get(`PREDICTOR`)?.values?.[0];if(c[0].get(`SAMPLEFORMAT`)?.values?.[0]===3&&_===2)throw new t(`tiffraster:open`,`unsupported horizontal difference encoding. Predictor=3 is supported for floating point data`);let{skipMapInfo:v,skipExtensions:y=[]}=this.ioConfig;if(!y.includes(`aux.xml`)&&!v){let t=await this._fetchAuxiliaryMetaData(e);t!=null&&A(t,d)}!y.includes(`vat.dbf`)&&d.bandCount===1&&d.pixelType===`u8`&&!v&&(d.attributeTable=await this._fetchAuxiliaryTable(e),d.attributeTable!=null&&(d.keyProperties.DataType=`thematic`)),v&&this.updateImageSpaceRasterInfo(d),this.updateTileInfo()}async _validateOrFetchHeaderBuffer(e,t){let{fileChunk:n,fileOffset:r,posIFD:i}=e;return(i+8>=n.byteLength||i<0)&&(r=i+r,n=(await this.request(this.url,{range:{from:r,to:r+this._bufferSize},responseType:`array-buffer`,signal:t})).data,i=0),{fileChunk:n,fileOffset:r,posIFD:i}}async _readIFDs(e,n,r,i=4,a){if(!n.posIFD)return null;n=await this._validateOrFetchHeaderBuffer(n,a);let o=await this._readIFD(n,r,x,i,a);if(!o?.ifd)throw new t(`tiffraster:open`,`cannot parse tiff header. failed to open url `+this.url);if(e.push(o.ifd),!o.nextIFD)return null;n.posIFD=o.nextIFD-n.fileOffset,await this._readIFDs(e,n,r,i,a)}async _readIFD(e,t,n=x,r=4,i){let{fileChunk:a,posIFD:o,fileOffset:s}=e;if(!e.fileChunk)return null;let c=h(a,t,o,s,n,r);if(c.success){let e=[];if(c.ifd?.forEach(t=>{t.values||e.push(t)}),e.length>0&&await this._fillOffsets(e,t,c.nextIFD,i),c.ifd?.has(`GEOKEYDIRECTORY`)){let e=c.ifd.get(`GEOKEYDIRECTORY`),n=e?.values;if(n&&n.length>4){let r=n[0]+`.`+n[1]+`.`+n[2];o=e.valueOffset+6-s;let c=await this._validateOrFetchHeaderBuffer({fileChunk:a,posIFD:o,fileOffset:s},i);e.data=(await this._readIFD(c,t,S,2,i))?.ifd,e.data&&e.data.set(`GEOTIFFVersion`,{id:0,type:2,valueCount:1,valueOffset:null,values:[r]})}}return c}return c.requiredBufferSize?(a=(await this.request(this.url,{range:{from:s,to:s+o+c.requiredBufferSize+8},responseType:`array-buffer`,signal:i})).data,a.byteLength<o+c.requiredBufferSize?null:(e.fileChunk=a,e.fileOffset=s,this._readIFD(e,t,n,r,i))):null}async _fillOffsets(e,t,n,r){let i=e.filter(e=>e.offlineOffsetSize!=null);if(i.length===0)return;let a=i.map(e=>e.offlineOffsetSize),o=Math.min.apply(null,a.map(e=>e[0])),s=Math.max.apply(null,a.map(e=>e[0]+e[1])),c=a.length===1||s-o<=this._bufferSize;if(!c&&a.length>1&&(a.sort((e,t)=>e[0]-t[0]),c=a.reduce((e,t)=>e===t[0]?t[0]+t[1]:0,a[0][0])===s),c){let e=await this._fetchOffsets(o,Math.max(s,o+this._bufferSize),r);i.forEach(n=>g(e,t,n,o));return}let l=i.map(async e=>{let n=e.offlineOffsetSize,i=await this._fetchOffsets(n[0],n[1]+n[0],r);g(i,t,e,n[0])});await Promise.all(l)}async _fetchOffsets(e,t,n){let r=[],i=this._chunkSize,a=Math.ceil((t-e)/i),o=e;for(let e=0;e<a;e++)r.push(this.request(this.url,{range:{from:o,to:e===a-1?t:o+i-1},responseType:`array-buffer`,signal:n})),o+=i;let s=await Promise.all(r);if(a===1)return s[0].data;let c=new Uint8Array(t-e+1);for(let e=0;e<a;e++)c.set(new Uint8Array(s[e].data),e*i);return c.buffer}async _fetchRawTiffTile(e,t,n,r,i={}){let a=this._getTileLocation(e,t,n,r);if(!a)return null;let{ranges:o,actualTileWidth:s,actualTileHeight:c,ifd:l}=a,u=o.map(e=>this.request(this.url,{range:e,responseType:`array-buffer`,signal:i.signal})),d=await Promise.all(u),f=d.map(e=>e.data.byteLength).reduce((e,t)=>e+t),p=d.length===1?d[0].data:new ArrayBuffer(f),m=[0],h=[0];if(d.length>1){let e=new Uint8Array(p);for(let t=0,n=0;t<d.length;t++){let r=d[t].data;e.set(new Uint8Array(r),n),m[t]=n,n+=r.byteLength,h[t]=r.byteLength}}let{blockWidth:g,blockHeight:_}=this.getBlockWidthHeight(e),v=await this.decodePixelBlock(p,{format:`tiff`,customOptions:{headerInfo:this._headerInfo,ifd:l,offsets:m,sizes:h},width:g,height:_,planes:null,pixelType:null});if(v==null)return null;if(s!==g||c!==_){let e=v.mask;if(e)for(let t=0;t<_;t++){let n=t*g;if(t<c)for(let t=s;t<g;t++)e[n+t]=0;else for(let t=0;t<g;t++)e[n+t]=0}else{e=new Uint8Array(g*_),v.mask=e;for(let t=0;t<c;t++){let n=t*g;for(let t=0;t<s;t++)e[n+t]=1}}}return v}_getTileLocation(e,t,n,r=!1){let{firstPyramidLevel:i,blockBoundary:a}=this.rasterInfo.storageInfo,o=e===0?0:e-(i-1),{_headerInfo:s}=this;if(!s)return null;let c=r?s.maskIFDs[o]:o===0?s.ifds[0]:s.pyramidIFDs[o-1];if(!c)return null;let l=_(c,s),u=v(c,`TILEOFFSETS`),d=v(c,`TILEBYTECOUNTS`);if(!u?.length||!d?.length)return null;let{minRow:f,minCol:p,maxRow:m,maxCol:h}=a[o];if(t>m||n>h||t<f||n<p)return null;let g=y(c,`IMAGEWIDTH`),b=y(c,`IMAGELENGTH`),x=y(c,`TILEWIDTH`),S=y(c,`TILELENGTH`),C=[];if(l){let{bandCount:e}=this.rasterInfo;for(let r=0;r<e;r++){let e=r*(m+1)*(h+1)+t*(h+1)+n;C[r]={from:u[e],to:u[e]+d[e]-1}}}else{let e=t*(h+1)+n;C.push({from:u[e],to:u[e]+d[e]-1})}for(let e=0;e<C.length;e++)if(C[e].from==null||!C[e].to||C[e].to<0)return null;return{ranges:C,ifd:c,actualTileWidth:n===h&&g%x||x,actualTileHeight:t===m&&b%S||S}}async _fetchAuxiliaryMetaData(e){try{let{data:t}=await this.request(this.url+`.aux.xml`,{responseType:`xml`,signal:e?.signal});return u(t)}catch{return null}}async _fetchAuxiliaryTable(e){try{let{data:t}=await this.request(this.url+`.vat.dbf`,{responseType:`array-buffer`,signal:e?.signal}),n=l(t);return n?.recordSet?D.fromJSON(n.recordSet):null}catch{return null}}};e([r()],O.prototype,`_files`,void 0),e([r()],O.prototype,`_headerInfo`,void 0),e([r()],O.prototype,`_bufferSize`,void 0),e([r()],O.prototype,`_chunkSize`,void 0),e([r({type:String,json:{write:!0}})],O.prototype,`datasetFormat`,void 0),O=e([i(`esri.layers.raster.datasets.TIFFRaster`)],O);function k(e){let t=b(e),{width:n,height:r,tileWidth:i,tileHeight:c,planes:l,pixelType:u,compression:f,firstPyramidLevel:p,maximumPyramidLevel:m,pyramidBlockWidth:h,pyramidBlockHeight:g,pyramidResolutions:_,tileBoundary:v,affine:y,metadata:x,colormap:S}=t,C=t.extent.spatialReference?.wkt||t.extent.spatialReference?.wkid,D=d(C),O=!!t.isPseudoGeographic;D??=(O=!0,new s({wkid:3857}));let k=new a({...t.extent,spatialReference:D}),A=k?new o({x:k.xmin,y:k.ymax,spatialReference:D}):new o({x:0,y:0}),j=new E({blockWidth:i,blockHeight:c,pyramidBlockWidth:h,pyramidBlockHeight:g,compression:f,origin:A,firstPyramidLevel:p,maximumPyramidLevel:m,pyramidResolutions:_,blockBoundary:v}),M=new o({x:(k.xmax-k.xmin)/n,y:(k.ymax-k.ymin)/r,spatialReference:D}),N=x?{BandProperties:x.bandProperties,DataType:x.dataType}:{},P=new T({width:n,height:r,bandCount:l,pixelType:u,pixelSize:M,storageInfo:j,spatialReference:D,isPseudoSpatialReference:O,keyProperties:N,extent:k,colormap:S,statistics:x?x.statistics:null});if(y?.length&&(P.nativeExtent=new a({xmin:-.5,ymin:.5-r,xmax:n-.5,ymax:.5,spatialReference:D}),P.transform=new w({polynomialOrder:1,forwardCoefficients:[y[2]+y[0]/2,y[5]-y[3]/2,y[0],y[3],-y[1],-y[4]]}),P.extent=P.transform.forwardTransform(P.nativeExtent),P.pixelSize=new o({x:(k.xmax-k.xmin)/n,y:(k.ymax-k.ymin)/r,spatialReference:D}),j.origin.x=-.5,j.origin.y=.5),_){let{x:e,y:t}=P.pixelSize;_.forEach(n=>{n.x*=e,n.y*=t})}return{imageInfo:t,rasterInfo:P}}function A(e,t){if(t.statistics=e.statistics??t.statistics,t.histograms=e.histograms,e.histograms&&t.statistics==null&&(t.statistics=C(e.histograms)),e.transform&&t.transform==null){t.transform=e.transform,t.nativeExtent=t.extent;let n=t.transform.forwardTransform(t.nativeExtent);t.pixelSize=new o({x:(n.xmax-n.xmin)/t.width,y:(n.ymax-n.ymin)/t.height,spatialReference:t.spatialReference}),t.extent=n}t.isPseudoSpatialReference&&e.spatialReference&&(t.spatialReference=e.spatialReference,t.extent.spatialReference=t.nativeExtent.spatialReference=t.storageInfo.origin.spatialReference=t.spatialReference)}const j=O;export{j as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import a from"../../../geometry/Extent.js";import o from"../../../geometry/Point.js";import s from"../../../geometry/SpatialReference.js";import c from"./BaseRaster.js";import{parse as l}from"./DBFParser.js";import{parsePAMInfo as u,parseSpatialReference as d}from"./pamParser.js";import{parseSignature as f,getPyramidIFDs as p,getMaskIFDs as m,parseIFD as h,parseGeoKeyDirectory as g,parseXMP as _,parseFieldValues as v,isBSQConfig as y,getTagNumericValues as b,getTagFirstNumericValue as x,getImageInfo as S}from"../formats/tiffParser.js";import{tiffTags as C,ifdTags as w}from"../formats/tiffTag.js";import{estimateStatisticsFromHistograms as T}from"../functions/stretchUtils.js";import E from"../transforms/PolynomialTransform.js";import D from"../../support/RasterInfo.js";import O from"../../support/RasterStorageInfo.js";import k from"../../../rest/support/FeatureSet.js";const A=`none-tiled tiff is not optimized for access, convert to COG and retry.`;let j=class extends c{constructor(){super(...arguments),this._files=null,this._headerInfo=null,this._bufferSize=1048576,this._chunkSize=10*1024**2,this._fileSize=-1,this._headerChunks=[],this.datasetFormat=`TIFF`}async fetchRawTile(e,t,n,r={}){if(!this._headerInfo?.isSupported||this.isBlockOutside(e,t,n))return null;let i=await this._fetchRawTiffTile(e,t,n,!1,r);if(i!=null&&this._headerInfo.hasMaskBand){let a=await this._fetchRawTiffTile(e,t,n,!0,r);a!=null&&a.pixels[0]instanceof Uint8Array&&(i.mask=a.pixels[0])}return i}async _open(e){this.datasetName=this.url.slice(this.url.lastIndexOf(`/`)+1,this.url.lastIndexOf(`.`)),await this._readHeader(e?.signal);let{rasterInfo:t}=this,{skipMapInfo:n,skipExtensions:r=[]}=this.ioConfig;if(!r.includes(`aux.xml`)&&!n){let n=await this._fetchAuxiliaryMetaData(e);n!=null&&N(n,t)}!r.includes(`vat.dbf`)&&t.bandCount===1&&t.pixelType===`u8`&&!n&&(t.attributeTable=await this._fetchAuxiliaryTable(e),t.attributeTable!=null&&(t.keyProperties.DataType=`thematic`)),n&&this.updateImageSpaceRasterInfo(t),this.updateTileInfo()}async _readHeader(e){try{let n=await this._fetchHeaderData(0,this._bufferSize,e);if(!n)throw new t(`tiffraster:open`,`failed to open url `+this.url);let{littleEndian:r,firstIFDPos:i,isBigTiff:a}=f(n),o=[],s={fileChunk:n,posIFD:i,fileOffset:0};await this._readIFDs(o,s,r,a?8:4,e);let{imageInfo:c,rasterInfo:l}=M(o),u=p(o),d=m(o);this._headerInfo={littleEndian:r,isBigTiff:a,ifds:o,pyramidIFDs:u,maskIFDs:d,...c},this._set(`rasterInfo`,l),this._validateHeader()}finally{this._headerChunks.length=0}}_validateHeader(){let e=this._headerInfo;if(!e.isSupported)throw new t(`tiffraster:open`,`this tiff is not supported: `+e.message);if(!e.tileWidth||!e.tileHeight)throw new t(`tiffraster:open`,A);this.rasterInfo.isPseudoSpatialReference&&n.getLogger(this).warn(`The spatial reference for this tiff is unsupported. Only EPSG spatial reference codes and Esri WKTs are supported.`);let r=e.ifds[0],i=r.get(`PREDICTOR`)?.values?.[0];if(r.get(`SAMPLEFORMAT`)?.values?.[0]===3&&i===2)throw new t(`tiffraster:open`,`unsupported horizontal difference encoding. Predictor=3 is supported for floating point data`)}async _fetchHeaderData(e,n,r){let i=this._getCachedHeaderData(e,n);if(i)return i;let a=Math.floor(e/this._bufferSize)*this._bufferSize,o=a+Math.max(1,Math.ceil((n-a)/this._bufferSize))*this._bufferSize,s=this._getMissingHeaderRanges(a,o).map(async e=>{let{from:t,to:n}=e,i=await this._fetchOffsets(t,n,r),a=this._fileSize;return{chunk:i,fileOffset:t,isEOF:a>0?t+i.byteLength>=a:i.byteLength<n-t+1}}),c=await Promise.all(s);this._headerChunks.push(...c),this._headerChunks.sort((e,t)=>e.fileOffset-t.fileOffset);let l=this._getCachedHeaderData(e,n);if(!l)throw new t(`tiffraster:open`,`failed to fetch byte range ${e}-${n} from ${this.url}`);return l}_getCachedHeaderData(e,t){let n=[],r=e;for(let{chunk:i,fileOffset:a,isEOF:o}of this._headerChunks){if(a+i.byteLength-1<r)continue;if(a>r)return null;let s=r-a,c=Math.min(t-a+1,i.byteLength);if(n.push({chunk:i,start:s,end:c}),r=a+c,r>t||o&&c===i.byteLength){let t=new Uint8Array(r-e),i=0;for(let e of n){let n=new Uint8Array(e.chunk,e.start,e.end-e.start);t.set(n,i),i+=n.byteLength}return t.buffer}}return null}_getMissingHeaderRanges(e,t){let n=[],r=(e,t)=>{let r=Math.floor(e/this._bufferSize)*this._bufferSize,i=Math.ceil(t/this._bufferSize)*this._bufferSize;n.push({from:r,to:i})},i=e;for(let{chunk:e,fileOffset:a,isEOF:o}of this._headerChunks){let s=a+e.byteLength-1;if(!(s<i)&&(a>i&&r(i,Math.min(a-1,t)),i=Math.max(i,s+1),i>t||o))return n}return i<=t&&r(i,t),n}async _validateOrFetchHeaderBuffer(e,n){let{fileChunk:r,fileOffset:i,posIFD:a}=e;if(a+8>=r.byteLength||a<0){if(i=a+i,i<0)throw new t(`tiffraster:open`,`invalid IFD position ${i}. failed to open url ${this.url}`);r=await this._fetchHeaderData(i,i+this._bufferSize/2,n),a=0}return{fileChunk:r,fileOffset:i,posIFD:a}}async _readIFDs(e,n,r,i=4,a){if(!n.posIFD)return null;n=await this._validateOrFetchHeaderBuffer(n,a);let o=await this._readIFD(n,r,C,i,a);if(!o?.ifd)throw new t(`tiffraster:open`,`cannot parse tiff header. failed to open url `+this.url);if(e.push(o.ifd),!o.nextIFD)return null;n.posIFD=o.nextIFD-n.fileOffset,await this._readIFDs(e,n,r,i,a)}async _readIFD(e,n,r=C,i=4,a){let{fileChunk:o,posIFD:s,fileOffset:c}=e;if(!e.fileChunk)return null;let l=h(o,n,s,c,r,i);if(l.success){let{ifd:e}=l;if(!e)throw new t(`tiffraster:open`,`cannot parse tiff header. failed to open url `+this.url);if(!this.ioConfig.loadFullMetadata&&r===C&&(!e.has(`TILEWIDTH`)||!e.has(`TILELENGTH`)))throw new t(`tiffraster:open`,A);let i=[];e.forEach(e=>{e.values||i.push(e)}),i.length>0&&await this._fillOffsets(i,n,l.nextIFD,a),g(e),_(e);for(let[t,r]of w){let i=e.get(t),l=i?.data!=null&&Array.from(i.data.values()).some(e=>e.values==null&&e.offlineOffsetSize!=null);if(i&&(!i.data||l)){s=i.valueOffset-c;let e=await this._validateOrFetchHeaderBuffer({fileChunk:o,posIFD:s,fileOffset:c},a);i.data=(await this._readIFD(e,n,r,4,a))?.ifd}}return l}return l.requiredBufferSize?(o=await this._fetchHeaderData(c,c+s+l.requiredBufferSize+8,a),o.byteLength<s+l.requiredBufferSize?null:(e.fileChunk=o,e.fileOffset=c,this._readIFD(e,n,r,i,a))):null}async _fillOffsets(e,t,n,r){let i=e.filter(e=>e.offlineOffsetSize!=null);if(i.length===0)return;let a=i.map(e=>e.offlineOffsetSize),o=Math.min.apply(null,a.map(e=>e[0])),s=Math.max.apply(null,a.map(e=>e[0]+e[1])),c=a.length===1||s-o<=this._bufferSize;if(!c&&a.length>1&&(a.sort((e,t)=>e[0]-t[0]),c=a.reduce((e,t)=>e===t[0]?t[0]+t[1]:0,a[0][0])===s),c){let e=Math.max(s,o+this._bufferSize/4),n=await this._fetchHeaderData(o,e,r);i.forEach(e=>v(n,t,e,o));return}let l=i.map(async e=>{let n=e.offlineOffsetSize,i=await this._fetchHeaderData(n[0],n[1]+n[0],r);v(i,t,e,n[0])});await Promise.all(l)}async _fetchOffsets(e,t,n){let r=[],i=this._chunkSize;this._fileSize>0&&(t=Math.min(t,this._fileSize-1));let a=Math.ceil((t-e+1)/i),o=e;for(let e=0;e<a;e++)r.push(this.request(this.url,{range:{from:o,to:e===a-1?t:o+i-1},responseType:`array-buffer`,signal:n})),o+=i;let s=await Promise.all(r);if(this._fileSize===-1&&s[0].httpStatus===206){let e=s[0].getHeader?.(`Content-Range`),t=Number(e?.split(`/`)[1]);Number.isFinite(t)&&(this._fileSize=t)}if(s.length===1)return s[0].data;let c=s.reduce((e,t)=>e+t.data.byteLength,0),l=new Uint8Array(c),u=0;for(let e of s)l.set(new Uint8Array(e.data),u),u+=e.data.byteLength;return l.buffer}async _fetchRawTiffTile(e,t,n,r,i={}){let a=this._getTileLocation(e,t,n,r);if(!a)return null;let{ranges:o,actualTileWidth:s,actualTileHeight:c,ifd:l}=a,u=o.map(e=>this.request(this.url,{range:e,responseType:`array-buffer`,signal:i.signal})),d=await Promise.all(u),f=d.map(e=>e.data.byteLength).reduce((e,t)=>e+t),p=d.length===1?d[0].data:new ArrayBuffer(f),m=[0],h=[0];if(d.length>1){let e=new Uint8Array(p);for(let t=0,n=0;t<d.length;t++){let r=d[t].data;e.set(new Uint8Array(r),n),m[t]=n,n+=r.byteLength,h[t]=r.byteLength}}let{blockWidth:g,blockHeight:_}=this.getBlockWidthHeight(e),v=await this.decodePixelBlock(p,{format:`tiff`,customOptions:{headerInfo:this._headerInfo,ifd:l,offsets:m,sizes:h},width:g,height:_,planes:null,pixelType:null});if(v==null)return null;if(s!==g||c!==_){let e=v.mask;if(e)for(let t=0;t<_;t++){let n=t*g;if(t<c)for(let t=s;t<g;t++)e[n+t]=0;else for(let t=0;t<g;t++)e[n+t]=0}else{e=new Uint8Array(g*_),v.mask=e;for(let t=0;t<c;t++){let n=t*g;for(let t=0;t<s;t++)e[n+t]=1}}}return v}_getTileLocation(e,t,n,r=!1){let{firstPyramidLevel:i,blockBoundary:a}=this.rasterInfo.storageInfo,o=e===0?0:e-(i-1),{_headerInfo:s}=this;if(!s)return null;let c=r?s.maskIFDs[o]:o===0?s.ifds[0]:s.pyramidIFDs[o-1];if(!c)return null;let l=y(c,s),u=b(c,`TILEOFFSETS`),d=b(c,`TILEBYTECOUNTS`);if(!u?.length||!d?.length)return null;let{minRow:f,minCol:p,maxRow:m,maxCol:h}=a[o];if(t>m||n>h||t<f||n<p)return null;let g=x(c,`IMAGEWIDTH`),_=x(c,`IMAGELENGTH`),v=x(c,`TILEWIDTH`),S=x(c,`TILELENGTH`),C=[];if(l){let{bandCount:e}=this.rasterInfo;for(let r=0;r<e;r++){let e=r*(m+1)*(h+1)+t*(h+1)+n;C[r]={from:u[e],to:u[e]+d[e]-1}}}else{let e=t*(h+1)+n;C.push({from:u[e],to:u[e]+d[e]-1})}for(let e=0;e<C.length;e++)if(C[e].from==null||!C[e].to||C[e].to<0)return null;return{ranges:C,ifd:c,actualTileWidth:n===h&&g%v||v,actualTileHeight:t===m&&_%S||S}}async _fetchAuxiliaryMetaData(e){try{let{data:t}=await this.request(this.url+`.aux.xml`,{responseType:`xml`,signal:e?.signal});return u(t)}catch{return null}}async _fetchAuxiliaryTable(e){try{let{data:t}=await this.request(this.url+`.vat.dbf`,{responseType:`array-buffer`,signal:e?.signal}),n=l(t);return n?.recordSet?k.fromJSON(n.recordSet):null}catch{return null}}};e([r()],j.prototype,`_files`,void 0),e([r()],j.prototype,`_headerInfo`,void 0),e([r()],j.prototype,`_bufferSize`,void 0),e([r()],j.prototype,`_chunkSize`,void 0),e([r()],j.prototype,`_fileSize`,void 0),e([r()],j.prototype,`_headerChunks`,void 0),e([r({type:String,json:{write:!0}})],j.prototype,`datasetFormat`,void 0),j=e([i(`esri.layers.raster.datasets.TIFFRaster`)],j);function M(e){let t=S(e),{width:n,height:r,tileWidth:i,tileHeight:c,planes:l,pixelType:u,compression:f,firstPyramidLevel:p,maximumPyramidLevel:m,pyramidBlockWidth:h,pyramidBlockHeight:g,pyramidResolutions:_,tileBoundary:v,affine:y,metadata:b,colormap:x}=t,C=t.extent.spatialReference?.wkt||t.extent.spatialReference?.wkid,w=d(C),T=!!t.isPseudoGeographic;w??=(T=!0,new s({wkid:3857}));let k=new a({...t.extent,spatialReference:w}),A=k?new o({x:k.xmin,y:k.ymax,spatialReference:w}):new o({x:0,y:0}),j=new O({blockWidth:i,blockHeight:c,pyramidBlockWidth:h,pyramidBlockHeight:g,compression:f,origin:A,firstPyramidLevel:p,maximumPyramidLevel:m,pyramidResolutions:_,blockBoundary:v}),M=new o({x:(k.xmax-k.xmin)/n,y:(k.ymax-k.ymin)/r,spatialReference:w}),N=b?{BandProperties:b.bandProperties,DataType:b.dataType}:{},P=new D({width:n,height:r,bandCount:l,pixelType:u,pixelSize:M,storageInfo:j,spatialReference:w,isPseudoSpatialReference:T,keyProperties:N,extent:k,colormap:x,statistics:b?b.statistics:null});if(y?.length&&(P.nativeExtent=new a({xmin:-.5,ymin:.5-r,xmax:n-.5,ymax:.5,spatialReference:w}),P.transform=new E({polynomialOrder:1,forwardCoefficients:[y[2]+y[0]/2,y[5]-y[3]/2,y[0],y[3],-y[1],-y[4]]}),P.extent=P.transform.forwardTransform(P.nativeExtent),P.pixelSize=new o({x:(k.xmax-k.xmin)/n,y:(k.ymax-k.ymin)/r,spatialReference:w}),j.origin.x=-.5,j.origin.y=.5),_){let{x:e,y:t}=P.pixelSize;_.forEach(n=>{n.x*=e,n.y*=t})}return{imageInfo:t,rasterInfo:P}}function N(e,t){if(t.statistics=e.statistics??t.statistics,t.histograms=e.histograms,e.histograms&&t.statistics==null&&(t.statistics=T(e.histograms)),e.transform&&t.transform==null){t.transform=e.transform,t.nativeExtent=t.extent;let n=t.transform.forwardTransform(t.nativeExtent);t.pixelSize=new o({x:(n.xmax-n.xmin)/t.width,y:(n.ymax-n.ymin)/t.height,spatialReference:t.spatialReference}),t.extent=n}t.isPseudoSpatialReference&&e.spatialReference&&(t.spatialReference=e.spatialReference,t.extent.spatialReference=t.nativeExtent.spatialReference=t.storageInfo.origin.spatialReference=t.spatialReference)}const P=j;export{P as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- function e(e,t){let n=0,r=``,i=0,a=0,o=e.length;for(;n<o;)a=e[n++],i=a>>4,i<8?i=1:i===15?(i=4,a=(a&7)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63):i===14?(i=3,a=(a&15)<<12|(e[n++]&63)<<6|e[n++]&63):(i=2,a=(a&31)<<6|e[n++]&63),(a!==0||t)&&(r+=String.fromCharCode(a));return r}export{e as bytesToUTF8};
2
+ function e(e,t){let n=0,r=``,i=0,a=0,o=e.length;for(;n<o;)a=e[n++],i=a>>4,i<8?i=1:i===15?(i=4,a=(a&7)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63):i===14?(i=3,a=(a&15)<<12|(e[n++]&63)<<6|e[n++]&63):(i=2,a=(a&31)<<6|e[n++]&63),(a!==0||t)&&(r+=String.fromCodePoint(a));return r}export{e as bytesToUTF8};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{bytesToUTF8 as t}from"../datasets/byteStreamUtils.js";import{tiffTags as n,ifdTags as r,getTagName as i,geoKeys as a}from"./tiffTag.js";const o=[0,1,1,2,4,8,1,1,2,4,8,4,8,-1,-1,-1,8,8,8],s=4294967296,c=new Map([[1,(e,t)=>e.getUint8(t)],[2,(e,t)=>e.getUint8(t)],[3,(e,t,n)=>e.getUint16(t,n)],[4,(e,t,n)=>e.getUint32(t,n)],[5,(e,t,n)=>e.getUint32(t,n)/e.getUint32(t+4,n)],[6,(e,t)=>e.getInt8(t)],[7,(e,t)=>e.getUint8(t)],[8,(e,t,n)=>e.getInt16(t,n)],[9,(e,t,n)=>e.getInt32(t,n)],[10,(e,t,n)=>e.getInt32(t,n)/e.getInt32(t+4,n)],[11,(e,t,n)=>e.getFloat32(t,n)],[12,(e,t,n)=>e.getFloat64(t,n)],[13,(e,t,n)=>e.getUint32(t,n)],[16,(e,t,n)=>l(e,t,n)],[17,(e,t,n)=>u(e,t,n)],[18,(e,t,n)=>l(e,t,n)]]);function l(e,t,n){let r=e.getUint32(t,n),i=e.getUint32(t+4,n);return n?i*s+r:r*s+i}function u(e,t,n){let r=n?e.getInt32(t,n):e.getUint32(t,n),i=n?e.getUint32(t+4,n):e.getInt32(t+4,n),a=(n?r:i)>=0?1:-1;return n?r*=a:i*=a,a*(n?i*s+r:r*s+i)}function d(e,t){return{x:t[0]*e.x+t[1]*e.y+t[2],y:t[3]*e.x+t[4]*e.y+t[5]}}function f(e,t){return e.get(t)?.values}function p(e,t){return e.get(t)?.values}function m(e,t){return e.get(t)?.values?.[0]}function h(e,t){return e.get(t)?.values?.[0]}function g(e,t,n,r){return r?l(e,t,n):e.getUint32(t,n)}function _(e,t,r,a=0,o=n,s=4){let c=s===8,u=c?l(new DataView(e,r,8),0,t):new DataView(e,r,2).getUint16(0,t),d=4+s*2,f=c?8:2,p=f+u*d;if(r+p>e.byteLength)return{success:!1,ifd:null,nextIFD:null,requiredBufferSize:p};let m=s===8?8:4,h=r+p+m<=e.byteLength?g(new DataView(e,r+p,m),0,t,s===8):null,_=r+f,v=new Map;for(let n=0;n<u;n++){let r=new DataView(e,_+d*n,d),c=r.getUint16(0,t),l=r.getUint16(2,t),u=i(c,o),f=[],p=0,m=0;s===2?(p=r.getUint16(4,t),m=r.getUint16(6,t)):s===4?(p=r.getUint32(4,t),m=r.getUint32(8,t)):s===8&&(p=g(r,4,t,!0),m=g(r,12,t,!0),f.push(r.getUint32(12,t)),f.push(r.getUint32(16,t)));let h={id:c,type:l,valueCount:p,valueOffset:m,valueOffsets:f,values:null};x(e,t,h,a,!1,s),v.set(u,h)}return{success:!0,ifd:v,nextIFD:h,requiredBufferSize:p}}function v(e){if(!e)return null;let t=e.match(/<Item(.*?)Item>/gi);if(!t||t.length===0)return null;let n=new Map;for(let e=0;e<t.length;e++){let r=t[e],i=r.indexOf(`sample=`),a=i>-1?r.slice(i+8,r.indexOf(`"`,i+8)):null;i=r.indexOf(`name=`);let o=i>-1?r.slice(i+6,r.indexOf(`"`,i+6)):r.slice(6,r.indexOf(`>`));if(o){let e=r.slice(r.indexOf(`>`)+1,r.indexOf(`</Item>`)).trim();a==null?n.set(o,e):n.has(o)?n.get(o)[a]=e:n.set(o,[e])}}let r=n.get(`STATISTICS_MINIMUM`),i=n.get(`STATISTICS_MAXIMUM`),a=n.get(`STATISTICS_MEAN`),o=n.get(`STATISTICS_STDDEV`),s=null;if(r&&i){s=[];for(let e=0;e<r.length;e++)s.push({min:parseFloat(r[e]),max:parseFloat(i[e]),avg:a&&parseFloat(a[e]),stddev:o&&parseFloat(o[e])})}let c=n.get(`BandName`),l=n.get(`WavelengthMin`),u=n.get(`WavelengthMax`),d=null;if(c){d=[];for(let e=0;e<c.length;e++)d.push({BandName:c[e],WavelengthMin:l&&parseFloat(l[e]),WavelengthMax:u&&parseFloat(u[e])})}let f=n.get(`DataType`);return{statistics:s,bandProperties:d,dataType:f,rawMetadata:n}}function y(e,t,n,r){let{type:i,valueCount:a}=t,s=o[i];if(s==null||s<=0)return[];let l=a*s,u=l/s,d=new DataView(e,n,l),f=[],p=c.get(i);if(!p)return[];for(let e=0,t=0;e<u;e++,t+=s)f.push(p(d,t,r));return f}function b(e,t,n=4){let{type:r,valueCount:i,valueOffsets:a}=e,c=o[r]*8,l=i*o[r]*8,{valueOffset:u}=e,d=n===8?64:32;if(!t){if(d<=32)u>>>=32-l;else{let e=a?.length?a[0]:u>>>0,t=a?.length?a[1]:Math.round((u-e)/s);l<=32?(u=e>>>32-l,a[0]=u):(u=e*2**(32-l)+(t>>>32-l),a[0]=e,a[1]=t>>>32-l)}}if(i===1&&c===d)return[u];let f=[];if(d===64){let e=a?.length?a[0]:u>>>0,t=a?.length?a[1]:Math.round((u-e)/s),n=e,r=32;for(let e=1;e<=i;e++){let i=32-c*e%32;if(r<c){let e=n<<i>>>32-r,a=t<<32-r>>>32-r;n=t,f.push(e+a*2**(c-r)),r-=32-(c-r)}else f.push(n<<i>>>32-c),r-=c;r===0&&(r=32,n=t)}return f}for(let e=1;e<=i;e++){let t=32-c*e;f.push(u<<t>>>32-c)}return f}function x(e,n,r,i=0,a=!1,s=4){if(r.values)return!0;let{type:c,valueCount:l}=r,u=r.valueOffset,d=l*o[c],f=l*o[c]*8,p=s===8?64:32;if(f>p&&d>(a?e.byteLength:e?e.byteLength-u+i:0))return r.offlineOffsetSize=[u,d],r.values=null,!1;let m=[];return f<=p?m=b(r,n,s):(u-=i,a&&(u=0),m=y(e,r,u,n)),r.values=c===2?[m.length?t(m instanceof Uint8Array?m:new Uint8Array(m)):``]:m,!0}function S(e){let t=h(e,`PHOTOMETRICINTERPRETATION`),n=p(e,`COLORMAP`);if(t!=null&&t<=3&&n?.length&&n.length%3==0){let e=[],t=n.length/3;for(let r=0;r<t;r++)e.push([r,n[r]>>>8,n[r+t]>>>8,n[r+t*2]>>>8]);return e}}function C(e){let t=p(e,`GEOTIEPOINTS`),n=p(e,`GEOPIXELSCALE`),r=p(e,`GEOTRANSMATRIX`),i=e.get(`GEOKEYDIRECTORY`)?.data,a=i?h(i,`GTRasterTypeGeoKey`)===2:!1,{spatialReference:o,isPseudoGeographic:s}=w(e),c;n&&t&&t.length>=6?(c=[n[0],0,t[3]-t[0]*n[0],0,-Math.abs(n[1]),t[4]-t[1]*n[1]],a&&(c[2]-=c[0]*.5+c[1]*.5,c[5]-=c[3]*.5+c[4]*.5)):r?.length===16&&(c=a?[r[0],r[1],r[3]-r[0]*.5,r[4],r[5],r[7]-r[5]*.5]:[r[0],r[1],r[3],r[4],r[5],r[7]]);let l,u=h(e,`IMAGEWIDTH`),f=h(e,`IMAGELENGTH`);if(c){let e=[{x:0,y:f},{x:0,y:0},{x:u,y:f},{x:u,y:0}],t,n=1/0,r=1/0,i=-1/0,a=-1/0;for(let o=0;o<e.length;o++)t=d(e[o],c),n=t.x>n?n:t.x,i=t.x<i?i:t.x,r=t.y>r?r:t.y,a=t.y<a?a:t.y;l={xmin:n,xmax:i,ymin:r,ymax:a,spatialReference:o}}else l={xmin:-.5,ymin:.5-f,xmax:u-.5,ymax:.5,spatialReference:o};return s&&(l.xmax-l.xmin>400||Math.max(Math.abs(l.xmin),Math.abs(l.xmax))>361)&&(l.spatialReference=null),{extent:l,isPseudoGeographic:s,affine:n?void 0:c}}function w(e){let t=m(e,`GEOASCIIPARAMS`),n=null;if(t){let e=t.split(`|`).find(e=>e.includes(`ESRI PE String = `)),r=e?e.replace(`ESRI PE String = `,``):``;n=r.startsWith(`COMPD_CS`)||r.startsWith(`PROJCS`)||r.startsWith(`GEOGCS`)?{wkid:null,wkt:r}:null}let r=!1,i=e.get(`GEOKEYDIRECTORY`)?.data;if(i){let e=h(i,`GTModelTypeGeoKey`);if(e===2){let e=h(i,`GeographicTypeGeoKey`);e>=1024&&e<=32766&&(n={wkid:e}),!n&&e===32767&&(r=!0,n={wkid:4326})}else if(e===1){let e=h(i,`ProjectedCSTypeGeoKey`);e>=1024&&e<=32766&&(n={wkid:e})}}return{spatialReference:n,isPseudoGeographic:r}}function T(e){let{width:t,height:n,tileHeight:r,tileWidth:i}=e,a=e.planes,o=i?i*r:t*n,s=h(e.ifds[0],`BITSPERSAMPLE`),c=o*a,l=``;return c>2**30/(s>8?s/8:1)&&(l=i?`tiled tiff exceeding 1 gigabits per tile is not supported`:`scanline tiff exceeding 1 gigabits is not supported`),l}function E(e,t){let n=h(e,`PLANARCONFIGURATION`);return n==null?t?t.isBSQ:!1:n===2}function D(e){return h(e,`COMPRESSION`)??1}function O(e){let t=D(e),n,r=!1;switch(t){case 1:n=`NONE`,r=!0;break;case 2:case 3:case 4:case 32771:n=`CCITT`;break;case 5:n=`LZW`,r=!0;break;case 6:case 7:n=`JPEG`,r=!0;break;case 32773:n=`PACKBITS`;break;case 8:case 32946:n=`DEFLATE`,r=!0;break;case 34712:n=`JPEG2000`;break;case 34887:n=`LERC`,r=!0;break;default:n=String(t)}return{compression:n,supported:r}}function k(e,t){let n=`unknown`;return e===3?n=t===64?`f64`:`f32`:e===1?t===1?n=`u1`:t===2?n=`u2`:t===4?n=`u4`:t<=8?n=`u8`:t<=16?n=`u16`:t<=32&&(n=`u32`):e===2&&(t<=8?n=`s8`:t<=16?n=`s16`:t<=32&&(n=`s32`)),n}function A(e){let t=e[0],n=h(t,`TILEWIDTH`),r=h(t,`TILELENGTH`),i=h(t,`IMAGEWIDTH`),a=h(t,`IMAGELENGTH`),o=h(t,`BITSPERSAMPLE`),s=h(t,`SAMPLESPERPIXEL`),c=h(t,`SAMPLEFORMAT`)??1,l=k(c,o),u=E(t),d=f(t,`GDAL_NODATA`),p=null;d?.length&&(p=d.map(e=>parseFloat(e)),p.some(e=>isNaN(e))&&(p=null));let g=!0,_=``,{compression:y,supported:b}=O(t);b||(g=!1,_+=`unsupported tag compression `+y),c>3&&(g=!1,_+=`unsupported tag sampleFormat `+c),o>32&&o!==64&&(g=!1,_+=`unsupported tag bitsPerSample `+o);let{extent:x,isPseudoGeographic:w,affine:D}=C(t),A=j(e),N,P,F,I;if(A.length>0){F=Math.round(Math.log(i/h(A[0],`IMAGEWIDTH`))/Math.LN2);let e=A[A.length-1];I=A.length,N=h(e,`TILEWIDTH`),P=h(e,`TILELENGTH`)}N=I!=null&&I>0?N||n:null,P=I!=null&&I>0?P||r:null;let L;n&&(L=[{maxCol:Math.ceil(i/n)-1,maxRow:Math.ceil(a/r)-1,minRow:0,minCol:0}],A.forEach(e=>{L.push({maxCol:Math.ceil(h(e,`IMAGEWIDTH`)/h(e,`TILEWIDTH`))-1,maxRow:Math.ceil(h(e,`IMAGELENGTH`)/h(e,`TILELENGTH`))-1,minRow:0,minCol:0})}));let R=v(m(e[0],`GDAL_METADATA`));_+=` `+T({width:i,height:a,tileWidth:n,tileHeight:r,planes:s,ifds:e});let z=M(e).length===A.length+1,B=A?.length?A.map(e=>({x:i/h(e,`IMAGEWIDTH`),y:a/h(e,`IMAGELENGTH`)})):void 0,V=S(t);return{width:i,height:a,tileWidth:n,tileHeight:r,planes:s,isBSQ:u,pixelType:l,compression:y,noData:p,hasMaskBand:z,isSupported:g,pyramidResolutions:B,message:_,extent:x,isPseudoGeographic:w,affine:D,firstPyramidLevel:F,maximumPyramidLevel:I,pyramidBlockWidth:N,pyramidBlockHeight:P,tileBoundary:L,metadata:R,colormap:V}}function j(e){return e.filter(e=>h(e,`NEWSUBFILETYPE`)===1)}function M(e){return e.filter(e=>{let t=((h(e,`NEWSUBFILETYPE`)??0)&4)==4,n=h(e,`PHOTOMETRICINTERPRETATION`)===4;return t&&n})}function N(e,i,o,s=0,c=n,l=4){let u=_(e,i,o,s,c,l),d,f=u.ifd;if(f){if(r.forEach((t,n)=>{f.has(n)&&(d=f.get(n),d.data=_(e,i,d.valueOffset-s,s,t).ifd)}),f.has(`GEOKEYDIRECTORY`)){d=f.get(`GEOKEYDIRECTORY`);let t=d.values;if(t&&t.length>4){let n=t[0]+`.`+t[1]+`.`+t[2];d.data=_(e,i,d.valueOffset+6-s,s,a,2).ifd,d.data&&d.data.set(`GEOTIFFVersion`,{id:0,type:2,valueCount:1,valueOffset:null,values:[n]})}}if(f.has(`XMP`)){d=f.get(`XMP`);let e=d.values;typeof e[0]==`number`&&d.type===7&&(d.values=[t(new Uint8Array(e))])}}return u}function P(t){let n=new DataView(t,0,16),r=n.getUint16(0,!1),i=null;if(r===18761)i=!0;else if(r===19789)i=!1;else throw new e(`tiff-reader:parse-signature`,`unexpected endianness byte`);let a=n.getUint16(2,i);if(a!==42&&a!==43)throw new e(`tiff-reader:parse-signature`,`unexpected tiff identifier`);let o=4,s=a===43;if(s){let t=n.getUint16(o,i);if(o+=2,t!==8||n.getUint16(o,i)!==0)throw new e(`tiff-reader:parse-signature`,`unsupported bigtiff version`);o+=2}let c=g(n,o,i,s);return{littleEndian:i,isBigTiff:s,firstIFDPos:c}}function F(e){let{littleEndian:t,isBigTiff:r,firstIFDPos:i}=P(e),a=i,o=[];do{let i=N(e,t,a,0,n,r?8:4);if(i.success)o.push(i.ifd),a=i.nextIFD;else break}while(a>0);let s=A(o),c=j(o),l=M(o);return{...s,littleEndian:t,isBigTiff:r,ifds:o,pyramidIFDs:c,maskIFDs:l}}export{T as checkRequiredArraySize,D as getCompressionType,A as getImageInfo,M as getMaskIFDs,j as getPyramidIFDs,h as getTagFirstNumericValue,p as getTagNumericValues,E as isBSQConfig,x as parseFieldValues,F as parseHeader,N as parseIFD,P as parseSignature};
2
+ import e from"../../../core/Error.js";import{bytesToUTF8 as t}from"../datasets/byteStreamUtils.js";import{tiffTags as n,ifdTags as r,getTagName as i,geoKeys as a}from"./tiffTag.js";const o=[0,1,1,2,4,8,1,1,2,4,8,4,8,-1,-1,-1,8,8,8],s=4294967296,c=new Map([[1,(e,t)=>e.getUint8(t)],[2,(e,t)=>e.getUint8(t)],[3,(e,t,n)=>e.getUint16(t,n)],[4,(e,t,n)=>e.getUint32(t,n)],[5,(e,t,n)=>e.getUint32(t,n)/e.getUint32(t+4,n)],[6,(e,t)=>e.getInt8(t)],[7,(e,t)=>e.getUint8(t)],[8,(e,t,n)=>e.getInt16(t,n)],[9,(e,t,n)=>e.getInt32(t,n)],[10,(e,t,n)=>e.getInt32(t,n)/e.getInt32(t+4,n)],[11,(e,t,n)=>e.getFloat32(t,n)],[12,(e,t,n)=>e.getFloat64(t,n)],[13,(e,t,n)=>e.getUint32(t,n)],[16,(e,t,n)=>l(e,t,n)],[17,(e,t,n)=>u(e,t,n)],[18,(e,t,n)=>l(e,t,n)]]);function l(e,t,n){let r=e.getUint32(t,n),i=e.getUint32(t+4,n);return n?i*s+r:r*s+i}function u(e,t,n){let r=n?e.getInt32(t,n):e.getUint32(t,n),i=n?e.getUint32(t+4,n):e.getInt32(t+4,n),a=(n?r:i)>=0?1:-1;return n?r*=a:i*=a,a*(n?i*s+r:r*s+i)}function d(e,t){return{x:t[0]*e.x+t[1]*e.y+t[2],y:t[3]*e.x+t[4]*e.y+t[5]}}function f(e,t){return e.get(t)?.values}function p(e,t){return e.get(t)?.values}function m(e,t){return e.get(t)?.values?.[0]}function h(e,t){return e.get(t)?.values?.[0]}function g(e){let n=e.get(`GEOKEYDIRECTORY`),r=n?.values;if(!r||typeof r[0]!=`number`||r.length<4)return;let o=r,s=o.slice(0,3).join(`.`),c=o[3];if(o.length<4+c*4)return;let l=new Map;l.set(`GEOTIFFVersion`,{id:0,type:2,valueCount:1,valueOffset:null,values:[s]});for(let n=0;n<c;n++){let r=4+n*4,s=o[r],c=o[r+1],u=o[r+2],d=o[r+3],f={id:s,type:c,valueCount:u,valueOffset:d,values:null};if(c===0)f.values=[d];else{let n=e.get(i(c)),r=n?.values;if(r==null&&n?.offlineOffsetSize!=null)return;if(r!=null){let e=d+u;n?.asciiBytes?e<=n.asciiBytes.length&&(f.values=[t(n.asciiBytes.subarray(d,e)).replace(/\|$/,``)]):typeof r[0]==`string`?e<=r[0].length&&(f.values=[r[0].slice(d,e).replace(/\|$/,``)]):e<=r.length&&(f.values=r.slice(d,e))}}let p=i(s,a);l.set(p,f)}n.data=l}function _(e,t,n,r){return r?l(e,t,n):e.getUint32(t,n)}function v(e,t,r,a=0,o=n,s=4){let c=s===8,u=c?8:2;if(r<0||r+u>e.byteLength)return{success:!1,ifd:null,nextIFD:null,requiredBufferSize:u};let d=c?l(new DataView(e,r,8),0,t):new DataView(e,r,2).getUint16(0,t),f=4+s*2,p=s,m=u+d*f+p;if(r+m>e.byteLength)return{success:!1,ifd:null,nextIFD:null,requiredBufferSize:m};let h=_(new DataView(e,r+m-p,p),0,t,c),g=r+u,v=new Map;for(let n=0;n<d;n++){let r=new DataView(e,g+f*n,f),c=r.getUint16(0,t),l=r.getUint16(2,t),u=i(c,o),d=[],p=0,m=0;s===4?(p=r.getUint32(4,t),m=r.getUint32(8,t)):s===8&&(p=_(r,4,t,!0),m=_(r,12,t,!0),d.push(r.getUint32(12,t)),d.push(r.getUint32(16,t)));let h={id:c,type:l,valueCount:p,valueOffset:m,valueOffsets:d,values:null};S(e,t,h,a,!1,s),v.set(u,h)}return{success:!0,ifd:v,nextIFD:h,requiredBufferSize:m}}function y(e){if(!e)return null;let t=e.match(/<Item(.*?)Item>/gi);if(!t||t.length===0)return null;let n=new Map;for(let e=0;e<t.length;e++){let r=t[e],i=r.indexOf(`sample=`),a=i>-1?r.slice(i+8,r.indexOf(`"`,i+8)):null;i=r.indexOf(`name=`);let o=i>-1?r.slice(i+6,r.indexOf(`"`,i+6)):r.slice(6,r.indexOf(`>`));if(o){let e=r.slice(r.indexOf(`>`)+1,r.indexOf(`</Item>`)).trim();a==null?n.set(o,e):n.has(o)?n.get(o)[a]=e:n.set(o,[e])}}let r=n.get(`STATISTICS_MINIMUM`),i=n.get(`STATISTICS_MAXIMUM`),a=n.get(`STATISTICS_MEAN`),o=n.get(`STATISTICS_STDDEV`),s=null;if(r&&i){s=[];for(let e=0;e<r.length;e++)s.push({min:parseFloat(r[e]),max:parseFloat(i[e]),avg:a&&parseFloat(a[e]),stddev:o&&parseFloat(o[e])})}let c=n.get(`BandName`),l=n.get(`WavelengthMin`),u=n.get(`WavelengthMax`),d=null;if(c){d=[];for(let e=0;e<c.length;e++)d.push({BandName:c[e],WavelengthMin:l&&parseFloat(l[e]),WavelengthMax:u&&parseFloat(u[e])})}let f=n.get(`DataType`);return{statistics:s,bandProperties:d,dataType:f,rawMetadata:n}}function b(e,t,n,r){let{type:i,valueCount:a}=t,s=o[i];if(s==null||s<=0)return[];let l=a*s,u=l/s,d=new DataView(e,n,l),f=[],p=c.get(i);if(!p)return[];for(let e=0,t=0;e<u;e++,t+=s)f.push(p(d,t,r));return f}function x(e,t,n=4){let{type:r,valueCount:i,valueOffsets:a}=e,c=o[r];if(c==null||c<=0)return[];let l=c*8,u=i*l,{valueOffset:d}=e,f=n===8?64:32;if(!t){if(f<=32)d>>>=32-u;else{let e=a?.length?a[0]:d>>>0,t=a?.length?a[1]:Math.round((d-e)/s);u<=32?(d=e>>>32-u,a[0]=d):(d=e*2**(32-u)+(t>>>32-u),a[0]=e,a[1]=t>>>32-u)}}if(i===1&&l===f)return[d];let p=[];if(f===64){let e=a?.length?a[0]:d>>>0,t=a?.length?a[1]:Math.round((d-e)/s),n=e,r=32;for(let e=1;e<=i;e++){let i=32-l*e%32;if(r<l){let e=n<<i>>>32-r,a=t<<32-r>>>32-r;n=t,p.push(e+a*2**(l-r)),r-=32-(l-r)}else p.push(n<<i>>>32-l),r-=l;r===0&&(r=32,n=t)}return p}for(let e=1;e<=i;e++){let t=32-l*e;p.push(d<<t>>>32-l)}return p}function S(e,n,r,i=0,a=!1,s=4){if(r.values)return!0;let{type:c,valueCount:l}=r,u=r.valueOffset,d=o[c];if(d==null||d<=0)return r.values=[],!0;let f=l*d,p=l*o[c]*8,m=s===8?64:32,h;if(p<=m)h=x(r,n,s);else{let t=a?e.byteLength:e.byteLength-u+i;if(u-=i,a&&(u=0),u<0||f>t)return r.offlineOffsetSize=[r.valueOffset,f],r.values=null,!1;h=b(e,r,u,n)}if(c===2){let e=h instanceof Uint8Array?h:new Uint8Array(h);r.id===34737&&(r.asciiBytes=e),r.values=[e.length?t(e):``]}else r.values=h;return!0}function C(e){if(!e.has(`XMP`))return;let n=e.get(`XMP`),r=n.values;r&&typeof r[0]==`number`&&n.type===7&&(n.values=[t(new Uint8Array(r))])}function w(e){let t=h(e,`PHOTOMETRICINTERPRETATION`),n=p(e,`COLORMAP`);if(t!=null&&t<=3&&n?.length&&n.length%3==0){let e=[],t=n.length/3;for(let r=0;r<t;r++)e.push([r,n[r]>>>8,n[r+t]>>>8,n[r+t*2]>>>8]);return e}}function T(e){let t=p(e,`GEOTIEPOINTS`),n=p(e,`GEOPIXELSCALE`),r=p(e,`GEOTRANSMATRIX`),i=e.get(`GEOKEYDIRECTORY`)?.data,a=i?h(i,`GTRasterTypeGeoKey`)===2:!1,{spatialReference:o,isPseudoGeographic:s}=E(e),c;n&&t&&t.length>=6?(c=[n[0],0,t[3]-t[0]*n[0],0,-Math.abs(n[1]),t[4]-t[1]*n[1]],a&&(c[2]-=c[0]*.5+c[1]*.5,c[5]-=c[3]*.5+c[4]*.5)):r?.length===16&&(c=a?[r[0],r[1],r[3]-r[0]*.5,r[4],r[5],r[7]-r[5]*.5]:[r[0],r[1],r[3],r[4],r[5],r[7]]);let l,u=h(e,`IMAGEWIDTH`),f=h(e,`IMAGELENGTH`);if(c){let e=[{x:0,y:f},{x:0,y:0},{x:u,y:f},{x:u,y:0}],t,n=1/0,r=1/0,i=-1/0,a=-1/0;for(let o=0;o<e.length;o++)t=d(e[o],c),n=t.x>n?n:t.x,i=t.x<i?i:t.x,r=t.y>r?r:t.y,a=t.y<a?a:t.y;l={xmin:n,xmax:i,ymin:r,ymax:a,spatialReference:o}}else l={xmin:-.5,ymin:.5-f,xmax:u-.5,ymax:.5,spatialReference:o};return s&&(l.xmax-l.xmin>400||Math.max(Math.abs(l.xmin),Math.abs(l.xmax))>361)&&(l.spatialReference=null),{extent:l,isPseudoGeographic:s,affine:n?void 0:c}}function E(e){let t=m(e,`GEOASCIIPARAMS`),n=null;if(t){let e=t.split(`|`).find(e=>e.includes(`ESRI PE String = `)),r=e?e.replace(`ESRI PE String = `,``):``;n=r.startsWith(`COMPD_CS`)||r.startsWith(`PROJCS`)||r.startsWith(`GEOGCS`)?{wkid:null,wkt:r}:null}let r=!1,i=e.get(`GEOKEYDIRECTORY`)?.data;if(i){let e=h(i,`GTModelTypeGeoKey`);if(e===2){let e=h(i,`GeographicTypeGeoKey`);e>=1024&&e<=32766&&(n={wkid:e}),!n&&e===32767&&(r=!0,n={wkid:4326})}else if(e===1){let e=h(i,`ProjectedCSTypeGeoKey`);e>=1024&&e<=32766&&(n={wkid:e})}}return{spatialReference:n,isPseudoGeographic:r}}function D(e){let{width:t,height:n,tileHeight:r,tileWidth:i}=e,a=e.planes,o=i?i*r:t*n,s=h(e.ifds[0],`BITSPERSAMPLE`),c=o*a,l=``;return c>2**30/(s>8?s/8:1)&&(l=i?`tiled tiff exceeding 1 gigabits per tile is not supported`:`scanline tiff exceeding 1 gigabits is not supported`),l}function O(e,t){let n=h(e,`PLANARCONFIGURATION`);return n==null?t?t.isBSQ:!1:n===2}function k(e){return h(e,`COMPRESSION`)??1}function A(e){let t=k(e),n,r=!1;switch(t){case 1:n=`NONE`,r=!0;break;case 2:case 3:case 4:case 32771:n=`CCITT`;break;case 5:n=`LZW`,r=!0;break;case 6:case 7:n=`JPEG`,r=!0;break;case 32773:n=`PACKBITS`;break;case 8:case 32946:n=`DEFLATE`,r=!0;break;case 34712:n=`JPEG2000`;break;case 34887:n=`LERC`,r=!0;break;default:n=String(t)}return{compression:n,supported:r}}function j(e,t){let n=`unknown`;return e===3?n=t===64?`f64`:`f32`:e===1?t===1?n=`u1`:t===2?n=`u2`:t===4?n=`u4`:t<=8?n=`u8`:t<=16?n=`u16`:t<=32&&(n=`u32`):e===2&&(t<=8?n=`s8`:t<=16?n=`s16`:t<=32&&(n=`s32`)),n}function M(e){let t=e[0],n=h(t,`TILEWIDTH`),r=h(t,`TILELENGTH`),i=h(t,`IMAGEWIDTH`),a=h(t,`IMAGELENGTH`),o=h(t,`BITSPERSAMPLE`),s=h(t,`SAMPLESPERPIXEL`),c=h(t,`SAMPLEFORMAT`)??1,l=j(c,o),u=O(t),d=f(t,`GDAL_NODATA`),p=null;d?.length&&(p=d.map(e=>parseFloat(e)),p.some(e=>isNaN(e))&&(p=null));let g=!0,_=``,{compression:v,supported:b}=A(t);b||(g=!1,_+=`unsupported tag compression `+v),c>3&&(g=!1,_+=`unsupported tag sampleFormat `+c),o>32&&o!==64&&(g=!1,_+=`unsupported tag bitsPerSample `+o);let{extent:x,isPseudoGeographic:S,affine:C}=T(t),E=N(e),k,M,F,I;if(E.length>0){F=Math.round(Math.log(i/h(E[0],`IMAGEWIDTH`))/Math.LN2);let e=E[E.length-1];I=E.length,k=h(e,`TILEWIDTH`),M=h(e,`TILELENGTH`)}k=I!=null&&I>0?k||n:null,M=I!=null&&I>0?M||r:null;let L;n&&(L=[{maxCol:Math.ceil(i/n)-1,maxRow:Math.ceil(a/r)-1,minRow:0,minCol:0}],E.forEach(e=>{L.push({maxCol:Math.ceil(h(e,`IMAGEWIDTH`)/h(e,`TILEWIDTH`))-1,maxRow:Math.ceil(h(e,`IMAGELENGTH`)/h(e,`TILELENGTH`))-1,minRow:0,minCol:0})}));let R=y(m(e[0],`GDAL_METADATA`));_+=` `+D({width:i,height:a,tileWidth:n,tileHeight:r,planes:s,ifds:e});let z=P(e).length===E.length+1,B=E?.length?E.map(e=>({x:i/h(e,`IMAGEWIDTH`),y:a/h(e,`IMAGELENGTH`)})):void 0,V=w(t);return{width:i,height:a,tileWidth:n,tileHeight:r,planes:s,isBSQ:u,pixelType:l,compression:v,noData:p,hasMaskBand:z,isSupported:g,pyramidResolutions:B,message:_,extent:x,isPseudoGeographic:S,affine:C,firstPyramidLevel:F,maximumPyramidLevel:I,pyramidBlockWidth:k,pyramidBlockHeight:M,tileBoundary:L,metadata:R,colormap:V}}function N(e){return e.filter(e=>h(e,`NEWSUBFILETYPE`)===1)}function P(e){return e.filter(e=>{let t=((h(e,`NEWSUBFILETYPE`)??0)&4)==4,n=h(e,`PHOTOMETRICINTERPRETATION`)===4;return t&&n})}function F(e,t,i,a=0,o=n,s=4){let c=v(e,t,i,a,o,s),l,u=c.ifd;return u&&(r.forEach((n,r)=>{u.has(r)&&(l=u.get(r),l.data=v(e,t,l.valueOffset-a,a,n).ifd)}),g(u),C(u)),c}function I(t){let n=new DataView(t,0,16),r=n.getUint16(0,!1),i=null;if(r===18761)i=!0;else if(r===19789)i=!1;else throw new e(`tiff-reader:parse-signature`,`unexpected endianness byte`);let a=n.getUint16(2,i);if(a!==42&&a!==43)throw new e(`tiff-reader:parse-signature`,`unexpected tiff identifier`);let o=4,s=a===43;if(s){let t=n.getUint16(o,i);if(o+=2,t!==8||n.getUint16(o,i)!==0)throw new e(`tiff-reader:parse-signature`,`unsupported bigtiff version`);o+=2}let c=_(n,o,i,s);return{littleEndian:i,isBigTiff:s,firstIFDPos:c}}function L(e){let{littleEndian:t,isBigTiff:r,firstIFDPos:i}=I(e),a=i,o=[];do{let i=F(e,t,a,0,n,r?8:4);if(i.success)o.push(i.ifd),a=i.nextIFD;else break}while(a>0);let s=M(o),c=N(o),l=P(o);return{...s,littleEndian:t,isBigTiff:r,ifds:o,pyramidIFDs:c,maskIFDs:l}}export{D as checkRequiredArraySize,k as getCompressionType,M as getImageInfo,P as getMaskIFDs,N as getPyramidIFDs,h as getTagFirstNumericValue,p as getTagNumericValues,O as isBSQConfig,S as parseFieldValues,g as parseGeoKeyDirectory,L as parseHeader,F as parseIFD,I as parseSignature,C as parseXMP};