@arcgis/core 5.1.0-next.92 → 5.1.0-next.94

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 (213) hide show
  1. package/analysis/ShadowCast/DiscreteOptions.d.ts +12 -6
  2. package/analysis/ShadowCast/MinDurationOptions.d.ts +17 -9
  3. package/analysis/ShadowCast/TotalDurationOptions.d.ts +10 -6
  4. package/analysis/ShadowCastAnalysis.d.ts +23 -17
  5. package/analysis/Viewshed.js +1 -1
  6. package/arcade/arcadeAsyncRuntime.js +1 -1
  7. package/arcade/arcadeCompiler.js +1 -1
  8. package/arcade/arcadeRuntime.js +1 -1
  9. package/arcade/compilerUtils.js +1 -1
  10. package/arcade/debug.d.ts +10 -1
  11. package/arcade.js +1 -1
  12. package/assets/components/assets/combobox/t9n/messages.fr.json +1 -1
  13. package/assets/esri/core/workers/RemoteClient.js +1 -1
  14. package/assets/esri/core/workers/chunks/01af2a0611386df64cb1.js +636 -0
  15. package/assets/esri/core/workers/chunks/031ea31bbdb7f1be791e.js +1 -0
  16. package/assets/esri/core/workers/chunks/{9c09097e390985bbac58.js → 075a1e91a075efe59cd3.js} +1 -1
  17. package/assets/esri/core/workers/chunks/0981fe06796060e50d40.js +1 -0
  18. package/assets/esri/core/workers/chunks/0ab1384282afc8731857.js +1 -0
  19. package/assets/esri/core/workers/chunks/1523883460874c352e36.js +1 -0
  20. package/assets/esri/core/workers/chunks/{de3e5d82502ee15b7eae.js → 15a070d4ac2087b79e8b.js} +1 -1
  21. package/assets/esri/core/workers/chunks/198864c107fa2b24518c.js +1 -0
  22. package/assets/esri/core/workers/chunks/1f141a007b1ef9b069c6.js +1 -0
  23. package/assets/esri/core/workers/chunks/268f203d2492a03165ac.js +1 -0
  24. package/assets/esri/core/workers/chunks/{f52443cd203e687551da.js → 2fda38219d778f0447b5.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2ffffc1931b2e27c6617.js +1 -0
  26. package/assets/esri/core/workers/chunks/{394812e19b6915d560b0.js → 3a691f848152e3818a48.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{ceff78c9e31e3572a082.js → 3a6b8879702fb247328b.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{41cbde4738ae4adf973d.js → 4142d5232c99d8aa943d.js} +5 -5
  29. package/assets/esri/core/workers/chunks/4378e544687fec4b06fb.js +1 -0
  30. package/assets/esri/core/workers/chunks/{4b9b9e6136c11d5d7901.js → 460e693ad19fa77ffdc2.js} +1 -1
  31. package/assets/esri/core/workers/chunks/4df19e670b6ed76c1dea.js +2 -0
  32. package/assets/esri/core/workers/chunks/{a169d9fe66b5865911d9.js → 503439246250d9e1cbd5.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{1e3fe89970c57a883fe5.js → 53ff47c06ccfc0be885c.js} +1 -1
  34. package/assets/esri/core/workers/chunks/561d45dc9421f80feca5.js +1 -0
  35. package/assets/esri/core/workers/chunks/598271956c46e21e5c09.js +1 -0
  36. package/assets/esri/core/workers/chunks/{d82da31dc702b8fd6a07.js → 59a64d72eed8c40c63cf.js} +1 -1
  37. package/assets/esri/core/workers/chunks/5a8fd2fd8a24f9290b7f.js +1 -0
  38. package/assets/esri/core/workers/chunks/64cf18ba2869171a5a7a.js +1 -0
  39. package/assets/esri/core/workers/chunks/{fade7b878a9498382bb2.js → 700f7aa9cf7b13acaf5d.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{4c97cc922eece3a91b6b.js → 7531bbcb6613c87a344e.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{6f67c9f68101a084b683.js → 765bc49e58e9d0caa496.js} +6 -6
  42. package/assets/esri/core/workers/chunks/8042e001545e2782499c.js +1 -0
  43. package/assets/esri/core/workers/chunks/{bb8d596f15fd3a0d783a.js → 82215d7a64b8be02eff1.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{d3d9d40556c847bba1a7.js → 87f7a674957f734b1b42.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{5409369d0d637cb30257.js → 8875e53097b25655ef67.js} +1 -1
  46. package/assets/esri/core/workers/chunks/8e1140725a72038627c2.js +1 -0
  47. package/assets/esri/core/workers/chunks/8e374ce47256a567ae11.js +1 -0
  48. package/assets/esri/core/workers/chunks/{127cd8fee3717a473fc5.js → 928dac64e6ba401d391a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{d7e7f3efd1d28617b808.js → 92e7067960549733f8e6.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{0a6df243b18acae471be.js → 992525afdf11b2fb16d4.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{f1673e723b336204ad77.js → 9b23d999db902d25ba58.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{f2c11f54255fd506655e.js → 9b869a8bda9384f25464.js} +1 -1
  53. package/assets/esri/core/workers/chunks/a76e14fe5e8b2f7ef9de.js +2 -0
  54. package/assets/esri/core/workers/chunks/{46b16501db6681dc467b.js → af074b5b4e1d6baf5219.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{75c09a2fa4c34b4844c5.js → be0eab592db0e651b023.js} +6 -6
  56. package/assets/esri/core/workers/chunks/{2dcfc4d7e76c922bcbf9.js → c7b9df9a204f6206364a.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{969f58a2de4ebe63619d.js → c88fd4f69cb2b53b48ec.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{ee057c85cdf6beb5b012.js → d1ba118ddd0390c07f35.js} +2 -2
  59. package/assets/esri/core/workers/chunks/d6f03f628ebfc28fdd23.js +2 -0
  60. package/assets/esri/core/workers/chunks/{577cbc131b21c351fae5.js → d87e504082e293640ece.js} +2 -2
  61. package/assets/esri/core/workers/chunks/{54c035cdc171998d0776.js → de99500b0fcedf2c8a5c.js} +1 -1
  62. package/assets/esri/core/workers/chunks/e54ad3683ad992682deb.js +1 -0
  63. package/assets/esri/core/workers/chunks/e6f1ed5e56f1d9862821.js +1 -0
  64. package/assets/esri/core/workers/chunks/e7e7c7cbfd8542bd7a46.js +1 -0
  65. package/assets/esri/core/workers/chunks/{27f67a3828b78d4c1413.js → e81afc8a058a8ecc9b24.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{aefeb5a17bb481c95da3.js → eeb847bfea558566adf6.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{90a8dfb03a437fe8a6e7.js → f04b49d80f422708d98c.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{d11de13537b623739e14.js → f14e3693cd644265f909.js} +1 -1
  69. package/assets/esri/core/workers/chunks/f2beb4267b8d4cddfa3e.js +1 -0
  70. package/assets/esri/core/workers/chunks/{2fd4220131bfc3f5e2dd.js → f635a8e3b0bfeda99ed5.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{aa6808146c76b2d49b64.js → f68c12e0c1eda7f73a17.js} +1 -1
  72. package/assets/esri/core/workers/chunks/f69c44479ee3fd8c831d.js +1 -0
  73. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +1 -0
  74. package/assets/esri/core/workers/chunks/fa4265db06e2721754a0.js +1 -0
  75. package/assets/esri/core/workers/chunks/{adfa5c136c72c1e65770.js → fb75d4bce1e86eed017a.js} +28 -22
  76. package/chunks/GlobalIllumination.glsl.js +24 -18
  77. package/chunks/GlowBlur.glsl.js +11 -11
  78. package/chunks/GlowComposition.glsl.js +4 -4
  79. package/chunks/RibbonLine.glsl.js +91 -51
  80. package/chunks/ShadowCastVisualize.glsl.js +18 -15
  81. package/config.js +1 -1
  82. package/geometry/support/geometryUtils.js +1 -1
  83. package/kernel.js +1 -1
  84. package/layers/FeatureLayer.d.ts +27 -1
  85. package/layers/FeatureLayer.js +1 -1
  86. package/layers/graphics/sources/MemorySource.js +1 -1
  87. package/layers/mixins/PortalLayer.js +1 -1
  88. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  89. package/layers/raster/datasets/InMemoryRaster.js +1 -1
  90. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  91. package/layers/raster/formats/RasterCodec.js +1 -1
  92. package/layers/support/RasterJobHandler.js +1 -1
  93. package/networks/support/UNTraceConfiguration.d.ts +19 -2
  94. package/networks/support/UNTraceConfiguration.js +1 -1
  95. package/networks/support/jsonTypes.d.ts +9 -1
  96. package/package.json +4 -4
  97. package/popup/Feature.d.ts +4 -4
  98. package/popup/Feature.js +1 -1
  99. package/portal/schemas/definitions.js +1 -1
  100. package/portal/support/layersLoader.js +1 -1
  101. package/rest/knowledgeGraph/GraphApplyEditsResult.d.ts +13 -1
  102. package/rest/knowledgeGraph/GraphApplyEditsResult.js +1 -1
  103. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.d.ts +9 -1
  104. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +1 -1
  105. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelChangeResponseFactories.js +1 -1
  106. package/rest/knowledgeGraph/wasmInterface/wasmToUpdateResponseFactories.js +1 -1
  107. package/rest/networks/support/NetworkElement.d.ts +13 -1
  108. package/rest/networks/support/NetworkElement.js +1 -1
  109. package/rest/versionManagement/gdbVersion/support/ConflictsParameters.js +1 -1
  110. package/rest/versionManagement/gdbVersion/support/DifferencesParameters.js +1 -1
  111. package/rest/versionManagement/gdbVersion/support/DifferencesResult.d.ts +25 -0
  112. package/rest/versionManagement/gdbVersion/support/InspectConflictsParameters.js +1 -1
  113. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +3 -5
  114. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.js +1 -1
  115. package/support/revision.js +1 -1
  116. package/symbols/cim/types.d.ts +27 -0
  117. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  118. package/views/2d/engine/webgl/GlyphSDFCreator.js +1 -1
  119. package/views/2d/engine/webgl/definitions.js +1 -1
  120. package/views/2d/engine/webgl/shaderGraph/graph/GlslGraphWriter.js +1 -1
  121. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  122. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  123. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  124. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  125. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  126. package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +6 -5
  127. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  128. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  129. package/views/3d/support/QualityProfile.js +1 -1
  130. package/views/3d/support/QualitySettings.js +1 -1
  131. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +11 -12
  132. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +5 -5
  133. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -1
  134. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  135. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  136. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  137. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  138. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  139. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  140. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  141. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  142. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  143. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  144. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  145. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  146. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  147. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  148. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  149. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  150. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  151. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +1 -1
  152. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  153. package/views/3d/webgl-engine/effects/precipitation/Precipitation.js +1 -1
  154. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  155. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  156. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  157. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  158. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  159. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  160. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  161. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  162. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  163. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  164. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechniqueConfiguration.js +1 -1
  165. package/views/3d/webgl-engine/shaders/oitResolution.glsl.js +1 -1
  166. package/views/SceneView.d.ts +3 -3
  167. package/views/layers/FeatureLikeLayerView.js +1 -1
  168. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  169. package/widgets/FeatureTable/Grid/Column.d.ts +2 -17
  170. package/widgets/FeatureTable/Grid/Column.js +1 -1
  171. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  172. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  173. package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -7
  174. package/widgets/FeatureTable/Grid/GroupColumn.js +1 -1
  175. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -9
  176. package/widgets/FeatureTable/support/ColumnTemplateBase.js +1 -1
  177. package/widgets/FeatureTable/support/types.d.ts +0 -8
  178. package/widgets/FeatureTable.js +1 -1
  179. package/widgets/Search/support/layerSearchUtils.js +1 -1
  180. package/widgets/Search/support/locatorUtils.js +1 -1
  181. package/assets/esri/core/workers/chunks/00e9e25269d5776f8645.js +0 -1
  182. package/assets/esri/core/workers/chunks/014a5fad55f97b9b5166.js +0 -1
  183. package/assets/esri/core/workers/chunks/06003996a378c45bc605.js +0 -1
  184. package/assets/esri/core/workers/chunks/0840e7dd62643c56ae9e.js +0 -1
  185. package/assets/esri/core/workers/chunks/0cc4b3100a7a453bd058.js +0 -1
  186. package/assets/esri/core/workers/chunks/1e4e7111d43f01c149b3.js +0 -1
  187. package/assets/esri/core/workers/chunks/3d9032217347dadcbe41.js +0 -1
  188. package/assets/esri/core/workers/chunks/4b79ebfb3328f9483147.js +0 -1
  189. package/assets/esri/core/workers/chunks/4dbbf59c79d9e72f20ee.js +0 -1
  190. package/assets/esri/core/workers/chunks/4e206957b28253ddc1a3.js +0 -1
  191. package/assets/esri/core/workers/chunks/53ef72edc3ed80bf558c.js +0 -1
  192. package/assets/esri/core/workers/chunks/6dac8dfcd63fc757ae2d.js +0 -1
  193. package/assets/esri/core/workers/chunks/73af4c947e8151d411c1.js +0 -2
  194. package/assets/esri/core/workers/chunks/752f4e0e2961fc315dca.js +0 -1
  195. package/assets/esri/core/workers/chunks/7ba67f1d7831a5576a5a.js +0 -1
  196. package/assets/esri/core/workers/chunks/a508104179e08f0f268c.js +0 -2
  197. package/assets/esri/core/workers/chunks/a6b75576d598ec161cc4.js +0 -1
  198. package/assets/esri/core/workers/chunks/b4bac22467e96be7a974.js +0 -1
  199. package/assets/esri/core/workers/chunks/bb5f909a2f26fc6a21b0.js +0 -2
  200. package/assets/esri/core/workers/chunks/bea2fd831d7a864e5995.js +0 -596
  201. package/assets/esri/core/workers/chunks/c8ef80a7c46d7d2c5172.js +0 -1
  202. package/assets/esri/core/workers/chunks/dd5b362bded458afa2d6.js +0 -1
  203. package/assets/esri/core/workers/chunks/dde94664110ff231a52d.js +0 -1
  204. package/assets/esri/core/workers/chunks/f1e5626a0cc1631a1efb.js +0 -1
  205. package/assets/esri/core/workers/chunks/f36345ebb9851ab92453.js +0 -1
  206. package/assets/esri/core/workers/chunks/f7531aa69a87814c60d1.js +0 -1
  207. package/assets/esri/core/workers/chunks/f971dcfd04af1fd652b4.js +0 -1
  208. package/assets/esri/themes/base/fonts/cdn.scss +0 -3
  209. /package/assets/esri/core/workers/chunks/{bb5f909a2f26fc6a21b0.js.LICENSE.txt → 4df19e670b6ed76c1dea.js.LICENSE.txt} +0 -0
  210. /package/assets/esri/core/workers/chunks/{a508104179e08f0f268c.js.LICENSE.txt → a76e14fe5e8b2f7ef9de.js.LICENSE.txt} +0 -0
  211. /package/assets/esri/core/workers/chunks/{73af4c947e8151d411c1.js.LICENSE.txt → d1ba118ddd0390c07f35.js.LICENSE.txt} +0 -0
  212. /package/assets/esri/core/workers/chunks/{ee057c85cdf6beb5b012.js.LICENSE.txt → d6f03f628ebfc28fdd23.js.LICENSE.txt} +0 -0
  213. /package/assets/esri/core/workers/chunks/{577cbc131b21c351fae5.js.LICENSE.txt → d87e504082e293640ece.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../Extent.js";import{getExtentForScale as n}from"./scaleUtils.js";async function t(e,n){if(e.hasZ||"2d"===n.type)return e;const t=n.map?.ground;return t?.layers.length?(await t.queryElevation(e,{cache:n.basemapTerrain?.elevationQueryCache})).geometry:e}function r(e,n,t){return a(e.center,n,t)}function a(t,r,a){const i=t.hasZ?t.z:void 0;if(r?.map){return(null!=a?n(r,a):r.extent).clone().centerAt(t).set({zmax:i,zmin:i})}const{x:o,y:c,spatialReference:m}=t;return new e({xmin:o-.25,ymin:c-.25,xmax:o+.25,ymax:c+.25,spatialReference:m,zmin:i,zmax:i})}export{a as createExtentFromPoint,t as getPointWithElevation,r as scaleExtent};
2
+ import e from"../Extent.js";import{getExtentForScale as t}from"./scaleUtils.js";async function n(e,t){if(e.hasZ||"2d"===t.type)return e;const n=t.map?.ground;return n?.layers.length?(await n.queryElevation(e,{cache:t.basemapTerrain?.elevationQueryCache})).geometry:e}function r(e,t,n){return a(e.center,t,n)}function a(n,r,a){const i=n.hasZ?n.z:void 0;if(r?.map){return(null!=a?t(r,a):r.extent).clone().centerAt(n).set({zmax:i,zmin:i})}const{x:o,y:c,spatialReference:s}=n;return new e({xmin:o-.25,ymin:c-.25,xmax:o+.25,ymax:c+.25,spatialReference:s,zmin:i,zmax:i})}function i(e,t,n,r){switch(e?.type){case"extent":return e;case"polygon":case"polyline":case"multipoint":return e.extent??void 0;case"point":return a(r.execute(e),t??void 0,n??void 0);default:return}}export{a as createExtentFromPoint,i as getExtentFromGeometry,n as getPointWithElevation,r as scaleExtent};
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.92",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
2
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.94",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -20,6 +20,7 @@ import type AttributeTableTemplate from "../tables/AttributeTableTemplate.js";
20
20
  import type { ClonableMixin } from "../core/Clonable.js";
21
21
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
22
22
  import type { MultiOriginJSONSupportMixin } from "../core/MultiOriginJSONSupport.js";
23
+ import type { debounce } from "../core/promiseUtils.js";
23
24
  import type { EditOptions, Edits, EditsResult, FeatureEditResult } from "../editing/types.js";
24
25
  import type { LayerEvents, LayerProperties } from "./Layer.js";
25
26
  import type { LayerSaveAsOptions, LayerSaveOptions, FeatureTitleOptions } from "./types.js";
@@ -67,7 +68,7 @@ import type { SimpleRendererProperties } from "../renderers/SimpleRenderer.js";
67
68
  import type { FeatureTemplateProperties } from "./support/FeatureTemplate.js";
68
69
  import type { FeatureTypeProperties } from "./support/FeatureType.js";
69
70
 
70
- export interface FeatureLayerProperties extends LayerProperties, APIKeyMixinProperties, CustomParametersMixinProperties, PortalLayerProperties, OperationalLayerProperties, RefreshableLayerProperties, ScaleRangeLayerProperties, TrackableLayerProperties, TemporalLayerProperties, OrderedLayerProperties, BlendLayerProperties, DisplayFilteredLayerProperties, PublishableLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, FeatureLayerBaseProperties, Partial<Pick<FeatureLayer, "charts" | "editingEnabled" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled" | "screenSizePerspectiveEnabled" | "typeIdField" | "uniqueIdFields">> {
71
+ export interface FeatureLayerProperties extends LayerProperties, APIKeyMixinProperties, CustomParametersMixinProperties, PortalLayerProperties, OperationalLayerProperties, RefreshableLayerProperties, ScaleRangeLayerProperties, TrackableLayerProperties, TemporalLayerProperties, OrderedLayerProperties, BlendLayerProperties, DisplayFilteredLayerProperties, PublishableLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, FeatureLayerBaseProperties, Partial<Pick<FeatureLayer, "charts" | "editingEnabled" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled" | "reload" | "screenSizePerspectiveEnabled" | "typeIdField" | "uniqueIdFields">> {
71
72
  /**
72
73
  * This property is used to configure the associated layer's [Feature Table](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature-table/). It is meant to configure how the columns display within the table in regard to visibility, column order, and sorting.
73
74
  *
@@ -1171,6 +1172,31 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1171
1172
  * layer.refreshInterval = 1;
1172
1173
  */
1173
1174
  accessor refreshInterval: number;
1175
+ /**
1176
+ * Reloads the schema of the layer and the properties from the [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#portalItem) and feature service.
1177
+ *
1178
+ * Returns `true` when the layer was updated with data from the portal item and service.
1179
+ * Returns `false` when the layer wasn't updated, isn't loaded, or made of client-side features.
1180
+ *
1181
+ * @since 5.1
1182
+ */
1183
+ reload: ReturnType<typeof debounce>;
1184
+ /**
1185
+ * Indicates if the layer is in the process of reloading its properties and schema, after a call to `reload()`.
1186
+ *
1187
+ * During the reload process, the layer properties are updated in parallel at different times, and may not be in sync for a brief moment.
1188
+ * For example, the layer's [renderer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#renderer) may reference a field not yet available in the [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#fields) array.
1189
+ *
1190
+ * @default false
1191
+ * @since 5.1
1192
+ * @see [reload](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#reload)
1193
+ * @example
1194
+ * layer.reload();
1195
+ *
1196
+ * // Wait for a stable state.
1197
+ * await whenOnce(() => !layer.reloading);
1198
+ */
1199
+ readonly reloading: boolean;
1174
1200
  /**
1175
1201
  * The renderer assigned to the layer. The renderer defines how to
1176
1202
  * visualize each feature in the layer. Depending on the renderer type,
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import r from"../request.js";import{ClonableMixin as i}from"../core/Clonable.js";import o from"../core/Collection.js";import s from"../core/Error.js";import{clone as a}from"../core/lang.js";import n from"../core/Logger.js";import{destroyMaybe as l}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as u}from"../core/object.js";import{debounce as d,throwIfAbortError as y,whenOrAbort as c}from"../core/promiseUtils.js";import{sqlAnd as m}from"../core/sql.js";import{property as f,subclass as h}from"../core/accessorSupport/decorators.js";import{excludeTables as b}from"../core/accessorSupport/layerContainerType.js";import g from"../form/FormTemplate.js";import w from"../geometry/SpatialReference.js";import v from"../graphic/FeatureGraphicOrigin.js";import F from"./Layer.js";import{MemorySource as T}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as S}from"./mixins/ArcGISService.js";import{BlendLayer as I}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as L}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as D}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as _}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as C}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as P}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as O}from"./mixins/OperationalLayer.js";import{OrderedLayer as x}from"./mixins/OrderedLayer.js";import{PortalLayer as q}from"./mixins/PortalLayer.js";import{PublishableLayer as M}from"./mixins/PublishableLayer.js";import{RefreshableLayer as A}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as Q}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as R}from"./mixins/TemporalLayer.js";import{TrackableLayer as U}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as V,parse as N,cleanTitle as B}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as G,id as J,labelsVisible as W,opacityDrawingInfo as Z,legendEnabled as $,listMode as H,popupEnabled as z,screenSizePerspectiveEnabled as k}from"./support/commonProperties.js";import{ensureLayerCredential as K,computeEffectiveEditingEnabled as X,readGlobalIdField as Y,readObjectIdField as ee,createDefaultRenderer as te,addAttachment as re,updateAttachment as ie,applyEdits as oe,uploadAssets as se,createQuery as ae,deleteAttachments as ne,fetchRecomputedExtents as le,getFeatureType as pe,getFieldDomain as ue,queryAttachments as de,queryObjectIds as ye,queryFeatureCount as ce,queryExtent as me,queryRelatedFeatures as fe,queryRelatedFeaturesCount as he,validateBinsQuery as be,hasDataChanged as ge,geometryTypeKebabDict as we}from"./support/featureLayerUtils.js";import ve from"./support/FeatureTemplate.js";import Fe from"./support/FeatureType.js";import Te from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as je,fieldConfigurationsFromPopupTemplate as Se,fieldConfigurationsFromFields as Ie}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Ee}from"./support/fieldProperties.js";import{fixRendererFields as Le,fixTimeInfoFields as De}from"./support/fieldUtils.js";import _e from"./support/LabelClass.js";import{reader as Ce}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Pe}from"./support/serviceCapabilitiesUtils.js";import Oe from"./support/SymbolLayerDrawing.js";import xe from"./support/TimeInfo.js";import qe from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Me}from"./support/versionUtils.js";import{read as Ae}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Qe}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Re,rendererTypes as Ue}from"../renderers/support/typeUtils.js";import Ve from"../rest/layerSources/DynamicDataLayer.js";import Ne from"../rest/support/FeatureSet.js";import Be from"../rest/support/Query.js";import{isNumber as Ge}from"../support/guards.js";import{createPopupTemplate as Je}from"../support/popupUtils.js";import{symbolTypes as We}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Ze}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as $e}from"../webdoc/support/unsupportedErrors.js";import{reader as He}from"../core/accessorSupport/decorators/reader.js";import{writer as ze}from"../core/accessorSupport/decorators/writer.js";const ke="FeatureLayer";function Ke(e){return e&&e instanceof o}const Xe=Ee();function Ye(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let et=class extends(C(P(_(M(D(L(I(x(R(U(Q(A(S(O(q(p(E(j(i(F)))))))))))))))))))){constructor(...e){super(...e),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new v(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.symbolLayerDrawing=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=w.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=d(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(y).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new s("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>K(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return l(e),new qe({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Pe(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return X(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=je(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Se(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&u(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return Y(t.layerDefinition||t)}readObjectIdField(e,t){return ee(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){Le(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Ae(i,t,r)??void 0;return e||n.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return te(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof o)&&(e=new T({layer:this,items:e})),Ke(t)&&this._resetMemorySource(t),Ke(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ne.fromJSON(t.featureSet);return new T({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>ve.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?V(this.url,r):r;let e=r;if(!e&&this.url){const t=N(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),B(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Fe.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await re(this,e,t,ke);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await ie(this,e,t,r,ke);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return oe(this,e,t)}async uploadAssets(e,t){return se(this,e,t)}createFieldConfigurations(){return Ie(this)}createPopupTemplate(e){return Je(this,e)}async createGraphicsSource(e){if(this._hasMemorySource()&&this.source)return this.source.load({signal:e});const{default:t}=await c(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this,supportedSourceTypes:this.supportedSourceTypes}).load({signal:e})}createQuery(){const e=ae(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=m(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ne(this,e,t,ke);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return le(this,e,ke)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return pe(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return ue(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return de(this,e,t,ke)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(Be.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ye(this,e,t,ke)}async queryFeatureCount(e,t){return ce(this,e,t,ke)}async queryExtent(e,t){return me(this,e,t,ke)}async queryRelatedFeatures(e,t){return fe(this,e,t,ke)}async queryRelatedFeaturesCount(e,t){return he(this,e,t,ke)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new s(ke,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),a=await r.queryPivot(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),a=await r.queryTopFeatures(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new s(ke,"Layer source does not support queryAttributeBins capability");be(e,i,ke);const o=await import("../rest/support/AttributeBinsQuery.js"),a=await r.queryAttributeBins(o.default.from(e),t),n=this.graphicOrigin;if(a.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(Ge)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone","uniqueIdFields"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return $e(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return $e(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return $e(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return $e(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new s(ke,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Me(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";u("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return r(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),Le(this.renderer,this.fieldsIndex),De(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Qe(this,{origin:"service"})}async hasDataChanged(){return ge(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new s("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new s("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};e([f({clonable:!1,readOnly:!0})],et.prototype,"_titleCreator",null),e([f(G)],et.prototype,"attributeTableTemplate",void 0),e([He("service","capabilities")],et.prototype,"readCapabilities",null),e([f({json:{origins:{"web-scene":{write:!1}},write:!0}})],et.prototype,"charts",void 0),e([f({readOnly:!0})],et.prototype,"createQueryVersion",null),e([f({json:{read:{source:"layerDefinition.copyrightText"}}})],et.prototype,"copyright",void 0),e([f({json:{read:{source:"layerDefinition.displayField"}}})],et.prototype,"displayField",void 0),e([f({types:We,readOnly:!0})],et.prototype,"defaultSymbol",void 0),e([f({type:Ve})],et.prototype,"dynamicDataSource",void 0),e([f({type:Boolean})],et.prototype,"editingEnabled",null),e([He(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],et.prototype,"readEditingEnabled",null),e([He("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],et.prototype,"readEditingEnabledFromWebMap",null),e([ze(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],et.prototype,"writeEditingEnabled",null),e([ze("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],et.prototype,"writeEditingEnabledToWebMap",null),e([f({readOnly:!0})],et.prototype,"effectiveEditingEnabled",null),e([f({clonable:!1,readOnly:!0})],et.prototype,"featureTitleFields",null),e([f({type:[Te],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],et.prototype,"fieldConfigurations",null),e([f({...Xe.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:Ye}}}}})],et.prototype,"fields",void 0),e([f(Xe.fieldsIndex)],et.prototype,"fieldsIndex",void 0),e([f({type:g,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],et.prototype,"formTemplate",void 0),e([f({json:{read:{source:"layerDefinition.extent"}}})],et.prototype,"fullExtent",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:Ye,writer(e,t,r){const i=e?we.toJSON(e):null;i&&u(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:we.read}}})],et.prototype,"geometryType",void 0),e([f({readOnly:!0,clonable:!1})],et.prototype,"graphicOrigin",void 0),e([f({json:{read:{source:"layerDefinition.hasM"}}})],et.prototype,"hasM",void 0),e([f({json:{read:{source:"layerDefinition.hasZ"}}})],et.prototype,"hasZ",void 0),e([f(J)],et.prototype,"id",void 0),e([f({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],et.prototype,"infoFor3D",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],et.prototype,"isTable",void 0),e([He("service","isTable",["type","geometryType"]),He("isTable",["layerDefinition.type","layerDefinition.geometryType"])],et.prototype,"readIsTable",null),e([ze("web-map","isTable")],et.prototype,"writeIsTable",null),e([f(W)],et.prototype,"labelsVisible",void 0),e([f({type:[_e],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ce,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ce,write:{layerContainerTypes:b}}})],et.prototype,"labelingInfo",void 0),e([f({type:Oe,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],et.prototype,"symbolLayerDrawing",void 0),e([f((()=>{const e=a(Z);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){u(r,Ze(e),t)}}},e})())],et.prototype,"opacity",void 0),e([f($)],et.prototype,"legendEnabled",void 0),e([f({type:["show","hide"],json:(()=>{const e=a(H.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],et.prototype,"listMode",void 0),e([He("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],et.prototype,"readGlobalIdField",null),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:Ye}}}}})],et.prototype,"objectIdField",void 0),e([He("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],et.prototype,"readObjectIdField",null),e([f({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:b}}})],et.prototype,"operationalLayerType",void 0),e([f(Xe.outFields)],et.prototype,"outFields",void 0),e([f({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],et.prototype,"path",void 0),e([f(z)],et.prototype,"popupEnabled",void 0),e([f({type:t,json:{name:"popupInfo",write:!0}})],et.prototype,"popupTemplate",void 0),e([ze("popupTemplate")],et.prototype,"writePopupTemplate",null),e([f({readOnly:!0})],et.prototype,"defaultPopupTemplate",null),e([f({types:Ue,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Re,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:b,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}})],et.prototype,"renderer",null),e([He("service","renderer",["drawingInfo.renderer","defaultSymbol"]),He("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],et.prototype,"readRenderer",null),e([f()],et.prototype,"resourceInfo",void 0),e([f((()=>{const e=a(k);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],et.prototype,"screenSizePerspectiveEnabled",void 0),e([f({clonable:!1})],et.prototype,"source",null),e([He("portal-item","source",["featureSet"]),He("web-map","source",["featureSet"])],et.prototype,"readSource",null),e([f({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],et.prototype,"spatialReference",void 0),e([f({type:Number})],et.prototype,"subtypeCode",void 0),e([f({readOnly:!1})],et.prototype,"subtypeField",void 0),e([f({readOnly:!1})],et.prototype,"subtypes",void 0),e([f({type:[ve]})],et.prototype,"templates",void 0),e([He("templates",["editFieldsInfo","creatorField","editorField","templates"])],et.prototype,"readTemplates",null),e([f({type:xe})],et.prototype,"timeInfo",void 0),e([f()],et.prototype,"title",void 0),e([He("service","title",["name"]),He("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],et.prototype,"readTitle",null),e([He("web-map","title",["layerDefinition.name","title"])],et.prototype,"readTitleFromWebMap",null),e([f({type:String})],et.prototype,"sublayerTitleMode",void 0),e([f({json:{read:!1}})],et.prototype,"type",void 0),e([f({type:String})],et.prototype,"typeIdField",void 0),e([He("service","typeIdField"),He("typeIdField",["layerDefinition.typeIdField"])],et.prototype,"readTypeIdField",null),e([f({type:[Fe]})],et.prototype,"types",void 0),e([He("service","types",["types"]),He("types",["layerDefinition.types"])],et.prototype,"readTypes",null),e([f({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:b}}}}})],et.prototype,"visible",void 0),e([He("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],et.prototype,"readVisible",null),et=e([h("esri.layers.FeatureLayer")],et);export{et as default};
2
+ import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import o from"../request.js";import{ClonableMixin as s}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p,abortHandle as u}from"../core/handleUtils.js";import{clone as d}from"../core/lang.js";import y from"../core/Logger.js";import{destroyMaybe as c}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as m}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as h}from"../core/object.js";import{debounce as f,throwIfAbortError as b,whenOrAbort as g,onAbort as w}from"../core/promiseUtils.js";import{sqlAnd as v}from"../core/sql.js";import{property as F,subclass as T}from"../core/accessorSupport/decorators.js";import{excludeTables as j}from"../core/accessorSupport/layerContainerType.js";import S from"../form/FormTemplate.js";import I from"../geometry/SpatialReference.js";import E from"../graphic/FeatureGraphicOrigin.js";import L from"./Layer.js";import{MemorySource as D}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as _}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{BlendLayer as P}from"./mixins/BlendLayer.js";import{CustomParametersMixin as O}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as x}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as q}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as M}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as A}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as Q}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as R}from"./mixins/OperationalLayer.js";import{OrderedLayer as U}from"./mixins/OrderedLayer.js";import{PortalLayer as V}from"./mixins/PortalLayer.js";import{PublishableLayer as N}from"./mixins/PublishableLayer.js";import{RefreshableLayer as G}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as J}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as B}from"./mixins/TemporalLayer.js";import{TrackableLayer as W}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as H,parse as Z,cleanTitle as $}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as k,id as z,labelsVisible as K,opacityDrawingInfo as X,legendEnabled as Y,listMode as ee,popupEnabled as te,screenSizePerspectiveEnabled as re}from"./support/commonProperties.js";import{ensureLayerCredential as ie,computeEffectiveEditingEnabled as oe,readGlobalIdField as se,readObjectIdField as ae,createDefaultRenderer as ne,addAttachment as le,updateAttachment as pe,applyEdits as ue,uploadAssets as de,createQuery as ye,deleteAttachments as ce,fetchRecomputedExtents as me,getFeatureType as he,getFieldDomain as fe,queryAttachments as be,queryObjectIds as ge,queryFeatureCount as we,queryExtent as ve,queryRelatedFeatures as Fe,queryRelatedFeaturesCount as Te,validateBinsQuery as je,hasDataChanged as Se,geometryTypeKebabDict as Ie}from"./support/featureLayerUtils.js";import Ee from"./support/FeatureTemplate.js";import Le from"./support/FeatureType.js";import De from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as _e,fieldConfigurationsFromPopupTemplate as Ce,fieldConfigurationsFromFields as Pe}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Oe}from"./support/fieldProperties.js";import{fixRendererFields as xe,fixTimeInfoFields as qe}from"./support/fieldUtils.js";import Me from"./support/LabelClass.js";import{reader as Ae}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Qe}from"./support/serviceCapabilitiesUtils.js";import Re from"./support/SymbolLayerDrawing.js";import Ue from"./support/TimeInfo.js";import Ve from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Ne}from"./support/versionUtils.js";import{read as Ge}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Je}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Be,rendererTypes as We}from"../renderers/support/typeUtils.js";import He from"../rest/layerSources/DynamicDataLayer.js";import Ze from"../rest/support/FeatureSet.js";import $e from"../rest/support/Query.js";import{isNumber as ke}from"../support/guards.js";import{createPopupTemplate as ze}from"../support/popupUtils.js";import{symbolTypes as Ke}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Xe}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as Ye}from"../webdoc/support/unsupportedErrors.js";import{reader as et}from"../core/accessorSupport/decorators/reader.js";import{writer as tt}from"../core/accessorSupport/decorators/writer.js";const rt="FeatureLayer";function it(e){return e&&e instanceof a}const ot=Oe();function st(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let at=class extends(A(Q(M(N(q(x(P(U(B(W(J(G(C(R(V(m(O(_(s(L)))))))))))))))))))){constructor(...e){super(...e),this.reload=f(async()=>{if(this.destroyed||!this.loaded||this._hasMemorySource())return!1;const e=new AbortController,t=u(e);this.addHandles(t,"reload"),this._set("reloading",!0);try{const t=await this.reloadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]});return t&&(this.sourceJSON=null,await this.initLayerProperties(await this.createGraphicsSource(e.signal))),e.signal.throwIfAborted(),t}finally{this.removeHandles("reload"),this._set("reloading",!1)}}),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new E(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.symbolLayerDrawing=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.reloading=!1,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=I.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=f(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(b).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new n("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>ie(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return c(e),new Ve({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Qe(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return oe(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=_e(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Ce(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&h(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return se(t.layerDefinition||t)}readObjectIdField(e,t){return ae(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){xe(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Ge(i,t,r)??void 0;return e||y.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return ne(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof a)&&(e=new D({layer:this,items:e})),it(t)&&this._resetMemorySource(t),it(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ze.fromJSON(t.featureSet);return new D({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>Ee.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?H(this.url,r):r;let e=r;if(!e&&this.url){const t=Z(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),$(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Le.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await le(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await pe(this,e,t,r,rt);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return ue(this,e,t)}async uploadAssets(e,t){return de(this,e,t)}createFieldConfigurations(){return Pe(this)}createPopupTemplate(e){return ze(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{if(this._hasMemorySource()&&this.source)return this.source.load({signal:r});const{default:t}=await g(import("./graphics/sources/FeatureLayerSource.js"),r),o=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(w(r,()=>o.cancelLoad())??p()),!1);return await o.load({signal:r}),o}catch(o){i.error=o,i.hasError=!0}finally{t(i)}}createQuery(){const e=ye(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=v(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ce(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return me(this,e,rt)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return he(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return fe(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return be(this,e,t,rt)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures($e.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ge(this,e,t,rt)}async queryFeatureCount(e,t){return we(this,e,t,rt)}async queryExtent(e,t){return ve(this,e,t,rt)}async queryRelatedFeatures(e,t){return Fe(this,e,t,rt)}async queryRelatedFeaturesCount(e,t){return Te(this,e,t,rt)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new n(rt,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),s=await r.queryPivot(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),s=await r.queryTopFeatures(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new n(rt,"Layer source does not support queryAttributeBins capability");je(e,i,rt);const o=await import("../rest/support/AttributeBinsQuery.js"),s=await r.queryAttributeBins(o.default.from(e),t),a=this.graphicOrigin;if(s.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(ke)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone","uniqueIdFields"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return Ye(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return Ye(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return Ye(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return Ye(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new n(rt,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Ne(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";h("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return o(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),xe(this.renderer,this.fieldsIndex),qe(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Je(this,{origin:"service"})}async hasDataChanged(){return Se(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new n("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new n("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};r([F({clonable:!1,readOnly:!0})],at.prototype,"_titleCreator",null),r([F(k)],at.prototype,"attributeTableTemplate",void 0),r([et("service","capabilities")],at.prototype,"readCapabilities",null),r([F({json:{origins:{"web-scene":{write:!1}},write:!0}})],at.prototype,"charts",void 0),r([F({readOnly:!0})],at.prototype,"createQueryVersion",null),r([F({json:{read:{source:"layerDefinition.copyrightText"}}})],at.prototype,"copyright",void 0),r([F({json:{read:{source:"layerDefinition.displayField"}}})],at.prototype,"displayField",void 0),r([F({types:Ke,readOnly:!0})],at.prototype,"defaultSymbol",void 0),r([F({type:He})],at.prototype,"dynamicDataSource",void 0),r([F({type:Boolean})],at.prototype,"editingEnabled",null),r([et(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],at.prototype,"readEditingEnabled",null),r([et("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],at.prototype,"readEditingEnabledFromWebMap",null),r([tt(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabled",null),r([tt("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabledToWebMap",null),r([F({readOnly:!0})],at.prototype,"effectiveEditingEnabled",null),r([F({clonable:!1,readOnly:!0})],at.prototype,"featureTitleFields",null),r([F({type:[De],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],at.prototype,"fieldConfigurations",null),r([F({...ot.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:st}}}}})],at.prototype,"fields",void 0),r([F(ot.fieldsIndex)],at.prototype,"fieldsIndex",void 0),r([F({type:S,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],at.prototype,"formTemplate",void 0),r([F({json:{read:{source:"layerDefinition.extent"}}})],at.prototype,"fullExtent",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:st,writer(e,t,r){const i=e?Ie.toJSON(e):null;i&&h(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Ie.read}}})],at.prototype,"geometryType",void 0),r([F({readOnly:!0,clonable:!1})],at.prototype,"graphicOrigin",void 0),r([F({json:{read:{source:"layerDefinition.hasM"}}})],at.prototype,"hasM",void 0),r([F({json:{read:{source:"layerDefinition.hasZ"}}})],at.prototype,"hasZ",void 0),r([F(z)],at.prototype,"id",void 0),r([F({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],at.prototype,"infoFor3D",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],at.prototype,"isTable",void 0),r([et("service","isTable",["type","geometryType"]),et("isTable",["layerDefinition.type","layerDefinition.geometryType"])],at.prototype,"readIsTable",null),r([tt("web-map","isTable")],at.prototype,"writeIsTable",null),r([F(K)],at.prototype,"labelsVisible",void 0),r([F({type:[Me],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ae,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ae,write:{layerContainerTypes:j}}})],at.prototype,"labelingInfo",void 0),r([F({type:Re,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],at.prototype,"symbolLayerDrawing",void 0),r([F((()=>{const e=d(X);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){h(r,Xe(e),t)}}},e})())],at.prototype,"opacity",void 0),r([F(Y)],at.prototype,"legendEnabled",void 0),r([F({type:["show","hide"],json:(()=>{const e=d(ee.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],at.prototype,"listMode",void 0),r([et("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],at.prototype,"readGlobalIdField",null),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:st}}}}})],at.prototype,"objectIdField",void 0),r([et("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],at.prototype,"readObjectIdField",null),r([F({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:j}}})],at.prototype,"operationalLayerType",void 0),r([F(ot.outFields)],at.prototype,"outFields",void 0),r([F({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],at.prototype,"path",void 0),r([F(te)],at.prototype,"popupEnabled",void 0),r([F({type:i,json:{name:"popupInfo",write:!0}})],at.prototype,"popupTemplate",void 0),r([tt("popupTemplate")],at.prototype,"writePopupTemplate",null),r([F({readOnly:!0})],at.prototype,"defaultPopupTemplate",null),r([F({types:We,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Be,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:j,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}})],at.prototype,"renderer",null),r([et("service","renderer",["drawingInfo.renderer","defaultSymbol"]),et("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],at.prototype,"readRenderer",null),r([F()],at.prototype,"resourceInfo",void 0),r([F((()=>{const e=d(re);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],at.prototype,"screenSizePerspectiveEnabled",void 0),r([F({clonable:!1})],at.prototype,"source",null),r([et("portal-item","source",["featureSet"]),et("web-map","source",["featureSet"])],at.prototype,"readSource",null),r([F({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],at.prototype,"spatialReference",void 0),r([F({type:Number})],at.prototype,"subtypeCode",void 0),r([F({readOnly:!1})],at.prototype,"subtypeField",void 0),r([F({readOnly:!1})],at.prototype,"subtypes",void 0),r([F({type:[Ee]})],at.prototype,"templates",void 0),r([et("templates",["editFieldsInfo","creatorField","editorField","templates"])],at.prototype,"readTemplates",null),r([F({type:Ue})],at.prototype,"timeInfo",void 0),r([F()],at.prototype,"title",void 0),r([et("service","title",["name"]),et("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],at.prototype,"readTitle",null),r([et("web-map","title",["layerDefinition.name","title"])],at.prototype,"readTitleFromWebMap",null),r([F({type:String})],at.prototype,"sublayerTitleMode",void 0),r([F({json:{read:!1}})],at.prototype,"type",void 0),r([F({type:String})],at.prototype,"typeIdField",void 0),r([et("service","typeIdField"),et("typeIdField",["layerDefinition.typeIdField"])],at.prototype,"readTypeIdField",null),r([F({type:[Le]})],at.prototype,"types",void 0),r([et("service","types",["types"]),et("types",["layerDefinition.types"])],at.prototype,"readTypes",null),r([F({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:j}}}}})],at.prototype,"visible",void 0),r([et("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],at.prototype,"readVisible",null),at=r([T("esri.layers.FeatureLayer")],at);export{at as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import r from"../../../core/Collection.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{LoadableMixin as o}from"../../../core/Loadable.js";import s from"../../../core/Logger.js";import{EsriPromiseMixin as n}from"../../../core/Promise.js";import{open as a}from"../../../core/workers.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{ensureType as p}from"../../../core/accessorSupport/ensureType.js";import d from"../../../geometry/Extent.js";import c from"../../../geometry/Polygon.js";import{typeKebabDictionary as y}from"../../../geometry/support/typeUtils.js";import{createFeatureIdFromLayer as h}from"../data/createFeatureId.js";import{unapplyEditsZUnitScaling as m}from"../../../rest/query/operations/editsZScale.js";import{applyFeatureSetZUnitScaling as f}from"../../../rest/query/operations/queryZScale.js";import g from"../../../rest/support/FeatureSet.js";import{shared as _}from"../../../core/accessorSupport/decorators/shared.js";let F=0,T=class extends(o(n(r))){constructor(e){super(e),this._idToClientGeometry=null,this.type="memory"}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker(t)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}get _workerGeometryType(){const e=this.layer?.geometryType;return e?this._geometryTypeRequiresClientGraphicMapping(e)?"polygon":e:null}applyEdits(e){return this.load().then(()=>this._applyEdits(e))}openPorts(){return this.load().then(()=>this._connection.openPorts())}async queryFeatures(e,t={}){await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);f(e,this.layer.spatialReference,r);const i=g.fromJSON(r);if(!this._requiresClientGraphicMapping()||!this._idToClientGeometry)return i;const o=this.layer.objectIdField;for(const s of i.features){const e=s.attributes[o],t=this._idToClientGeometry.get(e);void 0!==t&&(s.geometry=t)}return i.geometryType=this.layer.geometryType,i}async queryFeaturesJSON(e,t={}){if(this._requiresClientGraphicMapping())throw new i("query-features-json:unsupported","Cannot query in JSON format for client only geometry types (mesh and extent)");await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);return f(e,this.layer.spatialReference,r),r}queryFeatureCount(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryFeatureCount",e?e.toJSON():null,t))}queryObjectIds(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryObjectIds",e?e.toJSON():null,t))}queryExtent(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryExtent",e?e.toJSON():null,t)).then(e=>({count:e.count,extent:d.fromJSON(e.extent)}))}querySnapping(e,t={}){return this.load(t).then(()=>this._connection.invoke("querySnapping",e,t))}async queryAttributeBins(e,t={}){return await this.load(),this._connection.invoke("queryAttributeBins",e?.toJSON(),t)}async _applyEdits(e){if(!this._connection)throw new i("feature-layer-source:edit-failure","Memory source not loaded");const t=this.layer.objectIdField,r=this.layer.uniqueIdFields;let o=null;const s=[],n=[];await Promise.all([this._prepareClientMapping(e.addFeatures,null),this._prepareClientMapping(e.updateFeatures,null)]);const a=e=>r?.length&&"attributes"in e?h(e.attributes,this.layer):"objectId"in e&&null!=e.objectId?e.objectId:"attributes"in e&&null!=e.attributes[t]?e.attributes[t]:null;if(e.addFeatures&&(o=this._prepareAddFeatures(e.addFeatures)),e.deleteFeatures)for(const i of e.deleteFeatures){const e=a(i);null!=e&&s.push(e)}const l=e.updateFeatures&&this._idToClientGeometry?new Map:null;if(e.updateFeatures)for(const i of e.updateFeatures)if(n.push(this._serializeFeature(i)),l&&null!=i.geometry){const e=a(i);null!=e&&l.set(e,i)}m(o?o.features:null,n,this.layer.spatialReference);const{fullExtent:u,featureEditResults:p}=await this._connection.invoke("applyEdits",{adds:o?o.features:[],updates:n,deletes:s});return this.fullExtent=u,o&&o.finish(p.uidToObjectId),this._updateIdToClientGeometries(l,p),this._createEditsResult(p)}async _prepareClientMapping(e,t){if("mesh"!==this._layerOrSourceGeometryType||null==e)return;const r=[];for(const{geometry:i}of e)null==i||"mesh"!==i.type||i.hasExtent||i.loaded||r.push(i.load({signal:t}));r.length&&await Promise.all(r)}_updateIdToClientGeometries(e,t){if(this._idToClientGeometry){if(e)for(const r of t.updateResults){if(!r.success)continue;const t=e.get(r.objectId);null!=t&&this._addIdToClientGeometry(t)}for(const e of t.deleteResults)e.success&&this._idToClientGeometry.delete(e.objectId)}}_createEditsResult(e){return{addFeatureResults:e.addResults?e.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:e.updateResults?e.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:e.deleteResults?e.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:""};return{objectId:e.objectId,globalId:e.globalId,error:t?new i("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}_prepareAddFeatures(e){const t=new Map,r=new Array(e.length);let i=null;for(let s=0;s<e.length;s++){const o=e[s],n=this._serializeFeature(o);i||null==o.geometry||(i=o.geometry.type),r[s]=n,t.set(`${n.uid}`,o)}const o=this;return{features:r,inferredGeometryType:i,finish(e){const r=o.sourceJSON.objectIdField;for(const i in e){const s=e[i],n=t.get(i);n&&(n.attributes||(n.attributes={}),-1===s?delete n.attributes[r]:n.attributes[r]=s,o._addIdToClientGeometry(n))}}}}_addIdToClientGeometry(e){if(!this._idToClientGeometry)return;const t=this.sourceJSON.objectIdField,r=e.attributes?.[t];null!=r&&this._idToClientGeometry.set(r,e.geometry??null)}get _layerOrSourceGeometryType(){return this.layer?.geometryType??this.sourceJSON?.geometryType}_requiresClientGraphicMapping(){return this._geometryTypeRequiresClientGraphicMapping(this._layerOrSourceGeometryType)}_geometryRequiresClientGraphicMapping(e){return this._geometryTypeRequiresClientGraphicMapping(e.type)}_geometryTypeRequiresClientGraphicMapping(e){return"mesh"===e||"multipatch"===e||"extent"===e}_serializeFeature(e){const{attributes:t}=e,r=this._geometryForSerialization(e),i=(F++).toString();return r?{uid:i,geometry:r.toJSON(),attributes:t}:{uid:i,attributes:t}}_geometryForSerialization(e){const{geometry:t}=e;if(null==t)return null;if(this._geometryRequiresClientGraphicMapping(t)){return t.extent?c.fromExtent(t.extent):null}return t}async _startWorker(e){this._connection=await a("MemorySourceWorker",{strategy:has("feature-layers-workers")?"dedicated":"local",signal:e,registryTarget:this});const{fields:t,spatialReference:r,objectIdField:i,hasM:o,hasZ:n,timeInfo:l,dateFieldsTimeZone:u}=this.layer,p="defaults"===this.layer.originOf("spatialReference");await this._prepareClientMapping(this.items,e);const d=this._prepareAddFeatures(this.items);this.addHandles(this.on("before-changes",e=>{s.getLogger(this).error("Source modifications will not propagate after layer has been loaded. Please use .applyEdits() instead"),e.preventDefault()}));const{uniqueIdFields:c}=this.layer,h=c?.length?{type:c.length>1?"composite":"simple",fields:c.slice(),OIDFieldContainsHashValue:!(1===c?.length&&c.at(0)===this.layer.objectIdField)}:void 0,m={features:d.features,fields:t?.map(e=>e.toJSON()),geometryType:y.toJSON(this._workerGeometryType),hasM:"mesh"!==this._layerOrSourceGeometryType&&o,hasZ:"mesh"===this._layerOrSourceGeometryType||n,objectIdField:i,spatialReference:p?null:r&&r.toJSON(),timeInfo:l?.toJSON()??null,dateFieldsTimeZone:u,uniqueIdInfo:h},f=await this._connection.invoke("load",m,{signal:e});for(const a of f.warnings)s.getLogger(this.layer).warn("#load()",`${a.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:a});f.featureErrors.length&&s.getLogger(this.layer).error("#load()",`Failed to load ${f.featureErrors.length} features due to errors. (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}').`,f.featureErrors.map(e=>"\n\n- "+e.error.description).join(""));const g=f.layerDefinition;this._geometryTypeRequiresClientGraphicMapping(d.inferredGeometryType)&&(g.geometryType=y.toJSON(d.inferredGeometryType)),this.sourceJSON=g,this._requiresClientGraphicMapping()&&(this._idToClientGeometry=new Map),d.finish(f.assignedObjectIds)}};e([_({Type:t,ensureType:p(t)})],T.prototype,"itemType",void 0),e([l()],T.prototype,"type",void 0),e([l({constructOnly:!0})],T.prototype,"layer",void 0),e([l({readOnly:!0})],T.prototype,"_workerGeometryType",null),e([l()],T.prototype,"sourceJSON",void 0),T=e([u("esri.layers.graphics.sources.MemorySource")],T);export{T as MemorySource};
2
+ import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import r from"../../../core/Collection.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{LoadableMixin as o}from"../../../core/Loadable.js";import s from"../../../core/Logger.js";import{EsriPromiseMixin as n}from"../../../core/Promise.js";import{open as a}from"../../../core/workers.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{ensureType as p}from"../../../core/accessorSupport/ensureType.js";import d from"../../../geometry/Extent.js";import c from"../../../geometry/Polygon.js";import{typeKebabDictionary as y}from"../../../geometry/support/typeUtils.js";import{createFeatureIdFromLayer as h}from"../data/createFeatureId.js";import{unapplyEditsZUnitScaling as m}from"../../../rest/query/operations/editsZScale.js";import{applyFeatureSetZUnitScaling as f}from"../../../rest/query/operations/queryZScale.js";import g from"../../../rest/support/FeatureSet.js";import{shared as _}from"../../../core/accessorSupport/decorators/shared.js";let F=0,T=class extends(o(n(r))){constructor(e){super(e),this._idToClientGeometry=null,this.type="memory"}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker(t)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}get _workerGeometryType(){const e=this.layer?.geometryType;return e?this._geometryTypeRequiresClientGraphicMapping(e)?"polygon":e:null}applyEdits(e){return this.load().then(()=>this._applyEdits(e))}openPorts(){return this.load().then(()=>this._connection.openPorts())}async queryFeatures(e,t={}){await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);f(e,this.layer.spatialReference,r);const i=g.fromJSON(r);if(!this._requiresClientGraphicMapping()||!this._idToClientGeometry)return i;const o=this.layer.objectIdField;for(const s of i.features){const e=s.attributes[o],t=this._idToClientGeometry.get(e);void 0!==t&&(s.geometry=t)}return i.geometryType=this.layer.geometryType,i}async queryFeaturesJSON(e,t={}){if(this._requiresClientGraphicMapping())throw new i("query-features-json:unsupported","Cannot query in JSON format for client only geometry types (mesh and extent)");await this.load(t);const r=await this._connection.invoke("queryFeatures",e?e.toJSON():null,t);return f(e,this.layer.spatialReference,r),r}queryFeatureCount(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryFeatureCount",e?e.toJSON():null,t))}queryObjectIds(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryObjectIds",e?e.toJSON():null,t))}queryExtent(e,t={}){return this.load(t).then(()=>this._connection.invoke("queryExtent",e?e.toJSON():null,t)).then(e=>({count:e.count,extent:d.fromJSON(e.extent)}))}querySnapping(e,t={}){return this.load(t).then(()=>this._connection.invoke("querySnapping",e,t))}async queryAttributeBins(e,t={}){return await this.load(),this._connection.invoke("queryAttributeBins",e?.toJSON(),t)}async _applyEdits(e){if(!this._connection)throw new i("feature-layer-source:edit-failure","Memory source not loaded");const t=this.layer.objectIdField,r=this.layer.uniqueIdFields;let o=null;const s=[],n=[];await Promise.all([this._prepareClientMapping(e.addFeatures,null),this._prepareClientMapping(e.updateFeatures,null)]);const a=e=>r?.length&&"attributes"in e?h(e,this.layer):"objectId"in e&&null!=e.objectId?e.objectId:"attributes"in e&&null!=e.attributes[t]?e.attributes[t]:null;if(e.addFeatures&&(o=this._prepareAddFeatures(e.addFeatures)),e.deleteFeatures)for(const i of e.deleteFeatures){const e=a(i);null!=e&&s.push(e)}const l=e.updateFeatures&&this._idToClientGeometry?new Map:null;if(e.updateFeatures)for(const i of e.updateFeatures)if(n.push(this._serializeFeature(i)),l&&null!=i.geometry){const e=a(i);null!=e&&l.set(e,i)}m(o?o.features:null,n,this.layer.spatialReference);const{fullExtent:u,featureEditResults:p}=await this._connection.invoke("applyEdits",{adds:o?o.features:[],updates:n,deletes:s});return this.fullExtent=u,o&&o.finish(p.uidToObjectId),this._updateIdToClientGeometries(l,p),this._createEditsResult(p)}async _prepareClientMapping(e,t){if("mesh"!==this._layerOrSourceGeometryType||null==e)return;const r=[];for(const{geometry:i}of e)null==i||"mesh"!==i.type||i.hasExtent||i.loaded||r.push(i.load({signal:t}));r.length&&await Promise.all(r)}_updateIdToClientGeometries(e,t){if(this._idToClientGeometry){if(e)for(const r of t.updateResults){if(!r.success)continue;const t=e.get(r.objectId);null!=t&&this._addIdToClientGeometry(t)}for(const e of t.deleteResults)e.success&&this._idToClientGeometry.delete(e.objectId)}}_createEditsResult(e){return{addFeatureResults:e.addResults?e.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:e.updateResults?e.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:e.deleteResults?e.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:""};return{objectId:e.objectId,globalId:e.globalId,error:t?new i("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}_prepareAddFeatures(e){const t=new Map,r=new Array(e.length);let i=null;for(let s=0;s<e.length;s++){const o=e[s],n=this._serializeFeature(o);i||null==o.geometry||(i=o.geometry.type),r[s]=n,t.set(`${n.uid}`,o)}const o=this;return{features:r,inferredGeometryType:i,finish(e){const r=o.sourceJSON.objectIdField;for(const i in e){const s=e[i],n=t.get(i);n&&(n.attributes||(n.attributes={}),-1===s?delete n.attributes[r]:n.attributes[r]=s,o._addIdToClientGeometry(n))}}}}_addIdToClientGeometry(e){if(!this._idToClientGeometry)return;const t=this.sourceJSON.objectIdField,r=e.attributes?.[t];null!=r&&this._idToClientGeometry.set(r,e.geometry??null)}get _layerOrSourceGeometryType(){return this.layer?.geometryType??this.sourceJSON?.geometryType}_requiresClientGraphicMapping(){return this._geometryTypeRequiresClientGraphicMapping(this._layerOrSourceGeometryType)}_geometryRequiresClientGraphicMapping(e){return this._geometryTypeRequiresClientGraphicMapping(e.type)}_geometryTypeRequiresClientGraphicMapping(e){return"mesh"===e||"multipatch"===e||"extent"===e}_serializeFeature(e){const{attributes:t}=e,r=this._geometryForSerialization(e),i=(F++).toString();return r?{uid:i,geometry:r.toJSON(),attributes:t}:{uid:i,attributes:t}}_geometryForSerialization(e){const{geometry:t}=e;if(null==t)return null;if(this._geometryRequiresClientGraphicMapping(t)){return t.extent?c.fromExtent(t.extent):null}return t}async _startWorker(e){this._connection=await a("MemorySourceWorker",{strategy:has("feature-layers-workers")?"dedicated":"local",signal:e,registryTarget:this});const{fields:t,spatialReference:r,objectIdField:i,hasM:o,hasZ:n,timeInfo:l,dateFieldsTimeZone:u}=this.layer,p="defaults"===this.layer.originOf("spatialReference");await this._prepareClientMapping(this.items,e);const d=this._prepareAddFeatures(this.items);this.addHandles(this.on("before-changes",e=>{s.getLogger(this).error("Source modifications will not propagate after layer has been loaded. Please use .applyEdits() instead"),e.preventDefault()}));const{uniqueIdFields:c}=this.layer,h=c?.length?{type:c.length>1?"composite":"simple",fields:c.slice(),OIDFieldContainsHashValue:!(1===c?.length&&c.at(0)===this.layer.objectIdField)}:void 0,m={features:d.features,fields:t?.map(e=>e.toJSON()),geometryType:y.toJSON(this._workerGeometryType),hasM:"mesh"!==this._layerOrSourceGeometryType&&o,hasZ:"mesh"===this._layerOrSourceGeometryType||n,objectIdField:i,spatialReference:p?null:r&&r.toJSON(),timeInfo:l?.toJSON()??null,dateFieldsTimeZone:u,uniqueIdInfo:h},f=await this._connection.invoke("load",m,{signal:e});for(const a of f.warnings)s.getLogger(this.layer).warn("#load()",`${a.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:a});f.featureErrors.length&&s.getLogger(this.layer).error("#load()",`Failed to load ${f.featureErrors.length} features due to errors. (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}').`,f.featureErrors.map(e=>"\n\n- "+e.error.description).join(""));const g=f.layerDefinition;this._geometryTypeRequiresClientGraphicMapping(d.inferredGeometryType)&&(g.geometryType=y.toJSON(d.inferredGeometryType)),this.sourceJSON=g,this._requiresClientGraphicMapping()&&(this._idToClientGeometry=new Map),d.finish(f.assignedObjectIds)}};e([_({Type:t,ensureType:p(t)})],T.prototype,"itemType",void 0),e([l()],T.prototype,"type",void 0),e([l({constructOnly:!0})],T.prototype,"layer",void 0),e([l({readOnly:!0})],T.prototype,"_workerGeometryType",null),e([l()],T.prototype,"sourceJSON",void 0),T=e([u("esri.layers.graphics.sources.MemorySource")],T);export{T as MemorySource};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../config.js";import{id as r}from"../../kernel.js";import s from"../../request.js";import{result as i}from"../../core/asyncUtils.js";import a from"../../core/Error.js";import o from"../../core/Logger.js";import{destroyMaybe as l}from"../../core/maybe.js";import{throwIfAborted as n,isAbortError as p,throwIfAbortError as u}from"../../core/promiseUtils.js";import{hasSameCanonicalPortal as d,hasSamePortal as c,normalize as m}from"../../core/urlUtils.js";import{property as h,subclass as f}from"../../core/accessorSupport/decorators.js";import{getOwningPortalUrl as g}from"../support/layerUtils.js";import y from"../../portal/Portal.js";import I from"../../portal/PortalItem.js";import v from"../../portal/PortalUser.js";import{getUserPrivileges as P}from"../../portal/support/portalItemUtils.js";import{reader as U}from"../../core/accessorSupport/decorators/reader.js";import{writer as w}from"../../core/accessorSupport/decorators/writer.js";const _=_=>{const E=_;let b=class extends E{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=l(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,r){if(t.itemId)return new I({id:t.itemId,portal:r?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:r}=await import("../../portal/support/layersLoader.js");return n(t),await r({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(r){throw p(r)||o.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${r}`),r}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch(e=>(u(e),!0)))}async setUserPrivileges(e,r){if(!t.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(r);if(this.url)try{const{features:{edit:t,fullEdit:s},content:{updateItem:i}}=await this._fetchUserPrivileges(e,r);this._set("userHasEditingPrivileges",t),this._set("userHasFullEditingPrivileges",s),this._set("userHasUpdateItemPrivileges",i)}catch(s){u(s)}}async _fetchUserPrivileges(e,t){let s=this.portalItem;if(!e||!s||!s.loaded||s.sourceUrl)return this._fetchFallbackUserPrivileges(t);const i=!r?.findCredential(this.url),a=e===s.id;if(a&&s.portal.user)return this._getUserPrivileges(s,i);let o,l;if(a)o=s.portal.url;else try{o=await g(this.url,t)}catch(m){u(m)}if(!o||!d(o,s.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;l=await(r?.getCredential(`${o}/sharing`,{prompt:!1,signal:e}))}catch(m){u(m)}const n=!0,p=!1,c=!1;if(!l)return{features:{edit:n,fullEdit:p},content:{updateItem:c}};try{if(a?await s.reload():(s=new I({id:e,portal:{url:o}}),await s.load(t)),s.portal.user)return this._getUserPrivileges(s,i)}catch(m){u(m)}return{features:{edit:n,fullEdit:p},content:{updateItem:c}}}_getUserPrivileges(e,t){const r=P(e);return t&&(r.features.edit=!0),r}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(r){u(r)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?r?.findCredential(this.url):null;if(!t)return!0;const s=j.credential===t?j.user:await this._fetchEditingUser(e);return j.credential=t,j.user=s,null==s?.privileges||s.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const a=r?.findServerInfo(this.url??"");if(!a?.owningSystemUrl)return null;const o=`${a.owningSystemUrl}/sharing/rest`,l=y.getDefault();if(l&&l.loaded&&m(l.restUrl)===m(o))return l.user;const n=`${o}/community/self`,p=null!=e?e.signal:null,u=await i(s(n,{authMode:"no-prompt",query:{f:"json"},signal:p}));return u.ok?v.fromJSON(u.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const r=t?.portal,s=this.portalItem?.id&&(this.portalItem.portal||y.getDefault());return r&&s&&!c(s.restUrl,r.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:I})],b.prototype,"portalItem",null),e([U("web-document","portalItem",["itemId"])],b.prototype,"readPortalItem",null),e([w("web-document","portalItem",{itemId:{type:String}})],b.prototype,"writePortalItem",null),e([h({clonable:!1})],b.prototype,"resourceReferences",void 0),e([h({type:Boolean,readOnly:!0})],b.prototype,"userHasEditingPrivileges",void 0),e([h({type:Boolean,readOnly:!0})],b.prototype,"userHasFullEditingPrivileges",void 0),e([h({type:Boolean,readOnly:!0})],b.prototype,"userHasUpdateItemPrivileges",void 0),b=e([f("esri.layers.mixins.PortalLayer")],b),b},j={credential:null,user:null};export{_ as PortalLayer};
2
+ import{__decorate as t}from"tslib";import e from"../../config.js";import{id as r}from"../../kernel.js";import s 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 l from"../../core/Logger.js";import{destroyMaybe as p}from"../../core/maybe.js";import{throwIfAborted as n,isAbortError as u,throwIfAbortError as d}from"../../core/promiseUtils.js";import{hasSameCanonicalPortal as m,hasSamePortal as c,normalize as h}from"../../core/urlUtils.js";import{property as f,subclass as g}from"../../core/accessorSupport/decorators.js";import{getOwningPortalUrl as y}from"../support/layerUtils.js";import I from"../../portal/Portal.js";import v from"../../portal/PortalItem.js";import P from"../../portal/PortalUser.js";import{getUserPrivileges as w}from"../../portal/support/portalItemUtils.js";import{reader as U}from"../../core/accessorSupport/decorators/reader.js";import{writer as j}from"../../core/accessorSupport/decorators/writer.js";const _=_=>{const H=_;let b=class extends H{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=p(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}get portalItem(){return this._get("portalItem")}set portalItem(t){t!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",t))}readPortalItem(t,e,r){if(e.itemId)return new v({id:e.itemId,portal:r?.portal})}writePortalItem(t,e){t?.id&&(e.itemId=t.id)}async loadFromPortal(t,e){if(this.portalItem?.id)try{const{load:r}=await import("../../portal/support/layersLoader.js");return n(e),await r({instance:this,supportedTypes:t.supportedTypes,validateItem:t.validateItem,supportsData:t.supportsData,layerModuleTypeMap:t.layerModuleTypeMap,populateGroupLayer:t.populateGroupLayer},e)}catch(r){throw u(r)||l.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${r}`),r}}async reloadFromPortal(t){if(!this.loaded||!this.portalItem?.id)return!1;try{const{reload:e}=await import("../../portal/support/layersLoader.js"),r=new AbortController,s=o(r);return this.addHandles(s,"reloadFromPortal"),await e({instance:this,supportedTypes:t.supportedTypes,validateItem:t.validateItem,supportsData:t.supportsData,layerModuleTypeMap:t.layerModuleTypeMap,populateGroupLayer:t.populateGroupLayer},{signal:r.signal})}catch(e){throw u(e)||l.getLogger(this).warn(`Failed to reload layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}finally{this.removeHandles("reloadFromPortal")}}async finishLoadEditablePortalLayer(t){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(t).catch(t=>(d(t),!0)))}async setUserPrivileges(t,r){if(!e.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(r);if(this.url)try{const{features:{edit:e,fullEdit:s},content:{updateItem:i}}=await this._fetchUserPrivileges(t,r);this._set("userHasEditingPrivileges",e),this._set("userHasFullEditingPrivileges",s),this._set("userHasUpdateItemPrivileges",i)}catch(s){d(s)}}async _fetchUserPrivileges(t,e){let s=this.portalItem;if(!t||!s||!s.loaded||s.sourceUrl)return this._fetchFallbackUserPrivileges(e);const i=!r?.findCredential(this.url),a=t===s.id;if(a&&s.portal.user)return this._getUserPrivileges(s,i);let o,l;if(a)o=s.portal.url;else try{o=await y(this.url,e)}catch(c){d(c)}if(!o||!m(o,s.portal.url))return this._fetchFallbackUserPrivileges(e);try{const t=null!=e?e.signal:null;l=await(r?.getCredential(`${o}/sharing`,{prompt:!1,signal:t}))}catch(c){d(c)}const p=!0,n=!1,u=!1;if(!l)return{features:{edit:p,fullEdit:n},content:{updateItem:u}};try{if(a?await s.reload():(s=new v({id:t,portal:{url:o}}),await s.load(e)),s.portal.user)return this._getUserPrivileges(s,i)}catch(c){d(c)}return{features:{edit:p,fullEdit:n},content:{updateItem:u}}}_getUserPrivileges(t,e){const r=w(t);return e&&(r.features.edit=!0),r}async _fetchFallbackUserPrivileges(t){let e=!0;try{e=await this._fetchUserHasEditingPrivileges(t)}catch(r){d(r)}return{features:{edit:e,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(t){const e=this.url?r?.findCredential(this.url):null;if(!e)return!0;const s=E.credential===e?E.user:await this._fetchEditingUser(t);return E.credential=e,E.user=s,null==s?.privileges||s.privileges.includes("features:user:edit")}async _fetchEditingUser(t){const e=this.portalItem?.portal?.user;if(e)return e;const a=r?.findServerInfo(this.url??"");if(!a?.owningSystemUrl)return null;const o=`${a.owningSystemUrl}/sharing/rest`,l=I.getDefault();if(l&&l.loaded&&h(l.restUrl)===h(o))return l.user;const p=`${o}/community/self`,n=null!=t?t.signal:null,u=await i(s(p,{authMode:"no-prompt",query:{f:"json"},signal:n}));return u.ok?P.fromJSON(u.value.data):null}read(t,e){e&&(e.layer=this),super.read(t,e)}write(t,e){const r=e?.portal,s=this.portalItem?.id&&(this.portalItem.portal||I.getDefault());return r&&s&&!c(s.restUrl,r.restUrl)?(e.messages&&e.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(t,{...e,layer:this})}};return t([f({type:v})],b.prototype,"portalItem",null),t([U("web-document","portalItem",["itemId"])],b.prototype,"readPortalItem",null),t([j("web-document","portalItem",{itemId:{type:String}})],b.prototype,"writePortalItem",null),t([f({clonable:!1})],b.prototype,"resourceReferences",void 0),t([f({type:Boolean,readOnly:!0})],b.prototype,"userHasEditingPrivileges",void 0),t([f({type:Boolean,readOnly:!0})],b.prototype,"userHasFullEditingPrivileges",void 0),t([f({type:Boolean,readOnly:!0})],b.prototype,"userHasUpdateItemPrivileges",void 0),b=t([g("esri.layers.mixins.PortalLayer")],b),b},E={credential:null,user:null};export{_ as PortalLayer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{eachAlways as s,createAbortError as r}from"../../../core/promiseUtils.js";import{property as a,subclass as o}from"../../../core/accessorSupport/decorators.js";import i from"../../../geometry/Extent.js";import n from"../../../geometry/SpatialReference.js";import l from"./BaseRaster.js";import m from"./InMemoryRaster.js";import{parsePAMInfo as f}from"./pamParser.js";import{getFormat as p}from"../formats/RasterCodec.js";import{estimateStatisticsFromHistograms as c}from"../functions/stretchUtils.js";import u from"../transforms/PolynomialTransform.js";let h=class extends l{fetchRawTile(t,e,s,r={}){return this._inMemoryRaster.fetchRawTile(t,e,s,r)}async _open(t){const e=await this._fetchData(t);let{spatialReference:s,statistics:r,histograms:a,transform:o}=await this._fetchAuxiliaryData(t);const l=!s;l&&(s=new n({wkid:3857})),a?.length&&null==r&&(r=c(a));const{width:f,height:p}=e;let u=new i({xmin:-.5,ymin:.5-p,xmax:f-.5,ymax:.5,spatialReference:s});const h=o?o.forwardTransform(u):u;let d=!0;if(o){const t=o.forwardCoefficients;d=t&&0===t[1]&&0===t[2],d&&(o=null,u=h)}const w=new m({source:{extent:h,nativeExtent:u,transform:o,pixelBlocks:[e],statistics:r,histograms:a,keyProperties:{DateType:"Processed"},isPseudoSpatialReference:l},ioConfig:{sampling:"closest",skipStatistics:!0}});this.ioConfig.skipMapInfo&&(w.ioConfig.skipMapInfo=!0),await w.open(),w.source=null,this._set("rasterInfo",w.rasterInfo),this._inMemoryRaster=w}async _fetchData(t){const{data:s}=await this.request(this.url,{responseType:"array-buffer",signal:t?.signal}),r=p(s).toUpperCase();if("JPG"!==r&&"PNG"!==r&&"GIF"!==r&&"BMP"!==r)throw new e("image-aux-raster:open","the data is not a supported format");this._set("datasetFormat",r);const a=r.toLowerCase(),o=await this.decodePixelBlock(s,{format:a});if(null==o)throw new e("image-aux-raster:open","the data cannot be decoded");return o}async _fetchAuxiliaryData(t){const e=t?.signal,{skipExtensions:a=[],skipMapInfo:o}=this.ioConfig,i=o||a.includes("aux.xml")?null:this.request(this.url+".aux.xml",{responseType:"xml",signal:e}),n=this.datasetFormat,l="JPG"===n?"jgw":"PNG"===n?"pgw":"BMP"===n?"bpw":null,m=l&&a.includes(l)?null:this.request(this.url.slice(0,this.url.lastIndexOf("."))+"."+l,{responseType:"text",signal:e}),p=await s([i,m]);if(e?.aborted)throw r();const c=f(p[0].value?.data);if(!c.transform){const t=p[1].value?p[1].value.data.split("\n").slice(0,6).map(t=>Number(t)):null;c.transform=6===t?.length?new u({forwardCoefficients:[t[4],t[5],t[0],-t[1],t[2],-t[3]]}):null}return c}};t([a({type:String,json:{write:!0}})],h.prototype,"datasetFormat",void 0),h=t([o("esri.layers.raster.datasets.ImageAuxRaster")],h);const d=h;export{d as default};
2
+ import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{eachAlways as s,createAbortError as a}from"../../../core/promiseUtils.js";import{property as r,subclass as o}from"../../../core/accessorSupport/decorators.js";import i from"../../../geometry/Extent.js";import n from"../../../geometry/SpatialReference.js";import l from"./BaseRaster.js";import c from"./InMemoryRaster.js";import{parsePAMInfo as m}from"./pamParser.js";import{getFormat as f}from"../formats/RasterCodec.js";import{estimateStatisticsFromHistograms as p}from"../functions/stretchUtils.js";import h from"../transforms/PolynomialTransform.js";let u=class extends l{fetchRawTile(t,e,s,a={}){if(this._imageBlob){const{blockWidth:a,blockHeight:r}=this.rasterInfo.storageInfo;return this.decodePixelBlock(this._imageBlob,{tileSize:[a,r],tileIndex:[t,e,s],canvasUsage:"canvas-only",cloneSource:!0})}return this._inMemoryRaster.fetchRawTile(t,e,s,a)}async _open(t){const s=await this._fetchData(t);if(null==s)throw new e("image-aux-raster:open","the data cannot be decoded");let{spatialReference:a,statistics:r,histograms:o,transform:l}=await this._fetchAuxiliaryData(t);const m=!a;m&&(a=new n({wkid:3857})),o?.length&&null==r&&(r=p(o));const{width:f,height:h}=s;let u=new i({xmin:-.5,ymin:.5-h,xmax:f-.5,ymax:.5,spatialReference:a});const d=l?l.forwardTransform(u):u;let g=!0;if(l){const t=l.forwardCoefficients;g=t&&0===t[1]&&0===t[2],g&&(l=null,u=d)}const w=new c({preGenerateTiles:!1,source:{extent:d,nativeExtent:u,transform:l,pixelBlocks:[s],statistics:r,histograms:o,keyProperties:{DateType:"Processed"},isPseudoSpatialReference:m},ioConfig:{sampling:"closest",skipStatistics:!0}});this.ioConfig.skipMapInfo&&(w.ioConfig.skipMapInfo=!0),await w.open(),w.source=null,this._set("rasterInfo",w.rasterInfo),this._inMemoryRaster=w}async _fetchData(t){const{data:s}=await this.request(this.url,{responseType:"array-buffer",signal:t?.signal}),a=f(s).toUpperCase();if("JPG"!==a&&"PNG"!==a&&"GIF"!==a&&"BMP"!==a)throw new e("image-aux-raster:open","the data is not a supported format");this._set("datasetFormat",a);const r=a.toLowerCase();try{const t=await this.decodePixelBlock(s,{format:r,canvasUsage:"canvas-only",cloneSource:!0});return this._imageBlob=s,t}catch{return this.decodePixelBlock(s,{format:r,canvasUsage:"no-canvas"})}}async _fetchAuxiliaryData(t){const e=t?.signal,{skipExtensions:r=[],skipMapInfo:o}=this.ioConfig,i=o||r.includes("aux.xml")?null:this.request(this.url+".aux.xml",{responseType:"xml",signal:e}),n=this.datasetFormat,l="JPG"===n?"jgw":"PNG"===n?"pgw":"BMP"===n?"bpw":null,c=l&&r.includes(l)?null:this.request(this.url.slice(0,this.url.lastIndexOf("."))+"."+l,{responseType:"text",signal:e}),f=await s([i,c]);if(e?.aborted)throw a();const p=m(f[0].value?.data);if(!p.transform){const t=f[1].value?f[1].value.data.split("\n").slice(0,6).map(t=>Number(t)):null;p.transform=6===t?.length?new h({forwardCoefficients:[t[4],t[5],t[0],-t[1],t[2],-t[3]]}):null}return p}};t([r({type:String,json:{write:!0}})],u.prototype,"datasetFormat",void 0),u=t([o("esri.layers.raster.datasets.ImageAuxRaster")],u);const d=u;export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{eachAlways as i}from"../../../core/promiseUtils.js";import{property as s,subclass as a}from"../../../core/accessorSupport/decorators.js";import o from"../../../geometry/Extent.js";import r from"../../../geometry/SpatialReference.js";import l from"./BaseRaster.js";import{getSliceIndex as n}from"./multidimensionalUtils.js";import{clipTile as m,split as p}from"../functions/pixelUtils.js";import{estimateStatisticsHistograms as c,computeStatisticsHistograms as u}from"../functions/stretchUtils.js";import h from"../../support/DimensionalDefinition.js";import d from"../../support/RasterInfo.js";let f=class extends l{constructor(){super(...arguments),this.datasetFormat="MEMORY",this.source=null}get url(){return""}fetchRawTile(t,e,i,s={}){if(!this._pixelBlockTiles){const{rasterInfo:a}=this,[o,r]=a.storageInfo.tileInfo.size,{sliceId:l}=s,{pixelBlocks:n}=this.source,p={pixelBlock:null==l?n[0]:n[l],useBilinear:"thematic"!==a.dataType,tileSize:{width:o,height:r},level:t,row:e,col:i},c=this.rasterJobHandler?this.rasterJobHandler.clipTile(p,s):m(p);return Promise.resolve(c)}const a=this._pixelBlockTiles.get(`${t}/${e}/${i}`);return Promise.resolve(a)}async _open(t){const e=this.source,{pixelBlocks:i,attributeTable:s,statistics:a,histograms:l,name:n,nativeExtent:m,transform:p,colormap:c}=e,u=i[0],{width:h,height:f,pixelType:x}=u,y=e.extent??new o({xmin:-.5,ymin:.5,xmax:h-.5,ymax:f-.5,spatialReference:new r({wkid:3857})}),g=e.isPseudoSpatialReference??!e.extent,b={x:y.width/h,y:y.height/f},I={...e.keyProperties};e.dataType&&(I.DataType=e.dataType),e.bandInfos&&(I.BandProperties=e.bandInfos.map(t=>t.toJSON())),s&&(I.DataType="Thematic");const v=new d({width:h,height:f,pixelType:x,extent:y,nativeExtent:m,attributeTable:s,colormap:c,transform:p,pixelSize:b,spatialReference:y.spatialReference,bandCount:u.pixels.length,keyProperties:I,multidimensionalInfo:e.multidimensionalInfo,statistics:a,isPseudoSpatialReference:g,histograms:l});this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(v),this.createRemoteDatasetStorageInfo(v,512,512),this._set("rasterInfo",v),this.updateTileInfo(),v.multidimensionalInfo?await this._buildMDimStats(e.pixelBlocks,v.multidimensionalInfo):await this._buildInMemoryRaster(u,{width:512,height:512},t),v.multidimensionalInfo||(this.source=null),this.datasetName=n}async _buildInMemoryRaster(t,s,a){const{rasterInfo:o}=this,r=o.storageInfo.maximumPyramidLevel??0,l="thematic"!==o.dataType,n=this.rasterJobHandler?this.rasterJobHandler.split({pixelBlock:t,tileSize:s,maximumPyramidLevel:r,useBilinear:l},a):Promise.resolve(p(t,s,r,l)),m=null!=o.statistics,u=null!=o.histograms,h=this.ioConfig.skipStatistics||m?Promise.resolve({statistics:null,histograms:null}):this.rasterJobHandler?this.rasterJobHandler.estimateStatisticsHistograms({pixelBlock:t},a):Promise.resolve(c(t)),d=await i([n,h]);if(!d[0].value&&d[1].value)throw new e("inmemory-raster:open","failed to build in memory raster");this._pixelBlockTiles=d[0].value,m||(o.statistics=d[1].value?.statistics),u||(o.histograms=d[1].value?.histograms)}async _buildMDimStats(t,e,i){for(let s=0;s<e.variables.length;s++){const a=e.variables[s];if(a.statistics)continue;const o=a.dimensions.map(t=>new h({variableName:a.name,dimensionName:t.name,values:[t.values?.[0]??t.extent?.[0]],isSlice:!0})),r=n(o,e),l=null==r?null:t[r];if(null==l)continue;const m=this.rasterJobHandler?await this.rasterJobHandler.computeStatisticsHistograms({pixelBlock:l},i):u(l);a.statistics=m.statistics,a.histograms||(a.histograms=m.histograms)}}};t([s({type:String,json:{write:!0}})],f.prototype,"datasetFormat",void 0),t([s()],f.prototype,"source",void 0),t([s()],f.prototype,"url",null),f=t([a("esri.layers.raster.datasets.InMemoryRaster")],f);const x=f;export{x as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{eachAlways as i}from"../../../core/promiseUtils.js";import{property as s,subclass as r}from"../../../core/accessorSupport/decorators.js";import a from"../../../geometry/Extent.js";import o from"../../../geometry/SpatialReference.js";import l from"./BaseRaster.js";import{getSliceIndex as n}from"./multidimensionalUtils.js";import{clipTile as m,split as p}from"../functions/pixelUtils.js";import{estimateStatisticsHistograms as c,computeStatisticsHistograms as u}from"../functions/stretchUtils.js";import h from"../../support/DimensionalDefinition.js";import d from"../../support/RasterInfo.js";let f=class extends l{constructor(){super(...arguments),this.datasetFormat="MEMORY",this.preGenerateTiles=!0,this.source=null}get url(){return""}fetchRawTile(e,t,i,s={}){if(!this._pixelBlockTiles){const{rasterInfo:r}=this,[a,o]=r.storageInfo.tileInfo.size,{sliceId:l}=s,{pixelBlocks:n}=this.source,p={pixelBlock:null==l?n[0]:n[l],useBilinear:"thematic"!==r.dataType,tileSize:{width:a,height:o},level:e,row:t,col:i},c=this.rasterJobHandler?this.rasterJobHandler.clipTile(p,s):m(p);return Promise.resolve(c)}const r=this._pixelBlockTiles.get(`${e}/${t}/${i}`);return Promise.resolve(r)}async _open(e){const t=this.source,{pixelBlocks:i,attributeTable:s,statistics:r,histograms:l,name:n,nativeExtent:m,transform:p,colormap:c}=t,u=i[0],{width:h,height:f,pixelType:y}=u,x=t.extent??new a({xmin:-.5,ymin:.5,xmax:h-.5,ymax:f-.5,spatialReference:new o({wkid:3857})}),g=t.isPseudoSpatialReference??!t.extent,b={x:x.width/h,y:x.height/f},v={...t.keyProperties};t.dataType&&(v.DataType=t.dataType),t.bandInfos&&(v.BandProperties=t.bandInfos.map(e=>e.toJSON())),s&&(v.DataType="Thematic");const I=new d({width:h,height:f,pixelType:y,extent:x,nativeExtent:m,attributeTable:s,colormap:c,transform:p,pixelSize:b,spatialReference:x.spatialReference,bandCount:u.pixels.length,keyProperties:v,multidimensionalInfo:t.multidimensionalInfo,statistics:r,isPseudoSpatialReference:g,histograms:l});this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(I),this.createRemoteDatasetStorageInfo(I,512,512),this._set("rasterInfo",I),this.updateTileInfo(),I.multidimensionalInfo?await this._buildMDimStats(t.pixelBlocks,I.multidimensionalInfo):this.preGenerateTiles&&await this._buildInMemoryRaster(u,{width:512,height:512},e),I.multidimensionalInfo||(this.source=null),this.datasetName=n}async _buildInMemoryRaster(e,s,r){const{rasterInfo:a}=this,o=a.storageInfo.maximumPyramidLevel??0,l="thematic"!==a.dataType,n=this.rasterJobHandler?this.rasterJobHandler.split({pixelBlock:e,tileSize:s,maximumPyramidLevel:o,useBilinear:l},r):Promise.resolve(p(e,s,o,l)),m=null!=a.statistics,u=null!=a.histograms,h=this.ioConfig.skipStatistics||m?Promise.resolve({statistics:null,histograms:null}):this.rasterJobHandler?this.rasterJobHandler.estimateStatisticsHistograms({pixelBlock:e},r):Promise.resolve(c(e)),d=await i([n,h]);if(!d[0].value&&d[1].value)throw new t("inmemory-raster:open","failed to build in memory raster");this._pixelBlockTiles=d[0].value,m||(a.statistics=d[1].value?.statistics),u||(a.histograms=d[1].value?.histograms)}async _buildMDimStats(e,t,i){for(let s=0;s<t.variables.length;s++){const r=t.variables[s];if(r.statistics)continue;const a=r.dimensions.map(e=>new h({variableName:r.name,dimensionName:e.name,values:[e.values?.[0]??e.extent?.[0]],isSlice:!0})),o=n(a,t),l=null==o?null:e[o];if(null==l)continue;const m=this.rasterJobHandler?await this.rasterJobHandler.computeStatisticsHistograms({pixelBlock:l},i):u(l);r.statistics=m.statistics,r.histograms||(r.histograms=m.histograms)}}};e([s({type:String,json:{write:!0}})],f.prototype,"datasetFormat",void 0),e([s({constructOnly:!0})],f.prototype,"preGenerateTiles",void 0),e([s()],f.prototype,"source",void 0),e([s()],f.prototype,"url",null),f=e([r("esri.layers.raster.datasets.InMemoryRaster")],f);const y=f;export{y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{isAborted as t,createAbortError as a}from"../../../core/promiseUtils.js";import{F as n}from"../../../chunks/Zlib.js";async function r(n,r,o){if(!n||n.byteLength<10)throw new e("imagecanvasdecoder: decode","required a valid encoded data as input.");let{width:h,height:c,format:d}=r;const{applyJpegMask:l}=r;if(l&&(!h||!c))throw new e("imagecanvasdecoder: decode","image width and height are needed to apply jpeg mask directly to canvas");let g=null;"jpg"===d&&l&&h&&c&&(g=i(n,{width:h,height:c}));try{const e=new Blob([new Uint8Array(n)],{type:"image/"+d=="jpg"?"jpeg":d}),r=await createImageBitmap(e);if(t(o))throw a();h=r.width,c=r.height;const i=new OffscreenCanvas(h,c),l=i.getContext("2d");l.drawImage(r,0,0);const s=l.getImageData(0,0,h,c).data,w=h*c,m=new Uint8Array(w),p=new Uint8Array(w),f=new Uint8Array(w);if(g)for(let t=0;t<w;t++)m[t]=s[4*t],p[t]=s[4*t+1],f[t]=s[4*t+2];else{g=new Uint8Array(w);for(let e=0;e<w;e++)m[e]=s[4*e],p[e]=s[4*e+1],f[e]=s[4*e+2],g[e]=s[4*e+3]}return i.width=0,i.height=0,{width:h,height:c,pixels:[m,p,f],mask:g,pixelType:"u8"}}catch{throw new e("imagecanvasdecoder: decode","cannot load image")}}function i(e,t){try{const a=new Uint8Array(e);let r=Math.ceil(a.length/2);const i=a.length-2;for(;r<i&&(255!==a[r]||217!==a[r+1]);r++);r+=2;let o=null;if(r<a.length-1){const e=new n(a.subarray(r)).getBytes();o=new Uint8Array(t.width*t.height);let i=0;for(let t=0;t<e.length;t++)for(let a=7;a>=0;a--)o[i++]=e[t]>>a&1}return o}catch{return null}}export{r as decode};
2
+ import e from"../../../core/Error.js";import{isAborted as t,createAbortError as n,isAbortError as a}from"../../../core/promiseUtils.js";import{F as r}from"../../../chunks/Zlib.js";async function i(r,i,h){if(!r||r.byteLength<10)throw new e("imagecanvasdecoder: decode","required a valid encoded data as input.");const{width:s,height:g,format:w}=i,{applyJpegMask:f}=i;if(f&&(!s||!g))throw new e("imagecanvasdecoder: decode","image width and height are needed to apply jpeg mask directly to canvas");let u=null;"jpg"===w&&f&&s&&g&&(u=l(r,{width:s,height:g}));try{const e=new Blob([new Uint8Array(r)],{type:d(w)}),a=await createImageBitmap(e);if(t(h))throw n();const{tileIndex:l,tileSize:s}=i;return null!=l&&null!=s?c(a,l,s):o(a,u)}catch(m){if(a(m))throw m;throw new e("imagecanvasdecoder: decode","cannot load image")}}function o(t,n){const{width:a,height:r}=t,i=new OffscreenCanvas(a,r),o=i.getContext("2d");if(!o)throw new e("imagecanvasdecoder: decode","cannot create canvas context");o.drawImage(t,0,0,a,r);const c=h(o.getImageData(0,0,a,r),a,r,n);return i.width=0,i.height=0,c}function c(t,n,a){const[r,i,o]=n,[c,d]=a,l=Math.ceil(t.width/2**r),s=Math.ceil(t.height/2**r),g=Math.ceil(s/d),w=Math.ceil(l/c);if(i>=g||o>=w)return null;const f=new OffscreenCanvas(l,s),u=f.getContext("2d");if(!u)throw new e("imagecanvasdecoder: decode","cannot create canvas context");u.drawImage(t,0,0,l,s);const m=o*c,p=i*d,y=Math.min(c,l-m),v=Math.min(d,s-p),x=h(u.getImageData(m,p,y,v),c,d);return f.width=0,f.height=0,x}function h(e,t,n,a){const r=t*n,i=new Uint8Array(r),o=new Uint8Array(r),c=new Uint8Array(r),h=null==a;a||(a=new Uint8Array(r));const d={width:t,height:n,pixels:[i,o,c],mask:a,pixelType:"u8"},{width:l,height:s,data:g}=e;if(l===t&&s===n){for(let e=0,t=0;e<r;e++,t+=4)i[e]=g[t],o[e]=g[t+1],c[e]=g[t+2],h&&(a[e]=g[t+3]);return d}for(let w=0;w<s;w++){const e=w*l*4;for(let n=0;n<l;n++){const r=w*t+n;i[r]=g[e+4*n],o[r]=g[e+4*n+1],c[r]=g[e+4*n+2],h&&(a[r]=g[e+4*n+3])}}return d}function d(e){return`image/${"jpg"===e?"jpeg":e}`}function l(e,t){try{const n=new Uint8Array(e);let a=Math.ceil(n.length/2);const i=n.length-2;for(;a<i&&(255!==n[a]||217!==n[a+1]);a++);a+=2;let o=null;if(a<n.length-1){const e=new r(n.subarray(a)).getBytes();o=new Uint8Array(t.width*t.height);let i=0;for(let t=0;t<e.length;t++)for(let n=7;n>=0;n--)o[i++]=e[t]>>n&1}return o}catch{return null}}export{i as decode};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import t from"../../../core/Error.js";import{assertIsSome as e}from"../../../core/maybe.js";import{isAbortError as a}from"../../../core/promiseUtils.js";import{decode as i}from"./ImageCanvasDecoder.js";import s from"./JpgPlus.js";import{load as r,decode as n}from"./Lerc.js";import{decode as o}from"./Lzw.js";import{convertNoDataToMask as h}from"./pixelRangeUtils.js";import{F as c}from"../../../chunks/Zlib.js";import{load as l,decode as p}from"./Qb3.js";import d from"./Raw.js";import{decodeTileOrStrip as u,decode as f}from"./TiffDecoder.js";import{isPlatformLittleEndian as m}from"./utils.js";import w from"../../support/PixelBlock.js";import g from"../../support/SimpleBandStatistics.js";var y=function(t){var e,a,i,s,r,n;function o(t){var e,a,i,s,r,n,o,h,c,l,p,d,u;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},r=null;;){switch(e=this.readUInt32(),h=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(""),h){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"acTL":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case"PLTE":this.palette=this.read(e);break;case"fcTL":r&&this.animation.frames.push(r),this.pos+=4,r={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},s=this.readUInt16(),i=this.readUInt16()||100,r.delay=1e3*s/i,r.disposeOp=this.data[this.pos++],r.blendOp=this.data[this.pos++],r.data=[];break;case"IDAT":case"fdAT":for("fdAT"===h&&(this.pos+=4,e-=4),t=(null!=r?r.data:void 0)||this.imgData,p=0;0<=e?p<e:p>e;0<=e?++p:--p)t.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(e),(c=255-this.transparency.indexed.length)>0)for(d=0;0<=c?d<c:d>c;0<=c?++d:--d)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case"tEXt":n=(l=this.read(e)).indexOf(0),o=String.fromCharCode.apply(String,l.slice(0,n)),this.text[o]=String.fromCharCode.apply(String,l.slice(n+1));break;case"IEND":return r&&this.animation.frames.push(r),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(u=this.colorType)||6===u,a=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*a,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return o.load=function(t,e,a){var i;return"function"==typeof e&&(a=e),(i=new XMLHttpRequest).open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(){var t;return t=new o(new Uint8Array(i.response||i.mozResponseArrayBuffer)),"function"==typeof(null!=e?e.getContext:void 0)&&t.render(e),"function"==typeof a?a(t):void 0},i.send(null)},a=1,i=2,e=0,o.prototype.read=function(t){var e,a;for(a=[],e=0;0<=t?e<t:e>t;0<=t?++e:--e)a.push(this.data[this.pos++]);return a},o.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},o.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},o.prototype.decodePixels=function(t){var e,a,i,s,r,n,o,h,l,p,d,u,f,m,w,g,y,x,b,k,T,I,A;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);for(t=(t=new c(t)).getBytes(),g=(u=this.pixelBitlength/8)*this.width,f=new Uint8Array(g*this.height),n=t.length,w=0,m=0,a=0;m<n;){switch(t[m++]){case 0:for(s=b=0;b<g;s=b+=1)f[a++]=t[m++];break;case 1:for(s=k=0;k<g;s=k+=1)e=t[m++],r=s<u?0:f[a-u],f[a++]=(e+r)%256;break;case 2:for(s=T=0;T<g;s=T+=1)e=t[m++],i=(s-s%u)/u,y=w&&f[(w-1)*g+i*u+s%u],f[a++]=(y+e)%256;break;case 3:for(s=I=0;I<g;s=I+=1)e=t[m++],i=(s-s%u)/u,r=s<u?0:f[a-u],y=w&&f[(w-1)*g+i*u+s%u],f[a++]=(e+Math.floor((r+y)/2))%256;break;case 4:for(s=A=0;A<g;s=A+=1)e=t[m++],i=(s-s%u)/u,r=s<u?0:f[a-u],0===w?y=x=0:(y=f[(w-1)*g+i*u+s%u],x=i&&f[(w-1)*g+(i-1)*u+s%u]),o=r+y-x,h=Math.abs(o-r),p=Math.abs(o-y),d=Math.abs(o-x),l=h<=p&&h<=d?r:p<=d?y:x,f[a++]=(e+l)%256;break;default:throw new Error("Invalid filter algorithm: "+t[m-1])}w++}return f},o.prototype.decodePalette=function(){var t,e,a,i,s,r,n,o,h;for(a=this.palette,r=this.transparency.indexed||[],s=new Uint8Array((r.length||0)+a.length),i=0,a.length,t=0,e=n=0,o=a.length;n<o;e=n+=3)s[i++]=a[e],s[i++]=a[e+1],s[i++]=a[e+2],s[i++]=null!=(h=r[t++])?h:255;return s},o.prototype.copyToImageData=function(t,e){var a,i,s,r,n,o,h,c,l,p,d;if(i=this.colors,l=null,a=this.hasAlphaChannel,this.palette.length&&(l=null!=(d=this._decodedPalette)?d:this._decodedPalette=this.decodePalette(),i=4,a=!0),c=(s=t.data||t).length,n=l||e,r=o=0,1===i)for(;r<c;)h=l?4*e[r/4]:o,p=n[h++],s[r++]=p,s[r++]=p,s[r++]=p,s[r++]=a?n[h++]:this.transparency.grayscale&&this.transparency.grayscale===p?0:255,o=h;else for(;r<c;)h=l?4*e[r/4]:o,s[r++]=n[h++],s[r++]=n[h++],s[r++]=n[h++],s[r++]=a?n[h++]:this.transparency.rgb&&this.transparency.rgb[1]===n[h-3]&&this.transparency.rgb[3]===n[h-2]&&this.transparency.rgb[5]===n[h-1]?0:255,o=h},o.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t},r=t.document&&t.document.createElement("canvas"),n=r&&r.getContext("2d"),s=function(t){var e;return n.width=t.width,n.height=t.height,n.clearRect(0,0,t.width,t.height),n.putImageData(t,0,0),(e=new Image).src=r.toDataURL(),e},o.prototype.decodeFrames=function(t){var e,a,i,r,n,o,h,c;if(this.animation){for(c=[],a=n=0,o=(h=this.animation.frames).length;n<o;a=++n)e=h[a],i=t.createImageData(e.width,e.height),r=this.decodePixels(new Uint8Array(e.data)),this.copyToImageData(i,r),e.imageData=i,c.push(e.image=s(i));return c}},o.prototype.renderFrame=function(t,s){var r,n,o;return r=(n=this.animation.frames)[s],o=n[s-1],0===s&&t.clearRect(0,0,this.width,this.height),(null!=o?o.disposeOp:void 0)===a?t.clearRect(o.xOffset,o.yOffset,o.width,o.height):(null!=o?o.disposeOp:void 0)===i&&t.putImageData(o.imageData,o.xOffset,o.yOffset),r.blendOp===e&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},o.prototype.animate=function(t){var e,a,i,s,r,n,o=this;return a=0,n=this.animation,s=n.numFrames,i=n.frames,r=n.numPlays,(e=function(){var n,h;if(n=a++%s,h=i[n],o.renderFrame(t,n),s>1&&a/s<r)return o.animation._timeout=setTimeout(e,h.delay)})()},o.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},o.prototype.render=function(t){var e,a;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext("2d"),this.animation?(this.decodeFrames(e),this.animate(e)):(a=e.createImageData(this.width,this.height),this.copyToImageData(a,this.decodePixels()),e.putImageData(a,0,0))},o}(self);const x=new Set(["jpg","png","bmp","gif"]);async function b(e,a){if(!m)throw new t("rasterCoded:decode","lerc decoder is not supported on big endian platform");await r();const{offset:i}=a,{width:s,height:o,pixelType:h,statistics:c,depthCount:l,noDataValues:p,bandMasks:d,pixels:u,mask:f}=n(e,{inputOffset:i,returnInterleaved:a.returnInterleaved}),y=new w({width:s,height:o,pixelType:h.toLowerCase(),pixels:u,mask:f,statistics:c.map(({minValue:t,maxValue:e})=>new g(t,e)),bandMasks:d,depthCount:l,noDataValues:p});return c?.length||y.updateStatistics(),y}async function k(e,a){await l();const i=p(e);if(!i)throw new t("rasterCodec:decode","failed to decode the input data.");const{width:s,height:r,pixels:n,pixelType:o}=i,h=new w({width:s,height:r,pixelType:o,pixels:n});return h.updateStatistics(),h}async function T(t,a){const i=await f(t,{...a,noDataValue:a.tiffNoDataValue,matchAllNoData:a.matchAllNoData});e(i);const s=new w({width:i.width,height:i.height,pixels:i.pixels,pixelType:i.pixelType.toLowerCase(),mask:i.mask,bandMasks:i.bandMasks,statistics:null});return s.updateStatistics(),s}async function I(t,e){const a=await u(t,e.customOptions),i=new w({width:a.width,height:a.height,pixels:a.pixels,pixelType:a.pixelType.toLowerCase(),mask:a.mask,statistics:null});return i.updateStatistics(),i}function A(t,e){const a=e.pixelType||"u8",i=w.getPixelArrayConstructor(a),s="u8"===a?t:new i(t.buffer),r=[],n=e.planes||1;if(1===n)r.push(s);else for(let h=0;h<n;h++){const a=(e.width||1)*(e.height||t.length),o=new i(a);for(let t=0;t<a;t++)o[t]=s[t*n+h];r.push(o)}const o=new w({width:e.width||1,height:e.height||t.length,pixels:r,pixelType:a,statistics:null});return o.updateStatistics(),o}function C(t,e){return A(new c(new Uint8Array(t)).getBytes(),e)}function D(t,e){return A(o(t,e.offset,e.eof,!e.isInputBigEndian),e)}function U(t,e,a){const{pixelTypeCtor:i}=M(e.pixelType),s=(0,d.decode)(t,{width:e.width,height:e.height,pixelType:i,format:a}),r=new w({width:e.width,height:e.height,pixels:s.pixels,pixelType:e.pixelType,mask:s.mask,statistics:null});return r.updateStatistics(),r}function v(t,e){const a=s.decode(t,e.applyJpegMask),i=new w({width:a.width,height:a.height,pixels:a.pixels,pixelType:"u8",mask:a.mask,statistics:null});return i.updateStatistics(),i}function S(t,e){const a=new Uint8Array(t),i=new y(a),{width:s,height:r}=e,n=s*r,o=i.decode(),h=new Uint8Array(n);for(let l=0;l<n;l++)h[l]=o[4*l+3];const c=new w({width:s,height:r,pixels:[],pixelType:"u8",mask:h,statistics:[]});for(let l=0;l<3;l++){const t=new Uint8Array(n);for(let e=0;e<n;e++)t[e]=o[4*e+l];c.addData({pixels:t})}return c.updateStatistics(),c}async function j(t,e,a,s){const r={...a,format:e},n=await i(t,r,s),o=new w(n);return o.updateStatistics(),o}function O(e){if(null==e)throw new t("rasterCodec:decode","parameter encodeddata is required.");const a=new Uint8Array(e,0,10);let i="";return 255===a[0]&&216===a[1]?i="jpg":137===a[0]&&80===a[1]&&78===a[2]&&71===a[3]?i="png":67===a[0]&&110===a[1]&&116===a[2]&&90===a[3]&&73===a[4]&&109===a[5]&&97===a[6]&&103===a[7]&&101===a[8]&&32===a[9]?i="lerc":76===a[0]&&101===a[1]&&114===a[2]&&99===a[3]&&50===a[4]&&32===a[5]?i="lerc2":73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3]||73===a[0]&&73===a[1]&&43===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&43===a[3]?i="tiff":71===a[0]&&73===a[1]&&70===a[2]?i="gif":66===a[0]&&77===a[1]?i="bmp":81===a[0]&&66===a[1]&&51===a[2]?i="qb3":String.fromCharCode.apply(null,a).toLowerCase().includes("error")&&(i="error"),i}function P(e){let a=null;switch(e){case"lerc":case"lerc2":a=b;break;case"jpg":a=v;break;case"png":a=S;break;case"bsq":case"bip":a=(t,a)=>U(t,a,e);break;case"tiff":a=T;break;case"deflate":a=C;break;case"lzw":a=D;break;case"qb3":a=k;break;case"error":a=()=>{throw new t("rasterCodec:decode","input data contains error")};break;default:a=()=>{throw new t("rasterCodec:decode","unsupported raster format")}}return a}function M(t){let e=null,a=null;switch(t?t.toLowerCase():"f32"){case"u1":case"u2":case"u4":case"u8":a=255,e=Uint8Array;break;case"u16":a=a||65535,e=Uint16Array;break;case"u32":a=a||2**32-1,e=Uint32Array;break;case"s8":a=a||-128,e=Int8Array;break;case"s16":a=a||-32768,e=Int16Array;break;case"s32":a=a||0-2**31,e=Int32Array;break;default:e=Float32Array}return{pixelTypeCtor:e,noDataValue:a}}function L(t,e=1){if(!t)return;const{pixels:a,width:i,height:s,mask:r}=t;if(!a||0===a.length)return;const n=i-1,o=s-1,h=[];let c=null;const l=w.getPixelArrayConstructor(t.pixelType);if(0===e){for(const t of a){const e=new l(n*o);for(let a=0;a<o;a++){const s=a*i;for(let i=0;i<n;i++)e[a*n+i]=t[s+i]}h.push(e)}if(null!=r){c=new Uint8Array(n*o);for(let t=0;t<o;t++){const e=t*i;for(let a=0;a<n;a++)c[t*n+a]=r[e+a]}}}else{for(const t of a){const e=new l(n*o);for(let a=0;a<o;a++){const s=a*i;for(let r=0;r<n;r++)e[a*n+r]=(t[s+r]+t[s+r+1]+t[s+i+r]+t[s+i+r+1])/4}h.push(e)}if(r){c=new Uint8Array(n*o);for(let t=0;t<o;t++){const e=t*i;for(let a=0;a<n;a++)c[t*n+a]=Math.min.apply(null,[r[e+a],r[e+a+1],r[e+i+a],r[e+i+a+1]])}}}t.width=n,t.height=o,t.mask=c,t.pixels=h}function R(t){let e=O(t);return"lerc2"===e?e="lerc":"error"===e&&(e=""),e}async function B(e,i={},s){if(null==e)throw new t("rasterCodec:decode","missing encodeddata parameter.");let r=i.format?.toLowerCase();if(!("bsq"!==r&&"bip"!==r||null!=i.width&&null!=i.height))throw new t("rasterCodec:decode","requires width and height in options parameter.");if("tiff"===r&&i.customOptions)return I(e,i);if((!r||"bsq"!==r&&"bip"!==r&&"deflate"!==r&&"lzw"!==r)&&(r=O(e)),x.has(r))try{return await j(e,r,i,s)}catch(l){if(a(l))throw l}const n=P(r);let o;i.isPoint&&(null!=(i={...i}).width&&i.width++,null!=i.height&&i.height++);const{offsets:c}=i;if(c&&c.length>1){const t=c.map((t,a)=>n(e.slice(t,c[a+1]),i)),a=await Promise.all(t);o=a[0],o.pixels=a.map(t=>t.pixels[0]);const s=a.map(t=>t.mask);a.some(t=>null!=t)&&(s.forEach((t,e)=>{null==t&&(s[e]=new Uint8Array(o.width*o.height).fill(255))}),o.bandMasks=s,o.mask=w.combineBandMasks(s)),o.updateStatistics()}else o=await n(e,{...i,offset:c?.[0]??i.offset});return"jpg"!==r&&null!=i.noDataValue&&1===o.depthCount&&h(o,i.noDataValue,{customFloatTolerance:i.tolerance}),i.isPoint&&L(o),o}export{B as decode,R as getFormat};
2
+ import t from"../../../core/Error.js";import{assertIsSome as e}from"../../../core/maybe.js";import{isAbortError as a}from"../../../core/promiseUtils.js";import{decode as i}from"./ImageCanvasDecoder.js";import s from"./JpgPlus.js";import{load as r,decode as n}from"./Lerc.js";import{decode as o}from"./Lzw.js";import{convertNoDataToMask as h}from"./pixelRangeUtils.js";import{F as c}from"../../../chunks/Zlib.js";import{load as l,decode as p}from"./Qb3.js";import d from"./Raw.js";import{decodeTileOrStrip as u,decode as f}from"./TiffDecoder.js";import{isPlatformLittleEndian as m}from"./utils.js";import w from"../../support/PixelBlock.js";import g from"../../support/SimpleBandStatistics.js";var y=function(t){var e,a,i,s,r,n;function o(t){var e,a,i,s,r,n,o,h,c,l,p,d,u;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},r=null;;){switch(e=this.readUInt32(),h=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(""),h){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"acTL":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case"PLTE":this.palette=this.read(e);break;case"fcTL":r&&this.animation.frames.push(r),this.pos+=4,r={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},s=this.readUInt16(),i=this.readUInt16()||100,r.delay=1e3*s/i,r.disposeOp=this.data[this.pos++],r.blendOp=this.data[this.pos++],r.data=[];break;case"IDAT":case"fdAT":for("fdAT"===h&&(this.pos+=4,e-=4),t=(null!=r?r.data:void 0)||this.imgData,p=0;0<=e?p<e:p>e;0<=e?++p:--p)t.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(e),(c=255-this.transparency.indexed.length)>0)for(d=0;0<=c?d<c:d>c;0<=c?++d:--d)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case"tEXt":n=(l=this.read(e)).indexOf(0),o=String.fromCharCode.apply(String,l.slice(0,n)),this.text[o]=String.fromCharCode.apply(String,l.slice(n+1));break;case"IEND":return r&&this.animation.frames.push(r),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(u=this.colorType)||6===u,a=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*a,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return o.load=function(t,e,a){var i;return"function"==typeof e&&(a=e),(i=new XMLHttpRequest).open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(){var t;return t=new o(new Uint8Array(i.response||i.mozResponseArrayBuffer)),"function"==typeof(null!=e?e.getContext:void 0)&&t.render(e),"function"==typeof a?a(t):void 0},i.send(null)},a=1,i=2,e=0,o.prototype.read=function(t){var e,a;for(a=[],e=0;0<=t?e<t:e>t;0<=t?++e:--e)a.push(this.data[this.pos++]);return a},o.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},o.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},o.prototype.decodePixels=function(t){var e,a,i,s,r,n,o,h,l,p,d,u,f,m,w,g,y,x,b,k,T,v,C;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);for(t=(t=new c(t)).getBytes(),g=(u=this.pixelBitlength/8)*this.width,f=new Uint8Array(g*this.height),n=t.length,w=0,m=0,a=0;m<n;){switch(t[m++]){case 0:for(s=b=0;b<g;s=b+=1)f[a++]=t[m++];break;case 1:for(s=k=0;k<g;s=k+=1)e=t[m++],r=s<u?0:f[a-u],f[a++]=(e+r)%256;break;case 2:for(s=T=0;T<g;s=T+=1)e=t[m++],i=(s-s%u)/u,y=w&&f[(w-1)*g+i*u+s%u],f[a++]=(y+e)%256;break;case 3:for(s=v=0;v<g;s=v+=1)e=t[m++],i=(s-s%u)/u,r=s<u?0:f[a-u],y=w&&f[(w-1)*g+i*u+s%u],f[a++]=(e+Math.floor((r+y)/2))%256;break;case 4:for(s=C=0;C<g;s=C+=1)e=t[m++],i=(s-s%u)/u,r=s<u?0:f[a-u],0===w?y=x=0:(y=f[(w-1)*g+i*u+s%u],x=i&&f[(w-1)*g+(i-1)*u+s%u]),o=r+y-x,h=Math.abs(o-r),p=Math.abs(o-y),d=Math.abs(o-x),l=h<=p&&h<=d?r:p<=d?y:x,f[a++]=(e+l)%256;break;default:throw new Error("Invalid filter algorithm: "+t[m-1])}w++}return f},o.prototype.decodePalette=function(){var t,e,a,i,s,r,n,o,h;for(a=this.palette,r=this.transparency.indexed||[],s=new Uint8Array((r.length||0)+a.length),i=0,a.length,t=0,e=n=0,o=a.length;n<o;e=n+=3)s[i++]=a[e],s[i++]=a[e+1],s[i++]=a[e+2],s[i++]=null!=(h=r[t++])?h:255;return s},o.prototype.copyToImageData=function(t,e){var a,i,s,r,n,o,h,c,l,p,d;if(i=this.colors,l=null,a=this.hasAlphaChannel,this.palette.length&&(l=null!=(d=this._decodedPalette)?d:this._decodedPalette=this.decodePalette(),i=4,a=!0),c=(s=t.data||t).length,n=l||e,r=o=0,1===i)for(;r<c;)h=l?4*e[r/4]:o,p=n[h++],s[r++]=p,s[r++]=p,s[r++]=p,s[r++]=a?n[h++]:this.transparency.grayscale&&this.transparency.grayscale===p?0:255,o=h;else for(;r<c;)h=l?4*e[r/4]:o,s[r++]=n[h++],s[r++]=n[h++],s[r++]=n[h++],s[r++]=a?n[h++]:this.transparency.rgb&&this.transparency.rgb[1]===n[h-3]&&this.transparency.rgb[3]===n[h-2]&&this.transparency.rgb[5]===n[h-1]?0:255,o=h},o.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t},r=t.document&&t.document.createElement("canvas"),n=r&&r.getContext("2d"),s=function(t){var e;return n.width=t.width,n.height=t.height,n.clearRect(0,0,t.width,t.height),n.putImageData(t,0,0),(e=new Image).src=r.toDataURL(),e},o.prototype.decodeFrames=function(t){var e,a,i,r,n,o,h,c;if(this.animation){for(c=[],a=n=0,o=(h=this.animation.frames).length;n<o;a=++n)e=h[a],i=t.createImageData(e.width,e.height),r=this.decodePixels(new Uint8Array(e.data)),this.copyToImageData(i,r),e.imageData=i,c.push(e.image=s(i));return c}},o.prototype.renderFrame=function(t,s){var r,n,o;return r=(n=this.animation.frames)[s],o=n[s-1],0===s&&t.clearRect(0,0,this.width,this.height),(null!=o?o.disposeOp:void 0)===a?t.clearRect(o.xOffset,o.yOffset,o.width,o.height):(null!=o?o.disposeOp:void 0)===i&&t.putImageData(o.imageData,o.xOffset,o.yOffset),r.blendOp===e&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},o.prototype.animate=function(t){var e,a,i,s,r,n,o=this;return a=0,n=this.animation,s=n.numFrames,i=n.frames,r=n.numPlays,(e=function(){var n,h;if(n=a++%s,h=i[n],o.renderFrame(t,n),s>1&&a/s<r)return o.animation._timeout=setTimeout(e,h.delay)})()},o.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},o.prototype.render=function(t){var e,a;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext("2d"),this.animation?(this.decodeFrames(e),this.animate(e)):(a=e.createImageData(this.width,this.height),this.copyToImageData(a,this.decodePixels()),e.putImageData(a,0,0))},o}(self);const x=new Set(["jpg","png","bmp","gif"]);async function b(e,a){if(!m)throw new t("rasterCoded:decode","lerc decoder is not supported on big endian platform");await r();const{offset:i}=a,{width:s,height:o,pixelType:h,statistics:c,depthCount:l,noDataValues:p,bandMasks:d,pixels:u,mask:f}=n(e,{inputOffset:i,returnInterleaved:a.returnInterleaved}),y=new w({width:s,height:o,pixelType:h.toLowerCase(),pixels:u,mask:f,statistics:c.map(({minValue:t,maxValue:e})=>new g(t,e)),bandMasks:d,depthCount:l,noDataValues:p});return c?.length||y.updateStatistics(),y}async function k(e,a){await l();const i=p(e);if(!i)throw new t("rasterCodec:decode","failed to decode the input data.");const{width:s,height:r,pixels:n,pixelType:o}=i,h=new w({width:s,height:r,pixelType:o,pixels:n});return h.updateStatistics(),h}async function T(t,a){const i=await f(t,{...a,noDataValue:a.tiffNoDataValue,matchAllNoData:a.matchAllNoData});e(i);const s=new w({width:i.width,height:i.height,pixels:i.pixels,pixelType:i.pixelType.toLowerCase(),mask:i.mask,bandMasks:i.bandMasks,statistics:null});return s.updateStatistics(),s}async function v(t,e){const a=await u(t,e.customOptions),i=new w({width:a.width,height:a.height,pixels:a.pixels,pixelType:a.pixelType.toLowerCase(),mask:a.mask,statistics:null});return i.updateStatistics(),i}function C(t,e){const a=e.pixelType||"u8",i=w.getPixelArrayConstructor(a),s="u8"===a?t:new i(t.buffer),r=[],n=e.planes||1;if(1===n)r.push(s);else for(let h=0;h<n;h++){const a=(e.width||1)*(e.height||t.length),o=new i(a);for(let t=0;t<a;t++)o[t]=s[t*n+h];r.push(o)}const o=new w({width:e.width||1,height:e.height||t.length,pixels:r,pixelType:a,statistics:null});return o.updateStatistics(),o}function I(t,e){return C(new c(new Uint8Array(t)).getBytes(),e)}function U(t,e){return C(o(t,e.offset,e.eof,!e.isInputBigEndian),e)}function A(t,e,a){const{pixelTypeCtor:i}=M(e.pixelType),s=(0,d.decode)(t,{width:e.width,height:e.height,pixelType:i,format:a}),r=new w({width:e.width,height:e.height,pixels:s.pixels,pixelType:e.pixelType,mask:s.mask,statistics:null});return r.updateStatistics(),r}function D(t,e){const a=s.decode(t,e.applyJpegMask),i=new w({width:a.width,height:a.height,pixels:a.pixels,pixelType:"u8",mask:a.mask,statistics:null});return i.updateStatistics(),i}function S(t,e){const a=new Uint8Array(t),i=new y(a),{width:s,height:r}=e,n=s*r,o=i.decode(),h=new Uint8Array(n);for(let l=0;l<n;l++)h[l]=o[4*l+3];const c=new w({width:s,height:r,pixels:[],pixelType:"u8",mask:h,statistics:[]});for(let l=0;l<3;l++){const t=new Uint8Array(n);for(let e=0;e<n;e++)t[e]=o[4*e+l];c.addData({pixels:t})}return c.updateStatistics(),c}async function j(t,e,a,s){const r={...a,format:e},n=await i(t,r,s),o=new w(n);return o.updateStatistics(),o}function O(e){if(null==e)throw new t("rasterCodec:decode","parameter encodeddata is required.");const a=new Uint8Array(e,0,10);let i="";return 255===a[0]&&216===a[1]?i="jpg":137===a[0]&&80===a[1]&&78===a[2]&&71===a[3]?i="png":67===a[0]&&110===a[1]&&116===a[2]&&90===a[3]&&73===a[4]&&109===a[5]&&97===a[6]&&103===a[7]&&101===a[8]&&32===a[9]?i="lerc":76===a[0]&&101===a[1]&&114===a[2]&&99===a[3]&&50===a[4]&&32===a[5]?i="lerc2":73===a[0]&&73===a[1]&&42===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&42===a[3]||73===a[0]&&73===a[1]&&43===a[2]&&0===a[3]||77===a[0]&&77===a[1]&&0===a[2]&&43===a[3]?i="tiff":71===a[0]&&73===a[1]&&70===a[2]?i="gif":66===a[0]&&77===a[1]?i="bmp":81===a[0]&&66===a[1]&&51===a[2]?i="qb3":String.fromCharCode.apply(null,a).toLowerCase().includes("error")&&(i="error"),i}function P(e){let a=null;switch(e){case"lerc":case"lerc2":a=b;break;case"jpg":a=D;break;case"png":a=S;break;case"bsq":case"bip":a=(t,a)=>A(t,a,e);break;case"tiff":a=T;break;case"deflate":a=I;break;case"lzw":a=U;break;case"qb3":a=k;break;case"error":a=()=>{throw new t("rasterCodec:decode","input data contains error")};break;default:a=()=>{throw new t("rasterCodec:decode","unsupported raster format")}}return a}function M(t){let e=null,a=null;switch(t?t.toLowerCase():"f32"){case"u1":case"u2":case"u4":case"u8":a=255,e=Uint8Array;break;case"u16":a=a||65535,e=Uint16Array;break;case"u32":a=a||2**32-1,e=Uint32Array;break;case"s8":a=a||-128,e=Int8Array;break;case"s16":a=a||-32768,e=Int16Array;break;case"s32":a=a||0-2**31,e=Int32Array;break;default:e=Float32Array}return{pixelTypeCtor:e,noDataValue:a}}function L(t,e=1){if(!t)return;const{pixels:a,width:i,height:s,mask:r}=t;if(!a||0===a.length)return;const n=i-1,o=s-1,h=[];let c=null;const l=w.getPixelArrayConstructor(t.pixelType);if(0===e){for(const t of a){const e=new l(n*o);for(let a=0;a<o;a++){const s=a*i;for(let i=0;i<n;i++)e[a*n+i]=t[s+i]}h.push(e)}if(null!=r){c=new Uint8Array(n*o);for(let t=0;t<o;t++){const e=t*i;for(let a=0;a<n;a++)c[t*n+a]=r[e+a]}}}else{for(const t of a){const e=new l(n*o);for(let a=0;a<o;a++){const s=a*i;for(let r=0;r<n;r++)e[a*n+r]=(t[s+r]+t[s+r+1]+t[s+i+r]+t[s+i+r+1])/4}h.push(e)}if(r){c=new Uint8Array(n*o);for(let t=0;t<o;t++){const e=t*i;for(let a=0;a<n;a++)c[t*n+a]=Math.min.apply(null,[r[e+a],r[e+a+1],r[e+i+a],r[e+i+a+1]])}}}t.width=n,t.height=o,t.mask=c,t.pixels=h}function R(t){let e=O(t);return"lerc2"===e?e="lerc":"error"===e&&(e=""),e}async function B(e,i={},s){if(null==e)throw new t("rasterCodec:decode","missing encodeddata parameter.");let r=i.format?.toLowerCase();if(!("bsq"!==r&&"bip"!==r||null!=i.width&&null!=i.height))throw new t("rasterCodec:decode","requires width and height in options parameter.");if("tiff"===r&&i.customOptions)return v(e,i);if((!r||"bsq"!==r&&"bip"!==r&&"deflate"!==r&&"lzw"!==r)&&(r=O(e)),"no-canvas"!==i.canvasUsage&&x.has(r))try{return await j(e,r,i,s)}catch(l){if(a(l))throw l;if("canvas-only"===i.canvasUsage)throw new t("rasterCodec:decode",`failed to decode the input data with canvas for format ${r}`)}const n=P(r);let o;i.isPoint&&(null!=(i={...i}).width&&i.width++,null!=i.height&&i.height++);const{offsets:c}=i;if(c&&c.length>1){const t=c.map((t,a)=>n(e.slice(t,c[a+1]),i)),a=await Promise.all(t);o=a[0],o.pixels=a.map(t=>t.pixels[0]);const s=a.map(t=>t.mask);a.some(t=>null!=t)&&(s.forEach((t,e)=>{null==t&&(s[e]=new Uint8Array(o.width*o.height).fill(255))}),o.bandMasks=s,o.mask=w.combineBandMasks(s)),o.updateStatistics()}else o=await n(e,{...i,offset:c?.[0]??i.offset});return"jpg"!==r&&null!=i.noDataValue&&1===o.depthCount&&h(o,i.noDataValue,{customFloatTolerance:i.tolerance}),i.isPoint&&L(o),o}export{B as decode,R as getFormat};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../core/Error.js";import{removeMaybe as r}from"../../core/maybe.js";import{throwIfNotAbortError as t}from"../../core/promiseUtils.js";import{open as i}from"../../core/workers.js";import a from"./PixelBlock.js";class s{constructor(){this._workerThread=null,this._destroyed=!1,this._onClientConnectedHandle=null,this._symbolizerState=null,this._rasterFunctionState=null}async initialize(){const e=await i("RasterWorker");this._destroyed?e.close():(this._onClientConnectedHandle=r(this._onClientConnectedHandle),this._workerThread=e,this._onClientConnectedHandle=e.onClientConnected(e=>{this._symbolizerState&&e.invoke("updateSymbolizer",this._symbolizerState).catch(e=>t(e)),this._rasterFunctionState&&e.invoke("updateRasterFunction",this._rasterFunctionState).catch(e=>t(e))}))}destroy(){this._destroyed=!0,this._onClientConnectedHandle=r(this._onClientConnectedHandle),this._workerThread&&(this._workerThread.close(),this._workerThread=null)}async convertVectorFieldData(e,r){o(this._workerThread);const t=e.pixelBlock.getTransferableObject().pixelBlock,i=await this._workerThread.invoke("convertVectorFieldData",{pixelBlock:t,type:e.dataType},r);return i?new a(i):null}async convertPixelBlockToFeatures(e,r){o(this._workerThread);const t=await this._workerThread.invoke("convertPixelBlockToFeatures",{pixelBlock:e.pixelBlock.toJSON(),extent:e.extent.toJSON(),fieldNames:e.fieldNames,skipFactor:e.skipFactor,pixelIdOffset:e.pixelIdOffset,imageRowSize:e.imageRowSize},r),i=e.extent.spatialReference?.toJSON();return t.forEach(e=>e.geometry.spatialReference=i),t}computeStatisticsHistograms(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();return r?.transferPixelsToWorker&&(r={...r,transferList:t}),this._workerThread.invoke("computeStatisticsHistograms",{...e,pixelBlock:i},r)}sampleVectorFieldData(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();return r?.transferPixelsToWorker&&(r={...r,transferList:t}),this._workerThread.invoke("sampleVectorFieldData",{...e,pixelBlock:i},r)}async transformPixels(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();r?.transferPixelsToWorker&&(r={...r,transferList:t});const s=await this._workerThread.invoke("transformPixels",{...e,pixelBlock:i},r);return a.fromJSON(s)}async compositeBands(e,r){o(this._workerThread);const t=e.pixelBlocks.map(e=>e?.getTransferableObject()),i={pixelBlocks:t.map(e=>e?.pixelBlock)};if(r?.transferPixelsToWorker){const e=t.flatMap(e=>e?.transferList).filter(e=>null!=e);r={...r,transferList:e}}const s=await this._workerThread.invoke("compositeBands",i,r);return s?a.fromJSON(s):null}async decode(e,r){o(this._workerThread);const t=await this._workerThread.invoke("decode",e,{...r,transferList:[e.data]});return t?new a(t):null}async symbolize(e,r){o(this._workerThread);const t=e.pixelBlock?.getTransferableObject().pixelBlock,i={extent:e.extent?.toJSON(),pixelBlock:t,simpleStretchParams:e.simpleStretchParams,bandIds:e.bandIds},s=await this._workerThread.invoke("symbolize",i,r);return s?new a(s):null}async highlightPixels(e,r){o(this._workerThread);const t={pixelBlock:e.pixelBlock?.toJSON(),renderedPixelBlock:e.renderedPixelBlock?.toJSON(),highlightOptions:e.highlightOptions},i=await this._workerThread.invoke("highlightPixels",t,r);e.renderedPixelBlock.pixels=i.pixels,e.renderedPixelBlock.mask=i.mask,e.renderedPixelBlock.maskIsAlpha=i.maskIsAlpha}async updateSymbolizer(e,r){o(this._workerThread);const t=e?.rendererJSON?.histograms;this._symbolizerState={symbolizerJSON:e.toJSON(),histograms:t},await Promise.all(this._workerThread.broadcast("updateSymbolizer",this._symbolizerState,r))}async updateRasterFunction(e,r){o(this._workerThread),this._rasterFunctionState={rasterFunctionJSON:e.toJSON()},await Promise.all(this._workerThread.broadcast("updateRasterFunction",this._rasterFunctionState,r))}async process(e,r){o(this._workerThread);const t=await this._workerThread.invoke("process",{extent:e.extent?.toJSON(),primaryPixelSizes:e.primaryPixelSizes?.map(e=>null!=e?e.toJSON():null),primaryPixelBlocks:e.primaryPixelBlocks.map(e=>e?.getTransferableObject().pixelBlock),primaryRasterIds:e.primaryRasterIds,parameters:e.parameters},r);return t?new a(t):null}async stretch(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock,stretchParams:e.stretchParams},i=await this._workerThread.invoke("stretch",t,r);return i?new a(i):null}async split(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock,tileSize:e.tileSize,maximumPyramidLevel:e.maximumPyramidLevel,useBilinear:e.useBilinear},i=await this._workerThread.invoke("split",t,r);return i&&i.forEach((e,r)=>{i.set(r,e?a.fromJSON(e):null)}),i}async clipTile(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t=e.pixelBlock.getTransferableObject().pixelBlock,i={...e,pixelBlock:t},s=await this._workerThread.invoke("clipTile",i,r);return s?a.fromJSON(s):null}async estimateStatisticsHistograms(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock};return await this._workerThread.invoke("estimateStatisticsHistograms",t,r)}async mosaicAndTransform(e,r){if(o(this._workerThread),!e?.srcPixelBlocks?.length)return{pixelBlock:null};const t=e.srcPixelBlocks.map(e=>e?.getTransferableObject()),i={...e,srcPixelBlocks:t.map(e=>e?.pixelBlock)};if(r?.transferPixelsToWorker){const e=t.flatMap(e=>e?.transferList).filter(e=>null!=e);r={...r,transferList:e}}const s=await this._workerThread.invoke("mosaicAndTransform",i,r);return{pixelBlock:s.pixelBlock?new a(s.pixelBlock):null,localNorthDirections:s.localNorthDirections}}async createFlowMesh(e,r){o(this._workerThread);const t={buffer:e.flowData.data.buffer,maskBuffer:e.flowData.mask.buffer,width:e.flowData.width,height:e.flowData.height},{meshType:i,simulationSettings:a,startInfo:s}=e,l=await this._workerThread.invoke("createFlowMesh",{meshType:i,flowData:t,simulationSettings:a,startInfo:s},{...r,transferList:[t.buffer,t.maskBuffer]});return{vertexData:new Float32Array(l.vertexBuffer),indexData:new Uint32Array(l.indexBuffer),pathData:new Float32Array(l.pathBuffer)}}getProjectionOffsetGrid(e,r){o(this._workerThread);const t=null!=e.datumTransformation?e.datumTransformation.steps.map(e=>({wkid:e.wkid,wkt:e.wkt,isInverse:e.isInverse})):null,i=null!=e.rasterTransform?e.rasterTransform.toJSON():null,a={projectedExtent:e.projectedExtent.toJSON(),srcBufferExtent:e.srcBufferExtent.toJSON(),pixelSize:e.pixelSize,hasWrapAround:e.hasWrapAround,spacing:e.spacing,datumTransformationSteps:t,rasterTransform:i,isAdaptive:e.isAdaptive,includeGCSGrid:e.includeGCSGrid};return this._workerThread.invoke("getProjectionOffsetGrid",a,r)}}function o(r){if(null==r)throw new e("raster-jobhandler:no-connection","no available worker connection")}export{s as default};
2
+ import e from"../../core/Error.js";import{removeMaybe as r}from"../../core/maybe.js";import{throwIfNotAbortError as t}from"../../core/promiseUtils.js";import{open as i}from"../../core/workers.js";import a from"./PixelBlock.js";class s{constructor(){this._workerThread=null,this._destroyed=!1,this._onClientConnectedHandle=null,this._symbolizerState=null,this._rasterFunctionState=null}async initialize(){const e=await i("RasterWorker");this._destroyed?e.close():(this._onClientConnectedHandle=r(this._onClientConnectedHandle),this._workerThread=e,this._onClientConnectedHandle=e.onClientConnected(e=>{this._symbolizerState&&e.invoke("updateSymbolizer",this._symbolizerState).catch(e=>t(e)),this._rasterFunctionState&&e.invoke("updateRasterFunction",this._rasterFunctionState).catch(e=>t(e))}))}destroy(){this._destroyed=!0,this._onClientConnectedHandle=r(this._onClientConnectedHandle),this._workerThread&&(this._workerThread.close(),this._workerThread=null)}async convertVectorFieldData(e,r){o(this._workerThread);const t=e.pixelBlock.getTransferableObject().pixelBlock,i=await this._workerThread.invoke("convertVectorFieldData",{pixelBlock:t,type:e.dataType},r);return i?new a(i):null}async convertPixelBlockToFeatures(e,r){o(this._workerThread);const t=await this._workerThread.invoke("convertPixelBlockToFeatures",{pixelBlock:e.pixelBlock.toJSON(),extent:e.extent.toJSON(),fieldNames:e.fieldNames,skipFactor:e.skipFactor,pixelIdOffset:e.pixelIdOffset,imageRowSize:e.imageRowSize},r),i=e.extent.spatialReference?.toJSON();return t.forEach(e=>e.geometry.spatialReference=i),t}computeStatisticsHistograms(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();return r?.transferPixelsToWorker&&(r={...r,transferList:t}),this._workerThread.invoke("computeStatisticsHistograms",{...e,pixelBlock:i},r)}sampleVectorFieldData(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();return r?.transferPixelsToWorker&&(r={...r,transferList:t}),this._workerThread.invoke("sampleVectorFieldData",{...e,pixelBlock:i},r)}async transformPixels(e,r){o(this._workerThread);const{transferList:t,pixelBlock:i}=e.pixelBlock.getTransferableObject();r?.transferPixelsToWorker&&(r={...r,transferList:t});const s=await this._workerThread.invoke("transformPixels",{...e,pixelBlock:i},r);return a.fromJSON(s)}async compositeBands(e,r){o(this._workerThread);const t=e.pixelBlocks.map(e=>e?.getTransferableObject()),i={pixelBlocks:t.map(e=>e?.pixelBlock)};if(r?.transferPixelsToWorker){const e=t.flatMap(e=>e?.transferList).filter(e=>null!=e);r={...r,transferList:e}}const s=await this._workerThread.invoke("compositeBands",i,r);return s?a.fromJSON(s):null}async decode(e,r){o(this._workerThread);const t=await this._workerThread.invoke("decode",e,{...r,transferList:e.options?.cloneSource?void 0:[e.data]});return t?new a(t):null}async symbolize(e,r){o(this._workerThread);const t=e.pixelBlock?.getTransferableObject().pixelBlock,i={extent:e.extent?.toJSON(),pixelBlock:t,simpleStretchParams:e.simpleStretchParams,bandIds:e.bandIds},s=await this._workerThread.invoke("symbolize",i,r);return s?new a(s):null}async highlightPixels(e,r){o(this._workerThread);const t={pixelBlock:e.pixelBlock?.toJSON(),renderedPixelBlock:e.renderedPixelBlock?.toJSON(),highlightOptions:e.highlightOptions},i=await this._workerThread.invoke("highlightPixels",t,r);e.renderedPixelBlock.pixels=i.pixels,e.renderedPixelBlock.mask=i.mask,e.renderedPixelBlock.maskIsAlpha=i.maskIsAlpha}async updateSymbolizer(e,r){o(this._workerThread);const t=e?.rendererJSON?.histograms;this._symbolizerState={symbolizerJSON:e.toJSON(),histograms:t},await Promise.all(this._workerThread.broadcast("updateSymbolizer",this._symbolizerState,r))}async updateRasterFunction(e,r){o(this._workerThread),this._rasterFunctionState={rasterFunctionJSON:e.toJSON()},await Promise.all(this._workerThread.broadcast("updateRasterFunction",this._rasterFunctionState,r))}async process(e,r){o(this._workerThread);const t=await this._workerThread.invoke("process",{extent:e.extent?.toJSON(),primaryPixelSizes:e.primaryPixelSizes?.map(e=>null!=e?e.toJSON():null),primaryPixelBlocks:e.primaryPixelBlocks.map(e=>e?.getTransferableObject().pixelBlock),primaryRasterIds:e.primaryRasterIds,parameters:e.parameters},r);return t?new a(t):null}async stretch(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock,stretchParams:e.stretchParams},i=await this._workerThread.invoke("stretch",t,r);return i?new a(i):null}async split(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock,tileSize:e.tileSize,maximumPyramidLevel:e.maximumPyramidLevel,useBilinear:e.useBilinear},i=await this._workerThread.invoke("split",t,r);return i&&i.forEach((e,r)=>{i.set(r,e?a.fromJSON(e):null)}),i}async clipTile(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t=e.pixelBlock.getTransferableObject().pixelBlock,i={...e,pixelBlock:t},s=await this._workerThread.invoke("clipTile",i,r);return s?a.fromJSON(s):null}async estimateStatisticsHistograms(e,r){if(o(this._workerThread),!e?.pixelBlock)return null;const t={srcPixelBlock:e.pixelBlock.getTransferableObject().pixelBlock};return await this._workerThread.invoke("estimateStatisticsHistograms",t,r)}async mosaicAndTransform(e,r){if(o(this._workerThread),!e?.srcPixelBlocks?.length)return{pixelBlock:null};const t=e.srcPixelBlocks.map(e=>e?.getTransferableObject()),i={...e,srcPixelBlocks:t.map(e=>e?.pixelBlock)};if(r?.transferPixelsToWorker){const e=t.flatMap(e=>e?.transferList).filter(e=>null!=e);r={...r,transferList:e}}const s=await this._workerThread.invoke("mosaicAndTransform",i,r);return{pixelBlock:s.pixelBlock?new a(s.pixelBlock):null,localNorthDirections:s.localNorthDirections}}async createFlowMesh(e,r){o(this._workerThread);const t={buffer:e.flowData.data.buffer,maskBuffer:e.flowData.mask.buffer,width:e.flowData.width,height:e.flowData.height},{meshType:i,simulationSettings:a,startInfo:s}=e,l=await this._workerThread.invoke("createFlowMesh",{meshType:i,flowData:t,simulationSettings:a,startInfo:s},{...r,transferList:[t.buffer,t.maskBuffer]});return{vertexData:new Float32Array(l.vertexBuffer),indexData:new Uint32Array(l.indexBuffer),pathData:new Float32Array(l.pathBuffer)}}getProjectionOffsetGrid(e,r){o(this._workerThread);const t=null!=e.datumTransformation?e.datumTransformation.steps.map(e=>({wkid:e.wkid,wkt:e.wkt,isInverse:e.isInverse})):null,i=null!=e.rasterTransform?e.rasterTransform.toJSON():null,a={projectedExtent:e.projectedExtent.toJSON(),srcBufferExtent:e.srcBufferExtent.toJSON(),pixelSize:e.pixelSize,hasWrapAround:e.hasWrapAround,spacing:e.spacing,datumTransformationSteps:t,rasterTransform:i,isAdaptive:e.isAdaptive,includeGCSGrid:e.includeGCSGrid};return this._workerThread.invoke("getProjectionOffsetGrid",a,r)}}function o(r){if(null==r)throw new e("raster-jobhandler:no-connection","no available worker connection")}export{s as default};
@@ -3,7 +3,7 @@ import type { ClonableMixin } from "../../core/Clonable.js";
3
3
  import type { AssetJSON, BarrierJSON, FunctionBarrierJSON, NearestNeighborJSON, PropagatorJSON } from "./jsonTypes.js";
4
4
  import type { TraceConfigurationProperties } from "./TraceConfiguration.js";
5
5
 
6
- export interface UNTraceConfigurationProperties extends TraceConfigurationProperties, Partial<Pick<UNTraceConfiguration, "allowIndeterminateFlow" | "arcadeExpressionBarrier" | "circuitName" | "diagramTemplateName" | "domainNetworkName" | "filterBarriers" | "filterBitsetNetworkAttributeName" | "filterFunctionBarriers" | "filterScope" | "includeContainers" | "includeContent" | "includeIsolated" | "includeStructures" | "includeUpToFirstSpatialContainer" | "inferConnectivity" | "maxHops" | "nearestNeighbor" | "numPaths" | "outputFilterCategories" | "outputFilters" | "propagators" | "subnetworkName" | "targetTierName" | "tierName" | "validateLocatability">> {}
6
+ export interface UNTraceConfigurationProperties extends TraceConfigurationProperties, Partial<Pick<UNTraceConfiguration, "allowIndeterminateFlow" | "arcadeExpressionBarrier" | "circuitName" | "diagramTemplateName" | "domainNetworkName" | "filterBarriers" | "filterBitsetNetworkAttributeName" | "filterFunctionBarriers" | "filterScope" | "includeContainers" | "includeContent" | "includeIsolated" | "includeStructures" | "includeUpToFirstSpatialContainer" | "inferConnectivity" | "maxHops" | "nearestNeighbor" | "numPaths" | "outputFilterCategories" | "outputFilters" | "propagators" | "subnetworkName" | "targetTierName" | "tierName" | "useDigitizedDirection" | "validateLocatability">> {}
7
7
 
8
8
  /**
9
9
  * The UNTraceConfiguration class contains properties required to define objects than can be used to run custom traces on utility networks.
@@ -44,7 +44,10 @@ export interface UNTraceConfigurationProperties extends TraceConfigurationProper
44
44
  */
45
45
  export default class UNTraceConfiguration extends UNTraceConfigurationSuperclass {
46
46
  constructor(properties?: UNTraceConfigurationProperties);
47
- /** Specifies whether to allow IndeterminateFlow. */
47
+ /**
48
+ * Specifies whether network features with indeterminate flow stop traversability or are included in the trace results.
49
+ * This property is only honored when running an upstream, downstream, or isolation trace.
50
+ */
48
51
  accessor allowIndeterminateFlow: boolean | null | undefined;
49
52
  /** Allows users to input arcade expressions. */
50
53
  accessor arcadeExpressionBarrier: string | null | undefined;
@@ -151,6 +154,20 @@ export default class UNTraceConfiguration extends UNTraceConfigurationSuperclass
151
154
  * @see [Trace - ArcGIS REST API](https://developers.arcgis.com/rest/services-reference/enterprise/trace-utility-network-server-.htm)
152
155
  */
153
156
  accessor tierName: string | null | undefined;
157
+ /**
158
+ * Specifies whether the direction of flow will be based on the digitized direction of the line,
159
+ * *From global ID* and *To global ID* of the edge object in the association, and the flow direction network attribute value.
160
+ * Applies when the [trace type](https://developers.arcgis.com/javascript/latest/references/core/networks/support/NamedTraceConfiguration/#traceType) is upstream or downstream, otherwise it is ignored.
161
+ * Defaults to false.
162
+ *
163
+ * > [!IMPORTANT]
164
+ * >
165
+ * > Requires [Utility Network Version](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/utility-network-compatibility.htm#ESRI_SECTION1_A295577926DC4673B05E83556B8118DC) 7 and later.
166
+ *
167
+ * @since 5.1
168
+ * @see [Learn more about flow direction in a utility network](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/about-tracing-utility-networks.htm#ESRI_SECTION1_9721D1D37F5B4ED3A1EC354078920598)
169
+ */
170
+ accessor useDigitizedDirection: boolean | null | undefined;
154
171
  /** Specifies if its necessary to validate whether traversed junction or edge objects have the necessary containment, attachment, or connectivity association in their association hierarchy. */
155
172
  accessor validateLocatability: boolean | null | undefined;
156
173
  }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{property as o,subclass as i}from"../../core/accessorSupport/decorators.js";import r from"./TraceConfiguration.js";let n=class extends(e(r)){constructor(t){super(t),this.filterBarriers=[],this.arcadeExpressionBarrier=null,this.circuitName=null,this.domainNetworkName=null,this.filterBitsetNetworkAttributeName=null,this.filterFunctionBarriers=[],this.filterScope=null,this.includeContainers=null,this.includeContent=null,this.includeIsolated=null,this.includeStructures=null,this.allowIndeterminateFlow=null,this.includeUpToFirstSpatialContainer=null,this.inferConnectivity=null,this.maxHops=null,this.nearestNeighbor=null,this.numPaths=null,this.outputFilterCategories=[],this.outputFilters=[],this.propagators=[],this.subnetworkName=null,this.targetTierName=null,this.diagramTemplateName=null,this.tierName=null,this.validateLocatability=null}};t([o({type:[Object],json:{write:!0}})],n.prototype,"filterBarriers",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"arcadeExpressionBarrier",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"circuitName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"domainNetworkName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"filterBitsetNetworkAttributeName",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"filterFunctionBarriers",void 0),t([o({type:["junctions","edges","junctionsAndEdges"],json:{write:!0}})],n.prototype,"filterScope",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeContainers",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeContent",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeIsolated",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeStructures",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"allowIndeterminateFlow",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeUpToFirstSpatialContainer",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"inferConnectivity",void 0),t([o({type:Number,json:{write:!0}})],n.prototype,"maxHops",void 0),t([o({type:Object,json:{write:!0}})],n.prototype,"nearestNeighbor",void 0),t([o({type:Number,json:{write:!0}})],n.prototype,"numPaths",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"outputFilterCategories",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"outputFilters",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"propagators",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"subnetworkName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"targetTierName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"diagramTemplateName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"tierName",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"validateLocatability",void 0),n=t([i("esri.networks.support.UNTraceConfiguration")],n);const p=n;export{p as default};
2
+ import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{property as o,subclass as i}from"../../core/accessorSupport/decorators.js";import r from"./TraceConfiguration.js";let n=class extends(e(r)){constructor(t){super(t),this.filterBarriers=[],this.arcadeExpressionBarrier=null,this.circuitName=null,this.domainNetworkName=null,this.filterBitsetNetworkAttributeName=null,this.filterFunctionBarriers=[],this.filterScope=null,this.includeContainers=null,this.includeContent=null,this.includeIsolated=null,this.includeStructures=null,this.allowIndeterminateFlow=null,this.useDigitizedDirection=null,this.includeUpToFirstSpatialContainer=null,this.inferConnectivity=null,this.maxHops=null,this.nearestNeighbor=null,this.numPaths=null,this.outputFilterCategories=[],this.outputFilters=[],this.propagators=[],this.subnetworkName=null,this.targetTierName=null,this.diagramTemplateName=null,this.tierName=null,this.validateLocatability=null}};t([o({type:[Object],json:{write:!0}})],n.prototype,"filterBarriers",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"arcadeExpressionBarrier",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"circuitName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"domainNetworkName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"filterBitsetNetworkAttributeName",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"filterFunctionBarriers",void 0),t([o({type:["junctions","edges","junctionsAndEdges"],json:{write:!0}})],n.prototype,"filterScope",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeContainers",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeContent",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeIsolated",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeStructures",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"allowIndeterminateFlow",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"useDigitizedDirection",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"includeUpToFirstSpatialContainer",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"inferConnectivity",void 0),t([o({type:Number,json:{write:!0}})],n.prototype,"maxHops",void 0),t([o({type:Object,json:{write:!0}})],n.prototype,"nearestNeighbor",void 0),t([o({type:Number,json:{write:!0}})],n.prototype,"numPaths",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"outputFilterCategories",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"outputFilters",void 0),t([o({type:[Object],json:{write:!0}})],n.prototype,"propagators",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"subnetworkName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"targetTierName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"diagramTemplateName",void 0),t([o({type:String,json:{write:!0}})],n.prototype,"tierName",void 0),t([o({type:Boolean,json:{write:!0}})],n.prototype,"validateLocatability",void 0),n=t([i("esri.networks.support.UNTraceConfiguration")],n);const p=n;export{p as default};