@arcgis/core 5.0.0-next.54 → 5.0.0-next.56

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 (530) hide show
  1. package/Color.d.ts +12 -4
  2. package/Ground.d.ts +4 -6
  3. package/Ground.js +1 -1
  4. package/WebScene.js +1 -1
  5. package/applications/Components/SelectionOperation.d.ts +5 -0
  6. package/applications/Components/SketchTooltipControls.d.ts +5 -0
  7. package/applications/Components/actionUtils.d.ts +5 -0
  8. package/applications/Components/analysisUtils.d.ts +5 -0
  9. package/applications/Components/arcadeEditorUtils.d.ts +5 -0
  10. package/applications/Components/arcadeFeatureUtils.d.ts +5 -0
  11. package/applications/Components/basemapUtils.d.ts +5 -0
  12. package/applications/Components/drawUtils.d.ts +13 -1
  13. package/applications/Components/featureUtils.d.ts +5 -0
  14. package/applications/Components/fontUtils.d.ts +5 -0
  15. package/applications/Components/formatUtils.d.ts +5 -0
  16. package/applications/Components/getDefaultUnits.d.ts +5 -0
  17. package/applications/Components/gfxUtils.d.ts +5 -0
  18. package/applications/Components/imageryUtils.d.ts +5 -0
  19. package/applications/Components/layerOriginUtils.d.ts +5 -0
  20. package/applications/Components/layersEffectsJsonUtils.d.ts +5 -0
  21. package/applications/Components/previewSymbol2D.d.ts +5 -0
  22. package/applications/Components/reactiveUtils.d.ts +6 -0
  23. package/applications/Components/sanitizerUtils.d.ts +5 -0
  24. package/applications/Components/stringUtils.d.ts +6 -2
  25. package/applications/Components/styleUtils.d.ts +5 -0
  26. package/applications/Components/svgUtils.d.ts +5 -0
  27. package/applications/Components/testUtils.d.ts +5 -0
  28. package/applications/Components/viewUtils.d.ts +5 -0
  29. package/applications/Components/webStyleSymbolUtils.d.ts +5 -0
  30. package/applications/Excalibur/videoViewUtils.d.ts +5 -0
  31. package/applications/ExperienceBuilder/sketchUtils.d.ts +5 -0
  32. package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +10 -0
  33. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +10 -0
  34. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +11 -1
  35. package/applications/KnowledgeStudio/reshape.d.ts +5 -0
  36. package/applications/KnowledgeStudio/resourceSerializationUtils.d.ts +5 -0
  37. package/applications/MapViewer/layerUtils.d.ts +5 -0
  38. package/applications/MapViewer/mediaUtils.d.ts +5 -0
  39. package/applications/MapViewer/templateUtils.d.ts +5 -0
  40. package/applications/PortalApp/layerUtils.d.ts +5 -0
  41. package/applications/SceneViewer/colorUtils.d.ts +5 -0
  42. package/applications/SceneViewer/devEnvironmentUtils.d.ts +5 -0
  43. package/applications/SceneViewer/layerUtils.d.ts +5 -0
  44. package/applications/SceneViewer/sceneViewerUtils.d.ts +6 -2
  45. package/applications/SceneViewer/symbolUtils.d.ts +5 -0
  46. package/applications/Urban/meshUtils.d.ts +5 -0
  47. package/applications/WebEditor/sketchUtils.d.ts +5 -0
  48. package/arcade.d.ts +22 -0
  49. package/assets/esri/core/workers/RemoteClient.js +1 -1
  50. package/assets/esri/core/workers/chunks/{308fb48d080e01499a26.js → 436f206898306df019ac.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{f2e8abb556a380cc2941.js → 492d575894c7905bb70c.js} +1 -1
  52. package/assets/esri/core/workers/chunks/5340887a4a48bde3407a.js +1 -0
  53. package/assets/esri/core/workers/chunks/5873c7b65d0fb04998fb.js +1 -0
  54. package/assets/esri/core/workers/chunks/82ced9254b27707522ef.js +1 -0
  55. package/assets/esri/core/workers/chunks/8628bf45a33af786cd49.js +1 -0
  56. package/assets/esri/core/workers/chunks/{d63cf90d1356d1f10138.js → 8f4c480c418eba299c2b.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{fa92a7c11befbad8739f.js → b4f944ef6c174b20b619.js} +1 -1
  58. package/assets/esri/core/workers/chunks/c531c0e3d420a1be0ad2.js +316 -0
  59. package/assets/esri/core/workers/chunks/d9736c783513e9c9b22f.js +1 -0
  60. package/assets/esri/core/workers/chunks/{18cc131fd63d8c15df54.js → da2c41ac0f82f32013c1.js} +8 -8
  61. package/assets/esri/core/workers/chunks/{cc67f066c3c0c2a1a37c.js → dd99b77a7c0a052507bb.js} +1 -1
  62. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  63. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  64. package/chunks/ChapmanAtmosphere.glsl.js +10 -9
  65. package/chunks/GlowComposition.glsl.js +1 -1
  66. package/chunks/HUDMaterial.glsl.js +1 -1
  67. package/chunks/Haze.glsl.js +4 -4
  68. package/chunks/LineCallout.glsl.js +2 -2
  69. package/chunks/Precipitation.glsl.js +1 -1
  70. package/chunks/RasterColorizer.glsl.js +10 -10
  71. package/chunks/Terrain.glsl.js +1 -1
  72. package/chunks/Viewshed.glsl.js +1 -1
  73. package/chunks/lyr3DMain.js +1 -1
  74. package/chunks/vec32.js +1 -1
  75. package/config.d.ts +19 -1
  76. package/config.js +1 -1
  77. package/core/Error.d.ts +3 -4
  78. package/core/Error.js +1 -1
  79. package/core/Warning.js +1 -1
  80. package/core/accessorSupport/decorators.d.ts +11 -0
  81. package/core/accessorSupport/types.d.ts +2 -0
  82. package/core/has.js +1 -1
  83. package/core/lang.d.ts +6 -0
  84. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  85. package/core/libs/gl-matrix-2/vec3.js +1 -1
  86. package/core/promiseUtils.d.ts +5 -0
  87. package/core/quantity.d.ts +5 -0
  88. package/core/reactiveUtils.d.ts +142 -0
  89. package/core/scheduling.d.ts +26 -5
  90. package/core/scheduling.js +1 -1
  91. package/core/sql/WhereClause.d.ts +2 -13
  92. package/core/sql/{WhereGrammar.d.ts → types.d.ts} +22 -1
  93. package/core/sql.d.ts +8 -0
  94. package/core/string.js +1 -1
  95. package/core/types.d.ts +30 -1
  96. package/core/units.d.ts +8 -0
  97. package/core/urlUtils.d.ts +7 -0
  98. package/core/workers/loaderConfig.js +1 -1
  99. package/core/workers/workerFactory.js +1 -1
  100. package/core/workers.d.ts +26 -0
  101. package/form/elements/inputs.d.ts +55 -0
  102. package/form/elements.d.ts +43 -0
  103. package/geometry/coordinateFormatter.d.ts +33 -0
  104. package/geometry/geometryEngine.d.ts +16 -0
  105. package/geometry/operators/affineTransformOperator.d.ts +5 -0
  106. package/geometry/operators/alphaShapeOperator.d.ts +9 -0
  107. package/geometry/operators/areaOperator.d.ts +7 -0
  108. package/geometry/operators/autoCompleteOperator.d.ts +5 -0
  109. package/geometry/operators/boundaryOperator.d.ts +5 -0
  110. package/geometry/operators/bufferOperator.d.ts +11 -0
  111. package/geometry/operators/centroidOperator.d.ts +14 -0
  112. package/geometry/operators/clipOperator.d.ts +7 -0
  113. package/geometry/operators/containsOperator.d.ts +9 -0
  114. package/geometry/operators/convexHullOperator.d.ts +9 -0
  115. package/geometry/operators/crossesOperator.d.ts +7 -0
  116. package/geometry/operators/cutOperator.d.ts +18 -0
  117. package/geometry/operators/densifyOperator.d.ts +21 -0
  118. package/geometry/operators/differenceOperator.d.ts +7 -0
  119. package/geometry/operators/disjointOperator.d.ts +8 -0
  120. package/geometry/operators/distanceOperator.d.ts +8 -0
  121. package/geometry/operators/equalsOperator.d.ts +5 -0
  122. package/geometry/operators/extendOperator.d.ts +8 -0
  123. package/geometry/operators/generalizeOperator.d.ts +7 -0
  124. package/geometry/operators/geodesicBufferOperator.d.ts +13 -0
  125. package/geometry/operators/geodesicProximityOperator.d.ts +13 -0
  126. package/geometry/operators/geodeticAreaOperator.d.ts +11 -0
  127. package/geometry/operators/geodeticDensifyOperator.d.ts +12 -0
  128. package/geometry/operators/geodeticDistanceOperator.d.ts +14 -0
  129. package/geometry/operators/geodeticLengthOperator.d.ts +11 -0
  130. package/geometry/operators/geodeticUtilsOperator.d.ts +11 -0
  131. package/geometry/operators/graphicBufferOperator.d.ts +7 -0
  132. package/geometry/operators/integrateOperator.d.ts +9 -0
  133. package/geometry/operators/intersectionOperator.d.ts +7 -0
  134. package/geometry/operators/intersectsOperator.d.ts +9 -0
  135. package/geometry/operators/isNearOperator.d.ts +7 -0
  136. package/geometry/operators/labelPointOperator.d.ts +14 -0
  137. package/geometry/operators/lengthOperator.d.ts +7 -0
  138. package/geometry/operators/linesToPolygonsOperator.d.ts +5 -0
  139. package/geometry/operators/locateBetweenOperator.d.ts +10 -0
  140. package/geometry/operators/minimumBoundingCircleOperator.d.ts +13 -0
  141. package/geometry/operators/multiPartToSinglePartOperator.d.ts +7 -0
  142. package/geometry/operators/offsetOperator.d.ts +44 -0
  143. package/geometry/operators/overlapsOperator.d.ts +7 -0
  144. package/geometry/operators/polygonOverlayOperator.d.ts +6 -0
  145. package/geometry/operators/polygonSlicerOperator.d.ts +5 -0
  146. package/geometry/operators/projectOperator.d.ts +41 -0
  147. package/geometry/operators/proximityOperator.d.ts +8 -0
  148. package/geometry/operators/relateOperator.d.ts +7 -0
  149. package/geometry/operators/reshapeOperator.d.ts +5 -0
  150. package/geometry/operators/shapePreservingProjectOperator.d.ts +27 -0
  151. package/geometry/operators/simplifyOGCOperator.d.ts +8 -0
  152. package/geometry/operators/simplifyOperator.d.ts +9 -0
  153. package/geometry/operators/support/geographicTransformationUtils.d.ts +11 -0
  154. package/geometry/operators/symmetricDifferenceOperator.d.ts +12 -0
  155. package/geometry/operators/touchesOperator.d.ts +7 -0
  156. package/geometry/operators/unionOperator.d.ts +7 -0
  157. package/geometry/operators/withinOperator.d.ts +9 -0
  158. package/geometry/projection/projectPointToVector.js +1 -1
  159. package/geometry/support/geodesicUtils.d.ts +8 -0
  160. package/geometry/support/jsonUtils.d.ts +7 -0
  161. package/geometry/support/meshUtils.d.ts +5 -0
  162. package/geometry/support/normalizeUtils.d.ts +7 -0
  163. package/geometry/support/webMercatorUtils.d.ts +12 -0
  164. package/geometry/types.d.ts +10 -1
  165. package/geometry.d.ts +38 -0
  166. package/interfaces.d.ts +52 -58
  167. package/intl.d.ts +111 -0
  168. package/kernel.d.ts +5 -0
  169. package/kernel.js +1 -1
  170. package/layers/BaseDynamicLayer.d.ts +1 -1
  171. package/layers/CSVLayer.d.ts +2 -2
  172. package/layers/CatalogLayer.d.ts +2 -2
  173. package/layers/FeatureLayer.d.ts +8 -4
  174. package/layers/GeoJSONLayer.d.ts +2 -1
  175. package/layers/ILyr3DWasmPerSceneView.js +1 -1
  176. package/layers/Layer.d.ts +1 -1
  177. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  178. package/layers/OGCFeatureLayer.d.ts +1 -1
  179. package/layers/ParquetLayer.d.ts +1 -1
  180. package/layers/RouteLayer.js +1 -1
  181. package/layers/SceneLayer.d.ts +2 -1
  182. package/layers/StreamLayer.d.ts +6 -5
  183. package/layers/SubtypeGroupLayer.d.ts +3 -4
  184. package/layers/VectorTileLayer.d.ts +1 -1
  185. package/layers/WFSLayer.d.ts +2 -1
  186. package/layers/WMSLayer.d.ts +2 -2
  187. package/layers/catalog/catalogUtils.d.ts +6 -0
  188. package/layers/ogc/wcsUtils.d.ts +6 -0
  189. package/layers/ogc/wfsUtils.d.ts +6 -0
  190. package/layers/orientedImagery/transformations/imageToWorld.d.ts +10 -0
  191. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  192. package/layers/orientedImagery/transformations/worldToImage.d.ts +10 -0
  193. package/layers/orientedImagery/types.d.ts +1 -1
  194. package/layers/support/SubtypeSublayer.d.ts +13 -0
  195. package/layers/support/arcadeUtils.d.ts +5 -0
  196. package/layers/support/csvUtils.d.ts +6 -0
  197. package/layers/support/fieldUtils.d.ts +9 -0
  198. package/layers/support/parquetUtils.d.ts +6 -0
  199. package/layers/support/rasterFunctionConstants.d.ts +9 -0
  200. package/layers/support/rasterFunctionUtils.d.ts +7 -0
  201. package/package.json +1 -1
  202. package/pointCloudRenderers.d.ts +44 -0
  203. package/popup/content.d.ts +48 -0
  204. package/rasterRenderers.d.ts +46 -0
  205. package/renderers/support/AuthoringInfo.d.ts +1 -1
  206. package/renderers/support/jsonUtils.d.ts +7 -0
  207. package/renderers/support/utils.d.ts +5 -0
  208. package/renderers/visualVariables/SizeVariable.d.ts +0 -3
  209. package/renderers/visualVariables/VisualVariable.d.ts +1 -1
  210. package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +1 -1
  211. package/renderers.d.ts +46 -0
  212. package/request.d.ts +17 -0
  213. package/rest/closestFacility.d.ts +21 -0
  214. package/rest/featureService/utils.d.ts +5 -0
  215. package/rest/find.d.ts +21 -0
  216. package/rest/geometryService.d.ts +14 -0
  217. package/rest/geoprocessor.d.ts +16 -0
  218. package/rest/identify.d.ts +19 -0
  219. package/rest/imageService.d.ts +10 -0
  220. package/rest/knowledgeGraphService.d.ts +39 -0
  221. package/rest/lastMileDelivery.d.ts +12 -0
  222. package/rest/locator.d.ts +24 -0
  223. package/rest/networkService.d.ts +5 -0
  224. package/rest/networks/queryAssociations.d.ts +7 -0
  225. package/rest/networks/support/NetworkElement.d.ts +1 -1
  226. package/rest/networks/synthesizeAssociationGeometries.d.ts +7 -0
  227. package/rest/networks/trace.d.ts +6 -0
  228. package/rest/places.d.ts +34 -0
  229. package/rest/print.d.ts +74 -0
  230. package/rest/query.d.ts +33 -0
  231. package/rest/route.d.ts +18 -0
  232. package/rest/serviceArea.d.ts +18 -0
  233. package/rest/support/AreasAndLengthsParameters.d.ts +2 -2
  234. package/rest/support/AttachmentQuery.d.ts +0 -1
  235. package/rest/support/AttributeBinsQuery.d.ts +3 -3
  236. package/rest/support/AutoIntervalBinParameters.d.ts +4 -4
  237. package/rest/support/DateBinParameters.d.ts +2 -2
  238. package/rest/support/DateBinTimeInterval.d.ts +1 -1
  239. package/rest/support/DensifyParameters.d.ts +1 -1
  240. package/rest/support/DirectionsFeature.d.ts +1 -1
  241. package/rest/support/GPMessage.d.ts +1 -1
  242. package/rest/support/LastMileDeliveryParameters.d.ts +1 -1
  243. package/rest/support/QuantizationParameters.d.ts +3 -3
  244. package/rest/support/Query.d.ts +0 -1
  245. package/rest/support/QueryMixin.d.ts +1 -1
  246. package/rest/support/RelationshipQuery.d.ts +0 -1
  247. package/rest/support/interfaces.d.ts +1 -2
  248. package/rest/symbolService.d.ts +9 -0
  249. package/smartMapping/heuristics/binLevel.d.ts +12 -0
  250. package/smartMapping/heuristics/scaleRange.d.ts +15 -0
  251. package/smartMapping/heuristics/sizeRange.d.ts +12 -0
  252. package/smartMapping/labels/bins.d.ts +13 -0
  253. package/smartMapping/labels/clusters.d.ts +17 -1
  254. package/smartMapping/popup/clusters.d.ts +21 -0
  255. package/smartMapping/popup/templates.d.ts +18 -0
  256. package/smartMapping/raster/renderers/classBreaks.d.ts +7 -0
  257. package/smartMapping/raster/renderers/colormap.d.ts +7 -0
  258. package/smartMapping/raster/renderers/flow.d.ts +19 -0
  259. package/smartMapping/raster/renderers/rgb.d.ts +7 -0
  260. package/smartMapping/raster/renderers/shadedRelief.d.ts +7 -0
  261. package/smartMapping/raster/renderers/stretch.d.ts +7 -0
  262. package/smartMapping/raster/renderers/uniqueValue.d.ts +7 -0
  263. package/smartMapping/raster/renderers/vectorField.d.ts +20 -0
  264. package/smartMapping/raster/support/colorRamps.d.ts +7 -0
  265. package/smartMapping/raster/support/utils.d.ts +5 -0
  266. package/smartMapping/renderers/color.d.ts +17 -0
  267. package/smartMapping/renderers/dotDensity.d.ts +21 -0
  268. package/smartMapping/renderers/heatmap.d.ts +17 -0
  269. package/smartMapping/renderers/location.d.ts +10 -0
  270. package/smartMapping/renderers/opacity.d.ts +19 -0
  271. package/smartMapping/renderers/pieChart.d.ts +19 -0
  272. package/smartMapping/renderers/predominance.d.ts +27 -0
  273. package/smartMapping/renderers/relationship.d.ts +48 -0
  274. package/smartMapping/renderers/size.d.ts +18 -0
  275. package/smartMapping/renderers/support/rendererUtils.d.ts +8 -0
  276. package/smartMapping/renderers/support/spikeUtils.d.ts +6 -0
  277. package/smartMapping/renderers/type.d.ts +18 -0
  278. package/smartMapping/renderers/univariateColorSize.d.ts +29 -0
  279. package/smartMapping/statistics/classBreaks.d.ts +14 -0
  280. package/smartMapping/statistics/heatmapStatistics.d.ts +15 -0
  281. package/smartMapping/statistics/histogram.d.ts +17 -0
  282. package/smartMapping/statistics/predominantCategories.d.ts +6 -0
  283. package/smartMapping/statistics/summaryStatistics.d.ts +15 -0
  284. package/smartMapping/statistics/summaryStatisticsForAge.d.ts +8 -1
  285. package/smartMapping/statistics/support/ageUtils.d.ts +8 -0
  286. package/smartMapping/statistics/support/predominanceUtils.d.ts +8 -1
  287. package/smartMapping/statistics/types.d.ts +6 -1
  288. package/smartMapping/statistics/uniqueValues.d.ts +13 -0
  289. package/smartMapping/symbology/color.d.ts +8 -0
  290. package/smartMapping/symbology/dotDensity.d.ts +7 -0
  291. package/smartMapping/symbology/flow.d.ts +8 -0
  292. package/smartMapping/symbology/heatmap.d.ts +8 -0
  293. package/smartMapping/symbology/location.d.ts +8 -0
  294. package/smartMapping/symbology/pieChart.d.ts +7 -0
  295. package/smartMapping/symbology/predominance.d.ts +7 -0
  296. package/smartMapping/symbology/relationship.d.ts +7 -0
  297. package/smartMapping/symbology/size.d.ts +7 -0
  298. package/smartMapping/symbology/support/colorRamps.d.ts +7 -0
  299. package/smartMapping/symbology/type.d.ts +8 -0
  300. package/support/groundUtils.js +1 -1
  301. package/support/popupUtils.d.ts +5 -0
  302. package/support/revision.js +1 -1
  303. package/support/timeUtils.d.ts +9 -0
  304. package/symbols/CIMSymbol.d.ts +1 -1
  305. package/symbols/ExtrudeSymbol3DLayer.d.ts +2 -2
  306. package/symbols/FillSymbol3DLayer.d.ts +1 -1
  307. package/symbols/LineSymbol3DLayer.d.ts +2 -2
  308. package/symbols/ObjectSymbol3DLayer.d.ts +2 -2
  309. package/symbols/PathSymbol3DLayer.d.ts +2 -2
  310. package/symbols/TextSymbol.d.ts +2 -2
  311. package/symbols/support/Symbol3DFillMaterial.d.ts +1 -1
  312. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  313. package/symbols/support/Symbol3DHalo.d.ts +8 -4
  314. package/symbols/support/Symbol3DHalo.js +1 -1
  315. package/symbols/support/cimConversionUtils.d.ts +9 -0
  316. package/symbols/support/cimSymbolUtils.d.ts +10 -0
  317. package/symbols/support/jsonUtils.d.ts +7 -0
  318. package/symbols/support/symbolUtils.d.ts +5 -0
  319. package/symbols.d.ts +59 -0
  320. package/tables/elements.d.ts +41 -0
  321. package/time/TimeExtent.d.ts +1 -1
  322. package/time/TimeInterval.d.ts +1 -1
  323. package/unionTypes.d.ts +5 -0
  324. package/versionManagement/utils.d.ts +5 -0
  325. package/versionManagement/versionAdapters/utils.d.ts +5 -0
  326. package/views/2d/MapViewConstraints.d.ts +18 -10
  327. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  328. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  329. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  330. package/views/2d/layers/RouteLayerView2D.js +1 -1
  331. package/views/2d/layers/TileLayerView2D.js +1 -1
  332. package/views/2d/layers/support/RouteLayerInteraction.js +1 -1
  333. package/views/2d/layers/support/RouteLayerWaypointVisualization.js +5 -0
  334. package/views/2d/layers/types.d.ts +6 -0
  335. package/views/2d/types.d.ts +3 -1
  336. package/views/3d/analysis/DirectLineMeasurement/types.d.ts +5 -0
  337. package/views/3d/analysis/LineOfSight/types.d.ts +5 -0
  338. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.d.ts +1 -1
  339. package/views/3d/analysis/VolumeMeasurement/types.d.ts +5 -0
  340. package/views/3d/environment/ChapmanApproximation.glsl.js +9 -10
  341. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  342. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  343. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  344. package/views/3d/environment/CloudsParameters.js +1 -1
  345. package/views/3d/environment/EnvironmentManager.js +1 -1
  346. package/views/3d/environment/SceneViewEnvironment.d.ts +1 -1
  347. package/views/3d/environment/types.d.ts +13 -0
  348. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  349. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  350. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  351. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  352. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  353. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  354. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  355. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  356. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  357. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  358. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +1 -1
  359. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  360. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  361. package/views/3d/terrain/TerrainSurface.js +1 -1
  362. package/views/3d/webgl/ManagedFBO.d.ts +4 -5
  363. package/views/3d/webgl/RenderNode.d.ts +1 -1
  364. package/views/3d/{webgl-engine/lighting/SceneLighting.d.ts → webgl/types.d.ts} +4 -6
  365. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  366. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +2 -2
  367. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +2 -2
  368. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  369. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  370. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  371. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  372. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  373. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  374. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  375. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  376. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  377. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  378. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  379. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  380. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  381. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  382. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  383. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +8 -8
  384. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +5 -5
  385. package/views/3d/webgl.d.ts +6 -0
  386. package/views/BreakpointsOwner.d.ts +16 -16
  387. package/views/IBreakpointsOwner.d.ts +15 -15
  388. package/views/MapView.d.ts +1 -1
  389. package/views/PopupView.d.ts +2 -2
  390. package/views/SceneView.d.ts +14 -17
  391. package/views/SelectionManager.d.ts +1 -0
  392. package/views/SelectionManager.js +1 -1
  393. package/views/VideoView.d.ts +1 -2
  394. package/views/VideoView.js +1 -1
  395. package/views/View.d.ts +8 -11
  396. package/views/View2D.d.ts +1 -2
  397. package/views/analysis/AreaMeasurement/types.d.ts +6 -0
  398. package/views/analysis/DistanceMeasurement/types.d.ts +5 -0
  399. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +4 -4
  400. package/views/analysis/ElevationProfile/types.d.ts +6 -0
  401. package/views/analysis/types.d.ts +5 -0
  402. package/views/draw/DrawOperation.js +1 -1
  403. package/views/draw/PolygonDrawAction.d.ts +1 -1
  404. package/views/draw/PolygonDrawAction.js +1 -1
  405. package/views/draw/PolylineDrawAction.d.ts +1 -1
  406. package/views/draw/PolylineDrawAction.js +1 -1
  407. package/views/draw/support/GraphicMover.js +1 -1
  408. package/views/draw/types.d.ts +3 -1
  409. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  410. package/views/interactive/sketch/Units.d.ts +5 -1
  411. package/views/interactive/snapping/GridSnappingEngine.js +1 -1
  412. package/views/layers/BuildingSceneLayerView.d.ts +1 -1
  413. package/views/layers/ImageryLayerViewMixin.d.ts +2 -3
  414. package/views/layers/LayerView.d.ts +1 -1
  415. package/views/layers/support/highlightUtils.js +1 -1
  416. package/views/support/colorUtils.d.ts +5 -0
  417. package/views/support/selectionUtils.js +1 -1
  418. package/views/types.d.ts +69 -1
  419. package/views/ui/types.d.ts +12 -1
  420. package/webscene/Environment.d.ts +2 -2
  421. package/webscene/support/FeatureReference.d.ts +1 -1
  422. package/webscene/types.d.ts +10 -1
  423. package/widgets/BasemapGallery.d.ts +1 -1
  424. package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +1 -1
  425. package/widgets/BasemapLayerList.d.ts +1 -1
  426. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +1 -1
  427. package/widgets/BatchAttributeForm.d.ts +1 -1
  428. package/widgets/Bookmarks.d.ts +1 -2
  429. package/widgets/BuildingExplorer.d.ts +1 -1
  430. package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +1 -1
  431. package/widgets/CatalogLayerList.d.ts +1 -1
  432. package/widgets/Compass.d.ts +1 -1
  433. package/widgets/CoordinateConversion.d.ts +1 -2
  434. package/widgets/Daylight.d.ts +1 -1
  435. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +1 -2
  436. package/widgets/DirectionalPad/{utils.d.ts → types.d.ts} +3 -1
  437. package/widgets/Directions.d.ts +1 -2
  438. package/widgets/Editor/EditorViewModel.d.ts +1 -2
  439. package/widgets/Editor/SplitFeatureWorkflow.d.ts +1 -2
  440. package/widgets/Editor/SplitFeatureWorkflowData.d.ts +1 -1
  441. package/widgets/Editor/types.d.ts +8 -1
  442. package/widgets/Editor/workflowUtils.js +1 -1
  443. package/widgets/Editor.d.ts +2 -3
  444. package/widgets/Feature/types.d.ts +5 -1
  445. package/widgets/Feature.d.ts +1 -1
  446. package/widgets/FeatureForm/FeatureFormViewModel.d.ts +2 -2
  447. package/widgets/FeatureForm/FieldInput.d.ts +1 -1
  448. package/widgets/FeatureForm.d.ts +1 -1
  449. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  450. package/widgets/FeatureTemplates.d.ts +1 -1
  451. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  452. package/widgets/Features.d.ts +1 -2
  453. package/widgets/FloorFilter.d.ts +1 -1
  454. package/widgets/Home/HomeViewModel.d.ts +1 -1
  455. package/widgets/Home.d.ts +1 -1
  456. package/widgets/LayerList/ListItemPanel.d.ts +1 -1
  457. package/widgets/LayerList/types.d.ts +2 -2
  458. package/widgets/LayerList.d.ts +1 -1
  459. package/widgets/Legend.d.ts +1 -1
  460. package/widgets/Locate/LocateViewModel.d.ts +2 -2
  461. package/widgets/Locate.d.ts +1 -1
  462. package/widgets/Popup/types.d.ts +2 -0
  463. package/widgets/Popup.d.ts +1 -2
  464. package/widgets/Print.d.ts +1 -1
  465. package/widgets/Search/types.d.ts +5 -0
  466. package/widgets/Search.d.ts +1 -1
  467. package/widgets/ShadowCast/DurationOptions.d.ts +1 -1
  468. package/widgets/ShadowCast/ShadowCastViewModel.d.ts +1 -1
  469. package/widgets/ShadowCast/{ShadowVisualizationType.d.ts → types.d.ts} +4 -1
  470. package/widgets/ShadowCast.d.ts +1 -1
  471. package/widgets/Sketch/types.d.ts +1 -1
  472. package/widgets/Slice.d.ts +1 -1
  473. package/widgets/TableList.d.ts +1 -1
  474. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +1 -1
  475. package/widgets/Track.d.ts +1 -1
  476. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +1 -1
  477. package/widgets/UtilityNetworkTrace/{support/ResultAreaHandler.d.ts → types.d.ts} +2 -2
  478. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  479. package/widgets/Weather/WeatherViewModel.d.ts +2 -2
  480. package/widgets/Weather.d.ts +1 -1
  481. package/widgets/smartMapping/support/utils.d.ts +6 -0
  482. package/widgets/support/GoTo.d.ts +1 -1
  483. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  484. package/widgets/support/SelectionList/LayerItem.js +1 -1
  485. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  486. package/widgets/support/SelectionList.js +1 -1
  487. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  488. package/widgets/support/forms/types.d.ts +2 -0
  489. package/widgets/support/symbolPreviewUtils.js +1 -1
  490. package/widgets/support/{goToUtils.d.ts → types.d.ts} +8 -1
  491. package/widgets/support/widget.d.ts +11 -0
  492. package/assets/esri/core/workers/chunks/0d1e8d5d9abee38e275e.js +0 -316
  493. package/assets/esri/core/workers/chunks/316f3e93aa0db48ef129.js +0 -1
  494. package/assets/esri/core/workers/chunks/73c3ee2697265b0f7208.js +0 -1
  495. package/assets/esri/core/workers/chunks/cd2ea924cb91cdb6dde9.js +0 -1
  496. package/assets/esri/core/workers/chunks/d57577c02fb2932e8305.js +0 -1
  497. package/assets/esri/core/workers/chunks/ec7e6427d99cf3148a61.js +0 -1
  498. package/colorUtils.d.ts +0 -13
  499. package/core/Logger.d.ts +0 -29
  500. package/core/Message.d.ts +0 -2
  501. package/core/Message.js +0 -5
  502. package/core/accessorSupport/PropertyOrigin.d.ts +0 -2
  503. package/core/sql/sql92grammar.d.ts +0 -12
  504. package/core/string.d.ts +0 -3
  505. package/core/time.d.ts +0 -2
  506. package/core/timeUtils.d.ts +0 -2
  507. package/views/2d/ViewStateManager.d.ts +0 -2
  508. package/views/2d/layers/support/clusterUtils.d.ts +0 -6
  509. package/views/3d/environment/lightingUtils.d.ts +0 -4
  510. package/views/3d/environment/weather.d.ts +0 -9
  511. package/views/3d/glTF/internal/resourceUtils.d.ts +0 -10
  512. package/views/3d/interactive/visualElements/DrapedVisualElementResources.d.ts +0 -2
  513. package/views/3d/support/QualityProfile.d.ts +0 -2
  514. package/views/SceneViewHitTestResult.d.ts +0 -64
  515. package/views/ViewingMode.d.ts +0 -2
  516. package/views/draw/DrawingMode.d.ts +0 -2
  517. package/views/draw/support/drawUtils.d.ts +0 -7
  518. package/views/ui/Padding.d.ts +0 -11
  519. package/views/viewType.d.ts +0 -2
  520. package/views/webgl/enums.d.ts +0 -38
  521. package/webscene/support/featureReferenceUtils.d.ts +0 -4
  522. package/widgets/DirectionalPad/constants.d.ts +0 -2
  523. package/widgets/Editor/support/splitFeatureUtils.d.ts +0 -7
  524. package/widgets/Feature/support/arcadeFeatureUtils.d.ts +0 -4
  525. package/widgets/Popup/actions.d.ts +0 -4
  526. package/widgets/ShadowCast/DurationMode.d.ts +0 -3
  527. package/widgets/support/Heading.d.ts +0 -7
  528. package/widgets/support/forms/formUtils.d.ts +0 -2
  529. /package/views/animation/{easing.d.ts → types.d.ts} +0 -0
  530. /package/views/draw/{DrawingMode.js → drawingModes.js} +0 -0
@@ -12,20 +12,24 @@ export interface MapViewConstraintsProperties extends Partial<Pick<MapViewConstr
12
12
  * @since 4.17
13
13
  */
14
14
  geometry?: ((ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" })) | null;
15
- /** An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html). If not specified, this value is read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). It is possible to generate additional LODs via the [TileInfo#create()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TileInfo.html#create) method. This is useful in cases where the default amount of LODs provided are not sufficient. One example of when this is needed is when setting the view scale 1:1. Additionally, this property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/). */
15
+ /**
16
+ * An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html). If not specified, this value is read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). It is possible to generate additional LODs via the
17
+ * [TileInfo#create()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TileInfo.html#create) method. This is useful in cases where the default amount of LODs provided are not sufficient. One example of when
18
+ * this is needed is when setting the view scale 1:1. Additionally, this property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/).
19
+ */
16
20
  lods?: LODProperties[] | null;
17
21
  }
18
22
 
19
23
  export default abstract class MapViewConstraints extends Accessor {
20
24
  /** A read-only property that specifies the levels of detail (LODs) read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). */
21
25
  get effectiveLODs(): LOD[] | null;
22
- /** A read-only property that specifies the maximum {@link views/2d/MapViewConstraints#scale} the user is allowed to zoom to within the view. */
26
+ /** A read-only property that specifies the maximum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale) the user is allowed to zoom to within the view. */
23
27
  get effectiveMaxScale(): number;
24
- /** A read-only property that specifies the maximum {@link views/2d/MapViewConstraints#zoom} level the user is allowed to zoom to within the view. */
28
+ /** A read-only property that specifies the maximum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom) level the user is allowed to zoom to within the view. */
25
29
  get effectiveMaxZoom(): number;
26
- /** A read-only property that specifies the minimum {@link views/2d/MapViewConstraints#scale} the user is allowed to zoom to within the view. */
30
+ /** A read-only property that specifies the minimum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale) the user is allowed to zoom to within the view. */
27
31
  get effectiveMinScale(): number;
28
- /** A read-only property that specifies the minimum {@link views/2d/MapViewConstraints#zoom} level the user is allowed to zoom to within the view. */
32
+ /** A read-only property that specifies the minimum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom) level the user is allowed to zoom to within the view. */
29
33
  get effectiveMinZoom(): number;
30
34
  /**
31
35
  * The area in which the user is allowed to navigate laterally. Only [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) and [Polygon](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Polygon.html) geometry types are supported. Z-values are ignored. This property is honored by interactive [MapView navigation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-MapViewConstraints.html#mapview-navigation) and [MapView#goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo). This property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/).
@@ -34,29 +38,33 @@ export default abstract class MapViewConstraints extends Accessor {
34
38
  */
35
39
  get geometry(): SupportedGeometry | null;
36
40
  set geometry(value: ((ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" })) | null);
37
- /** An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html). If not specified, this value is read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). It is possible to generate additional LODs via the [TileInfo#create()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TileInfo.html#create) method. This is useful in cases where the default amount of LODs provided are not sufficient. One example of when this is needed is when setting the view scale 1:1. Additionally, this property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/). */
41
+ /**
42
+ * An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html). If not specified, this value is read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). It is possible to generate additional LODs via the
43
+ * [TileInfo#create()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TileInfo.html#create) method. This is useful in cases where the default amount of LODs provided are not sufficient. One example of when
44
+ * this is needed is when setting the view scale 1:1. Additionally, this property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/).
45
+ */
38
46
  get lods(): LOD[] | null;
39
47
  set lods(value: LODProperties[] | null);
40
48
  /**
41
- * The maximum {@link views/2d/MapViewConstraints#scale} the user is allowed to zoom to within the view. Setting this value to `0` allows the user to overzoom layer tiles.
49
+ * The maximum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale) the user is allowed to zoom to within the view. Setting this value to `0` allows the user to overzoom layer tiles.
42
50
  *
43
51
  * @default 0
44
52
  */
45
53
  accessor maxScale: number;
46
54
  /**
47
- * The maximum {@link views/2d/MapViewConstraints#zoom} level the user is allowed to zoom to within the view. Setting this value to `0` allows the user to over-zoom layer tiles.
55
+ * The maximum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom) level the user is allowed to zoom to within the view. Setting this value to `0` allows the user to over-zoom layer tiles.
48
56
  *
49
57
  * @default -1
50
58
  */
51
59
  accessor maxZoom: number;
52
60
  /**
53
- * The minimum {@link views/2d/MapViewConstraints#scale} the user is allowed to zoom to within the view.
61
+ * The minimum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale) the user is allowed to zoom to within the view.
54
62
  *
55
63
  * @default 0
56
64
  */
57
65
  accessor minScale: number;
58
66
  /**
59
- * The minimum {@link views/2d/MapViewConstraints#zoom} level the user is allowed to zoom to within the view.
67
+ * The minimum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom) level the user is allowed to zoom to within the view.
60
68
  *
61
69
  * @default -1
62
70
  */
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- const e={background:{"background.frag":"#ifdef PATTERN\nuniform lowp float u_opacity;\nuniform lowp sampler2D u_texture;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_tileTextureCoord;\n#else\nuniform lowp vec4 u_color;\n#endif\nvoid main() {\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = mod(v_tileTextureCoord, 1.0);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = u_opacity * color;\n#else\ngl_FragColor = u_color;\n#endif\n}","background.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform mediump float u_coord_range;\nuniform mediump float u_depth;\n#ifdef PATTERN\nuniform mediump mat3 u_pattern_matrix;\nvarying mediump vec2 v_tileTextureCoord;\nuniform mediump vec4 u_tlbr;\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\n#endif\nvoid main() {\ngl_Position = vec4((u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0)).xy, u_depth, 1.0);\n#ifdef PATTERN\nv_tileTextureCoord = (u_pattern_matrix * vec3(a_pos, 1.0)).xy;\nv_tlbr = u_tlbr / u_mosaicSize.xyxy;\n#endif\n}"},circle:{"circle.frag":"precision lowp float;\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nvoid main()\n{\nmediump float dist = length(v_offset);\nmediump float alpha = smoothstep(0.0, -v_blur, dist - 1.0);\nlowp float color_mix_ratio = v_stroke_width < 0.01 ? 0.0 : smoothstep(-v_blur, 0.0, dist - v_radius / (v_radius + v_stroke_width));\ngl_FragColor = alpha * mix(v_color, v_stroke_color, color_mix_ratio);\n}","circle.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_circleTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_antialiasingWidth;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_stroke_color = stroke_color * stroke_opacity;\nv_stroke_width = stroke_width;\nv_radius = radius;\nv_blur = max(blur, u_antialiasingWidth / (radius + stroke_width));\nmediump vec2 offset = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\nv_offset = offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos * 0.5, 1.0) + u_displayMat3 * vec3((v_radius + v_stroke_width) * offset + u_circleTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},fill:{"fill.frag":"precision lowp float;\n#ifdef PATTERN\nuniform lowp sampler2D u_texture;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = fract(v_tileTextureCoord);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = v_color[3] * color;\n#else\ngl_FragColor = v_color;\n#endif\n}","fill.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump float u_depth;\nuniform mediump vec2 u_fillTranslation;\n#ifdef PATTERN\n#include <util/util.glsl>\nuniform mediump vec2 u_mosaicSize;\nuniform mediump float u_patternFactor;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\n#ifdef PATTERN\nfloat patternWidth = nextPOT(tlbr.z - tlbr.x);\nfloat patternHeight = nextPOT(tlbr.w - tlbr.y);\nfloat scaleX = 1.0 / (patternWidth * u_patternFactor);\nfloat scaleY = 1.0 / (patternHeight * u_patternFactor);\nmat3 patterMat = mat3(scaleX, 0.0, 0.0,\n0.0, -scaleY, 0.0,\n0.0, 0.0, 1.0);\nv_tileTextureCoord = (patterMat * vec3(a_pos, 1.0)).xy;\nv_tlbr = tlbr / u_mosaicSize.xyxy;\n#endif\nvec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},icon:{"icon.frag":"precision mediump float;\nuniform lowp sampler2D u_texture;\n#ifdef SDF\nuniform lowp vec4 u_color;\nuniform lowp vec4 u_outlineColor;\n#endif\nuniform highp int u_isStencilPass;\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump float v_halo_width;\n#endif\nconst float alphaCutoff = 1.0 / 255.5;\n#include <util/encoding.glsl>\nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef SDF\nlowp vec4 fillPixelColor = v_color;\nfloat d = rgba2float(texture2D(u_texture, v_tex)) - 0.5;\nconst float softEdgeRatio = 0.248062016;\nfloat size = max(v_size.x, v_size.y);\nfloat dist = d * softEdgeRatio * size;\nfillPixelColor *= clamp(0.5 - dist, 0.0, 1.0);\nif (v_halo_width > 0.25) {\nlowp vec4 outlinePixelColor = u_outlineColor;\nconst float outlineLimitRatio = (16.0 / 86.0);\nfloat clampedOutlineSize = softEdgeRatio * min(v_halo_width, outlineLimitRatio * max(v_size.x, v_size.y));\noutlinePixelColor *= clamp(0.5 - (abs(dist) - clampedOutlineSize), 0.0, 1.0);\ngl_FragColor = v_opacity * mixColors(fillPixelColor, outlinePixelColor);\n}\nelse {\ngl_FragColor = v_opacity * fillPixelColor;\n}\n#else\nlowp vec4 texColor = texture2D(u_texture, v_tex);\nif (u_isStencilPass == 1 && texColor.a < alphaCutoff) {\ndiscard;\n}\ngl_FragColor = v_opacity * texColor;\n#endif\n}","icon.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump float v_halo_width;\n#endif\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_iconTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nconst float C_OFFSET_PRECISION = 1.0 / 8.0;\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\nconst float C_DEG_TO_RAD = 3.14159265359 / 180.0;\nconst float tileCoordRatio = 1.0 / 8.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nv_color = color;\nv_opacity = opacity;\n#ifdef SDF\nv_halo_width = halo_width;\n#endif\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_opacity *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float delta_z = 0.0;\nmediump float rotated = mod(a_angle + u_mapRotation, 256.0);\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * step(64.0, rotated) * (1.0 - step(192.0, rotated));\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_opacity, 0.0);\nvec2 offset = C_OFFSET_PRECISION * a_vertexOffset;\nv_size = abs(offset);\n#ifdef SDF\noffset = (120.0 / 86.0) * offset;\n#endif\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayViewMat3 * vec3(size * offset, 0.0) + u_displayMat3 * vec3(u_iconTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\nv_tex = a_tex.xy / u_mosaicSize;\n}"},line:{"line.frag":"precision lowp float;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nvarying mediump float v_lineHalfWidth;\nvarying lowp vec4 v_color;\nvarying mediump float v_blur;\n#if defined (PATTERN) || defined(SDF)\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\nuniform sampler2D u_texture;\nuniform mediump float u_antialiasing;\n#endif\n#ifdef SDF\n#include <util/encoding.glsl>\n#endif\nvoid main()\n{\nmediump float fragDist = length(v_normal) * v_lineHalfWidth;\nlowp float alpha = clamp((v_lineHalfWidth - fragDist) / v_blur, 0.0, 1.0);\n#ifdef PATTERN\nmediump float relativeTexX = fract(v_accumulatedDistance / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + v_normal.y * v_lineHalfWidth / (v_patternSize.y * v_widthRatio);\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nlowp vec4 color = texture2D(u_texture, texCoord);\ngl_FragColor = alpha * v_color[3] * color;\n#elif defined(SDF)\nmediump float relativeTexX = fract((v_accumulatedDistance * 0.5) / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + 0.25 * v_normal.y;\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\nfloat dist = d * (v_lineHalfWidth + u_antialiasing / 2.0);\ngl_FragColor = alpha * clamp(0.5 - dist, 0.0, 1.0) * v_color;\n#else\ngl_FragColor = alpha * v_color;\n#endif\n}","line.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec4 a_extrude_offset;\nattribute vec4 a_dir_normal;\nattribute vec2 a_accumulatedDistance;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump float u_zoomFactor;\nuniform mediump vec2 u_lineTranslation;\nuniform mediump float u_antialiasing;\nuniform mediump float u_depth;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nconst float scale = 1.0 / 31.0;\nconst mediump float tileCoordRatio = 8.0;\n#if defined (SDF)\nconst mediump float sdfPatternHalfWidth = 15.5;\n#endif\n#if defined (PATTERN) || defined(SDF)\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\n#endif\nvarying lowp vec4 v_color;\nvarying mediump float v_lineHalfWidth;\nvarying mediump float v_blur;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_blur = blur + u_antialiasing;\nv_normal = a_dir_normal.zw * scale;\n#if defined (PATTERN) || defined(SDF)\nv_tlbr = tlbr / u_mosaicSize.xyxy;\nv_patternSize = vec2(tlbr.z - tlbr.x, tlbr.y - tlbr.w);\n#if defined (PATTERN)\nv_widthRatio = width / v_patternSize.y;\n#else\nv_widthRatio = width / sdfPatternHalfWidth / 2.0;\n#endif\n#endif\nv_lineHalfWidth = (width + u_antialiasing) * 0.5;\nmediump vec2 dir = a_dir_normal.xy * scale;\nmediump vec2 offset_ = a_extrude_offset.zw * scale * offset;\nmediump vec2 dist = v_lineHalfWidth * scale * a_extrude_offset.xy;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos + offset_ * tileCoordRatio / u_zoomFactor, 1.0) + u_displayViewMat3 * vec3(dist, 0.0) + u_displayMat3 * vec3(u_lineTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n#if defined (PATTERN) || defined(SDF)\nv_accumulatedDistance = a_accumulatedDistance.x * u_zoomFactor / tileCoordRatio + dot(dir, dist + offset_);\n#endif\n}"},outline:{"outline.frag":"varying lowp vec4 v_color;\nvarying mediump vec2 v_normal;\nvoid main()\n{\nlowp float dist = abs(v_normal.y);\nlowp float alpha = smoothstep(1.0, 0.0, dist);\ngl_FragColor = alpha * v_color;\n}","outline.vert":"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_xnormal;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_fillTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_outline_width;\nvarying lowp vec2 v_normal;\nconst float scale = 1.0 / 15.0;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_normal = a_xnormal;\nmediump vec2 dist = u_outline_width * scale * a_offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(dist + u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},text:{"text.frag":"uniform lowp sampler2D u_texture;\nvarying lowp vec2 v_tex;\nvarying lowp vec4 v_color;\nvarying mediump float v_edgeWidth;\nvarying mediump float v_edgeDistance;\nvoid main()\n{\nlowp float dist = texture2D(u_texture, v_tex).a;\nmediump float alpha = smoothstep(v_edgeDistance - v_edgeWidth, v_edgeDistance + v_edgeWidth, dist);\ngl_FragColor = alpha * v_color;\n}","text.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_textTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying lowp vec2 v_tex;\nconst float offsetPrecision = 1.0 / 8.0;\nconst mediump float edgePos = 0.75;\nuniform mediump float u_antialiasingWidth;\nvarying mediump float v_edgeDistance;\nvarying mediump float v_edgeWidth;\nuniform lowp float u_halo;\nconst float sdfFontScale = 1.0 / 24.0;\nconst float sdfPixel = 3.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nif (u_halo > 0.5)\n{\nv_color = halo_color * opacity;\nhalo_width *= sdfPixel;\nhalo_blur *= sdfPixel;\n}\nelse\n{\nv_color = color * opacity;\nhalo_width = 0.0;\nhalo_blur = 0.0;\n}\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_color *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float a_visMinAngle = a_texAngleRange.z;\nmediump float a_visMaxAngle = a_texAngleRange.w;\nmediump float delta_z = 0.0;\nmediump float angle = mod(a_angle + u_mapRotation, 256.0);\nif (a_visMinAngle < a_visMaxAngle)\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) + (1.0 - step(a_visMinAngle, angle)));\n}\nelse\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) * (1.0 - step(a_visMinAngle, angle)));\n}\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_color[3], 0.0);\nv_tex = a_tex.xy / u_mosaicSize;\nv_edgeDistance = edgePos - halo_width / size;\nv_edgeWidth = (u_antialiasingWidth + halo_blur) / size;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + sdfFontScale * u_displayViewMat3 * vec3(offsetPrecision * size * a_vertexOffset, 0.0) + u_displayMat3 * vec3(u_textTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\n}"},util:{"encoding.glsl":"const vec4 rgba2float_factors = vec4(\n255.0 / (256.0),\n255.0 / (256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0 * 256.0)\n);\nfloat rgba2float(vec4 rgba) {\nreturn dot(rgba, rgba2float_factors);\n}","util.glsl":"float nextPOT(in float x) {\nreturn pow(2.0, ceil(log2(abs(x))));\n}"}};export{e as default};
5
+ const e={background:{"background.frag":"#ifdef PATTERN\nuniform lowp float u_opacity;\nuniform lowp sampler2D u_texture;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_tileTextureCoord;\n#else\nuniform lowp vec4 u_color;\n#endif\nvoid main() {\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = mod(v_tileTextureCoord, 1.0);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = u_opacity * color;\n#else\ngl_FragColor = u_color;\n#endif\n}","background.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform mediump float u_coord_range;\nuniform mediump float u_depth;\n#ifdef PATTERN\nuniform mediump mat3 u_pattern_matrix;\nvarying mediump vec2 v_tileTextureCoord;\nuniform mediump vec4 u_tlbr;\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\n#endif\nvoid main() {\ngl_Position = vec4((u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0)).xy, u_depth, 1.0);\n#ifdef PATTERN\nv_tileTextureCoord = (u_pattern_matrix * vec3(a_pos, 1.0)).xy;\nv_tlbr = u_tlbr / u_mosaicSize.xyxy;\n#endif\n}"},circle:{"circle.frag":"precision lowp float;\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nvoid main()\n{\nmediump float dist = length(v_offset);\nmediump float alpha = smoothstep(0.0, -v_blur, dist - 1.0);\nlowp float color_mix_ratio = v_stroke_width < 0.01 ? 0.0 : smoothstep(-v_blur, 0.0, dist - v_radius / (v_radius + v_stroke_width));\ngl_FragColor = alpha * mix(v_color, v_stroke_color, color_mix_ratio);\n}","circle.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_circleTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_antialiasingWidth;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_stroke_color = stroke_color * stroke_opacity;\nv_stroke_width = stroke_width;\nv_radius = radius;\nv_blur = max(blur, u_antialiasingWidth / (radius + stroke_width));\nmediump vec2 offset = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\nv_offset = offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos * 0.5, 1.0) + u_displayMat3 * vec3((v_radius + v_stroke_width) * offset + u_circleTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},icon:{"icon.frag":"precision mediump float;\nuniform lowp sampler2D u_texture;\n#ifdef SDF\nuniform lowp vec4 u_color;\nuniform lowp vec4 u_outlineColor;\n#endif\nuniform highp int u_isStencilPass;\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump float v_halo_width;\n#endif\nconst float alphaCutoff = 1.0 / 255.5;\n#include <util/encoding.glsl>\nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef SDF\nlowp vec4 fillPixelColor = v_color;\nfloat d = rgba2float(texture2D(u_texture, v_tex)) - 0.5;\nconst float softEdgeRatio = 0.248062016;\nfloat size = max(v_size.x, v_size.y);\nfloat dist = d * softEdgeRatio * size;\nfillPixelColor *= clamp(0.5 - dist, 0.0, 1.0);\nif (v_halo_width > 0.25) {\nlowp vec4 outlinePixelColor = u_outlineColor;\nconst float outlineLimitRatio = (16.0 / 86.0);\nfloat clampedOutlineSize = softEdgeRatio * min(v_halo_width, outlineLimitRatio * max(v_size.x, v_size.y));\noutlinePixelColor *= clamp(0.5 - (abs(dist) - clampedOutlineSize), 0.0, 1.0);\ngl_FragColor = v_opacity * mixColors(fillPixelColor, outlinePixelColor);\n}\nelse {\ngl_FragColor = v_opacity * fillPixelColor;\n}\n#else\nlowp vec4 texColor = texture2D(u_texture, v_tex);\nif (u_isStencilPass == 1 && texColor.a < alphaCutoff) {\ndiscard;\n}\ngl_FragColor = v_opacity * texColor;\n#endif\n}","icon.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump float v_halo_width;\n#endif\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_iconTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nconst float C_OFFSET_PRECISION = 1.0 / 8.0;\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\nconst float C_DEG_TO_RAD = 3.14159265359 / 180.0;\nconst float tileCoordRatio = 1.0 / 8.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nv_color = color;\nv_opacity = opacity;\n#ifdef SDF\nv_halo_width = halo_width;\n#endif\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_opacity *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float delta_z = 0.0;\nmediump float rotated = mod(a_angle + u_mapRotation, 256.0);\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * step(64.0, rotated) * (1.0 - step(192.0, rotated));\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_opacity, 0.0);\nvec2 offset = C_OFFSET_PRECISION * a_vertexOffset;\nv_size = abs(offset);\n#ifdef SDF\noffset = (120.0 / 86.0) * offset;\n#endif\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayViewMat3 * vec3(size * offset, 0.0) + u_displayMat3 * vec3(u_iconTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\nv_tex = a_tex.xy / u_mosaicSize;\n}"},fill:{"fill.frag":"precision lowp float;\n#ifdef PATTERN\nuniform lowp sampler2D u_texture;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = fract(v_tileTextureCoord);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = v_color[3] * color;\n#else\ngl_FragColor = v_color;\n#endif\n}","fill.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump float u_depth;\nuniform mediump vec2 u_fillTranslation;\n#ifdef PATTERN\n#include <util/util.glsl>\nuniform mediump vec2 u_mosaicSize;\nuniform mediump float u_patternFactor;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\n#ifdef PATTERN\nfloat patternWidth = nextPOT(tlbr.z - tlbr.x);\nfloat patternHeight = nextPOT(tlbr.w - tlbr.y);\nfloat scaleX = 1.0 / (patternWidth * u_patternFactor);\nfloat scaleY = 1.0 / (patternHeight * u_patternFactor);\nmat3 patterMat = mat3(scaleX, 0.0, 0.0,\n0.0, -scaleY, 0.0,\n0.0, 0.0, 1.0);\nv_tileTextureCoord = (patterMat * vec3(a_pos, 1.0)).xy;\nv_tlbr = tlbr / u_mosaicSize.xyxy;\n#endif\nvec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},line:{"line.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec4 a_extrude_offset;\nattribute vec4 a_dir_normal;\nattribute vec2 a_accumulatedDistance;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump float u_zoomFactor;\nuniform mediump vec2 u_lineTranslation;\nuniform mediump float u_antialiasing;\nuniform mediump float u_depth;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nconst float scale = 1.0 / 31.0;\nconst mediump float tileCoordRatio = 8.0;\n#if defined (SDF)\nconst mediump float sdfPatternHalfWidth = 15.5;\n#endif\n#if defined (PATTERN) || defined(SDF)\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\n#endif\nvarying lowp vec4 v_color;\nvarying mediump float v_lineHalfWidth;\nvarying mediump float v_blur;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_blur = blur + u_antialiasing;\nv_normal = a_dir_normal.zw * scale;\n#if defined (PATTERN) || defined(SDF)\nv_tlbr = tlbr / u_mosaicSize.xyxy;\nv_patternSize = vec2(tlbr.z - tlbr.x, tlbr.y - tlbr.w);\n#if defined (PATTERN)\nv_widthRatio = width / v_patternSize.y;\n#else\nv_widthRatio = width / sdfPatternHalfWidth / 2.0;\n#endif\n#endif\nv_lineHalfWidth = (width + u_antialiasing) * 0.5;\nmediump vec2 dir = a_dir_normal.xy * scale;\nmediump vec2 offset_ = a_extrude_offset.zw * scale * offset;\nmediump vec2 dist = v_lineHalfWidth * scale * a_extrude_offset.xy;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos + offset_ * tileCoordRatio / u_zoomFactor, 1.0) + u_displayViewMat3 * vec3(dist, 0.0) + u_displayMat3 * vec3(u_lineTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n#if defined (PATTERN) || defined(SDF)\nv_accumulatedDistance = a_accumulatedDistance.x * u_zoomFactor / tileCoordRatio + dot(dir, dist + offset_);\n#endif\n}","line.frag":"precision lowp float;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nvarying mediump float v_lineHalfWidth;\nvarying lowp vec4 v_color;\nvarying mediump float v_blur;\n#if defined (PATTERN) || defined(SDF)\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\nuniform sampler2D u_texture;\nuniform mediump float u_antialiasing;\n#endif\n#ifdef SDF\n#include <util/encoding.glsl>\n#endif\nvoid main()\n{\nmediump float fragDist = length(v_normal) * v_lineHalfWidth;\nlowp float alpha = clamp((v_lineHalfWidth - fragDist) / v_blur, 0.0, 1.0);\n#ifdef PATTERN\nmediump float relativeTexX = fract(v_accumulatedDistance / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + v_normal.y * v_lineHalfWidth / (v_patternSize.y * v_widthRatio);\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nlowp vec4 color = texture2D(u_texture, texCoord);\ngl_FragColor = alpha * v_color[3] * color;\n#elif defined(SDF)\nmediump float relativeTexX = fract((v_accumulatedDistance * 0.5) / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + 0.25 * v_normal.y;\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\nfloat dist = d * (v_lineHalfWidth + u_antialiasing / 2.0);\ngl_FragColor = alpha * clamp(0.5 - dist, 0.0, 1.0) * v_color;\n#else\ngl_FragColor = alpha * v_color;\n#endif\n}"},outline:{"outline.vert":"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_xnormal;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_fillTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_outline_width;\nvarying lowp vec2 v_normal;\nconst float scale = 1.0 / 15.0;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_normal = a_xnormal;\nmediump vec2 dist = u_outline_width * scale * a_offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(dist + u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}","outline.frag":"varying lowp vec4 v_color;\nvarying mediump vec2 v_normal;\nvoid main()\n{\nlowp float dist = abs(v_normal.y);\nlowp float alpha = smoothstep(1.0, 0.0, dist);\ngl_FragColor = alpha * v_color;\n}"},text:{"text.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_textTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying lowp vec2 v_tex;\nconst float offsetPrecision = 1.0 / 8.0;\nconst mediump float edgePos = 0.75;\nuniform mediump float u_antialiasingWidth;\nvarying mediump float v_edgeDistance;\nvarying mediump float v_edgeWidth;\nuniform lowp float u_halo;\nconst float sdfFontScale = 1.0 / 24.0;\nconst float sdfPixel = 3.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nif (u_halo > 0.5)\n{\nv_color = halo_color * opacity;\nhalo_width *= sdfPixel;\nhalo_blur *= sdfPixel;\n}\nelse\n{\nv_color = color * opacity;\nhalo_width = 0.0;\nhalo_blur = 0.0;\n}\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_color *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float a_visMinAngle = a_texAngleRange.z;\nmediump float a_visMaxAngle = a_texAngleRange.w;\nmediump float delta_z = 0.0;\nmediump float angle = mod(a_angle + u_mapRotation, 256.0);\nif (a_visMinAngle < a_visMaxAngle)\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) + (1.0 - step(a_visMinAngle, angle)));\n}\nelse\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) * (1.0 - step(a_visMinAngle, angle)));\n}\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_color[3], 0.0);\nv_tex = a_tex.xy / u_mosaicSize;\nv_edgeDistance = edgePos - halo_width / size;\nv_edgeWidth = (u_antialiasingWidth + halo_blur) / size;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + sdfFontScale * u_displayViewMat3 * vec3(offsetPrecision * size * a_vertexOffset, 0.0) + u_displayMat3 * vec3(u_textTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\n}","text.frag":"uniform lowp sampler2D u_texture;\nvarying lowp vec2 v_tex;\nvarying lowp vec4 v_color;\nvarying mediump float v_edgeWidth;\nvarying mediump float v_edgeDistance;\nvoid main()\n{\nlowp float dist = texture2D(u_texture, v_tex).a;\nmediump float alpha = smoothstep(v_edgeDistance - v_edgeWidth, v_edgeDistance + v_edgeWidth, dist);\ngl_FragColor = alpha * v_color;\n}"},util:{"encoding.glsl":"const vec4 rgba2float_factors = vec4(\n255.0 / (256.0),\n255.0 / (256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0 * 256.0)\n);\nfloat rgba2float(vec4 rgba) {\nreturn dot(rgba, rgba2float_factors);\n}","util.glsl":"float nextPOT(in float x) {\nreturn pow(2.0, ceil(log2(abs(x))));\n}"}};export{e as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as i}from"tslib";import t from"../../../Graphic.js";import{isSome as e}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{watch as h,sync as a}from"../../../core/reactiveUtils.js";import{property as o,subclass as n}from"../../../core/accessorSupport/decorators.js";import{convertGeometryToMask as l}from"../../../layers/raster/functions/clipUtils.js";import{GraphicsCollection as g}from"../../../support/GraphicsCollection.js";import p from"../engine/flow/FlowView2D.js";import{LayerView2DMixin as d}from"./LayerView2D.js";import c from"./graphics/GraphicsView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import u from"./imagery/ImageryView2D.js";import w from"./imagery/VectorFieldView2D.js";import{ImageryLayerViewMixin as y}from"../../layers/ImageryLayerViewMixin.js";import v from"../../layers/LayerView.js";import{RefreshableLayerView as f}from"../../layers/RefreshableLayerView.js";import{defaultColor as x}from"../../support/HighlightDefaults.js";import{getHighlightName as _}from"../../support/highlightOptionsUtils.js";let b=class extends(y(f(d(v)))){constructor(){super(...arguments),this._exportImageVersion=-1,this._highlightGraphics=new g,this._highlightView=void 0,this._pixelHighlights=[],this.layer=null,this.subview=null}get pixelData(){const{subview:i}=this;return this.updating||!i?null:"getPixelData"in i?i.getPixelData():null}update(i){this.subview?.update(i)}attach(){this.layer.increaseRasterJobHandlerUsage(),this._setSubView(),this.view&&(this._highlightView=new c({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme)}),this.container.addChild(this._highlightView.container)),this.addAttachHandles([h(()=>this.layer.exportImageServiceParameters.version,i=>{i&&this._exportImageVersion!==i&&(this._exportImageVersion=i,this.requestUpdate())},a),h(()=>this.timeExtent,i=>{const{subview:t}=this;t&&(t.timeExtent=i,"redraw"in t?this.requestUpdate():t.redrawOrRefetch())},a),this.layer.on("redraw",()=>{const{subview:i}=this;i&&("redraw"in i?i.redraw():i.redrawOrRefetch())}),h(()=>this.layer.renderer,()=>this._setSubView()),h(()=>this.view.highlights.items.map(({name:i,color:t})=>({name:i,color:t})),()=>this._updateHighlightOptions(this.subview))])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this.container.removeAllChildren(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null,this._highlightView?.destroy(),this._exportImageVersion=-1}viewChange(){}moveEnd(){this.requestUpdate()}highlight(i,h){if(i&&"pixelRanges"in i&&(!Array.isArray(i.pixelRanges)||i.pixelRanges.length))return this._highlightPixels(i,h);if(!((Array.isArray(i)?i[0]:s.isCollection(i)?i.at(0):i)instanceof t))return r();let a=[];Array.isArray(i)||s.isCollection(i)?a=i.map(i=>i.clone()):i instanceof t&&(a=[i.clone()]);const o=a?.filter(e);if(!o?.length)return r();const n=_(h);return this._addHighlightGraphics(a,n),r(()=>!this.destroyed&&this._removeHighlightGraphics(a,n))}_highlightPixels(i,t){const e={target:i,options:t};return this._pixelHighlights.push(e),this._updateHighlightOptions(this.subview),r(()=>{const i=this._pixelHighlights.indexOf(e);i>-1&&(this._pixelHighlights.splice(i,1),this._updateHighlightOptions(this.subview))})}_addHighlightGraphics(i,t){this._highlightGraphics.addMany(i),this._addHighlights(i.map(i=>i.uid),t)}_removeHighlightGraphics(i,t){this._highlightGraphics.removeMany(i),this._removeHighlights(i.map(i=>i.uid),t)}async doRefresh(){this.requestUpdate()}isUpdating(){const i=!this.subview||this.subview.updating||!!this._highlightView?.updating;return has("esri-2d-log-updating")&&console.log(`Updating ImageryLayerView2D (${this.layer.id}): ${i}\n-> subview ${!this.subview||this.subview.updating}\n-> higlightView ${this._highlightView?.updating}\n`),i}_processHighlight(){const i=this._getHighlights();this._highlightView?.setHighlight(i)}_setSubView(){if(!this.view)return;const i=this.layer.renderer?.type;let t="imagery";if("vector-field"===i?t="imageryVF":"flow"===i&&(t="flow"),this.subview){const{type:i}=this.subview;if(i===t)return this._attachSubview(this.subview),void("flow"===i?this.subview.redrawOrRefetch():"imagery"===i&&"lerc"===this.layer.format?this.subview.redraw():this.requestUpdate());this._detachSubview(this.subview),this.subview?.destroy()}"imagery"===t?(this.subview=new u({layer:this.layer,view:this.view,timeExtent:this.timeExtent}),this._updateHighlightOptions(this.subview)):this.subview="imageryVF"===t?new w({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):new p({layer:this.layer,layerView:this}),this._attachSubview(this.subview),this.requestUpdate()}_attachSubview(i){i&&!i.attached&&(i.attach(),i.attached=!0,this.container.addChildAt(i.container,0))}_detachSubview(i){i?.attached&&(this.container.removeChild(i.container),i.detach(),i.attached=!1)}_updateHighlightOptions(i){const t=this.view.highlights;this._pixelHighlights.sort((i,e)=>t.findIndex(({name:i})=>i===_(e.options))-t.findIndex(({name:t})=>t===_(i.options)));const s=this._pixelHighlights.map(({target:i,options:e})=>V(i,t,e)).filter(e);"imagery"===i?.type&&(i.pixelHighlights=s,i.attached&&("lerc"===this.layer.format?i.redraw():this.requestUpdate()))}};function V(i,t,e){const s=_(e),r=(t.find(i=>i.name===s)?.color??x).toArray(),{pixelRanges:h}=i;if(Array.isArray(h))return{ranges:h,bandId:i.bandId??0,color:r};const a="extent"===h.type?h:h.extent;if(!a)return;const o=[a.xmin,a.xmax],n=[a.ymin,a.ymax],{xBandId:g,yBandId:p}=i,d=1024,c=1024;return{xBandId:g,yBandId:p,xBandRange:o,yBandRange:n,color:r,width:d,height:c,xyMask:"polygon"===h.type?l({srcExtent:a,geometry:h,size:[d,c]}):void 0}}i([o()],b.prototype,"pixelData",null),i([o()],b.prototype,"subview",void 0),b=i([n("esri.views.2d.layers.ImageryLayerView2D")],b);const H=b;export{H as default};
5
+ import{__decorate as i}from"tslib";import t from"../../../Graphic.js";import{isSome as e}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{QueueProcessor as h}from"../../../core/QueueProcessor.js";import{watch as a,sync as o}from"../../../core/reactiveUtils.js";import{property as n,subclass as l}from"../../../core/accessorSupport/decorators.js";import{convertGeometryToMask as g}from"../../../layers/raster/functions/clipUtils.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import d from"../engine/flow/FlowView2D.js";import{LayerView2DMixin as c}from"./LayerView2D.js";import u from"./graphics/GraphicsView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import w from"./imagery/ImageryView2D.js";import y from"./imagery/VectorFieldView2D.js";import{ImageryLayerViewMixin as f}from"../../layers/ImageryLayerViewMixin.js";import v from"../../layers/LayerView.js";import{RefreshableLayerView as b}from"../../layers/RefreshableLayerView.js";import{isPixelHighlightTarget as _,isEmptyPixelRanges as x}from"../../layers/support/highlightUtils.js";import{defaultColor as V}from"../../support/HighlightDefaults.js";import{getHighlightName as H}from"../../support/highlightOptionsUtils.js";let I=class extends(f(b(c(v)))){constructor(){super(...arguments),this._exportImageVersion=-1,this._highlightGraphics=new p,this._highlightView=void 0,this._pixelHighlights=[],this.layer=null,this.subview=null}get pixelData(){const{subview:i}=this;return this.updating||!i?null:"getPixelData"in i?i.getPixelData():null}update(i){this.subview?.update(i)}attach(){this.layer.increaseRasterJobHandlerUsage(),this._setSubView(),this.view&&(this._highlightView=new u({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme)}),this.container.addChild(this._highlightView.container)),this.addAttachHandles([a(()=>this.layer.exportImageServiceParameters.version,i=>{i&&this._exportImageVersion!==i&&(this._exportImageVersion=i,this.requestUpdate())},o),a(()=>this.timeExtent,i=>{const{subview:t}=this;t&&(t.timeExtent=i,"redraw"in t?this.requestUpdate():t.redrawOrRefetch())},o),this.layer.on("redraw",()=>{const{subview:i}=this;i&&("redraw"in i?i.redraw():i.redrawOrRefetch())}),a(()=>this.layer.renderer,()=>this._setSubView()),a(()=>this.view.highlights.items.map(({name:i,color:t})=>({name:i,color:t})),()=>this._updateHighlightOptions(this.subview))])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this.container.removeAllChildren(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null,this._highlightView?.destroy(),this._exportImageVersion=-1}viewChange(){}moveEnd(){this.requestUpdate()}highlight(i,h){if(_(i))return x(i)?r():this._highlightPixels(i,h);if("number"==typeof i||"string"==typeof i)return this._highlightByImageIds([i],h);const a=Array.isArray(i)||s.isCollection(i)?i.at(0):i;if("number"==typeof a||"string"==typeof a)return this._highlightByImageIds(i,h);if(!(a instanceof t))return r();let o=[];Array.isArray(i)||s.isCollection(i)?o=i.map(i=>i.clone()):i instanceof t&&(o=[i.clone()]);const n=o?.filter(e);if(!n?.length)return r();const l=H(h);return this._addHighlightGraphics(o,l),r(()=>!this.destroyed&&this._removeHighlightGraphics(o,l))}_highlightByImageIds(i,t){const e=H(t),s=new AbortController,{signal:a}=s,o=this.layer.sourceJSON.maxRecordCount??1e3,n=Math.ceil(i.length/o),l=[],g=[],p=new h({concurrency:4,process:i=>this.layer.queryFeatures({objectIds:i.ids,returnGeometry:!0,outSpatialReference:this.view.spatialReference},{signal:a}).then(i=>g.push(...i.features)).catch(()=>{})});for(let r=0;r<n;r++)l.push(p.push({ids:i.slice(r*o,(r+1)*o)}));return Promise.allSettled(l).then(()=>{g.length&&!a.aborted&&(this._addHighlightGraphics(g,e),a.addEventListener("abort",()=>{this._removeHighlightGraphics(g,e)}))}),r(()=>s.abort())}_highlightPixels(i,t){const e={target:i,options:t};return this._pixelHighlights.push(e),this._updateHighlightOptions(this.subview),r(()=>{const i=this._pixelHighlights.indexOf(e);i>-1&&(this._pixelHighlights.splice(i,1),this._updateHighlightOptions(this.subview))})}_addHighlightGraphics(i,t){this._highlightGraphics.addMany(i),this._addHighlights(i.map(i=>i.uid),t)}_removeHighlightGraphics(i,t){this._highlightGraphics.removeMany(i),this._removeHighlights(i.map(i=>i.uid),t)}async doRefresh(){this.requestUpdate()}isUpdating(){const i=!this.subview||this.subview.updating||!!this._highlightView?.updating;return has("esri-2d-log-updating")&&console.log(`Updating ImageryLayerView2D (${this.layer.id}): ${i}\n-> subview ${!this.subview||this.subview.updating}\n-> higlightView ${this._highlightView?.updating}\n`),i}_processHighlight(){const i=this._getHighlights();this._highlightView?.setHighlight(i)}_setSubView(){if(!this.view)return;const i=this.layer.renderer?.type;let t="imagery";if("vector-field"===i?t="imageryVF":"flow"===i&&(t="flow"),this.subview){const{type:i}=this.subview;if(i===t)return this._attachSubview(this.subview),void("flow"===i?this.subview.redrawOrRefetch():"imagery"===i&&"lerc"===this.layer.format?this.subview.redraw():this.requestUpdate());this._detachSubview(this.subview),this.subview?.destroy()}"imagery"===t?(this.subview=new w({layer:this.layer,view:this.view,timeExtent:this.timeExtent}),this._updateHighlightOptions(this.subview)):this.subview="imageryVF"===t?new y({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):new d({layer:this.layer,layerView:this}),this._attachSubview(this.subview),this.requestUpdate()}_attachSubview(i){i&&!i.attached&&(i.attach(),i.attached=!0,this.container.addChildAt(i.container,0))}_detachSubview(i){i?.attached&&(this.container.removeChild(i.container),i.detach(),i.attached=!1)}_updateHighlightOptions(i){const t=this.view.highlights;this._pixelHighlights.sort((i,e)=>t.findIndex(({name:i})=>i===H(e.options))-t.findIndex(({name:t})=>t===H(i.options)));const s=this._pixelHighlights.map(({target:i,options:e})=>j(i,t,e)).filter(e);"imagery"===i?.type&&(i.pixelHighlights=s,i.attached&&("lerc"===this.layer.format?i.redraw():this.requestUpdate()))}};function j(i,t,e){const s=H(e),r=(t.find(i=>i.name===s)?.color??V).toArray(),{pixelRanges:h}=i;if(Array.isArray(h))return{ranges:h,bandId:i.bandId??0,color:r};const a="extent"===h.type?h:h.extent;if(!a)return;const o=[a.xmin,a.xmax],n=[a.ymin,a.ymax],{xBandId:l,yBandId:p}=i,d=1024,c=1024;return{xBandId:l,yBandId:p,xBandRange:o,yBandRange:n,color:r,width:d,height:c,xyMask:"polygon"===h.type?g({srcExtent:a,geometry:h,size:[d,c]}):void 0}}i([n()],I.prototype,"pixelData",null),i([n()],I.prototype,"subview",void 0),I=i([l("esri.views.2d.layers.ImageryLayerView2D")],I);const U=I;export{U as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s}from"../../../core/promiseUtils.js";import{watch as r,sync as o,initial as a}from"../../../core/reactiveUtils.js";import{property as n,subclass as h}from"../../../core/accessorSupport/decorators.js";import{hasExcludedVariableOrDimension as u}from"../../../layers/raster/datasets/multidimensionalUtils.js";import l from"../engine/flow/FlowView2D.js";import{LayerView2DMixin as d}from"./LayerView2D.js";import p from"./imagery/ImageryTileView2D.js";import g from"./imagery/VectorFieldTileView2D.js";import{canUseMajorityInterpolationOnDataSource as c}from"./support/util.js";import{ImageryTileLayerViewMixin as v}from"../../layers/ImageryTileLayerViewMixin.js";import w from"../../layers/LayerView.js";import{RefreshableLayerView as b}from"../../layers/RefreshableLayerView.js";let m=class extends(v(b(d(w)))){constructor(){super(...arguments),this._useWebGLForProcessing=!0,this._useProgressiveUpdate=!0,this._pixelHighlights=[],this.subview=null}get useWebGLForProcessing(){return this._useWebGLForProcessing}set useWebGLForProcessing(e){this._useWebGLForProcessing=e,this.subview&&"useWebGLForProcessing"in this.subview&&(this.subview.useWebGLForProcessing=e)}get useProgressiveUpdate(){return this._useWebGLForProcessing}set useProgressiveUpdate(e){this._useProgressiveUpdate=e,this.subview&&"useProgressiveUpdate"in this.subview&&(this.subview.useProgressiveUpdate=e)}get displayParameters(){const{layer:e}=this,i=this._get("displayParameters");return e.renderer&&e.visible?{bandIds:e.bandIds,renderer:e.renderer,interpolation:e.interpolation,multidimensionalDefinition:e.multidimensionalDefinition,rasterFunction:"imagery-tile"===e.type?e.rasterFunction:null}:i}update(e){this.subview?.update(e),this.notifyChange("updating")}isUpdating(){return!this.subview||this.subview.updating}attach(){this.layer.increaseRasterJobHandlerUsage(),this._updateSubview(),this.addAttachHandles([r(()=>this.displayParameters,(e,i)=>{const r=e.interpolation!==i?.interpolation&&("majority"===e.interpolation||"majority"===i?.interpolation)&&c(this.layer),o=!!this.layer.serviceRasterInfo?.storageInfo?.isBsqTile&&e.bandIds?.join()!==i?.bandIds?.join(),a=e.renderer!==i?.renderer&&this._getSubviewType(i?.renderer)!==this._getSubviewType(e.renderer);a&&this._updateSubview();const n=e.multidimensionalDefinition!==i?.multidimensionalDefinition,h=e.rasterFunction!==i?.rasterFunction,u=h&&!this._useWebGLForProcessing,l=n||r||a||u||o;this.subview.redrawOrRefetch({refetch:l,reprocess:h}).catch(e=>{s(e)||t.getLogger(this).error(e)}),this.notifyChange("updating")}),r(()=>this.layer.multidimensionalSubset??null,(e,i)=>{const{multidimensionalDefinition:r}=this.layer;null!=r&&u(r,e)!==u(r,i)&&(this.subview.redrawOrRefetch({refetch:!0}).catch(e=>{s(e)||t.getLogger(this).error(e)}),this.notifyChange("updating"))},o),r(()=>this.timeExtent,()=>{this.subview.timeExtent=this.timeExtent,this.subview.redrawOrRefetch({refetch:!0}).catch(e=>{s(e)||t.getLogger(this).error(e)})},a),r(()=>this.view.highlights.items.map(({name:e,color:i})=>({name:e,color:i})),()=>this._updateHighlightOptions(this.subview),a)])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}viewChange(){this.requestUpdate()}moveEnd(){this.subview.moveEnd()}highlight(e,t){if(!e.pixelRanges||Array.isArray(e.pixelRanges)&&0===e.pixelRanges.length)return i();const s={target:{...e},options:{...t}};return this._pixelHighlights.push(s),this._updateHighlightOptions(this.subview),i(()=>{const e=this._pixelHighlights.indexOf(s);-1!==e&&(this._pixelHighlights.splice(e,1),this._updateHighlightOptions(this.subview))})}doRefresh(){return this.subview?this.subview.doRefresh():Promise.resolve()}_updateSubview(){const{renderer:e}=this.layer;if(!e)return;const i=this._getSubviewType(e);if(this.subview){if(this.subview.type===i)return void this._attachSubview(this.subview);this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}const{layer:t}=this;let s;if(s="rasterVF"===i?new g({layer:t,layerView:this,scheduler:this.scheduler}):"flow"===i?new l({layer:t,layerView:this,scheduler:this.scheduler}):new p({layer:t,layerView:this,scheduler:this.scheduler}),"useWebGLForProcessing"in s&&(s.useWebGLForProcessing=this._useWebGLForProcessing),"useProgressiveUpdate"in s&&(s.useProgressiveUpdate=this._useProgressiveUpdate),"previousLOD"in s){const{subview:e}=this;s.previousLOD=e&&"previousLOD"in e?e.previousLOD:null}this._attachSubview(s),this._updateHighlightOptions(s),this.subview=s,this.requestUpdate()}_attachSubview(e){e&&!e.attached&&(e.attach(),e.attached=!0,this.container.addChildAt(e.container,0))}_detachSubview(e){e?.attached&&(this.container.removeChild(e.container),e.detach(),e.attached=!1)}_getSubviewType(e){const i=e?.type;return"vector-field"===i?"rasterVF":"flow"===i?"flow":"raster"}_updateHighlightOptions(e){"raster"===e?.type&&e.updateHighlightOptions(this._pixelHighlights)}};e([n()],m.prototype,"subview",void 0),e([n()],m.prototype,"useWebGLForProcessing",null),e([n()],m.prototype,"useProgressiveUpdate",null),e([n({readOnly:!0})],m.prototype,"displayParameters",null),m=e([h("esri.views.2d.layers.ImageryTileLayerView2D")],m);const y=m;export{y as default};
5
+ import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s}from"../../../core/promiseUtils.js";import{watch as r,sync as o,initial as a}from"../../../core/reactiveUtils.js";import{property as h,subclass as n}from"../../../core/accessorSupport/decorators.js";import{hasExcludedVariableOrDimension as u}from"../../../layers/raster/datasets/multidimensionalUtils.js";import l from"../engine/flow/FlowView2D.js";import{LayerView2DMixin as d}from"./LayerView2D.js";import p from"./imagery/ImageryTileView2D.js";import g from"./imagery/VectorFieldTileView2D.js";import{canUseMajorityInterpolationOnDataSource as c}from"./support/util.js";import{ImageryTileLayerViewMixin as v}from"../../layers/ImageryTileLayerViewMixin.js";import m from"../../layers/LayerView.js";import{RefreshableLayerView as w}from"../../layers/RefreshableLayerView.js";import{isEmptyPixelRanges as b}from"../../layers/support/highlightUtils.js";let y=class extends(v(w(d(m)))){constructor(){super(...arguments),this._useWebGLForProcessing=!0,this._useProgressiveUpdate=!0,this._pixelHighlights=[],this.subview=null}get useWebGLForProcessing(){return this._useWebGLForProcessing}set useWebGLForProcessing(e){this._useWebGLForProcessing=e,this.subview&&"useWebGLForProcessing"in this.subview&&(this.subview.useWebGLForProcessing=e)}get useProgressiveUpdate(){return this._useWebGLForProcessing}set useProgressiveUpdate(e){this._useProgressiveUpdate=e,this.subview&&"useProgressiveUpdate"in this.subview&&(this.subview.useProgressiveUpdate=e)}get displayParameters(){const{layer:e}=this,i=this._get("displayParameters");return e.renderer&&e.visible?{bandIds:e.bandIds,renderer:e.renderer,interpolation:e.interpolation,multidimensionalDefinition:e.multidimensionalDefinition,rasterFunction:"imagery-tile"===e.type?e.rasterFunction:null}:i}update(e){this.subview?.update(e),this.notifyChange("updating")}isUpdating(){return!this.subview||this.subview.updating}attach(){this.layer.increaseRasterJobHandlerUsage(),this._updateSubview(),this.addAttachHandles([r(()=>this.displayParameters,(e,i)=>{const r=e.interpolation!==i?.interpolation&&("majority"===e.interpolation||"majority"===i?.interpolation)&&c(this.layer),o=!!this.layer.serviceRasterInfo?.storageInfo?.isBsqTile&&e.bandIds?.join()!==i?.bandIds?.join(),a=e.renderer!==i?.renderer&&this._getSubviewType(i?.renderer)!==this._getSubviewType(e.renderer);a&&this._updateSubview();const h=e.multidimensionalDefinition!==i?.multidimensionalDefinition,n=e.rasterFunction!==i?.rasterFunction,u=n&&!this._useWebGLForProcessing,l=h||r||a||u||o;this.subview.redrawOrRefetch({refetch:l,reprocess:n}).catch(e=>{s(e)||t.getLogger(this).error(e)}),this.notifyChange("updating")}),r(()=>this.layer.multidimensionalSubset??null,(e,i)=>{const{multidimensionalDefinition:r}=this.layer;null!=r&&u(r,e)!==u(r,i)&&(this.subview.redrawOrRefetch({refetch:!0}).catch(e=>{s(e)||t.getLogger(this).error(e)}),this.notifyChange("updating"))},o),r(()=>this.timeExtent,()=>{this.subview.timeExtent=this.timeExtent,this.subview.redrawOrRefetch({refetch:!0}).catch(e=>{s(e)||t.getLogger(this).error(e)})},a),r(()=>this.view.highlights.items.map(({name:e,color:i})=>({name:e,color:i})),()=>this._updateHighlightOptions(this.subview),a)])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}viewChange(){this.requestUpdate()}moveEnd(){this.subview.moveEnd()}highlight(e,t){if(!e.pixelRanges||b(e))return i();const s={target:{...e},options:{...t}};return this._pixelHighlights.push(s),this._updateHighlightOptions(this.subview),i(()=>{const e=this._pixelHighlights.indexOf(s);-1!==e&&(this._pixelHighlights.splice(e,1),this._updateHighlightOptions(this.subview))})}doRefresh(){return this.subview?this.subview.doRefresh():Promise.resolve()}_updateSubview(){const{renderer:e}=this.layer;if(!e)return;const i=this._getSubviewType(e);if(this.subview){if(this.subview.type===i)return void this._attachSubview(this.subview);this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}const{layer:t}=this;let s;if(s="rasterVF"===i?new g({layer:t,layerView:this,scheduler:this.scheduler}):"flow"===i?new l({layer:t,layerView:this,scheduler:this.scheduler}):new p({layer:t,layerView:this,scheduler:this.scheduler}),"useWebGLForProcessing"in s&&(s.useWebGLForProcessing=this._useWebGLForProcessing),"useProgressiveUpdate"in s&&(s.useProgressiveUpdate=this._useProgressiveUpdate),"previousLOD"in s){const{subview:e}=this;s.previousLOD=e&&"previousLOD"in e?e.previousLOD:null}this._attachSubview(s),this._updateHighlightOptions(s),this.subview=s,this.requestUpdate()}_attachSubview(e){e&&!e.attached&&(e.attach(),e.attached=!0,this.container.addChildAt(e.container,0))}_detachSubview(e){e?.attached&&(this.container.removeChild(e.container),e.detach(),e.attached=!1)}_getSubviewType(e){const i=e?.type;return"vector-field"===i?"rasterVF":"flow"===i?"flow":"raster"}_updateHighlightOptions(e){"raster"===e?.type&&e.updateHighlightOptions(this._pixelHighlights)}};e([h()],y.prototype,"subview",void 0),e([h()],y.prototype,"useWebGLForProcessing",null),e([h()],y.prototype,"useProgressiveUpdate",null),e([h({readOnly:!0})],y.prototype,"displayParameters",null),y=e([n("esri.views.2d.layers.ImageryTileLayerView2D")],y);const f=y;export{f as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import i from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as a,syncAndInitial as o,initial as n}from"../../../core/reactiveUtils.js";import{property as h,subclass as p}from"../../../core/accessorSupport/decorators.js";import c from"../../../rest/support/DirectionLine.js";import l from"../../../rest/support/DirectionPoint.js";import u from"../../../rest/support/PointBarrier.js";import d from"../../../rest/support/PolygonBarrier.js";import _ from"../../../rest/support/PolylineBarrier.js";import g from"../../../rest/support/RouteInfo.js";import m from"../../../rest/support/Stop.js";import{LayerView2DMixin as w}from"./LayerView2D.js";import y from"./graphics/GraphicContainer.js";import f from"./graphics/GraphicsView2D.js";import k from"../../layers/LayerView.js";import{getHighlightName as v}from"../../support/highlightOptionsUtils.js";const M=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],F={graphic:null,property:null,oldValue:null,newValue:null};function V(t){return t instanceof c||t instanceof l||t instanceof u||t instanceof d||t instanceof _||t instanceof g||t instanceof m}function G(t){return r.isCollection(t)&&t.length&&V(t.at(0))}function I(t){return Array.isArray(t)&&t.length>0&&V(t[0])}let j=class extends(w(k)){constructor(){super(...arguments),this._graphics=new r,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1}get _routeItems(){return new i({getCollections:()=>this.layer&&!this.destroyed?[this.layer.routeInfo?new r([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]:[]})}initialize(){this.addHandles(a(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const r=t&&!e;r&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=r)},o)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){if(!this.interactive)return;return(await this._getInteractionLoadPromise()).create(t)}async fetchPopupFeaturesAtLocation(t,e){return this._graphicsView.hitTest(t).filter(({popupTemplate:t})=>!!t)}highlight(t,r){let i;i=V(t)?[this._getNetworkFeatureUid(t)]:I(t)?t.map(t=>this._getNetworkFeatureUid(t)):G(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const a=i.filter(e);if(!a.length)return s();const o=v(r);return this._addHighlights(a,o),s(()=>this._removeHighlights(a,o))}async hitTest(t,r){if(this.suspended)return null;const i=this._graphicsView.hitTest(t).filter(e).map(t=>this._networkGraphicMap.get(t));if(!i.length)return null;const{layer:s}=this;return i.reverse().map(e=>({type:"route",layer:s,mapPoint:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),r=new y(t.featuresTilingScheme);this._graphicsView=new f({container:r,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(r),this._processHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return M.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.addPromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{layer:t,view:e}=this,{RouteLayerInteraction:r}=await import("./support/RouteLayerInteraction.js");return this._interaction=new r({view:e,layer:t}),this._interaction}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([a(()=>e.geometry,(t,r)=>{this._updateGraphic(e,"geometry",t,r)}),a(()=>e.symbol,(t,r)=>{this._updateGraphic(e,"symbol",t,r)}),a(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),a(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,r,i){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=r,F.graphic=s,F.property=e,F.oldValue=i,F.newValue=r,this._graphicsView.graphicUpdateHandler(F)}_processHighlight(){const t=this._getHighlights();this._graphicsView?.setHighlight(t)}};t([h()],j.prototype,"_routeItems",null),t([h()],j.prototype,"_interaction",void 0),t([h()],j.prototype,"interactive",void 0),t([h({readOnly:!0})],j.prototype,"selectedNetworkFeatures",null),j=t([p("esri.views.2d.layers.RouteLayerView2D")],j);const P=j;export{P as default};
5
+ import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import i from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as a,syncAndInitial as o,initial as n}from"../../../core/reactiveUtils.js";import{property as h,subclass as p}from"../../../core/accessorSupport/decorators.js";import c from"../../../rest/support/DirectionLine.js";import l from"../../../rest/support/DirectionPoint.js";import u from"../../../rest/support/PointBarrier.js";import d from"../../../rest/support/PolygonBarrier.js";import _ from"../../../rest/support/PolylineBarrier.js";import g from"../../../rest/support/RouteInfo.js";import m from"../../../rest/support/Stop.js";import{LayerView2DMixin as w}from"./LayerView2D.js";import y from"./graphics/GraphicContainer.js";import f from"./graphics/GraphicsView2D.js";import k from"../../layers/LayerView.js";import{getHighlightName as v}from"../../support/highlightOptionsUtils.js";const M=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],F={graphic:null,property:null,oldValue:null,newValue:null};function V(t){return t instanceof c||t instanceof l||t instanceof u||t instanceof d||t instanceof _||t instanceof g||t instanceof m}function G(t){return r.isCollection(t)&&t.length&&V(t.at(0))}function I(t){return Array.isArray(t)&&t.length>0&&V(t[0])}let j=class extends(w(k)){constructor(){super(...arguments),this._graphics=new r,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1}get _routeItems(){return new i({getCollections:()=>this.layer&&!this.destroyed?[this.layer.routeInfo?new r([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]:[]})}initialize(){this.addHandles(a(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const r=t&&!e;r&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=r)},o)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){return this._interaction?.create(t)}delete(){this._interaction?.delete()}async fetchPopupFeaturesAtLocation(t,e){return this._graphicsView.hitTest(t).filter(({popupTemplate:t})=>!!t)}highlight(t,r){let i;i=V(t)?[this._getNetworkFeatureUid(t)]:I(t)?t.map(t=>this._getNetworkFeatureUid(t)):G(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const a=i.filter(e);if(!a.length)return s();const o=v(r);return this._addHighlights(a,o),s(()=>this._removeHighlights(a,o))}async hitTest(t,r){if(this.suspended)return null;const i=this._graphicsView.hitTest(t).filter(e).map(t=>this._networkGraphicMap.get(t));if(!i.length)return null;const{layer:s}=this;return i.reverse().map(e=>({type:"route",layer:s,mapPoint:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),r=new y(t.featuresTilingScheme);this._graphicsView=new f({container:r,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(r),this._processHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return M.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.addPromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{layer:t,view:e}=this,{RouteLayerInteraction:r}=await import("./support/RouteLayerInteraction.js");return this._interaction=new r({view:e,layer:t}),this._interaction}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([a(()=>e.geometry,(t,r)=>{this._updateGraphic(e,"geometry",t,r)}),a(()=>e.symbol,(t,r)=>{this._updateGraphic(e,"symbol",t,r)}),a(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),a(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,r,i){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=r,F.graphic=s,F.property=e,F.oldValue=i,F.newValue=r,this._graphicsView.graphicUpdateHandler(F)}_processHighlight(){const t=this._getHighlights();this._graphicsView?.setHighlight(t)}};t([h()],j.prototype,"_routeItems",null),t([h()],j.prototype,"_interaction",void 0),t([h()],j.prototype,"interactive",void 0),t([h({readOnly:!0})],j.prototype,"selectedNetworkFeatures",null),j=t([p("esri.views.2d.layers.RouteLayerView2D")],j);const P=j;export{P as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s,waitTick as r}from"../../../core/promiseUtils.js";import{property as o,subclass as l}from"../../../core/accessorSupport/decorators.js";import{equals as h}from"../../../geometry/support/spatialReferenceUtils.js";import{GraphicsCollection as a}from"../../../support/GraphicsCollection.js";import"../../../core/Error.js";import"../../../core/has.js";import"../../../core/scheduling.js";import"../../../core/RandomLCG.js";import"../../../Color.js";import"../../../core/mathUtils.js";import"../../../config.js";import"../../../symbols/cim/defaultCIMValues.js";import"../../../core/floatRGBA.js";import"../../../geometry/Extent.js";import"../../../symbols/Font.js";import"../../../core/ObjectPool.js";import"../../../symbols/cim/effects/EffectAddControlPoints.js";import"../../../symbols/cim/effects/EffectArrow.js";import"../../../symbols/cim/effects/EffectBuffer.js";import"../../../symbols/cim/effects/EffectControlMeasureLine.js";import"../../../symbols/cim/effects/EffectCut.js";import"../../../symbols/cim/effects/EffectDashes.js";import"../../../symbols/cim/effects/EffectDonut.js";import"../../../symbols/cim/effects/EffectEnclosingPolygon.js";import"../../../symbols/cim/effects/EffectJog.js";import"../../../symbols/cim/effects/EffectMove.js";import"../../../symbols/cim/effects/EffectOffset.js";import"../../../symbols/cim/effects/EffectRadial.js";import"../../../symbols/cim/effects/EffectReverse.js";import"../../../symbols/cim/effects/EffectRotate.js";import"../../../symbols/cim/effects/EffectScale.js";import"../../../symbols/cim/effects/EffectSuppress.js";import"../../../symbols/cim/effects/EffectTaperedPolygon.js";import"../../../symbols/cim/effects/EffectWave.js";import"../../../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../../../symbols/cim/placements/PlacementAtExtremities.js";import"../../../symbols/cim/placements/PlacementAtMeasuredUnits.js";import"../../../symbols/cim/placements/PlacementAtRatioPositions.js";import"../../../symbols/cim/placements/PlacementInsidePolygon.js";import"../../../symbols/cim/placements/PlacementOnLine.js";import"../../../symbols/cim/placements/PlacementOnVertices.js";import"../../../symbols/cim/placements/PlacementPolygonCenter.js";import"../../../symbols/cim/constants.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../../../geometry/Polygon.js";import"../../../symbols/support/defaults.js";import"../../../symbols/cim/OverrideHelper.js";import"../../../layers/effects/EffectView.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../webgl/enums.js";import"../engine/webgl/shaders/BackgroundPrograms.js";import"../../webgl/Program.js";import"../../webgl/Util.js";import"../../webgl/VertexAttributeLayouts.js";import"../../webgl/BufferObject.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/MappedMesh.js";import"../engine/webgl/number.js";import"../engine/webgl/shaders/TileInfoPrograms.js";import"../../webgl/Texture.js";import"../engine/webgl/shaders/BitBlitPrograms.js";import"../../../request.js";import"../../../core/urlUtils.js";import"../../../core/pbf.js";import"../engine/webgl/shaders/StencilPrograms.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"../engine/webgl/shaders/HighlightPrograms.js";import"../../webgl/FramebufferObject.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlitShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/BloomShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlurShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js";import"../engine/webgl/meshing/SimpleMesh.js";import"../../webgl/Renderbuffer.js";import"../engine/webgl/PooledUint32Array.js";import"../engine/webgl/Profiler.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../engine/webgl/shaderGraph/techniques/animated/attributes.js";import"../engine/webgl/mesh/templates/templateUtils.js";import"../engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../../../geometry/support/aaBoundingBox.js";import"../engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../../../core/sql/UnknownTimeZone.js";import"luxon";import"../../../intl/locale.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Point.js";import"../../../geometry/Polyline.js";import"../../../layers/support/fieldUtils.js";import"../../../time/constants.js";import"../engine/webgl/animations/instructions.js";import"../engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"../../webgl/checkWebGLError.js";import"../../webgl/renderState.js";import"../../3d/webgl-engine/core/shaderModules/glsl.js";import"../../webgl/testSVGPremultipliedAlpha.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import p from"./graphics/GraphicsView2D.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../chunks/earcut.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../core/asyncUtils.js";import"../../../core/support/UpdatingHandles.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as n}from"./BitmapTileLayerView2D.js";import{LayerView2DMixin as m}from"./LayerView2D.js";import c from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as g,resampleImage as f}from"./support/imageUtils.js";import u from"../tiling/TileInfoView.js";import d from"../tiling/TileKey.js";import j from"../tiling/TileQueue.js";import y from"../tiling/TileStrategy.js";import w from"../../layers/LayerView.js";import{RefreshableLayerView as b}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as _}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as G,MapServiceLayerViewHelper as T}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as q}from"../../support/drapedUtils.js";import{getHighlightName as V}from"../../support/highlightOptionsUtils.js";import{TaskPriority as S}from"../../support/Scheduler.js";const P=[0,0];let I=class extends(b(n(m(w)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new a,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new u(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new j({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:S.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new y({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),G(this,this.layer)){const e=this._highlightView=new p({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new c(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new T({createFetchPopupFeaturesQueryGeometry:(e,i)=>q(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtLocation(e,i){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtLocation(e,i):[]}highlight(e,t){const s=_(e);if(0===s.length)return i();const r=V(t);return this._addHighlightGraphics(s,r),i(()=>!this.destroyed&&this._removeHighlightGraphics(s,r))}_processHighlight(){const e=this._getHighlights();this._highlightView?.setHighlight(e)}_addHighlightGraphics(e,i){this._highlightGraphics.addMany(e),this._addHighlights(e.map(e=>e.uid),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlights(e.map(e=>e.uid),i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return h(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(P,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.tileInfo.size,this._updatingHandles.addPromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:r=0}=i;try{return await this._fetchImage(e,t)}catch(o){if(s(o))throw o;if(!this.resampling)return g(this._tileInfoView.tileInfo.size);if(r<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const s=new d(t),o=await this._fetchTileWithoutTilemapCache(s,{...i,resamplingLevel:r+1});return f(this._tileInfoView,o,s,e)}}return g(this._tileInfoView.tileInfo.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:o,resamplingLevel:l=0}=i,h=new d(0,0,0,0);let a,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,h,{signal:o}),!this.resampling&&h.level!==e.level)return await r(i),g(this._tileInfoView.tileInfo.size);a=await this._fetchImage(h,o)}catch(n){if(s(n))throw n;if(this.resampling&&"unknown"===p&&l<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){h.set(t);try{a=await this._fetchTileWithTilemapCache(h,{...i,resamplingLevel:l+1})}catch{}}}}return a?this.resampling?f(this._tileInfoView,a,h,e):a:g(this._tileInfoView.tileInfo.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.tileInfo.size[0],e.bitmap.height=this._tileInfoView.tileInfo.size[1],e.once("attach",()=>this.requestUpdate())}catch(i){s(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i})}};e([o()],I.prototype,"resampling",null),e([o()],I.prototype,"tilemapCache",null),I=e([l("esri.views.2d.layers.TileLayerView2D")],I);const v=I;export{v as default};
5
+ import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s,waitTick as r}from"../../../core/promiseUtils.js";import{property as o,subclass as l}from"../../../core/accessorSupport/decorators.js";import{equals as h}from"../../../geometry/support/spatialReferenceUtils.js";import{GraphicsCollection as a}from"../../../support/GraphicsCollection.js";import"../../../core/has.js";import"../../../core/RandomLCG.js";import"../../../core/scheduling.js";import"../../../Color.js";import"../../../core/mathUtils.js";import"../../../config.js";import"../../../symbols/cim/defaultCIMValues.js";import"../../../core/floatRGBA.js";import"../../../geometry/Extent.js";import"../../../symbols/Font.js";import"../../../core/ObjectPool.js";import"../../../symbols/cim/effects/EffectAddControlPoints.js";import"../../../symbols/cim/effects/EffectArrow.js";import"../../../symbols/cim/effects/EffectBuffer.js";import"../../../symbols/cim/effects/EffectControlMeasureLine.js";import"../../../symbols/cim/effects/EffectCut.js";import"../../../symbols/cim/effects/EffectDashes.js";import"../../../symbols/cim/effects/EffectDonut.js";import"../../../symbols/cim/effects/EffectEnclosingPolygon.js";import"../../../symbols/cim/effects/EffectJog.js";import"../../../symbols/cim/effects/EffectMove.js";import"../../../symbols/cim/effects/EffectOffset.js";import"../../../symbols/cim/effects/EffectRadial.js";import"../../../symbols/cim/effects/EffectReverse.js";import"../../../symbols/cim/effects/EffectRotate.js";import"../../../symbols/cim/effects/EffectScale.js";import"../../../symbols/cim/effects/EffectSuppress.js";import"../../../symbols/cim/effects/EffectTaperedPolygon.js";import"../../../symbols/cim/effects/EffectWave.js";import"../../../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../../../symbols/cim/placements/PlacementAtExtremities.js";import"../../../symbols/cim/placements/PlacementAtMeasuredUnits.js";import"../../../symbols/cim/placements/PlacementAtRatioPositions.js";import"../../../symbols/cim/placements/PlacementInsidePolygon.js";import"../../../symbols/cim/placements/PlacementOnLine.js";import"../../../symbols/cim/placements/PlacementOnVertices.js";import"../../../symbols/cim/placements/PlacementPolygonCenter.js";import"../../../symbols/cim/constants.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../../../geometry/Polygon.js";import"../../../symbols/support/defaults.js";import"../../../symbols/cim/OverrideHelper.js";import"../../../layers/effects/EffectView.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../webgl/enums.js";import"../engine/webgl/shaders/BackgroundPrograms.js";import"../../webgl/Program.js";import"../../webgl/Util.js";import"../../webgl/VertexAttributeLayouts.js";import"../../webgl/BufferObject.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/MappedMesh.js";import"../engine/webgl/number.js";import"../engine/webgl/shaders/TileInfoPrograms.js";import"../../webgl/Texture.js";import"../engine/webgl/shaders/BitBlitPrograms.js";import"../../../request.js";import"../../../core/urlUtils.js";import"../../../core/pbf.js";import"../engine/webgl/shaders/StencilPrograms.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"../engine/webgl/shaders/HighlightPrograms.js";import"../../webgl/FramebufferObject.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlitShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/BloomShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/BlurShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js";import"../engine/webgl/meshing/SimpleMesh.js";import"../../webgl/Renderbuffer.js";import"../engine/webgl/PooledUint32Array.js";import"../engine/webgl/Profiler.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../engine/webgl/shaderGraph/techniques/animated/attributes.js";import"../engine/webgl/mesh/templates/templateUtils.js";import"../engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../../../geometry/support/aaBoundingBox.js";import"../engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"../engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../../../core/sql/UnknownTimeZone.js";import"luxon";import"../../../intl/locale.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Point.js";import"../../../geometry/Polyline.js";import"../../../layers/support/fieldUtils.js";import"../../../time/constants.js";import"../engine/webgl/animations/instructions.js";import"../engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"../../webgl/checkWebGLError.js";import"../../webgl/renderState.js";import"../../3d/webgl-engine/core/shaderModules/glsl.js";import"../../webgl/testSVGPremultipliedAlpha.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import p from"./graphics/GraphicsView2D.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../chunks/earcut.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../core/asyncUtils.js";import"../../../core/support/UpdatingHandles.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as n}from"./BitmapTileLayerView2D.js";import{LayerView2DMixin as m}from"./LayerView2D.js";import c from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as g,resampleImage as f}from"./support/imageUtils.js";import u from"../tiling/TileInfoView.js";import d from"../tiling/TileKey.js";import j from"../tiling/TileQueue.js";import y from"../tiling/TileStrategy.js";import w from"../../layers/LayerView.js";import{RefreshableLayerView as b}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as _}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as G,MapServiceLayerViewHelper as T}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as q}from"../../support/drapedUtils.js";import{getHighlightName as V}from"../../support/highlightOptionsUtils.js";import{TaskPriority as S}from"../../support/Scheduler.js";const P=[0,0];let I=class extends(b(n(m(w)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new a,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new u(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new j({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:S.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new y({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),G(this,this.layer)){const e=this._highlightView=new p({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new c(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new T({createFetchPopupFeaturesQueryGeometry:(e,i)=>q(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtLocation(e,i){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtLocation(e,i):[]}highlight(e,t){const s=_(e);if(0===s.length)return i();const r=V(t);return this._addHighlightGraphics(s,r),i(()=>!this.destroyed&&this._removeHighlightGraphics(s,r))}_processHighlight(){const e=this._getHighlights();this._highlightView?.setHighlight(e)}_addHighlightGraphics(e,i){this._highlightGraphics.addMany(e),this._addHighlights(e.map(e=>e.uid),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlights(e.map(e=>e.uid),i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return h(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(P,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.tileInfo.size,this._updatingHandles.addPromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:r=0}=i;try{return await this._fetchImage(e,t)}catch(o){if(s(o))throw o;if(!this.resampling)return g(this._tileInfoView.tileInfo.size);if(r<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const s=new d(t),o=await this._fetchTileWithoutTilemapCache(s,{...i,resamplingLevel:r+1});return f(this._tileInfoView,o,s,e)}}return g(this._tileInfoView.tileInfo.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:o,resamplingLevel:l=0}=i,h=new d(0,0,0,0);let a,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,h,{signal:o}),!this.resampling&&h.level!==e.level)return await r(i),g(this._tileInfoView.tileInfo.size);a=await this._fetchImage(h,o)}catch(n){if(s(n))throw n;if(this.resampling&&"unknown"===p&&l<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){h.set(t);try{a=await this._fetchTileWithTilemapCache(h,{...i,resamplingLevel:l+1})}catch{}}}}return a?this.resampling?f(this._tileInfoView,a,h,e):a:g(this._tileInfoView.tileInfo.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.tileInfo.size[0],e.bitmap.height=this._tileInfoView.tileInfo.size[1],e.once("attach",()=>this.requestUpdate())}catch(i){s(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i})}};e([o()],I.prototype,"resampling",null),e([o()],I.prototype,"tilemapCache",null),I=e([l("esri.views.2d.layers.TileLayerView2D")],I);const v=I;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import r from"../../../../core/Accessor.js";import{destroyHandle as t}from"../../../../core/handleUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as i,subclass as a}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as l}from"../../../../core/support/UpdatingHandles.js";import n from"../../../../layers/GraphicsLayer.js";import p from"../../../../rest/support/PointBarrier.js";import c from"../../../../rest/support/PolygonBarrier.js";import h from"../../../../rest/support/PolylineBarrier.js";import y from"../../../../rest/support/Stop.js";import d from"../../../../widgets/Sketch/SketchViewModel.js";function m(e,r){e.networkFeature=r}function g(e){const r=b(e.graphic);return{...e,networkFeature:r}}function u(e){const r=e.graphics.map(e=>b(e));return{...e,networkFeatures:r}}function b(e){return e.networkFeature}function w(e){return"point"===e?.type||"polyline"===e?.type||"polygon"===e?.type}let k=class extends r{constructor(e){super(e),this._createMode=null,this._graphicsLayer=new n({internal:!0,listMode:"hide"}),this._sketchViewModel=new d({layer:this._graphicsLayer}),this._updatingHandles=new l,this.enabled=!0,this._handleSketchViewModelEvents=async e=>{switch(e.type){case"update":switch(e.state){case"active":case"complete":for(const r of e.graphics){b(r).geometry=w(r.geometry)?r.geometry.clone():null}}break;case"undo":case"redo":break;case"delete":for(const r of e.graphics){const e=b(r);this._removeNetworkFeature(e)}break;case"create":if(e.graphic&&"complete"===e.state&&this._createMode){const r=e.graphic.geometry?.clone(),t=e.graphic.symbol?.clone();if(!r)break;switch(this._createMode){case"stop":{if("point"!==r.type)break;const{stops:t}=this.layer;if(t.length>0&&t.every(({geometry:e})=>!e)){t.at(0).geometry=r;break}if(t.length>1&&t.filter((e,r)=>0!==r).every(({geometry:e})=>!e)){t.at(1).geometry=r;break}const o=new y({geometry:r});t.add(o),m(e.graphic,o);break}case"point-barrier":{if("point"!==r.type)break;const o=new p({geometry:r,symbol:t});this.layer.pointBarriers.add(o),m(e.graphic,o);break}case"polyline-barrier":{if("polyline"!==r.type)break;const o=new h({geometry:r,symbol:t});this.layer.polylineBarriers.add(o),m(e.graphic,o);break}case"polygon-barrier":{if("polygon"!==r.type)break;const o=new c({geometry:r,symbol:t});this.layer.polygonBarriers.add(o),m(e.graphic,o);break}}}}(await this.view.whenLayerView(this.layer)).emit(e.type,"create"===e.type?g(e):u(e))}}initialize(){this._sketchViewModel.view=this.view,this.addHandles([o(()=>this.enabled,e=>{e?this._activate():this._deactivate()},s),o(()=>{const{stops:e,pointBarriers:r,polylineBarriers:t,polygonBarriers:o}=this.layer;return{stops:e,pointBarriers:r,polylineBarriers:t,polygonBarriers:o}},()=>{this.enabled&&this._loadClonedGraphics()}),this._sketchViewModel.on(["create","delete","redo","undo","update"],this._handleSketchViewModelEvents),t(this._updatingHandles)])}destroy(){this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.destroy(),this._sketchViewModel.destroy(),this._updatingHandles.destroy()}get selectedNetworkFeatures(){return this._sketchViewModel.updateGraphics.map(e=>b(e))}get updating(){return this._updatingHandles.updating}create(e){switch(this._createMode=e,e){case"stop":this.layer.defaultSymbols.stops?.unlocated&&(this._sketchViewModel.pointSymbol=this.layer.defaultSymbols.stops.unlocated.clone());break;case"point-barrier":this.layer.defaultSymbols.pointBarriers&&(this._sketchViewModel.pointSymbol=this.layer.defaultSymbols.pointBarriers.clone());break;case"polyline-barrier":this.layer.defaultSymbols.polylineBarriers&&(this._sketchViewModel.polylineSymbol=this.layer.defaultSymbols.polylineBarriers.clone());break;case"polygon-barrier":this.layer.defaultSymbols.polygonBarriers&&(this._sketchViewModel.polygonSymbol=this.layer.defaultSymbols.polygonBarriers.clone())}switch(e){case"stop":case"point-barrier":return this._sketchViewModel.create("point");case"polyline-barrier":return this._sketchViewModel.create("polyline");case"polygon-barrier":return this._sketchViewModel.create("polygon")}}remove(e){const r=this._graphicsLayer.graphics.find(r=>b(r)===e);r&&this._graphicsLayer.remove(r),this._removeNetworkFeature(e)}_activate(){this._loadClonedGraphics(),this.view.map.add(this._graphicsLayer)}_deactivate(){this._sketchViewModel.cancel(),this.view.map?.remove(this._graphicsLayer),this._graphicsLayer.removeAll()}_loadClonedGraphics(){const e=[this.layer.stops,this.layer.pointBarriers,this.layer.polylineBarriers,this.layer.polygonBarriers].flatMap(e=>e.toArray().map(e=>{const r=e.toGraphic();return r.networkFeature=e,r}));this._graphicsLayer.removeAll().addMany(e)}_removeNetworkFeature(e){switch(e.type){case"stop":this.layer.stops.remove(e);break;case"point-barrier":this.layer.pointBarriers.remove(e);break;case"polyline-barrier":this.layer.polylineBarriers.remove(e);break;case"polygon-barrier":this.layer.polygonBarriers.remove(e)}}};e([i()],k.prototype,"enabled",void 0),e([i({constructOnly:!0})],k.prototype,"layer",void 0),e([i({readOnly:!0})],k.prototype,"selectedNetworkFeatures",null),e([i()],k.prototype,"updating",null),e([i({constructOnly:!0})],k.prototype,"view",void 0),k=e([a("esri.views.2d.layers.support.RouteLayerInteraction")],k);export{k as RouteLayerInteraction};
5
+ import{__decorate as e}from"tslib";import r from"../../../../core/Accessor.js";import{watch as t,initial as i}from"../../../../core/reactiveUtils.js";import{property as o,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as a}from"../../../../core/support/UpdatingHandles.js";import l from"../../../../layers/GraphicsLayer.js";import n from"../../../../rest/support/PointBarrier.js";import p from"../../../../rest/support/PolygonBarrier.js";import c from"../../../../rest/support/PolylineBarrier.js";import h from"../../../../rest/support/Stop.js";import{RouteLayerWaypointVisualization as y}from"./RouteLayerWaypointVisualization.js";import d from"../../../../widgets/Sketch/SketchViewModel.js";function u(e,r){e.networkFeature=r}function m(e){const r=w(e.graphic);return{...e,networkFeature:r}}function g(e){const r=e.graphics.map(e=>w(e));return{...e,networkFeatures:r}}function w(e){return e.networkFeature}function b(e){return"point"===e?.type||"polyline"===e?.type||"polygon"===e?.type}let k=class extends r{constructor(e){super(e),this._createMode=null,this._graphicsLayer=new l({internal:!0,listMode:"hide"}),this._sketchViewModel=new d({layer:this._graphicsLayer}),this._updatingHandles=new a,this.enabled=!0,this._handleSketchViewModelEvents=async e=>{switch(e.type){case"update":switch(e.state){case"active":case"complete":for(const r of e.graphics){w(r).geometry=b(r.geometry)?r.geometry.clone():null}}break;case"undo":case"redo":break;case"delete":for(const r of e.graphics){const e=w(r);this._removeNetworkFeature(e)}break;case"create":if(e.graphic&&"complete"===e.state&&this._createMode){const r=e.graphic.geometry?.clone(),t=e.graphic.symbol?.clone();if(!r)break;switch(this._createMode){case"stop":{if("point"!==r.type)break;const{stops:t}=this.layer;if(t.length>0&&t.every(({geometry:e})=>!e)){t.at(0).geometry=r;break}if(t.length>1&&t.filter((e,r)=>0!==r).every(({geometry:e})=>!e)){t.at(1).geometry=r;break}const i=new h({geometry:r});t.add(i),u(e.graphic,i);break}case"point-barrier":{if("point"!==r.type)break;const i=new n({geometry:r,symbol:t});this.layer.pointBarriers.add(i),u(e.graphic,i);break}case"polyline-barrier":{if("polyline"!==r.type)break;const i=new c({geometry:r,symbol:t});this.layer.polylineBarriers.add(i),u(e.graphic,i);break}case"polygon-barrier":{if("polygon"!==r.type)break;const i=new p({geometry:r,symbol:t});this.layer.polygonBarriers.add(i),u(e.graphic,i);break}}}}(await this.view.whenLayerView(this.layer)).emit(e.type,"create"===e.type?m(e):g(e))}}initialize(){this._sketchViewModel.view=this.view,this.addHandles([t(()=>this.enabled,e=>{e?this._activate():this._deactivate()},i),t(()=>{const{stops:e,pointBarriers:r,polylineBarriers:t,polygonBarriers:i}=this.layer;return{stops:e,pointBarriers:r,polylineBarriers:t,polygonBarriers:i}},()=>{this.enabled&&this._loadClonedGraphics()}),this._sketchViewModel.on(["create","delete","redo","undo","update"],this._handleSketchViewModelEvents)]),this._routeLayerWaypointVisualization=new y({view:this.view,interaction:this})}destroy(){this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.destroy(),this._routeLayerWaypointVisualization?.destroy(),this._sketchViewModel.destroy(),this._updatingHandles.destroy()}get selectedNetworkFeatures(){return this._sketchViewModel.updateGraphics.map(e=>w(e))}get sketchActive(){return!!this._sketchViewModel.activeTool}get updating(){return(this._routeLayerWaypointVisualization?.updating??!0)||this._sketchViewModel.updating||this._updatingHandles.updating}addNetworkFeature(e){const r=e.toGraphic();this._graphicsLayer.add(r),u(r,e),this._sketchViewModel.update(r)}async create(e){if(this.enabled){switch(this._createMode=e,e){case"stop":this.layer.defaultSymbols.stops?.unlocated&&(this._sketchViewModel.pointSymbol=this.layer.defaultSymbols.stops.unlocated.clone());break;case"point-barrier":this.layer.defaultSymbols.pointBarriers&&(this._sketchViewModel.pointSymbol=this.layer.defaultSymbols.pointBarriers.clone());break;case"polyline-barrier":this.layer.defaultSymbols.polylineBarriers&&(this._sketchViewModel.polylineSymbol=this.layer.defaultSymbols.polylineBarriers.clone());break;case"polygon-barrier":this.layer.defaultSymbols.polygonBarriers&&(this._sketchViewModel.polygonSymbol=this.layer.defaultSymbols.polygonBarriers.clone())}switch(e){case"stop":case"point-barrier":return this._sketchViewModel.create("point");case"polyline-barrier":return this._sketchViewModel.create("polyline");case"polygon-barrier":return this._sketchViewModel.create("polygon")}}}delete(){for(const e of this.selectedNetworkFeatures)this.remove(e)}remove(e){const r=this._graphicsLayer.graphics.find(r=>w(r)===e);r&&(this._graphicsLayer.remove(r),this._removeNetworkFeature(e))}_activate(){this._loadClonedGraphics(),this.view.map.add(this._graphicsLayer)}_deactivate(){this._sketchViewModel.cancel(),this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll()}_loadClonedGraphics(){const e=[this.layer.stops,this.layer.pointBarriers,this.layer.polylineBarriers,this.layer.polygonBarriers].flatMap(e=>e.toArray().map(e=>{const r=e.toGraphic();return r.networkFeature=e,r}));this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.addMany(e)}_removeNetworkFeature(e){switch(e.type){case"stop":this.layer.stops.remove(e);break;case"point-barrier":this.layer.pointBarriers.remove(e);break;case"polyline-barrier":this.layer.polylineBarriers.remove(e);break;case"polygon-barrier":this.layer.polygonBarriers.remove(e)}}};e([o()],k.prototype,"_routeLayerWaypointVisualization",void 0),e([o()],k.prototype,"enabled",void 0),e([o({constructOnly:!0})],k.prototype,"layer",void 0),e([o({readOnly:!0})],k.prototype,"selectedNetworkFeatures",null),e([o()],k.prototype,"sketchActive",null),e([o()],k.prototype,"updating",null),e([o({constructOnly:!0})],k.prototype,"view",void 0),k=e([s("esri.views.2d.layers.support.RouteLayerInteraction")],k);export{k as RouteLayerInteraction};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
+ */
5
+ import{__decorate as t}from"tslib";import e from"../../../../Graphic.js";import{pointToCoordinate as i}from"../../../../arcade/functions/measures.js";import o from"../../../../core/Accessor.js";import{isSome as r}from"../../../../core/arrayUtils.js";import{getContrast as s}from"../../../../core/colorUtils.js";import{debounce as a,throwIfNotAbortError as n}from"../../../../core/promiseUtils.js";import{initial as p}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../../../core/support/UpdatingHandles.js";import{e as y}from"../../../../chunks/distanceOperator.js";import{load as m,execute as d}from"../../../../geometry/operators/projectOperator.js";import{g as u}from"../../../../chunks/proximityOperator.js";import g from"../../../../layers/GraphicsLayer.js";import f from"../../../../rest/support/Stop.js";import w from"../../../../symbols/SimpleLineSymbol.js";import _ from"../../../../symbols/SimpleMarkerSymbol.js";import{ViewEventPriorities as v}from"../../../input/InputManager.js";const b=Symbol(),j=20;let L=class extends o{constructor(t){super(t),this._graphicsLayer=new g({listMode:"hide",internal:!0}),this._updatingHandles=new h,this._debouncedHandleClick=a(async t=>{const e=this._graphicsLayer.graphics.at(0);if("point"!==e?.geometry?.type)return;t.stopPropagation();const i=new f({geometry:e.geometry.clone(),locationType:"waypoint",symbol:this.waypointSymbol.clone()}),o=await this._getWaypointIndex(i);this.interaction.layer.stops.add(i,o),this.interaction.layer.stops.forEach(t=>t.sequence=null),this.interaction.addNetworkFeature(i)}),this._debouncedHandlePointerMove=a(async t=>{if(!this.interaction.enabled||this.interaction.sketchActive||this.interaction.layer.stops.length<2||!this.interaction.layer.routeInfo?.geometry)return void this._clearWaypointManipulator();const{spatialReference:i}=this.view;await m();const o=d(this.interaction.layer.routeInfo?.geometry,i);if(!o)return void this._clearWaypointManipulator();const s=this.view.resolution*window.devicePixelRatio*j,{coordinate:a,distance:n,isEmpty:p}=u(o,this.view.toMap(t));if(p||n>s)return void this._clearWaypointManipulator();if(this.interaction.layer.stops.map(({geometry:t})=>t).filter(r).map(t=>d(t,i)).filter(r).some(t=>y(t,a)<s))return void this._clearWaypointManipulator();this.addHandles(this.view.acquireCursor("pointer","high"),b);const c=this._graphicsLayer.graphics.at(0);if(c)return void(c.geometry=a);const{waypointSymbol:l}=this,h=new e({geometry:a,symbol:l});this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.add(h)})}initialize(){this.view.map?.add(this._graphicsLayer),this._updatingHandles.add(()=>({enabled:this.interaction.enabled,graphic:this._graphicsLayer.graphics.at(0),symbol:this.waypointSymbol}),({enabled:t,graphic:e,symbol:i})=>{t?e&&(e.symbol=i):this._clearWaypointManipulator()},p),this.addHandles([this.view.on("click",t=>this._debouncedHandleClick(t).catch(n),v.TOOL),this.view.on("pointer-move",t=>this._debouncedHandlePointerMove(t).catch(n),v.TOOL)])}destroy(){this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.destroy(),this._updatingHandles.destroy()}get updating(){return!this._graphicsLayer.loaded||this._updatingHandles.updating}get waypointSymbol(){const t=this.interaction.layer.defaultSymbols.stops?.waypoint;if(t)return t;const{accentColor:e}=this.view.effectiveTheme;return new _({color:e,outline:new w({color:s(e),width:1.5}),size:10})}_clearWaypointManipulator(){this._graphicsLayer.graphics.destroyAll(),this.removeHandles(b)}async _getWaypointIndex(t){const{routeInfo:e,stops:o}=this.interaction.layer;if(2===o.length||!e?.geometry||!t.geometry)return 1;const{spatialReference:r}=this.view;await m();const s=d(e.geometry,r),a=d(t.geometry,r);if(!s||!a)return 1;const n=i(s,a)?.distanceAlong;if(!n)return 1;for(let p=1;p<o.length;p++){const t=o.at(p)?.geometry;if(!t)continue;const e=d(t,r);if(!e)continue;const a=i(s,e)?.distanceAlong;if(null!=a&&a>n)return p}return o.length-1}};t([c()],L.prototype,"interaction",void 0),t([c()],L.prototype,"updating",null),t([c()],L.prototype,"waypointSymbol",null),t([c()],L.prototype,"view",void 0),L=t([l("esri.views.2d.layers.support.RouteLayerWaypointVisualization")],L);export{L as RouteLayerWaypointVisualization};
@@ -0,0 +1,6 @@
1
+ import type ClassBreaksRenderer from "../../../renderers/ClassBreaksRenderer.js";
2
+ import type PieChartRenderer from "../../../renderers/PieChartRenderer.js";
3
+ import type SimpleRenderer from "../../../renderers/SimpleRenderer.js";
4
+ import type UniqueValueRenderer from "../../../renderers/UniqueValueRenderer.js";
5
+
6
+ export type ClusterableRenderer = SimpleRenderer | ClassBreaksRenderer | UniqueValueRenderer | PieChartRenderer;
@@ -150,4 +150,6 @@ export interface TessellatedMesh {
150
150
  * Each element is a {@link views/2d/layers/support/types!MeshVertex}.
151
151
  */
152
152
  vertices: MeshVertex[];
153
- }
153
+ }
154
+
155
+ export type ResizeAlign = "bottom" | "bottom-left" | "bottom-right" | "center" | "left" | "right" | "top" | "top-left" | "top-right";
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Types for the [DirectLineMeasurementAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-DirectLineMeasurementAnalysisView3D.html).
3
+ *
4
+ * @since 5.0
5
+ */
1
6
  import type { Length } from "../../../../core/quantity.js";
2
7
  import type { MeasurementMode } from "../../../analysis/types.js";
3
8
 
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Types for the [LineOfSightAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-LineOfSightAnalysisView3D.html).
3
+ *
4
+ * @since 5.0
5
+ */
1
6
 
2
7
  export interface LineOfSightPlacementResult {}
@@ -33,5 +33,5 @@ export default class VolumeMeasurementError<T = any> extends Error {
33
33
  * console.log("Error name: ", error.name);
34
34
  * });
35
35
  */
36
- name: VolumeMeasurementErrorName;
36
+ readonly name: VolumeMeasurementErrorName;
37
37
  }
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Types for the [VolumeMeasurementAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-VolumeMeasurementAnalysisView3D.html).
3
+ *
4
+ * @since 5.0
5
+ */
1
6
 
2
7
  export interface VolumeMeasurementPlacementResult {}
@@ -2,7 +2,7 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{earth as r}from"../../../geometry/support/Ellipsoid.js";import{Float2PassUniform as a}from"../webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3BindUniform as s}from"../webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as i}from"../webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as o}from"../webgl-engine/core/shaderModules/glsl.js";import{NoParameters as n}from"../../webgl/NoParameters.js";class c extends n{constructor(){super(...arguments),this.radii=e(),this.heightParameters=t()}}function h(e){e.code.add(o`float chapmanApproximation(float thickness, float height, float cosZenith) {
5
+ import{clamp as e}from"../../../core/mathUtils.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{F as r}from"../../../chunks/vec32.js";import{earth as s}from"../../../geometry/support/Ellipsoid.js";import{Float2PassUniform as a}from"../webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3BindUniform as o}from"../webgl-engine/core/shaderModules/Float3BindUniform.js";import{FloatsPassUniform as i}from"../webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as n}from"../webgl-engine/core/shaderModules/glsl.js";import{SphereIntersect as c}from"../webgl-engine/shaders/SphereIntersect.glsl.js";import{NoParameters as h}from"../../webgl/NoParameters.js";class l extends h{constructor(){super(...arguments),this.radii=t()}}function m(e){e.code.add(n`float chapmanApproximation(float thickness, float height, float cosZenith) {
6
6
  float c = sqrt(thickness + height);
7
7
  float cExpH = c * exp(-height);
8
8
  if (cosZenith >= 0.0) {
@@ -12,13 +12,12 @@ float x0 = sqrt(1.0 - cosZenith * cosZenith) * (thickness + height);
12
12
  float c0 = sqrt(x0);
13
13
  return 2.0 * c0 * exp(thickness - x0) - cExpH / (1.0 - c * cosZenith);
14
14
  }
15
- }`),e.constants.add("scaleHeight","float",r.scaleHeight*r.atmosphereHeight).uniforms.add(new a("radii",e=>e.radii)).code.add(o`float getOpticalDepth(vec3 position, vec3 dir, float h) {
15
+ }`),e.constants.add("scaleHeight","float",s.scaleHeight*s.atmosphereHeight).uniforms.add(new a("radii",e=>e.radii)).code.add(n`float getOpticalDepth(vec3 position, vec3 dir, float h) {
16
16
  return scaleHeight * chapmanApproximation(radii[0] / scaleHeight, h, dot(normalize(position), dir));
17
- }`),e.uniforms.add(new i("heightParameters",e=>e.heightParameters),new s("cameraPosition",e=>e.camera.eye)).code.add(o`vec4 planetIntersect(vec3 rayDir) {
18
- float reducedPlanetRadius = radii[0] - 20000.0;
19
- float rayPlanetDistance = heightParameters[1] - reducedPlanetRadius * reducedPlanetRadius;
20
- vec2 rayPlanetIntersect = sphereIntersect(cameraPosition, rayDir, rayPlanetDistance);
21
- vec2 rayAtmosphereIntersect = sphereIntersect(cameraPosition, rayDir, heightParameters[2]);
17
+ }`),e.include(c),e.constants.add("planetRadiusReduction","float",p).uniforms.add(new i("heightParameters",5,(e,t)=>d(t,e)),new o("cameraPosition",e=>e.camera.eye)).code.add(n`vec4 planetIntersect(vec3 rayDir) {
18
+ float rayPlanetDistanceReduced = heightParameters[4];
19
+ vec2 rayPlanetIntersect = sphereIntersect(cameraPosition, rayDir, rayPlanetDistanceReduced);
20
+ vec2 rayAtmosphereIntersect = sphereIntersect(cameraPosition, rayDir, heightParameters[1]);
22
21
  bool hitsAtmosphere = (rayAtmosphereIntersect.x <= rayAtmosphereIntersect.y) && rayAtmosphereIntersect.x > 0.0;
23
22
  bool insideAtmosphere = heightParameters[0] < radii[1];
24
23
  if (!hitsAtmosphere && !insideAtmosphere) {
@@ -26,12 +25,12 @@ return vec4(1.0, 0.0, 0.0, 0.0);
26
25
  }
27
26
  bool hitsPlanet = (rayPlanetIntersect.x <= rayPlanetIntersect.y) && rayPlanetIntersect.x > 0.0;
28
27
  float start = insideAtmosphere ? 0.0 : rayAtmosphereIntersect.x;
29
- if (heightParameters[0] < reducedPlanetRadius) {
30
- if (dot(rayDir, normalize(cameraPosition)) < -0.025) {
28
+ if (heightParameters[0] < radii[0] - planetRadiusReduction) {
29
+ if (dot(rayDir, normalize(cameraPosition)) < -0.01) {
31
30
  return vec4(1.0, 0.0, 0.0, 0.0);
32
31
  }
33
32
  start = rayPlanetIntersect.y;
34
33
  }
35
34
  float end = hitsPlanet ? rayPlanetIntersect.x : rayAtmosphereIntersect.y;
36
35
  return vec4(0.0, hitsPlanet ? 1.0 : 0.0, start, end);
37
- }`)}export{h as ChapmanApproximation,c as ChapmanApproximationParameters};
36
+ }`)}function d({camera:t},{radii:a}){const o=r(t.eye),i=Math.sqrt(o);return f[0]=i,f[1]=o-a[1]**2,f[2]=e((o-a[0])/s.atmosphereHeight,0,1),f[3]=o-a[0]**2,f[4]=o-(a[0]-p)**2,f}const p=2e4,f=new Array;export{m as ChapmanApproximation,l as ChapmanApproximationPassParameters,d as getHeightParameters};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"./ChapmanRaymarching.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float3BindUniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float4PassUniform.js";import"../webgl-engine/core/shaderModules/FloatPassUniform.js";import"../webgl-engine/core/shaderModules/glsl.js";import"../webgl-engine/core/shaderModules/Texture2DBindUniform.js";import"../webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import"../webgl-engine/shaders/SphereIntersect.glsl.js";import"../webgl-engine/shaders/ToneMapping.glsl.js";import"../../webgl/ShaderBuilder.js";export{b as build}from"../../../chunks/ChapmanAtmosphere.glsl.js";
5
+ import"./ChapmanApproximation.glsl.js";import"./ChapmanRaymarching.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float3BindUniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float4PassUniform.js";import"../webgl-engine/core/shaderModules/FloatPassUniform.js";import"../webgl-engine/core/shaderModules/FloatsPassUniform.js";import"../webgl-engine/core/shaderModules/glsl.js";import"../webgl-engine/core/shaderModules/Texture2DBindUniform.js";import"../webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import"../webgl-engine/shaders/SphereIntersect.glsl.js";import"../webgl-engine/shaders/ToneMapping.glsl.js";import"../../webgl/ShaderBuilder.js";export{b as build}from"../../../chunks/ChapmanAtmosphere.glsl.js";
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{clamp as t,lerp as r}from"../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../core/maybe.js";import{watch as i,syncAndInitial as a}from"../../../core/reactiveUtils.js";import{subclass as o}from"../../../core/accessorSupport/decorators.js";import{set as n}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{h,b as m,F as c}from"../../../chunks/vec32.js";import{c as p}from"../../../chunks/vec42.js";import{ZEROS as d}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{earth as u}from"../../../geometry/support/Ellipsoid.js";import{InternalRenderCategory as f}from"../webgl.js";import{innerAtmosphereDepth as l,computeInnerAltitudeFade as g}from"./atmosphereUtils.js";import{ChapmanAtmospherePassParameters as b,ChapmanAtmosphereTechnique as _}from"./ChapmanAtmosphereTechnique.js";import{ChapmanAtmosphereTechniqueConfiguration as P}from"./ChapmanAtmosphereTechniqueConfiguration.js";import{OpaqueEnvironment as w}from"../webgl-engine/effects/OpaqueEnvironment.js";import{createQuadVAO as j}from"../webgl-engine/lib/glUtil3D.js";import{applyTextureResizeModulo as v}from"../webgl-engine/lib/textureUtils.js";import{A as q}from"../../../chunks/AtmosphereCompositing.glsl.js";import{AtmosphereCompositingTechnique as A}from"../webgl-engine/shaders/AtmosphereCompositingTechnique.js";import{DepthStencilAttachment as T,PrimitiveType as x}from"../../webgl/enums.js";import C from"../../../webscene/background/ColorBackground.js";let R=class extends w{constructor(){super(...arguments),this.requireGeometryDepth=!0,this._compositingPassParameters=new q,this._vao=null,this._passParameters=new b,this._configuration=new P}initialize(){this.techniques.precompile(_,this._configuration),this.techniques.precompile(A),this._configuration.reduced=!0,this.techniques.precompile(_,this._configuration),this._configuration.reduced=!1,this.addHandles([i(()=>this.view.environment.background,e=>{const t=e instanceof C?e.color.toUnitRGBA():d;h(this._passParameters.backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3])},a),i(()=>this.view.stage?.renderer?.highResolutionAtmosphere,e=>this._configuration.reduced=!e,a),i(()=>this.view.environment.atmosphereEnabled,e=>e?this._enable():this._disable(),a)])}destroy(){this._vao=s(this._vao)}render(e){const t=e.find(({name:e})=>e===f.OPAQUE_ENVIRONMENT);if(!this.bindParameters.mainDepth)return t;const s=this.renderingContext;this._vao??=j(s,1);const i=t.getAttachment(T);this._update();const a=this.techniques.get(_,this._configuration);if(!a.compiled)return this.requestRender(1),t;if(!this._configuration.reduced)return t.detachDepth(),s.bindFramebuffer(t.fbo),s.bindTechnique(a,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(x.TRIANGLE_STRIP,0,4),t.attachDepth(i),t;const o=this.techniques.get(A);if(!o.compiled)return this.requestRender(1),t;const n=s.getViewport(),h=this.bindParameters.camera,c=m(h.eye)-u.radius;let p;const d=u.atmosphereHeight;if(c<d){const e=Math.min(1,Math.max(0,c/d));p=r(.2,.3,e)}else{const e=Math.min(1,Math.max(0,(c-d)/(15*d)));p=r(.3,.6,e)}const l=this.renderingContext.parameters.maxTextureSize,g=v(Math.round(p*h.fullViewport[2]),l),b=v(Math.round(p*h.fullViewport[3]),l);s.setViewport(0,0,g,b);const P=this.fboCache.acquire(g,b,"chapman",5);return s.bindFramebuffer(P.fbo),s.clearFramebuffer([0,0,0,1],!0,!0),s.bindTechnique(a,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(x.TRIANGLE_STRIP,0,4),s.setViewport(n.x,n.y,n.width,n.height),this._compositingPassParameters.color=P.getTexture(),t.detachDepth(),s.bindFramebuffer(t.fbo),s.bindTechnique(o,this.bindParameters,this._compositingPassParameters),s.screen.draw(),t.attachDepth(i),P.release(),t}_update(){const e=this.bindParameters.camera,r=c(e.eye),s=Math.sqrt(r),i=r-this._passParameters.radii[1]**2,a=t((s-this._passParameters.radii[0])/u.atmosphereHeight,0,1);p(this._passParameters.heightParameters,s,r,i,a);const o=this.view.basemapTerrain?.getLowerBoundRadius()??0;n(this._passParameters.radii,o,o+u.atmosphereHeight),this._passParameters.innerFadeDistance=2*Math.sqrt((2*o-l)*l),this._passParameters.altitudeFade=g(s-o)}};R=e([o("esri.views.3d.environment.ChapmanAtmosphere")],R);export{R as ChapmanAtmosphere};
5
+ import{__decorate as e}from"tslib";import{lerp as t}from"../../../core/mathUtils.js";import{disposeMaybe as r}from"../../../core/maybe.js";import{watch as s,syncAndInitial as i,initial as o}from"../../../core/reactiveUtils.js";import{subclass as a}from"../../../core/accessorSupport/decorators.js";import{set as n}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{h as m,b as h}from"../../../chunks/vec32.js";import{ZEROS as c}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{earth as p}from"../../../geometry/support/Ellipsoid.js";import{InternalRenderCategory as d}from"../webgl.js";import{computeInnerAltitudeFade as u,innerAtmosphereDepth as l}from"./atmosphereUtils.js";import{ChapmanAtmospherePassParameters as f,ChapmanAtmosphereTechnique as g}from"./ChapmanAtmosphereTechnique.js";import{ChapmanAtmosphereTechniqueConfiguration as b}from"./ChapmanAtmosphereTechniqueConfiguration.js";import{OpaqueEnvironment as _}from"../webgl-engine/effects/OpaqueEnvironment.js";import{createQuadVAO as w}from"../webgl-engine/lib/glUtil3D.js";import{applyTextureResizeModulo as P}from"../webgl-engine/lib/textureUtils.js";import{A as v}from"../../../chunks/AtmosphereCompositing.glsl.js";import{AtmosphereCompositingTechnique as j}from"../webgl-engine/shaders/AtmosphereCompositingTechnique.js";import{DepthStencilAttachment as q,PrimitiveType as A}from"../../webgl/enums.js";import T from"../../../webscene/background/ColorBackground.js";let x=class extends _{constructor(){super(...arguments),this.requireGeometryDepth=!0,this._compositingPassParameters=new v,this._vao=null,this._passParameters=new f,this._configuration=new b}initialize(){this.addHandles([s(()=>this.view.environment.background,e=>{const t=e instanceof T?e.color.toUnitRGBA():c;m(this._passParameters.backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3])},i),s(()=>this.view.stage?.renderer?.highResolutionAtmosphere,e=>this._configuration.reduced=!e,i),s(()=>this.view.map.ground.undergroundColor,e=>{this._passParameters.undergroundColor=e?.toUnitRGBA()??c,this.requestRender(1)},o),s(()=>this.view.environment.atmosphereEnabled,e=>e?this._enable():this._disable(),i)])}destroy(){this._vao=r(this._vao)}precompile(){this.techniques.precompile(g,this._configuration),this.techniques.precompile(j)}render(e){const r=e.find(({name:e})=>e===d.OPAQUE_ENVIRONMENT);if(!this.bindParameters.mainDepth)return r;const s=this.renderingContext;this._vao??=w(s,1);const i=r.getAttachment(q);this._update();const o=this.techniques.get(g,this._configuration);if(!o.compiled)return this.requestRender(1),r;if(!this._configuration.reduced)return r.detachDepth(),s.bindFramebuffer(r.fbo),s.bindTechnique(o,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(A.TRIANGLE_STRIP,0,4),r.attachDepth(i),r;const a=this.techniques.get(j);if(!a.compiled)return this.requestRender(1),r;const n=s.getViewport(),m=this.bindParameters.camera,c=h(m.eye)-p.radius;let u;const l=p.atmosphereHeight;if(c<l){const e=Math.min(1,Math.max(0,c/l));u=t(.2,.3,e)}else{const e=Math.min(1,Math.max(0,(c-l)/(15*l)));u=t(.3,.6,e)}const f=this.renderingContext.parameters.maxTextureSize,b=P(Math.round(u*m.fullViewport[2]),f),_=P(Math.round(u*m.fullViewport[3]),f);s.setViewport(0,0,b,_);const v=this.fboCache.acquire(b,_,"chapman",5);return s.bindFramebuffer(v.fbo),s.clearFramebuffer([0,0,0,1],!0,!0),s.bindTechnique(o,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(A.TRIANGLE_STRIP,0,4),s.setViewport(n.x,n.y,n.width,n.height),this._compositingPassParameters.color=v.getTexture(),r.detachDepth(),s.bindFramebuffer(r.fbo),s.bindTechnique(a,this.bindParameters,this._compositingPassParameters),s.screen.draw(),r.attachDepth(i),v.release(),r}_update(){const e=this.view.basemapTerrain?.getLowerBoundRadius()??0;n(this._passParameters.radii,e,e+p.atmosphereHeight);const t=h(this.bindParameters.camera.eye);this._passParameters.altitudeFade=u(t-e),this._passParameters.innerFadeDistance=2*Math.sqrt((2*e-l)*l)}};x=e([a("esri.views.3d.environment.ChapmanAtmosphere")],x);export{x as ChapmanAtmosphere};