@arcgis/core 5.1.0-next.117 → 5.1.0-next.119

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 (238) hide show
  1. package/Graphic.d.ts +2 -1
  2. package/analysis/ShadowCast/TotalDurationOptions.d.ts +7 -9
  3. package/analysis/ShadowCastAnalysis.d.ts +6 -5
  4. package/analysis/SliceAnalysis.d.ts +1 -1
  5. package/arcgisGlobal.d.ts +2 -1
  6. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  7. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  8. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  9. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  10. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  11. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  12. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +1 -0
  13. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +1 -0
  14. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +1 -0
  15. package/assets/components/assets/icon/parquetFeatureLayer16.json +1 -0
  16. package/assets/components/assets/icon/parquetFeatureLayer24.json +1 -0
  17. package/assets/components/assets/icon/parquetFeatureLayer32.json +1 -0
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/{cf3036711bbe6095eaed.js → 017f50aae082d6664cfe.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{325bfac7cfa28a6d568f.js → 0e774f14ba274832f390.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{f231548c8ac7ecb59927.js → 0fbf9bf52ecb4cd8293b.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{24b43fb12fc3009fdc30.js → 13940660fe88cfc0d9f3.js} +1 -1
  23. package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +1 -0
  24. package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +1 -0
  25. package/assets/esri/core/workers/chunks/1a527c0740d9f4fa0791.js +1 -0
  26. package/assets/esri/core/workers/chunks/{a814069325125466506b.js → 1a95370ddc22729ab3c6.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{c88fd4f69cb2b53b48ec.js → 1b0765403b06294b3e1d.js} +1 -1
  28. package/assets/esri/core/workers/chunks/1bebf7202d5f94b15674.js +1 -0
  29. package/assets/esri/core/workers/chunks/{425c04b26a6ec6d04b08.js → 201007cf1a91e2b126fc.js} +1 -1
  30. package/assets/esri/core/workers/chunks/20e2d11f6de438ee883e.js +1 -0
  31. package/assets/esri/core/workers/chunks/{db012650fb34c10cecd0.js → 24acf3dd541347c2b297.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{ba693317ed3939587f30.js → 290163964ec7f05f96d6.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{9250615c78f8570a9cda.js → 29615df388a0df022d8c.js} +1 -1
  34. package/assets/esri/core/workers/chunks/2a2981f0987dd1eaa75a.js +1 -0
  35. package/assets/esri/core/workers/chunks/{94a5a834e32fc6cc6ed4.js → 2e11b4e9d66474a60064.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{8e7ce4835b3106349684.js → 2ee9514396d22638870c.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{702a3ef9e1b3442cbee7.js → 32323b0e0fcecd8f640e.js} +1 -1
  38. package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +1 -0
  39. package/assets/esri/core/workers/chunks/{102ff3710db4ba5f083d.js → 3bf6d55511cd7722eb93.js} +1 -1
  40. package/assets/esri/core/workers/chunks/3eabc8af82512dc12355.js +1 -0
  41. package/assets/esri/core/workers/chunks/40df6ffeb61fea80aae3.js +1 -0
  42. package/assets/esri/core/workers/chunks/{7df05c3c82cd27b77300.js → 423a9882abd4a6dadf86.js} +1 -1
  43. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +1 -0
  44. package/assets/esri/core/workers/chunks/{299b4eecd0288348c971.js → 45323491f9005629c602.js} +1 -1
  45. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +1 -0
  46. package/assets/esri/core/workers/chunks/{51816d79c6be15e4bfcf.js → 46fbd519cc1a37923bfc.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{b0c242c4f5412e4cce73.js → 47d49777a3b3cd8e18bd.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{22d4521637806a8b828f.js → 4bfffdfbe6d467f143a4.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{7c2d7df4ef4d775cd648.js → 4d09ef7c57ab7f9782fe.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{557e39e5156b313597f9.js → 4e314e7cf477ad54541d.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{7c292f7b181f3b93352b.js → 4ef53455c8bc6efee80e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{86443e47ad99e555753a.js → 53246ce4d2c7d2d2fc62.js} +1 -1
  53. package/assets/esri/core/workers/chunks/5500dc39e11a0057ae16.js +1 -0
  54. package/assets/esri/core/workers/chunks/{dce37324a2382d2eef0d.js → 552945a73a95cd2a9f54.js} +1 -1
  55. package/assets/esri/core/workers/chunks/5784ddd18395f4d76016.js +640 -0
  56. package/assets/esri/core/workers/chunks/578ab400e1998d0bcd62.js +1 -0
  57. package/assets/esri/core/workers/chunks/{0a530fbbb4486c670ea2.js → 5c7aff9604b4576a0e1d.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{0954e82f739d25001bcb.js → 603177137eb680afe371.js} +1 -1
  59. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +1 -0
  60. package/assets/esri/core/workers/chunks/{69a1cbf0af059548f96a.js → 64daa2a714e59d22bbd4.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{4cecc582513b8a83f194.js → 65621650a53f69f7b05a.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{86a767c2b0b1e37ff493.js → 65a9a94162985b54571e.js} +1 -1
  63. package/assets/esri/core/workers/chunks/6af77529c977d034d287.js +1 -0
  64. package/assets/esri/core/workers/chunks/{1f3a676e7a4eae5ad566.js → 767ea5b455b3823afd09.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → 798e8bf3a7ad83d810e3.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{f69c44479ee3fd8c831d.js → 7d220f574ebf2740c208.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{e95ce76b5b816256a519.js → 7f54d3835c0ce573a942.js} +1 -1
  68. package/assets/esri/core/workers/chunks/804ab5f614efa12a131b.js +1 -0
  69. package/assets/esri/core/workers/chunks/{ed939fd5d3827a3f70e0.js → 81e3bd1a0634ddc2b833.js} +1 -1
  70. package/assets/esri/core/workers/chunks/823789261ca3338f0fa8.js +1 -0
  71. package/assets/esri/core/workers/chunks/8244b74e9c3a30d8d2f6.js +2 -0
  72. package/assets/esri/core/workers/chunks/{5cdf87e7a59ace38df87.js → 84b0b6e099d949e0fea5.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{caf80facb0322be054ab.js → 8cc6a00c2991ce3fde67.js} +1 -1
  74. package/assets/esri/core/workers/chunks/8e1865392681d390ab2e.js +1 -0
  75. package/assets/esri/core/workers/chunks/93826180cfd66a6d2596.js +1 -0
  76. package/assets/esri/core/workers/chunks/{90b0fe5584fb6fc99766.js → 9d27cc631bab8aa7479e.js} +1 -1
  77. package/assets/esri/core/workers/chunks/a730235da6ba2b2d9f47.js +30 -0
  78. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +1 -0
  79. package/assets/esri/core/workers/chunks/{558606a1af22e4a0d536.js → aca6ff64495580d873d1.js} +1 -1
  80. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +1 -0
  81. package/assets/esri/core/workers/chunks/adac8583750783b9c599.js +2 -0
  82. package/assets/esri/core/workers/chunks/{762e23466308f22d7076.js → aea384f4d88121da8f54.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{4e97c01698ef36cc5e0e.js → bfc2b75e4f7531dbd37f.js} +1 -1
  84. package/assets/esri/core/workers/chunks/c216cd5d6b5d4fe4bab3.js +2 -0
  85. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +1 -0
  86. package/assets/esri/core/workers/chunks/{6a53c8db554be55c5885.js → c528b04d42dffbb491da.js} +31 -21
  87. package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +1 -0
  88. package/assets/esri/core/workers/chunks/{7a3b05e25de2ff150f38.js → cc479daacd2cf715baa8.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js → d1ccc5f2d8892328ab01.js} +2 -2
  90. package/assets/esri/core/workers/chunks/{3aebbed6d4fd1b993a35.js → d2dd6e252d5fecfc0f83.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{b44f1d08784f2e50c853.js → d3af51a6d9014ff46170.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{e6e15e9e890b864fb395.js → d41fe5a248221c0a1714.js} +1 -1
  93. package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +1 -0
  94. package/assets/esri/core/workers/chunks/daec09750a5a70cdb0f0.js +2 -0
  95. package/assets/esri/core/workers/chunks/de41c3f5b34c49175833.js +1 -0
  96. package/assets/esri/core/workers/chunks/e178cd0e9178d6716410.js +1 -0
  97. package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +1 -0
  98. package/assets/esri/core/workers/chunks/{185c670eb99474906836.js → edb55329305becdb204f.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{d21bf107698fef03125e.js → f142f892e9e896052ddc.js} +1 -1
  100. package/assets/esri/core/workers/chunks/f58ddf37dee066a5c0d8.js +1 -0
  101. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +27 -4
  102. package/assets/esri/themes/base/widgets/_Grid.scss +3 -3
  103. package/assets/esri/themes/dark/main.css +1 -1
  104. package/assets/esri/themes/light/main.css +1 -1
  105. package/assets/esri/themes/light/view.css +1 -1
  106. package/chunks/GlobalIllumination.glsl.js +20 -19
  107. package/chunks/GlobalIlluminationBlur.glsl.js +15 -12
  108. package/chunks/GlobalIlluminationUpscale.glsl.js +4 -3
  109. package/chunks/ShadowCastVisualize.glsl.js +20 -23
  110. package/config.js +1 -1
  111. package/editing/templates/{TemplateListing.d.ts → TemplateListItem.d.ts} +35 -6
  112. package/editing/templates/{TemplateListing.js → TemplateListItem.js} +1 -1
  113. package/interfaces.d.ts +7 -0
  114. package/kernel.js +1 -1
  115. package/layers/FeatureLayer.d.ts +29 -3
  116. package/layers/FeatureLayer.js +1 -1
  117. package/layers/ImageryTileLayer.js +1 -1
  118. package/layers/MediaLayer.d.ts +1 -1
  119. package/layers/SceneLayer.d.ts +2 -2
  120. package/layers/VectorTileLayer.d.ts +2 -2
  121. package/layers/mixins/ArcGISImageService.js +1 -1
  122. package/layers/mixins/BlendLayer.d.ts +1 -1
  123. package/layers/mixins/PortalLayer.js +1 -1
  124. package/layers/mixins/TiledImagery.js +1 -1
  125. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  126. package/layers/raster/datasets/RasterFactory.js +1 -1
  127. package/layers/save/featureLayerUtils.js +1 -1
  128. package/layers/support/FeatureFilter.d.ts +1 -1
  129. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  130. package/layers/support/RasterJobHandler.js +1 -1
  131. package/layers/support/RasterWorker.js +1 -1
  132. package/layers/support/SymbolLayerDrawing.d.ts +10 -0
  133. package/layers/support/arcgisLayers.js +1 -1
  134. package/layers/support/fetchService.js +1 -1
  135. package/layers/support/layerUtils.js +1 -1
  136. package/layers/support/layersLoader.js +1 -1
  137. package/layers/support/rasterJobHelper.js +2 -0
  138. package/layers/types.d.ts +2 -3
  139. package/package.json +3 -3
  140. package/renderers/FlowRenderer.d.ts +2 -2
  141. package/rest/support/AttributeBinsQuery.d.ts +5 -5
  142. package/rest/support/OutDistance.d.ts +50 -0
  143. package/rest/support/OutDistance.js +1 -1
  144. package/rest/support/Query.d.ts +46 -5
  145. package/rest/support/TopFeaturesQuery.d.ts +5 -5
  146. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  147. package/smartMapping/symbology/flow.d.ts +2 -2
  148. package/smartMapping/symbology/types.d.ts +2 -2
  149. package/support/revision.js +1 -1
  150. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  151. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  152. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderCircle.js +1 -1
  153. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  154. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  155. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  156. package/views/2d/layers/features/Processor.js +1 -1
  157. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  158. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  159. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  160. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  161. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  162. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  163. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  164. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  165. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  166. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  167. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  168. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  169. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +7 -0
  170. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +1 -1
  171. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  172. package/views/SceneView.d.ts +1 -1
  173. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  174. package/views/interactive/snapping/SnappingOptions.d.ts +3 -3
  175. package/views/layers/ImageryLayerView.d.ts +1 -1
  176. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +29 -1
  177. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  178. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  179. package/widgets/BatchAttributeForm/css.js +1 -1
  180. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  181. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -5
  182. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  183. package/widgets/BatchAttributeForm/inputs/UtilityNetworkAssociationsElementInput.js +1 -1
  184. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  185. package/widgets/BatchAttributeForm/types.d.ts +67 -0
  186. package/widgets/BatchAttributeForm.d.ts +26 -1
  187. package/widgets/BatchAttributeForm.js +1 -1
  188. package/widgets/Daylight.d.ts +1 -1
  189. package/widgets/Directions/DirectionsViewModel.js +1 -1
  190. package/widgets/Editor.d.ts +8 -8
  191. package/widgets/ElevationProfile.d.ts +1 -1
  192. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  193. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  194. package/widgets/Print/PrintViewModel.js +1 -1
  195. package/widgets/Sketch/SketchViewModel.d.ts +38 -38
  196. package/widgets/Sketch/support/PluginManager.js +1 -1
  197. package/widgets/Sketch.d.ts +39 -39
  198. package/widgets/Sketch.js +1 -1
  199. package/widgets/Slice.d.ts +1 -1
  200. package/widgets/UtilityNetworkTrace.d.ts +1 -1
  201. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  202. package/assets/esri/core/workers/chunks/074f5e6aaeafca13bf72.js +0 -1
  203. package/assets/esri/core/workers/chunks/0e9804ece1fd2d59751b.js +0 -1
  204. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +0 -1
  205. package/assets/esri/core/workers/chunks/1da2c34743897d1b6a24.js +0 -1
  206. package/assets/esri/core/workers/chunks/2e8db0f05df2e38a14e1.js +0 -2
  207. package/assets/esri/core/workers/chunks/32f24a66f684de3c243d.js +0 -1
  208. package/assets/esri/core/workers/chunks/41074d383af3662673ca.js +0 -1
  209. package/assets/esri/core/workers/chunks/413d2fa54508e6f42c74.js +0 -1
  210. package/assets/esri/core/workers/chunks/4325fa92dafca465ae26.js +0 -1
  211. package/assets/esri/core/workers/chunks/438f35d41c6851736818.js +0 -30
  212. package/assets/esri/core/workers/chunks/544174c33628846284a1.js +0 -1
  213. package/assets/esri/core/workers/chunks/55b765c72d13b3b911f9.js +0 -1
  214. package/assets/esri/core/workers/chunks/55d168c13491fcdfb284.js +0 -1
  215. package/assets/esri/core/workers/chunks/62b5972d0ef9bf173308.js +0 -1
  216. package/assets/esri/core/workers/chunks/6af88bb722bbb37db198.js +0 -2
  217. package/assets/esri/core/workers/chunks/708bd77e6d723e3f0aa8.js +0 -1
  218. package/assets/esri/core/workers/chunks/70d8f5bdb452cee41536.js +0 -2
  219. package/assets/esri/core/workers/chunks/75a7de23c05435ec7649.js +0 -1
  220. package/assets/esri/core/workers/chunks/87a40e7f79f97ca637a9.js +0 -1
  221. package/assets/esri/core/workers/chunks/8a68884d40f6f6de1d12.js +0 -1
  222. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +0 -640
  223. package/assets/esri/core/workers/chunks/92a7735973b2f82a66ce.js +0 -1
  224. package/assets/esri/core/workers/chunks/978b7d10054e17161145.js +0 -1
  225. package/assets/esri/core/workers/chunks/a0fce639319d59becd01.js +0 -2
  226. package/assets/esri/core/workers/chunks/aa03f770178693167aa0.js +0 -1
  227. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +0 -1
  228. package/assets/esri/core/workers/chunks/b78fb24b47d9f31f18c6.js +0 -1
  229. package/assets/esri/core/workers/chunks/b8dda9e55caba0e2b4c2.js +0 -1
  230. package/assets/esri/core/workers/chunks/c4872cf3b71d00f450e1.js +0 -1
  231. package/assets/esri/core/workers/chunks/d598d08dbf2796742e8c.js +0 -1
  232. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +0 -1
  233. package/assets/esri/core/workers/chunks/fc9fbc8e4e459edf4e37.js +0 -1
  234. /package/assets/esri/core/workers/chunks/{2e8db0f05df2e38a14e1.js.LICENSE.txt → 8244b74e9c3a30d8d2f6.js.LICENSE.txt} +0 -0
  235. /package/assets/esri/core/workers/chunks/{6af88bb722bbb37db198.js.LICENSE.txt → adac8583750783b9c599.js.LICENSE.txt} +0 -0
  236. /package/assets/esri/core/workers/chunks/{70d8f5bdb452cee41536.js.LICENSE.txt → c216cd5d6b5d4fe4bab3.js.LICENSE.txt} +0 -0
  237. /package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js.LICENSE.txt → d1ccc5f2d8892328ab01.js.LICENSE.txt} +0 -0
  238. /package/assets/esri/core/workers/chunks/{a0fce639319d59becd01.js.LICENSE.txt → daec09750a5a70cdb0f0.js.LICENSE.txt} +0 -0
@@ -1,28 +1,28 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ColorAttachment1 as d}from"../views/webgl/enums.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";const f=.01,g=.008,x=.002,v=.5,M=.02,y=.1,b=.008,w=.012,W=.008,D=40,S=.095,R=.008,F=60,j=2,B=.0039,C=.25,I=.15,z=25,P=.15,G=.5,T=1,E=1,$=16;class L extends u{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=P,this.rayMarchMaxReach=G,this.rayMarchWorldReach=z,this.rayMarchMinReachEmissionWeight=T,this.rayMarchMaxReachEmissionWeight=E,this.rayMarchMaxSteps=$,this.colorBleedWeight=I}}function O(u){const I=new p,z=I.fragment;return I.include(e),I.include(i),r(z),z.include(a),z.include(t),I.include(o,u),z.uniforms.add(new h("normalMap",e=>e.normalTexture),new h("depthMap",e=>e.depthTexture),new h("lastFrameColorTexture",(e,a)=>a.reprojection.lastFrameColor?.getTexture()),new h("lastFrameDepthTexture",(e,a)=>a.reprojection.lastFrameDepth?.attachment),new m("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new m("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(d)),new s("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new s("view",e=>e.camera.viewMatrix),new l("accumulatedFrames",e=>e.accumulatedFrames),new l("temporalSampleFrame",e=>e.temporalSampleFrame),new l("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),z.uniforms.add(new l("rayMarchMinReach",e=>e.rayMarchMinReach),new l("rayMarchMaxReach",e=>e.rayMarchMaxReach),new l("rayMarchWorldReach",e=>e.rayMarchWorldReach),new l("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new l("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new l("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new l("colorBleedWeight",e=>e.colorBleedWeight)),u.hasEmission&&z.uniforms.add(new h("lastFrameEmissionTexture",(e,a)=>a.reprojection.lastFrameEmission?.attachment)),z.code.add(n`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{ColorAttachment1 as d}from"../views/webgl/enums.js";import{NoParameters as p}from"../views/webgl/NoParameters.js";import{ShaderBuilder as g}from"../views/webgl/ShaderBuilder.js";const f=.01,x=.008,v=.002,M=.5,y=.02,b=.1,w=.008,W=.012,D=.008,S=40,R=.095,F=.008,j=60,I=2,B=.0039,C=.25,z=.15,G=25,P=.15,T=.5,E=1,$=1,L=16;class O extends p{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=P,this.rayMarchMaxReach=T,this.rayMarchWorldReach=G,this.rayMarchMinReachEmissionWeight=E,this.rayMarchMaxReachEmissionWeight=$,this.rayMarchMaxSteps=L,this.colorBleedWeight=z}}function V(p){const z=new g,G=z.fragment;return z.include(e),z.include(i),r(G),G.include(a),G.include(t),G.include(u),z.include(o,p),G.uniforms.add(new h("normalMap",e=>e.normalTexture),new h("depthMap",e=>e.depthTexture),new h("lastFrameColorTexture",(e,a)=>a.reprojection.lastFrameColor?.getTexture()),new h("lastFrameDepthTexture",(e,a)=>a.reprojection.lastFrameDepth?.attachment),new m("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new m("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(d)),new c("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new c("view",e=>e.camera.viewMatrix),new l("accumulatedFrames",e=>e.accumulatedFrames),new l("temporalSampleFrame",e=>e.temporalSampleFrame),new l("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),G.uniforms.add(new l("rayMarchMinReach",e=>e.rayMarchMinReach),new l("rayMarchMaxReach",e=>e.rayMarchMaxReach),new l("rayMarchWorldReach",e=>e.rayMarchWorldReach),new l("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new l("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new l("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new l("colorBleedWeight",e=>e.colorBleedWeight)),p.hasEmission&&G.uniforms.add(new h("lastFrameEmissionTexture",(e,a)=>a.reprojection.lastFrameEmission?.attachment)),G.code.add(n`
3
3
  float computeIdleColorBlendWeight(float accumulatedFrames) {
4
4
  float idleColorBlendProgress = clamp(
5
- accumulatedFrames / ${n.float(D)},
5
+ accumulatedFrames / ${n.float(S)},
6
6
  0.0,
7
7
  1.0
8
8
  );
9
9
  return mix(
10
- ${n.float(w)},
11
10
  ${n.float(W)},
11
+ ${n.float(D)},
12
12
  idleColorBlendProgress
13
13
  );
14
14
  }
15
15
 
16
16
  float computeIdleOcclusionBlendWeight(float accumulatedFrames) {
17
17
  float idleOcclusionBlendProgress = clamp(
18
- accumulatedFrames / ${n.float(F)},
18
+ accumulatedFrames / ${n.float(j)},
19
19
  0.0,
20
20
  1.0
21
21
  );
22
22
  return mix(
23
- ${n.float(S)},
24
23
  ${n.float(R)},
25
- pow(idleOcclusionBlendProgress, ${n.float(j)})
24
+ ${n.float(F)},
25
+ pow(idleOcclusionBlendProgress, ${n.float(I)})
26
26
  );
27
27
  }
28
28
 
@@ -77,7 +77,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
77
77
 
78
78
  return value * 2.0 - 1.0;
79
79
  }
80
- `),I.outputs.add("fragGlobalIllumination","vec4",0),I.outputs.add("fragWeight","float",1),z.main.add(n`
80
+ `),z.outputs.add("fragGlobalIllumination","vec4",0),z.outputs.add("fragWeight","float",1),G.main.add(n`
81
81
  float depth = depthFromTexture(depthMap, uv);
82
82
 
83
83
  // Early out if depth is out of range, such as in the sky
@@ -126,7 +126,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
126
126
  if (hasReprojectionMismatch) {
127
127
  if (isLowQualityEdgePixel) {
128
128
  steps = 1;
129
- occlusionBlendWeight = ${n.float(g)};
129
+ occlusionBlendWeight = ${n.float(x)};
130
130
  resetColorHistory = true;
131
131
  } else {
132
132
  steps = 6;
@@ -135,15 +135,15 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
135
135
  }
136
136
  } else {
137
137
  steps = 1;
138
- if (historyOcclusionBlendWeight > ${n.float(v)}) {
139
- occlusionBlendWeight = ${n.float(y)};
140
- colorBlendWeight = ${n.float(b)};
141
- } else if (historyOcclusionBlendWeight > ${n.float(M)}) {
138
+ if (historyOcclusionBlendWeight > ${n.float(M)}) {
139
+ occlusionBlendWeight = ${n.float(b)};
140
+ colorBlendWeight = ${n.float(w)};
141
+ } else if (historyOcclusionBlendWeight > ${n.float(y)}) {
142
142
  occlusionBlendWeight = historyOcclusionBlendWeight - 0.05;
143
- colorBlendWeight = ${n.float(b)};
143
+ colorBlendWeight = ${n.float(w)};
144
144
  } else {
145
- occlusionBlendWeight = isScaledGlobalIllumination ? ${n.float(g)} : idleOcclusionBlendWeight;
146
- colorBlendWeight = isScaledGlobalIllumination ? ${n.float(x)} : idleColorBlendWeight;
145
+ occlusionBlendWeight = isScaledGlobalIllumination ? ${n.float(x)} : idleOcclusionBlendWeight;
146
+ colorBlendWeight = isScaledGlobalIllumination ? ${n.float(v)} : idleColorBlendWeight;
147
147
  }
148
148
  }
149
149
 
@@ -173,14 +173,14 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
173
173
  );
174
174
 
175
175
  if (hit.z > 0.0) {
176
- ${c(u.hasColor,n`
176
+ ${s(p.hasColor,n`
177
177
  // Emission and color bleed - Reproject the current receiver and sampled hit to estimate bounced color
178
178
  vec3 receiverColor = texture(lastFrameColorTexture, reprojectedCoordinate.xy).rgb;
179
179
 
180
180
  vec2 hitReprojectedCoordinate = reprojectionCoordinate(hit);
181
181
  vec3 sourceColor = texture(lastFrameColorTexture, hitReprojectedCoordinate).rgb;
182
182
  vec3 sourceColorLinear = linearizeGamma(sourceColor);
183
- vec3 sourceEmission = ${c(u.hasEmission,"texture(lastFrameEmissionTexture, hitReprojectedCoordinate).xyz","vec3(0.0)")};
183
+ vec3 sourceEmission = ${s(p.hasEmission,"texture(lastFrameEmissionTexture, hitReprojectedCoordinate).xyz","vec3(0.0)")};
184
184
 
185
185
  float emissionWeight = mix(
186
186
  rayMarchMinReachEmissionWeight,
@@ -204,7 +204,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
204
204
  ? randomDirectionSample.b * ${n.float(B)}
205
205
  : 0.0;
206
206
 
207
- ${c(u.hasColor,n`
207
+ ${s(p.hasColor,n`
208
208
  // Accumulate color
209
209
  vec3 lastFrameColor = lastFrameGlobalIllumination.rgb;
210
210
  float colorDitherScale = isScaledGlobalIllumination ? ${n.float(C)} : 1.0;
@@ -214,9 +214,10 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
214
214
  `,n`
215
215
  fragGlobalIllumination.rgb = vec3(0.0);
216
216
  `)}
217
+ fragGlobalIllumination.rgb = quantizeGlobalIlluminationColor(fragGlobalIllumination.rgb);
217
218
 
218
219
  // Accumulate occlusion
219
220
  fragGlobalIllumination.a = mix(lastFrameGlobalIllumination.a + accumulationDither, fragGlobalIllumination.a, occlusionBlendWeight);
220
221
 
221
222
  fragWeight = occlusionBlendWeight;
222
- `),I}const V=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:L,build:O,defaultColorBleedWeight:I,defaultRayMarchMaxReach:G,defaultRayMarchMaxReachEmissionWeight:E,defaultRayMarchMaxSteps:$,defaultRayMarchMinReach:P,defaultRayMarchMinReachEmissionWeight:T,defaultRayMarchWorldReach:z},Symbol.toStringTag,{value:"Module"}));export{V as G,L as a,O as b,G as c,I as d,E as e,$ as f,P as g,T as h,z as i};
223
+ `),z}const U=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:O,build:V,defaultColorBleedWeight:z,defaultRayMarchMaxReach:T,defaultRayMarchMaxReachEmissionWeight:$,defaultRayMarchMaxSteps:L,defaultRayMarchMinReach:P,defaultRayMarchMinReachEmissionWeight:E,defaultRayMarchWorldReach:G},Symbol.toStringTag,{value:"Module"}));export{U as G,O as a,V as b,T as c,z as d,$ as e,L as f,P as g,E as h,G as i};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{BooleanBindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js";import{Float2DrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ditherNoise as c}from"../views/3d/webgl-engine/shaders/ditherNoise.glsl.js";import{NoParameters as p}from"../views/webgl/NoParameters.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";const d=4;class f extends p{constructor(){super(...arguments),this.blurSize=e()}}function g(){const e=new h,p=e.fragment;e.include(l),e.include(t),e.include(i);const f=(d+3)/2,g=1/(2*f*f);p.include(o),p.include(c,{useFloatBlend:!1});const b=5e4;p.uniforms.add(new a("hasEmission",e=>e.hasEmission),new u("depthMap",e=>e.depthTexture),new u("normalMap",e=>e.normalTexture),new m("globalIlluminationTexture",e=>e.texture),new m("globalIlluminationWeightTexture",e=>e.weightTexture),new s("blurSize",e=>e.blurSize),new n("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new n("projScale",(e,l)=>{const o=l.camera.distance;return o>b?Math.max(0,e.projScale-(o-b)):e.projScale}));const S=.1,v=400,w=.03,W=.08,I=1.5;return p.code.add(r`
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ScreenSpacePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{BooleanBindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js";import{Float2DrawUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as c}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{ditherNoise as p}from"../views/3d/webgl-engine/shaders/ditherNoise.glsl.js";import{NoParameters as h}from"../views/webgl/NoParameters.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";const f=4;class g extends h{constructor(){super(...arguments),this.blurSize=e()}}function b(){const e=new d,h=e.fragment;e.include(l),e.include(t),e.include(i);const g=(f+3)/2,b=1/(2*g*g);h.include(o),h.include(p,{useFloatBlend:!1}),h.include(c);const S=5e4;h.uniforms.add(new a("hasEmission",e=>e.hasEmission),new u("depthMap",e=>e.depthTexture),new u("normalMap",e=>e.normalTexture),new m("globalIlluminationTexture",e=>e.texture),new m("globalIlluminationWeightTexture",e=>e.weightTexture),new n("blurSize",e=>e.blurSize),new s("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new s("projScale",(e,l)=>{const o=l.camera.distance;return o>S?Math.max(0,e.projScale-(o-S)):e.projScale}));const v=.1,w=400,W=.03,I=.08,O=1.5;return h.code.add(r`
3
3
  void accumulateBlurSample(
4
4
  vec2 sampleUv,
5
5
  float sampleOffset,
@@ -22,10 +22,10 @@ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{Sc
22
22
  float normalSimilarityWeight = globalIlluminationNormalSimilarityWeight(sampleNormal, centerNormal);
23
23
  float depthNormalCorrection = globalIlluminationDepthNormalCorrection(sampleNormal);
24
24
  vec3 emission = sampleGlobalIllumination.rgb;
25
- float emissionSpatialWeightMultiplier = isScaledGlobalIllumination ? ${r.float(v)} : 1.0;
25
+ float emissionSpatialWeightMultiplier = isScaledGlobalIllumination ? ${r.float(w)} : 1.0;
26
26
 
27
27
  float emissionWeight = exp(
28
- -sampleOffset * sampleOffset * ${r.float(g)} * ${r.float(S)} * emissionSpatialWeightMultiplier
28
+ -sampleOffset * sampleOffset * ${r.float(b)} * ${r.float(v)} * emissionSpatialWeightMultiplier
29
29
  - depthDelta * depthDelta * depthSharpness * depthNormalCorrection
30
30
  );
31
31
  emissionWeight *= normalSimilarityWeight;
@@ -36,25 +36,28 @@ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{Sc
36
36
  return;
37
37
  }
38
38
 
39
- float occlusionSpatialKernelScale = centerOcclusionBlendWeight > ${r.float(w)}
40
- ? ${r.float(W)}
41
- : ${r.float(I)};
39
+ float occlusionSpatialKernelScale = centerOcclusionBlendWeight > ${r.float(W)}
40
+ ? ${r.float(I)}
41
+ : ${r.float(O)};
42
42
  float occlusionWeight = exp(-sampleOffset * sampleOffset * occlusionSpatialKernelScale - depthDelta * depthDelta * depthSharpness);
43
43
  occlusionWeight *= normalSimilarityWeight;
44
44
  occlusionWeightSum += occlusionWeight;
45
45
  occlusionSum += occlusionWeight * sampleGlobalIllumination.a;
46
46
  }
47
- `),p.main.add(r`
47
+ `),h.main.add(r`
48
48
  vec3 emissionSum = vec3(0.0);
49
49
  float emissionWeightSum = 0.0;
50
50
 
51
51
  vec4 centerGlobalIllumination = texture(globalIlluminationTexture, uv);
52
52
  float centerOcclusionBlendWeight = texture(globalIlluminationWeightTexture, uv).r;
53
53
  bool isScaledGlobalIllumination = scaleGlobalIllumination < 1.0;
54
- bool shouldReuseCenterOcclusion = isScaledGlobalIllumination && centerOcclusionBlendWeight <= ${r.float(w)};
54
+ bool shouldReuseCenterOcclusion = isScaledGlobalIllumination && centerOcclusionBlendWeight <= ${r.float(W)};
55
55
  bool shouldSkipLowQualityBlur = !hasEmission && shouldReuseCenterOcclusion;
56
56
  if (shouldSkipLowQualityBlur) {
57
- fragColor = centerGlobalIllumination;
57
+ fragColor = vec4(
58
+ quantizeGlobalIlluminationColor(centerGlobalIllumination.rgb),
59
+ centerGlobalIllumination.a
60
+ );
58
61
  return;
59
62
  }
60
63
 
@@ -64,7 +67,7 @@ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{Sc
64
67
  float occlusionWeightSum = 0.0;
65
68
 
66
69
  float depthSharpness = globalIlluminationDepthSharpness(projScale, centerDepth);
67
- for (int sampleOffset = -${r.int(d)}; sampleOffset <= ${r.int(d)}; ++sampleOffset) {
70
+ for (int sampleOffset = -${r.int(f)}; sampleOffset <= ${r.int(f)}; ++sampleOffset) {
68
71
  float sampleOffsetFloat = float(sampleOffset);
69
72
  vec2 sampleUv = uv + sampleOffsetFloat * blurSize;
70
73
  accumulateBlurSample(
@@ -89,5 +92,5 @@ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{Sc
89
92
  float dither = ditherNoise(vec4(blurredEmission, occlusion)) - 1./32768.0;
90
93
  blurredEmission += isScaledGlobalIllumination ? 0.85 * dither : dither;
91
94
 
92
- fragColor = vec4(blurredEmission, occlusion);
93
- `),e}const b=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationBlurDrawParameters:f,build:g},Symbol.toStringTag,{value:"Module"}));export{b as G,f as a,g as b};
95
+ fragColor = vec4(quantizeGlobalIlluminationColor(blurredEmission), occlusion);
96
+ `),e}const S=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationBlurDrawParameters:g,build:b},Symbol.toStringTag,{value:"Module"}));export{S as G,g as a,b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as h}from"../views/webgl/NoParameters.js";import{ShaderBuilder as u}from"../views/webgl/ShaderBuilder.js";const s=5e4,m=100;class c extends h{}function p(){const h=new u,c=h.fragment;return h.include(e),h.include(r),h.include(l),c.include(t),c.uniforms.add(new n("depthMap",e=>e.depthTexture),new n("normalMap",e=>e.normalTexture),new o("tex",e=>e.colorTexture),new o("globalIlluminationWeightTexture",e=>e.weightTexture),new a("projScale",(e,t)=>{const l=t.camera.distance;return l>s?Math.max(0,e.projScale-(l-s)):e.projScale})),c.code.add(i`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{GlobalIlluminationWeights as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as h}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";const m=5e4,c=100;class g extends u{}function p(){const u=new s,g=u.fragment;return u.include(e),u.include(r),u.include(l),g.include(t),g.include(h),g.uniforms.add(new n("depthMap",e=>e.depthTexture),new n("normalMap",e=>e.normalTexture),new o("tex",e=>e.colorTexture),new o("globalIlluminationWeightTexture",e=>e.weightTexture),new a("projScale",(e,t)=>{const l=t.camera.distance;return l>m?Math.max(0,e.projScale-(l-m)):e.projScale})),g.code.add(i`
3
3
  float computeDepthWeight(float sampleDepth, float centerDepth, float depthSharpness) {
4
4
  float depthDelta = abs(sampleDepth - centerDepth);
5
5
  return exp(-0.08 - depthDelta * depthDelta * depthSharpness);
@@ -14,7 +14,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
14
14
  void sampleJointBilateralUpscale(vec2 sampleUv, out vec4 upscaledColor, out float upscaledWeight) {
15
15
  float centerDepth = linearDepthFromTexture(depthMap, sampleUv);
16
16
  vec3 centerNormal = normalFromTexture(normalMap, sampleUv);
17
- float depthSharpness = ${i.float(m)} * globalIlluminationDepthSharpness(projScale, centerDepth, centerNormal);
17
+ float depthSharpness = ${i.float(c)} * globalIlluminationDepthSharpness(projScale, centerDepth, centerNormal);
18
18
 
19
19
  vec2 lowResTextureSize = vec2(textureSize(tex, 0));
20
20
  vec2 texelPosition = sampleUv * lowResTextureSize - 0.5;
@@ -78,4 +78,5 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
78
78
  weight11 * jointBilateralWeight11
79
79
  ) / jointBilateralWeightSum;
80
80
  }
81
- `),h.outputs.add("fragColor","vec4",0),h.outputs.add("fragWeight","float",1),c.main.add(i`sampleJointBilateralUpscale(uv, fragColor, fragWeight);`),h}const g=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationUpscaleDrawParameters:c,build:p},Symbol.toStringTag,{value:"Module"}));export{g as G,c as a,p as b};
81
+ `),u.outputs.add("fragColor","vec4",0),u.outputs.add("fragWeight","float",1),g.main.add(i`sampleJointBilateralUpscale(uv, fragColor, fragWeight);
82
+ fragColor.rgb = quantizeGlobalIlluminationColor(fragColor.rgb);`),u}const d=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationUpscaleDrawParameters:g,build:p},Symbol.toStringTag,{value:"Module"}));export{d as G,g as a,p as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as o,fromValues as r,create as a}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{BlendColorsPremultiplied as s,premultiplyAlpha as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/BlendColorsPremultiplied.glsl.js";import{CameraSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{Float2PassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{Float4sPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js";import{FloatPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as g,If as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{maxColorRampSize as w}from"../views/3d/webgl-engine/shaders/colorRampParameters.js";import{a as f}from"./ShadowCastAccumulate.glsl.js";import{NoParameters as C}from"../views/webgl/NoParameters.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";class S extends C{constructor(r){super(),this._data=r,this.sampleScale=e(),this.opacityFromElevation=1,this.gradientColorRamp=y,this.thresholdColor=o(z),this.bandedGradientColorRamp=$,this.bandSize=.1,this.threshold=.5}get shadowCastMap(){return this._data.shadowCastTexture}}const R=.7,j=50/255,y=[[0,r(0,0,1,0)],[1,r(0,0,1,R)]],z=r(1,0,0,R),$=[[0,r(j,j,j,0)],[1,r(j,j,j,R)]];function M(e){const o=new b,r=o.fragment;o.include(n),o.include(t);const{rendersSunlight:a,visualization:C}=e;r.constants.add("inverseSampleValue","float",f),r.uniforms.add(new v("shadowCastMap",e=>e.shadowCastMap),new i("sampleScale",e=>e.sampleScale),new m("opacityFromElevation",e=>e.opacityFromElevation));const S=2===C,R=3===C,j=1===C;R&&r.include(s);const y=!S;switch(y&&r.code.add(g`vec4 evaluateColorRamp(float value) {
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as o,fromValues as r,create as a}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{BlendColorsPremultiplied as s,premultiplyAlpha as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/BlendColorsPremultiplied.glsl.js";import{CameraSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{Float2PassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{Float4sPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as u,If as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{maxColorRampSize as w}from"../views/3d/webgl-engine/shaders/colorRampParameters.js";import{a as C}from"./ShadowCastAccumulate.glsl.js";import{NoParameters as f}from"../views/webgl/NoParameters.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";class S extends f{constructor(r){super(),this._data=r,this.sampleScale=e(),this.opacityFromElevation=1,this.gradientColorRamp=y,this.thresholdColor=o($),this.bandedGradientColorRamp=M,this.bandSize=.1,this.threshold=.5}get shadowCastMap(){return this._data.shadowCastTexture}}const R=.7,j=50/255,y=[[0,r(0,0,1,0)],[1,r(0,0,1,R)]],$=r(1,0,0,R),M=[[0,r(j,j,j,0)],[1,r(j,j,j,R)]];function z(e){const o=new b,r=o.fragment;o.include(n),o.include(t);const{rendersSunlight:a,visualization:f}=e;r.constants.add("inverseSampleValue","float",C),r.uniforms.add(new v("shadowCastMap",e=>e.shadowCastMap),new i("sampleScale",e=>e.sampleScale),new h("opacityFromElevation",e=>e.opacityFromElevation));const S=2===f,R=3===f,j=1===f;R&&r.include(s);const y=!S;switch(y&&r.code.add(u`vec4 evaluateColorRamp(float value) {
3
3
  if (value <= vvColorValues[0]) {
4
4
  return vvColorColors[0];
5
5
  }
@@ -10,50 +10,47 @@ return mix(vvColorColors[i-1], vvColorColors[i], f);
10
10
  }
11
11
  }
12
12
  return vvColorColors[colorRampSize - 1];
13
- }`),C){case 0:r.uniforms.add(new h("vvColorColors",w,e=>e.gradientColorRamp.flatMap(([e,o])=>l(P,o))),new c("colorRampSize",e=>e.gradientColorRamp.length),new p("vvColorValues",w,e=>e.gradientColorRamp.map(([e,o])=>e)));break;case 1:r.uniforms.add(new h("vvColorColors",w,e=>e.bandedGradientColorRamp.flatMap(([e,o])=>l(P,o))),new c("colorRampSize",e=>e.bandedGradientColorRamp.length),new p("vvColorValues",w,e=>e.bandedGradientColorRamp.map(([e,o])=>e)),new m("bandSize",e=>e.bandSize));break;case 3:r.uniforms.add(new d("uColor",e=>l(P,e.thresholdColor)),new m("threshold",e=>e.threshold),new h("vvColorColors",w,e=>e.gradientColorRamp.flatMap(([e,o])=>l(P,o))),new c("colorRampSize",e=>e.gradientColorRamp.length),new p("vvColorValues",w,e=>e.gradientColorRamp.map(([e,o])=>e)));break;case 2:r.uniforms.add(new d("uColor",e=>l(P,e.thresholdColor)),new m("threshold",e=>e.threshold))}const{type:z,selector:$,thresholdStrengthSelector:M}=R?{type:"vec2",selector:"rg",thresholdStrengthSelector:"strength.x"}:{type:"float",selector:"r",thresholdStrengthSelector:"strength"},V=!a;return r.main.add(g`
14
- ${z} numSamples = texture(shadowCastMap, uv).${$} * inverseSampleValue;
13
+ }`),f){case 0:r.uniforms.add(new m("vvColorColors",w,e=>e.gradientColorRamp.flatMap(([e,o])=>l(P,o))),new g("colorRampSize",e=>e.gradientColorRamp.length),new p("vvColorValues",w,e=>e.gradientColorRamp.map(([e,o])=>e)));break;case 1:r.uniforms.add(new m("vvColorColors",w,e=>e.bandedGradientColorRamp.flatMap(([e,o])=>l(P,o))),new g("colorRampSize",e=>e.bandedGradientColorRamp.length),new p("vvColorValues",w,e=>e.bandedGradientColorRamp.map(([e,o])=>e)),new h("bandSize",e=>e.bandSize));break;case 3:r.uniforms.add(new d("uColor",e=>l(P,e.thresholdColor)),new h("threshold",e=>e.threshold),new m("vvColorColors",w,e=>e.gradientColorRamp.flatMap(([e,o])=>l(P,o))),new g("colorRampSize",e=>e.gradientColorRamp.length),new p("vvColorValues",w,e=>e.gradientColorRamp.map(([e,o])=>e)));break;case 2:r.uniforms.add(new d("uColor",e=>l(P,e.thresholdColor)),new h("threshold",e=>e.threshold))}const{type:$,selector:M,thresholdStrengthSelector:z}=R?{type:"vec2",selector:"rg",thresholdStrengthSelector:"strength.x"}:{type:"float",selector:"r",thresholdStrengthSelector:"strength"},V=!a;return r.main.add(u`
14
+ ${$} numSamples = texture(shadowCastMap, uv).${M} * inverseSampleValue;
15
15
 
16
16
  fragColor = vec4(0.0);
17
17
 
18
18
  // In shadow space, zero accumulated samples can be skipped when they would render fully transparent.
19
19
  // In sunlight space, zero shadow samples may map to full-strength sunlight, so we keep them.
20
- ${u(V,g`
21
- if (${u(y,g`vvColorColors[0].a == 0.0 && `,"")}dot(numSamples, ${z}(1)) < 1.0) {
20
+ ${c(V,u`
21
+ if (${c(y,u`vvColorColors[0].a == 0.0 && `,"")}dot(numSamples, ${$}(1)) < 1.0) {
22
22
  return;
23
23
  }
24
24
  `)}
25
25
 
26
26
  // sampleScale is the number of total samples taken, so this brings strength to a 0-1 range.
27
27
  // note that sampleScale is always a vec2 even if we have only the primary channel.
28
- ${z} strength = numSamples * sampleScale.${$};
28
+ ${$} strength = numSamples * sampleScale.${M};
29
29
 
30
- ${u(a,g`strength = 1.0 - strength;`)}
30
+ ${c(a,u`strength = 1.0 - strength;`)}
31
31
 
32
32
  // in threshold mode, step the strength to 0 if we are at or below the threshold, 1 otherwise.
33
- ${u(S||R,g`
34
- float thresholdStrength = ${M};
35
- ${M} = 1.0 - step(thresholdStrength, threshold);
33
+ ${c(S||R,u`
34
+ float thresholdStrength = ${z};
35
+ ${z} = 1.0 - step(thresholdStrength, threshold);
36
36
  `)}
37
37
 
38
38
  // bail out if we are below the threshold
39
- ${u(S,g`if (${M} == 0.0) { return; }`)}
39
+ ${c(S,u`if (${z} == 0.0) { return; }`)}
40
40
 
41
- ${u(j,a?g`if (strength != 1.0) {
42
- strength = floor(strength / bandSize) * bandSize;
43
- }
44
- `:g`if (strength != 1.0) {
45
- strength = ceil(strength / bandSize) * bandSize;
46
- }`)}
41
+ ${c(j,u`
42
+ strength = ceil(strength / bandSize) * bandSize;
43
+ `)}
47
44
 
48
- ${z} attenuation = opacityFromElevation * strength;
45
+ ${$} attenuation = opacityFromElevation * strength;
49
46
 
50
- ${u(R,g`
47
+ ${c(R,u`
51
48
  vec4 thresholdColor = uColor * attenuation.r;
52
49
  vec4 gradientColor = evaluateColorRamp(attenuation.g);
53
- fragColor = blendColorsPremultiplied(${u(a,g`gradientColor, thresholdColor`,g`thresholdColor, gradientColor`)});
54
- `,u(S,g`
50
+ fragColor = blendColorsPremultiplied(${c(a,u`gradientColor, thresholdColor`,u`thresholdColor, gradientColor`)});
51
+ `,c(S,u`
55
52
  fragColor = uColor * attenuation;
56
- `,g`
53
+ `,u`
57
54
  fragColor = evaluateColorRamp(attenuation);
58
55
  `))}
59
- `),o}const P=a(),V=Object.freeze(Object.defineProperty({__proto__:null,ShadowCastVisualizePassParameters:S,build:M},Symbol.toStringTag,{value:"Module"}));export{V as S,S as a,M as b};
56
+ `),o}const P=a(),V=Object.freeze(Object.defineProperty({__proto__:null,ShadowCastVisualizePassParameters:S,build:z},Symbol.toStringTag,{value:"Module"}));export{V as S,S as a,z as b};
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.117";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
2
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.119";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
@@ -3,30 +3,59 @@ import type SharedTemplateMetadata from "../sharedTemplates/SharedTemplateMetada
3
3
  import type FeatureTemplate from "../../layers/support/FeatureTemplate.js";
4
4
  import type { LayerWithFeatureTemplatesUnion } from "../../layers/types.js";
5
5
 
6
- export interface TemplateListingProperties extends Partial<Pick<TemplateListing, "layer" | "template" | "thumbnail">> {}
6
+ export interface TemplateListItemProperties extends Partial<Pick<TemplateListItem, "layer" | "template" | "thumbnail">> {}
7
7
 
8
8
  /**
9
9
  * The item displayed within the FeatureTemplates component.
10
10
  *
11
11
  * @since 5.1
12
12
  */
13
- export default class TemplateListing extends Accessor {
14
- constructor(properties?: TemplateListingProperties);
13
+ export default class TemplateListItem extends Accessor {
14
+ /** @since 5.1 */
15
+ constructor(properties?: TemplateListItemProperties);
15
16
  /**
16
17
  * The description that is displayed for the template item.
17
18
  * This defaults to the [FeatureTemplate.description](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureTemplate/#description) property of the template.
19
+ *
20
+ * @since 5.1
18
21
  */
19
22
  get description(): string;
20
- /** The label that is displayed for the template item. */
23
+ /**
24
+ * Unique identifier for the template item.
25
+ *
26
+ * @since 5.1
27
+ */
28
+ get id(): string;
29
+ /**
30
+ * The label that is displayed for the template item.
31
+ *
32
+ * @since 5.1
33
+ */
21
34
  get label(): string;
22
- /** The layer associated with the template item. */
35
+ /**
36
+ * The layer associated with the template item.
37
+ *
38
+ * @since 5.1
39
+ */
23
40
  accessor layer: LayerWithFeatureTemplatesUnion;
24
- /** The associated FeatureTemplate for the item. */
41
+ /**
42
+ * Indicates whether the template item supports upload.
43
+ *
44
+ * @internal
45
+ * @since 5.1
46
+ */
47
+ get supportsUpload(): boolean;
48
+ /**
49
+ * The associated FeatureTemplate for the item.
50
+ *
51
+ * @since 5.1
52
+ */
25
53
  accessor template: FeatureTemplate | SharedTemplateMetadata;
26
54
  /**
27
55
  * An object used to create a thumbnail image that represents a feature type in the feature template.
28
56
  *
29
57
  * @see [FeatureTemplate.thumbnail](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureTemplate/#thumbnail)
58
+ * @since 5.1
30
59
  */
31
60
  accessor thumbnail: HTMLElement | undefined;
32
61
  }
@@ -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/Accessor.js";import{property as r,subclass as o}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as p}from"../templateUtils.js";let l=class extends e{constructor(t){super(t),this.layer=null,this.template=null}get description(){return this.template?.description??""}get label(){return this.template?.name??""}get id(){return p(this.template)?`${this.template.templateId}–${this.layer?.id}`:`${this.label??""}–${this.layer?.id}`}get supportsUpload(){return"scene"===this.layer?.type}};t([r()],l.prototype,"description",null),t([r()],l.prototype,"label",null),t([r()],l.prototype,"layer",void 0),t([r()],l.prototype,"template",void 0),t([r()],l.prototype,"thumbnail",void 0),t([r()],l.prototype,"id",null),t([r()],l.prototype,"supportsUpload",null),l=t([o("esri.editing.templates.TemplateListing")],l);const s=l;export{s as default};
2
+ import{__decorate as t}from"tslib";import e from"../../core/Accessor.js";import{property as r,subclass as o}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as p}from"../templateUtils.js";let l=class extends e{constructor(t){super(t),this.layer=null,this.template=null}get description(){return this.template?.description??""}get label(){return this.template?.name??""}get id(){return p(this.template)?`${this.template.templateId}–${this.layer?.id}`:`${this.label??""}–${this.layer?.id}`}get supportsUpload(){return"scene"===this.layer?.type}};t([r()],l.prototype,"description",null),t([r()],l.prototype,"label",null),t([r()],l.prototype,"layer",void 0),t([r()],l.prototype,"template",void 0),t([r()],l.prototype,"thumbnail",void 0),t([r()],l.prototype,"id",null),t([r()],l.prototype,"supportsUpload",null),l=t([o("esri.editing.templates.TemplateListItem")],l);const s=l;export{s as default};
package/interfaces.d.ts CHANGED
@@ -8983,6 +8983,13 @@ declare namespace __esri {
8983
8983
  export type OffsetParameters = import("./rest/support/OffsetParameters.js").default;
8984
8984
  export const OffsetParameters: typeof import("./rest/support/OffsetParameters.js").default;
8985
8985
 
8986
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
8987
+ export type OutDistanceProperties = import("./rest/support/OutDistance.js").OutDistanceProperties;
8988
+
8989
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
8990
+ export type OutDistance = import("./rest/support/OutDistance.js").default;
8991
+ export const OutDistance: typeof import("./rest/support/OutDistance.js").default;
8992
+
8986
8993
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
8987
8994
  export type ParameterValueProperties<T extends import("./rest/types.js").ParameterValue = import("./rest/types.js").ParameterValue> = import("./rest/support/ParameterValue.js").ParameterValueProperties<T>;
8988
8995
 
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.117",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.119",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};
@@ -437,7 +437,20 @@ export interface FeatureLayerProperties extends LayerProperties, APIKeyMixinProp
437
437
  * layer.load().then(() => console.log(layer.isTable))
438
438
  */
439
439
  source?: ReadonlyArrayOrCollection<Graphic>;
440
- /** Defines symbol layer drawing options. */
440
+ /**
441
+ * Defines symbol layer drawing options. Use symbol layer drawing to override the default drawing order of [CIMSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/)s on maps.
442
+ * When symbols have more than one symbol layer (such as a cased road symbol), symbol layer drawing can also control how those individual symbol layers are ordered across symbol classes.
443
+ *
444
+ * Default draw order | Symbol layer drawing enabled
445
+ * -------------------|----------------------
446
+ * ![Default symbol layer drawing order](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/featurelayer/symbol-layer-drawing-disabled.avif) | ![Symbol layer drawing enabled](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/featurelayer/symbol-layer-drawing-enabled.avif)
447
+ *
448
+ * > [!WARNING]
449
+ * > Symbol layer drawing is not supported in 3D scenes.
450
+ *
451
+ * @since 5.1
452
+ * @see [ArcGIS Pro - Symbol Layer Drawing](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/layer-properties/symbol-layer-drawing.html)
453
+ */
441
454
  symbolLayerDrawing?: SymbolLayerDrawingProperties | null;
442
455
  /**
443
456
  * An array of feature templates defined in the feature layer.
@@ -1176,7 +1189,7 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1176
1189
  * // Wait for a stable state.
1177
1190
  * await whenOnce(() => !layer.reloading);
1178
1191
  */
1179
- readonly reloading: boolean;
1192
+ get reloading(): boolean;
1180
1193
  /**
1181
1194
  * The renderer assigned to the layer. The renderer defines how to
1182
1195
  * visualize each feature in the layer. Depending on the renderer type,
@@ -1294,7 +1307,20 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1294
1307
  */
1295
1308
  get source(): Collection<Graphic>;
1296
1309
  set source(value: ReadonlyArrayOrCollection<Graphic>);
1297
- /** Defines symbol layer drawing options. */
1310
+ /**
1311
+ * Defines symbol layer drawing options. Use symbol layer drawing to override the default drawing order of [CIMSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/)s on maps.
1312
+ * When symbols have more than one symbol layer (such as a cased road symbol), symbol layer drawing can also control how those individual symbol layers are ordered across symbol classes.
1313
+ *
1314
+ * Default draw order | Symbol layer drawing enabled
1315
+ * -------------------|----------------------
1316
+ * ![Default symbol layer drawing order](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/featurelayer/symbol-layer-drawing-disabled.avif) | ![Symbol layer drawing enabled](https://developers.arcgis.com/javascript/latest/assets/references/core/layers/featurelayer/symbol-layer-drawing-enabled.avif)
1317
+ *
1318
+ * > [!WARNING]
1319
+ * > Symbol layer drawing is not supported in 3D scenes.
1320
+ *
1321
+ * @since 5.1
1322
+ * @see [ArcGIS Pro - Symbol Layer Drawing](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/layer-properties/symbol-layer-drawing.html)
1323
+ */
1298
1324
  get symbolLayerDrawing(): SymbolLayerDrawing | null | undefined;
1299
1325
  set symbolLayerDrawing(value: SymbolLayerDrawingProperties | null | undefined);
1300
1326
  /**