@arcgis/core 6.0.0-next.13 → 6.0.0-next.15
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.
- package/arcade/containerUtils.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/portal.js +1 -1
- package/arcade/functions/string.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{5566f14afb63065e438f.js → 0050916e462e3c9e0627.js} +1 -1
- package/assets/esri/core/workers/chunks/02c5d027bdaee67869cf.js +1 -0
- package/assets/esri/core/workers/chunks/08fe248e412bb170210d.js +1 -0
- package/assets/esri/core/workers/chunks/0da6abe3ceabfe78f7a0.js +1 -0
- package/assets/esri/core/workers/chunks/0f617980c7dd9ad0444f.js +1 -0
- package/assets/esri/core/workers/chunks/{fb444954be74c1962ced.js → 10d80e793019dfb45ca2.js} +1 -1
- package/assets/esri/core/workers/chunks/{10445313d0d57b34511b.js → 2145a512d269d64036b0.js} +1 -1
- package/assets/esri/core/workers/chunks/21ddb26526bcb2b122c3.js +1 -0
- package/assets/esri/core/workers/chunks/25f19fc929f25ddd628c.js +1 -0
- package/assets/esri/core/workers/chunks/28b74bc77f7c13080074.js +1 -0
- package/assets/esri/core/workers/chunks/{2ef5237e4c876d6a4ee0.js → 2bd4ee083ca4ad221f8b.js} +1 -1
- package/assets/esri/core/workers/chunks/{f4f9d08b2df856e3b694.js → 2eae542fe7f0f6576ac1.js} +1 -1
- package/assets/esri/core/workers/chunks/{2aeb5cc32284dd3e4d22.js → 33e4ff228a8c81b99022.js} +1 -1
- package/assets/esri/core/workers/chunks/{42323093827adffe56d3.js → 3418877328f4f0830300.js} +1 -1
- package/assets/esri/core/workers/chunks/{8dc1c3042267618fd710.js → 34cbaf844730ac2d92c2.js} +2 -2
- package/assets/esri/core/workers/chunks/{96c50a0dda0f1503ef92.js → 3c301a689c7853c9fa67.js} +2 -2
- package/assets/esri/core/workers/chunks/{02253bdffbd580af22d8.js → 3ff6d1ed3c0f1285f3e7.js} +1 -1
- package/assets/esri/core/workers/chunks/{67e4b5651fd7ff7d8cf0.js → 4ac1d3e49e242e373a92.js} +1 -1
- package/assets/esri/core/workers/chunks/4df6cb1bee5d0720a43e.js +1 -0
- package/assets/esri/core/workers/chunks/{a4cab24af69260438ff4.js → 4e6f40cbdb8c508e6df1.js} +1 -1
- package/assets/esri/core/workers/chunks/5736feefa261589b6273.js +1 -0
- package/assets/esri/core/workers/chunks/601e1d020b8115497944.js +1 -0
- package/assets/esri/core/workers/chunks/{2686fe5b62dd0be699c0.js → 634523cc7757da9020e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{a518ae5683367eeda74c.js → 70d3055f15d8b0cf4074.js} +1 -1
- package/assets/esri/core/workers/chunks/{1b946714ca4a1a7359d4.js → 76ab353d80d786777161.js} +2 -2
- package/assets/esri/core/workers/chunks/7f8e327acad48c9e75ea.js +1 -0
- package/assets/esri/core/workers/chunks/8052da8be251c3ff2176.js +1 -0
- package/assets/esri/core/workers/chunks/8e19629899a5becf8e19.js +1 -0
- package/assets/esri/core/workers/chunks/{f6e62d2d279a328cbed7.js → 90bdf86f553e2742d67c.js} +1 -1
- package/assets/esri/core/workers/chunks/91ebb2ccab1889eb7e81.js +1 -0
- package/assets/esri/core/workers/chunks/94e427040edb469d58ad.js +1 -0
- package/assets/esri/core/workers/chunks/{3d9d7d3a40b51eb7ee3d.js → 953ba13299e7aa92c1a0.js} +1 -1
- package/assets/esri/core/workers/chunks/{f46d9a19f79d4a4bd354.js → 9e1a3b6a08c96dcefdde.js} +1 -1
- package/assets/esri/core/workers/chunks/9f0a973a0dd28953ce25.js +1 -0
- package/assets/esri/core/workers/chunks/a2ad3e620c98e2b2eb06.js +1 -0
- package/assets/esri/core/workers/chunks/a34b3d2e11a777e1ff3f.js +1 -0
- package/assets/esri/core/workers/chunks/{140f2eeb11e39ab15734.js → aa36c3a9bbaa086e3757.js} +1 -1
- package/assets/esri/core/workers/chunks/ae31fd416bbb41a81392.js +1 -0
- package/assets/esri/core/workers/chunks/b49df4ebd4be1181b0f9.js +2 -0
- package/assets/esri/core/workers/chunks/{68d8ae42ab71d01a70a5.js → b557824bc1fa163d72a3.js} +2 -2
- package/assets/esri/core/workers/chunks/bc915fb182d463d804e6.js +1 -0
- package/assets/esri/core/workers/chunks/{992f102992c2bed7b34e.js → d5d0fe8e198ff5a902ee.js} +1 -1
- package/assets/esri/core/workers/chunks/e2190361247f35b02b32.js +1 -0
- package/assets/esri/core/workers/chunks/e2f42aec02bff33b25dd.js +1 -0
- package/assets/esri/core/workers/chunks/ebc1a2ef3aed8aa29424.js +1 -0
- package/assets/esri/core/workers/chunks/ed6e9d7f71bfd2691717.js +1 -0
- package/assets/esri/core/workers/chunks/ed8786fed345718ed684.js +1 -0
- package/assets/esri/core/workers/chunks/ee6679ef9efa1504e7eb.js +1 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/libs/pdfjs/wasm/openjpeg_nowasm_fallback.js +1 -0
- package/chunks/BlendWeights.glsl.js +10 -10
- package/chunks/Blur.glsl.js +2 -2
- package/chunks/EdgeDetect.glsl.js +24 -19
- package/chunks/HUDMaterial.glsl.js +11 -1
- package/chunks/HighlightApply.glsl.js +4 -5
- package/chunks/HighlightBlur.glsl.js +5 -5
- package/chunks/HighlightDownsample.glsl.js +2 -2
- package/chunks/HighlightSharpApply.glsl.js +61 -0
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +2 -2
- package/chunks/portal.js +1 -1
- package/config.js +1 -1
- package/core/ObjectPool.js +1 -1
- package/core/PooledArray.js +1 -1
- package/core/accessorSupport/tracking/SimpleTrackingTarget.js +1 -1
- package/geometry/support/buffer/BufferPool.js +1 -1
- package/geometry/support/coordsUtils.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/curves/mathUtils.js +1 -1
- package/geometry/support/meshUtils.d.ts +5 -6
- package/interfaces.d.ts +18 -9
- package/kernel.js +1 -1
- package/layers/GeospatialPDFLayer.d.ts +154 -4
- package/layers/Layer.d.ts +2 -0
- package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
- package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
- package/layers/geospatialPDF/projectionToWKTUtils.js +2 -2
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/raster/datasets/TIFFRaster.js +1 -1
- package/layers/raster/datasets/pixelReader.js +1 -1
- package/layers/raster/functions/clipUtils.js +1 -1
- package/layers/support/LabelClass.d.ts +3 -2
- package/layers/support/PortalItemData.d.ts +31 -8
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/types.d.ts +4 -1
- package/package.json +2 -2
- package/portal/schemas/definitions.js +1 -1
- package/rest/knowledgeGraph/ObjectValue.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightPlacementController.js +1 -1
- package/views/3d/analysis/LineOfSight/{LineOfSightRootPlugin.js → LineOfSightPlacementRootPlugin.js} +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
- package/views/3d/interactive/editingTools/ManipulatedObject3DGraphic.js +1 -1
- package/views/3d/support/MemoryController.js +1 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +20 -6
- package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/effects/geometry/RenderOccluded.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightCellGridScreenSpacePassParameters.js +2 -0
- package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightSharpApply.glsl.js +2 -0
- package/views/3d/webgl-engine/effects/highlight/HighlightSharpApplyTechnique.js +2 -0
- package/views/3d/webgl-engine/effects/smaa/BlendWeights.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/Blur.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/EdgeDetect.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAAPassParameters.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAATechniqueConfiguration.js +2 -0
- package/views/3d/webgl-engine/lib/Compositor.js +1 -1
- package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathCapBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
- package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
- package/views/3d/webgl-engine/lib/PathProfile.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/plugins/MultipointPlugin.js +1 -1
- package/views/draw/support/PluginContext.js +1 -1
- package/views/draw/support/managers/TooltipManager.js +1 -1
- package/views/draw/support/types.d.ts +5 -2
- package/views/support/HighlightDefaults.js +1 -1
- package/webdoc/applicationProperties/SearchLayerField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchLayerField.js +1 -1
- package/webdoc/applicationProperties/SearchTableField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchTableField.js +1 -1
- package/webdoc/applicationProperties/searchMode.js +2 -0
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +10 -1
- package/widgets/Editor.d.ts +10 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/HistogramRangeSlider.d.ts +2 -2
- package/widgets/HistogramRangeSlider.js +1 -1
- package/widgets/Legend.d.ts +1 -0
- package/widgets/OrientedImageryViewer/services/DepthImageService.js +1 -1
- package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.d.ts +5 -2
- package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/Search/LayerSearchSource.d.ts +23 -1
- package/widgets/Search/LayerSearchSource.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/types.d.ts +7 -0
- package/widgets/ValuePicker/ValuePickerBaseComponent.d.ts +5 -1
- package/widgets/ValuePicker/ValuePickerCollection.d.ts +2 -0
- package/widgets/ValuePicker/ValuePickerCombobox.d.ts +7 -1
- package/widgets/ValuePicker/ValuePickerLabel.d.ts +7 -1
- package/widgets/ValuePicker/ValuePickerSlider.d.ts +2 -0
- package/widgets/ValuePicker/ValuePickerSliderVisibleElements.d.ts +5 -1
- package/widgets/ValuePicker/ValuePickerVisibleElements.d.ts +5 -1
- package/widgets/ValuePicker/types.d.ts +2 -0
- package/widgets/support/forms/formUtils.js +1 -1
- package/widgets/support/forms/types.d.ts +1 -1
- package/assets/esri/core/workers/chunks/037a8cc19debbaaa4e10.js +0 -1
- package/assets/esri/core/workers/chunks/0dc66b03ff55d0ea5a09.js +0 -1
- package/assets/esri/core/workers/chunks/175c268e64ccd01f8c25.js +0 -1
- package/assets/esri/core/workers/chunks/1c65ab9ed611c322ce27.js +0 -1
- package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +0 -2
- package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +0 -1
- package/assets/esri/core/workers/chunks/3f7d583b676b23b3fadb.js +0 -1
- package/assets/esri/core/workers/chunks/408e81c8f1eff8a7b379.js +0 -1
- package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +0 -1
- package/assets/esri/core/workers/chunks/4a640548032355e57acd.js +0 -1
- package/assets/esri/core/workers/chunks/53be85d04cd2da4f391d.js +0 -1
- package/assets/esri/core/workers/chunks/566e129f3d3805d7370a.js +0 -1
- package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +0 -1
- package/assets/esri/core/workers/chunks/5982c6a8459c1237b298.js +0 -1
- package/assets/esri/core/workers/chunks/5eae5c29149f2429fe96.js +0 -1
- package/assets/esri/core/workers/chunks/6dc86e7496157c5e4d2c.js +0 -1
- package/assets/esri/core/workers/chunks/74b5c00f93cfc0d59029.js +0 -1
- package/assets/esri/core/workers/chunks/7c2c8f786a30267a5f05.js +0 -1
- package/assets/esri/core/workers/chunks/88e54449261ef94e390d.js +0 -1
- package/assets/esri/core/workers/chunks/9e142551163acf752618.js +0 -1
- package/assets/esri/core/workers/chunks/af75747b06d79446a855.js +0 -1
- package/assets/esri/core/workers/chunks/dba280c370df13196711.js +0 -1
- package/assets/esri/core/workers/chunks/dc486a3595b6d57018bb.js +0 -1
- package/assets/esri/core/workers/chunks/e3c1c9e6c62ba5cbcdb8.js +0 -1
- package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +0 -1
- package/assets/esri/core/workers/chunks/f47c7065da3b5001245f.js +0 -1
- /package/assets/esri/core/workers/chunks/{1b946714ca4a1a7359d4.js.LICENSE.txt → 34cbaf844730ac2d92c2.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{96c50a0dda0f1503ef92.js.LICENSE.txt → 3c301a689c7853c9fa67.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{8dc1c3042267618fd710.js.LICENSE.txt → 76ab353d80d786777161.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{2a1ec30f9ad305763f81.js.LICENSE.txt → b49df4ebd4be1181b0f9.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{68d8ae42ab71d01a70a5.js.LICENSE.txt → b557824bc1fa163d72a3.js.LICENSE.txt} +0 -0
- /package/views/3d/analysis/LineOfSight/{lineOfSightPlacementUtils.js → placementUtils.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6304,7085],{71409(e,t,i){const r=new Map([[1025,109452],[1033,109451],[9001,109404],[9002,109405],[9003,109406],[9005,109407],[9014,109408],[9030,109409],[9031,109410],[9033,109411],[9034,109412],[9035,109413],[9036,109414],[9037,109415],[9038,109416],[9039,109417],[9040,109418],[9041,109419],[9042,109420],[9043,109421],[9050,109422],[9051,109423],[9052,109424],[9053,109425],[9060,109426],[9061,109427],[9062,109428],[9063,109429],[9070,109430],[9080,109431],[9081,109432],[9082,109433],[9083,109434],[9084,109435],[9085,109436],[9086,109437],[9087,109438],[9093,109439],[9094,109440],[9095,109441],[9096,109442],[9097,109444],[9098,109445],[9099,109446],[9300,109447],[9301,109448],[9302,109449],[109001,109442],[109002,109443],[109003,109444],[109004,109445],[109005,109450],[109006,109451],[109007,109452],[109008,109453],[109009,109454],[109010,109455],[109011,109456],[109012,109457],[109013,109458],[109014,109459],[109015,109462],[109016,109464],[109017,109465],[109018,109466],[109030,109460],[109031,109461]]);function s(e){return(t,i)=>[t,{type:e,wkid:t,factor:i}]}const n=s("angular"),a=new Map([n(1031,4.84813681109536e-9),n(9101,1),n(9102,.017453292519943295),n(9103,.0002908882086657216),n(9104,484813681109536e-20),n(9105,.015707963267948967),n(9106,.015707963267948967),n(9109,1e-6),n(9112,.00015707963267948965),n(9113,15707963267948967e-22),n(9114,.0009817477042468104)]),o=s("linear"),l=new Map([o(1025,.001),o(1033,.01),o(9001,1),o(9002,.3048),o(9003,.30480060960121924),o(9005,.3047972654),o(9014,1.8288),o(9030,1852),o(9031,1.0000135965),o(9033,20.11684023368047),o(9034,.2011684023368047),o(9035,1609.3472186944375),o(9036,1e3),o(9037,.9143917962),o(9038,20.1166195164),o(9039,.201166195164),o(9040,.9143984146160287),o(9041,.3047994715386762),o(9042,20.116765121552632),o(9043,.2011676512155263),o(9050,.9143992),o(9051,.3047997333333333),o(9052,20.1167824),o(9053,.201167824),o(9060,.9143992042898124),o(9061,.30479973476327077),o(9062,20.116782494375872),o(9063,.2011678249437587),o(9070,.30480083333333335),o(9080,.30479951024814694),o(9081,.30479841),o(9082,.3047996),o(9083,.3047995),o(9084,.9143985307444408),o(9085,.91439523),o(9086,.9143988),o(9087,.9143985),o(9093,1609.344),o(9094,.3047997101815088),o(9095,.3048007491),o(9096,.9144),o(9097,20.1168),o(9098,.201168),o(9099,.914398),o(9300,.30479933333333337),o(9301,20.116756),o(9302,.20116756),o(109001,.9144),o(109002,.9144018288036576),o(109003,20.1168),o(109004,.201168),o(109005,.1),o(109006,.01),o(109007,.001),o(109008,.0254),o(109009,.025400050800101603),o(109010,5.0292),o(109011,5.029210058420118),o(109012,1853.248),o(109013,1853.184),o(109014,1.7018),o(109015,.8466683600033867),o(109016,.00035277777777777776),o(109017,1e-6),o(109018,1e-9),o(109030,5e4),o(109031,15e4)]),u=l.get(9001),h=s("area"),c=new Map([h(109401,1e4),h(109402,4046.8564224),h(109403,4046.872609874252),h(109404,1),h(109405,.09290304),h(109406,.09290341161327487),h(109407,.09290137299531805),h(109408,3.34450944),h(109409,3429904),h(109410,1.000027193184865),h(109411,404.6872609874253),h(109412,.04046872609874252),h(109413,2589998.470319522),h(109414,1e6),h(109415,.8361123569578626),h(109416,404.6783807676053),h(109417,.04046783807676053),h(109418,.8361244606523066),h(109419,.09290271785025629),h(109420,404.6842389557165),h(109421,.04046842389557164),h(109422,.83612589696064),h(109423,.0929028774400711),h(109424,404.6849341289498),h(109425,.04046849341289498),h(109426,.836125904805842),h(109427,.09290287831176021),h(109428,404.6849379260275),h(109429,.04046849379260275),h(109430,.09290354800069446),h(109431,.09290274144751023),h(109432,.09290207073852812),h(109433,.09290279616016),h(109434,.09290273520025),h(109435,.836124673027592),h(109436,.8361186366467529),h(109437,.8361251654414399),h(109438,.83612461680225),h(109439,2589988.110336),h(109440,.09290286332673177),h(109441,.09290349665192114),h(109442,.83612736),h(109443,.8361307045194736),h(109444,404.68564224),h(109445,.040468564224),h(109446,.836123702404),h(109447,.09290263360044447),h(109448,404.683871963536),h(109449,.0404683871963536),h(109450,.01),h(109451,1e-4),h(109452,1e-6),h(109453,64516e-8),h(109454,.0006451625806477421),h(109455,25.29285264),h(109456,25.29295381171408),h(109457,3434528.149504),h(109458,3434290.937856),h(109459,2.89612324),h(109460,25e8),h(109461,225e8),h(109462,.7168473118308245),h(109463,100),h(109464,1.244521604938271e-7),h(109465,1e-12),h(109466,1e-18)]),d=c.get(109404);i.d(t,["A7",0,d,"L2",0,u,"SQ",0,r,"s9",0,l,"y6",0,c,"zD",0,a])},88020(e,t,i){i.d(t,{a:()=>h,convert:()=>_,convertFromSpatialReferenceUnit:()=>m,convertToSpatialReferenceUnit:()=>y,meters:()=>n.L2,squareMeters:()=>n.A7,toAreaUnit:()=>d,toLengthUnit:()=>p});var r=i(59534),s=i(85935),n=i(71409),a=i(86211),o=i(22530),l=i(31865);function u(e,t){let i;switch(e){case"linear":i=n.s9;break;case"angular":i=n.zD;break;case"area":i=n.y6;break;default:return null}return i.get(t)}function h(e){let t=e.wkid;if(null!=t){let e=o.A.units[o.A[t]];if(null!=e)switch(e){case"Meter":return u("linear",9001);case"Foot":return u("linear",9002);case"Foot_US":return u("linear",9003);case"Foot_Clarke":return u("linear",9005);case"Yard_Clarke":return u("linear",9037);case"Link_Clarke":return u("linear",9039);case"Yard_Sears":return u("linear",9040);case"Foot_Sears":return u("linear",9041);case"Chain_Sears":return u("linear",9042);case"Chain_Benoit_1895_B":return u("linear",9062);case"Yard_Indian":return u("linear",9084);case"Yard_Indian_1937":return u("linear",9085);case"Foot_Gold_Coast":return u("linear",9094);case"Chain":return u("linear",9097);case"Chain_Sears_1922_Truncated":return u("linear",9301);case"50_Kilometers":return u("linear",109030);case"150_Kilometers":return u("linear",109031);default:throw Error(`Unknown unit name: ${e}`)}return a.yD.has(t)?u("angular",9105):u("angular",9102)}let i=e.wkt2||e.wkt;if(null!=i){let e=(0,l.B)(i);if(null!=e){if(null!=e.wkid){let t=u(e.type,e.wkid);if(null!=t)return t}return{type:e.type,wkid:-1,factor:e.factor}}}return null}function c(e){if("linear"!==e.type)return null;if(-1===e.wkid)return{type:"area",wkid:-1,factor:e.factor**2};let t=n.SQ.get(e.wkid);return null==t?null:u("area",t)}function d(e){if(null!=e){if("number"==typeof e)return n.y6.get(e)??n.s9.get(e)??n.zD.get(e);if("string"!=typeof e)throw new s.D$("InvalidParameter",null);switch((0,r.B)(e)){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return n.y6.get(109404);case"miles":case"mile":case"squaremile":case"squaremiles":return n.y6.get(109439);case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return n.y6.get(109414);case"acres":case"acre":case"ac":return n.y6.get(109402);case"hectares":case"hectare":case"ha":return n.y6.get(109401);case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return n.y6.get(109442);case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return n.y6.get(109405);case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return n.y6.get(109409);case"millimeter":case"millimeters":case"squaremillimeter":case"squaremillimeters":return n.y6.get(109452);case"centimeter":case"centimeters":case"squarecentimeter":case"squarecentimeters":return n.y6.get(109451);case"decimeter":case"decimeters":case"squaredecimeter":case"squaredecimeters":return n.y6.get(109450);case"inch":case"inches":case"squareinch":case"squareinches":return n.y6.get(109453);case"usfoot":case"usfeet":case"squareusfoot":case"squareusfeet":return n.y6.get(109406);case"usmile":case"usmiles":case"squareusmile":case"squareusmiles":return n.y6.get(109413)}}}function p(e){if(null!=e){if("number"==typeof e)return n.s9.get(e)??n.zD.get(e)??n.y6.get(e);if("string"!=typeof e)throw new s.D$("InvalidParameter",null);switch((0,r.B)(e)){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":case"hectares":case"hectare":case"ha":return n.s9.get(9001);case"miles":case"mile":case"squaremile":case"squaremiles":return n.s9.get(9093);case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return n.s9.get(9036);case"yard":case"yd":case"yards":case"squareyards":case"squareyard":case"acres":case"acre":case"ac":return n.s9.get(9096);case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return n.s9.get(9002);case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return n.s9.get(9030);case"millimeter":case"millimeters":case"squaremillimeter":case"squaremillimeters":return n.s9.get(109007);case"centimeter":case"centimeters":case"squarecentimeter":case"squarecentimeters":return n.s9.get(109006);case"decimeter":case"decimeters":case"squaredecimeter":case"squaredecimeters":return n.s9.get(109005);case"inch":case"inches":case"squareinch":case"squareinches":return n.s9.get(109008);case"usfoot":case"usfeet":case"squareusfoot":case"squareusfeet":return n.s9.get(9003);case"usmile":case"usmiles":case"squareusmile":case"squareusmiles":return n.s9.get(9035)}}}function f(e,t,i){if(e.type!==t.type)throw Error(`Incompatible unit types. src=${e.type} dest=${t.type}`);return i*(e.factor/t.factor)}function m(e,t,i){if(null==e||null==t)return i;let r=h(e);if(null==r)throw Error("Unknown spatial reference unit.");let s="area"===t.type&&"linear"===r.type?c(r):r;if(null==s)throw Error(`Unknown spatial reference ${t.type} unit.`);return f(s,t,i)}function y(e,t,i){if(null==e||null==t)return i;let r=h(t);if(null==r)throw Error("Unknown spatial reference unit.");let s="area"===e.type&&"linear"===r.type?c(r):r;if(null==s)throw Error(`Unknown spatial reference ${e.type} unit.`);return f(e,s,i)}function _(e,t,i){return null==e||null==t?i:f(e,t,i)}},61691(e,t,i){i.d(t,{G:()=>r});class r{*[Symbol.iterator](){let e=this.next();for(;e;)yield e,e=this.next()}}},76061(e,t,i){i.d(t,{S:()=>s});var r=i(61691);class s extends r.G{m_aGeoms;m_iGeom=-1;constructor(e){super(),this.m_aGeoms=e?e.slice():[]}next(){if(this.m_iGeom<this.m_aGeoms.length-1){let e=this.m_aGeoms[++this.m_iGeom];return this.m_aGeoms[this.m_iGeom]=null,e}return null}tock(){return!1}getGeometryID(){return this.m_iGeom}getRank(){return 1}}},46140(e,t,i){i.d(t,{A:()=>s});var r=i(49186);class s{constructor(e,t,i=""){this.major=e,this.minor=t,this._context=i}lessThan(e,t){return this.major<e||e===this.major&&this.minor<t}greaterEqual(e,t){return!this.lessThan(e,t)}toString(){return`${this.major}.${this.minor}`}validate(e){if(this.major!==e.major){let t=this._context&&this._context+":",i=this._context&&this._context+" ";throw new r.A(t+"unsupported-version",`Required major ${i}version is '${this.major}', but got '\${version.major}.\${version.minor}'`,{version:e})}}clone(){return new s(this.major,this.minor,this._context)}static parse(e,t=""){let[i,n]=e.split("."),a=/^\s*\d+\s*$/;if(!i?.match||!a.test(i)){let i=t&&t+":";throw new r.A(i+"invalid-version","Expected major version to be a number, but got '${version}'",{version:e})}if(!n?.match||!a.test(n)){let i=t&&t+":";throw new r.A(i+"invalid-version","Expected minor version to be a number, but got '${version}'",{version:e})}return new s(parseInt(i,10),parseInt(n,10),t)}}},6797(e,t,i){i.d(t,{Ui:()=>d});var r=i(69622),s=i(7762),n=i(88620);const a=new Set(["esri.Color","esri.portal.Portal","esri.symbols.support.Symbol3DAnchorPosition2D","esri.symbols.support.Symbol3DAnchorPosition3D"]);function o(e){return e instanceof r.A}function l(e){return e instanceof s.A?Object.keys(e.items):o(e)?(0,n.oY)(e).keys():e?Object.keys(e):[]}function u(e,t){return e instanceof s.A?e.items[t]:e[t]}function h(e){return e?e.declaredClass:null}function c(e,t){let i=e.diff;if(i&&"function"==typeof i)return i(e,t);let r=l(e),s=l(t);if(0===r.length&&0===s.length)return;if(!r.length||!s.length||function(e,t){return!(!Array.isArray(e)||!Array.isArray(t))&&e.length!==t.length}(e,t))return{type:"complete",oldValue:e,newValue:t};let n=s.filter(e=>!r.includes(e)),d=r.filter(e=>!s.includes(e)),p=r.filter(i=>s.includes(i)&&u(e,i)!==u(t,i)).concat(n,d).sort(),f=h(e);if(f&&a.has(f)&&p.length)return{type:"complete",oldValue:e,newValue:t};let m,y=o(e)&&o(t);for(let r of p){let s,n=u(e,r),a=u(t,r);if((y||"function"!=typeof n&&"function"!=typeof a)&&n!==a&&(null!=n||null!=a)){if(i&&i[r]&&"function"==typeof i[r])s=i[r]?.(n,a);else if(n instanceof Date&&a instanceof Date){if(n.getTime()===a.getTime())continue;s={type:"complete",oldValue:n,newValue:a}}else s="object"==typeof n&&"object"==typeof a&&h(n)===h(a)?c(n,a):{type:"complete",oldValue:n,newValue:a};null!=s&&(null==m?m={type:"partial",diff:{[r]:s}}:m.diff[r]=s)}}return m}function d(e,t){if("function"!=typeof e&&"function"!=typeof t&&(null!=e||null!=t))return null==e||null==t||"object"==typeof e&&"object"==typeof t&&h(e)!==h(t)?{type:"complete",oldValue:e,newValue:t}:c(e,t)}},79897(e,t,i){i.d(t,{U:()=>h});var r=i(32198),s=i(69622),n=i(36563),a=i(36708),o=i(76030),l=i(10107),u=i(64108);let h=class extends s.A{constructor(){super(...arguments),this.updating=!1,this._handleId=0,this._scheduleHandleId=0,this._pendingPromises=new Set}destroy(){this.removeAll()}add(e,t,i={}){return this._installWatch(e,t,i,a.wB)}addWhen(e,t,i={}){return this._installWatch(e,t,i,a.z7)}addOnCollectionChange(e,t,{initial:i=!1,final:r=!1}={}){let s=++this._handleId;return this.addHandles([(0,a.on)(e,"after-changes",this._createSyncUpdatingCallback(),a.OH),(0,a.on)(e,"change",t,{onListenerAdd:i?e=>t({added:e.toArray(),removed:[]}):void 0,onListenerRemove:r?e=>t({added:[],removed:e.toArray()}):void 0})],s),(0,n.hA)(()=>this.removeHandles(s))}consumePromise(e){this.addPromise(e)?.catch(()=>{})}addPromise(e){if(null==e)return e;let t=++this._handleId;this.addHandles((0,n.hA)(()=>{this._pendingPromises.delete(e)&&0===this._pendingPromises.size&&!this.hasHandles(c)&&this._set("updating",!1)}),t),this._pendingPromises.add(e),this._set("updating",!0);let i=()=>this.removeHandles(t);return e.then(i,i),e}removeAll(){this._pendingPromises.clear(),this.removeAllHandles(),this._set("updating",!1)}_installWatch(e,t,i={},r){let s=++this._handleId;i.sync||this._installSyncUpdatingWatch(e,s);let a=r(e,t,i);return this.addHandles(a,s),(0,n.hA)(()=>this.removeHandles(s))}_installSyncUpdatingWatch(e,t){let i=this._createSyncUpdatingCallback(),r=(0,a.wB)(e,i,{sync:!0,equals:()=>!1});return this.addHandles(r,t),r}_createSyncUpdatingCallback(){return()=>{this.removeHandles(c),++this._scheduleHandleId;let e=this._scheduleHandleId;this._get("updating")||this._set("updating",!0),this.addHandles((0,o._)(()=>{e===this._scheduleHandleId&&(this._set("updating",this._pendingPromises.size>0),this.removeHandles(c))}),c)}}};(0,r.Cg)([(0,l.MZ)({readOnly:!0})],h.prototype,"updating",void 0),h=(0,r.Cg)([(0,u.$)("esri.core.support.UpdatingHandles")],h);const c=-42},77085(e,t,i){i.d(t,{execute:()=>a,load:()=>n}),i(76061);var r=i(83290);let s;async function n(){if(!s||!(0,r.i)()){let[e,t]=await Promise.all([Promise.all([i.e(9187),i.e(8885),i.e(9117),i.e(1088)]).then(()=>i(31088)),Promise.all([i.e(9187),i.e(8885),i.e(9117),i.e(5756)]).then(()=>i(15756)).then(({injectPe:e})=>e),(0,r.l)()]);s=new e.OperatorGeodeticDensifyByLength,t(r.p)}}function a(e,t,i,r){return s.execute(e,t,i,r,null)}},5808(e,t,i){i.d(t,["O",0,{geodesic:0,loxodrome:1,"great-elliptic":2,"normal-section":3,"shape-preserving":4}])},89056(e,t,i){i.d(t,{b3:()=>c,jZ:()=>h});var r=i(12195),s=i(19419),n=i(537),a=i(95108),o=i(60408),l=i(80754),u=i(21325);function h(e){return d(e,!0)}function c(e){return d(e,!1)}function d(e,t){if(null==e)return null;let i=e.spatialReference,s=(0,u.Vp)(i),a=(0,r.W)(e)?e.toJSON():e;if(!s)return a;let h=(0,u.K8)(i)?102100:4326,c=l.j7[h].maxX,d=l.j7[h].minX;if((0,o.fT)(a))return f(a,c,d);if((0,o.U9)(a))return a.points=a.points.map(e=>f(e,c,d)),a;if((0,o.ZC)(a))return p(a,s);if((0,o.Bi)(a)||(0,o.Rg)(a)){let e=(0,n.Rg)(b,a),i={xmin:e[0],ymin:e[1],xmax:e[2],ymax:e[3]},r=(0,l.kd)(i.xmin,d),s=2*c*r,o=0===s?a:(0,l.kS)(a,s);return i.xmin+=s,i.xmax+=s,i.xmax>c?g(o,c,t):i.xmin<d?g(o,d,t):o}return a}function p(e,t){if(!t)return e;let i=function(e,t){let i=[],{ymin:r,ymax:s,xmin:n,xmax:a}=e,o=e.xmax-e.xmin,[l,u]=t.valid,{x:h,frameId:c}=m(e.xmin,t),{x:d,frameId:p}=m(e.xmax,t),f=h===d&&o>0;if(o>2*u){let e={xmin:n<a?h:d,ymin:r,xmax:u,ymax:s},t={xmin:l,ymin:r,xmax:n<a?d:h,ymax:s},o={xmin:0,ymin:r,xmax:u,ymax:s},f={xmin:l,ymin:r,xmax:0,ymax:s},m=[],_=[];y(e,o)&&m.push(c),y(e,f)&&_.push(c),y(t,o)&&m.push(p),y(t,f)&&_.push(p);for(let e=c+1;e<p;e++)m.push(e),_.push(e);i.push(new x(e,[c]),new x(t,[p]),new x(o,m),new x(f,_))}else h>d||f?i.push(new x({xmin:h,ymin:r,xmax:u,ymax:s},[c]),new x({xmin:l,ymin:r,xmax:d,ymax:s},[p])):i.push(new x({xmin:h,ymin:r,xmax:d,ymax:s},[c]));return i}(e,t).map(e=>e.extent);return i.length<2?i[0]||e:i.length>2?(e.xmin=t.valid[0],e.xmax=t.valid[1],e):{rings:i.map(e=>[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]])}}function f(e,t,i){if(Array.isArray(e)){let r=e[0];if(r>t){let i=(0,l.kd)(r,t);e[0]=r+-2*t*i}else if(r<i){let t=(0,l.kd)(r,i);e[0]=r+-2*i*t}}else{let r=e.x;if(r>t){let i=(0,l.kd)(r,t);e.x+=-2*t*i}else if(r<i){let t=(0,l.kd)(r,i);e.x+=-2*i*t}}return e}function m(e,t){let i,[r,s]=t.valid,n=2*s,a=0;return e>s?(i=Math.ceil(Math.abs(e-s)/n),e-=i*n,a=i):e<r&&(i=Math.ceil(Math.abs(e-r)/n),e+=i*n,a=-i),{x:e,frameId:a}}function y(e,t){let{xmin:i,ymin:r,xmax:s,ymax:n}=t;return _(e,i,r)&&_(e,i,n)&&_(e,s,n)&&_(e,s,r)}function _(e,t,i){return t>=e.xmin&&t<=e.xmax&&i>=e.ymin&&i<=e.ymax}function g(e,t,i=!0){let r=!(0,o.Rg)(e);if(r&&(0,a.m3)(e),i)return(new w).cut(e,t);let s=r?e.rings:e.paths,n=r?4:2,l=s.length,u=-2*t;for(let e=0;e<l;e++){let t=s[e];if(t&&t.length>=n){let e=[];for(let[i,...r]of t)e.push([i+u,...r]);s.push(e)}}return r?e.rings=s:e.paths=s,e}class x{constructor(e,t){this.extent=e,this.frameIds=t}}const b=(0,s.vt)();class w{constructor(){this._linesIn=[],this._linesOut=[]}cut(e,t){let i;if(this._xCut=t,e.rings)this._closed=!0,i=e.rings,this._minPts=4;else{if(!e.paths)return null;this._closed=!1,i=e.paths,this._minPts=2}for(let e of i){if(!e||e.length<this._minPts)continue;let t=!0;for(let i of e)t?(this.moveTo(i),t=!1):this.lineTo(i);this._closed&&this.close()}this._pushLineIn(),this._pushLineOut(),i=[];for(let e of this._linesIn)e&&e.length>=this._minPts&&i.push(e);let r=-2*this._xCut;for(let e of this._linesOut)if(e&&e.length>=this._minPts){for(let t of e)t[0]+=r;i.push(e)}return this._closed?e.rings=i:e.paths=i,e}moveTo(e){this._pushLineIn(),this._pushLineOut(),this._prevSide=this._side(e[0]),this._moveTo(e,this._prevSide),this._prevPt=e,this._firstPt=e}lineTo(e){let t=this._side(e[0]);if(t*this._prevSide===-1){let i=this._intersect(this._prevPt,e);this._lineTo(i,0),this._prevSide=0,this._lineTo(e,t)}else this._lineTo(e,t);this._prevSide=t,this._prevPt=e}close(){let e=this._firstPt,t=this._prevPt;(e[0]!==t[0]||e[1]!==t[1])&&this.lineTo(e),this._checkClosingPt(this._lineIn),this._checkClosingPt(this._lineOut)}_moveTo(e,t){this._closed?(this._lineIn.push(v(e,t<=0?e[0]:this._xCut)),this._lineOut.push(v(e,t>=0?e[0]:this._xCut))):(t<=0&&this._lineIn.push(e.slice()),t>=0&&this._lineOut.push(e.slice()))}_lineTo(e,t){this._closed?(S(this._lineIn,e,t<=0?e[0]:this._xCut),S(this._lineOut,e,t>=0?e[0]:this._xCut)):t<0?(0===this._prevSide&&this._pushLineOut(),this._lineIn.push(e.slice())):t>0?(0===this._prevSide&&this._pushLineIn(),this._lineOut.push(e.slice())):this._prevSide<0?(this._lineIn.push(e.slice()),this._lineOut.push(e.slice())):this._prevSide>0&&(this._lineOut.push(e.slice()),this._lineIn.push(e.slice()))}_checkClosingPt(e){let t=e.length;t>3&&e[0][0]===this._xCut&&e[t-2][0]===this._xCut&&e[1][0]===this._xCut&&(e[0]=e[t-2].slice(),e.pop())}_side(e){return e<this._xCut?-1:+(e>this._xCut)}_intersect(e,t){let i=(this._xCut-e[0])/(t[0]-e[0]),r=[this._xCut,e[1]+i*(t[1]-e[1])],s=Math.min(e.length,t.length);for(let n=2;n<s;n++)r.push(e[n]+i*(t[n]-e[n]));return r}_pushLineIn(){this._lineIn&&this._lineIn.length>=this._minPts&&this._linesIn.push(this._lineIn),this._lineIn=[]}_pushLineOut(){this._lineOut&&this._lineOut.length>=this._minPts&&this._linesOut.push(this._lineOut),this._lineOut=[]}}function v(e,t){let i=e.slice();return i[0]=t,i}function S(e,t,i){let r=e.length;r>1&&e[r-1][0]===i&&e[r-2][0]===i?e[r-1]=v(t,i):e.push(v(t,i))}},37730(e,t,i){var r=i(43334);const s={getObjectId:e=>e.objectId,getAttributes:e=>e.attributes,getAttribute:(e,t)=>e.attributes[t],cloneWithGeometry:(e,t,i)=>new r.Om(t,e.attributes,null,e.objectId,e.displayId,e.distance,e.vertexCount),getGeometry:e=>e.geometry,getCentroid:(e,t)=>e.ensureCentroid(t)};i.d(t,["T",0,s])},60986(e,t,i){i.r(t),i.d(t,{createConnection:()=>A});var r=i(56507),s=i(49186),n=i(31464),a=i(9916),o=i(32198),l=i(65529),u=i(91429);let h=class extends l.nJ{destroy(){this.emit("destroy")}get connectionError(){return this.errorString?new s.A("stream-connection",this.errorString):null}onFeature(e){this.emit("data-received",e)}onMessage(e){this.emit("message-received",e)}};(0,o.Cg)([(0,u.MZ)({readOnly:!0})],h.prototype,"connectionError",null),h=(0,o.Cg)([(0,u.$K)("esri.layers.support.StreamConnection")],h);class c extends h{constructor(e,t){super(),this._config=e,this._outSpatialReference=t,this.connectionStatus="connected",this.errorString=null,this._isPolling=!1,this._lastIngestedAt=null,this._pollTimer=null,this._pollRecentData=async()=>{if(!this.destroyed&&!this._isPolling){this._isPolling=!0;try{let e=await this._queryChanges(this._lastIngestedAt);if(this.destroyed)return;this._handleResult(e)}catch(e){this.errorString=e instanceof Error?e.message:"Failed to fetch"}finally{this._isPolling=!1}}},this._initialize()}destroy(){super.destroy(),this._pollTimer&&=(clearInterval(this._pollTimer),null)}sendMessageToSocket(e){throw new s.A("kusto:unsupported","sendMessageToSocket not supported for Kusto connections")}sendMessageToClient(e){throw new s.A("kusto:unsupported","sendMessageToClient not supported for Kusto connections")}updateCustomParameters(e){throw new s.A("kusto:unsupported","updateCustomParameters not supported for Kusto connections")}async _initialize(){await(0,n.Nk)(this._config.sourceSpatialReference,this._outSpatialReference);try{let e=await this._queryInitial();this._handleResult(e),this._pollTimer=setInterval(this._pollRecentData,6e4*this._config.refreshInterval)}catch{throw new s.A("kusto:connection","Failed to query KQL database")}}async _queryInitial(){let{trackIdField:e}=this._config,t=d(await this._executeQuery(`${(0,a.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | summarize arg_max(IngestedAt, *) by ${(0,a.xw)(e)}`));if(!t)throw new s.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:p(t),table:t}}async _queryChanges(e=null){let t=e??"1970-01-01T00:00:00Z",i=d(await this._executeQuery(`${(0,a.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | where IngestedAt > todatetime('${(0,a.iD)(t)}') | order by IngestedAt asc`));if(!i)throw new s.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:p(i),table:i}}async _executeQuery(e){let t=this._config.database,i=t.properties.queryServiceUri,{data:s}=await(0,r.A)(`${i}/v2/rest/query`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:t.displayName,csl:e})});return s}_handleResult(e){this._lastIngestedAt=e.ingestedAt;let t=this._createFeatures(e.table);if(null!=t){this.onMessage(t);for(let e of t)this.onFeature(e)}}_createFeatures(e){if(null==e||0===e.Rows.length)return null;let{xField:t,yField:i}=this._config.geometryEncoding,r=e.Columns.findIndex(e=>e.ColumnName===t),s=e.Columns.findIndex(e=>e.ColumnName===i);return e.Rows.map(t=>this._createFeature(e.Columns,r,s,t))}_createFeature(e,t,i,r){let{xField:s,yField:a}=this._config.geometryEncoding,o={};for(let t=0;t<e.length;t++){let i=e[t],n=r[t]??null;i.ColumnName!==a&&i.ColumnName!==s&&(o[i.ColumnName]=n)}let l=null,u=r[t],h=r[i];return null!=h&&null!=u&&(l=(0,n.Cv)({x:u,y:h},this._config.sourceSpatialReference,this._outSpatialReference)),{attributes:o,geometry:l}}}function d(e){return e.find(e=>"DataTable"===e.FrameType&&"PrimaryResult"===e.TableKind)??null}function p(e){let t=e.Columns.findIndex(e=>"IngestedAt"===e.ColumnName);if(t<0)return null;let i=null;for(let r of e.Rows){let e=r[t];"string"==typeof e&&(null==i||e>i)&&(i=e)}return i}var f=i(53966),m=i(84952),y=i(16930),_=i(65864),g=i(17676),x=i(62815);function b(e,t){if(null==e&&null==t)return null;let i={};return null!=t&&(i.geometry=t),null!=e&&(i.where=e),i}let w=class extends h{constructor(e,t){super({}),this._outSpatialReference=t,this._outstandingMessages=[],this.errorString=null;let{geometryType:i,sourceSpatialReference:r}=e;this._config=e,this._featureZScaler=(0,x.N)(i,r,this._outSpatialReference),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case 0:case 1:return"connected";case 2:case 3:return"disconnected"}}sendMessageToSocket(e){null==this._websocket?this._outstandingMessages.push(e):this._websocket.send(JSON.stringify(e))}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.url.path,t=1e3,i=0){try{if(this.destroyed)return;let t=(0,m.a6)(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(r){let n=t/1e3;return this._config.maxReconnectionAttempts&&i>=this._config.maxReconnectionAttempts?(f.A.getLogger(this).error(new s.A("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(f.A.getLogger(this).error(new s.A("websocket-connection",`Failed to connect. Attempting to reconnect in ${n}s`,r)),await(0,g.Pl)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),i+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{let t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void f.A.getLogger(this).error(new s.A("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise((t,i)=>{let r=new WebSocket(e);r.onopen=()=>{r.onopen=null,this.destroyed?(r.onclose=null,r.close()):(r.onclose=e=>this._onClose(e),r.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(r),t(r))},r.onclose=e=>{r.onopen=r.onclose=null,i(e)}})}async _handshake(e=1e4){let t=this._websocket;if(null==t)return;let i=Promise.withResolvers(),r=t.onmessage,n=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:a}=this._config,o=setTimeout(()=>i.reject(),e),l=()=>{clearTimeout(o),i.reject()};return t.onmessage=e=>{let u=null;try{u=JSON.parse(e.data)}catch{}(!u||"object"!=typeof u)&&(f.A.getLogger(this).error(new s.A("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),l(),this.destroy()),u.spatialReference?.wkid!==this._outSpatialReference?.wkid&&(f.A.getLogger(this).error(new s.A("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${this._outSpatialReference.wkid}`,e.data)),l(),this.destroy()),"json"!==u.format&&(f.A.getLogger(this).error(new s.A("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),l(),this.destroy()),n&&u.filter!==n&&f.A.getLogger(this).error(new s.A("websocket-connection","Tried to set filter, but server doesn't support it")),a&&u.outFields!==a&&f.A.getLogger(this).error(new s.A("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=r;for(let e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],clearTimeout(o),i.resolve()},t.send(JSON.stringify({filter:n,outFields:a,format:"json",spatialReference:{wkid:this._outSpatialReference.wkid}})),i.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){let t="Encountered an error over WebSocket connection";this._set("errorString",t),f.A.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&f.A.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,o.Cg)([(0,u.MZ)()],w.prototype,"connectionStatus",null),(0,o.Cg)([(0,u.MZ)()],w.prototype,"errorString",void 0),w=(0,o.Cg)([(0,u.$K)("esri.layers.graphics.sources.connections.WebSocketConnection")],w);var v=i(80893),S=i(97552);const I={maxQueryDepth:5,maxRecordCountFactor:3};let M=class extends w{constructor(e,t){super({...I,...e},t),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){let e=await this._fetchServiceDefinition(this._config.url);e.timeInfo.trackIdField||f.A.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");let t=this._fetchWebSocketUrl(e.streamUrls,this._outSpatialReference);this._buddyServicesQuery||=this._queryBuddyServices(),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);let i=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:r}=this._config;this.destroyed||this._setFilter(i,r)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void f.A.getLogger(this).error(new s.A("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){let t={f:"json",...this._config.customParameters},i=(await(0,r.A)(e.path,{query:t,responseType:"json"})).data;return this._serviceDefinition=i,i}_fetchWebSocketUrl(e,t){let{urls:i,token:r}=e[0],s=this._inferWebSocketBaseUrl(i);return(0,m.a6)(`${s}/subscribe`,{outSR:""+t.wkid,token:r})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(let t of e)if(t.includes("wss"))return t;return f.A.getLogger(this).error(new s.A("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){let i=this._websocket;if(null==i||null==e&&null==t)return;let r=JSON.stringify({filter:this._serializeFilter(e,t)}),n=!1,a=Promise.withResolvers();return i.onmessage=e=>{let t=JSON.parse(e.data);t.filter&&(t.error&&(f.A.getLogger(this).error(new s.A("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),a.reject(t.error)),this._setWebSocketJSONParseHandler(i),n=!0,a.resolve())},i.send(r),setTimeout(()=>{n||(!this.destroyed&&this._websocket===i&&f.A.getLogger(this).error(new s.A("geoevent-connection","Server timed out when setting filter")),a.reject())},1e4),a.promise}_serializeFilter(e,t){let i={};if(null==e&&null==t)return i;if(e?.geometry)try{let t=(0,_.rS)(e.geometry);if("extent"!==t.type)throw new s.A("geoevent-connection",`Expected extent but found type ${t.type}`);i.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){f.A.getLogger(this).error(new s.A("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(i.where=e.where),null!=t&&(i.outFields=t.join(",")),i}_enrich(e){if(!this._relatedFeatures)return e;let t=this._serviceDefinition.relatedFeatures.joinField,i=e.attributes[t],r=this._relatedFeatures.get(i);if(!r)return f.A.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;let{attributes:n,geometry:a}=r;for(let t in n)e.attributes[t]=n[t];return a&&(e.geometry=a),!e.geometry&&!e.centroid&&f.A.getLogger(this).error(new s.A("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{let{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,i=this._queryRelatedFeatures(e),r=this._queryArchive(t);await i;let s=await r;if(!s)return;for(let e of s.features)this.onFeature(this._enrich(e))}catch(e){f.A.getLogger(this).error(new s.A("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;let t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){let t=new((await Promise.all([i.e(6361),i.e(8278),i.e(7865),i.e(6554),i.e(2869),i.e(9953),i.e(3910),i.e(5566),i.e(1214),i.e(2889),i.e(6263),i.e(8247),i.e(4674),i.e(7283),i.e(8589),i.e(812),i.e(5879),i.e(9279)]).then(()=>i(18589))).default)({url:e}),{capabilities:r}=await t.load(),s=r.query.supportsMaxRecordCountFactor,n=r.query.supportsPagination,a=r.query.supportsCentroid,o=this._config.maxRecordCountFactor,l=t.capabilities.query.maxRecordCount,u=s?l*o:l,h=new S.A;if(h.outFields=this._config.outFields??["*"],h.where=this._config.definitionExpression??"1=1",h.returnGeometry=!0,h.returnExceededLimitFeatures=!0,h.outSpatialReference=y.A.fromJSON(this._outSpatialReference),a&&(h.returnCentroid=!0),s&&(h.maxRecordCountFactor=o),n)return h.num=u,t.destroy(),this._queryPages(e,h);let c=await(0,v.eW)(e,h,this._config.sourceSpatialReference);return t.destroy(),c}async _queryPages(e,t,i=[],r=0){t.start=null==t.num?null:r*t.num;let s=await(0,v.eW)(e,t,this._config.sourceSpatialReference);return s.exceededTransferLimit&&r<(this._config.maxQueryDepth??0)?(s.features.forEach(e=>i.push(e)),this._queryPages(e,t,i,r+1)):(i.forEach(e=>s.features.push(e)),s)}_addRelatedFeatures(e){let t=new Map,i=e.features,r=this._serviceDefinition.relatedFeatures.joinField;for(let e of i){let i=e.attributes[r];t.set(i,e)}this._relatedFeatures=t}};M=(0,o.Cg)([(0,u.$K)("esri.layers.graphics.sources.connections.GeoEventConnection")],M);var C=i(64108);let k=class extends h{constructor(e,t){super({}),this.connectionStatus="connected",this.errorString=null;let{geometryType:i,sourceSpatialReference:r}=e;this._featureZScaler=(0,x.N)(i,r,t)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function A(e,t){let i=t.toJSON();switch(e.type){case"client":return new k(e,i);case"custom":return new w(e,i);case"geoevent":return new M(e,i);case"kusto":return new c(e,i)}}(0,o.Cg)([(0,u.MZ)()],k.prototype,"connectionStatus",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"errorString",void 0),k=(0,o.Cg)([(0,C.$)("esri.layers.support.ClientSideConnection")],k)},47828(e,t,i){i.d(t,{O:()=>n,c:()=>s});var r=i(49186);function s(e){return"object"==typeof e&&!!e&&"name"in e&&"FileProviderChangedError"===e.name}function n(e=""){return new r.A("FileProviderChangedError",e)}},53929(e,t,i){i.d(t,{DV:()=>d,FG:()=>m,LC:()=>_,_6:()=>k,ae:()=>y});var r=i(49186),s=i(53966),n=i(54625),a=i(76248);const o=()=>s.A.getLogger("esri.layers.ParquetLayer"),l=new Set(["uncompressed","snappy","gzip"]),u=new TextDecoder,h=new Set(["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeBigInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong"]);function c(e,t){switch(t){case"esriGeometryPoint":return e.GeometryType.Point;case"esriGeometryPolygon":case"polygon":return e.GeometryType.Polygon;case"esriGeometryPolyline":case"polyline":return e.GeometryType.Polyline;case"esriGeometryMultipoint":case"multipoint":return e.GeometryType.Multipoint;default:throw new r.A("parquet",`Found unexpected GeometryType: ${t}`)}}async function d(e,t){let i=await(0,a.N)(),s=t.geometryInfo?function(e,t){let i=e.GeometryInfo.new();t.geometry&&i.setGeometry(function(e,t){let i=t.encoding,r=c(e,t.geometryType),s=t.spatialReference.wkid;if(null==s)throw Error("InternalError: Wkid must be defined.");switch(i.type){case"wkb":return e.GeometryField.fromWkb(i.field,s,r);case"location":{let{yField:t,xField:n}=i;return e.GeometryField.fromLocation(t,n,s,r)}}}(e,t.geometry));let r=t.displayOptimization;if(r){let{index:t}=r;if("z"===t.type){let r=e.DisplayOptimizationZBuilder.new();r.setCodeField(m(t.code)),r.setXColumn(m(t.xColumn)),r.setYColumn(m(t.yColumn)),null!=t.zColumn&&r.setZColumn(m(t.zColumn)),null!=t.mColumn&&r.setMColumn(m(t.mColumn)),r.setCooordinatePrecision(t.coordinatePrecision),r.setFullExtent(t.fullExtent),r.setSpatialReference(t.wkid,null==t.wkid?t.wkt:void 0),r.setHasZ(!!t.zColumn),r.setHasM(!!t.mColumn),t.zColumn&&r.setZColumn(m(t.zColumn)),t.mColumn&&r.setMColumn(m(t.mColumn)),i.setOptmizationZ(r)}if("xz"===t.type){let r=c(e,t.geometryType),s=e.DisplayOptimizationXZBuilder.new();s.setCodeField(m(t.code)),s.setEncoding(t.encoding),s.setFullExtent(t.fullExtent),s.setGeometryType(r),s.setSpatialReference(t.wkid,null==t.wkid?t.wkt:void 0),s.setMaxLevel(t.maxLevel),s.setHasZ(t.hasZ??!1),s.setHasM(t.hasM??!1);for(let i of t.levels??[]){let t=new Float64Array(i.transform.translate),r=new Float64Array(i.transform.scale),n=m(i.column);s.addLevel(e.MultiscaleGeometryField.new(i.level,i.resolution,n,t,r))}i.setOptmizationXZ(s)}}return i}(i,t.geometryInfo):null,n=t.provider.fetchRange.bind(t.provider),o=t.provider.fetchLength.bind(t.provider);try{return await i.ParquetFile.fromUrl(e,n,o,s)}catch(e){throw new r.A("parquet","Failed to parse file",{error:e})}}function p(e){if(e.keyValueMetadata("esri"))throw new r.A("parquet:unsupported","File was created using an unsupported experimental display index. Please regenerate the file.");let t=e.keyValueMetadata("geodisplay");if(null!=t)return{present:!0,optimization:f({index:JSON.parse(t)})};let i=e.keyValueMetadata("org.apache.spark.sql.parquet.row.metadata");if(null!=i){let e=JSON.parse(i);for(let t of e.fields)if(null!=t.metadata&&b(t.metadata)){if(!w(t.metadata))return o().warn("parquet:protocol-violation","Ignoring display optimization, found invalid column path",{index:t.metadata}),{present:!0,optimization:null};let e=g(t.metadata,t.name);return null==e?(o().warn("parquet:protocol-violation","Ignoring display optimization, Spark display column paths must be non-empty strings",{index:t.metadata}),{present:!0,optimization:null}):{present:!0,optimization:f({index:e})}}}return{present:!1,optimization:null}}function f(e){if(!w(e.index))return o().warn("parquet:protocol-violation","Ignoring display optimization, found invalid column path",{index:e.index}),null;if("xz"===e.index.type&&(e.index.geometryType=function(e){switch(e.toLowerCase()){case"polygon":return"polygon";case"polyline":return"polyline";case"multipoint":return"multipoint";default:throw new r.A("parquet:unsupported",`Geometry type ${e} is unsupported`)}}(e.index.geometryType),"esri-pbf"===e.index.encoding&&(e.index.encoding="esriPBF"),"esriPBF"!==e.index.encoding))return o().warn("parquet:unsupported",`Encoding for display index must be of type esriPBF, but found ${e.index.encoding}`),null;let{xmin:t,ymin:i,xmax:s,ymax:n}=e.index.fullExtent;return Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(s)&&Number.isFinite(n)?e:(o().warn("parquet:protocol-violation","Ignoring display optimization, found bad extent",{index:e.index}),null)}function m(e){return Array.isArray(e)?e.join("."):e}function y(e,t,i,r,s){let n=P(e.readAttribute(t,i),r);return s&&null!=n&&"esriFieldTypeDate"===r?new Date(n):n}function _(e,t,i,r,s){return P(e.readAttribute(t,i,r),s)}function g(e,t){if("z"===e.type){let i=x(e.code,t),r=x(e.xColumn,t),s=x(e.yColumn,t),n=null==e.zColumn?e.zColumn:x(e.zColumn,t),a=null==e.mColumn?e.mColumn:x(e.mColumn,t);return null==i||null==r||null==s||null===n||null===a?null:{...e,code:i,xColumn:r,yColumn:s,...null==n?{}:{zColumn:n},...null==a?{}:{mColumn:a}}}let i=x(e.code,t),r=[];for(let i of e.levels){let e=x(i.column,t);if(null==e)return null;r.push({...i,column:e})}return null==i?null:{...e,code:i,levels:r}}function x(e,t){return"string"==typeof e&&e.length>0?[t,e]:null}function b(e){return"object"==typeof e&&!!e&&"type"in e&&("z"===e.type||"xz"===e.type)}function w(e){return"z"===e.type?v(e.code)&&v(e.xColumn)&&v(e.yColumn)&&(null==e.zColumn||v(e.zColumn))&&(null==e.mColumn||v(e.mColumn)):v(e.code)&&Array.isArray(e.levels)&&e.levels.every(e=>"object"==typeof e&&!!e&&"column"in e&&v(e.column))}function v(e){return"string"==typeof e&&e.length>0||Array.isArray(e)&&2===e.length&&e.every(e=>"string"==typeof e&&e.length>0)}function S(e,t){return o().warn("parquet:protocol-violation",`Ignoring GeoParquet ordering and LOD extensions: ${t}`,{lod:e.lod,ordering:e.ordering}),null}function I(e){return Array.isArray(e)&&2===e.length&&"geolod"===e[0]&&"string"==typeof e[1]&&e[1].length>0}function M(e){return C(e?.scale,!0)&&C(e?.translate,!1)}function C(e,t){return Array.isArray(e)&&4===e.length&&e.every(e=>"number"==typeof e&&Number.isFinite(e)&&(!t||e>0))}function k(e){A(e);let t,i,s=function(e){let t=[];for(let i of e.fields(!1))t.push({name:i.name,alias:i.name,type:i.type});return t}(e),n=function(e){let t=e.keyValueMetadata("geo");return null==t?null:JSON.parse(t)}(e),a=p(e),o=a.present?a.optimization:function(e){if(null==e)return null;let t=e.ordering,i=e.lod;if(null==t&&null==i)return null;if("xz"!==t?.type||null==i||t.geometry_column!==e.primary_column||i.geometry_column!==e.primary_column||t.geometry_column!==i.geometry_column||20!==t.max_level||!function(e){return C(e,!1)&&e[0]<e[2]&&e[1]<e[3]}(t.extent)||"pbf"!==i.encoding)return S(e,"ordering and lod must form a valid primary-column XZ pair");let r=e.columns[e.primary_column],s=function(e){if(null==e||0===e.geometry_types.length)return null;let t,i;for(let r of e.geometry_types){let e=/^(LineString|MultiLineString|Polygon|MultiPolygon)(?: (Z|M|ZM))?$/.exec(r);if(null==e)return null;let s="LineString"===e[1]||"MultiLineString"===e[1]?"polyline":"polygon";if(null!=t&&t!==s||null!=i&&i!==(e[2]??""))return null;t=s,i=e[2]??""}return null==t||null==i?null:{geometryType:t,hasZ:"Z"===i||"ZM"===i,hasM:"M"===i||"ZM"===i}}(r);if(null==s||!function(e,t){return"polygon"===t?"clockwise"===e:null==e}(i.orientation,s.geometryType))return S(e,"geometry type, dimensions, or LOD orientation is invalid");let n=function(e){if(!Array.isArray(e)||0===e.length)return null;let t=new Set,i=e.slice().sort((e,t)=>t.resolution-e.resolution),r=[];for(let[e,s]of i.entries()){if(!I(s.column)||!Number.isFinite(s.resolution)||s.resolution<=0||t.has(s.resolution)||!M(s.transform))return null;t.add(s.resolution),r.push({column:s.column,level:e,resolution:s.resolution,transform:s.transform})}return r}(i.levels),a=E(r)?.wkid;if(null==n||null==a)return S(e,"LOD levels or spatial reference is invalid");let[o,l,u,h]=t.extent;return{index:{type:"xz",code:"geokey",wkid:a,wkt:null,encoding:"esriPBF",fullExtent:{xmin:o,ymin:l,xmax:u,ymax:h},geometryType:s.geometryType,maxLevel:t.max_level,hasZ:s.hasZ,hasM:s.hasM,levels:n}}}(n),l=T(n,s),{hasZ:u,hasM:h}=function(e,t){let i=t?.index;if("z"===i?.type)return{hasZ:null!=i.zColumn,hasM:null!=i.mColumn};if("xz"===i?.type)return{hasZ:!0===i.hasZ,hasM:!0===i.hasM};let r=e?.columns[e.primary_column]?.geometry_types??[];return{hasZ:r.some(e=>/ (?:Z|ZM)$/u.test(e)),hasM:r.some(e=>/ (?:M|ZM)$/u.test(e))}}(n,o);if(l)switch(l.type){case"location":i={wkid:4326},t="esriGeometryPoint";break;case"wkb":if(n){let e=n.primary_column,s=n.columns[e];t=function(e){let{geometry_types:t}=e,i=new Set;for(let e of t){let t=F(e);t&&i.add(t)}if(i.size>1)throw new r.A("parquet:unsupported","Parquet mixed geometry types are not supported",{geometryTypes:i});return 1===i.size?i.values().next().value:void 0}(s),i=E(s)}}if(o){let e=o.index;!i&&e.wkid&&(i={wkid:e.wkid}),t||="z"===e.type?"esriGeometryPoint":function(e){switch(e){case"polygon":return"esriGeometryPolygon";case"polyline":return"esriGeometryPolyline";case"multipoint":return"esriGeometryMultipoint"}}(e.geometryType)}return{geoMetadata:n,displayOptimization:o,hasZ:u,hasM:h,geometryEncoding:l,geometryInfo:i&&t?{geometry:l?{geometryType:t,spatialReference:i,encoding:l}:null,displayOptimization:o}:null,geometryType:t,spatialReference:i,extent:R(n,o,i),fields:s}}function A(e){for(let t of e.compressionCodecs())if(!l.has(t))throw new r.A("parquet:unsupported",`Compression codec ${t} is unsupported. Must be of type ${Array.from(l).join(",")}`)}function P(e,t){return null==e?e:"esriFieldTypeDateOnly"===t?function(e){return new Date(864e5*e).toISOString().slice(0,10)}(e):"esriFieldTypeTimeOnly"===t?function(e){let t=Math.floor(e/3600),i=Math.floor(e%3600/60),r=e%60;return`${t.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`}(e):"esriFieldTypeString"===t||"esriFieldTypeTimestampOffset"===t?u.decode(e):e}function T(e,t){if(null!=e){let t=e.primary_column;return{type:"wkb",field:t,orientation:"counterclockwise"===e.columns[t].orientation?"counter-clockwise":null}}let i=function(e){let t=e.map(e=>e.toLowerCase());return{longitudeFieldName:e[t.indexOf(n.A0.find(e=>t.includes(e)))],latitudeFieldName:e[t.indexOf(n.bD.find(e=>t.includes(e)))]}}(t.filter(e=>h.has(e.type)).map(e=>e.name));return i.latitudeFieldName&&i.longitudeFieldName?{type:"location",xField:i.longitudeFieldName,yField:i.latitudeFieldName}:null}function F(e){switch(e.replace(/ (?:Z|M|ZM)$/u,"")){case"Point":return"esriGeometryPoint";case"Polygon":case"MultiPolygon":return"esriGeometryPolygon";case"LineString":case"MultiLineString":return"esriGeometryPolyline";case"MultiPoint":return"esriGeometryMultipoint";default:return null}}function E(e){let t=e.crs?.id?.code;return"number"==typeof t?{wkid:t}:"OGC"===e.crs?.id?.authority&&"CRS84"===t?{wkid:4326}:void 0}function R(e,t,i){if(!i)return null;let r=(e?e.columns[e.primary_column]:null)?.bbox;if(r?.every(e=>Number.isFinite(e)))switch(r.length){case 4:return{xmin:r[0],ymin:r[1],xmax:r[2],ymax:r[3],spatialReference:i};case 6:return{xmin:r[0],ymin:r[1],xmax:r[3],ymax:r[4],spatialReference:i};default:o().warn("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{geoMetadata:e})}let s=t?.index.fullExtent;return s?{...s,spatialReference:i}:null}},25747(e,t,i){i.d(t,{A:()=>u});var r=i(32198),s=i(69540),n=i(25482),a=i(91429),o=i(64108),l=i(9075);let u=class extends((0,n.T)(s.Pw)){constructor(e){super(e),this.type="fabric",this.refreshInterval=5e3/6e4}};(0,r.Cg)([(0,a.MZ)({type:["fabric"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"type",void 0),(0,r.Cg)([(0,a.MZ)({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"workspace",void 0),(0,r.Cg)([(0,a.MZ)({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"database",void 0),(0,r.Cg)([(0,a.MZ)({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"table",void 0),(0,r.Cg)([(0,a.MZ)({type:l.A,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"geometryEncoding",void 0),(0,r.Cg)([(0,a.MZ)({type:Number,json:{read:!1,write:{ignoreOrigin:!0}}})],u.prototype,"refreshInterval",void 0),u=(0,r.Cg)([(0,o.$)("esri.layers.support.FabricKustoSource")],u)},9075(e,t,i){i.d(t,{A:()=>o});var r=i(32198),s=i(69540),n=i(25482),a=i(91429);let o=class extends((0,s.OU)(n.o)){constructor(e){super(e),this.type="location",this.xField=null,this.yField=null}};(0,r.Cg)([(0,a.MZ)({type:["location"],nonNullable:!0,readOnly:!0,json:{read:!1,write:{isRequired:!0}}})],o.prototype,"type",void 0),(0,r.Cg)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],o.prototype,"xField",void 0),(0,r.Cg)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],o.prototype,"yField",void 0),o=(0,r.Cg)([(0,a.$K)("esri.layers.support.GeometryEncodingLocation")],o)},91806(e,t,i){i.d(t,{A:()=>l});var r,s=i(32198),n=i(25482),a=i(91429),o=i(78888);let l=class extends n.o{static{r=this}constructor(e){super(e),this.cols=null,this.level=0,this.levelValue=null,this.origin=null,this.resolution=0,this.rows=null,this.scale=0}clone(){return new r({cols:this.cols,level:this.level,levelValue:this.levelValue,resolution:this.resolution,rows:this.rows,scale:this.scale})}};(0,s.Cg)([(0,a.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"cols",void 0),(0,s.Cg)([(0,a.MZ)({type:o.jz,json:{write:!0}})],l.prototype,"level",void 0),(0,s.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],l.prototype,"levelValue",void 0),(0,s.Cg)([(0,a.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"origin",void 0),(0,s.Cg)([(0,a.MZ)({type:Number,json:{write:!0}})],l.prototype,"resolution",void 0),(0,s.Cg)([(0,a.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],l.prototype,"rows",void 0),(0,s.Cg)([(0,a.MZ)({type:Number,json:{write:!0}})],l.prototype,"scale",void 0),l=r=(0,s.Cg)([(0,a.$K)("esri.layers.support.LOD")],l)},87045(e,t,i){i.d(t,{A:()=>x});var r,s=i(32198),n=i(66552),a=i(25482),o=i(86211),l=i(91429),u=i(78888),h=i(86738),c=i(16930),d=i(21325),p=i(28735),f=i(91806),m=i(72802),y=i(36005),_=i(43937);const g=new n.J({PNG:"png",PNG8:"png8",PNG24:"png24",PNG32:"png32",JPEG:"jpg",JPG:"jpg",DIB:"dib",TIFF:"tiff",EMF:"emf",PS:"ps",PDF:"pdf",GIF:"gif",SVG:"svg",SVGZ:"svgz",Mixed:"mixed",MIXED:"mixed",LERC:"lerc",LERC2D:"lerc2d",RAW:"raw",pbf:"pbf"});let x=class extends a.o{static{r=this}static create(e={}){let{resolutionFactor:t=1,scales:i,size:s=256,spatialReference:n=c.A.WebMercator,numLODs:a=24}=e;if(!(0,d.fn)(n)){let e=[];if(i)for(let t=0;t<i.length;t++){let r=i[t];e.push(new f.A({level:t,scale:r,resolution:r}))}else{let t=5e-4;for(let i=a-1;i>=0;i--)e.unshift(new f.A({level:i,scale:t,resolution:t})),t*=2}return new r({dpi:96,lods:e,origin:new h.A(0,0,n),size:[s,s],spatialReference:n})}let l=(0,d.Vp)(n),u=e.origin?new h.A({x:e.origin.x,y:e.origin.y,spatialReference:n}):l?new h.A({x:l.origin[0],y:l.origin[1],spatialReference:n}):new h.A({x:0,y:0,spatialReference:n}),p=1/(39.37*(0,o.GA)(n)*96),m=[];if(i)for(let e=0;e<i.length;e++){let t=i[e],r=t*p;m.push(new f.A({level:e,scale:t,resolution:r}))}else{let e=(0,d.EA)(n)?512/s*591657527.5917094:256/s*591657527.591555,i=Math.ceil(a/t);m.push(new f.A({level:0,scale:e,resolution:e*p}));for(let r=1;r<i;r++){let i=e/2**t,s=i*p;m.push(new f.A({level:r,scale:i,resolution:s})),e=i}}return new r({dpi:96,lods:m,origin:u,size:[s,s],spatialReference:n})}constructor(e){super(e),this.dpi=96,this.format=null,this.origin=null,this.size=null,this.spatialReference=null}get isWrappable(){let{spatialReference:e,origin:t}=this;if(e&&t){let i=(0,d.Vp)(e);return e.isWrappable&&!!i&&Math.abs(i.origin[0]-t.x)<=i.dx}return!1}readOrigin(e,t){return h.A.fromJSON({spatialReference:t.spatialReference,...e})}set lods(e){let t=0,i=0,r=[],s=this._levelToLOD={};e&&(t=-1/0,i=1/0,e.forEach(e=>{r.push(e.scale),t=e.scale>t?e.scale:t,i=e.scale<i?e.scale:i,s[e.level]=e})),this._set("scales",r),this._set("lods",e),this._initializeUpsampleLevels()}readSize(e,t){return[t.cols,t.rows]}writeSize(e,t){t.cols=e[0],t.rows=e[1]}zoomToScale(e){let t=this.scales;if(e<=0)return t[0];if(e>=t.length-1)return t[t.length-1];let i=Math.floor(e),r=i+1;return t[i]/(t[i]/t[r])**(e-i)}scaleToZoom(e){let t=this.scales,i=t.length-1,r=0;for(;r<i;r++){let i=t[r],s=t[r+1];if(i<=e)return r;if(s===e)return r+1;if(i>e&&s<e)return r+Math.log(i/e)/Math.log(i/s)}return r}tileAt(e,t,i,r){let s,n,a=this.lodAt(e);if(!a)return null;if("number"==typeof t)s=t,n=i;else if((0,d.aI)(t.spatialReference,this.spatialReference))s=t.x,n=t.y,r=i;else{let e=(0,p.Cv)(t,this.spatialReference);if(null==e)return null;s=e.x,n=e.y,r=i}let o=a.resolution*this.size[0],l=a.resolution*this.size[1];return r??=new m.U(0,0,0),r.level=e,r.row=Math.floor((this.origin.y-n)/l+.001),r.col=Math.floor((s-this.origin.x)/o+.001),this.updateTileInfo(r),r}updateTileInfo(e,t=0){if(!("extent"in e))return!1;let i=this.lodAt(e.level);if(!i&&1===t){let t=this.lods[this.lods.length-1];t.level<e.level&&(i=t)}if(!i)return!1;let r=e.level-i.level,s=i.resolution*this.size[0]/2**r,n=i.resolution*this.size[1]/2**r;return e.extent[0]=this.origin.x+e.col*s,e.extent[1]=this.origin.y-(e.row+1)*n,e.extent[2]=e.extent[0]+s,e.extent[3]=e.extent[1]+n,!0}upsampleTile(e){let t=this._upsampleLevels[e.level];return!(!t||-1===t.parentLevel||(e.level=t.parentLevel,e.row=Math.floor(e.row/t.factor+.001),e.col=Math.floor(e.col/t.factor+.001),this.updateTileInfo(e),0))}getTileBounds(e,t){let i=this.lodAt(t.level);if(null==i)return null;let{resolution:r}=i,s=r*this.size[0],n=r*this.size[1];return e[0]=this.origin.x+t.col*s,e[1]=this.origin.y-(t.row+1)*n,e[2]=e[0]+s,e[3]=e[1]+n,e}lodAt(e){return this._levelToLOD?.[e]??null}clone(){return r.fromJSON(this.write({}))}getCompatibleForVTL(e){if(this.size[0]!==this.size[1]||256===this.size[0]&&512===e)return null;let t=(512===this.size[0]&&256===e?-1:0)+ +!!this.spatialReference.isGeographic;if(this.size[0]===e&&0===t)return this;let i=[],s=this.lods.length-t;for(let e=0;e<s;e++){let r=e+t,{scale:s,resolution:n}=r>=0?this.lods[r]:{scale:2*this.lods[0].scale,resolution:2*this.lods[0].resolution};i.push(new f.A({level:e,scale:s,resolution:n}))}return new r({size:[e,e],dpi:this.dpi,format:this.format,compressionQuality:this.compressionQuality,origin:this.origin,spatialReference:this.spatialReference,lods:i})}_initializeUpsampleLevels(){let e=this.lods;this._upsampleLevels=[];let t=null;for(let i=0;i<e.length;i++){let r=e[i];this._upsampleLevels[r.level]={parentLevel:t?t.level:-1,factor:t?t.resolution/r.resolution:0},t=r}}};(0,s.Cg)([(0,l.MZ)({type:Number,json:{write:!0}})],x.prototype,"compressionQuality",void 0),(0,s.Cg)([(0,l.MZ)({type:Number,json:{write:!0}})],x.prototype,"dpi",void 0),(0,s.Cg)([(0,l.MZ)({type:String,json:{read:g.read,write:g.write,origins:{"web-scene":{read:!1,write:!1}}}})],x.prototype,"format",void 0),(0,s.Cg)([(0,l.MZ)({readOnly:!0})],x.prototype,"isWrappable",null),(0,s.Cg)([(0,l.MZ)({type:h.A,json:{write:!0}})],x.prototype,"origin",void 0),(0,s.Cg)([(0,y.w)("origin")],x.prototype,"readOrigin",null),(0,s.Cg)([(0,l.MZ)({type:[f.A],value:null,json:{write:!0}})],x.prototype,"lods",null),(0,s.Cg)([(0,l.MZ)({readOnly:!0})],x.prototype,"scales",void 0),(0,s.Cg)([(0,l.MZ)({cast:e=>Array.isArray(e)?e:"number"==typeof e?[e,e]:[256,256]})],x.prototype,"size",void 0),(0,s.Cg)([(0,y.w)("size",["rows","cols"])],x.prototype,"readSize",null),(0,s.Cg)([(0,_.K)("size",{cols:{type:u.jz},rows:{type:u.jz}})],x.prototype,"writeSize",null),(0,s.Cg)([(0,l.MZ)({type:c.A,json:{write:!0}})],x.prototype,"spatialReference",void 0),x=r=(0,s.Cg)([(0,l.$K)("esri.layers.support.TileInfo")],x)},72802(e,t,i){i.d(t,{U:()=>s});var r=i(19419);class s{constructor(e,t,i,s=(0,r.vt)()){this._level=e,this._row=t,this._col=i,this.extent=s}get id(){return this._id??=`${this.level}/${this.row}/${this.col}`,this._id}get level(){return this._level}set level(e){this._level=e,this._id=null}get row(){return this._row}set row(e){this._row=e,this._id=null}get col(){return this._col}set col(e){this._col=e,this._id=null}toJSON(){return{level:this._level,row:this._row,col:this._col,extent:this.extent}}static fromJSON(e){return new s(e.level,e.row,e.col,e.extent)}}},9916(e,t,i){i.d(t,{ZF:()=>u,iD:()=>d,xw:()=>c});var r=i(56507),s=i(49186),n=i(25747),a=i(20437),o=i(9075),l=i(54625);async function u(e,t,i,a,u={}){if(a.database||=await async function(e,t){let{data:i}=await(0,r.A)(`https://api.fabric.microsoft.com/v1/workspaces/${e}/kqlDatabases/${t}`,{responseType:"json"});if(null==i)throw new s.A("kusto:connection",`KQL database '${t}' was not found in workspace '${e}'`);return i}(e,t),a.fields?.length||(a.fields=await async function(e,t,i={}){let n=await async function(e,t,i={}){let n=e.properties.queryServiceUri;return function(e){let t=e.Tables[0];if(null==t||0===t.Rows.length)throw new s.A("kusto:invalid-schema-response","Kusto schema response did not include any rows");let[i,r]=t.Rows[0];if("string"!=typeof r)throw new s.A("kusto:invalid-schema-response","Kusto schema response did not include a schema string");return JSON.parse(r)}((await(0,r.A)(`${n}/v1/rest/mgmt`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:e.displayName,csl:`.show table ${c(t)} schema as json`}),signal:i.signal})).data)}(e,t,i),a=[];for(let e of n.OrderedColumns){let t=h(e);t&&a.push(t)}return a}(a.database,i,u)),a.source||=new n.A({workspace:e,database:t,table:i}),!a.source.geometryEncoding){let e=(0,l.i_)(a.fields.map(e=>e.name));e.latitudeFieldName&&e.longitudeFieldName&&(a.source.geometryEncoding=new o.A({xField:e.longitudeFieldName,yField:e.latitudeFieldName}))}return a}function h(e){let t=function(e){switch(e){case"bool":return"small-integer";case"guid":case"string":return"string";case"int":return"integer";case"long":return"big-integer";case"real":return"double";case"dynamic":case"datetime":case"decimal":case"timespan":return null}}(e.CslType);return t?new a.A({name:e.Name,type:t}):null}function c(e){return`['${e.replaceAll("'","''")}']`}function d(e){return e.replaceAll("'","''")}},32730(e,t,i){i.d(t,{BI:()=>c,D3:()=>u,XJ:()=>h,lc:()=>l,mX:()=>p,rU:()=>d,tH:()=>g,zA:()=>b});var r=i(799);const s=RegExp("__begin__","ig"),n=RegExp("__end__","ig"),a=RegExp("^__begin__","i"),o=RegExp("__end__$","i");function l(e){return e.replaceAll(RegExp("\\[","g"),"{").replaceAll(RegExp("\\]","g"),"}")}function u(e){return e.replaceAll(RegExp("\\{","g"),"[").replaceAll(RegExp("\\}","g"),"]")}function h(e){let t={expression:"",type:"none"};return e.labelExpressionInfo?e.labelExpressionInfo.value?(t.expression=e.labelExpressionInfo.value,t.type="conventional"):e.labelExpressionInfo.expression&&(t.expression=e.labelExpressionInfo.expression,t.type="arcade"):null!=e.labelExpression&&(t.expression=l(e.labelExpression),t.type="conventional"),t}function c(e){let t=h(e);if(!t)return null;switch(t.type){case"conventional":return p(t.expression);case"arcade":return t.expression}return null}function d(e){let t=h(e);if(!t)return null;switch(t.type){case"conventional":return function(e){return(e?.match(f))?.[1].trim()||null}(t.expression);case"arcade":return g(t.expression)}return null}function p(e){let t;return e?(t=(0,r.HC)(e,e=>'__begin__$feature["'+e+'"]__end__'),t=a.test(t)?t.replace(a,""):'"'+t,t=o.test(t)?t.replace(o,""):t+'"',t=t.replaceAll(s,'" + ').replaceAll(n,' + "')):t='""',t}const f=/^\s*\{([^}]+)\}\s*$/i,m=/^\s*(?:(?:\$feature\.(\w+))|(?:\$feature\[(["'])(.+)(\2)\]));?\s*$/i,y=/^\s*(?:(?:\$feature\.(\w+))|(?:\$feature\[(["'])(.+)(\2)\]));?\s*(?:DomainName\(\s*\$feature\s*,\s*(["'])(\1|\3)(\5)\s*\));?\s*$/i,_=/^\s*(?:DomainName\(\s*\$feature\s*,\s*(["'])(.+)(\1)\s*\));?\s*$/i;function g(e){if(!e)return null;let t=m.exec(e)||y.exec(e);return t?t[1]||t[3]:(t=_.exec(e),t?t[2]:null)}const x=Symbol("LabelClassInstance");function b(e){return"object"==typeof e&&!!e&&x in e}i.d(t,["vK",0,x])},54625(e,t,i){i.d(t,{i_:()=>s});var r=i(30524);function s(e,t,i){t=(0,r.rS)(t)?.toLowerCase(),i=(0,r.rS)(i)?.toLowerCase();let s=e.map(e=>e.toLowerCase()),o=t?e[s.indexOf(t)]:null,l=i?e[s.indexOf(i)]:null;return{longitudeFieldName:o||e[s.indexOf(a.find(e=>s.includes(e)))],latitudeFieldName:l||e[s.indexOf(n.find(e=>s.includes(e)))]}}const n=["lat","lat83","latitude","latitude83","latdecdeg","lat_dd","y","ycenter","point_y"],a=["lon","lng","lng83","long","long83","longitude","longitude83","longdecdeg","long_dd","x","xcenter","point_x"];i.d(t,["A0",0,a,"bD",0,n])},72691(e,t,i){i.d(t,["Aw",0,"__esri_time_received__","DN",0,"__esri_stream_id__","EA",0,"__esri_track_part__","Gm",0,"__esri_timestamp__","xq",0,"__esri_track_line__"])},76248(e,t,i){i.d(t,{N:()=>n});var r=i(2741);let s=null;async function n(){return s||=async function(){let e=await i.e(1773).then(()=>i(61773));return await e.default({module_or_path:(0,r.s)("esri/libs/librust-parquet/pkg/parquet_bg.wasm")}),e}(),s}},73133(e,t,i){const r=(0,i(66552).O)()({esriTimeUnitsMilliseconds:"milliseconds",esriTimeUnitsSeconds:"seconds",esriTimeUnitsMinutes:"minutes",esriTimeUnitsHours:"hours",esriTimeUnitsDays:"days",esriTimeUnitsWeeks:"weeks",esriTimeUnitsMonths:"months",esriTimeUnitsYears:"years",esriTimeUnitsDecades:"decades",esriTimeUnitsCenturies:"centuries",esriTimeUnitsUnknown:"unknown"});i.d(t,["j",0,r])},73681(e,t,i){i.d(t,{n:()=>l});var r=i(49186),s=i(53966),n=i(46140),a=i(95466),o=i(55674);class l{static async from(e,t,i){let a=e.dictionary_version?n.A.parse(e.dictionary_version):null,h=new Set(e.itemsNames),c={};if(t)for(let e in t)c[e]=t[e];if(e.authoringInfo.configuration)for(let t of e.authoringInfo.configuration)c.hasOwnProperty(t.name)||(c[t.name]=t.value);let d=new Set(e.authoringInfo.symbol);for(let e of Object.keys(i))d.delete(e);d.size&&s.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("missing-fields: fieldMap entries for the following symbol fields are missing",{symbolFields:d});let p=await(0,o.xR)(e.expression,null,c);if(!p)throw new r.A("dictionary-renderer:expression-error","Unable to create dictionary renderer expression");let f=!a||!a.greaterEqual(4,0);f&&s.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("Dictionary script does not support native field types. Applying fallback",{version:a});let m=new u(i,f);return new l(f,h,p,m)}constructor(e,t,i,r){this._requiresFieldCoercionToString=e,this._itemNames=t,this._compiled=i,this._reader=r}get itemNames(){return this._itemNames}evaluate(e,t,i,r){try{return this._reader.bind(e,i,r),this._compiled.evaluate(this._reader,{$view:{scale:t}})}catch(e){s.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("arcade: dictionary script evaluation failed",{error:e})}return null}createDictionaryFieldsIndex(e){if(!this._requiresFieldCoercionToString)return new a.A(e);let t=e.map(e=>({...e,type:"esriFieldTypeString"}));return new a.A(t)}}class u extends o.Gj{constructor(e,t){super(),this._fieldMap=e,this._requiresFieldCoercionToString=t}_getField(e){let t=this._fieldMap[e]??e;return this._boundSchema.fieldsIndex.get(t)}field(e){if(!this._requiresFieldCoercionToString)return super.field(e,!1);let t=this._getField(e);return null==t||null==this._boundTarget.attributes[t.name]?"":""+this._boundTarget.attributes[t.name]}}},95250(e,t,i){function r(e){return s(e,{CIMRGBColor:n,CIMCharacterMarker:a})}function s(e,t){if(null==e)return e;if(Array.isArray(e))return e.map(e=>s(e,t));if("object"==typeof e){if("type"in e&&"string"==typeof e.type&&t[e.type])return t[e.type](e);let i={};for(let[r,n]of Object.entries(e))i[r]=s(n,t);return i}return e}function n(e){let[t,i,r,s]=e.values;return[t,i,r,255*s/100]}function a(){return{type:"CIMVectorMarker",enable:!0,size:40,colorLocked:!1,anchorPointUnits:"Relative",frame:{xmin:-10,ymin:-10,xmax:10,ymax:10},markerGraphics:[{type:"CIMMarkerGraphic",textString:"■",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",underline:!1,blockProgression:"TTB",depth3D:0,extrapolateBaselines:!0,flipAngle:90,fontEffects:"Normal",fontEncoding:"Unicode",haloSize:0,height:8,hinting:"Default",horizontalAlignment:"Center",kerning:!0,letterSpacing:10,letterWidth:100,ligatures:!1,lineGapType:"ExtraLeading",symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:[0,0,0,255]}]},symbol3DProperties:{type:"CIM3DSymbolProperties",dominantSizeAxis3D:"Z",rotationOrder3D:"XYZ",scaleZ:1,scaleY:1},textCase:"Normal",textDirection:"LTR",verticalAlignment:"Center",verticalGlyphOrientation:"Right",wordSpacing:100,billboardMode3D:"FaceNearPlane"}}],scaleSymbolsProportionally:!0,respectFrame:!0}}i.d(t,{S:()=>r})},93470(e,t,i){const r=[252,146,31,255],s={type:"esriSMS",style:"esriSMSCircle",size:6,color:r,outline:{type:"esriSLS",style:"esriSLSSolid",width:.75,color:[153,153,153,255]}},n={type:"esriSLS",style:"esriSLSSolid",width:.75,color:r};i.d(t,["Cb",0,s,"HW",0,{type:"esriSLS",style:"esriSLSSolid",color:[0,0,0,255],width:1.5},"JR",0,[153,153,153,255],"JZ",0,{type:"esriTS",color:[255,255,255,255],font:{family:"arial-unicode-ms",size:10,weight:"bold"},horizontalAlignment:"center",kerning:!0,haloColor:[0,0,0,255],haloSize:1,rotated:!1,text:"",xoffset:0,yoffset:0,angle:0},"WR",0,{type:"esriSFS",style:"esriSFSSolid",color:[252,146,31,196],outline:{type:"esriSLS",style:"esriSLSSolid",width:.75,color:[255,255,255,191]}},"b6",0,{type:"esriSFS",style:"esriSFSSolid",color:[0,0,0,255],outline:null},"fT",0,r,"nC",0,{type:"esriSMS",style:"esriSMSCircle",color:[0,0,0,255],outline:null,size:10.5},"yM",0,n])},79677(e,t,i){i.d(t,{A:()=>c});var r,s=i(32198),n=i(25482),a=i(88930),o=i(91429),l=(i(98623),i(10184)),u=i(36005),h=i(43937);let c=class extends n.o{static{r=this}static get allTime(){return d}static get empty(){return p}static fromArray(e){return new r({start:null==e[0]?e[0]:new Date(e[0]),end:null==e[1]?e[1]:new Date(e[1])})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null==t.end?null:new Date(t.end)}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(r.allTime)}get isEmpty(){return this.equals(r.empty)}readStart(e,t){return null==t.start?null:new Date(t.start)}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new r({end:this.end,start:this.start})}equals(e){if(!e)return!1;let t=this.start?.getTime()??this.start,i=this.end?.getTime()??this.end,r=e.start?.getTime()??e.start,s=e.end?.getTime()??e.end;return t===r&&i===s}expandTo(e,t="system"){if(this.isEmpty||this.isAllTime||"unknown"===e)return this.clone();let i=this.start;i&&=(0,a.lL)(i,new l.A({value:1,unit:e}),t);let s=this.end;if(s){let i=(0,a.lL)(s,new l.A({value:1,unit:e}),t);s=s.getTime()===i.getTime()?i:(0,a.S1)(i,1,e,t)}return new r({start:i,end:s})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return r.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();let t,i,s=this.start?.getTime()??-1/0,n=this.end?.getTime()??1/0,a=e.start?.getTime()??-1/0,o=e.end?.getTime()??1/0;return a>=s&&a<=n?t=a:s>=a&&s<=o&&(t=s),n>=a&&n<=o?i=n:o>=s&&o<=n&&(i=o),null==t||null==i||isNaN(t)||isNaN(i)?r.empty:new r({start:t===-1/0?null:new Date(t),end:i===1/0?null:new Date(i)})}offset(e,t,i="system"){if(this.isEmpty||this.isAllTime||"unknown"===t)return this.clone();let s=new r,{start:n,end:o}=this;return null!=n&&(s.start=(0,a.S1)(n,e,t,i)),null!=o&&(s.end=(0,a.S1)(o,e,t,i)),s}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(e){if(!e||e.isEmpty)return this.clone();if(this.isEmpty)return e.clone();if(this.isAllTime||e.isAllTime)return d.clone();let t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,i=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new r({start:t,end:i})}};(0,s.Cg)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],c.prototype,"end",void 0),(0,s.Cg)([(0,u.w)("end")],c.prototype,"readEnd",null),(0,s.Cg)([(0,h.K)("end")],c.prototype,"writeEnd",null),(0,s.Cg)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],c.prototype,"isAllTime",null),(0,s.Cg)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],c.prototype,"isEmpty",null),(0,s.Cg)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],c.prototype,"start",void 0),(0,s.Cg)([(0,u.w)("start")],c.prototype,"readStart",null),(0,s.Cg)([(0,h.K)("start")],c.prototype,"writeStart",null),c=r=(0,s.Cg)([(0,o.$K)("esri.time.TimeExtent")],c);const d=new c,p=new c({start:void 0,end:void 0})},10184(e,t,i){i.d(t,{A:()=>h});var r=i(32198),s=i(69540),n=i(25482),a=i(88930),o=i(91429),l=i(73133),u=i(93223);let h=class extends((0,s.OU)(n.o)){constructor(e){super(e),this.unit="milliseconds",this.value=0}toMilliseconds(){return(0,a.t)(this.value,this.unit,"milliseconds")}};(0,r.Cg)([(0,u.e)(l.j,{nonNullable:!0})],h.prototype,"unit",void 0),(0,r.Cg)([(0,o.MZ)({type:Number,json:{write:!0},nonNullable:!0})],h.prototype,"value",void 0),h=(0,r.Cg)([(0,o.$K)("esri.time.TimeInterval")],h)},59357(e,t,i){i.r(t),i.d(t,{default:()=>bu});var r=i(49186),s=i(36563),n=i(44208),a=i(26390),o=i(17676),l=i(87811),u=i(36708),h=i(90629),c=i(8341),d=i(87045);class p{constructor(e){this._client=e,this.layerView=this._client.createInvokeProxy(""),this.container=this._client.createInvokeProxy("container"),this._eventLog=this._client.createInvokeProxy("eventLog")}onEvent(e){"error"===e.type&&e.error&&"toJSON"in e.error&&(e.error=e.error.toJSON()),(0,c.oV)(this._eventLog.onEvent(e))}}var f=i(92602),m=i(97768),y=i(93637),_=i(6797),g=i(29953),x=i(62577),b=i(31464),w=i(21325),v=i(44159);function S(e,t){return[e,t]}function I(e,t,i){return e[0]=t,e[1]=i,e}const M=new v.A("0/0/0/0");class C{static create(e,t,i=null){let r=(0,w.Vp)(e.spatialReference),s=t.origin||S(e.origin.x,e.origin.y),n=S(e.size[0]*t.resolution,e.size[1]*t.resolution),a=S(-1/0,-1/0),o=S(1/0,1/0),l=S(1/0,1/0);null!=i&&(I(a,Math.max(0,Math.floor((i.xmin-s[0])/n[0])),Math.max(0,Math.floor((s[1]-i.ymax)/n[1]))),I(o,Math.max(0,Math.floor((i.xmax-s[0])/n[0])),Math.max(0,Math.floor((s[1]-i.ymin)/n[1]))),I(l,o[0]-a[0]+1,o[1]-a[1]+1));let u,h,c,d,{cols:p,rows:f}=t;return!i&&p&&f&&(I(a,p[0],f[0]),I(o,p[1],f[1]),I(l,p[1]-p[0]+1,f[1]-f[0]+1)),e.isWrappable?(u=S(Math.round(Math.round((r.valid[1]-r.valid[0])/t.resolution)/e.size[0]),l[1]),h=!0,c=r.origin,d=r.valid):(u=l,h=!1),new C(t.level,t.resolution,t.scale,s,a,o,l,n,u,h,c,d)}constructor(e,t,i,r,s,n,a,o,l,u,h,c){this.level=e,this.resolution=t,this.scale=i,this.origin=r,this.first=s,this.last=n,this.size=a,this.norm=o,this.worldSize=l,this.wrap=u,this._spatialReferenceOrigin=h,this._spatialReferenceValid=c}normalizeCol(e){if(!this.wrap)return e;let t=this.worldSize[0];return e<0?t-1-Math.abs((e+1)%t):e%t}normalizeKey(e){if(!this.wrap)return;let t=this.worldSize[0],i=e.col;i<0?(e.col=i+t,--e.world):i>=t&&(e.col=i-t,e.world+=1)}denormalizeCol(e,t){return this.wrap?this.worldSize[0]*t+e:e}getWorldForColumn(e){return this.wrap?Math.floor(e/this.worldSize[0]):0}getFirstColumnForWorld(e){return e*this.worldSize[0]+this.first[0]}getLastColumnForWorld(e){return e*this.worldSize[0]+this.first[0]+this.size[0]-1}getColumnForX(e){return(e-this.origin[0])/this.norm[0]}getXForColumn(e){let t=this.origin[0]+e*this.norm[0],i=this._spatialReferenceOrigin,r=this._spatialReferenceValid;return this.wrap&&i&&r?t===i[0]?r[0]:this.origin[0]===i[0]&&e===this.worldSize[0]?r[1]:t:t}getRowForY(e){return(this.origin[1]-e)/this.norm[1]}getYForRow(e){return this.origin[1]-e*this.norm[1]}getTileBounds(e,t,i=!1){M.set(t);let r=i?M.col:this.denormalizeCol(M.col,M.world),s=M.row;return function(e,t,i,r,s){e[0]=t,e[1]=i,e[2]=r,e[3]=s}(e,this.getXForColumn(r),this.getYForRow(s+1),this.getXForColumn(r+1),this.getYForRow(s)),e}getTileCoords(e,t,i=!1){M.set(t);let r=i?M.col:this.denormalizeCol(M.col,M.world);return Array.isArray(e)?I(e,this.getXForColumn(r),this.getYForRow(M.row)):(e.x=this.getXForColumn(r),e.y=this.getYForRow(M.row)),e}}var k=i(93687);class A{constructor(){this.spans=[]}static{this.pool=new k.A(()=>new A)}acquire(e){this.lodInfo=e}release(){this.lodInfo=null,this.spans.length=0}*keys(){let e=this.lodInfo;for(let{row:t,colFrom:i,colTo:r}of this.spans)for(let s=i;s<=r;s++){let i=e.getWorldForColumn(s);yield new v.A(e.level,t,e.normalizeCol(s),i)}}forEach(e,t){let{spans:i,lodInfo:r}=this,{level:s}=r;if(0!==i.length)for(let{row:n,colFrom:a,colTo:o}of i)for(let i=a;i<=o;i++)e.call(t,s,n,r.normalizeCol(i),r.getWorldForColumn(i))}}class P{constructor(e,t,i){this.row=e,this.colFrom=t,this.colTo=i}}const T=new v.A("0/0/0/0");class F{static create(e,t){e[1]>t[1]&&([e,t]=[t,e]);let[i,r]=e,[s,n]=t,a=s-i,o=n-r,l=0===o?0:a/o,u=(Math.ceil(r)-r)*l,h=(Math.floor(r)-r)*l;return new F(i,Math.floor(r),Math.ceil(n),l,a<0?u:h,a<0?h:u,a<0?s:i,a<0?i:s)}constructor(e,t,i,r,s,n,a,o){this.x=e,this.ymin=t,this.ymax=i,this.invM=r,this.leftAdjust=s,this.rightAdjust=n,this.leftBound=a,this.rightBound=o}incrRow(){this.x+=this.invM}getLeftCol(){return Math.max(this.x+this.leftAdjust,this.leftBound)}getRightCol(){return Math.min(this.x+this.rightAdjust,this.rightBound)}}const E=[[0,0],[0,0],[0,0],[0,0]];class R{constructor(e,t=null,i=e.lods[0].level,r=e.lods[e.lods.length-1].level){this.tileInfo=e,this.fullExtent=t,this.scales=[],this._infoByScale={},this._infoByLevel={};let s=e.lods.filter(e=>e.level>=i&&e.level<=r);this.minScale=s[0].scale,this.maxScale=s[s.length-1].scale;let n=this._lodInfos=s.map(i=>C.create(e,i,t));s.forEach((e,t)=>{this._infoByLevel[e.level]=n[t],this._infoByScale[e.scale]=n[t],this.scales[t]=e.scale},this),this._wrap=e.isWrappable}get spatialReference(){return this.tileInfo.spatialReference}get origin(){return this.tileInfo.origin}get size(){return this.tileInfo.size}getLODInfoAt(e){return this._infoByLevel["number"==typeof e?e:e.level]}getTileBounds(e,t,i=!1){T.set(t);let r=this._infoByLevel[T.level];return r?r.getTileBounds(e,T,i):e}getTileCoords(e,t,i=!1){T.set(t);let r=this._infoByLevel[T.level];return r?r.getTileCoords(e,T,i):e}getTileCoverage(e,t=192,i=!0,r="closest"){if(!i&&(e.scale>this.minScale||e.scale<this.maxScale))return null;let s,n,a,o="closest"===r?this.getClosestInfoForScale(e.scale):this.getSmallestInfoForScale(e.scale),l=A.pool.acquire(o),u=this._wrap,h=1/0,c=-1/0,d=l.spans;E[0][0]=E[0][1]=E[1][1]=E[3][0]=-t,E[1][0]=E[2][0]=e.size[0]+t,E[2][1]=E[3][1]=e.size[1]+t;for(let t of E)e.toMap(t,t),t[0]=o.getColumnForX(t[0]),t[1]=o.getRowForY(t[1]);let p=[],f=3;for(let e=0;e<4;e++){if(E[e][1]===E[f][1]){f=e;continue}let t=F.create(E[e],E[f]);h=Math.min(t.ymin,h),c=Math.max(t.ymax,c),void 0===p[t.ymin]&&(p[t.ymin]=[]),p[t.ymin].push(t),f=e}if(null==h||null==c||c-h>100)return null;let m=[];for(s=h;s<c;){null!=p[s]&&(m=m.concat(p[s])),n=1/0,a=-1/0;for(let e=m.length-1;e>=0;e--){let t=m[e];n=Math.min(n,t.getLeftCol()),a=Math.max(a,t.getRightCol())}if(n=Math.floor(n),a=Math.floor(a),s>=o.first[1]&&s<=o.last[1])if(u)if(o.size[0]<o.worldSize[0]){let e=Math.floor(a/o.worldSize[0]);for(let t=Math.floor(n/o.worldSize[0]);t<=e;t++)d.push(new P(s,Math.max(o.getFirstColumnForWorld(t),n),Math.min(o.getLastColumnForWorld(t),a)))}else d.push(new P(s,n,a));else n>o.last[0]||a<o.first[0]||(n=Math.max(n,o.first[0]),a=Math.min(a,o.last[0]),d.push(new P(s,n,a)));s+=1;for(let e=m.length-1;e>=0;e--){let t=m[e];t.ymax>=s?t.incrRow():m.splice(e,1)}}return l}getTileParentId(e){T.set(e);let t=this._infoByLevel[T.level],i=this._lodInfos.indexOf(t)-1;return i<0?null:(this._getTileIdAtLOD(T,this._lodInfos[i],T),T.id)}getTileResolution(e){let t=this._infoByLevel["object"==typeof e?e.level:e];return t?t.resolution:-1}getTileScale(e){let t=this._infoByLevel[e.level];return t?t.scale:-1}intersects(e,t){T.set(t);let i=this._infoByLevel[T.level],r=e.lodInfo;if(r.resolution>i.resolution){this._getTileIdAtLOD(T,r,T);let t=r.denormalizeCol(T.col,T.world);for(let i of e.spans)if(i.row===T.row&&i.colFrom<=t&&i.colTo>=t)return!0}if(r.resolution<i.resolution){let[t,s,n,a]=e.spans.reduce((e,t)=>(e[0]=Math.min(e[0],t.row),e[1]=Math.max(e[1],t.row),e[2]=Math.min(e[2],t.colFrom),e[3]=Math.max(e[3],t.colTo),e),[1/0,-1/0,1/0,-1/0]),o=i.denormalizeCol(T.col,T.world),l=r.getColumnForX(i.getXForColumn(o)),u=r.getRowForY(i.getYForRow(T.row)),h=r.getColumnForX(i.getXForColumn(o+1))-1,c=r.getRowForY(i.getYForRow(T.row+1))-1;return!(l>a||h<n||u>s||c<t)}let s=r.denormalizeCol(T.col,T.world);return e.spans.some(e=>e.row===T.row&&e.colFrom<=s&&e.colTo>=s)}normalizeBounds(e,t,i){if(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this._wrap){let t=(0,w.Vp)(this.tileInfo.spatialReference),r=-i*(t.valid[1]-t.valid[0]);e[0]+=r,e[2]+=r}return e}getSmallestInfoForScale(e){let t=this.scales;if(this._infoByScale[e])return this._infoByScale[e];if(e>t[0])return this._infoByScale[t[0]];for(let i=1;i<t.length-1;i++)if(e>t[i]+1e-6)return this._infoByScale[t[i-1]];return this._infoByScale[t[t.length-1]]}getClosestInfoForScale(e){let t=this.scales;return this._infoByScale[e]||(e=t.reduce((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t,t[0])),this._infoByScale[e]}scaleToLevel(e){let t=this.scales;if(this._infoByScale[e])return this._infoByScale[e].level;for(let i=t.length-1;i>=0;i--)if(e<t[i])return i===t.length-1?this._infoByScale[t[t.length-1]].level:this._infoByScale[t[i]].level+(t[i]-e)/(t[i]-t[i+1]);return this._infoByScale[t[0]].level}scaleToZoom(e){return this.tileInfo.scaleToZoom(e)}zoomToScale(e){return this.tileInfo.zoomToScale(e)}_getTileIdAtLOD(e,t,i){let r=this._infoByLevel[i.level];return e.set(i),t.resolution<r.resolution?null:(t.resolution===r.resolution||(e.level=t.level,e.col=Math.floor(i.col*r.resolution/t.resolution+.01),e.row=Math.floor(i.row*r.resolution/t.resolution+.01)),e)}}var O=i(32198),L=i(69622),z=i(91869),D=i(3483),N=i(91429),B=i(37585),q=i(9775),G=i(32587),U=i(76030),W=i(44794);class V{constructor(e,t){this.item=e,this.controller=t,this.promise=null}}class j{constructor(e){this._schedule=null,this._task=null,this._deferreds=new G.A,this._controllers=new G.A,this._processingItems=new G.A,this._pausedSignal=(0,W.v)(!1),this.concurrency=1,e.concurrency&&(this.concurrency=e.concurrency),this._queue=new q.A(e.peeker),this.process=e.process;let t=e.scheduler;e.priority&&t&&(this._task=t.registerTask(e.priority,this))}destroy(){this.clear(),this._schedule=(0,m.xt)(this._schedule),this._task=(0,m.xt)(this._task)}get updating(){return!!this._task?.updating||this.readyToRun}get length(){return this._processingItems.size+this._queue.length}abort(e){let t=this._controllers.get(e);t&&t.abort()}clear(){this._queue.clear();let e=[];this._controllers.forEach(t=>e.push(t)),this._controllers.clear(),e.forEach(e=>e.abort()),this._processingItems.clear(),this._cancelNext()}forEach(e){this._deferreds.forEach((t,i)=>e(i))}get(e){let t=this._deferreds.get(e);return t?t.promise:void 0}isOngoing(e){return this._processingItems.has(e)}has(e){return this._deferreds.has(e)}pause(){this._pausedSignal.value||(this._pausedSignal.value=!0,this._cancelNext())}push(e,t){let i=this.get(e);if(i)return i;let r=new AbortController,s=null;t&&(s=(0,o.u7)(t,()=>r.abort()));let n=()=>{a.remove(),s?.remove(),this._removeItem(e),this._queue.remove(e),this._scheduleNext()},a=(0,o.NY)(r.signal,()=>{let t=this._processingItems.get(e);t&&t.controller.abort(),n(),l.reject((0,o.NK)())}),l=Promise.withResolvers();return this._deferreds.set(e,l),this._controllers.set(e,r),l.promise.then(n,n),this._queue.push(e),this._scheduleNext(),l.promise}last(){return this._queue.last()}lastPromise(){let e=this.last();return e?this.get(e):null}peek(){return this._queue.peek()}popLast(){let e=this._queue.popLast();return e&&(this._deferreds.get(e)?.reject((0,o.NK)()),this._removeItem(e)),e}reset(){let e=Array.from(this._processingItems.values());this._processingItems.clear();for(let t of e)this._queue.push(t.item),t.controller.abort();this._scheduleNext()}resume(){this._pausedSignal.value&&(this._pausedSignal.value=!1,this._scheduleNext())}takeAll(){let e=[];for(;this._queue.length;)e.push(this._queue.pop());return this.clear(),e}get readyToRun(){return!this._pausedSignal.value&&this._queue.length>0&&this._processingItems.size<this.concurrency}runTask(e){for(;!e.done&&this._queue.length>0&&this._processingItems.size<this.concurrency;)this._process(this._queue.pop()),e.madeProgress()}_removeItem(e){this._deferreds.delete(e),this._controllers.delete(e),this._processingItems.delete(e)}_scheduleNext(){this._task||this._pausedSignal.value||this._schedule||(this._schedule=(0,U._)(()=>{this._schedule=null,this._next()}))}_next(){for(;this._queue.length>0&&this._processingItems.size<this.concurrency;)this._process(this._queue.pop())}_cancelNext(){this._schedule&&=(this._schedule.remove(),null)}_processResult(e,t){this._canProcessFulfillment(e)&&(this._scheduleNext(),this._deferreds.get(e.item).resolve(t))}_processError(e,t){this._canProcessFulfillment(e)&&(this._scheduleNext(),this._deferreds.get(e.item).reject(t))}_canProcessFulfillment(e){return!(!this._deferreds.get(e.item)||this._processingItems.get(e.item)!==e)}_process(e){if(null==e)return;let t,i=new AbortController,r=new V(e,i);this._processingItems.set(e,r);try{t=this.process(e,i.signal)}catch(e){this._processError(r,e)}(0,o.$X)(t)?(r.promise=t,t.then(e=>this._processResult(r,e),e=>this._processError(r,e))):this._processResult(r,t)}get test(){}}const Y=[0,0];let $=class extends L.A{constructor(e){super(e),this._keyToItem=new Map,this._tilesByScale=new Map,this.concurrency=6}initialize(){let{concurrency:e,process:t,scheduler:i,priority:r}=this;this._queue=new j({concurrency:e,scheduler:i,priority:r,process:(e,i)=>{let r=this._keyToItem.get(e);return t(r,{signal:i})},peeker:e=>this._peek(e)})}destroy(){this.clear(),this._queue=(0,m.pR)(this._queue)}get length(){return this._queue?this._queue.length:0}abort(e){let t="string"==typeof e?e:e.id;this._queue.abort(t)}clear(){this._queue.clear(),this._keyToItem.clear(),this._tilesByScale.clear()}has(e){return"string"==typeof e?this._keyToItem.has(e):this._keyToItem.has(e.id)}pause(){this._queue.pause()}push(e){let t=e.key.id;if(this._queue.has(t))return this._queue.get(t);let i=this._queue.push(t),r=this.tileInfoView.getTileScale(e.key),s=(0,z.tE)(this._tilesByScale,r,()=>new Set),n=()=>{s.delete(e.key),0===s.size&&this._tilesByScale.delete(r),this._keyToItem.delete(t)};return s.add(e.key),this._keyToItem.set(t,e),i.then(n,n),i}reset(){this._queue.reset()}resume(){this._queue.resume()}_peek(e){if(!this.state)return e.values().next().value;let t=new Set;for(let i of e)t.add(this._keyToItem.get(i).key);let i,r=this.state.scale,s=1/0;for(let[e,n]of this._tilesByScale)if((0,D.bw)(n,e=>t.has(e))){let t=Math.abs(e-r);t<s&&(i=n,s=t)}return this._getClosestTileKey(i,e).id}_getClosestTileKey(e,t){let i,r=this.tileInfoView,s=this.state.center,n=1/0;for(let a of e)if(t.has(a.id)){r.getTileCoords(Y,a);let e=(0,B.Io)(Y,s);e<n&&(n=e,i=a)}return i}};(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],$.prototype,"concurrency",void 0),(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],$.prototype,"priority",void 0),(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],$.prototype,"process",void 0),(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],$.prototype,"scheduler",void 0),(0,O.Cg)([(0,N.MZ)()],$.prototype,"state",void 0),(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],$.prototype,"tileInfoView",void 0),$=(0,O.Cg)([(0,N.$K)("esri.views.2d.tiling.TileQueue")],$);var H=i(19419);new v.A(0,0,0,0),new Map;class X{static{this.byteSizeHint=7*Uint32Array.BYTES_PER_ELEMENT}static{this.estimatedMemory=40}constructor(e,t,i,r,s,n,a){this.instanceId=e,this.textureKey=t,this.indexStart=i,this.indexCount=r,this.vertexStart=s,this.vertexCount=n,this.overlaps=a}updateBaseOffsets(e){this.vertexStart+=e.vertexFrom,this.indexStart+=e.indexFrom}clone(){return new X(this.instanceId,this.textureKey,this.indexStart,this.indexCount,this.vertexStart,this.vertexCount,this.overlaps)}static write(e,t,i,r,s,n,a,o){e.push(t),e.push(i),e.push(r),e.push(s),e.push(n),e.push(a),e.push(o)}serialize(e){return e.push(this.instanceId),e.push(this.textureKey),e.push(this.indexStart),e.push(this.indexCount),e.push(this.vertexStart),e.push(this.vertexCount),e.push(this.overlaps),e}static deserialize(e){let t=e.readInt32(),i=e.readInt32(),r=e.readInt32(),s=e.readInt32(),n=e.readInt32(),a=e.readInt32(),o=e.readInt32();return new X(t,i,r,s,n,a,o)}}function Z(e,t){if(null!==t){e.push(t.length);for(let i of t)i.serialize(e);return e}e.push(0)}function Q(e,t,i){let r=e.readInt32(),s=Array(r);for(let r=0;r<s.length;r++)s[r]=t.deserialize(e,i);return s}class K{static{this.byteSizeHint=2*Uint32Array.BYTES_PER_ELEMENT+X.byteSizeHint}static estimateMemory(e){return 24+X.estimatedMemory*e}constructor(e,t){this.id=e,this.sortKey=t,this.records=[]}serialize(e){return e.push(this.id),e.writeF32(this.sortKey),Z(e,this.records),e}static deserialize(e){let t=e.readInt32(),i=e.readF32(),r=new K(t,i);return r.records=Q(e,X)??[],r}}class J{get length(){return this._pos}constructor(e,t){this._pos=0;let i=t?this._roundToNearest(t,e.BYTES_PER_ELEMENT):40;this._array=new ArrayBuffer(i),this._buffer=new e(this._array),this._ctor=e,this._i16View=new Int16Array(this._array)}_roundToNearest(e,t){let i=Math.round(e);return 1===t?i:i+(t-i%t)}_ensureSize(e){if(this._pos+e>=this._buffer.length){let t=this._roundToNearest(1.25*(this._array.byteLength+e*this._buffer.BYTES_PER_ELEMENT),this._buffer.BYTES_PER_ELEMENT),i=new ArrayBuffer(t),r=new this._ctor(i);r.set(this._buffer,0),this._array=i,this._buffer=r,this._i16View=new Int16Array(this._array)}}ensureSize(e){this._ensureSize(e)}writeF32(e){this._ensureSize(1);let t=this._pos;return new Float32Array(this._array,4*this._pos,1)[0]=e,this._pos++,t}push(e){this._ensureSize(1);let t=this._pos;return this._buffer[this._pos++]=e,t}writeFixed(e){this._buffer[this._pos++]=e}setValue(e,t){this._buffer[e]=t}i1616Add(e,t,i){this._i16View[2*e]+=t,this._i16View[2*e+1]+=i}getValue(e){return this._buffer[e]}getValueF32(e){return new Float32Array(this._array,4*e,1)[0]}incr(e){if(this._buffer.length<e)throw Error("Increment index overflows the target buffer");this._buffer[e]++}decr(e){this._buffer[e]--}writeRegion(e){this._ensureSize(e.length);let t=this._pos;return this._buffer.set(e,this._pos),this._pos+=e.length,t}writeManyFrom(e,t,i){this._ensureSize(i-t);for(let r=t;r!==i;r++)this.writeFixed(e._buffer[r])}buffer(){let e=this._array.slice(0,4*this._pos);return this.destroy(),e}toArray(){return[...this._buffer]}seek(e){this._pos=e}destroy(){this._array=null,this._buffer=null}}class ee{constructor(e,t,i=0){let r=6*i*Uint32Array.BYTES_PER_ELEMENT,s=4*i*t.stride,n=t.stride/4,a=t.attributes.find(e=>"pos"===e.name||"position"===e.name);if(!a)throw Error("InternalError: Unable to find position attribute");this.layout={...t,position:a},this._indices=new J(Uint32Array,r),this._vertices=new J(Uint32Array,s),this._metrics=new J(Uint32Array,0),this._metricCountOffset=this._metrics.push(0),this._strideInt=n,this._instanceId=e}serialize(e){let t=this._indices.buffer(),i=this._vertices.buffer(),r=this._metrics.length?this._metrics.buffer():null;return e.push(t,i),{instanceId:this._instanceId,layout:this.layout,indices:t,vertices:i,metrics:r}}get strideInt(){return this._strideInt}get vertexCount(){return this._vertices.length/this._strideInt}get indexCount(){return this._indices.length}get indexWriter(){return this._indices}get vertexWriter(){return this._vertices}get metricWriter(){return this._metrics}vertexEnsureSize(e){this._vertices.ensureSize(e)}indexEnsureSize(e){this._indices.ensureSize(e)}writeIndex(e){this._indices.push(e)}writeVertex(e){this._vertices.push(e)}writeVertexRegion(e){this._vertices.writeRegion(e)}writeVertexF32(e){this._vertices.writeF32(e)}writeMetric(e){this._metrics.incr(this._metricCountOffset),e.serialize(this._metrics)}}class te{constructor(e,t=0){this._id=e,this._sizeHint=t,this._entityRecordCountOffset=0,this._entityCountOffset=0,this._entityIdIndex=0,this._entitySortKeyIndex=0,this._didEntityStart=!1,this._instanceIdToVertexData=new Map,this._recordIndexStart=0,this._recordIndexCount=0,this._recordVertexStart=0,this._recordVertexCount=0,this._pendingMetrics=[],this._current={metric:null,writer:null,start:0,sortKey:0,instanceId:0,layoutHash:0,indexStart:0,vertexStart:0,textureKey:0,metricBoxLenPointer:0},this._requiresRefresh=!1,this._entities=new J(Uint32Array,this._sizeHint*K.byteSizeHint),this._entityCountOffset=this._entities.push(0)}get id(){return this._id}serialize(){let e=[],t=[],i=this._entities.buffer();for(let i of this._instanceIdToVertexData.values())t.push(i.serialize(e));return{message:{data:t,entities:i},transferList:e}}get requiresRefresh(){return this._requiresRefresh}set requiresRefresh(e){this._requiresRefresh=e}vertexStart(){return this._current.vertexStart??0}vertexCount(){return this._current.writer?.vertexCount??0}indexCount(){return this._current.writer?.indexCount??0}vertexEnsureSize(e){this._current.writer.vertexEnsureSize(e)}indexEnsureSize(e){this._current.writer.indexEnsureSize(e)}vertexWrite(e){this._current.writer.writeVertex(e)}vertexWriteRegion(e){this._current.writer.writeVertexRegion(e)}vertexWriteF32(e){this._current.writer.writeVertexF32(e)}recordBounds(e,t,i,r){}indexWrite(e){this._current.writer.writeIndex(e)}metricStart(e){this._current.metric=e,this._current.metric.recordStart=this.recordCount()}metricEnd(){let e=this._current.writer;this._current.metric&&(this._current.metric.recordCount=this.recordCount()-this._current.metric.recordStart),!this._current.metric?.bounds.length||!this._current.metric?.recordCount||this._pendingMetrics.push({metric:this._current.metric,writer:e}),this._current.metric=null}metricBoxWrite(e){this._current.metric.bounds.push(e)}entityStart(e,t=e){this._entityIdIndex=this._entities.push(e),this._entitySortKeyIndex=this._entities.writeF32(t),this._entityRecordCountOffset=this._entities.push(0),this._didEntityStart=!0}entityRecordCount(){return this._entities.getValue(this._entityRecordCountOffset)}entityEnd(){if(this._didEntityStart){for(let{metric:e,writer:t}of this._pendingMetrics)t.writeMetric(e);this._pendingMetrics.length=0,0===this.entityRecordCount()?this._entities.seek(this._entityIdIndex):this._entities.incr(this._entityCountOffset),this._didEntityStart=!1}}recordCount(){return this._entities.getValue(this._entityRecordCountOffset)}recordStart(e,t,i=0){this._current.writer=this._getVertexWriter(e,t),this._current.indexStart=this._current.writer.indexCount,this._current.vertexStart=this._current.writer.vertexCount,this._current.instanceId=e,this._current.layoutHash=t.hash,this._current.textureKey=i}withRecord(e,t,i,r){return this.recordStart(e,t,i??void 0),r(),this.recordEnd()}writeWithoutBuffering(e){e()}recordEnd(e=0){let t=this._current.vertexStart,i=this._current.writer.vertexCount-t;if(!i)return!1;let r=this._current.indexStart,s=this._current.writer.indexCount-r;return this._recordIndexStart=r,this._recordIndexCount=s,this._recordVertexStart=t,this._recordVertexCount=i,this._entities.incr(this._entityRecordCountOffset),X.write(this._entities,this._current.instanceId,this._current.textureKey,r,s,t,i,e),!0}copyLast(e,t){let i=this._recordVertexStart+this._recordVertexCount;this._entities.incr(this._entityRecordCountOffset),X.write(this._entities,this._current.instanceId,this._current.textureKey,this._recordIndexStart+this._recordIndexCount,this._recordIndexCount,i,this._recordVertexCount,0);let r=this._current.writer.indexWriter,s=this._current.writer.vertexWriter,n=this._recordIndexStart+this._recordIndexCount,a=this._recordVertexCount;for(let e=this._recordIndexStart;e!==n;e++){let t=r.getValue(e);r.push(t+a)}let o=this._current.writer.layout.stride/Uint32Array.BYTES_PER_ELEMENT,l=this._recordVertexStart*o,u=(this._recordVertexStart+this._recordVertexCount)*o;for(let e=l;e!==u;e++){let t=s.getValue(e);s.push(t)}let h=this._current.writer.layout.position,c=h.packPrecisionFactor??1,d=h.offset/Uint32Array.BYTES_PER_ELEMENT,p=e*c,f=t*c;for(let e=i*o;e<=s.length;e+=o)s.i1616Add(e+d,p,f)}copyLastFrom(e,t,i){let r=e._entities.getValue(e._entityIdIndex),s=this._entities.getValue(this._entityIdIndex);if(!this._didEntityStart||r!==s){let t=e._entities.getValueF32(e._entitySortKeyIndex);this.entityStart(r,t)}this.recordStart(e._current.instanceId,e._current.writer.layout,e._current.textureKey);let n=this._current.writer.layout.stride/Uint32Array.BYTES_PER_ELEMENT,a=this._current.vertexStart,o=e._current.vertexStart-a,l=this._current.writer.indexWriter,u=this._current.writer.vertexWriter,h=e._current.writer.indexWriter,c=e._current.writer.vertexWriter;for(let t=e._current.indexStart;t!==h.length;t++){let e=h.getValue(t);l.push(e-o)}for(let t=e._current.vertexStart*n;t!==c.length;t++){let e=c.getValue(t);u.push(e)}let d=this._current.writer.layout.position,p=d.packPrecisionFactor??1,f=d.offset/Uint32Array.BYTES_PER_ELEMENT,m=t*p,y=i*p;for(let e=a*n;e<=u.length;e+=n)u.i1616Add(e+f,m,y);this.recordEnd()}_getVertexWriter(e,t){let i=this._instanceIdToVertexData;return i.has(e)||i.set(e,new ee(e,t,this._sizeHint)),i.get(e)}}const ie=!!(0,n.A)("featurelayer-pixel-buffering-enabled");function re(e){switch(e){case 1:case 8:case 32:return-1;case 2:case 64:return 0;case 4:case 16:case 128:return 1}}function se(e){switch(e){case 1:case 2:case 4:return-1;case 8:case 16:return 0;case 32:case 64:case 128:return 1}}class ne{constructor(e,t,i,r=0){this.tileKey=e,this._sizeHint=r,this._meshes={self:new te(this.id,this._sizeHint),neighbors:[]},this._currentRecordOverlaps=0,this._currentEntityOverlaps=0,this._suppressPixelBuffering=!1;let s=+!!i;this._copyBufferedDataIntoSelf=t&&ie&&e.level===s}get id(){return this.tileKey.id}get requiresRefresh(){return this._meshes.self.requiresRefresh||this._meshes.neighbors.some(e=>e.requiresRefresh)}set requiresRefresh(e){this._meshes.self.requiresRefresh=e}vertexStart(){return this._meshes.self.vertexStart()??0}vertexCount(){return this._meshes.self.vertexCount()}indexCount(){return this._meshes.self.indexCount()}indexEnsureSize(e){this._meshes.self.indexEnsureSize(e)}entityStart(e,t=e){this._currentEntityOverlaps=0,this._meshes.self.entityStart(e,t)}entityRecordCount(){return this._meshes.self.entityRecordCount()}entityEnd(){if(this._meshes.self.entityEnd(),ie){if(this._copyBufferedDataIntoSelf)return;for(let e=0;e<8;e++){let t=1<<e;this._currentEntityOverlaps&t&&this._meshes.neighbors[e].entityEnd()}}}recordStart(e,t,i){this._currentRecordOverlaps=0,this._meshes.self.recordStart(e,t,i)}withRecord(e,t,i,r){return this.recordStart(e,t,i??void 0),r(),this.recordEnd()}writeWithoutBuffering(e){let t=this._suppressPixelBuffering;this._suppressPixelBuffering=!0;try{e()}finally{this._suppressPixelBuffering=t}}recordEnd(e=0){let t=this._meshes.self.recordEnd(this._currentRecordOverlaps);return t&&!this._suppressPixelBuffering&&0!==this._currentRecordOverlaps?(this._copyIntoNeighbors(),this._currentEntityOverlaps|=this._currentRecordOverlaps,!0):t}recordBounds(e,t,i,r){ie&&!this._suppressPixelBuffering&&this._addOverlap(e,t,i,r)}recordCount(){return this._meshes.self.recordCount()}metricStart(e){this._meshes.self.metricStart(e)}metricBoxWrite(e){this._meshes.self.metricBoxWrite(e)}metricEnd(){this._meshes.self.metricEnd()}vertexWrite(e){this._meshes.self.vertexWrite(e)}vertexWriteF32(e){this._meshes.self.vertexWriteF32(e)}vertexWriteRegion(e){this._meshes.self.vertexWriteRegion(e)}indexWrite(e){this._meshes.self.indexWrite(e)}serialize(e){let t={message:[],transferList:[]},i=this._meshes.self.serialize();return t.message.push({tileId:this.tileKey.id,requiresRefresh:this.requiresRefresh,...i.message}),t.transferList.push(...i.transferList),this._meshes.neighbors.forEach((i,r)=>{let s=i.serialize(),n=1<<r,a=re(n),o=se(n),l=new v.A(this.tileKey).getNormalizedNeighbor(a,o,e);t.message.push({tileId:l.id,requiresRefresh:this.requiresRefresh,...s.message}),t.transferList.push(...s.transferList)}),t}_addOverlap(e,t,i,r){let s=Math.min(256,i),n=Math.min(256,r),a=255^((e<0+s?148:e>=512-s?41:189)|(t<0+n?224:t>=512-n?7:231));this._currentRecordOverlaps|=a}_copyIntoNeighbors(){for(let e=0;e<8;e++){let t=1<<e;if(this._currentRecordOverlaps&t){if(this._copyBufferedDataIntoSelf){let e=512*-re(t),i=512*-se(t);if(0!==i)continue;this._meshes.self.copyLast(e,i);continue}if(!this._meshes.neighbors[e]){let i=Math.floor(this._sizeHint/16);this._meshes.neighbors[e]=new te(t,i)}let i=this._meshes.neighbors[e],r=512*-re(t),s=512*-se(t);i.copyLastFrom(this._meshes.self,r,s)}}}}var ae=i(36745),oe=i(34653);const le=96/72;class ue{constructor(e){this._properties=e}getEffectExecutionContextOverrides(e,t=!1){let i=this.getReferenceInfo(),r=function(e){let{matcher:t,target:i,tileKey:r}=e;return t&&i&&null!=r&&"function"==typeof i.getObjectId&&"getMatcherGeometryOverride"in t&&"function"==typeof t.getMatcherGeometryOverride?t.getMatcherGeometryOverride(`${r}_${i.getObjectId()}`)?.absoluteCalloutAnchor??null:null}(e),s=i?.bodyBoundsUseReferenceScale?e.scaleFactor??1:1;return{scaleFactor:s,callout:{relativeAnchor:i?.anchor??void 0,relativeLayoutAnchor:i?.layoutAnchor??void 0,absoluteAnchor:r?{x:r.x,y:-r.y}:void 0,bodyBounds:i?he(i.bodyBounds,s):void 0,preserveInputGeometry:t}}}resolveEffectGeometry(e,t,i){let r=this._getReferencedEffectGeometry(e);return r?{geometry:r,preserveInputGeometry:!0}:{geometry:i?t:ae.z.fromJSON({x:0,y:0}),preserveInputGeometry:!1}}getViewRotation(e){return this._properties.collisionVisibility?0:e}getCollisionBounds(e=1){let t=this.getReferenceInfo();if(!t)return;if(function(e){return"getCalloutCollisionBounds"in e&&"function"==typeof e.getCalloutCollisionBounds}(this._properties.writer))return this._properties.writer.getCalloutCollisionBounds(t,e);let i=t.bodyBoundsUseReferenceScale?e:1,r=he(t.collisionBodyBounds??t.bodyBounds,i);for(let e of this._properties.effects??[]){if(!me(e)||"background"!==e.part||"CIMBackgroundCallout"!==e.type&&"CIMBalloonCallout"!==e.type)continue;let t=e.margin,s=le*i,n={xmin:r.xmin-(t?.left??0)*s,ymin:r.ymin-(t?.bottom??0)*s,xmax:r.xmax+(t?.right??0)*s,ymax:r.ymax+(t?.top??0)*s};return"CIMBalloonCallout"===e.type?(0,oe.pT)(n,e.balloonStyle):n}}getCornerRadius(e=1){let t=this.getReferenceInfo();if(!t)return 0;let i=t.bodyBoundsUseReferenceScale?e:1,r=he(t.bodyBounds,i);for(let e of this._properties.effects??[])if(me(e)&&"background"===e.part&&"CIMBalloonCallout"===e.type)return(0,oe.Je)((0,oe.XD)(r,(0,oe.QB)(e.margin,le*i)),e.balloonStyle);return 0}getPartCollisionBounds(e=1){let t=this.getReferenceInfo();if(!t)return[];if(function(e){return"getCalloutPartCollisionBounds"in e&&"function"==typeof e.getCalloutPartCollisionBounds}(this._properties.writer))return this._properties.writer.getCalloutPartCollisionBounds(e);let i=t.bodyBoundsUseReferenceScale?e:1,r=he(t.bodyBounds,i),s=he(t.collisionBodyBounds??t.bodyBounds,i),n=ye(r),a=ye(s),o=t.anchor??n,l=t.layoutAnchor??o,u={x:o.x-(n.x-a.x),y:o.y-(n.y-a.y)},h={x:l.x-(n.x-a.x),y:l.y-(n.y-a.y)},c=le*i,d=Math.max(1,function(e){return function(e){return"getCalloutCollisionPadding"in e&&"function"==typeof e.getCalloutCollisionPadding}(e)?e.getCalloutCollisionPadding():0}(this._properties.writer)),p=[];for(let e of this._properties.effects??[])me(e)&&p.push(...ce(e,s,u,h,c,d));return p}getReferenceInfo(){return function(e){return"getLocalCalloutReferenceInfo"in e&&"function"==typeof e.getLocalCalloutReferenceInfo}(e=this._properties.reference)?function(e){if(!e||!ge(e.bodyBounds))return;let t=e.anchor??ye(e.bodyBounds),i=e.layoutAnchor??t,r=e.collisionBodyBounds;return xe(t)&&xe(i)?{anchor:t,...e.layoutAnchor?{layoutAnchor:i}:null,bodyBounds:e.bodyBounds,...r&&ge(r)?{collisionBodyBounds:r}:null,...e.bodyBoundsUseReferenceScale?{bodyBoundsUseReferenceScale:!0}:null}:void 0}(e.getLocalCalloutReferenceInfo()):function(e){if(!function(e){return null!=e&&null!=e.offsetX&&!isNaN(e.offsetX)&&null!=e.offsetY&&!isNaN(e.offsetY)&&null!=e.size&&!isNaN(e.size)}(e))return;let t=e.size/2,i={xmin:e.offsetX-t,ymin:e.offsetY-t,xmax:e.offsetX+t,ymax:e.offsetY+t};return{anchor:ye(i),bodyBounds:i}}(e.getBoundsInfo());var e}getReferencedRotation(){let e=this._properties.reference;if(e&&function(e){return"getCalloutRotation"in e&&"function"==typeof e.getCalloutRotation}(e)){let t=e.getCalloutRotation();return null!=t&&Number.isFinite(t)?t:void 0}}_getReferencedEffectGeometry(e){let t=this._properties.reference;return t&&function(e){return"getCalloutEffectGeometry"in e&&"function"==typeof e.getCalloutEffectGeometry}(t)?t.getCalloutEffectGeometry(e)??void 0:void 0}}function he(e,t){return 1===t?e:{xmin:e.xmin*t,ymin:e.ymin*t,xmax:e.xmax*t,ymax:e.ymax*t}}function ce(e,t,i,r,s,n){switch(e.type){case"CIMBackgroundCallout":return function(e,t,i,r,s){let n=(0,oe.XD)(t,(0,oe.QB)(e.margin,r));return"background"===e.part?[]:"accent-bar"===e.part?pe((0,oe.W)(n,i,(e.gap??0)*r,1,e.lineStyle,t),s):de(n,i,e,r,s,e.hasAccentBar,t)}(e,t,i,s,n);case"CIMBalloonCallout":return function(e,t,i,r,s,n){let a=(0,oe.XD)(t,(0,oe.QB)(e.margin,s));if("background"===e.part&&e.separateDart)return[];let o=null==e.dartWidth?null:e.dartWidth*s,l="dart"===e.part?(0,oe.ZO)(a,i,e.balloonStyle,(e.leaderTolerance??0)*s,1,o,r):(0,oe.IF)(a,i,e.balloonStyle,(e.leaderTolerance??0)*s,1,o,r);return l?pe(l,n,(e,t)=>_e(e,i)||_e(t,i)):[]}(e,t,i,r,s,n);case"CIMPointSymbolCallout":return function(e,t,i,r,s){return"marker"===e.part?[]:de(t,i,e,r,s)}(e,t,i,s,n);case"CIMSimpleLineCallout":return function(e,t,i,r,s,n){let a=!1===e.autoSnap?{x:t.xmin,y:t.ymin}:(0,oe.E0)(t,r);return(0,oe.gR)(t,r)||(0,oe.Io)(a,r)<(e.leaderTolerance??0)*s?[]:fe(a,i,n)}(e,t,i,r,s,n)}}function de(e,t,i,r,s,n=!1,a=e){return(0,oe.gR)(e,t)||(0,oe.Io)((0,oe.sz)(e,t,i.lineStyle,(i.gap??0)*r,n,a),t)<(i.leaderTolerance??0)*r?[]:pe((0,oe.n_)(e,t,i.lineStyle,(i.leaderOffset??0)*r,(i.gap??0)*r,1,r,n,a),s)}function pe(e,t,i=()=>!0){let r=[];for(e.reset();e.nextPath();){let s=null;for(;e.nextPoint();){let n={x:e.x,y:e.y};s&&i(s,n)&&r.push(...fe(s,n,t)),s=n}}return e.reset(),r}function fe(e,t,i){let r=t.x-e.x,s=t.y-e.y,n=0!==r&&0!==s?Math.ceil(Math.max(Math.abs(r),Math.abs(s))/16):1,a=[];for(let t=0;t<n;t++){let o=t/n,l=(t+1)/n,u=e.x+r*o,h=e.y+s*o,c=e.x+r*l,d=e.y+s*l;a.push({xmin:Math.min(u,c)-i,ymin:Math.min(h,d)-i,xmax:Math.max(u,c)+i,ymax:Math.max(h,d)+i})}return a}function me(e){return"CIMBackgroundCallout"===e.type||"CIMBalloonCallout"===e.type||"CIMPointSymbolCallout"===e.type||"CIMSimpleLineCallout"===e.type}function ye(e){return{x:(e.xmin+e.xmax)/2,y:(e.ymin+e.ymax)/2}}function _e(e,t){return e.x===t.x&&e.y===t.y}function ge(e){return!(null==e.xmin||isNaN(e.xmin)||null==e.ymin||isNaN(e.ymin)||null==e.xmax||isNaN(e.xmax)||null==e.ymax||isNaN(e.ymax))}function xe(e){return null!=e.x&&!isNaN(e.x)&&null!=e.y&&!isNaN(e.y)}const be=e=>new we(e.out,e.scaleFactor);class we{constructor(e,t){this._out=e,this._scaleFactor=t}handles(e){return null!=e.calloutReference}coordinateWrite(e,t,i,r){let s=t.calloutReference,n=s?.getCalloutVisualCount?.()??1;for(let t=0;t<n;t++)s?.setCalloutVisualIndex?.(t),this._writeVisual(e,s,i,r)}_writeVisual(e,t,i,r){if(!t)return void r();let s=new ue({writer:e,effects:e.effects,reference:t,collisionVisibility:e.collisionVisibility}),n=null!=i.target.geometryType&&i.target.readGeometryForDisplay()?ae.z.fromOptimizedCIM(i.target.readGeometryForDisplay().clone(),i.target.geometryType):null,a="esriGeometryPoint"===i.target.geometryType||"esriGeometryMultipoint"===i.target.geometryType,o=s.resolveEffectGeometry(i,n,a),l=s.getReferenceInfo(),u={effect:{inputGeometry:o.geometry,executionContext:s.getEffectExecutionContextOverrides({matcher:i.matcher,scaleFactor:i.scaleFactor,target:i.target,tileKey:this._out.id||""},o.preserveInputGeometry),referenceBounds:l?.bodyBounds,rotation:s.getReferencedRotation(),viewRotation:s.getViewRotation(void 0)??void 0,clippingMargin:512+s.getCornerRadius(this._scaleFactor)+e.effectClippingPadding}},h=this._out.recordCount();t?.calloutRecordsUseLabelPhase?this._out.writeWithoutBuffering(()=>r(u)):r(u);let c=this._out.recordCount()-h;if(0===c)return;t?.includeCalloutRecordRange?.(h,c);let d=s.getCollisionBounds(this._scaleFactor);d&&t?.includeCalloutCollisionBounds?.(d);for(let e of s.getPartCollisionBounds(this._scaleFactor))t?.includeCalloutPartCollisionBounds?.(e)}}class ve{}class Se{constructor(e){this._context=e,this._coordinators=(e.coordinatorFactories??[]).map(t=>t({out:e.out,scaleFactor:e.scaleFactor}))}coordinateAndWrite(e,t={}){let i=[...e.writers],r=new Set;for(;i.length>0;){let s=this._getNextWriter(e,i,r,t.externalReferences);if(!s)throw Error("InternalError: mesh writer dependency graph contains a cycle");let[n]=i.splice(s.index,1),a=s.references;n.setReferences(a.bindings.size?a.bindings:null),this._coordinateWrite(n,a,t.matcher),r.add(n)}}_getNextWriter(e,t,i,r){for(let s=0;s<t.length;s++){let n=t[s],a=this._getReferences(e,n,r);if(a.internal.every(e=>i.has(e)))return{index:s,references:a}}return null}_write(e,t,i){let{out:r,proxy:s,feature:n,options:a,level:o,viewExtent:l,scaleFactor:u}=this._context;e.write(r,s,n,a,o,l,u,t,i)}_coordinateWrite(e,t,i){let r=this._coordinators.filter(e=>e.handles(t)),{feature:s,options:n,level:a,viewExtent:o,scaleFactor:l}=this._context,u={target:s,options:n,level:a,viewExtent:o,scaleFactor:l,matcher:i},h=(s,n)=>{let a=r[s];a?a.coordinateWrite(e,t,u,e=>h(s+1,{...n,...e})):this._write(e,i,n)};h(0)}_getReferences(e,t,i){let r=new Map,s=[],n=null;for(let a of e.dependencies.get(t)??[]){if(a.external){let e=i?.get(a.type);if(!e)continue;r.set(a.type,e);continue}let e=a.writer;s.push(e),r.set(a.type,e),"callout-body"===a.type&&(n=e)}return{bindings:r,internal:s,calloutReference:n}}}var Ie=i(72691),Me=i(4718),Ce=i(23650);function ke(e,t){if(e.length!==t.length)throw Error("InternalError: mesh writer schemas and writers must have matching lengths");let i=new Map;for(let r=0;r<t.length;r++){let s=e[r];for(let e of t[r].references?.exports??[]){if(i.has(e)){if("label-reference-symbol"===e)continue;throw Error(`InternalError: multiple mesh writers export the "${e}" reference type`)}i.set(e,s)}}let r=new Map,s=!1;for(let n=0;n<t.length;n++){let a=e[n],o=(t[n].references?.dependencies??[]).map(e=>Pe(e,i)),l=(t[n].references?.externalDependencies??[]).map(e=>({type:e,external:!0})),u=[...o,...l];r.set(a,u),s||=u.length>0}return{writers:e,dependencies:r,exports:i,requiresCoordination:s}}function Ae(...e){let t=[],i=new Map,r=new Map,s=!1;for(let n of e){t.push(...n.writers),s||=n.requiresCoordination;for(let[e,t]of n.dependencies)i.set(e,t);for(let[e,t]of n.exports){if(r.has(e)){if("label-reference-symbol"===e)continue;throw Error(`InternalError: multiple mesh writer groups export the "${e}" reference type`)}r.set(e,t)}}return{writers:t,dependencies:i,exports:r,requiresCoordination:s}}function Pe(e,t){let i=t.get(e);if(!i)throw Error(`InternalError: no mesh writer exports the "${e}" reference type`);return{type:e,writer:i,external:!1}}class Te{constructor(){this._defaultResult=null,this._backgroundFillResult=null}static async from(e,t){let i=new Te;return i.setDefault(await e.createMeshWriters(t.meshes)),i}size(){return 1}getDefault(){return this._defaultResult}setDefault(e){this._defaultResult=e}getBackgroundFill(){return this._backgroundFillResult}setBackgroundFill(e){this._backgroundFillResult=e}hasArcadeDependency(e){return this._defaultResult?.writers.some(t=>t.hasArcadeDependency(e))??!1}match(e,t,i,r){let s=this.doMatch(e,t,r)||this.getDefault();if(s&&s.writers.length>0){let e=this.getBackgroundFill();if(e)return Ae(e,s)}return s}matchGroups(e,t,i,r){let s=this.match(e,t,i,r);return s?[s]:[]}cleanup(e,t,i,r,s){}getSortKey(e,t){return 0}doMatch(e,t,i){return null}async fetchResources(e,t,i,r){}}var Fe=i(95250);let Ee=0;class Re{constructor(e,t,i,r){this.cimPropertyName=e,this.findTargetNode=i,this.getValue=r,this.realFieldName=`__virtual_fi_${t}`}setOnFeature(e,t){let i=this.getValue(t);e.attributes[this.realFieldName]=i}addPrimitiveOverride(e){let t=this.findTargetNode(e.symbol),{primitiveName:i}=t;i||(Ee++,i=`primitive_${Ee}`,t.primitiveName=i);let r={type:"CIMPrimitiveOverride",primitiveName:i,propertyName:this.cimPropertyName,valueExpressionInfo:{type:"CIMExpressionInfo",expression:`return $feature.${this.realFieldName};`}};e.primitiveOverrides=e.primitiveOverrides||[],e.primitiveOverrides.push(r)}}const Oe=new Re("TextString","text",e=>e.symbolLayers[0].markerGraphics[0],e=>e.text),Le=new Re("Color","color",e=>e.symbolLayers[0].markerGraphics[0].symbol.symbol.symbolLayers.find(e=>"CIMSolidFill"===e.type),e=>{let t=e.color;if(!t)return null;if(t.startsWith("#")||t.startsWith("rgb"))return t;let i=JSON.parse(t),r=(0,Fe.S)(i);return`rgba(${r[0]}, ${r[1]}, ${r[2]}, ${r[3]/255})`}),ze=new Re("Rotation","rotation",e=>e.symbolLayers[0],e=>null==e.textAngle?void 0:-e.textAngle),De=new Re("OffsetX","offsetX",e=>e.symbolLayers[0],e=>e.xOffset),Ne=new Re("OffsetY","offsetY",e=>e.symbolLayers[0],e=>e.yOffset);class Be{constructor(e,t,i){this.cimPropertyName=e,this.findTargetNode=t,this.getValue=i}setOnSymbol(e,t){let i=this.getValue(t);null!=i&&(this.findTargetNode(e)[this._fixCase(this.cimPropertyName)]=i)}_fixCase(e){return this.cimPropertyName[0].toLocaleLowerCase()+e.slice(1)}}const qe=new Be("VerticalAlignment",e=>e,e=>null==e.verticalAlignment?null:["Top","Center","Baseline","Bottom"][e.verticalAlignment]),Ge=new Be("HorizontalAlignment",e=>e,e=>null==e.horizontalAlignment?null:["Left","Right","Center","Justify"][e.horizontalAlignment]),Ue=new Be("FontFamilyName",e=>e,e=>e.fontFamilyName),We=new Be("FontStyleName",e=>e,e=>e.fontStyleName),Ve=new Be("Height",e=>e,e=>e.size),je=new Be("Underline",e=>e,e=>e.underline),Ye=[Oe,Le,De,Ne],$e=[...Ye,ze],He=[Ge,qe,Ue,We,Ve,je];function Xe(e,t){let i,r,s=[];if(e={...e,lineWidth:5e3},"line"===t){let t;switch(i="CIMLineSymbol",(e={...e,angle:0}).horizontalAlignment){case"Center":case"Justify":default:t=.5;break;case"Left":t=0;break;case"Right":t=1}r={type:"CIMMarkerPlacementAtRatioPositions",angleToLine:!0,placePerPart:!1,keepUpright:!1,positionArray:[t],flipFirst:!1},s=Ye}else"multipoint"===t?(i="CIMLineSymbol",r={type:"PrivatePlacementMultipoint"},s=Ye):(i="CIMPointSymbol",r=void 0,s=$e);let n={type:"CIMSymbolReference",primitiveOverrides:[],symbol:{type:i,symbolLayers:[{type:"CIMVectorMarker",markerPlacement:r,enable:!0,size:40,colorLocked:!1,anchorPointUnits:"Relative",frame:{xmin:-20,ymin:-20,xmax:20,ymax:20},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:e}],scaleSymbolsProportionally:!0,respectFrame:!0}]}};for(let e of s)e.addPrimitiveOverride(n);return{data:n}}function Ze(e){return{point:Xe(e,"point"),line:Xe(e,"line"),multipoint:Xe(e,"multipoint")}}const Qe={type:"CIMSolidStroke",enable:!0,color:[255,0,0,255],width:1.5};async function Ke(e,t,i){let r="esriGeometryPolygon"===(s=i)?{type:"CIMSymbolReference",symbol:{type:"CIMPolygonSymbol",symbolLayers:[{...Qe}]}}:(s&&console.error(`Annotation/dimension debug overlay expects polygon footprint geometry, but received ${s}.`),null);var s;if(!r)return ke([],[]);let n=await t.fetchMeshResourceImmediate({type:"mesh-request",symbolReference:r});return e.createMeshWriters(n?.meshes||[])}var Je,et,tt=i(34727),it=i(86738),rt=i(90708),st=i(92722),nt=i(57582),at=i(48163),ot=i(537),lt=i(75585),ut=i(93397),ht=i(18989);function ct(e){let t=(0,ut.DW)(e),{style:i,weight:r}=(0,lt._)(e.fontStyleName);return{family:(0,nt.af)(e.fontFamilyName),decoration:t,style:i,weight:r}}function dt(e){let t=(e.symbolLayers||[]).map(e=>"CIMVectorMarker"!==e.type||e.anchorPoint||!e.frame?e:{...e,anchorPointUnits:"Absolute",anchorPoint:{x:-e.frame.xmin,y:0}});return{...e,symbolLayers:t}}function pt(e,t,i){if(!e?.symbolLayers?.length)return null;let r=dt(e),s=null;for(let e of r.symbolLayers||[]){let i=ft(e,t);i&&(s=s?wt(s,i):i)}return s??new ht.A(-16,-16,32,32)}function ft(e,t){switch(e.type){case"CIMVectorMarker":return function(e,t){let i=function(e){let t=null;for(let i of e||[]){if(!i.geometry)continue;let e=(0,ot.Rg)((0,H.vt)(),i.geometry),r=new ht.A(e[0],e[1],e[2]-e[0],e[3]-e[1]);t=t?wt(t,r):r}return t}(e.markerGraphics),r=e.frame,s=r?new ht.A(r.xmin,r.ymin,r.xmax-r.xmin,r.ymax-r.ymin):null,n=i??s??mt(e.size);if(!n)return null;let a=_t(n),o=null!=r?.xmax&&null!=r?.xmin?r.xmax-r.xmin:n.width,l=null!=r?.ymax&&null!=r?.ymin?r.ymax-r.ymin:n.height,u=e.size&&l?e.size/l:1;if(s&&xt(a,.5*-(r.xmax+r.xmin),.5*-(r.ymax+r.ymin)),e.anchorPoint){let t=e.anchorPoint.x,i=e.anchorPoint.y;"Absolute"===e.anchorPointUnits?0!==u&&(t/=u,i/=u):(t*=o,i*=l),xt(a,-t,-i)}return 1!==u&&function(e,t,i){for(let r of e)r[0]*=t,r[1]*=i}(a,u,u),yt(a,e,t),gt(a)}(e,t);case"CIMPictureMarker":return function(e,t){let i=e.size;if(!i)return null;let r=i*(e.scaleX??1),s=_t(new ht.A(-r/2,-i/2,r,i));if(e.anchorPoint){let t=e.anchorPoint.x,n=e.anchorPoint.y;"Absolute"!==e.anchorPointUnits&&(t*=r,n*=i),xt(s,-t,-n)}return yt(s,e,t),gt(s)}(e,t);default:return function(e,t){let i=mt(e.size);if(!i)return null;let r=_t(i);if(e.anchorPoint){let t=e.anchorPoint.x,s=e.anchorPoint.y;"Absolute"!==e.anchorPointUnits&&(t*=i.width,s*=i.height),xt(r,-t,-s)}return yt(r,e,t),gt(r)}(e,t)}}function mt(e){return e?new ht.A(-e/2,-e/2,e,e):null}function yt(e,t,i){let r=t.rotation??0,s=(t.rotateClockwise?-r:r)*(Math.PI/180);s&&bt(e,s),(t.offsetX||t.offsetY)&&xt(e,t.offsetX??0,t.offsetY??0),i&&bt(e,i)}function _t(e){return[[e.x,e.y],[e.x+e.width,e.y],[e.x+e.width,e.y+e.height],[e.x,e.y+e.height]]}function gt(e){let t=1/0,i=1/0,r=-1/0,s=-1/0;for(let[n,a]of e)t=Math.min(t,n),i=Math.min(i,a),r=Math.max(r,n),s=Math.max(s,a);return new ht.A(t,i,r-t,s-i)}function xt(e,t,i){for(let r of e)r[0]+=t,r[1]+=i}function bt(e,t){for(let i of e)Tt(i,t)}function wt(e,t){let i=Math.min(e.x,t.x),r=Math.min(e.y,t.y),s=Math.max(e.x+e.width,t.x+t.width),n=Math.max(e.y+e.height,t.y+t.height);return new ht.A(i,r,s-i,n-r)}function vt(e){let t=null==e?NaN:Number(e);return isNaN(t)?Math.PI/2:t}function St(e,t,i,r){let s=(0,B.hZ)((0,at.vt)(),i[0]-e[0],i[1]-e[1]);if(0===(0,B.Il)(s))return null;let n=Rt(s),a=Et(i,n-It(r),t,n);return a?{beginDimensionPoint:(0,B.hZ)((0,at.vt)(),i[0],i[1]),endDimensionPoint:a}:null}function It(e){let t=(0,tt.KJ)(e);return t>=-1&&t<=1?e+(0,tt.kU)(1):t>=179&&t<=181?e-(0,tt.kU)(1):e}function Mt(e,t,i){let r=(0,B.hZ)((0,at.vt)(),t[0]-e[0],t[1]-e[1]),s=(0,B.Il)(r);return 0===s?[e[0],e[1]]:(0,B.Ln)((0,at.vt)(),e,r,i/s)}function Ct(e){return{left:e.x,right:e.x+e.width,top:e.y+e.height,bottom:e.y}}function kt(e,t){let i=[[e.x,e.y],[e.x+e.width,e.y],[e.x+e.width,e.y+e.height],[e.x,e.y+e.height]],r=1/0,s=-1/0;for(let[e,n]of i){let i=(0,B.Om)([e,n],t);r=Math.min(r,i),s=Math.max(s,i)}return[r,s]}function At(e,t){return new ht.A(e.x*t,e.y*t,e.width*t,e.height*t)}function Pt(e,t,i){return new ht.A(e.x+t,e.y+i,e.width,e.height)}function Tt(e,t){let i=e[0],r=e[1];e[0]=i*Math.cos(t)-r*Math.sin(t),e[1]=i*Math.sin(t)+r*Math.cos(t)}function Ft(e,t){return e[0]*t[1]-e[1]*t[0]}function Et(e,t,i,r){return function(e,t,i,r){let s=(0,B.hZ)((0,at.vt)(),Math.cos(t),Math.sin(t)),n=(0,B.hZ)((0,at.vt)(),Math.cos(r),Math.sin(r)),a=(0,B.hZ)((0,at.vt)(),i[0]-e[0],i[1]-e[1]),o=Ft(s,n);if(Math.abs(o)<=1e-9)return null;let l=Ft(a,n)/o,u=Ft(a,s)/o;return{point:(0,B.Ln)((0,at.vt)(),e,s,l),t1:l,t2:u}}(e,t,i,r)?.point??null}function Rt(e){let t=e[0],i=e[1];if(0===t&&0===i)return 0;if(0===t&&i>0)return Math.PI/2;if(0===t&&i<0)return 3*Math.PI/2;if(t<0&&0===i)return Math.PI;if(t>0&&0===i)return 0;let r=Math.atan2(i,t);return r<0&&(r+=2*Math.PI),r}(et=Je||={}).objectId="OBJECTID",et.shape="SHAPE",et.dimLength="DIMLENGTH",et.beginX="BEGINX",et.beginY="BEGINY",et.endX="ENDX",et.endY="ENDY",et.textX="TEXTX",et.textY="TEXTY",et.styleId="STYLEID",et.dimX="DIMX",et.dimY="DIMY",et.customLength="CUSTOMLENGTH",et.useCustomLength="USECUSTOMLENGTH",et.dimDisplay="DIMDISPLAY",et.extDisplay="EXTDISPLAY",et.markerDisplay="MARKERDISPLAY",et.extAngle="EXTANGLE",et.dimType="DIMTYPE",et.textAngle="TEXTANGLE";var Ot=i(53966),Lt=i(51624),zt=i(65864),Dt=i(26306);function Nt(e){return function(e){return e.replaceAll(/\r\n?/g,"\n").replaceAll(/\p{Cc}/gu,e=>"\n"===e?e:"")}(e.getString()||"")}function Bt(e){return e?JSON.parse(e):null}function qt(e){if(e?.ga)return{type:"geometry-bag",geometries:e?.ga?.map(e=>qt(e)).filter(e=>e)};let t=e?.g?.points;if(t)return{type:"custom-multipoint",points:t};let i=(0,zt.rS)(e);return!i||"point"!==i.type&&"polyline"!==i.type?void 0:i}function Gt(e,t){e.symbol=t.symbol,e.text=t.text,e.geometry=function(e){return"x"in e&&"y"in e?{type:"custom-point",x:e.x,y:e.y}:"paths"in e?{type:"custom-two-point",from:e.paths[0][0],to:e.paths[0][1]}:(Ot.A.getLogger("esri.layers.AnnotationFeatureLayer").warnOnce("CIMTextGraphic.shape must be a point or a polyline."),{type:"custom-point",x:0,y:0})}(t.shape)}function Ut(e,t){if(e&&null!=t){if(1===t||4===t){let t=e.split(",").map(e=>parseFloat(e));return{type:"custom-point",x:t[0],y:t[1]}}if(2===t||5===t){let t=e.split(";").map(e=>e.split(",").map(e=>parseFloat(e)));return{type:"custom-two-point",from:[t[0][0],t[0][1]],to:[t[1][0],t[1][1]]}}return 3===t||6===t?{type:"custom-multipoint",points:e.split(";").map(e=>e.split(",").map(e=>parseFloat(e)))}:qt(JSON.parse(e))}}function Wt({scale:e,translate:t},i){return(i-t[0])/e[0]}function Vt({scale:e,translate:t},i){return(i-t[1])/e[1]}function jt(e,t,i,r){if("custom-point"===e.type||"point"===e.type){let{x:s,y:n}=e,a=(0,b.Cv)(new it.A({x:s,y:n,spatialReference:t}),t,i);return new st.A([1],[Wt(r,a.x),Vt(r,a.y)])}if("custom-two-point"===e.type){let[s,n]=e.from,a=(0,b.Cv)(new it.A({x:s,y:n,spatialReference:t}),t,i),[o,l]=e.to,u=(0,b.Cv)(new it.A({x:o,y:l,spatialReference:t}),t,i);return new st.A([2],[Wt(r,a.x),Vt(r,a.y),Wt(r,u.x),Vt(r,u.y)])}if("custom-multipoint"===e.type){let s=e.points.map(([e,r])=>(0,b.Cv)(new it.A({x:e,y:r,spatialReference:t}),t,i)),n=s.map(({x:e,y:t})=>[Wt(r,e),Vt(r,t)]).flat();return new st.A([s.length],n)}if("geometry-bag"===e.type){let s=[],n=[],a=!0;for(let o of e.geometries){a||(s.push(2),n.push(0,0,1,1)),a=!1;let e=jt(o,t,i,r);e&&(s=[...s,...e.lengths],n=[...n,...e.coords])}return 0===s.length||0===n.length?void 0:new st.A(s,n)}if("polyline"===e.type){let[s,n]=e.paths[0][0],a=(0,b.Cv)(new it.A({x:s,y:n,spatialReference:t}),t,i),[o,l]=e.paths[0][1],u=(0,b.Cv)(new it.A({x:o,y:l,spatialReference:t}),t,i);return new st.A([2],[Wt(r,a.x),Vt(r,a.y),Wt(r,u.x),Vt(r,u.y)])}throw Error("Unsupported geometry type!")}function Yt(e,t){return t[function(e,t){let i=e.toLowerCase();for(let e in t)if(i===e.toLowerCase())return e;return e}(e,t)]}function $t(e){let t=e.readAttribute("element");if(!t)return null;let i=e.getInTransform()??e.getDisplayTransform();if(!i)throw Error("Quantization transform is required to read annotation features.");if(!e.geometryType)return null;let r=e.metadata.outSpatialReference,s=e.metadata.attributeSpatialReference??e.metadata.spatialReference??r,n=(0,x.Q1)(i),a=function(e){return function(e){let t={leader:[],anchorPoint:[],fontVariations:[]},i=(0,Dt.M)(e.toString()),r=new Lt.A(new Uint8Array(i),new DataView(i));for(;r.next();)switch(r.tag()){case 1:t.version=Nt(r);break;case 2:t.bloated=r.getBool();break;case 3:if(t.bloated){let e=Bt(Nt(r));e&&Gt(t,e)}else r.skip();break;case 4:t.geometryStorageType=r.getEnum();break;case 5:t.bloated?r.skip():t.geometry=Ut(Nt(r),t.geometryStorageType);break;case 6:t.bloated?r.skip():t.text=Nt(r);break;case 7:t.bloated?r.skip():t.symbolID=r.getUInt32();break;case 8:t.textAngle=r.getDouble();break;case 9:t.xOffset=r.getDouble();break;case 10:t.yOffset=r.getDouble();break;case 11:t.horizontalAlignment=r.getEnum();break;case 12:t.verticalAlignment=r.getEnum();break;case 13:t.flipAngle=r.getDouble();break;case 14:r.skip(),t.leader=[];break;case 15:t.anchorPoint.push(Nt(r));break;case 16:t.size=r.getDouble();break;case 17:t.color=Nt(r);break;case 18:t.characterSpacing=r.getDouble();break;case 19:t.characterWidth=r.getDouble();break;case 20:t.wordSpacing=r.getDouble();break;case 21:t.leading=r.getDouble();break;case 22:t.fontFamilyName=Nt(r);break;case 23:t.fontStyleName=Nt(r);break;case 24:t.underline=r.getBool();break;case 25:t.callout=Nt(r);break;case 26:r.skip(),t.fontVariations=[];break;default:r.skip()}return t}(e)}(t),{geometry:o}=a;if(!o)return null;let l=jt(o,s,r,n);if(!l)return null;let u=function(e,t,i,r){let[s,n]=e.anchorPoint,a=n?{x:Number(s),y:Number(n)}:function(e){if(e?.trim())try{let t=JSON.parse(e);return"number"==typeof t?.x&&"number"==typeof t?.y?t:void 0}catch{return}}(s);if(!a||!Number.isFinite(a.x)||!Number.isFinite(a.y))return;let o=(0,b.Cv)(new it.A({...a,spatialReference:t}),t,i);return{x:Wt(r,o.x),y:Vt(r,o.y)}}(a,s,r,n),h=function(e){if(e.geometry){if("custom-two-point"===e.geometry.type)return"line";if("custom-multipoint"===e.geometry.type)return"multipoint";if("geometry-bag"===e.geometry.type){if("custom-multipoint"===e.geometry.geometries[0].type)return"multipoint";throw Error("Unable to determine geometry type from annotation graphic")}if("custom-point"===e.geometry.type)return"point";if("polyline"===e.geometry.type)return"line";if("point"===e.geometry.type)return"point";throw Error("Unable to determine geometry type from annotation graphic")}throw Error("Unable to determine geometry type from annotation graphic")}(a),c={annotationGeometryType:h,annotationGraphic:a,attributes:{},geometryOverride:{geometry:l,geometryType:function(e){switch(e){case"line":return"esriGeometryPolyline";case"multipoint":return"esriGeometryMultipoint";case"point":return"esriGeometryPoint"}}(h),absoluteCalloutAnchor:u}};for(let e of $e)e.setOnFeature(c,a);return c}function Ht(e){let t=e.getInTransform()??e.getDisplayTransform();if(!t)throw Error("Quantization transform is required to read dimension features.");let i=e.geometryType;if(!i)return null;let r={...e.readAttributes()},s=e.metadata.outSpatialReference,n=e.metadata.attributeSpatialReference??e.metadata.spatialReference??s,a=(0,x.Q1)(t),o={x:Number(Yt(Je.beginX,r)),y:Number(Yt(Je.beginY,r)),spatialReference:n},l={x:Number(Yt(Je.endX,r)),y:Number(Yt(Je.endY,r)),spatialReference:n},u={x:Number(Yt(Je.dimX,r)),y:Number(Yt(Je.dimY,r)),spatialReference:n};if(isNaN(o.x)||isNaN(o.y)||isNaN(l.x)||isNaN(l.y))return console.error(`Feature with ${Je.objectId}=${Yt(Je.objectId,r)} is missing valid begin, end, or dimension points and will be skipped.`),null;(isNaN(u.x)||isNaN(u.y))&&(u.x=o.x,u.y=o.y);let h=(0,b.Cv)(new it.A(o),n,s),c=(0,b.Cv)(new it.A(l),n,s),d=(0,b.Cv)(new it.A(u),n,s),p=[h,c,d],f=c.x-h.x,m=c.y-h.y,y=Math.PI/2;0===f?m<0&&(y=-Math.PI/2):y=Math.atan2(m,f);let _=Math.sqrt(f*f+m*m);if(1===Number(Yt(Je.dimType,r))){let e=St([h.x,h.y],[c.x,c.y],[d.x,d.y],vt(Yt(Je.extAngle,r)));if(e){let t=e.endDimensionPoint[0]-e.beginDimensionPoint[0],i=e.endDimensionPoint[1]-e.beginDimensionPoint[1];_=Math.sqrt(t*t+i*i),y=Rt([t,i])}}let g=Yt(Je.textX,r),w=Yt(Je.textY,r);if(null!=g&&null!=w){let e=new it.A({x:Number(g),y:Number(w),spatialReference:n}),t=(0,b.Cv)(e,n,s);p.push(t)}let v=p.map(e=>({x:(0,x.IE)(a,e.x),y:(0,x.B2)(a,e.y)})).flatMap(e=>[e.x,e.y]);return r.__SYSTEM_LENGTH__=_,r.__DIMENSION_ANGLE__=360-(0,tt.KJ)(y),{attributes:r,geometryOverride:{geometry:new st.A([v.length],v),geometryType:i}}}function Xt(e,t){let{geometry:i,geometryType:r}=t.geometryOverride,s=(0,rt.zv)(i,r,!1,!1);return s?{attributes:{...e.readAttributes(),...t.attributes},centroid:null,geometry:s}:null}var Zt=i(14057);class Qt extends Te{constructor(e,t){super(),this._context=e,this._symbolCollection=t,this._meshWriters=new Map,this._matcherGeometryOverrides=new Map,this._symbols=function(e){let t={};for(let i of e){let e=i.iD??0,{symbol:r}=i;t[e]=Ze(r)}return t}(t)}static async fromAnnotationSchema(e,t){return new Qt(e,t.symbolCollection)}hasArcadeDependency(){return!1}doMatch(e,t,i){return this._meshWriters.get((0,Zt.$)(i,e.getObjectId()))}async fetchResources(e,t,i,r){this._meshWriters.clear(),this._matcherGeometryOverrides.clear();let s=t.getCursor();for(;s.next();){let i=$t(s);if(!i)continue;let n=Xt(s,i);if(!n)continue;let a=await this._createSymbolReference(s,n,i);if(!a)continue;let o=(0,Zt.$)(r,s.getObjectId()),l=this._meshWriters.get(o);l||(l=await this._createGroup(a,e,t.geometryType),this._meshWriters.set(o,l)),this._matcherGeometryOverrides.set(o,i.geometryOverride)}}async _createGroup(e,t,i){let r=await t.fetchMeshResourceImmediate({type:"mesh-request",symbolReference:e}),s=await function(e,t){let i=t.map(e=>({...e}));return e.createMeshWriters(i)}(this._context,r?.meshes||[]);if((0,n.A)("esri-2d-annotation-dimension-debug")){let e=await Ke(this._context,t,i);return e.writers.length?Ae(s,e):s}return s}async _createSymbolReference(e,t,i){let r=this._getUnresolvedSymbolReference(i);if(!r)return null;!function(e){if(!e.symbol||!("symbolLayers"in e.symbol))return;let t={type:"PrivateMatcherGeometryOverrideEffect"};e.symbol.symbolLayers=(e.symbol.symbolLayers||[]).map(e=>({...e,effects:[t,...e.effects||[]]}))}(r);let s=await Ce.OverrideHelper.resolveSymbolOverrides(r,t,e.metadata.outSpatialReference,null,e.geometryType);return s?{type:"CIMSymbolReference",symbol:s}:null}_getUnresolvedSymbolReference(e){let{annotationGraphic:t,annotationGeometryType:i}=e,{bloated:r,symbolID:s}=t;if(r||function(e){let t=!1;for(let i of He)t||=null!=i.getValue(e);return t}(t))return this._getProcessedSymbolReference(e);if(null!=s){let e=this._symbols[s][i];return e?(0,Me.o8)(e.data):null}return null}_getProcessedSymbolReference(e){let{annotationGraphic:t,annotationGeometryType:i}=e,{bloated:r,symbol:s,symbolID:n}=t,a=this._getRawSymbolReference(s,n);if(!a||!a.symbol||(r||(a=this._applySymbolFields(a,t)),!a.symbol||"CIMTextSymbol"!==a.symbol.type))return null;let{data:o}=Xe(a.symbol,i);return{type:"CIMSymbolReference",symbol:o.symbol,primitiveOverrides:[...a.primitiveOverrides||[],...o.primitiveOverrides||[]]}}_getRawSymbolReference(e,t){if(e&&null!=e.symbol&&"CIMTextSymbol"===e.symbol.type)return e;if(null!=t){let e=this._symbolCollection.find(e=>(e.iD??0)===t);if(e)return{type:"CIMSymbolReference",symbol:e.symbol}}return null}_applySymbolFields(e,t){if(!e.symbol||"CIMTextSymbol"!==e.symbol.type)return e;let i=(0,Me.o8)(e.symbol);for(let e of He)e.setOnSymbol(i,t);return{type:"CIMSymbolReference",symbol:i,primitiveOverrides:e.primitiveOverrides}}cleanup(e,t,i){let r=t.getObjectId(),s=(0,Zt.$)(i,r);this._matcherGeometryOverrides.delete(s),this._meshWriters.delete(s)}getMatcherGeometryOverride(e){return this._matcherGeometryOverrides.get(e)??null}}var Kt=i(73681);class Jt extends Te{static async fromDictionaryRenderer(e,t){let i=await Kt.n.from(t.dictionaryInfo,t.userConfig,t.fieldMap);return new Jt(e,i)}constructor(e,t){super(),this._context=e,this._evaluator=t,this._controlStringToPromise=new Map,this._controlStringToGroup=new Map}async fetchResources(e,t){let i=t.getCursor(),r=new Set;for(;i.next();){let e=this._evaluateControlString(i);e&&r.add(e)}let s=Array.from(r.values()).map(t=>this._ensureGroup(e,t));await Promise.all(s)}match(e,t,i,r){let s=this._evaluateControlString(e);return s?this._controlStringToGroup.get(s):null}_evaluateControlString(e){let t=e.readLegacyFeatureWorldSpace();return this._evaluator.evaluate(t,0,e.fields,null)}_ensureGroup(e,t){let i=this._controlStringToPromise.get(t);return i??(i=this._fetchGroup(e,t),this._controlStringToPromise.set(t,i)),i}async _fetchGroup(e,t){let i=await e.fetchDictionaryResourceImmediate({type:"dictionary-request",controlString:t});if(!i)return;let r=await this._context.createMeshWriters(i.meshes);this._controlStringToGroup.set(t,r)}}var ei=i(69754),ti=i(88020),ii=i(60408),ri=i(95466),si=i(55674),ni=i(37615),ai=i(75434),oi=i(69221);function li(e){return e.align??=!1,e.baselineHeight??=0,e.convertUnits??=!1,e.displayPrecision??=0,e.drawLineOnFit??=!1,e.extendLineOnFit??=!1,e.extensionLineOffset??=0,e.extensionLineOvershot??=0,e.iD??=0,e.markerFitTolerance??=0,e}class ui{static async create(e,t,i,r=i){let s=new ui(e,i,r);return await s.initialize(t,i),s}constructor(e,t,i){if(this._dimensionStyle=e,this._viewSpatialReference=t,this._sourceSpatialReference=i,this._textString=null,this._displayExtLines=!0,this._systemLength=0,this._dimensionAngleRad=0,this._dimensionLength=0,this._dimensionDirection=null,this._textSize=null,this._textLength=null,this._extAngleRad=Math.PI/2,this._dimensionType=0,this._compiledExpression=null,this._fieldsIndex=null,this._textResource=null,this._beginBaselinePoint=null,this._endBaselinePoint=null,this._dimensionLinePoint=null,this._beginDimensionPoint=null,this._endDimensionPoint=null,this._beginMarkerLength=0,this._endMarkerLength=0,this._textPoint=null,this._dimensionPolyline=null,this._dimensionExtensionLines=null,this._hasTextPoint=!1,this._doMarkersFit=!0,this._dimensionIsEvaluated=!1,null==e)throw Error("dimension syle must be defined!");li(e)}async initialize(e,t){if(!this._dimensionStyle)return;let{attributes:i}=e;if("Expression"===(this._dimensionStyle.textOption??"None")){let{expression:i,expressionParserName:s}=this._dimensionStyle;i&&s&&"arcade"===s.toLowerCase()?(this._compiledExpression=await(0,si.Ad)(i,t),this._fieldsIndex=function(e){let{attributes:t}=e,i=Object.keys(Je).map(e=>({name:e,alias:e,type:"string"==typeof t[e]?"esriFieldTypeString":"esriFieldTypeDouble"}));return new ri.A(i)}(e)):Ot.A.getLogger("esri.layers.DimensionFeatureLayer").warn(new r.A("dimension-layer:unsupported-expression","Only Arcade expressions are supported",{expressionType:s,expression:i}))}this._extAngleRad=vt(Yt(Je.extAngle,i)),this._dimensionType=+(1===Number(Yt(Je.dimType,i))),this._systemLength=Number(Yt("__SYSTEM_LENGTH__",i));let{geometry:s}=e;if(s&&!(0,ii.Bi)(s))throw new r.A("dimension-layer","processed geometry must be a valid 'polygon'.");let n=s?.rings[0];if(!n||n.length<3)throw new r.A("dimension-layer","processed geometry must have at least 3 points.");this._hasTextPoint=null!=n[3]&&0!==n[3][0]&&0!==n[3][1]&&void 0!==n[3][0]&&void 0!==n[3][1],this._hasTextPoint&&(this._textPoint=n[3]);let a=this._dimensionStyle.textSymbol;i.__DIMENSION_ANGLE__+=a?.angle??0}getTextString(e){return this._textString??=this._getDimensionText(e),this._textString}get textSymbol(){return this._dimensionStyle.textSymbol??null}setTextResource(e){this._textResource=e??null}get beginBaselinePoint(){return this._beginBaselinePoint}get endBaselinePoint(){return this._endBaselinePoint}get beginDimensionPoint(){return this._beginDimensionPoint}get endDimensionPoint(){return this._endDimensionPoint}get textPoint(){return this._textPoint}get dimensionLine(){return this._dimensionPolyline}get extensionLines(){return this._displayExtLines?this._dimensionExtensionLines:null}evaluateWithGeometry(e,t){this._dimensionIsEvaluated||=(this._computeDimensionLineInfo(e,t),this._evaluateDefaultPlacement(t),this._updateExtensionLines(t),this._updateTextPoint(t),this._offsetTextPoint(t),!0)}_updateTextPoint(e){if(this._hasTextPoint)return;let{textFit:t}=this._dimensionStyle;if(!this._doMarkersFit){if("None"===t||null==this._textLength)return;if(this._textLength>this._dimensionLength){let e=this._textLength/2;"MoveBegin"===t?(this._textPoint=Mt(this._beginDimensionPoint,this._endDimensionPoint,-(e+this._beginMarkerLength/2)),this._extendDimensionLineForMovedText("begin",this._beginMarkerLength/2+this._textLength)):"MoveEnd"===t&&(this._textPoint=Mt(this._endDimensionPoint,this._beginDimensionPoint,-(e+this._endMarkerLength/2)),this._extendDimensionLineForMovedText("end",this._endMarkerLength/2+this._textLength))}}}_extendDimensionLineForMovedText(e,t){if(this._dimensionPolyline?.length)if("begin"===e){let e=Mt(this._beginDimensionPoint,this._endDimensionPoint,-t);this._dimensionPolyline[0]=[e,this._beginDimensionPoint]}else{let e=Mt(this._beginDimensionPoint,this._endDimensionPoint,this._dimensionLength+t);this._dimensionPolyline[1]=[e,this._endDimensionPoint]}}_offsetTextPoint(e){if(this._hasTextPoint)return;let t=this._textPoint;if(!t)return;let i=.5*this._textSize*e,r=-i*this._dimensionDirection[1],s=i*this._dimensionDirection[0];t[0]+=r,t[1]+=s}_updateExtensionLines(e){if(!(this._displayExtLines&&this._beginDimensionPoint&&this._dimensionLinePoint&&this._endDimensionPoint))return;let{extensionLineOvershot:t,extensionLineOffset:i}=this._dimensionStyle,r=this._dimensionLinePoint,s=this._endDimensionPoint;null!=t&&!isNaN(t)&&0!==t&&(r=Mt(this._dimensionLinePoint,this._beginBaselinePoint,-t*e),s=Mt(this._endDimensionPoint,this._endBaselinePoint,-t*e));let n=this._beginBaselinePoint,a=this._endBaselinePoint;if(null!=i&&!isNaN(i)&&0!==i){let e=(0,B.xg)(r,this._beginBaselinePoint),t=(0,B.xg)(s,this._endBaselinePoint);n=Mt(r,this._beginBaselinePoint,e-i),a=Mt(s,this._endBaselinePoint,t-i)}this._dimensionExtensionLines=[[r,n],[s,a]]}_computeDimensionLineInfo(e,t){if(!e||!(0,ii.Bi)(e)||e.rings[0].length<3)throw new r.A("DimensionLayerView: bad geometry","Dimension cann't be applied to an empty geometry!");let i=e.rings[0],s=(0,at.fA)(i[0][0],i[0][1]),n=(0,at.fA)(i[1][0],i[1][1]),a=(0,at.fA)(i[2][0],i[2][1]);this._beginBaselinePoint=(0,B.hZ)((0,at.vt)(),s[0],s[1]),this._endBaselinePoint=(0,B.hZ)((0,at.vt)(),n[0],n[1]),this._dimensionLinePoint=a,1===this._dimensionType?this._computeLinearDimensionPoints(s,n,a):this._computeAlignedDimensionPoints(s,n,a);let o=this._beginDimensionPoint,l=this._endDimensionPoint;if(!o||!l)throw new r.A("DimensionLayerView: bad geometry","Failed to construct the dimension line!");this._dimensionDirection=(0,B.Re)((0,at.vt)(),l,o),this._dimensionAngleRad=Rt(this._dimensionDirection),this._dimensionLength=(0,B.Il)(this._dimensionDirection),this._dimensionDirection=(0,B.hs)(this._dimensionDirection,this._dimensionDirection,1/this._dimensionLength),this._hasTextPoint||(this._textPoint=Mt(o,l,this._dimensionLength/2))}_computeAlignedDimensionPoints(e,t,i){let s=It(this._extAngleRad);if((0,B.aI)(e,i))return this._beginDimensionPoint=(0,B.hZ)((0,at.vt)(),e[0],e[1]),this._endDimensionPoint=(0,B.hZ)((0,at.vt)(),t[0],t[1]),void(this._displayExtLines=!1);let n=Rt([t[0]-e[0],t[1]-e[1]]),a=Et(i,n,t,n+s);if(!a)throw new r.A("DimensionLayerView: bad geometry","Failed to construct dimension extension lines!");this._beginDimensionPoint=(0,B.hZ)((0,at.vt)(),i[0],i[1]),this._endDimensionPoint=(0,B.hZ)((0,at.vt)(),a[0],a[1])}_computeLinearDimensionPoints(e,t,i){let r=St(e,t,i,this._extAngleRad);r?(this._beginDimensionPoint=r.beginDimensionPoint,this._endDimensionPoint=r.endDimensionPoint):(this._beginDimensionPoint=(0,B.hZ)((0,at.vt)(),e[0],e[1]),this._endDimensionPoint=(0,B.hZ)((0,at.vt)(),t[0],t[1]),this._displayExtLines=!1)}_evaluateDefaultPlacement(e){let{beginMarkerSymbol:t,endMarkerSymbol:i}=this._dimensionStyle,r=pt(t,this._dimensionAngleRad),s=pt(i,this._dimensionAngleRad+Math.PI),n=pt(t,0),a=pt(i,Math.PI);this._measureDimensionText(this._textString||"",this._textPoint,e),this._beginMarkerLength=e*(n?.width??0),this._endMarkerLength=e*(a?.width??0);let o=r&&this._beginDimensionPoint?Pt(At(r,e),this._beginDimensionPoint[0],this._beginDimensionPoint[1]):null,l=s&&this._endDimensionPoint?Pt(At(s,e),this._endDimensionPoint[0],this._endDimensionPoint[1]):null;if(this._doMarkersFit=this._checkMarkerFit(o,l,e),this._doMarkersFit){let e=Mt(this._beginDimensionPoint,this._endDimensionPoint,this._dimensionLength/2);this._dimensionPolyline=[[e,this._beginDimensionPoint],[e,this._endDimensionPoint]]}else{let e=Mt(this._beginDimensionPoint,this._endDimensionPoint,-2*this._beginMarkerLength),t=Mt(this._beginDimensionPoint,this._endDimensionPoint,this._dimensionLength+2*this._endMarkerLength);this._dimensionPolyline=[[e,this._beginDimensionPoint],[t,this._endDimensionPoint]]}}_checkMarkerFit(e,t,i){if(!e||!t)return!1;let{markerFit:r,markerOption:s,markerFitTolerance:n}=this._dimensionStyle;if("None"===r)return!0;let a=!0,o=(e,t)=>function(e,t){let i=Ct(e),r=Ct(t),s=i.left<=r.right&&r.left<=i.right,n=i.bottom<=r.top&&r.bottom<=i.top;return s&&n}(e,t)||function(e,t,i){let r=kt(e,i),s=kt(t,i);return r[0]<=s[1]&&s[0]<=r[1]}(e,t,this._dimensionDirection);if("Tolerance"===r)n*i>=this._dimensionLength&&(a=!1);else{if(this._hasTextPoint&&"Both"!==s)return!0;this._hasTextPoint&&"Both"===s?o(e,t)&&(a=!1):a=this._beginMarkerLength+this._endMarkerLength+(this._textLength??0)<=this._dimensionLength}return a}_measureDimensionText(e,t,i){if(null==this._textString||null==t||null==this._textResource)return null;let r=this._dimensionStyle.textSymbol;if(!r)return null;let s=(0,ut.Bu)(r.horizontalAlignment),n=(0,ut.Nl)(r.verticalAlignment),a=(0,ut.DW)(r),o=(0,oi.hV)(r.height||10);this._textSize="glyphs"===this._textResource.type?o:Math.max(o,...this._textResource.runs.map(e=>(0,oi.hV)(e.fontSize||0)));let l=r.angle||0,u="glyphs"===this._textResource.type?this._textResource.sdfSize:this._textResource.runs[0]?.glyphs.sdfSize;if(!u)return null;let h=o/u,c=(0,oi.Lu)(r.lineWidth),d=Math.max(.25,Math.min(o||1,4)),p=29*d,f=(0,ai.tA)(this._textResource,{scale:h,angle:l,xOffset:0,yOffset:0,horizontalAlignment:s,verticalAlignment:n,decoration:a,lineHeight:p,lineHeightRatio:d,useCIMAngleBehavior:!0,maxLineWidth:c,hasBackground:!1}),m=t;if(!m)return null;let y=i,_=[f.bounds.blX,f.bounds.trY],g=[f.bounds.trX,f.bounds.trY],x=[f.bounds.blX,f.bounds.blY],b=[f.bounds.trX,f.bounds.blY];_[0]-=f.bounds.x,_[1]-=f.bounds.y,g[0]-=f.bounds.x,g[1]-=f.bounds.y,x[0]-=f.bounds.x,x[1]-=f.bounds.y,b[0]-=f.bounds.x,b[1]-=f.bounds.y,_[0]*=y,_[1]*=y,g[0]*=y,g[1]*=y,x[0]*=y,x[1]*=y,b[0]*=y,b[1]*=y,this._textLength=1.1*(Math.max(_[0],g[0],x[0],b[0])-Math.min(_[0],g[0],x[0],b[0])),this._dimensionAngleRad&&(Tt(_,this._dimensionAngleRad),Tt(g,this._dimensionAngleRad),Tt(x,this._dimensionAngleRad),Tt(b,this._dimensionAngleRad)),_[0]+=m[0],_[1]+=m[1],g[0]+=m[0],g[1]+=m[1],x[0]+=m[0],x[1]+=m[1],b[0]+=m[0],b[1]+=m[1];let w=Math.min(_[0],g[0],x[0],b[0]),v=Math.min(_[1],g[1],x[1],b[1]),S=Math.max(_[0],g[0],x[0],b[0]),I=Math.max(_[1],g[1],x[1],b[1]);return new ht.A(w,v,1.1*(S-w),1.1*(I-v))}_getDimensionText(e){let{attributes:t}=e,i=null,r=this._sourceSpatialReference,s=1===Number(Yt(Je.useCustomLength,t));i=Number(Yt(s?Je.customLength:Je.dimLength,t)),(0===i||isNaN(i)||null==i)&&(i=this._systemLength,r=this._viewSpatialReference);let n=this._getDimensionString(i,r,e);return"number"==typeof n&&(n=n.toString()),t.__COMPUTED_TEXT_STRING__=n,n||""}_getDimensionString(e,t,i){let{displayUnits:r,displayPrecision:s,prefix:n,suffix:a,textOption:o}=this._dimensionStyle;if("None"===o)return null;if("Expression"===o&&this._compiledExpression&&i)return(0,ni.A)(this._compiledExpression,i,{},"esriGeometryPolyline",this._fieldsIndex);if(r){let i=hi(t),s=hi(r);i&&s&&(e=(0,ti.convert)(i,s,e))}let l=(e=parseFloat(null==s||isNaN(s)?e.toString():e.toFixed(s))).toString();return"Suffix"===o&&(n&&(l=`${n} ${l}`),a&&(l=`${l} ${a}`)),l}}function hi(e){return"object"==typeof e&&e?function(e){return"uwkid"in e&&"number"==typeof e.uwkid}(e)?ci((0,ti.toLengthUnit)(e.uwkid)):ci((0,ti.a)(e)):null}function ci(e){return"linear"===e?.type?{...e,type:"linear"}:null}var di=i(86235);function pi(e){e=dt(e);let t=(0,Me.o8)(e.symbolLayers||[]);for(let e of t)("CIMVectorMarker"===e.type||"CIMPictureMarker"===e.type)&&(e.markerPlacement={type:"CIMMarkerPlacementAtRatioPositions",angleToLine:!0,keepUpright:!1,positionArray:[0]});return t}const fi={getBeginDimensionLine:function(e){let t=[{type:"PrivateMatcherGeometryOverrideEffect"},{type:"PrivateDimensionEffect",part:di.Fn,primitiveName:di.Fn+"Effect"}],i=e.dimensionLineSymbol.symbolLayers||[];i=i.map(e=>({...e,primitiveName:di.Fn+"Layer",effects:[...t]})),"Begin"!==e.dimensionLineOption&&"Both"!==e.dimensionLineOption&&i.forEach(e=>{});let r=pi(e.beginMarkerSymbol);return r=r.map(e=>({...e,primitiveName:di.Bd+"Layer",effects:[...t]})),"Begin"!==e.markerOption&&"Both"!==e.markerOption&&i.forEach(e=>{}),{...e.dimensionLineSymbol,symbolLayers:[...i,...r]}},getEndDimensionLine:function(e){let t=[{type:"PrivateMatcherGeometryOverrideEffect"},{type:"PrivateDimensionEffect",part:di.tz,primitiveName:di.tz+"Effect"}],i=e.dimensionLineSymbol.symbolLayers||[];i=i.map(e=>({...e,primitiveName:di.tz+"Layer",effects:[...t]})),"End"!==e.dimensionLineOption&&"Both"!==e.dimensionLineOption&&i.forEach(e=>{});let r=pi(e.endMarkerSymbol);return r=r.map(e=>({...e,primitiveName:di.FF+"Layer",effects:[...t]})),"End"!==e.markerOption&&"Both"!==e.markerOption&&i.forEach(e=>{}),{...e.dimensionLineSymbol,symbolLayers:[...i,...r]}},getBeginExtensionLine:function(e){let t=[{type:"PrivateMatcherGeometryOverrideEffect"},{type:"PrivateDimensionEffect",part:di.Cr,primitiveName:di.Cr+"Effect"}],i=e.extensionLineSymbol.symbolLayers||[];return i=i.map(e=>({...e,primitiveName:di.Cr+"Layer",effects:[...t]})),"Begin"!==e.extensionLineOption&&"Both"!==e.dimensionLineOption&&i.forEach(e=>{}),{...e.extensionLineSymbol,symbolLayers:i}},getEndExtensionLine:function(e){let t=[{type:"PrivateMatcherGeometryOverrideEffect"},{type:"PrivateDimensionEffect",part:di.w0,primitiveName:di.w0+"Effect"}],i=e.extensionLineSymbol.symbolLayers||[];return i=i.map(e=>({...e,primitiveName:di.w0+"Layer",effects:[...t]})),"End"!==e.extensionLineOption&&"Both"!==e.dimensionLineOption&&i.forEach(e=>{}),{...e.extensionLineSymbol,symbolLayers:i}},getText:function(e){if("None"===e.textOption)return null;let t=[{type:"PrivateMatcherGeometryOverrideEffect"},{type:"PrivateDimensionEffect",part:di.NR,primitiveName:di.NR+"Effect"}];return{type:"CIMPointSymbol",angleAlignment:"Map",symbolLayers:[{type:"CIMVectorMarker",primitiveName:di.NR+"Layer",enable:!0,size:20,frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},primitiveName:di.NR+"Graphic",symbol:e.textSymbol}],effects:t}]}},getPrimitiveOverrides:function(e){let t=[],i=[di.NR+"Graphic",di.NR+"Effect",di.Fn+"Effect",di.tz+"Effect",di.Cr+"Effect",di.w0+"Effect"];for(let e of i)t.push({type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"TextString",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"$feature.__COMPUTED_TEXT_STRING__",returnType:"Default"}});return[...t,{type:"CIMPrimitiveOverride",primitiveName:di.NR+"Layer",propertyName:"Rotation",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"$feature.__DIMENSION_ANGLE__-0",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.Bd+"Layer",propertyName:"Size",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.MARKERDISPLAY == 2 || $feature.MARKERDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.FF+"Layer",propertyName:"Size",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.MARKERDISPLAY == 1 || $feature.MARKERDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.Fn+"Layer",propertyName:"Width",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.DIMDISPLAY == 2 || $feature.DIMDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.tz+"Layer",propertyName:"Width",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.DIMDISPLAY == 1 || $feature.DIMDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.Cr+"Layer",propertyName:"Width",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.EXTDISPLAY == 2 || $feature.EXTDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}},{type:"CIMPrimitiveOverride",primitiveName:di.w0+"Layer",propertyName:"Width",valueExpressionInfo:{type:"CIMExpressionInfo",expression:"if ($feature.EXTDISPLAY == 1 || $feature.EXTDISPLAY == 3) { return 0; } else { return null; }",returnType:"Default"}}]},processDimensionStyle:function(e){return li(e),{beginDimensionLineSymbol:fi.getBeginDimensionLine(e),endDimensionLineSymbol:fi.getEndDimensionLine(e),beginExtensionLineSymbol:fi.getBeginExtensionLine(e),endExtensionLineSymbol:fi.getEndExtensionLine(e),textSymbol:fi.getText(e),primitiveOverrides:fi.getPrimitiveOverrides(e)}}};class mi extends Te{constructor(e,t){super(),this._context=e,this._schema=t,this._meshWriters=new Map,this._dimensionInfos=new Map,this._matcherGeometryOverrides=new Map}static async fromDimensionSchema(e,t){return new mi(e,t)}hasArcadeDependency(){return!1}doMatch(e,t,i){return this._meshWriters.get((0,Zt.$)(i,e.getObjectId()))}async fetchResources(e,t,i,r){this._meshWriters.clear(),this._dimensionInfos.clear(),this._matcherGeometryOverrides.clear();let s=t.metadata.outSpatialReference,n=t.metadata.attributeSpatialReference??t.metadata.spatialReference??s,a=t.getCursor();for(;a.next();){let i=Ht(a);if(!i)continue;let o=Xt(a,i);if(!o)continue;let l=(0,Zt.$)(r,a.getObjectId()),u=this._readStyleId(a),h=this._getStyle(u);if(!h){let i=this._meshWriters.get(l);i||(i=await Ke(this._context,e,t.geometryType),this._meshWriters.set(l,i));continue}let c=await ui.create(h,o,s,n);await this._cacheGlyphs(c,o,e),this._dimensionInfos.set(l,c),this._matcherGeometryOverrides.set(l,i.geometryOverride);let d=this._meshWriters.get(l);d||(d=await this._createGroup(h,a,o,e,t.geometryType),this._meshWriters.set(l,d))}}async _createGroup(e,t,i,r,s){let a=fi.processDimensionStyle(e),[o,l,u,h,c]=await Promise.all([this._createMeshesForSymbol(a.beginDimensionLineSymbol,a.primitiveOverrides,t,i,r),this._createMeshesForSymbol(a.endDimensionLineSymbol,a.primitiveOverrides,t,i,r),this._createMeshesForSymbol(a.beginExtensionLineSymbol,a.primitiveOverrides,t,i,r),this._createMeshesForSymbol(a.endExtensionLineSymbol,a.primitiveOverrides,t,i,r),this._createMeshesForSymbol(a.textSymbol,a.primitiveOverrides,t,i,r)]),d=await this._context.createMeshWriters([...o,...l,...u,...h,...c]);if((0,n.A)("esri-2d-annotation-dimension-debug")){let e=await Ke(this._context,r,s);return e.writers.length?Ae(d,e):d}return d}async _createMeshesForSymbol(e,t,i,r,s){if(!e)return[];let n=await Ce.OverrideHelper.resolveSymbolOverrides({type:"CIMSymbolReference",primitiveOverrides:t,symbol:e},r,i.metadata.outSpatialReference,null,i.geometryType);return n?(await s.fetchMeshResourceImmediate({type:"mesh-request",symbolReference:{type:"CIMSymbolReference",symbol:n}}))?.meshes??[]:[]}_readStyleId(e){return parseInt(`${e.readAttribute("STYLEID")}`,10)}_getStyle(e){return this._schema.styleCollection.find(t=>(t.iD??0)===e)}async _cacheGlyphs(e,t,i){let r=e.getTextString(t);if(!r)return;let s=await i.fetchResourceImmediate({type:"cim-rasterization-info",resource:{type:"text",textString:r||"",font:ct(e.textSymbol),symbol:e.textSymbol,supportsRichText:(0,ei.q)(r)}});("glyphs"===s?.type||"rich-glyphs"===s?.type)&&e.setTextResource(s)}cleanup(e,t,i){let r=t.getObjectId(),s=(0,Zt.$)(i,r);this._meshWriters.delete(s),this._dimensionInfos.delete(s),this._matcherGeometryOverrides.delete(s)}getAnalyzedGraphic(e){return this._dimensionInfos.get(e)||null}getMatcherGeometryOverride(e){return this._matcherGeometryOverrides.get(e)??null}}class yi extends Te{constructor(e,t){super(),this._intervals=[],this._isMaxInclusive=t,this._field=e}static async fromIntervalSchema(e,t){let i=await e.storage.createComputedField(t),r=new yi(i,t.isMaxInclusive);await Promise.all(t.intervals.map(async t=>{let i=Ae(await e.createMeshWriters(t.meshes),await e.createMeshWriters(t.alternateMeshes));r.add(t,i)}));let s=await e.createMeshWriters(t.defaultSymbol);r.setDefault(s);let n=await e.createMeshWriters(t.backgroundFill);return r.setBackgroundFill(n),r}add(e,t){this._intervals.push({interval:e,result:t}),this._intervals.sort((e,t)=>e.interval.min-t.interval.min)}size(){return super.size()+this._intervals.length}hasArcadeDependency(e){return this._field?.hasArcadeDependency(e)||this._intervals.some(t=>t.result.writers.some(t=>t.hasArcadeDependency(e)))}doMatch(e,t,i){let r=this._field?.read(e,t);if(null==r||isNaN(r)||r===1/0||r===-1/0)return null;for(let e=0;e<this._intervals.length;e++){let{interval:t,result:i}=this._intervals[e],s=r>=t.min,n=this._isMaxInclusive?r<=t.max:r<t.max;if(s&&n)return i}return null}}class _i extends Te{static async fromLabelSchema(e,t){let i=t.classes.map(async t=>{let i=await e.createMeshWriters(t.meshes);return{minScale:t.minScale,maxScale:t.maxScale,meshes:i,expression:null,where:await e.storage.createWhereClause(t.where)}}),r=await Promise.all(i);return new _i(r)}constructor(e){super(),this._labels=e}match(e,t,i,r){let s=this.matchGroups(e,t,i,r);return s.length>0?Ae(...s):null}matchGroups(e,t,i,r){if(!this._labels.length)return[];let s=this._getLabels(t.$view.scale),n=[];for(let t of s)(!t.where||t.where(e,i))&&n.push(t.meshes);return n}hasArcadeDependency(e){return this._labels.some(t=>t.meshes.writers.some(t=>t.hasArcadeDependency(e)))}_getLabels(e){return this._labels.filter(t=>this._validForTileScale(t,e))}_validForTileScale(e,t){let i=t-t/4,r=t+t/2;return(!e.minScale||e.minScale>=i)&&(!e.maxScale||e.maxScale<=r)}}class gi extends Te{constructor(e,t){super(),this._defaultSymbolSortKey=0,this._nullResult=null,this._resultsMap=new Map,this._fields=[],this._fields=e,this._separator=t||""}static async fromMatcherSchema(e,t){let i=t.expression?[e.storage.createComputedField({expression:t.expression})]:[t.field?e.storage.createComputedField({field:t.field}):null,t.field2?e.storage.createComputedField({field:t.field2}):null,t.field3?e.storage.createComputedField({field:t.field3}):null],r=(await Promise.all(i)).filter(e=>!!e),s=new gi(r,t.fieldDelimiter),n=await e.createMeshWriters(t.defaultSymbol);s.setDefault(n);let a=await e.createMeshWriters(t.backgroundFill);return s.setBackgroundFill(a),await Promise.all(t.map.map(async(t,i)=>{let r=Ae(await e.createMeshWriters(t.meshes),await e.createMeshWriters(t.alternateMeshes));"<Null>"===t.value?s.setNullResult(r):s.add(t.value,r,i+1)})),s}setNullResult(e){this._nullResult=e}getSortKey(e,t){let i=this._getValueFromFields(e,t);if(null==i||""===i||"<Null>"===i)return 0;let r=this._resultsMap.get(i.toString());return r?r.sortKey:this._defaultSymbolSortKey}add(e,t,i){this._resultsMap.set(e.toString(),{meshWriters:t,sortKey:i}),this._defaultSymbolSortKey=Math.max(this._defaultSymbolSortKey,i+1)}size(){return super.size()+this._resultsMap.size}hasArcadeDependency(e){return this._fields.some(t=>t.hasArcadeDependency(e))||[...this._resultsMap.values()].some(t=>t.meshWriters.writers.some(t=>t.hasArcadeDependency(e)))||this._nullResult?.writers.some(t=>t.hasArcadeDependency(e))||!1}doMatch(e,t,i){let r=this._getValueFromFields(e,t);if(null!==this._nullResult&&(null==r||""===r||"<Null>"===r))return this._nullResult;if(null==r)return null;let s=r.toString();return this._resultsMap.get(s)?.meshWriters}_getValueFromFields(e,t){let i=[];for(let r of this._fields){let s=r.read(e,t);null==s||""===s?i.push("<Null>"):i.push(s)}return i.join(this._separator)}}async function xi(e,t){switch(t.type){case"annotation-feature":return Qt.fromAnnotationSchema(e,t);case"dimension-feature":return mi.fromDimensionSchema(e,t);case"simple":case"heatmap":case"dot-density":case"pie-chart":return Te.from(e,t);case"interval":return yi.fromIntervalSchema(e,t);case"dictionary":return Jt.fromDictionaryRenderer(e,t);case"label":return _i.fromLabelSchema(e,t);case"map":return gi.fromMatcherSchema(e,t);case"subtype":return bi.fromSubtypes(e,t);case"cluster":return wi.fromClusterSchema(e,t);case"track":return vi.fromTrackSchema(e,t);default:throw Error("Impl")}}class bi extends Te{constructor(e,t){super(),this._subMatchers=e,this._subtypeField=t}static async fromSubtypes(e,t){let i=new Map,r=[];for(let s in t.renderers){let n=parseInt(s,10),a=xi(e,t.renderers[s]).then(e=>i.set(n,e));r.push(a)}return await Promise.all(r),new bi(i,t.subtypeField)}match(e,t,i,r){let s=e.readAttribute(this._subtypeField),n=this._subMatchers.get(s);return n?n.match(e,t,i,r):null}hasArcadeDependency(e){for(let t of this._subMatchers.values())if(t.hasArcadeDependency(e))return!0;return!1}}class wi extends Te{static async fromClusterSchema(e,t){let[i,r]=await Promise.all([xi(e,t.feature),xi(e,t.cluster)]);return new wi(i,r)}constructor(e,t){super(),this._featureMatcher=e,this._clusterMatcher=t}match(e,t,i,r){return 1===e.readAttribute("cluster_count")?this._featureMatcher.match(e,t,i,r):this._clusterMatcher.match(e,t,i,r)}hasArcadeDependency(e){return this._featureMatcher.hasArcadeDependency(e)||this._clusterMatcher.hasArcadeDependency(e)}}class vi extends Te{static async fromTrackSchema(e,t){let[i,r,s]=await Promise.all([xi(e,t.previousObservation),xi(e,t.latestObservation),xi(e,t.trackLine)]);return new vi(i,r,s)}constructor(e,t,i){super(),this._previousObservationMatcher=e,this._latestObservationMatcher=t,this._trackLineMatcher=i}match(e,t,i,r){switch(e.readAttribute(Ie.EA)){case 0:return this._trackLineMatcher.match(e,t,i,r);case 1:return this._latestObservationMatcher.match(e,t,i,r);case 2:return this._previousObservationMatcher.match(e,t,i,r)}return null}hasArcadeDependency(e){return this._trackLineMatcher.hasArcadeDependency(e)||this._latestObservationMatcher.hasArcadeDependency(e)||this._previousObservationMatcher.hasArcadeDependency(e)}}class Si extends ve{static async create(e,t){let i=await xi(e,t.symbology),r=t.labels?await xi(e,t.labels):null;return new Si(i,r)}constructor(e,t){super(),this._symbology=e,this._labels=t}destroy(){}async enqueueMatcherRequests(e,t,i,r){await Promise.all([this._symbology.fetchResources(e,t,i,r),this._labels?.fetchResources(e,t,i,r)])}enqueueWriterRequests(e,t,i,r,s){let n=this._symbology.match(t,i,r,s);if(n){for(let r of n.writers)r.enqueueRequest(e,t,i);if(this._labels)for(let n of this._labels.matchGroups(t,i,r,s))for(let r of n.writers)r.enqueueRequest(e,t,i)}}write(e,t,i,r,s,n,a,o){let l=null==o?void 0:o/r.$view.scale,u=this._symbology.match(i,r,s,e.id);if(!u)return;let h=null;if(u.requiresCoordination?(h=new Se({out:e,proxy:t,feature:i,options:r,level:n,viewExtent:a,scaleFactor:l,coordinatorFactories:[be]}),h.coordinateAndWrite(u,{matcher:this._symbology})):this._writeUncoordinated(u,e,t,i,r,n,a,l,this._symbology),this._symbology.cleanup(t,i,e.id,r,s),e.entityRecordCount()>=1&&this._labels)for(let o of this._labels.matchGroups(i,r,s,e.id))o.requiresCoordination?(h??=new Se({out:e,proxy:t,feature:i,options:r,level:n,viewExtent:a,scaleFactor:l,coordinatorFactories:[be]}),h.coordinateAndWrite(o,{externalReferences:u.exports})):this._writeUncoordinated(o,e,t,i,r,n,a,l)}getSortKey(e,t){return this._symbology.getSortKey(e,t)}hasArcadeDependency(e){return!(!this._symbology.hasArcadeDependency(e)&&!this._labels?.hasArcadeDependency(e))}_writeUncoordinated(e,t,i,r,s,n,a,o,l){for(let u of e.writers)u.setReferences(null),u.write(t,i,r,s,n,a,o,l)}}var Ii=i(799);class Mi{}class Ci extends Mi{constructor(e,t){super(),this._fetcher=e,this._workerFetcher=t,this._controller=new AbortController,this._pendingRequests=new Map,this._pendingTextRequests=new Map,this._resourceIdToResource=new Map}destroy(){this._controller.abort()}get _abortOptions(){return{signal:this._controller.signal}}enqueueRequest(e){let t=this._workerFetcher&&"cim-rasterization-info"===e.type&&"text"===e.resource.type?this._pendingTextRequests:this._pendingRequests,i=function(e){return"url"in e&&"urlHash"in e?{...e,url:""}:e}(e.resource),r=(0,Ii.xq)(JSON.stringify(i));return t.has(r)||t.set(r,e),r}async fetchEnqueuedResources(){let e=Array.from(this._pendingRequests.entries()),t=e.map(e=>e[1]);if(t.length>0){let i=await this._fetcher.fetch(t,this._abortOptions);for(let t=0;t<i.length;t++){let r=e[t][0];this._resourceIdToResource.set(r,i[t])}this._pendingRequests.clear()}let i=Array.from(this._pendingTextRequests.entries()),r=i.map(e=>e[1].resource);if(this._workerFetcher&&r.length>0){let e=await this._workerFetcher.fetchGlyphs(r,this._abortOptions);for(let t=0;t<e.length;t++){let r=i[t][0];this._resourceIdToResource.set(r,e[t])}this._pendingTextRequests.clear()}}async fetchResourceImmediate(e){let t=this._workerFetcher&&"cim-rasterization-info"===e.type&&"text"===e.resource.type?await this._workerFetcher.fetchGlyphs([e.resource]):await this._fetcher.fetch([e]);if(1!==t.length)throw Error("FeaturePipelineResourceProxy: failed to fetch resources");return t[0]}async fetchDictionaryResourceImmediate(e){let t=await this._fetcher.fetchDictionary([e]);if(1!==t.length)throw Error("FeaturePipelineResourceProxy: failed to fetch dictionary resources");return t[0]}async fetchMeshResourceImmediate(e){let[t]=await this._fetcher.fetchMesh([e]);if(!t)throw Error("FeaturePipelineResourceProxy: failed to fetch mesh resources");return t}getResource(e){return this._resourceIdToResource.get(e)}}i(35521);var ki=i(78653);class Ai{static getPlacement(e,t,i,r,s){let n=(0,ki.c)(i);return n?(-1===t&&e.invertY(),n.execute(e,i,r,s)):null}}var Pi=i(68197);function Ti(e,t){return[!!e?.minScale&&t.scaleToZoom(e.minScale)||0,!!e?.maxScale&&t.scaleToZoom(e.maxScale)||100]}function Fi(e){return 1<<e}function Ei(e){let t=0;for(let[i,r]of e)r&&(t|=1<<i);return t}function Ri(e){let t;if(!e)return[0,0,0,0];if("string"==typeof e){let i=Pi.A.fromString(e);if(!i)return Ot.A.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.meshWriterUtils").errorOnce(new r.A("mapview:mesh-processing","Unable to parse string into color",{color:e})),[0,0,0,0];t=i.toArray()}else t=e;let[i,s,n,a]=t;return[a/255*i,a/255*s,a/255*n,a]}function Oi(e){switch(e){case"butt":case"Butt":return 0;case"round":case"Round":return 1;case"square":case"Square":return 2}}function Li(e){switch(e){case"bevel":case"Bevel":return 0;case"miter":case"Miter":return 2;case"round":case"Round":return 1}}function zi(e,t){return Math.round(Math.min(Math.sqrt(e*t),255))}function Di(e,t){return Math.round(e*t)/t}const Ni=0,Bi=1,qi=2,Gi=3,Ui=4,Wi=5;var Vi=i(35833),ji=i(51118);class Yi{static executeEffects(e,t,i){let r=new Vi.kT(t);for(let t of e){let e=(0,ki.A)(t);e&&(r=e.execute(r,t,i))}return r}static applyEffects(e,t){if(!e)return t;let i={geomUnitsPerPoint:1,tileKey:null,maxInflateSize:(0,ut.ll)(e),scale:null,spatialReference:null,preventClipping:!1},r=new Vi.kT(ae.z.fromJSONCIM(t));for(let t of e){let e=(0,ki.A)(t);e&&(r=e.execute(r,t,i))}let s,n=[],a=null;for(;s=r.next();)n.push(...(0,ji.x)(s)),a=s.geometryType;return 0===n.length||null===a?null:"esriGeometryPolygon"===a?{rings:n}:{paths:n}}}var $i=i(89518),Hi=i(68572),Xi=i(63907);function Zi(e,t,i){switch(t.type){case Xi.pe.BYTE:{if(1===t.count)return e.getInt8(i+t.offset);let r=[];for(let s=0;s<t.count;s++){let n=s*Int8Array.BYTES_PER_ELEMENT;r.push(e.getInt8(i+t.offset+n))}return r}case Xi.pe.UNSIGNED_BYTE:{if(1===t.count)return e.getUint8(i+t.offset);let r=[];for(let s=0;s<t.count;s++){let n=s*Uint8Array.BYTES_PER_ELEMENT;r.push(e.getUint8(i+t.offset+n))}return r}case Xi.pe.SHORT:{if(1===t.count)return e.getInt16(i+t.offset,!0);let r=[];for(let s=0;s<t.count;s++){let n=s*Int16Array.BYTES_PER_ELEMENT;r.push(e.getInt16(i+t.offset+n,!0))}return r}case Xi.pe.UNSIGNED_SHORT:{if(1===t.count)return e.getUint16(i+t.offset,!0);let r=[];for(let s=0;s<t.count;s++){let n=s*Uint16Array.BYTES_PER_ELEMENT;r.push(e.getUint16(i+t.offset+n,!0))}return r}case Xi.pe.INT:{if(1===t.count)return e.getInt32(i+t.offset,!0);let r=[];for(let s=0;s<t.count;s++){let n=s*Int32Array.BYTES_PER_ELEMENT;r.push(e.getInt32(i+t.offset+n,!0))}return r}case Xi.pe.UNSIGNED_INT:{if(1===t.count)return e.getUint32(i+t.offset,!0);let r=[];for(let s=0;s<t.count;s++){let n=s*Uint32Array.BYTES_PER_ELEMENT;r.push(e.getUint32(i+t.offset+n,!0))}return r}case Xi.pe.FLOAT:{if(1===t.count)return e.getFloat32(i+t.offset,!0);let r=[];for(let s=0;s<t.count;s++){let n=s*Float32Array.BYTES_PER_ELEMENT;r.push(e.getFloat32(i+t.offset+n,!0))}return r}case Xi.pe.HALF_FLOAT:{if(1===t.count)return(0,$i.Kl)(e.getUint16(i+t.offset,!0));let r=[];for(let s=0;s<t.count;s++){let n=s*Uint16Array.BYTES_PER_ELEMENT;r.push((0,$i.Kl)(e.getUint16(i+t.offset+n,!0)))}return r}}}class Qi{static fromVertexSpec(e,t){let i=Hi.q.fromVertexSpec(e,t);return new Qi(i)}constructor(e){this._spec=e,this.collisionVisibility=!1,this._packed=new Uint8Array(this._spec.stride*this._spec.packVertexCount),this._packedU32View=new Uint32Array(this._packed.buffer),this._dataView=new DataView(this._packed.buffer)}get attributeLayout(){return this._spec.attributeLayout}get stride(){return this._spec.stride}writeVertex(e,t,i,r,s,n){for(let e=0;e<this._spec.packVertexCount;e++){let a=e*this._spec.stride;this._packPosition(i,r,a),this._packId(t,a);let o=this._spec.bitset;if(n){if(o.packTessellation){let e=o.packTessellation(n,s,i,r);this._pack(e,o,a)}for(let e of this._spec.standardAttributes)if(null!=e.packTessellation){let t=e.packTessellation(n,s,i,r);this._pack(t,e,a)}else if(e.packAlternating?.packTessellation){let t=e.packAlternating.packTessellation(n,s,i,r);for(let i=0;i<this._spec.packVertexCount;i++){let r=t[i];this._pack(r,e,i*this._spec.stride)}}}let l=128,u=Zi(this._dataView,o,a);this.collisionVisibility?u|=l:u&=~l,this._pack(u,o,a)}e.vertexWriteRegion(this._packedU32View)}pack(e,t){for(let i of this._spec.standardAttributes)if(i.pack&&"string"!=typeof i.pack){let r=i.pack(e,t);for(let e=0;e<this._spec.packVertexCount;e++)this._pack(r,i,e*this._spec.stride)}else if(i.packAlternating?.pack){let r=i.packAlternating.pack(e,t);for(let e=0;e<this._spec.packVertexCount;e++){let t=r[e];this._pack(t,i,e*this._spec.stride)}}}_packPosition(e,t,i){let{offset:r}=this._spec.position,s=this._spec.position.packPrecisionFactor??1,n=(0,$i.lj)(e*s),a=(0,$i.lj)(t*s),o=(0,$i.M9)(n,a);this._dataView.setUint32(i+r,o,!0)}_packId(e,t){let i=e*(this._spec.id.packPrecisionFactor??1),r=4278190080&this._dataView.getUint32(t+this._spec.id.offset,!0);this._dataView.setUint32(t+this._spec.id.offset,i|r,!0)}_pack(e,t,i){!function(e,t,i,r){let s=i.packPrecisionFactor??1;switch(i.type){case Xi.pe.BYTE:if(1===i.count)e.setInt8(r+i.offset,t*s);else for(let n=0;n<i.count;n++){let a=n*Int8Array.BYTES_PER_ELEMENT;e.setInt8(r+i.offset+a,t[n]*s)}break;case Xi.pe.UNSIGNED_BYTE:if(1===i.count)e.setUint8(r+i.offset,t*s);else for(let n=0;n<i.count;n++){let a=n*Uint8Array.BYTES_PER_ELEMENT;e.setUint8(r+i.offset+a,t[n]*s)}break;case Xi.pe.SHORT:if(1===i.count)e.setInt16(r+i.offset,t*s,!0);else for(let n=0;n<i.count;n++){let a=n*Int16Array.BYTES_PER_ELEMENT;e.setInt16(r+i.offset+a,t[n]*s,!0)}break;case Xi.pe.UNSIGNED_SHORT:if(1===i.count)e.setUint16(r+i.offset,t*s,!0);else for(let n=0;n<i.count;n++){let a=n*Uint16Array.BYTES_PER_ELEMENT;e.setUint16(r+i.offset+a,t[n]*s,!0)}break;case Xi.pe.INT:if(1===i.count)e.setInt32(r+i.offset,t*s,!0);else for(let n=0;n<i.count;n++){let a=n*Int32Array.BYTES_PER_ELEMENT;e.setInt32(r+i.offset+a,t[n]*s,!0)}break;case Xi.pe.UNSIGNED_INT:if(1===i.count)e.setUint32(r+i.offset,t*s,!0);else for(let n=0;n<i.count;n++){let a=n*Uint32Array.BYTES_PER_ELEMENT;e.setUint32(r+i.offset+a,t[n]*s,!0)}break;case Xi.pe.FLOAT:if(1===i.count)e.setFloat32(r+i.offset,t*s,!0);else for(let n=0;n<i.count;n++){let a=n*Float32Array.BYTES_PER_ELEMENT;e.setFloat32(r+i.offset+a,t[n]*s,!0)}break;case Xi.pe.HALF_FLOAT:if(1===i.count)e.setUint16(r+i.offset,(0,$i.fw)(t*s),!0);else for(let n=0;n<i.count;n++){let a=n*Uint16Array.BYTES_PER_ELEMENT;e.setUint16(r+i.offset+a,(0,$i.fw)(t[n]*s),!0)}}}(this._dataView,e,t,i)}}class Ki{constructor(e,t,i,r){this._instanceId=e,this._evaluator=t,this._enabledOptionalAttributes=i,this._viewParams=r,this._evaluator.evaluator=e=>this.vertexSpec.createComputedParams(e)}get _vertexPack(){if(!this._cachedVertexPack){let e=Qi.fromVertexSpec(this.vertexSpec,this._enabledOptionalAttributes);!this._evaluator.hasDynamicProperties&&!this._requiresPerFeaturePacking&&e.pack(this._evaluator.evaluatedMeshParams,this._viewParams),e.collisionVisibility=!!this._evaluator.inputMeshParams.collisionVisibility,this._cachedVertexPack=e}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get effects(){return this.evaluatedMeshParams.effects}get collisionVisibility(){return!!this._evaluator.inputMeshParams.collisionVisibility}get effectClippingPadding(){return 0}get effectInfos(){return this._evaluator.inputMeshParams.effects?.effectInfos}get placementInfo(){return this._evaluator.inputMeshParams.placement}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}get _preventEffectClipping(){return!1}get _requiresPerFeaturePacking(){return!1}get _effectRotation(){return null}setReferences(e){this._references=e}getReference(e){return this._references?.get(e)}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){for(let{effect:e}of this.effectInfos||[])await(0,Vi.ai)(e);this.placementInfo&&await(0,Vi.g1)(this.placementInfo.placement)}enqueueRequest(e,t,i){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(e,t,i)}write(e,t,i,r,s,n,a,o,l={}){let u={target:i,options:r,level:s,viewExtent:n,scaleFactor:a,matcher:o,...l};this.ensurePacked(t,i,r,u);let h=e.id||"",c=this.evaluatedMeshParams.effects,d=this._createEffectExecutionContext(i,r,h,a,o,u.effect?.executionContext);if(!c||0===c.length)return void this._write(e,u);let p,f=this.getEffectCursor(i,c,d,u);if(f)for(;p=f.next();)p.invertY(),this._write(e,{...u,effect:{...u.effect,geometry:p},scaleFactor:a})}ensurePacked(e,t,i,r){if(!this._evaluator.hasDynamicProperties&&!this._requiresPerFeaturePacking)return;let s=this._evaluator.hasDynamicProperties?this._evaluator.evaluateMeshParams(e,t,i):this.evaluatedMeshParams;this._prepareEvaluatedMeshParams(s,t,i,r),this._vertexPack.pack(s,this._viewParams)}hasArcadeDependency(e){return this._evaluator.hasArcadeDependency(e)}_writeVertex(e,t,i,r,s){let n=this.evaluatedMeshParams;this._vertexPack.writeVertex(e,t,i,r,n,s)}_prepareEvaluatedMeshParams(e,t,i,r){}_createEffectExecutionContext(e,t,i,r,s,n){return{geomUnitsPerPoint:1.3333333333333333,maxInflateSize:(0,ut.ll)(this.evaluatedMeshParams.effects),scale:t.$view.scale,spatialReference:e.metadata.outSpatialReference??e.metadata.spatialReference,preventClipping:this._preventEffectClipping,tileKey:i,scaleFactor:r,matcher:s,target:e,...n}}getEffectCursor(e,t,i,r){i.scaleFactor??(i={...i,scaleFactor:1});let s=void 0===r.effect?.inputGeometry?null!=e.geometryType&&e.readGeometryForDisplay()?ae.z.fromOptimizedCIM(e.readGeometryForDisplay().clone(),e.geometryType):null:r.effect.inputGeometry;if(!s)return;let n=ae.z.fromOptimizedCIM(s.asOptimized(),s.geometryType);n.invertY();let a=Yi.executeEffects(t,n,i),o=this._effectRotation,l=o?.value,u=null==l||isNaN(l)?r.effect?.rotation:l,h=r.effect?.viewRotation??o?.viewRotation;if((null==u||isNaN(u))&&(null==h||isNaN(h)))return a;let c=(null==u||isNaN(u)?0:null==l||isNaN(l)||"arithmetic"!==o?.type?u:90-u)+(null==h||isNaN(h)?0:-h);if(0===c)return a;let d=null;return"esriGeometryPoint"===n.geometryType&&(n.reset(),n.nextPath()&&n.nextPoint()&&(d=[n.x,n.y]),n.reset()),new Ji(a,i,d,o?.useEffectOrigin??!1,-c*Math.PI/180)}}class Ji{constructor(e,t,i,r,s){this._cursor=e,this._executionContext=t,this._sourceOrigin=i,this._useEffectOrigin=r,this._cos=Math.cos(s),this._sin=Math.sin(s)}next(){this._executionContext.effectOrigin=null;let e=this._cursor.next();if(!e)return null;let t=(this._useEffectOrigin?this._executionContext.effectOrigin:null)??this._sourceOrigin;if(!t)return e;let[i,r]=t,s=e.clone();for(;s.nextPath();)for(;s.nextPoint();){let e=s.x-i,t=s.y-r;s.x=i+e*this._cos-t*this._sin,s.y=r+e*this._sin+t*this._cos}return s.reset(),s}}class er extends Ki{}var tr=i(13195);function ir(e,t){let i;if("string"==typeof e)i=(0,Ii.Wm)(e+`-seed(${t})`);else{let r=12;i=e^t;do{i=107*(i>>8^i)+r|0}while(0!==--r)}return(1+i/(1<<31))/2}function rr(e){return Math.floor(ir(e,sr)*nr)}const sr=53290320,nr=10;class ar{generateSource(e){let t=[];for(let i=1;i<this.length;i++)t.push(`vec4 atom${i} = texture(${e.animationTexture}, (pointer + 0.5) / size);`),t.push("pointer.x += 1.0;");for(let e=0;e<this.ins;e++)t.push("top--;"),t.push(`vec4 in${this.ins-e-1} = stack[top];`);for(let e=0;e<this.outs;e++)t.push(`vec4 out${e};`);let{microcode:i}=this;for(let e of i)t.push(e);for(let e=0;e<this.outs;e++)t.push(`stack[top] = out${e};`),t.push("top++;"),t.push(`if (top >= ${_r}) { top = ${_r-1}; }`);return t}}let or=128;function lr(e){return[`float duration = clamp(${e.duration}, 0.05, 3600.0);`,`float startTimeOffset = ${e.startTimeOffset};`,`float repeatDelay = ${e.repeatDelay};`,`float timeOriginSelector = ${e.timeOriginSelector};`,`float easing = ${e.easing};`,`float playAnimation = ${e.playAnimation} * (1.0 - step(0.0, -${e.duration}));`,`float reverseAnimation = ${e.reverseAnimation};`,"float time = globalTime - (timeOriginSelector == 1.0 ? localTimeOrigin : 0.0);","time *= playAnimation;","time *= 1.0 - reverseAnimation * 2.0;","float period = duration + repeatDelay;","time += reverseAnimation == 1.0 ? (period - startTimeOffset - 0.001) : startTimeOffset + 0.001;","float omega = time / period;","float oi = floor(omega);"]}const ur=["float of = omega * period;","of = (clamp(of, reverseAnimation * repeatDelay, period - (1.0 - reverseAnimation) * repeatDelay) - reverseAnimation * repeatDelay) / duration;","of = easing == 2.0 ? pow(of, 3.0) : of;","of = easing == 3.0 ? 1.0 - pow(1.0 - of, 3.0) : of;","of = easing == 4.0 ? of < 0.5 ? 4.0 * pow(of, 3.0) : 1.0 - pow(-2.0 * of + 2.0, 3.0) / 2.0 : of;"];function hr(e){return[`float repeatType = ${e.repeatType};`,...lr(e),"omega = repeatType == 1.0 || repeatType == 3.0 ? omega - oi : omega;",...ur,"bool oscillate = repeatType == 3.0 && mod(oi, 2.0) == 1.0;",`${e.out} = oscillate ? 1.0 - of : of;`]}function cr(e){return[...lr(e),"omega -= oi;",...ur,`${e.out} = oi + of;`]}const dr={Linear:1,EaseIn:2,EaseOut:3,EaseInOut:4},pr={Loop:1,None:2,Oscillate:3},fr={Local:1,Global:2};function mr(e){let t=dr[e.easing],i=pr[e.repeatType],r=fr[e.timeOriginSelector];return[[e.duration,e.startTimeOffset,e.repeatDelay,r],[i,t,e.playAnimation,e.reverseAnimation]]}const yr={scalar:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=1,this.ins=0,this.outs=1,this.microcode=["out0 = vec4(atom0.y, atom0.y, atom0.y, atom0.y);"]}encode(e){return[[this.opcode,e,0,0]]}},vector3:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=1,this.ins=0,this.outs=1,this.microcode=["out0 = vec4(atom0.yzw, 0.0);"]}encode(e){return[[this.opcode,e[0]||0,e[1]||0,e[2]||0]]}},vector4:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=2,this.ins=0,this.outs=1,this.microcode=["out0 = atom1;"]}encode(e){return[[this.opcode,0,0,0],e]}},animatedTransform:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=10,this.ins=1,this.outs=1,this.microcode=["vec2 fromTranslation = atom1.xy;","vec2 toTranslation = atom1.zw;","float fromRotation = atom2.x;","float toRotation = atom2.y;","float fromScale = atom2.z;","float toScale = atom2.w;","bool relativeTranslation = atom9.x == 1.0;","bool absoluteScale = atom9.y == 1.0;","bool selectGlobalRotation = atom9.z == 1.0;","vec2 translationMultiplier = relativeTranslation ? pixelDimensions : vec2(1.0, 1.0);","float scaleDivisor = absoluteScale ? pixelDimensions.y : 1.0;","float fTranslation;","{",...hr({duration:"atom3.x",startTimeOffset:"atom3.y",repeatDelay:"atom3.z",timeOriginSelector:"atom3.w",repeatType:"atom4.x",easing:"atom4.y",playAnimation:"atom4.z",reverseAnimation:"atom4.w",out:"fTranslation"}),"}","float fRotation;","{",...hr({duration:"atom5.x",startTimeOffset:"atom5.y",repeatDelay:"atom5.z",timeOriginSelector:"atom5.w",repeatType:"atom6.x",easing:"atom6.y",playAnimation:"atom6.z",reverseAnimation:"atom6.w",out:"fRotation"}),"}","float fScale;","{",...hr({duration:"atom7.x",startTimeOffset:"atom7.y",repeatDelay:"atom7.z",timeOriginSelector:"atom7.w",repeatType:"atom8.x",easing:"atom8.y",playAnimation:"atom8.z",reverseAnimation:"atom8.w",out:"fScale"}),"}","vec2 aTranslation = mix(fromTranslation, toTranslation, fTranslation);","float aRotation = mix(fromRotation, toRotation, fRotation);","float aScale = mix(fromScale, toScale, fScale);","vec2 pTranslation = in0.xy;","float pRotation = in0.z;","float pScale = in0.w;","aTranslation *= translationMultiplier;","aScale /= scaleDivisor;","float rotation = pRotation + aRotation;","\n if (selectGlobalRotation) {\n rotation = globalRotation;\n }\n ","float scale = pScale * aScale;","float sin1 = sin(pRotation);","float cos1 = cos(pRotation);","float s1 = pScale;","float x1 = pTranslation.x;","float y1 = pTranslation.y;","float x2 = aTranslation.x;","float y2 = aTranslation.y;","\n vec2 translation = vec2(\n cos1 * s1 * x2 - sin1 * s1 * y2 + x1,\n sin1 * s1 * x2 + cos1 * s1 * y2 + y1\n );\n ","out0 = vec4(translation, rotation, scale);"]}encode(e){return[[this.opcode,0,0,0],[e.translation.from[0],e.translation.from[1],e.translation.to[0],e.translation.to[1]],[e.rotation.from,e.rotation.to,e.scale.from,e.scale.to],...mr(e.translation.timing),...mr(e.rotation.timing),...mr(e.scale.timing),[+!!e.relativeTranslation,+!!e.absoluteScale,+!!e.selectGlobalRotation,0]]}},animatedColor:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=7,this.ins=1,this.outs=1,this.microcode=["float fromOpacity = atom0.y;","float toOpacity = atom0.z;","vec4 fromColor = atom1;","vec4 toColor = atom2;","float fColor;","{",...hr({duration:"atom3.x",startTimeOffset:"atom3.y",repeatDelay:"atom3.z",timeOriginSelector:"atom3.w",repeatType:"atom4.x",easing:"atom4.y",playAnimation:"atom4.z",reverseAnimation:"atom4.w",out:"fColor"}),"}","float fOpacity;","{",...hr({duration:"atom5.x",startTimeOffset:"atom5.y",repeatDelay:"atom5.z",timeOriginSelector:"atom5.w",repeatType:"atom6.x",easing:"atom6.y",playAnimation:"atom6.z",reverseAnimation:"atom6.w",out:"fOpacity"}),"}","vec4 aColor = mix(fromColor, toColor, fColor);","aColor.a *= mix(fromOpacity, toOpacity, fOpacity);","vec4 pColor = in0;","out0 = aColor * pColor;"]}encode(e){return[[this.opcode,e.opacity.from,e.opacity.to,0],[e.color.from[0],e.color.from[1],e.color.from[2],e.color.from[3]],[e.color.to[0],e.color.to[1],e.color.to[2],e.color.to[3]],...mr(e.color.timing),...mr(e.opacity.timing)]}},animatedShift:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=4,this.ins=1,this.outs=1,this.microcode=["float fromShift = atom0.y;","float toShift = atom0.z;","float duration = atom1.x;","bool multiplyToByLineLength = atom3.x == 1.0;","bool multiplyDurationByLineLength = atom3.y == 1.0;","bool continuous = atom3.z == 1.0;","toShift *= multiplyToByLineLength ? lineLength : 1.0;","duration *= multiplyDurationByLineLength ? lineLength : 1.0;","float fShift;","if (continuous) {",...cr({duration:"duration",startTimeOffset:"atom1.y",repeatDelay:"atom1.z",timeOriginSelector:"atom1.w",easing:"atom2.y",playAnimation:"atom2.z",reverseAnimation:"atom2.w",out:"fShift"}),"} else {",...hr({duration:"duration",startTimeOffset:"atom1.y",repeatDelay:"atom1.z",timeOriginSelector:"atom1.w",repeatType:"atom2.x",easing:"atom2.y",playAnimation:"atom2.z",reverseAnimation:"atom2.w",out:"fShift"}),"}","float aShift = mix(fromShift, toShift, fShift);","vec4 pShift = in0;","out0 = mod(aShift + pShift, lineLength);"]}encode(e){return[[this.opcode,e.shift.from,e.shift.to,0],...mr(e.shift.timing),[+!!e.multiplyToByLineLength,+!!e.multiplyDurationByLineLength,+!!e.continuous,0]]}},ret:new class extends ar{constructor(){super(...arguments),this.opcode=++or,this.length=1,this.ins=0,this.outs=0,this.microcode=["break;"]}encode(){return[[this.opcode,0,0,0]]}}},_r=4;function gr(e){return e instanceof xr?e:"object"==typeof e&&"type"in e?Ir[e.type].hydrate(e):new br(e)}class xr{constructor(e){this.inputs=e}encode(){let e=[];for(let t of this.inputs)e.push(...t.encode());return e.push(...this.instructions),e}}class br extends xr{constructor(e){super([]),this.value=e}simplify(){return this}get instructions(){if(Array.isArray(this.value)){let[e,t,i,r]=this.value;return null==r?yr.vector3.encode([e,t||0,i||0]):yr.vector4.encode([e,t||0,i||0,r])}return yr.scalar.encode(this.value)}}class wr extends xr{constructor(e,t){super([t]),this._config=e,this._parent=t}static hydrate(e){return new wr(e,gr(e.parent))}simplify(){if(this._config.relativeTranslation||this._config.absoluteScale||this._config.selectGlobalRotation)return this;let e=this._parent.simplify();if(!(e instanceof br))return this;let[t,i,r,s]=e.value,n=this._config.translation.from[0],a=this._config.translation.from[1],o=this._config.rotation.from,l=this._config.scale.from;if(n===this._config.translation.to[0]&&a===this._config.translation.to[1]&&o===this._config.rotation.to&&l===this._config.scale.to){let e=r+o,u=s*l,h=Math.sin(r),c=Math.cos(r);return new br([c*s*n-h*s*a+t,h*s*n+c*s*a+i,e,u])}return new wr(this._config,e)}get instructions(){return yr.animatedTransform.encode(this._config)}}class vr extends xr{constructor(e,t){super([t]),this._config=e,this._parent=t}static hydrate(e){return new vr(e,gr(e.parent))}simplify(){let e=this._parent.simplify();if(!(e instanceof br))return this;let[t,i,r,s]=e.value,n=this._config.color.from[0],a=this._config.color.from[1],o=this._config.color.from[2],l=this._config.color.from[3],u=this._config.opacity.from;return n===this._config.color.to[0]&&a===this._config.color.to[1]&&o===this._config.color.to[2]&&l===this._config.color.to[3]&&u===this._config.opacity.to?(l*=u,new br([t*n,i*a,r*o,s*l])):new vr(this._config,e)}get instructions(){return yr.animatedColor.encode(this._config)}}class Sr extends xr{constructor(e,t){super([t]),this._config=e,this._parent=t}static hydrate(e){return new Sr(e,gr(e.parent))}simplify(){let e=this._parent.simplify();return e instanceof br?new Sr(this._config,e):this}get instructions(){return yr.animatedShift.encode(this._config)}}const Ir={AnimatedTransform:wr,AnimatedColor:vr,AnimatedShift:Sr};function Mr(e){return kr(e.map(e=>Pr(e)).map(e=>gr(e).simplify()))}function Cr(e){let t=[];return t.push(e.transform),t.push(e.fromColor),t.push(e.toColor),t.push(e.colorMix),t.push(e.toOpacity),t.push(e.opacityMix),e?.shift?t.push(e?.shift):t.push([1,1,1,1]),t}function kr(e){let t=[],i=[],r=0;for(let s of e){let n=[...s.encode(),...yr.ret.encode()];t.push([r+e.length,0,0,0]),i.push(...n),r+=n.length}return[...t,...i]}async function Ar(e,t){let i,r=e;if("number"==typeof r||"string"==typeof r||"boolean"==typeof r)i=r;else if(Array.isArray(r))i=await Promise.all(r.map(e=>Ar(e,t)));else if("object"==typeof r)if("valueExpressionInfo"in r){let{valueExpressionInfo:e}=r,{expression:s}=e;i={...r,computed:await t.createComputedField({expression:s})}}else{i={};for(let e in r)i[e]=await Ar(r[e],t)}return i}function Pr(e,t,i){let r,s=e;if("number"==typeof s||"string"==typeof s||"boolean"==typeof s)r=s;else if(Array.isArray(s))r=s.map(e=>Pr(e,t,i));else if("object"==typeof s)if("type"in s&&null!=s.type&&"Process"===s.type)switch(s.op){case"ArcadeColor":{let e=Pr(s.value,t,i);Fr(Array.isArray(e)&&4===e.length),r=[e[0]/255,e[1]/255,e[2]/255,e[3]]}break;case"Transparency":{let e=Pr(s.value,t,i);Fr("number"==typeof e),r=1-e/100}break;case"Divide":case"Multiply":case"Add":{let e=Pr(s.left,t,i);Fr("number"==typeof e);let n=Pr(s.right,t,i);switch(Fr("number"==typeof n),s.op){case"Divide":r=e/n;break;case"Multiply":r=e*n;break;case"Add":r=e+n}}break;case"Random":{let e=Pr(s.seed,t,i),n=Pr(s.min,t,i),a=Pr(s.max,t,i);r=n+ir(rr(t.getObjectId()||0),e)*(a-n)}break;case"Cond":{let e=Pr(s.condition,t,i),n=Pr(s.ifTrue,t,i),a=Pr(s.ifFalse,t,i);r=e?n:a}break;case"MatchWinding":{let e=Pr(s.sign,t,i),n=Pr(s.angle,t,i);if(e>0)for(;n<0;)n+=2*Math.PI;else for(;n>0;)n-=2*Math.PI;r=n}}else if("computed"in s)r=function(e){if(!("computed"in e))return e;let r=e.computed.readWithDefault(t,i,[255*e.defaultValue[0],255*e.defaultValue[1],255*e.defaultValue[2],e.defaultValue[3]]);if("string"==typeof r){let e=Pi.A.fromString(r);e&&(r=[e.r,e.g,e.b,e.a])}return r}(s);else{r={};for(let e in s)r[e]=Pr(s[e],t,i)}return r}function*Tr(e){let t=e;if(Array.isArray(t))for(let e of t)yield*Tr(e);else if("object"==typeof t)if("type"in t&&null!=t.type&&"Process"===t.type)switch(t.op){case"ArcadeColor":case"Transparency":yield*Tr(t.value);break;case"Divide":case"Multiply":case"Add":yield*Tr(t.left),yield*Tr(t.right);break;case"Random":yield*Tr(t.seed),yield*Tr(t.min),yield*Tr(t.max);break;case"Cond":yield*Tr(t.condition),yield*Tr(t.ifTrue),yield*Tr(t.ifFalse);break;case"MatchWinding":yield*Tr(t.sign),yield*Tr(t.angle)}else if("computed"in t)yield t.computed;else for(let e in t)yield*Tr(t[e])}function Fr(e){if(!e)throw Error("Assertion failed.")}const Er={type:Xi.pe.HALF_FLOAT,count:2,pack:({scaleInfo:e},{tileInfo:t})=>Ti(e,t)},Rr={type:Xi.pe.FLOAT,count:4,packPrecisionFactor:1,packTessellation:({value1Position2Value2:e})=>(Fr(e),e)},Or={type:Xi.pe.FLOAT,count:4,packPrecisionFactor:1,packTessellation:()=>[0,0,0,1]},Lr={type:Xi.pe.FLOAT,count:1,packPrecisionFactor:1,pack:()=>0},zr={type:Xi.pe.FLOAT,count:1,packPrecisionFactor:1,packTessellation:({lineLength:e})=>e},Dr={type:Xi.pe.UNSIGNED_SHORT,count:1,packTessellation:({distance:e})=>e},Nr={type:Xi.pe.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:e,directionY:t})=>[e,t]},Br={type:Xi.pe.FLOAT,count:2,packPrecisionFactor:16,packTessellation:({normalX:e,normalY:t})=>[e,t]},qr={type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},Gr={type:Xi.pe.UNSIGNED_BYTE,count:1,pack:function(e){let{sprite:t,isMapAligned:i,colorLocked:r,scaleSymbolsProportionally:s,isStroke:n}=e,a=0;return i&&(a|=Fi(Bi)),r&&(a|=Fi(Ui)),t.sdf&&(a|=Fi(Ni)),s&&(a|=Fi(qi)),n&&(a|=Fi(Wi)),a}},Ur={type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:1},Wr={marker:{type:Xi.pe.FLOAT,count:2,packAlternating:{count:4,pack:({texelDimensions:e})=>[[-.5*e[0],-.5*e[1]],[.5*e[0],-.5*e[1]],[-.5*e[0],.5*e[1]],[.5*e[0],.5*e[1]]]}},line:{type:Xi.pe.FLOAT,count:2,packTessellation:({extrusionOffsetX:e,extrusionOffsetY:t},{baseSize:i})=>[e*i/2,t*i/2]},fill:{type:Xi.pe.FLOAT,count:2,packTessellation:()=>[0,0]}},Vr={marker:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:1,packAlternating:{count:4,packTessellation:({texXmax:e,texXmin:t,texYmax:i,texYmin:r})=>[[t,r],[e,r],[t,i],[e,i]]}}},jr={type:Xi.pe.UNSIGNED_SHORT,count:4,pack:({sprite:e})=>{let{rect:t,width:i,height:r}=e,s=t.x+4,n=t.y+4;return[s+1,n+1,s+i-1,n+r-1]}},Yr={type:Xi.pe.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,pack:({animations:e,baseSize:t,referenceSize:i})=>[e.dataColumn,e.dataRow,t,i]},$r={type:Xi.pe.UNSIGNED_SHORT,count:4,packPrecisionFactor:8,pack:({strokeWidth:e,pixelDimensions:t,baseSize:i,sprite:r,sizeRatio:s})=>{let n=Math.max(i*r.width/r.height,i),a=r.sdfDecodeCoeff*n*s;return[t[0],t[1],e,a]}},Hr={type:Xi.pe.BYTE,count:1,packPrecisionFactor:16,packTessellation:({angle:e})=>e},Xr={type:Xi.pe.BYTE,count:1,pack:({angle:e})=>e?e*tr.aA:0},Zr={type:Xi.pe.BYTE,count:1,pack:()=>0};function Qr(e,t,i){let r=Array(e.attributes.length);for(let s=0;s<r.length;s++)r[s]=e.attributes[s]+(t.attributes[s]-e.attributes[s])*i;return{x:e.x+(t.x-e.x)*i,y:e.y+(t.y-e.y)*i,attributes:r}}function Kr(e,t){return e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height}function Jr(e,t){let i=e.next;if(null==e.prev)return Kr(i,t)&&e.clipped.push([i]),e.prev=i,void(e.next=null);let r=e.prev,s=Kr(r,t),n=Kr(i,t);if(s&&n)return e.clipped[e.clipped.length-1].push(i),e.prev=i,void(e.next=null);let a=i.x-r.x,o=i.y-r.y,l=0,u=1;for(let[s,n,h,c]of[[r.x,a,t.x,t.x+t.width],[r.y,o,t.y,t.y+t.height]]){if(0===n){if(s<h||s>c)return e.prev=i,void(e.next=null);continue}let t=(h-s)/n,r=(c-s)/n;l=Math.max(l,Math.min(t,r)),u=Math.min(u,Math.max(t,r))}l<u&&l>=0&&u<=1&&(!s&&n?e.clipped.push([Qr(r,i,l),i]):s&&!n?u>0&&e.clipped[e.clipped.length-1].push(Qr(r,i,u)):!s&&!n&&e.clipped.push([Qr(r,i,l),Qr(r,i,u)])),e.prev=i,e.next=null}function es(e){return ts({...e,pixelDimensions:e.pixelDimensions??[e.sprite.width/(e.sprite.sdf?4:1),e.sprite.height]})}function ts(e){let{pixelDimensions:t,texelDimensions:i,baseSize:r,referenceSize:s,strokeWidth:n,sizeRatio:a}=e;if(t||=e.sprite.sdf?[0,0]:[e.sprite.width,e.sprite.height],i||=e.sprite.sdf?[0,0]:t,null!=e.patternHeight){let i=e.patternHeight/t[1];t[1]*=i,t[0]*=i}-1===r&&(r=t[1]),r=(0,h.Lz)(r),s=(0,h.Lz)(s),n=(0,h.Lz)(n);let o=(e.sprite.sdfDecodeCoeff??1)*a;return{...e,pixelDimensions:t,texelDimensions:i,baseSize:r,referenceSize:s,strokeWidth:n,sdfDecodeCoeff:o}}class is extends er{get vertexSpec(){return{createComputedParams:ts,optionalAttributes:{zoomRange:Er,value1Position2Value2:Rr,lineLength:zr},attributes:{id:qr,bitset:Gr,pos:Ur,offset:Wr.marker,uv:Vr.marker,animationPointerAndBaseSizeAndReferenceSize:Yr,sizing:$r,angle:Hr}}}_write(e,{target:t,effect:i}){let r=i?.geometry,{textureBinding:s}=this.evaluatedMeshParams.sprite;e.recordStart(this.instanceId,this.attributeLayout,s);let n=t.getDisplayId();if(this.shift&&"esriGeometryPolyline"===t.geometryType){if(!r){let i=ae.z.fromFeatureSetReaderCIM(t);i&&this._writeParticles(e,t,i)}}else if(null!=this.evaluatedMeshParams.placement)this._writePlacedMarkers(e,t);else if("esriGeometryPolygon"===t.geometryType){let i=t.readCentroidForDisplay();if(!i)return;let[r,s]=i.coords;this._writeQuad(e,n,r,s)}else if("esriGeometryPoint"===t.geometryType){let i=t.readXForDisplay(),r=t.readYForDisplay();this._writeQuad(e,n,i,r)}else{let i=t.readGeometryForDisplay();i&&i.forEachVertex((t,i)=>{this._writeQuad(e,n,t,i)})}e.recordEnd()}_writePlacedMarkers(e,t){let i=ae.z.fromFeatureSetReaderCIM(t)?.clone();if(!i)return;let r=Ai.getPlacement(i,-1,this.evaluatedMeshParams.placement,h.L7,e.id);if(!r)return;let s=t.getDisplayId(),n=r.next(),a=null;for(;null!=n;){let t=n.tx,i=-n.ty;if(Math.abs(t)>1024||Math.abs(i)>1024){n=r.next();continue}let o=-n.getAngle();e.recordBounds(t,i,64,64),this.shift?a&&this._writeQuad(e,s,a[0],a[1],void 0,o):this._writeQuad(e,s,t,i,void 0,o),a=[t,i],n=r.next()}}_writeParticles(e,t,i){let r=t.getDisplayId(),{placement:s}=this.evaluatedMeshParams,n=s?.placePerPart??!1,{lineData:a,totalDistance:o}=function(e,t){let i=[],r=0,s=0;for(;e.nextPath();){s=t?0:r,e.nextPoint();let{x:n,y:a}=e,o=[{x:n,y:a,attributes:[s]}];for(;e.nextPoint();){let{x:t,y:i}=e,r=t-n,l=i-a;s+=Math.sqrt(r*r+l*l),o.push({x:t,y:i,attributes:[s]}),n=t,a=i}o.length>1&&i.push(o),r=s}return{lineData:i,totalDistance:r}}(i,n);if(0===a.length)return;let l=this.evaluatedMeshParams.baseSize,u={x:-l,y:-l,width:512+2*l,height:512+2*l},h=a.flatMap(e=>{let t=n?e[e.length-1].attributes[0]:o;return function(e,t){let i=[];for(let r of e){let e=[],{x:s,y:n}=r[0],a=r[0].attributes[0];for(let t=1;t<r.length;t++){let{x:i,y:o}=r[t],l=r[t].attributes[0],u=i-s,h=o-n,c=Math.sqrt(u*u+h*h);c>0&&(u/=c,h/=c,e.push({a:{position:[s,n],distance:a,direction:[u,h]},b:{position:[i,o],distance:l,direction:[u,h]}}),s=i,n=o,a=l)}i.push({particles:e,lineLength:t})}return i}(function(e,t){let i={clipped:[],prev:null,next:null},r=0;for(;null!=i.next||r<e.length;)null==i.next?i.next=e[r++]:Jr(i,t);return i.clipped}(e,u),t)});for(let{particles:t,lineLength:i}of h){let n=s=>{for(let n of t){let{a:t,b:a}=n;this._writeQuad(e,r,t.position[0],t.position[1],[t.distance-s,a.position[0],a.position[1],a.distance-s],this.evaluatedMeshParams.angleToLine?Math.atan2(t.direction[1],t.direction[0]):0,i,!0)}};if(!s||"placementTemplate"in s||"CIMMarkerPlacementOnVertices"===s.type){let e;if(s&&"CIMMarkerPlacementOnVertices"!==s.type)e=s.placementTemplate;else{e=[0];for(let i of t){let{a:t,b:r}=i,s=t.position[0]-r.position[0],n=t.position[1]-r.position[1],a=Math.sqrt(s*s+n*n);e.push(a)}}let r=-1*i;for(;r<2*i;)for(let t of e)r+=t,n(r)}else"CIMMarkerPlacementAtExtremities"===s.type?"JustBegin"===s.extremityPlacement?n(1):"JustEnd"===s.extremityPlacement?(n(i-1),n(-1)):"Both"===s.extremityPlacement&&(n(1),n(i-1)):"CIMMarkerPlacementOnLine"===s.type&&("LineBeginning"===s.relativeTo?n(1):"LineEnd"===s.relativeTo?(n(i-1),n(-1)):"LineMiddle"===s.relativeTo&&n(i/2))}}_writeQuad(e,t,i,r,s,n=0,a=0,o=!1){let{rect:l}=this.evaluatedMeshParams.sprite,u=l.x+4,h=l.y+4,c=l.x+l.width-4,d=l.y+l.height-4,p=e.vertexCount();o||e.recordBounds(i,r,64,64);let f={texXmin:u,texYmin:h,texXmax:c,texYmax:d,value1Position2Value2:s,angle:n,lineLength:a};for(let s=0;s<4;s++)this._writeVertex(e,t,i,r,f);e.indexEnsureSize(6),e.indexWrite(p),e.indexWrite(p+1),e.indexWrite(p+2),e.indexWrite(p+1),e.indexWrite(p+3),e.indexWrite(p+2)}}class rs extends is{constructor(){super(...arguments),this.shift=!1}}class ss extends is{constructor(){super(...arguments),this.shift=!0}}var ns=i(15585),as=i(83773),os=i(83349),ls=i(6774);const us=new ls.O3(0,0,0,1,0),hs=new ls.O3(0,0,0,1,0);function cs(e,t,i){let r=0;for(let s=1;s<i;s++){let i=e[2*(t+s-1)],n=e[2*(t+s-1)+1];r+=(e[2*(t+s)]-i)*(e[2*(t+s)+1]+n)}return r}function ds(e,t,i,r,s){let n=0;for(let a=i;a<r;a+=3){let i=2*(e[a]-s),r=2*(e[a+1]-s),o=2*(e[a+2]-s);n+=Math.abs((t[i]-t[o])*(t[r+1]-t[i+1])-(t[i]-t[r])*(t[o+1]-t[i+1]))}return n}function ps(e,t){let{coords:i,lengths:r}=t,s=e,n=0;for(let e=0;e<r.length;){let t=e,a=r[e],o=cs(i,n,a),l=[];for(;++t<r.length;){let e=r[t],s=cs(i,n+a,e);if(!(s>0))break;o+=s,l.push(a),a+=e}let u=s.length,h=i.slice(2*n,2*(n+a)),c=(0,os.e)(h,l,2);for(let e of c)s.push(e+n);let d=ds(s,i,u,s.length,0),p=Math.abs(o);if(Math.abs((d-p)/Math.max(1e-7,p))>1e-5)return s.length=0,!1;e=t,n+=a}return!0}function fs(e){let{coords:t,lengths:i}=e,{buffer:r}=(0,ns.QT)(t,i);return r}function ms(e,t){if(null==e)return null;if(!function(e){let t=0;for(let i=0;i<e.lengths.length;i++){let r=e.lengths[i];for(let i=0;i<r;i++){let r=e.coords[2*(i+t)],s=e.coords[2*(i+t)+1];if(r<-128||r>640||s<-128||s>640)return!0}t+=r}return!1}(e))return e;us.setPixelMargin(t),us.reset(3);let{stride:i,lengths:r,coords:s}=e,n=0;for(let e of r){let t=n+e*i;for(us.moveTo(s[n],s[n+1]),n+=i;n<t;)us.lineTo(s[n],s[n+1]),n+=i;us.close()}let a=us.result(!1);if(!a)return null;let o=new st.A;for(let e of a){for(let{x:t,y:i}of e)o.coords.push(t,i);o.lengths.push(e.length)}return o}function ys(e,t){hs.setPixelMargin(t);let i=hs,r=-t,s=512+t,n=[],a=!1;if(!e.nextPath())return null;let o=e.pathLength(),l=!0;for(;l;){e.seekPathStart();let t=[];if(!e.pathSize)return null;i.reset(2),e.nextPoint();let u=e.x,h=e.y;if(a)i.moveTo(u,h);else{if(u<r||u>s||h<r||h>s){a=!0;continue}t.push({x:u,y:h})}let c=!1;for(;e.nextPoint();)if(u=e.x,h=e.y,a)i.lineTo(u,h);else{if(u<r||u>s||h<r||h>s){c=!0;break}t.push({x:u,y:h})}if(c)a=!0;else{if(a){let e=i.resultWithStarts();if(e)for(let t of e)n.push({...t,pathLength:o})}else n.push({line:t,start:0,pathLength:o});l=e.nextPath(),o=l?e.pathLength():0,a=!1}}return n=n.filter(e=>e.line.length>1),0===n.length?null:n}us.setExtent(512),hs.setExtent(512);var _s=i(23304);class gs{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0,this.pathLength=0,this.distanceOffset=0,this.lineLength=0}}const xs={createComputedParams:e=>e,optionalAttributes:{zoomRange:{type:Xi.pe.HALF_FLOAT,count:2,pack:({scaleInfo:e},{tileInfo:t})=>Ti(e,t)}},attributes:{id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>Ri(e)},offset:{type:Xi.pe.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:e,extrusionOffsetY:t})=>[Di(e,16),Di(t,16)]},normal:{type:Xi.pe.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:e,normalY:t})=>[Di(e,16),Di(t,16)]},halfWidth:{type:Xi.pe.HALF_FLOAT,count:1,pack:({width:e})=>(0,h.Lz)(.5*e)},referenceHalfWidth:{type:Xi.pe.HALF_FLOAT,count:1,pack:({referenceWidth:e})=>(0,h.Lz)(.5*e)}}};class bs{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0,this.distanceOffset=0}}const ws=65535;class vs extends Ki{getCalloutCollisionPadding(){return(0,h.Lz)(.5*this.evaluatedMeshParams.width)}getRenderedLineWidth(){return(0,h.Lz)(this.evaluatedMeshParams.width)}get _effectRotation(){let{effectRotation:e,effectRotationType:t,useEffectOrigin:i,viewRotation:r}=this.evaluatedMeshParams;return null==e&&null==r?null:{value:e,type:t,useEffectOrigin:!!i,viewRotation:r}}constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=xs,this._currentWrite=new bs,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:ws,textured:!1},this._tessParams=new gs,this._initializeTessellator()}writeLineVertices(e,t,i,r){let s=this._getLines(t,r);null!=s&&this._writeVertices(e,i,s)}_initializeTessellator(){this._lineTessellator=new as.i(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(e,{target:t,effect:i}){let r=i?.geometry??ae.z.fromFeatureSetReaderCIM(t);r&&this._writeGeometry(e,t,r)}_writeGeometry(e,t,i,r){e.recordStart(this.instanceId,this.attributeLayout,r),this.writeLineVertices(e,i,t),e.recordEnd()}_getLines(e,t){return ys(e,t??(0,_s.Z0)(this.evaluatedMeshParams))}_writeVertices(e,t,i){let{_currentWrite:r,_tessellationOptions:s,evaluatedMeshParams:n}=this,{width:a,capType:o,joinType:l,miterLimit:u,hasSizeVV:c}=n,d=(0,h.Lz)(.5*a);s.halfWidth=d,s.capType=Oi(o),s.joinType=Li(l),s.miterLimit=u;let p=!c;r.out=e,r.id=t.getDisplayId(),r.vertexCount=0,r.indexCount=0,r.vertexFrom=e.vertexCount(),r.vertexBounds=function(e,t,i=0){let r=t&&e<1.05?0:Math.max(1,2*e+1);return Math.max(r,i)}(d,p,n.minPixelBuffer);for(let{line:e,start:t,pathLength:n}of i)s.initialDistance=t%ws,r.pathLength=n,r.distanceOffset=Math.floor(t/ws)*ws,this._lineTessellator.tessellate(e,s,p)}_writeTesselatedVertex(e,t,i,r,s,n,a,o,l,u,h){let{out:c,id:d,vertexBounds:p,pathLength:f,distanceOffset:m}=this._currentWrite;return this.hasEffects&&c.recordBounds(e,t,p,p),this._tessParams.extrusionOffsetX=a,this._tessParams.extrusionOffsetY=o,this._tessParams.normalX=l,this._tessParams.normalY=u,this._tessParams.directionX=s,this._tessParams.directionY=n,this._tessParams.distance=h,this._tessParams.pathLength=f,this._tessParams.distanceOffset=m,this._writeVertex(c,d,e,t,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(e,t,i){let{out:r}=this._currentWrite;r.indexEnsureSize(3),r.indexWrite(e),r.indexWrite(t),r.indexWrite(i),this._currentWrite.indexCount+=3}}class Ss extends er{_write(e,{target:t,effect:i}){let r=i?.geometry??ae.z.fromFeatureSetReaderCIM(t);if(!r)return;let{textureBinding:s}=this.evaluatedMeshParams.sprite;e.recordStart(this.instanceId,this.attributeLayout,s);let n=t.getDisplayId();this._writePoly(e,n,r.asOptimized()),e.recordEnd()}}class Is extends Ss{constructor(){super(...arguments),this.vertexSpec={createComputedParams:ts,attributes:{id:qr,bitset:Gr,pos:Ur,offset:Wr.fill,tlbr:jr,animationPointerAndBaseSizeAndReferenceSize:Yr,sizing:$r},optionalAttributes:{zoomRange:Er,value1Position2Value2:Or,lineLength:Lr,angle:Xr}}}_writePoly(e,t,i){i=i.justXY();let r=this._clip(i);if(!r)return;i=r;let s,n=[],a=e.vertexCount();if(ps(n,i)){if(0===n.length)return;s=0;for(let r of n){let n=i.coords[2*r],a=i.coords[2*r+1];this._writeVertex(e,t,n,a),s++}}else{let{coords:r,lengths:n}=i,a=(0,ns.QT)(r,n);s=a.vertexCount;for(let i=0;i<a.buffer.length/2;i++){let r=a.buffer[2*i],s=a.buffer[2*i+1];this._writeVertex(e,t,r,s)}}if(s>0){e.indexEnsureSize(s);for(let t=0;t<s;t++)e.indexWrite(t+a)}}_clip(e){return ms(e,this.hasEffects?256:8)}}class Ms{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0}}class Cs extends Ss{constructor(){super(...arguments),this.vertexSpec={createComputedParams:es,attributes:{id:qr,bitset:Gr,pos:Ur,offset:Wr.line,tlbr:jr,animationPointerAndBaseSizeAndReferenceSize:Yr,sizing:$r,accumulatedDistance:Dr,normal:Br,segmentDirection:Nr},optionalAttributes:{zoomRange:Er,value1Position2Value2:Or,lineLength:zr,angle:Zr}},this._tessParams=new gs,this._currentWrite=new Ms,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:65535,textured:!1},this._lineLength=0,this._lineTessellator=new as.i((e,t,i,r,s,n,a,o,l,u,h)=>this._writeTesselatedVertex(e,t,i,r,s,n,a,o,l,u,h,this._lineLength),this._writeTriangle.bind(this),!1)}_writePoly(e,t,i){i=i.justXY();let r=ys(ae.z.fromOptimized(i,"esriGeometryPolyline"),64);if(null==r)return;let{_currentWrite:s,_tessellationOptions:n}=this,{baseSize:a,capType:o,joinType:l,miterLimit:u}=this.evaluatedMeshParams;n.halfWidth=(0,h.Lz)(.5*a),n.capType=Oi(o||"Round"),n.joinType=Li(l||"Round"),n.miterLimit=u||2,s.out=e,s.id=t,s.vertexCount=0,s.indexCount=0,s.vertexFrom=e.vertexCount(),s.vertexBounds=1;for(let{line:e,start:t,pathLength:i}of r){n.initialDistance=t%65535,s.pathLength=i,this._lineLength=0;for(let t=1;t<e.length;t++){let i=e[t].x-e[t-1].x,r=e[t].y-e[t-1].y;this._lineLength+=Math.sqrt(i*i+r*r)}this._lineTessellator.tessellate(e,n,!1)}}_writeTesselatedVertex(e,t,i,r,s,n,a,o,l,u,h,c){let{out:d,id:p,vertexBounds:f,pathLength:m}=this._currentWrite;return this.hasEffects&&d.recordBounds(e,t,f,f),this._tessParams.extrusionOffsetX=a,this._tessParams.extrusionOffsetY=o,this._tessParams.normalX=l,this._tessParams.normalY=u,this._tessParams.directionX=s,this._tessParams.directionY=n,this._tessParams.distance=h,this._tessParams.pathLength=m,this._tessParams.lineLength=c,this._writeVertex(d,p,e,t,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(e,t,i){let{out:r}=this._currentWrite;r.indexEnsureSize(3),r.indexWrite(e),r.indexWrite(t),r.indexWrite(i),this._currentWrite.indexCount+=3}}class ks extends Ki{async loadDependencies(){await Promise.all([super.loadDependencies(),(0,ns.If)()])}_write(e,{target:t,effect:i}){let r=i?.geometry?.asOptimized()??t.readGeometryForDisplay(),s=this._clip(r);s&&e.withRecord(this.instanceId,this.attributeLayout,void 0,()=>{this._writeGeometry(e,t,s)})}_clip(e){return e?ms(e,this.hasEffects?256:8):null}_writeGeometry(e,t,i){let r=function(e){let t=[];return ps(t,e)?t.length?{indices:t,vertices:e.coords}:null:{indices:null,vertices:fs(e)}}(i=i.justXY());if(!r||!r.vertices.length)return;let s=this.createTesselationParams(t);this._writeVertices(e,t,r,s)}_writeVertices(e,t,i,r){let s=t.getDisplayId(),n=e.vertexCount(),a=this.hasEffects,{vertices:o,indices:l}=i,u=0;if(l)for(let t of l){let i=o[2*t],n=o[2*t+1];a&&e.recordBounds(i,n,0,0),this._writeVertex(e,s,i,n,r),u++}else for(let t=0;t<o.length;t+=2){let i=Math.round(o[t]),n=Math.round(o[t+1]);a&&e.recordBounds(i,n,0,0),this._writeVertex(e,s,i,n,r),u++}e.indexEnsureSize(u);for(let t=0;t<u;t++)e.indexWrite(t+n)}}const As={createComputedParams:e=>e,optionalAttributes:{},attributes:{id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1},pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},inverseArea:{type:Xi.pe.FLOAT,count:1,packTessellation:({inverseArea:e})=>e}}};class Ps extends ks{constructor(){super(...arguments),this.vertexSpec=As}createTesselationParams(e){return{inverseArea:1/e.readGeometryArea()}}}const Ts={createComputedParams:e=>e,optionalAttributes:{zoomRange:{type:Xi.pe.HALF_FLOAT,count:2,pack:({scaleInfo:e},{tileInfo:t})=>Ti(e,t)}},attributes:{id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1},pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>Ri(e)}}};class Fs extends ks{constructor(){super(...arguments),this.vertexSpec=Ts}get _effectRotation(){let{effectRotation:e,effectRotationType:t,useEffectOrigin:i,viewRotation:r}=this.evaluatedMeshParams;return null==e&&null==r?null:{value:e,type:t,useEffectOrigin:!!i,viewRotation:r}}createTesselationParams(e){return null}}const Es={createComputedParams:e=>e,optionalAttributes:Ts.optionalAttributes,attributes:{...Ts.attributes,tlbr:{count:4,type:Xi.pe.UNSIGNED_SHORT,pack:({sprite:e})=>{let{rect:t,width:i,height:r}=e,s=t.x+4,n=t.y+4;return[s,n,s+i,n+r]}},inverseRasterizationScale:{count:1,type:Xi.pe.BYTE,packPrecisionFactor:16,pack:({sprite:e})=>1/e.rasterizationScale}}};class Rs extends Fs{constructor(){super(...arguments),this.vertexSpec=Es}_write(e,{target:t,effect:i}){let r=i?.geometry?.asOptimized()??t.readGeometryForDisplay(),s=this._clip(r);if(!s)return;let n=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,n),this._writeGeometry(e,t,s),e.recordEnd()}}function Os(e){let{sprite:t,aspectRatio:i,scaleProportionally:r}=e,s=(0,h.Lz)(e.height),n=s>0?s:t.height,a=s*i;return a<=0?a=t.width:r&&(a*=t.width/t.height),{width:a,height:n}}function Ls(e){let{applyRandomOffset:t,sampleAlphaOnly:i}=e;return Ei([[2,t],[4,i]])}const zs={createComputedParams:e=>e,optionalAttributes:Es.optionalAttributes,attributes:{...Es.attributes,bitset:{count:1,type:Xi.pe.UNSIGNED_BYTE,pack:Ls},width:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>Os(e).width},height:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>Os(e).height},offset:{count:2,type:Xi.pe.HALF_FLOAT,pack:({offsetX:e,offsetY:t})=>[(0,h.Lz)(e),-(0,h.Lz)(t)]},scale:{count:2,type:Xi.pe.UNSIGNED_BYTE,packPrecisionFactor:16,pack:({scaleX:e,scaleY:t})=>[e,t]},angle:{count:1,type:Xi.pe.UNSIGNED_BYTE,pack:({angle:e})=>(0,tr.wV)(e)}}};class Ds extends Rs{constructor(){super(...arguments),this.vertexSpec=zs}}const Ns={createComputedParams:e=>e,optionalAttributes:xs.optionalAttributes,attributes:{...xs.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:e=>0},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>Ri(e)}}},Bs={createComputedParams:e=>e,optionalAttributes:xs.optionalAttributes,attributes:{...xs.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:e=>Ei([[0,!0],[1,e.outlineUsesColorVV]])},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>Ri(e)}}};class qs extends vs{constructor(){super(...arguments),this.vertexSpec=Bs}}class Gs extends Fs{constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=Ns,this._lineMeshWriter=this._createOutlineWriter(e,t,i,r)}_createOutlineWriter(e,t,i,r){return new qs(e,t,i,r)}_write(e,t){let{target:i,options:r,scaleFactor:s,matcher:n}=t,a=this.evaluatedMeshParams.effects,o=this.evaluatedMeshParams.outlineEffects,l=e.id||"",u=this._createEffectExecutionContext(i,r,l,s,n,t.effect?.executionContext);if(a?.length||o?.length){if(a?.length){let r=this.getEffectCursor(i,a,u,t);if(r){let t;for(;t=r?.next();)t.invertY(),this._writeFill(e,i,t)}}else this._writeFill(e,i);if(o?.length){let r=this.getEffectCursor(i,o,u,t);if(r){let s;for(;s=r?.next();)s.invertY(),this._writeOutline(e,i,s,t.effect?.clippingMargin)}}else this._writeOutline(e,i)}else this._writeSimpleOutlineFill(e,i)}get effectClippingPadding(){return this._lineMeshWriter.getRenderedLineWidth()}_writeSimpleOutlineFill(e,t){let i=t.readGeometryForDisplay(),r=this._clip(i);r&&(this._writeGeometry(e,t,r),this._lineMeshWriter.writeLineVertices(e,ae.z.fromOptimizedCIM(r,"esriGeometryPolyline"),t))}_writeFill(e,t,i){let r=i?.asOptimized()??t.readGeometryForDisplay(),s=this._clip(r);s&&this._writeGeometry(e,t,s)}_writeOutline(e,t,i,r){if(i)return void this._lineMeshWriter.writeLineVertices(e,i,t,r);let s=t.readGeometryForDisplay(),n=this._clip(s);n&&this._lineMeshWriter.writeLineVertices(e,ae.z.fromOptimizedCIM(n,"esriGeometryPolyline"),t)}_clip(e){return e?ms(e,(0,_s.Z0)(this.evaluatedMeshParams)):null}get effectInfos(){return[...this._evaluator.inputMeshParams.effects?.effectInfos??[],...this._evaluator.inputMeshParams.outlineEffects?.effectInfos??[]]}write(e,t,i,r,s,n,a,o,l={}){let u={target:i,options:r,level:s,viewExtent:n,scaleFactor:a,matcher:o,...l};this.ensurePacked(t,i,r,u),e.withRecord(this.instanceId,this.attributeLayout,void 0,()=>{this._write(e,u)})}ensurePacked(e,t,i,r){super.ensurePacked(e,t,i,r),this._lineMeshWriter.ensurePacked(e,t,i,r)}enqueueRequest(e,t,i){super.enqueueRequest(e,t,i),this._lineMeshWriter.enqueueRequest(e,t,i)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}get hasEffects(){return!!this.evaluatedMeshParams.outlineEffects}}const Us=zs,Ws=Bs,Vs={createComputedParams:e=>e,optionalAttributes:Us.optionalAttributes,attributes:{...Us.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:e=>Ls(e)},aux1:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>Os(e).width},aux2:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>Os(e).height},aux3:{count:2,type:Xi.pe.HALF_FLOAT,pack:({offsetX:e,offsetY:t})=>[(0,h.Lz)(e),(0,h.Lz)(t)]},aux4:{count:2,type:Xi.pe.UNSIGNED_BYTE,pack:({scaleX:e,scaleY:t})=>[16*e,16*t]}}},js={createComputedParams:e=>e,optionalAttributes:Us.optionalAttributes,attributes:{...Us.attributes,color:Ws.attributes.color,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:e=>Ei([[0,!0]])},aux1:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>(0,h.Lz)(.5*e.width)},aux2:{count:1,type:Xi.pe.HALF_FLOAT,pack:e=>(0,h.Lz)(.5*e.referenceWidth)},aux3:{count:2,type:Xi.pe.HALF_FLOAT,packTessellation:({extrusionOffsetX:e,extrusionOffsetY:t})=>[e,t]},aux4:{count:2,type:Xi.pe.UNSIGNED_BYTE,packTessellation:({normalX:e,normalY:t})=>[16*e+128,16*t+128]}}};class Ys extends qs{constructor(){super(...arguments),this.vertexSpec=js}}class $s extends Gs{constructor(){super(...arguments),this.vertexSpec=Vs}_createOutlineWriter(e,t,i,r){return new Ys(e,t,i,r)}write(e,t,i,r,s,n,a,o,l={}){let u={target:i,options:r,level:s,viewExtent:n,scaleFactor:a,matcher:o,...l};this.ensurePacked(t,i,r,u);let h=this.evaluatedMeshParams.sprite?.textureBinding;e.withRecord(this.instanceId,this.attributeLayout,h,()=>{this._write(e,u)})}ensurePacked(e,t,i,r){super.ensurePacked(e,t,i,r),this._lineMeshWriter.ensurePacked(e,t,i,r)}enqueueRequest(e,t,i){super.enqueueRequest(e,t,i),this._lineMeshWriter.enqueueRequest(e,t,i)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}var Hs=i(13337);class Xs{constructor(e,t){this._size=e,this._sizeUnits=t,this._relativeSize=null}get relativeSize(){return this._relativeSize??=this.calculateRelativeSize(),this._relativeSize}calculateRelativeSize(){if(this._sizeUnits===Hs.h.Relative){let e=Math.min(this._size/100,1);return[e,e]}return this.calculateRelativeSizeFromAbsolute()}}class Zs extends Xs{constructor(e,t,i,r){super(t,i),this.rotationMatrix00=1,this.rotationMatrix01=0,this.rotationMatrix10=0,this.rotationMatrix11=1,this.bounds={xmin:1/0,ymin:1/0,xmax:-1/0,ymax:-1/0},this.rotationMatrix00=Math.cos(r),this.rotationMatrix01=-Math.sin(r),this.rotationMatrix10=-this.rotationMatrix01,this.rotationMatrix11=this.rotationMatrix00;let{bounds:s,rotationMatrix00:n,rotationMatrix01:a,rotationMatrix10:o,rotationMatrix11:l}=this;e.forEachVertex((e,t)=>{let i=e*n+t*a,r=e*o+t*l;s.xmin=Math.min(s.xmin,i),s.ymin=Math.min(s.ymin,r),s.xmax=Math.max(s.xmax,i),s.ymax=Math.max(s.ymax,r)}),this.center=[(s.xmin+s.xmax)/2,(s.ymin+s.ymax)/2]}}class Qs extends Zs{constructor(e,t,i,r){super(e,t,i,r),this.method="linear"}getRelativePosition(e,t){let{rotationMatrix00:i,rotationMatrix01:r,bounds:s}=this,{xmin:n,xmax:a}=s;return[(e*i+t*r-n)/(a-n),0]}calculateRelativeSizeFromAbsolute(){let{_size:e,bounds:t}=this,{xmin:i,xmax:r}=t;return[(0,h.Lz)(e)/(r-i),0]}}class Ks extends Zs{constructor(e,t,i,r){super(e,t,i,r),this.method="rectangular"}getRelativePosition(e,t){let{bounds:i,center:r,rotationMatrix00:s,rotationMatrix01:n,rotationMatrix10:a,rotationMatrix11:o}=this,l=e*a+t*o,u=e*s+t*n-r[0],h=l-r[1];return[u*(2/(i.xmax-i.xmin)),-h*(2/(i.ymax-i.ymin))]}calculateRelativeSizeFromAbsolute(){let{_size:e,bounds:t}=this,{xmin:i,ymin:r,xmax:s,ymax:n}=t;return[(0,h.Lz)(2*e)/(s-i),(0,h.Lz)(2*e)/(n-r)]}}class Js extends Zs{constructor(e,t,i){super(e,t,i,0),this.method="circular";let{xmin:r,xmax:s,ymin:n,ymax:a}=this.bounds,o=s-r,l=a-n;this.radius=Math.sqrt(o*o+l*l)/2}getRelativePosition(e,t){let{center:i,radius:r}=this;return[(e-i[0])/r,-(t-i[1])/r]}calculateRelativeSizeFromAbsolute(){let{_size:e}=this;return[(0,h.Lz)(e)/this.radius,0]}}function en(e,t){if(null==e)return null;let i=(0,tt.kU)(t.angle),r=t.gradientSize,s=t.gradientSizeUnits;switch(t.gradientMethod.toLowerCase()){case"linear":return new Qs(e,r,s,i);case"rectangular":return new Ks(e,r,s,i);case"circular":return new Js(e,r,s);default:return Ot.A.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.fill.GradientSizeHelper").errorOnce(`Gradient fill method "${t.gradientMethod}" currently unsupported.`),null}}const tn={createComputedParams:e=>e,optionalAttributes:Ts.optionalAttributes,attributes:{...Ts.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({gradientSizeUnits:e,gradientType:t})=>{let i=0;return e===Hs.h.Absolute&&(i|=Fi(0)),"discrete"===t.toLowerCase()&&(i|=Fi(1)),i}},tlbr:{count:4,type:Xi.pe.UNSIGNED_SHORT,pack:({sprite:e})=>{let{rect:t,width:i,height:r}=e,s=t.x+4+1,n=t.y+4;return[s,n,s+i-2,n+r]}},relativePosition:{count:2,type:Xi.pe.HALF_FLOAT,packTessellation:({gradientStats:e},t,i,r)=>e?.getRelativePosition(i,r)??[0,0]},relativeGradientSize:{count:2,type:Xi.pe.HALF_FLOAT,packTessellation:({gradientStats:e})=>e?.relativeSize??[1,1]},gradientMethod:{count:1,type:Xi.pe.UNSIGNED_BYTE,pack:({gradientMethod:e})=>{switch(e.toLowerCase()){case"rectangular":return 1;case"circular":return 2;default:return 0}}}}};class rn extends ks{constructor(){super(...arguments),this.vertexSpec=tn}get _effectRotation(){let{effectRotation:e,effectRotationType:t,useEffectOrigin:i,viewRotation:r}=this.evaluatedMeshParams;return null==e&&null==r?null:{value:e,type:t,useEffectOrigin:!!i,viewRotation:r}}get _preventEffectClipping(){return!0}createTesselationParams(e){return{gradientStats:en(this._unclippedGeometry,this.evaluatedMeshParams)}}_write(e,{target:t,effect:i}){let r=i?.geometry?.asOptimized()??t.readGeometryForDisplay();this._unclippedGeometry=r;let s=this._clip(r);if(!s)return void(this._unclippedGeometry=null);let n=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,n),this._writeGeometry(e,t,s),this._unclippedGeometry=null,e.recordEnd()}}const sn={optionalAttributes:Es.optionalAttributes,createComputedParams:e=>e,attributes:{...Es.attributes,...Ns.attributes}},nn={optionalAttributes:Es.optionalAttributes,createComputedParams:e=>e,attributes:{...Es.attributes,...Bs.attributes}};class an extends qs{constructor(){super(...arguments),this.vertexSpec=nn}}class on extends Gs{constructor(){super(...arguments),this.vertexSpec=sn}_createOutlineWriter(e,t,i,r){return new an(e,t,i,r)}write(e,t,i,r,s,n,a,o,l={}){let u={target:i,options:r,level:s,viewExtent:n,scaleFactor:a,matcher:o,...l};this.ensurePacked(t,i,r,u);let h=this.evaluatedMeshParams.sprite?.textureBinding;e.withRecord(this.instanceId,this.attributeLayout,h,()=>{this._write(e,u)})}ensurePacked(e,t,i,r){super.ensurePacked(e,t,i,r),this._lineMeshWriter.ensurePacked(e,t,i,r)}enqueueRequest(e,t,i){super.enqueueRequest(e,t,i),this._lineMeshWriter.enqueueRequest(e,t,i)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}const ln={createComputedParams:e=>e,optionalAttributes:{},attributes:{pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1},offset:{type:Xi.pe.BYTE,count:2,packAlternating:{count:4,pack:()=>[[-1,-1],[1,-1],[-1,1],[1,1]]}}}};class un extends Ki{constructor(){super(...arguments),this.vertexSpec=ln}_write(e,{target:t}){e.recordStart(this.instanceId,this.attributeLayout);let i=t.getDisplayId();if("esriGeometryPoint"===t.geometryType){let r=t.readXForDisplay(),s=t.readYForDisplay();this._writeQuad(e,i,r,s)}else"esriGeometryMultipoint"===t.geometryType&&t.readGeometryForDisplay()?.forEachVertex((t,r)=>{t>=0&&t<=512&&r>=0&&r<=512&&this._writeQuad(e,i,t,r)});e.recordEnd()}_writeQuad(e,t,i,r){let s=e.vertexCount();this._writeVertex(e,t,i,r),e.indexWrite(s+0),e.indexWrite(s+1),e.indexWrite(s+2),e.indexWrite(s+1),e.indexWrite(s+3),e.indexWrite(s+2)}}var hn=i(18370),cn=i(16905),dn=i(85560),pn=i(88340),fn=i(87992),mn=i(78957),yn=i(15660);class _n{constructor(e,t,i,r,s,n,a,o,l,u,h,c=[],d=0,p=0,f=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=i,this.hash=r,this.anchorX=s,this.anchorY=n,this.directionX=a,this.directionY=o,this.maxScale=l,this.minScale=u,this.referenceBounds=h,this.bounds=c,this.recordStart=d,this.recordCount=p,this.additionalRecordRanges=f,this.priority=0,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}colliders(e,t){if(!this._colliders||null!=t&&t!==this._collidersScale){if(!e||null==t)throw Error("InternalError: Label collision context and view scale are required to compute colliders");let i=e.attributeView,r=4,s=this.referenceBounds?.size??0,n=Math.round((0,h.Lz)(s)),a=e.labelingCollisionInfos[0].vvEvaluators[0];if(this.referenceSymbolVVOffset=[0,0],null!=a){let e=a(i.getVisualVariableData(this.displayId,0),t);if(!isNaN(e)&&null!=e&&e!==1/0){s=e;let t=(s-n)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let o=this.minScale?e.tilingScheme.scaleToZoom(this.minScale):0,l=this.maxScale?e.tilingScheme.scaleToZoom(this.maxScale):25,u=(0,h.Lz)(this.referenceBounds?.offsetX??0)+this.directionX*(r+s/2),c=-(0,h.Lz)(this.referenceBounds?.offsetY??0)+this.directionY*(r+s/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:this.anchorX,yTile:this.anchorY,dxPixels:e.x-e.halfWidth+u,dyPixels:e.y-e.halfHeight+c,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:o,maxLod:l})),this._collidersScale=t}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){0!==t&&(e===this.recordStart+this.recordCount?this.recordCount+=t:this.additionalRecordRanges.push({recordStart:e,recordCount:t}))}includeCalloutCollisionBounds(e){let t=gn(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this._colliders=null)}includeCalloutPartCollisionBounds(e){let t=gn(e);t&&!this.bounds.some(e=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height)&&(this.bounds.push(t),this._colliders=null)}serialize(e){e.push(this.displayId),e.push(this.labelClassId),e.push(this.labelIdHash),e.push(this.hash),e.push(this.recordStart),e.push(this.recordCount),e.push(this.additionalRecordRanges.length);for(let t of this.additionalRecordRanges)e.push(t.recordStart),e.push(t.recordCount);e.writeF32(this.anchorX),e.writeF32(this.anchorY),e.writeF32(this.directionX),e.writeF32(this.directionY),e.writeF32(this.maxScale),e.writeF32(this.minScale),this.referenceBounds?(e.writeF32(this.referenceBounds.size),e.writeF32(this.referenceBounds.offsetX),e.writeF32(this.referenceBounds.offsetY)):(e.writeF32(0),e.writeF32(0),e.writeF32(0)),Z(e,this.bounds)}static deserialize(e){let t=e.readInt32(),i=e.readInt32(),r=e.readInt32(),s=e.readInt32(),n=e.readInt32(),a=e.readInt32(),o=e.readInt32(),l=[];for(let t=0;t<o;t++)l.push({recordStart:e.readInt32(),recordCount:e.readInt32()});let u=e.readF32(),h=e.readF32(),c=e.readF32(),d=e.readF32(),p=e.readF32(),f=e.readF32(),m=e.readF32(),y=e.readF32(),_=e.readF32(),g=Q(e,yn.A)??[];return new _n(t,i,r,s,u,h,c,d,p,f,{size:m,offsetX:y,offsetY:_},g,n,a,l)}}function gn(e){let t=e.xmax-e.xmin,i=e.ymax-e.ymin;return null==e.xmin||isNaN(e.xmin)||null==e.ymin||isNaN(e.ymin)||null==e.xmax||isNaN(e.xmax)||null==e.ymax||isNaN(e.ymax)||t<=0||i<=0?null:new yn.A(e.xmin+t/2,-(e.ymin+i/2),t,i)}function xn(e,t,i){return e[0]=t[0]-i[0],e[1]=t[1]-i[1],e}function bn(e,t){return Math.sqrt(e*e+t*t)}function wn(e){let t=bn(e[0],e[1]);e[0]/=t,e[1]/=t}function vn(e,t){return bn(e[0]-t[0],e[1]-t[1])}function Sn(e,t,i){let r=t,s=i,n=1/0;for(let a of e)for(let e=0;e<a.length;e++){let o=a[e],l=a[e+1];if(!l){let e=t-o[0],a=i-o[1],l=e*e+a*a;l<n&&(r=o[0],s=o[1],n=l);continue}let u=l[0]-o[0],h=l[1]-o[1],c=u*u+h*h,d=0===c?0:Math.max(0,Math.min(1,((t-o[0])*u+(i-o[1])*h)/c)),p=o[0]+d*u,f=o[1]+d*h,m=t-p,y=i-f,_=m*m+y*y;_<n&&(r=p,s=f,n=_)}return[r,s]}function In(e){return e.length-1}function Mn(e,t,i=1){let[r,s]=function(e,t){return e[t+1]}(e,t);return[r,s]=[Math.round(r),Math.round(s)],Math.sqrt(r*r+s*s)*i}class Cn{constructor(e,t,i,r,s){this._segments=e,this._index=t,this._distance=i,this._xStart=r,this._yStart=s,this._done=!1}static create(e){return new Cn(e,0,0,e[0][0],e[0][1])}clone(){return new Cn(this._segments,this._index,this._distance,this.xStart,this.yStart)}equals(e){return this._index===e._index||e._index===this._index-1&&(0===this._distance||1===e._distance)||e._index===this._index+1&&(1===this._distance||0===e._distance)}leq(e){return this._index<e._index||this._index===e._index&&this._distance<=e._distance}geq(e){return this._index>e._index||this._index===e._index&&this._distance>=e._distance}get _segment(){return this._segments[this._index+1]}get angle(){let e=this.dy,t=(0*e+-1*-this.dx)/(1*this.length),i=Math.acos(t);return e>0&&(i=2*Math.PI-i),i}get xStart(){return this._xStart}get yStart(){return this._yStart}get x(){return this.xStart+this.distance*this.dx}get y(){return this.yStart+this.distance*this.dy}get dx(){return this._segment[0]}get dy(){return this._segment[1]}get xMidpoint(){return this.xStart+.5*this.dx}get yMidpoint(){return this.yStart+.5*this.dy}get xEnd(){return this.xStart+this.dx}get yEnd(){return this.yStart+this.dy}get length(){let{dx:e,dy:t}=this;return Math.sqrt(e*e+t*t)}get remainingLength(){return this.length*(1-this._distance)}get backwardLength(){return this.length*this._distance}get distance(){return this._distance}get done(){return this._done}hasPrev(){return this._index-1>=0}hasNext(){return this._index+1<In(this._segments)}next(){return this.hasNext()?(this._xStart+=this.dx,this._yStart+=this.dy,this._distance=0,this._index+=1,this):null}prev(){return this.hasPrev()?(--this._index,this._xStart-=this.dx,this._yStart-=this.dy,this._distance=1,this):(this._done=!0,null)}_seekBackwards(e,t){let i=this.backwardLength;if(e<=i)return this._distance=(i-e)/this.length,this;let r=this.backwardLength;for(;this.prev();){if(r+this.length>e)return this._seekBackwards(e-r);r+=this.length}return this._distance=0,t?this:null}seek(e,t=!1){if(e<0)return this._seekBackwards(Math.abs(e),t);if(e<=this.remainingLength)return this._distance=(this.backwardLength+e)/this.length,this;let i=this.remainingLength;for(;this.next();){if(i+this.length>e)return this.seek(e-i,t);i+=this.length}return this._distance=1,t?this:null}}function kn(e,t,i,r=!0){let s=function(e){let t=0;for(let i=0;i<In(e);i++)t+=Mn(e,i);return t}(e);if(0===s)return;let n=Cn.create(e),a=s/2;if(!r)return n.seek(a),void i(n.clone(),0,a+0*t,s);let o=Math.max((s-t)/2,0),l=Math.floor(o/t),u=a-l*t;n.seek(u);for(let e=-l;e<=l;e++)i(n.clone(),e,a+e*t,s),n.seek(t)}function An(e,t){let i=t;for(let t=0;t<e.length;t++){let r=e[t];Pn(r,i);let s=[];s.push(r[0]);for(let e=1;e<r.length;e++){let[t,i]=r[e-1],[n,a]=r[e],o=n-t,l=a-i;s.push([o,l])}e[t]=s,r=s}return e}function Pn(e,t){let i=1e-6;if(t<=0)return;let r=e.length;if(r<3)return;let s=[],n=0;s.push(0);for(let t=1;t<r;t++)n+=vn(e[t],e[t-1]),s.push(n);t=Math.min(t,.2*n);let a=[];a.push(e[0][0]),a.push(e[0][1]);let o=e[r-1][0],l=e[r-1][1],u=xn([0,0],e[0],e[1]);wn(u),e[0][0]+=t*u[0],e[0][1]+=t*u[1],xn(u,e[r-1],e[r-2]),wn(u),e[r-1][0]+=t*u[0],e[r-1][1]+=t*u[1];for(let e=1;e<r;e++)s[e]+=t;s[r-1]+=t;let h=.5*t;for(let n=1;n<r-1;n++){let o=0,l=0,u=0;for(let r=n-1;r>=0&&!(s[r+1]<s[n]-h);r--){let a=h+s[r+1]-s[n],c=s[r+1]-s[r],d=s[n]-s[r]<h?1:a/c;if(Math.abs(d)<i)break;let p=d*d,f=d*a-.5*p*c,m=d*c/t,y=e[r+1],_=e[r][0]-y[0],g=e[r][1]-y[1];o+=m/f*(y[0]*d*a+.5*p*(a*_-c*y[0])-p*d*c*_/3),l+=m/f*(y[1]*d*a+.5*p*(a*g-c*y[1])-p*d*c*g/3),u+=m}for(let a=n+1;a<r&&!(s[a-1]>s[n]+h);a++){let r=h-s[a-1]+s[n],c=s[a]-s[a-1],d=s[a]-s[n]<h?1:r/c;if(Math.abs(d)<i)break;let p=d*d,f=d*r-.5*p*c,m=d*c/t,y=e[a-1],_=e[a][0]-y[0],g=e[a][1]-y[1];o+=m/f*(y[0]*d*r+.5*p*(r*_-c*y[0])-p*d*c*_/3),l+=m/f*(y[1]*d*r+.5*p*(r*g-c*y[1])-p*d*c*g/3),u+=m}a.push(o/u),a.push(l/u)}a.push(o),a.push(l);for(let t=0,i=0;t<r;t++)e[t][0]=a[i++],e[t][1]=a[i++]}var Tn=i(63933);const Fn=256/360;class En{constructor(e){let{offsetX:t,offsetY:i,postAngle:r,fontSize:s,haloSize:n,outlineSize:a,scaleFactor:o,transforms:l}=e;if(this.offsetX=t,this.offsetY=i,this.postAngle=r,this.fontSize=Math.min(s,500),this.haloSize=n??0,this.outlineSize=a??0,this.transforms=l,l&&l.infos.length>1){let e=(0,ut.zb)(s,r,!1,t,i,l,!1);this.fontSize=Math.min(e.size,500);let n=e.size/s;this.haloSize*=n,this.outlineSize*=n,this.postAngle=e.rotation,this.offsetX=e.offsetX,this.offsetY=e.offsetY}o&&(this.fontSize*=o,this.offsetX*=o,this.offsetY*=o)}}const Rn=[4,4],On=[16,4],Ln={topLeft:On,topRight:On,bottomLeft:On,bottomRight:On};function zn(e){return null==e?5e3:(0,tt.qE)((0,h.Lz)(e),32,5e3)}function Dn(e,t){return e/24*29*(0,tt.qE)(t,.25,4)}const Nn=[4,2],Bn=[4,6],qn={topLeft:Nn,topRight:Nn,bottomLeft:Bn,bottomRight:Bn},Gn={topLeft:Nn,topRight:Bn,bottomLeft:Nn,bottomRight:Bn},Un={topLeft:Bn,topRight:Bn,bottomLeft:Rn,bottomRight:Rn},Wn={topLeft:Rn,topRight:Rn,bottomLeft:Bn,bottomRight:Bn},Vn={topLeft:Bn,topRight:Rn,bottomLeft:Bn,bottomRight:Rn},jn={topLeft:Rn,topRight:Bn,bottomLeft:Rn,bottomRight:Bn};function Yn(e){return e.useBackgroundCallout?{backgroundColor:null,borderLineColor:null,borderLineSize:0}:{backgroundColor:e.boxBackgroundColor??e.backgroundColor??null,borderLineColor:e.boxBorderLineColor??e.borderLineColor??null,borderLineSize:e.boxBorderLineSize>0?e.boxBorderLineSize:e.borderLineWidth??0}}const $n={createComputedParams:e=>e,optionalAttributes:{zoomRange:{type:Xi.pe.UNSIGNED_SHORT,count:2,packPrecisionFactor:10,packTessellation:({minZoom:e,maxZoom:t})=>[e||0,t||28]},clipAngle:{type:Xi.pe.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:e})=>Xn(e||0)},referenceSymbol:{type:Xi.pe.BYTE,count:4,packTessellation:(e,t)=>{let i=e.isLineLabel||!e.referenceBounds,r=(0,Tn.iT)(i?"center":t.horizontalAlignment),s=(0,Tn.Dy)(i?"middle":t.verticalAlignment),{offsetX:n,offsetY:a,size:o}=i?{offsetX:0,offsetY:0,size:0}:e.referenceBounds;return[(0,h.Lz)(n),-(0,h.Lz)(a),Math.round((0,h.Lz)(o)),r+1<<2|s+1]}}},attributes:{pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:e,mapAligned:t})=>Ei([[0,e],[3,!!t]])},offset:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:e})=>{let{bottomLeft:t,bottomRight:i,topLeft:r,topRight:s}=e;return[r,s,t,i]}}},textureUV:{type:Xi.pe.UNSIGNED_SHORT,count:2,packAlternating:{count:4,packTessellation:({texcoords:e})=>{let{bottomLeft:t,bottomRight:i,topLeft:r,topRight:s}=e;return[r,s,t,i]}}},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:e})=>e},fontAndReferenceSize:{type:Xi.pe.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,packTessellation:({fontSize:e,sdfSize:t,sdfRadius:i},{referenceSize:r})=>[Math.round((0,h.Lz)(e)),Math.round((0,h.Lz)(r||e)),t,i]},outlineColor:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>Ri(e)},haloColor:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:e})=>Ri(e)},outlineAndHaloSize:{type:Xi.pe.UNSIGNED_SHORT,count:2,packPrecisionFactor:4,packTessellation:({outlineSize:e,haloSize:t})=>[Math.round((0,h.Lz)(e)),Math.round((0,h.Lz)(t))]}}};class Hn extends Ki{constructor(){super(...arguments),this.calloutRecordsUseLabelPhase=!1,this.vertexSpec=$n,this._textMeshParamsPropsInitialized=!1,this._calloutEffectGeometry=null}getCalloutEffectGeometry({target:e}){if("esriGeometryPoint"!==e.geometryType&&"esriGeometryMultipoint"!==e.geometryType)return this._calloutEffectGeometry;let t=e.readGeometryForDisplay();return t&&e.geometryType?ae.z.fromOptimizedCIM(t.clone(),e.geometryType):null}getCalloutRotation(){return this._textMeshParamsPropsInitialized?this._textMeshTransformProps.postAngle:null}ensurePacked(e,t,i){this._calloutEffectGeometry=null,super.ensurePacked(e,t,i),(!this._textMeshParamsPropsInitialized||this._evaluator.hasDynamicProperties)&&(this._textMeshTransformProps=new En(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}getLocalCalloutReferenceInfo(){return this._createLocalCalloutReferenceInfo(this._getShaping(),void 0,!0,!0)}_createLocalCalloutReferenceInfo(e,t,i=!1,r=!1){if(!e)return;let s=e.boundsT,n=r?e.bounds:s,[a,o]=t?this._getReferenceSymbolOffset(t):[0,0],l=r?(0,h.Lz)(this._textMeshTransformProps.offsetX):0,u=r?(0,h.Lz)(this._textMeshTransformProps.offsetY):0,c={xmin:s.xmin,ymin:-s.ymax,xmax:s.xmax,ymax:-s.ymin};return{anchor:{x:0,y:0},bodyBounds:{xmin:n.xmin+a+l,ymin:-n.ymax-o+u,xmax:n.xmax+a+l,ymax:-n.ymin-o+u},collisionBodyBounds:c,...i?{bodyBoundsUseReferenceScale:!0}:null}}_getReferenceSymbolOffset(e){let t=(0,h.Lz)(e.size)/2+4;return[(0,h.Lz)(e.offsetX)+(0,Tn.iT)(this.evaluatedMeshParams.horizontalAlignment)*t,-(0,h.Lz)(e.offsetY)+(0,Tn.Dy)(this.evaluatedMeshParams.verticalAlignment)*t]}_write(e,{target:t,effect:i}){this._calloutEffectGeometry=null;let r=i?.geometry,s=this._getShaping();if(!s)return;let n=1===this.evaluatedMeshParams.alignment,a=t.getDisplayId(),{placement:o}=this.evaluatedMeshParams;if(null!=o){if("PrivatePlacementMultipoint"!==o.type)this._writePlacedTextMarkers(e,t,s,(0,ut.oI)(r));else{let i=this._getMultipointShaping();i&&this._writeMultipointText(e,t,i,(0,ut.oI)(r))}return}if(r?.nextPath())return r.nextPoint(),this._setCalloutEffectGeometry(r.x,r.y),this._writeGlyphs(e,a,r.x,r.y,s,0,void 0,{mapAligned:n});if("esriGeometryPolygon"===t.geometryType){let i=t.readCentroidForDisplay();if(!i)return;let[r,o]=i.coords;return this._setCalloutEffectGeometry(r,o),this._writeGlyphs(e,a,r,o,s,0,void 0,{mapAligned:n})}if("esriGeometryMultipoint"===t.geometryType)return void t.readGeometryForDisplay()?.forEachVertex((t,i)=>{this._setCalloutEffectGeometry(t,i),this._writeGlyphs(e,a,t,i,s,0,void 0,{mapAligned:n})});let l=t.readXForDisplay(),u=t.readYForDisplay();return this._setCalloutEffectGeometry(l,u),this._writeGlyphs(e,a,l,u,s,0,void 0,{mapAligned:n})}_writePlacedTextMarkers(e,t,i,r){let s=r??ae.z.fromFeatureSetReaderCIM(t);if(!s)return;let n=Ai.getPlacement(s,-1,this.evaluatedMeshParams.placement,h.L7,e.id);if(!n)return;let a=t.getDisplayId(),o=n.next();for(;null!=o;){let t=-o.getAngle(),r=o.tx,s=-o.ty;this._setCalloutEffectGeometry(r,s),this._writeGlyphs(e,a,r,s,i,t,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),o=n.next()}}_writeMultipointText(e,t,i,r){let s=r??ae.z.fromFeatureSetReaderCIM(t);if(!s)return;let n=Ai.getPlacement(s,-1,this.evaluatedMeshParams.placement,h.L7,e.id);if(!n)return;let a=t.getDisplayId(),o=n.next(),l=0;for(;null!=o;){let t=o.tx,r=-o.ty,s=-o.getAngle();if(this._setCalloutEffectGeometry(t,r),l>=i.glyphs.length)break;this._writeGlyph(e,a,t,r,i,l,s,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),o=n.next(),l++}}_setCalloutEffectGeometry(e,t){this._calloutEffectGeometry??=ae.z.fromJSON({x:e,y:t})}_getShaping(e){let t=this._textMeshTransformProps,i=this.evaluatedMeshParams;if(!this._hasGlyphs(i.glyphs))return null;let r=(0,h.Lz)(t.fontSize),s=(0,h.Lz)(t.offsetX),n=(0,h.Lz)(t.offsetY),{sdfSize:a}=this._getDefaultGlyphMetrics(i.glyphs),o=zn(i.lineWidth),l=Dn(a,i.lineHeightRatio),{backgroundColor:u,borderLineSize:c}=Yn(i);return(0,ai.tA)(i.glyphs,{scale:r/a,angle:t.postAngle,xOffset:s,yOffset:n,horizontalAlignment:i.horizontalAlignment,verticalAlignment:e||i.verticalAlignment,maxLineWidth:o,lineHeight:l,lineHeightRatio:(0,tt.qE)(i.lineHeightRatio,.25,4),decoration:i.decoration,borderLineSizePx:(0,h.Lz)(c),hasBackground:!!u,useCIMAngleBehavior:i.useCIMAngleBehavior})}_getMultipointShaping(){let e=this._textMeshTransformProps,t=this.evaluatedMeshParams;if(!this._hasGlyphs(t.glyphs))return null;let i=(0,h.Lz)(e.fontSize),r=(0,h.Lz)(e.offsetX),s=(0,h.Lz)(e.offsetY),{sdfSize:n}=this._getDefaultGlyphMetrics(t.glyphs),a=zn(t.lineWidth),o=Dn(n,t.lineHeightRatio),{backgroundColor:l,borderLineSize:u}=Yn(t);return(0,ai.HB)(t.glyphs,{scale:i/n,angle:e.postAngle,xOffset:r,yOffset:s,horizontalAlignment:t.horizontalAlignment,verticalAlignment:t.verticalAlignment,maxLineWidth:a,lineHeight:o,lineHeightRatio:(0,tt.qE)(t.lineHeightRatio,.25,4),decoration:t.decoration,borderLineSizePx:(0,h.Lz)(u),hasBackground:!!l,useCIMAngleBehavior:t.useCIMAngleBehavior})}_hasGlyphs(e){return!!e&&("glyphs"===e.type?e.glyphs.length>0:e.runs.some(e=>e.glyphs.glyphs.length>0))}_getDefaultGlyphMetrics(e){if("glyphs"===e.type)return{sdfSize:e.sdfSize,sdfRadius:e.sdfRadius,sdfPadding:e.sdfPadding};let[t]=e.runs;return{sdfSize:t?.glyphs.sdfSize??24,sdfRadius:t?.glyphs.sdfRadius??8,sdfPadding:t?.glyphs.sdfPadding??3}}_writeGlyphs(e,t,i,r,s,n,a,o,l=!0){let u=this.evaluatedMeshParams,c=this._textMeshTransformProps,d=(0,h.Lz)(c.fontSize),p=c.haloSize,f=c.outlineSize,m=(0,h.Lz)(c.offsetX),y=(0,h.Lz)(c.offsetY),_=this._getDefaultGlyphMetrics(u.glyphs),g=Ri(u.color),[x,b]=Ti(u.scaleInfo,this.getTileInfo());0!==n&&s.setRotation(n);let w=s.bounds,v=i+w.x+m,S=r+w.y-y,I=2*(u.minPixelBuffer?u.minPixelBuffer/d:1),M=Math.max(w.width,w.height)*I;s.textBox&&(e.recordStart(this.instanceId,this.attributeLayout,s.glyphs[0].textureBinding),l&&e.recordBounds(v,S,M,M),this._writeTextBox(e,t,i,r,s.textBox,a,o),e.recordEnd());for(let n of s.glyphs){e.recordStart(this.instanceId,this.attributeLayout,n.textureBinding),l&&e.recordBounds(v,S,M,M);let{texcoords:s,offsets:u}=n,h=n.fontSize??d;this._writeQuad(e,t,i,r,{texcoords:s,offsets:u,fontSize:h,haloSize:p,outlineSize:f,sdfSize:_.sdfSize,sdfRadius:_.sdfRadius,color:n.color?Ri(n.color):g,isBackground:!1,referenceBounds:a,minZoom:x,maxZoom:b,...o}),e.recordEnd()}0!==n&&s.setRotation(-n)}_writeGlyph(e,t,i,r,s,n,a,o,l,u=!0){let c=this.evaluatedMeshParams,d=this._textMeshTransformProps,p=(0,h.Lz)(d.fontSize),f=d.haloSize,m=d.outlineSize,y=(0,h.Lz)(d.offsetX),_=(0,h.Lz)(d.offsetY),g=this._getDefaultGlyphMetrics(c.glyphs),x=Ri(c.color);0!==a&&s.setRotation(a);let b=s.bounds,w=i+b.x+y,v=r+b.y-_,S=2*(c.minPixelBuffer?c.minPixelBuffer/p:1),I=Math.max(b.width,b.height)*S,M=s.glyphs[n];e.recordStart(this.instanceId,this.attributeLayout,M.textureBinding),u&&e.recordBounds(w,v,I,I);let{texcoords:C,offsets:k}=M,A=M.fontSize??p;this._writeQuad(e,t,i,r,{texcoords:C,offsets:k,fontSize:A,haloSize:f,outlineSize:m,sdfSize:g.sdfSize,sdfRadius:g.sdfRadius,color:M.color?Ri(M.color):x,isBackground:!1,referenceBounds:o,minZoom:0,maxZoom:30,...l}),e.recordEnd(),0!==a&&s.setRotation(-a)}_writeTextBox(e,t,i,r,s,n,a){let o=this.evaluatedMeshParams,{fontSize:l,haloSize:u,outlineSize:h}=this._textMeshTransformProps,{backgroundColor:c,borderLineColor:d,borderLineSize:p}=Yn(o),{sdfSize:f,sdfRadius:m}=this._getDefaultGlyphMetrics(o.glyphs),y=!!d&&p>0,_={isBackground:!0,fontSize:l,haloSize:u,outlineSize:h,referenceBounds:n,sdfSize:f,sdfRadius:m,...a};c&&(this._writeQuad(e,t,i,r,{texcoords:Ln,offsets:s.main,color:Ri(c),..._}),y||(this._writeQuad(e,t,i,r,{texcoords:Un,offsets:s.top,color:Ri(c),..._}),this._writeQuad(e,t,i,r,{texcoords:Wn,offsets:s.bot,color:Ri(c),..._}),this._writeQuad(e,t,i,r,{texcoords:Vn,offsets:s.left,color:Ri(c),..._}),this._writeQuad(e,t,i,r,{texcoords:jn,offsets:s.right,color:Ri(c),..._}))),y&&(this._writeQuad(e,t,i,r,{texcoords:qn,offsets:s.top,color:Ri(d),..._}),this._writeQuad(e,t,i,r,{texcoords:qn,offsets:s.bot,color:Ri(d),..._}),this._writeQuad(e,t,i,r,{texcoords:Gn,offsets:s.left,color:Ri(d),..._}),this._writeQuad(e,t,i,r,{texcoords:Gn,offsets:s.right,color:Ri(d),..._}))}_writeQuad(e,t,i,r,s){let n=e.vertexCount();this._writeVertex(e,t,i,r,s),e.indexWrite(n+0),e.indexWrite(n+1),e.indexWrite(n+2),e.indexWrite(n+1),e.indexWrite(n+3),e.indexWrite(n+2)}}const Xn=e=>Math.round(e*Fn),Zn=(0,hn.z)(()=>Promise.all([i.e(9187),i.e(8885),i.e(9117),i.e(3708)]).then(()=>i(33708))),Qn=(0,hn.z)(()=>Promise.all([i.e(9187),i.e(8885),i.e(2309)]).then(()=>i(14690))),Kn=(0,z.Bj)(e=>{let t=0;if(0===e)return 1/0;for(;!(e%2);)t++,e/=2;return t});class Jn extends Hn{constructor(){super(...arguments),this.calloutRecordsUseLabelPhase=!0,this._zoomLevel=0,this._calloutVisuals=[],this._calloutVisualIndex=0}async loadDependencies(){await Promise.all([super.loadDependencies(),Zn.getImportPromise(),Qn.getImportPromise()])}getCalloutEffectGeometry(e){let t=this._calloutVisuals[this._calloutVisualIndex]?.metric;return t?ae.z.fromJSON({x:t.anchorX,y:t.anchorY}):null}getLocalCalloutReferenceInfo(){let e=this._calloutVisuals[this._calloutVisualIndex],t=e?.referenceInfo;if(!t||!e)return t;let{metric:i,featureAnchor:r}=e,s=t.anchor??{x:0,y:0},n=r[0]-i.anchorX,a=i.anchorY-r[1],o={x:n+s.x,y:a+s.y},l=function(e,t,i,r){if(0===i&&0===r)return null;let s=Math.max(e.xmax-e.xmin,e.ymax-e.ymin)+1;return{x:t.x-i*s,y:t.y+r*s}}(t.bodyBounds,o,i.directionX,i.directionY);return{...t,anchor:o,...l?{layoutAnchor:l}:null}}getCalloutVisualCount(){return this._calloutVisuals.length}setCalloutVisualIndex(e){if(e<0||e>=this._calloutVisuals.length)throw Error("InternalError: callout visual index is out of bounds");this._calloutVisualIndex=e}includeCalloutRecordRange(e,t){this._calloutVisuals[this._calloutVisualIndex]?.metric.includeRecordRange(e,t)}includeCalloutCollisionBounds(e){this._calloutVisuals[this._calloutVisualIndex]?.metric.includeCalloutCollisionBounds(e)}includeCalloutPartCollisionBounds(e){this._calloutVisuals[this._calloutVisualIndex]?.metric.includeCalloutPartCollisionBounds(e)}_write(e,{target:t,effect:i,level:r,viewExtent:s}){if(this._zoomLevel=r,this._calloutVisuals=[],this._calloutVisualIndex=0,null!=i?.geometry)throw Error("InternalError: EffectGeometry not support for LabelMeshWriter");switch(t.geometryType){case"esriGeometryPoint":{let i=t.readXForDisplay(),r=t.readYForDisplay();this._writePoint(e,i,r,0,t);break}case"esriGeometryEnvelope":case"esriGeometryPolygon":this._writePolygon(e,t,s);break;case"esriGeometryMultipoint":{let i=0,r=ae.z.fromFeatureSetReader(t);if(r?.nextPath())for(;r.nextPoint();)this._writePoint(e,r.x,r.y,i++,t);break}case"esriGeometryPolyline":this._writeLines(e,t)}}_getMetricDir(){let{horizontalAlignment:e,verticalAlignment:t}=this.evaluatedMeshParams;return["center"===e?0:"right"===e?-1:1,"middle"===t?0:"bottom"===t?-1:1]}_createLineLabelMetric(e,t,i,r,s,n){let[a,o]=this._getMetricDir(),l=this.evaluatedMeshParams.scaleInfo?.maxScale??0,u=this.evaluatedMeshParams.scaleInfo?.minScale??0,h=this.evaluatedMeshParams.labelClassId;return new _n(e,h,t,i,r,s,a,o,l,u,n)}_writePolygon(e,t,i){let r=t.readGeometryForDisplay()?.justXY();e.requiresRefresh||=(r?.area()||0)>=16384;let s=this._getPolygonLabelPoint(t,i);s&&this._writePoint(e,s[0],s[1],0,t)}_getPolygonLabelPoint(e,t){if(!t){let t=e.readCentroidForDisplay()?.coords;return t?[t[0],t[1]]:null}let i=Zn.module,r=Qn.module.constructFromFlatGeometry,s=e.readGeometryForDisplay()?.justXY(),n=e.readCentroidForDisplay()?.coords,a=s?.area()||0;if(!n)return;let o=a>=16384,l=r((0,fn.ME)(t)),u=r((0,fn.ME)({x:n[0],y:n[1]})),h=!!i.execute(u,l,null);if(!s||!o||!h)return[n[0],n[1]];let c=r((0,fn.Nh)("polygon",s,null)),d=i.execute(c,l,null);if(!d)return[n[0],n[1]];let p=(0,fn.JR)(new fn.uX(d.toFlatGeometry())),f=ae.z.fromOptimized(p,"esriGeometryPolygon",1),m=(0,mn.d)(f)??n;return[m[0],m[1]]}_writePoint(e,t,i,r,s){if(t<0||t>512||i<0||i>512)return;let n=this._getShaping();if(!n)return;let a=s.getDisplayId(),o=this.evaluatedMeshParams.labelClassId,l=function(e,t,i){return(0,Ii.Wm)(`${e}${t}${i}`)}(this.evaluatedMeshParams.layerId,s.getObjectId(),r),u=function(e,t,i){return(0,Ii.Wm)(`${e}${t}${i}`)}(s.getObjectId(),o,r),[h,c]=this._getMetricDir(),d=this.evaluatedMeshParams.scaleInfo?.maxScale??0,p=this.evaluatedMeshParams.scaleInfo?.minScale??0,f=this._getPointLabelReferenceBounds(),m=new _n(a,o,l,u,t,i,h,c,d,p,f);this._calloutVisuals.push({metric:m,featureAnchor:[t,i],referenceInfo:this._createLocalCalloutReferenceInfo(n,f)}),e.metricStart(m),this._writeGlyphs(e,a,t,i,n,0,f,void 0,!1),e.metricBoxWrite(n.boundsT),e.metricEnd()}_getPointReferenceBounds(){return this._references?.get("label-reference-symbol")?.getBoundsInfo()??null}_getPointLabelReferenceBounds(){let e=this._getPointReferenceBounds()??{offsetX:0,offsetY:0,size:0},t=this.evaluatedMeshParams.labelOffsetDistance??0,[i,r]=this._getMetricDir();return{...e,offsetX:e.offsetX+i*t,offsetY:e.offsetY-r*t}}_writeLines(e,t){let{scaleInfo:i,verticalAlignment:r}=this.evaluatedMeshParams,s=this.evaluatedMeshParams.repeatLabelDistance||128,n=this._getShaping("middle");if(!n)return;let a=(e,t,i,r)=>this._placeSubdivGlyphs(e,t,i,r),o=(n.bounds.width+s)/2;this._current={out:e,id:t.getDisplayId(),objId:t.getObjectId(),shaping:n,zoomRange:Ti(i,this.getTileInfo()),referenceBounds:this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0},calloutPaths:t.readLegacyGeometryForDisplay().paths.map(e=>e.map(([e,t])=>[e,t])),offsetDirection:null,pathIndex:0},this._verticalPlacement="bottom"===r?"above":"top"===r?"below":null,this._verticalPlacement?this._writeAboveAndBelowAlong(t,a,o):this._writeCenterAlong(t,a,o)}_writeAboveAndBelowAlong(e,t,i){let{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,n=s.bounds.halfHeight,a=e.readGeometryForDisplay()?.justXY();if(!a)return;let o=(0,rt.kz)(a,"esriGeometryPolyline",1)??new st.A,l=ea(o,n),u=ea(o,-n),h=(0,rt.zv)(u,"esriGeometryPolyline",!1,!1),c=An((0,rt.zv)(l,"esriGeometryPolyline",!1,!1).paths,s.bounds.width),d=An(h.paths,s.bounds.width);this._current.offsetDirection="above";for(let e=0;e<c.length;e++)this._current.pathIndex=e,kn(c[e],i,t,!!r);this._current.offsetDirection="below";for(let e=0;e<d.length;e++)this._current.pathIndex=e,kn(d[e],i,t,!!r)}_writeCenterAlong(e,t,i){let{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,n=An(e.readLegacyGeometryForDisplay().paths,s.bounds.width);for(let e=0;e<n.length;e++)this._current.pathIndex=e,kn(n[e],i,t,!!r)}_placeSubdivGlyphs(e,t,i,r){if(e.x<0||e.x>512||e.y<0||e.y>512)return;let{allowOverrun:s,labelPosition:n,repeatLabelDistance:a,layerId:o,labelClassId:l}=this.evaluatedMeshParams,{objId:u,shaping:h,pathIndex:c}=this._current,d=this._current.zoomRange[0],p=Kn(t),f=this._current.shaping.bounds.width/2,m=Math.sqrt(a||128)/2,y=Math.min(i,r-i),_=h.isMultiline?28:Math.log2(y/(m+f/2)),g=0===t?_:Math.min(p,_),x=Math.max(d,this._zoomLevel+1-g),b=this._zoomLevel-x,w=h.bounds.width/2*2**b,v=function(e,t,i,r,s){let n=r*2**(28-s);return(0,Ii.Wm)(`${e}${t}${i}${n}`)}(o,u,c,t,this._zoomLevel),S=function(e,t,i,r,s){let n=i*2**(28-r);return(0,Ii.Wm)(`${e}${s}${t}${n}`)}(u,c,t,this._zoomLevel,l);s&&b<0?this._placeStraightAlong(e,d,v,S):"parallel"===n||h.isMultiline?this._placeStraightAlong(e,x,v,S):"curved"===n&&this._placeCurved(e,x,w,v,S)}_placeCurved(e,t,i,r,s){let{out:n,id:a}=this._current,o=this._createLineLabelMetric(a,r,s,e.x,e.y);this._registerLineCalloutMetric(o),n.metricStart(o);let l=e.clone(),u=e.angle*(180/Math.PI)%360,h=(e.angle*(180/Math.PI)+180)%360;(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection)&&(this._placeFirst(l,t,1,u),this._placeBack(e,l,t,i,1,u),this._placeForward(e,l,t,i,1,u)),(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection)&&(this._placeFirst(l,t,0,h),this._placeBack(e,l,t,i,0,h),this._placeForward(e,l,t,i,0,h)),n.metricEnd()}_placeStraightAlong(e,t,i,r){let{out:s,id:n,shaping:a,zoomRange:o,referenceBounds:l}=this._current,{boxBorderLineColor:u,boxBackgroundColor:c}=this.evaluatedMeshParams,d=e.clone(),p=e.angle*(180/Math.PI)%360,f=(e.angle*(180/Math.PI)+180)%360,m=a.glyphs.length>0&&!(!u&&!c),y=this._createLineLabelMetric(n,i,r,e.x,e.y);if(this._registerLineCalloutMetric(y),s.metricStart(y),m){let i=Math.max(t,o[0],0),r=Math.min(28,o[1]),u=(0,cn.$0)((0,dn.vt)(),-e.angle),c={minZoom:i,maxZoom:r,clipAngle:p,mapAligned:!0,isLineLabel:!0},d=(0,h.Lz)(this.evaluatedMeshParams.offsetX),m=(0,h.Lz)(this.evaluatedMeshParams.offsetY);if(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection){let t=(0,pn.fA)(d,-1*m),[i,r]=a.shapeBackground((0,cn.Tl)((0,dn.vt)(),u,t));s.recordStart(this.instanceId,this.attributeLayout,a.glyphs[0].textureBinding),this._writeTextBox(s,n,e.x,e.y,r,l,c),s.recordEnd()}if(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection){let t=(0,pn.fA)(d,m),[i,r]=a.shapeBackground((0,cn.Tl)((0,dn.vt)(),u,t));c.clipAngle=f,s.recordStart(this.instanceId,this.attributeLayout,a.glyphs[0].textureBinding),this._writeTextBox(s,n,e.x,e.y,r,l,c),s.recordEnd()}}(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection)&&this._placeFirst(d,t,1,p,!0),(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection)&&this._placeFirst(d,t,0,f,!0),s.metricEnd()}_registerLineCalloutMetric(e){this._calloutVisuals.push({metric:e,featureAnchor:Sn(this._current.calloutPaths,e.anchorX,e.anchorY),referenceInfo:this._createLocalCalloutReferenceInfo(this._current.shaping)})}_placeBack(e,t,i,r,s,n){let a=e.clone(),o=e.backwardLength+0;for(;a.prev()&&!(o>=r);)this._placeOnSegment(a,t,o,i,-1,s,n),o+=a.length+0}_placeForward(e,t,i,r,s,n){let a=e.clone(),o=e.remainingLength+0;for(;a.next()&&!(o>=r);)this._placeOnSegment(a,t,o,i,1,s,n),o+=a.length+0}_placeFirst(e,t,i,r,s=!1){let{out:n,id:a,shaping:o,zoomRange:l,referenceBounds:u}=this._current,h=o.glyphs,c=this._getBoundsOffset(e.angle);for(let d of h){let h=d.x>o.bounds.x?i:1-i,p=h*e.remainingLength+(1-h)*e.backwardLength,f=Math.abs(d.x+d.width/2-o.bounds.x),m=Math.max(0,this._zoomLevel+Math.log2(f/(p+0))),y=Math.max(t,s?0:m);d.angle=e.angle+(1-i)*Math.PI;let _=[Math.max(l[0],y),Math.min(l[1],28)];this._writeLineGlyph(n,a,e.x,e.y,d,_,r,u),this._writeLineGlyphBox(n,d,i,_,c)}}_placeOnSegment(e,t,i,r,s,n,a){let{out:o,id:l,shaping:u,referenceBounds:h}=this._current,c=u.glyphs,d=e.dx/e.length,p=e.dy/e.length,f={x:e.x+i*-s*d,y:e.y+i*-s*p},m=this._getBoundsOffset(e.angle);for(let t of c){let c=t.x>u.bounds.x?n:1-n;if(!(c&&1===s||!c&&-1===s))continue;let d=Math.abs(t.x+t.width/2-u.bounds.x),p=Math.max(0,this._zoomLevel+Math.log2(d/i)-.1),y=Math.max(r,this._zoomLevel+Math.log2(d/(i+e.length+0)));if(0===p)continue;t.angle=e.angle+(1-n)*Math.PI;let _=[y,p];this._writeLineGlyph(o,l,f.x,f.y,t,_,a,h),this._writeLineGlyphBox(o,t,n,_,m)}}_getBoundsOffset(e){let t=(0,h.Lz)(this.evaluatedMeshParams.offsetX),i=(0,h.Lz)(this.evaluatedMeshParams.offsetY),r=(0,pn.fA)(t,i),s=(0,cn.$0)((0,dn.vt)(),-e);return(0,B.l0)(r,r,s)}_writeLineGlyph(e,t,i,r,s,n,a,o){e.recordStart(this.instanceId,this.attributeLayout,s.textureBinding);let{texcoords:l,offsets:u}=s,{fontSize:h,haloSize:c,outlineSize:d}=this._textMeshTransformProps,p=this._getDefaultGlyphMetrics(this.evaluatedMeshParams.glyphs),f=s.fontSize??h;this._writeQuad(e,t,i,r,{sdfSize:p.sdfSize,sdfRadius:p.sdfRadius,texcoords:l,offsets:u,fontSize:f,haloSize:c,outlineSize:d,color:s.color?Ri(s.color):Ri(this.evaluatedMeshParams.color),isBackground:!1,referenceBounds:o,minZoom:Math.max(this._current.zoomRange[0],n[0]),maxZoom:Math.min(this._current.zoomRange[1],n[1]),clipAngle:a,mapAligned:!0,isLineLabel:!0}),e.recordEnd()}_writeLineGlyphBox(e,t,i,r,s){if((i||this._current.offsetDirection)&&this._isVisible(r)&&t.bounds){let i=t.bounds,r=new yn.A(i.x+s[0],i.y+s[1],i.width,i.height);e.metricBoxWrite(r)}}_isVisible(e){let t=Math.max(this._current.zoomRange[0],e[0]),i=Math.min(this._current.zoomRange[1],e[1]),r=this._zoomLevel;return t<=r&&r<=i}}function ea(e,t){let i=new st.A,{coords:r,lengths:s}=e,n=(0,at.vt)(),a=(0,at.vt)(),o=(0,at.vt)(),l=(0,at.vt)(),u=(0,at.vt)(),h=(0,at.vt)(),c=0;for(let e=0;e<s.length;e++){let d=s[e];for(let e=0;e<d;e++){let s=2*(e+c-1),p=2*(e+c),f=2*(e+c+1);e>0?(0,B.hZ)(n,r[s],r[s+1]):(0,B.hZ)(n,0,0),(0,B.hZ)(a,r[p],r[p+1]),e<d-1?(0,B.hZ)(o,r[f],r[f+1]):(0,B.hZ)(o,0,0),0===e?(0,B.hZ)(l,0,0):((0,B.jb)(l,a,n),(0,B.S8)(l,l),(0,B.hZ)(l,l[1],-l[0])),e===d-1?(0,B.hZ)(u,0,0):((0,B.jb)(u,o,a),(0,B.S8)(u,u),(0,B.hZ)(u,u[1],-u[0])),(0,B.WQ)(h,l,u),(0,B.S8)(h,h);let m=h[0]*u[0]+h[1]*u[1];0!==m&&(0,B.hs)(h,h,m),(0,B.hs)(h,h,t),i.coords.push(a[0]+h[0],a[1]+h[1])}i.lengths.push(d),c+=d}return i}const ta={createComputedParams:e=>e,optionalAttributes:xs.optionalAttributes,attributes:{...xs.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({gradientMethod:e,gradientSizeUnits:t,gradientType:i})=>Ei([[0,"alongline"===e.toLowerCase()],[1,t===Hs.h.Absolute],[2,"discrete"===i.toLowerCase()]])},tlbr:{type:Xi.pe.UNSIGNED_SHORT,count:4,pack:({sprite:e})=>{let{rect:t,width:i,height:r}=e,s=t.x+4+1,n=t.y+4;return[s,n,s+i-2,n+r]}},accumulatedDistance:{type:Xi.pe.HALF_FLOAT,count:1,packTessellation:({distance:e,pathLength:t,distanceOffset:i})=>(i+e)/t},gradientSize:{type:Xi.pe.HALF_FLOAT,count:1,pack:({gradientSize:e,gradientSizeUnits:t})=>t===Hs.h.Relative?e/100:(0,h.Lz)(e)},totalLength:{type:Xi.pe.HALF_FLOAT,count:1,packTessellation:({pathLength:e})=>e},segmentDirection:{type:Xi.pe.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:e,directionY:t})=>[e,t]}}};class ia extends vs{get _preventEffectClipping(){return!0}constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=ta,this._tessellationOptions.textured=!0}_write(e,{target:t,effect:i}){let r=i?.geometry??ae.z.fromFeatureSetReaderCIM(t);if(!r)return;let{sprite:s}=this.evaluatedMeshParams;this._writeGeometry(e,t,r,s?.textureBinding)}}const ra={createComputedParams:e=>e,optionalAttributes:xs.optionalAttributes,attributes:{...xs.attributes,bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({shouldSampleAlphaOnly:e,shouldScaleDash:t,isSDF:i})=>Ei([[4,e],[2,t],[3,i]])},tlbr:{type:Xi.pe.UNSIGNED_SHORT,count:4,pack:({sprite:e})=>{let{rect:t,width:i,height:r}=e,s=t.x+4,n=t.y+4;return[s,n,s+i,n+r]}},accumulatedDistance:{type:Xi.pe.UNSIGNED_SHORT,count:1,packTessellation:({distance:e})=>e},segmentDirection:{type:Xi.pe.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:e,directionY:t})=>[e,t]},offsetAlongLine:{type:Xi.pe.HALF_FLOAT,count:1,pack:({offsetAlongLine:e})=>(0,h.Lz)(e)},capType:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({capType:e})=>{switch(e){case"Butt":case"butt":default:return 0;case"Square":case"square":return 1;case"Round":case"round":return 2}}}}};class sa extends vs{constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=ra,this._tessellationOptions.textured=!0}_write(e,{target:t,effect:i}){let r=i?.geometry??ae.z.fromFeatureSetReaderCIM(t);if(!r)return;let{sprite:s}=this.evaluatedMeshParams;this._writeGeometry(e,t,r,s?.textureBinding)}}class na{static from(e){return"width"in e?this.fromSimpleMeshParams(e):this.fromComplexMeshParams(e)}static fromSimpleMeshParams(e){let t=new na(e.sprite,e.color,e.outlineColor,e.minPixelBuffer,e.placement,e.scaleInfo,e.effects),{type:i,width:r,height:s,angle:n,alignment:a,outlineSize:o,referenceSize:l,sprite:u,overrideOutlineColor:c}=e;return t.rawWidth=(0,h.Lz)(r),t.rawHeight=(0,h.Lz)(s),t.angle=n,t.alignment=a,t.outlineSize=(0,h.Lz)(o),t.referenceSize=(0,h.Lz)(l),t.overrideOutlineColor=c,t.offsetX=(0,h.Lz)(e.offsetX),t.offsetY=(0,h.Lz)(e.offsetY),"simple"===i&&!u.sdf&&(t.rawWidth=u.width,t.rawHeight=u.height),t._initializeSizeComputation(!1,e.hasSizeVV),t._captureBaseSizeState(),t._computeSize(),t._captureBaseComputedSize(),t}static fromComplexMeshParams(e){let t=new na(e.sprite,e.color,e.outlineColor,e.minPixelBuffer,e.placement,e.scaleInfo,e.effects),{alignment:i,transforms:r,size:s,scaleX:n,anchorX:a,anchorY:o,angle:l,colorLocked:u,frameHeight:c,widthRatio:d,offsetX:p,offsetY:f,outlineSize:m,referenceSize:y,scaleFactor:_,sizeRatio:g,isAbsoluteAnchorPoint:x,rotateClockwise:b,scaleSymbolsProportionally:w,sprite:v}=e;if(r&&r.infos.length>0){let e=(0,ut.zb)(s,l,b,p,f,r);s=e.size,l=e.rotation,p=e.offsetX,f=e.offsetY,b=!1}_&&(s*=_,p*=_,f*=_);let S=n*(v.width/v.height);t.alignment=i,t.rawHeight=(0,h.Lz)(s),t.rawWidth=t.rawHeight*S,t.referenceSize=(0,h.Lz)(y),t.sizeRatio=g,t.sdfDecodeCoeff=(v.sdfDecodeCoeff??1)*g,t.angle=l,t.rotateClockwise=b,t.anchorX=a,t.anchorY=o,t.offsetX=(0,h.Lz)(p),t.offsetY=(0,h.Lz)(f),x&&s&&(t.anchorX=v.sdf?a/(s*d):a/(s*S),t.anchorY=o/s);let I=w&&c?s/c:1;return t.outlineSize=0===m||isNaN(m)?0:(0,h.Lz)(m)*I,t.scaleSymbolsProportionally=w,t.colorLocked=u,t._initializeSizeComputation(!0,e.hasSizeVV),t._captureBaseSizeState(),t._computeSize(),t._captureBaseComputedSize(),t}constructor(e,t,i,r,s,n,a){this.sprite=e,this.color=t,this.outlineColor=i,this.minPixelBuffer=r,this.placement=s,this.scaleInfo=n,this.effects=a,this.rawWidth=0,this.rawHeight=0,this.angle=0,this.outlineSize=0,this.referenceSize=0,this.sizeRatio=1,this.sdfDecodeCoeff=1,this.alignment=0,this.scaleSymbolsProportionally=!1,this.overrideOutlineColor=!1,this.colorLocked=!1,this.anchorX=0,this.anchorY=0,this.computedWidth=0,this.computedHeight=0,this.texXmin=0,this.texYmin=0,this.texXmax=0,this.texYmax=0,this.offsetX=0,this.offsetY=0,this.rotateClockwise=!0,this._baseRawWidth=0,this._baseRawHeight=0,this._baseComputedWidth=0,this._baseComputedHeight=0,this._baseAnchorX=0,this._baseAnchorY=0,this._isCIM=!1,this._hasSizeVV=!1}applyPointSymbolCalloutBackgroundScale(e,t,i,r=0,s=1,n=1,a=!1){if(t+=2*r,i+=2*r,a&&(t+=r,i+=r),!Number.isFinite(t)||!Number.isFinite(i)||t<=0||i<=0||s<=0||n<=0||this._baseComputedWidth<=0||this._baseComputedHeight<=0)return void this.resetSizeOverride();let o=this._baseComputedWidth,l=this._baseComputedHeight;switch(e){case 1:{let e=1.25*t/(this._baseComputedWidth*s),r=1.25*i/(this._baseComputedHeight*n),u=a?Math.sqrt(e*e+r*r):Math.max(e,r);o*=u,l*=u;break}case 3:{let e=Math.max(t-this._baseComputedWidth,i-this._baseComputedHeight);o+=e,l+=e;break}}this._applyComputedSizeTarget(o,l),0!==e&&(this.anchorX=0,this.anchorY=0)}getPointSymbolCalloutBounds(e){let t=this.computedWidth,i=this.computedHeight,r=(e.xmin+e.xmax)/2+this.offsetX-this.anchorX*t,s=(e.ymin+e.ymax)/2+this.offsetY-this.anchorY*i;return{xmin:r-t/2,ymin:s-i/2,xmax:r+t/2,ymax:s+i/2}}resetSizeOverride(){this._restoreBaseSize(),this._computeSize()}get boundsInfo(){return{size:Math.max(this.computedHeight,this.computedWidth),offsetX:this.offsetX,offsetY:this.offsetY}}_initializeSizeComputation(e,t){this._isCIM=e,this._hasSizeVV=t}_captureBaseSizeState(){this._baseRawWidth=this.rawWidth,this._baseRawHeight=this.rawHeight,this._baseAnchorX=this.anchorX,this._baseAnchorY=this.anchorY}_captureBaseComputedSize(){this._baseComputedWidth=this.computedWidth,this._baseComputedHeight=this.computedHeight}_restoreBaseSize(){this.rawWidth=this._baseRawWidth,this.rawHeight=this._baseRawHeight,this.anchorX=this._baseAnchorX,this.anchorY=this._baseAnchorY}_applyComputedSizeTarget(e,t){let i=this._baseComputedWidth,r=this._baseComputedHeight;!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0||i<=0||r<=0?this.resetSizeOverride():(this._restoreBaseSize(),this.rawWidth*=e/i,this.rawHeight*=t/r,this._computeSize())}_computeSize(){let{sprite:e}=this,t=this._hasSizeVV,i=this._isCIM,r=!!e.sdf,s=e.sdfPaddingRatio??.5,{rawWidth:n,rawHeight:a,sizeRatio:o,outlineSize:l}=this,u=e.rect,h=n*o,c=a*o,d=0,p=0;if(r){let r=1/(1-s);if(h*=r,c*=r,t)this.computedWidth=h,this.computedHeight=c;else{let t=i&&n>a?h:n,r=a,s=l+2;this.computedWidth=Math.min(t+s,h),this.computedHeight=Math.min(r+s,c);let o=Math.max(e.width,e.height)/Math.max(h,c);d=(this.computedWidth-h)*o,p=(this.computedHeight-c)*o}}else this.computedWidth=h*(u.width/e.width),this.computedHeight=c*(u.height/e.height),d=8,p=8;let f=u.x+4-d/2,m=u.y+4-p/2,y=f+e.width+d,_=m+e.height+p;this.texXmin=aa(f),this.texYmin=aa(m),this.texXmax=oa(y),this.texYmax=oa(_),this.computedWidth*=(this.texXmax-this.texXmin)/(y-f),this.computedHeight*=(this.texYmax-this.texYmin)/(_-m),this.anchorX*=h/this.computedWidth,this.anchorY*=c/this.computedHeight}}function aa(e,t=1e-7){let i=Math.ceil(e);return i-e<t?i:Math.floor(e)}function oa(e,t=1e-7){let i=Math.floor(e);return e-i<t?i:Math.ceil(e)}const la=128/Math.PI;const ua={createComputedParams:e=>na.from(e),optionalAttributes:{zoomRange:{type:Xi.pe.HALF_FLOAT,count:2,pack:({scaleInfo:e},{tileInfo:t})=>Ti(e,t)}},attributes:{pos:{type:Xi.pe.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({sprite:e,alignment:t,scaleSymbolsProportionally:i,overrideOutlineColor:r,colorLocked:s})=>{let n=0;return e.sdf&&(n|=Fi(Ni)),1===t&&(n|=Fi(Bi)),i&&(n|=Fi(qi)),r&&(n|=Fi(Gi)),s&&(n|=Fi(Ui)),n}},offset:{type:Xi.pe.HALF_FLOAT,count:2,packAlternating:{count:4,pack:({angle:e,computedWidth:t,computedHeight:i,anchorX:r,anchorY:s,offsetX:n,offsetY:a,rotateClockwise:o})=>{let l=function(e,t,i,r,s=!1){let n=(0,dn.vt)(),a=s?1:-1;return(0,cn.D_)(n),(t||i)&&(0,cn.Tl)(n,n,[t,-i]),r&&(0,cn.e$)(n,n,.017453292519944444*a*-r),n}(0,n,a,-e,o),u=-(.5+r)*t,h=-(.5-s)*i,c=[u,h],d=[u+t,h],p=[u,h+i],f=[u+t,h+i];return(0,B.l0)(c,c,l),(0,B.l0)(d,d,l),(0,B.l0)(p,p,l),(0,B.l0)(f,f,l),[c,d,p,f]}}},textureUV:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:({texXmax:e,texXmin:t,texYmax:i,texYmin:r})=>[[t,r],[e,r],[t,i],[e,i]]}},color:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>Ri(e)},outlineColor:{type:Xi.pe.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>Ri(e)},sizing:{type:Xi.pe.UNSIGNED_BYTE,count:4,pack:({rawWidth:e,rawHeight:t,outlineSize:i,referenceSize:r})=>[zi(Math.max(e,t),128),zi(i,128),zi(r,128),0]},placementAngle:{type:Xi.pe.UNSIGNED_BYTE,count:1,packTessellation:({placementAngle:e})=>function(e){return function(e){return e%=256,Math.abs(e>=0?e:e+256)}(e*la)}(e)},sdfDecodeCoeff:{type:Xi.pe.UNSIGNED_SHORT,count:1,packPrecisionFactor:64,pack:({sdfDecodeCoeff:e})=>e}}};class ha extends Ki{constructor(){super(...arguments),this.calloutRecordsUseLabelPhase=!1,this.vertexSpec=ua}get _requiresPerFeaturePacking(){return null!=this._getPointSymbolCalloutMarkerEffect()}getBoundsInfo(){return this.evaluatedMeshParams.boundsInfo}getLocalCalloutReferenceInfo(){let e=this.evaluatedMeshParams.boundsInfo;if(!e)return;let t=e.size/2;return{anchor:{x:0,y:0},bodyBounds:{xmin:e.offsetX-t,ymin:e.offsetY-t,xmax:e.offsetX+t,ymax:e.offsetY+t},bodyBoundsUseReferenceScale:!0}}getCalloutCollisionBounds(e){if(this._getPointSymbolCalloutMarkerEffect())return this.evaluatedMeshParams.getPointSymbolCalloutBounds(e.bodyBounds)}_prepareEvaluatedMeshParams(e,t,i,r){let s=this._getPointSymbolCalloutMarkerEffect();if(!s)return;let n=r?.effect?.referenceBounds;if(!n)return void e.resetSizeOverride();let a=n.xmax-n.xmin,o=n.ymax-n.ymin;e.applyPointSymbolCalloutBackgroundScale(s.backgroundScale,a,o,(0,h.Lz)(s.gap??0),s.contentWidthRatio,s.contentHeightRatio,s.contentRequiresRadialFit)}_write(e,{target:t,effect:i,scaleFactor:r}){let s=i?.geometry,n=this.evaluatedMeshParams.sprite?.textureBinding,a=t.getDisplayId();e.recordStart(this.instanceId,this.attributeLayout,n);let o=this.evaluatedMeshParams.minPixelBuffer,l=Math.max(this.evaluatedMeshParams.computedWidth,o),u=Math.max(this.evaluatedMeshParams.computedHeight,o),h=-this.evaluatedMeshParams.anchorX*this.evaluatedMeshParams.computedWidth,c=this.evaluatedMeshParams.anchorY*this.evaluatedMeshParams.computedHeight,d=this.evaluatedMeshParams.offsetX+h,p=-this.evaluatedMeshParams.offsetY+c;if(null!=this.evaluatedMeshParams.placement){let i=null;if(null!=s){let e=Math.max(this.evaluatedMeshParams.computedWidth,this.evaluatedMeshParams.computedHeight)*(r??1);if(i=(0,Vi.qc)(s,2*e,!1),null===i)return}this._writePlacedMarkers(e,t,i,l,u)}else if(s?.nextPath()){s.nextPoint();let t=s.x,i=s.y;e.recordBounds(t+d,i+p,l,u),this._writeQuad(e,a,t,i)}else if("esriGeometryPolygon"===t.geometryType){let i=t.readCentroidForDisplay();if(!i)return;let[r,s]=i.coords;e.recordBounds(r+d,s+p,l,u),this._writeQuad(e,a,r,s)}else if("esriGeometryPoint"===t.geometryType){let i=t.readXForDisplay(),r=t.readYForDisplay();e.recordBounds(i+d,r+p,l,u),this._writeQuad(e,a,i,r)}else t.readGeometryForDisplay()?.forEachVertex((t,i)=>{e.recordBounds(t+d,i+p,l,u),!(Math.abs(t)>1024||Math.abs(i)>1024)&&this._writeQuad(e,a,t,i)});e.recordEnd()}_writePlacedMarkers(e,t,i,r,s){let n=i??ae.z.fromFeatureSetReaderCIM(t);if(!n)return;let a=Ai.getPlacement(n,-1,this.evaluatedMeshParams.placement,h.L7,e.id);if(!a)return;let o=t.getDisplayId(),l=a.next(),u=this.evaluatedMeshParams.offsetX,c=-this.evaluatedMeshParams.offsetY;for(;null!=l;){let t=l.tx,i=-l.ty;if(Math.abs(t)>1024||Math.abs(i)>1024){l=a.next();continue}let n=-l.getAngle();e.recordBounds(t+u,i+c,r,s),this._writeQuad(e,o,t,i,n),l=a.next()}}_writeQuad(e,t,i,r,s){let n=e.vertexCount(),a=null==s?null:{placementAngle:s};this._writeVertex(e,t,i,r,a),e.indexWrite(n+0),e.indexWrite(n+1),e.indexWrite(n+2),e.indexWrite(n+1),e.indexWrite(n+3),e.indexWrite(n+2)}_getPointSymbolCalloutMarkerEffect(){for(let{effect:e}of this.effectInfos??[])if("CIMPointSymbolCallout"===e.type&&"marker"===e.part)return e}}var ca=i(4576);class da{destroy(){}}class pa extends da{constructor(e){super(),this._value=e}resize(e){}read(e,t){return this._value}readWithDefault(e,t,i){return this._value}hasArcadeDependency(e){return!1}}const fa=()=>Ot.A.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.mesh.MeshWriterInputEvaluator");async function ma(e,t,i,r){let{defaultValue:s,valueExpressionInfo:n,value:a}=t;if(n){if("dictionary-template"===n.type)return{...t,computed:e.createDictionaryTemplateField(n,i),defaultValue:s};let{expression:a}=n,o=await e.createComputedField({expression:a},r);return o?{...t,computed:o,defaultValue:s}:null}return{...t,computed:new pa(a),defaultValue:s}}async function ya(e,t,i){let{valueExpressionInfo:r}=t,s="dictionary-template"===r.type?e.createDictionaryTemplateField(r,i):await e.createComputedField({expression:r.expression});return s?{...t,computed:s}:null}function _a(e){return!("object"!=typeof e||!e||!("valueExpressionInfo"in e&&e.valueExpressionInfo||"type"in e&&"Process"===e.type&&"op"in e&&"Random"===e.op))}function ga(e){if(Array.isArray(e))for(let t of e)if(ga(t))return!0;if("object"==typeof e){if(_a(e))return!0;for(let t in e)if(ga(e[t]))return!0}return!1}class xa{static async create(e,t,i,r){let s={},n=new Map,a=new Map,o=new Map,l=new Map,u=new Map,h=new Map;for(let c in i){let d=i[c];if("object"==typeof d&&d)if(Array.isArray(d)){if("object"==typeof d[0])throw Error(`InternalError: Cannot handle ${c}. Nested array params are not supported`);s[c]=d}else if("valueExpressionInfo"in d){if(d.value){s[c]=d.value;continue}let t=await ya(e,d,r);if(!t){s[c]=d.defaultValue;continue}n.set(c,t),s[c]=null}else switch(d.type){case"cim-effect-infos":if(d.effectInfos.some(e=>e.overrides.length)){a.set(c,{effects:await Promise.all(d.effectInfos.map(async t=>{let i=t.overrides.map(t=>ma(e,t,r,!1));return{effect:t.effect,compiledOverrides:(await Promise.all(i)).filter(ca.Ru)}}))});break}s[c]=d.effectInfos.map(e=>e.effect);break;case"cim-marker-placement-param":d.overrides.length&&o.set(c,{placementInfo:d,compiledOverrides:(await Promise.all(d.overrides.map(t=>ma(e,t,r,!1)))).filter(ca.Ru)}),s[c]=d.placement;break;case"text-rasterization-param":{if(d.overrides.length){let t=d.overrides.map(t=>ma(e,t,r,d.useLegacyLabelEvaluationRules??!1));l.set(c,{compiledOverrides:(await Promise.all(t)).filter(ca.Ru),rasterizationParam:d,objectIdToResourceId:new Map});continue}let i={type:"cim-rasterization-info",resource:d.resource};s[c]=await t.fetchResourceImmediate(i)??null;break}case"sprite-rasterization-param":{if(d.overrides.length){let t=d.overrides.map(t=>ma(e,t,r,!1));l.set(c,{compiledOverrides:(await Promise.all(t)).filter(ca.Ru),rasterizationParam:d,objectIdToResourceId:new Map});continue}if("animated"===d.resource.type){l.set(c,{compiledOverrides:[],rasterizationParam:d,objectIdToResourceId:new Map});continue}let i={type:"cim-rasterization-info",resource:d.resource};s[c]=await t.fetchResourceImmediate(i)??null;break}case"cim-marker-transform-param":{let{params:t}=d;if(ga(t)){let i={compiledMarkerInfos:[]};await Promise.all(t.map(async t=>{let s={props:{}};for(let i in t)if(_a(t[i])){let n=await ya(e,t[i],r);s.compiledExpressionMap||=new Map;let a=s.compiledExpressionMap;n&&a.set(i,n)}else s.props[i]=t[i];i.compiledMarkerInfos.push(s)})),u.set(c,i)}else s[c]={type:"cim-marker-transform-info",infos:t};break}case"animation-params":{let{params:i}=d,r=Cr(i);if(ga(r)){let t=await Promise.all(r.map(t=>Ar(t,e)));h.set(c,{params:t,propertyIdToResourceId:new Map,key:c})}else{let e=Mr(r),i=await t.fetchResourceImmediate({type:"animation-info",resource:e});null!=i&&"sprite"===i.type&&(s[c]={dataRow:i.rect.y,dataColumn:i.rect.x})}break}default:s[c]=d}else s[c]=d}return new xa(i,s,n,a,o,l,u,h)}constructor(e,t,i,r,s,n,a,o){this.inputMeshParams=e,this._resolvedMeshParams=t,this._dynamicProperties=i,this._dynamicEffectProperties=r,this._dynamicPlacementProperties=s,this._dynamicAsyncProperties=n,this._dynamicTransformProperties=a,this._dynamicAsyncAnimations=o,this.evaluator=e=>e,this._arcadeDependencies=new Set;for(let e of this._expressions())(0,si.QY)(this._arcadeDependencies,e)}get hasDynamicProperties(){return!!(this._dynamicProperties.size||this._dynamicAsyncProperties.size||this._dynamicEffectProperties.size||this._dynamicTransformProperties.size||this._dynamicPlacementProperties.size||this._dynamicAsyncAnimations.size)}get evaluatedMeshParams(){return this._evaluatedMeshParams||=this.evaluator(this._resolvedMeshParams),this._evaluatedMeshParams}enqueueRequest(e,t,i){for(let s of this._dynamicAsyncProperties.values()){let n=(0,Me.o8)(s.rasterizationParam.resource);"animated"===s.rasterizationParam.resource.type&&s.rasterizationParam.resource.randomizeStartTime&&(n.primitiveName="__RESERVED__PRIMITIVE__NAME__",n.startGroup=rr(t.getObjectId()||0));for(let{primitiveName:a,propertyName:o,computed:l,defaultValue:u,valueExpressionInfo:h}of s.compiledOverrides)try{let e="animated"===s.rasterizationParam.resource.type?n.primitiveName:a,r="cim-point-symbol-halo"===n.type?n.symbol:n;(0,_s.Ph)(r,e,o,l,t,i,u)}catch(e){fa().errorOnce(new r.A("invalid-arcade-expression","Encountered an error when evaluating the arcade expression",{error:e,valueExpressionInfo:h}))}let a=e.enqueueRequest({type:"cim-rasterization-info",resource:n});s.objectIdToResourceId.set(t.getObjectId(),a)}for(let r of this._dynamicAsyncAnimations.values()){let s=r.params.map(e=>Pr(e,t,i)).map(gr).map(e=>e.simplify()),n=kr(s),a=e.enqueueRequest({type:"animation-info",resource:n});r.propertyIdToResourceId.set(t.getObjectId()+"."+r.key,a)}}evaluateMeshParams(e,t,i){for(let[e,r]of this._dynamicProperties.entries())this._resolvedMeshParams[e]=r.computed.readWithDefault(t,i,r.defaultValue);for(let[e,r]of this._dynamicPlacementProperties.entries())for(let{computed:s,defaultValue:n,propertyName:a}of r.compiledOverrides){let o=s.readWithDefault(t,i,n);r.placementInfo.placement[a]=o,this._resolvedMeshParams[e]=r.placementInfo.placement}for(let[e,r]of this._dynamicEffectProperties.entries())for(let s of r.effects){for(let{computed:e,defaultValue:r,propertyName:n}of s.compiledOverrides){let a=e.readWithDefault(t,i,r);s.effect[n]=a}this._resolvedMeshParams[e]=r.effects.map(e=>e.effect)}for(let[e,r]of this._dynamicTransformProperties.entries()){let s={type:"cim-marker-transform-info",infos:[]};for(let e of r.compiledMarkerInfos){let r={...e.props};if(e.compiledExpressionMap)for(let[s,n]of e.compiledExpressionMap){let e=n.computed.readWithDefault(t,i,n.defaultValue);r[s]="number"==typeof e||"boolean"==typeof e?e:n.defaultValue}s.infos.push(r)}this._resolvedMeshParams[e]=s}for(let[i,r]of this._dynamicAsyncProperties.entries()){let s=r.objectIdToResourceId.get(t.getObjectId());if(null==s)continue;let n=e.getResource(s);this._resolvedMeshParams[i]=n}for(let[i,r]of this._dynamicAsyncAnimations.entries()){let s=r.propertyIdToResourceId.get(t.getObjectId()+"."+i);if(null==s)continue;let n=e.getResource(s);this._resolvedMeshParams[i]={dataRow:n.rect.y,dataColumn:n.rect.x}}return this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams),this.evaluatedMeshParams}hasArcadeDependency(e){return this._arcadeDependencies.has(e)}*_expressions(){for(let e of this._dynamicProperties.values())yield e.computed;for(let e of this._dynamicEffectProperties.values())for(let t of e.effects)for(let e of t.compiledOverrides)yield e.computed;for(let e of this._dynamicPlacementProperties.values())for(let t of e.compiledOverrides)yield t.computed;for(let e of this._dynamicAsyncProperties.values())for(let t of e.compiledOverrides)yield t.computed;for(let e of this._dynamicTransformProperties.values())for(let t of e.compiledMarkerInfos)if(null!=t.compiledExpressionMap)for(let e of t.compiledExpressionMap.values())yield e.computed;for(let e of this._dynamicAsyncAnimations.values())for(let t of e.params)yield*Tr(t)}}const ba={createComputedParams:e=>e,optionalAttributes:{zoomRange:{type:Xi.pe.HALF_FLOAT,count:2,pack:({scaleInfo:e},{tileInfo:t})=>Ti(e,t)}},attributes:{id:{type:Xi.pe.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:e=>0},pos:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:10,pack:"position"},offset:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:16,packAlternating:{count:4,pack:({size:e})=>{let t=(0,h.Lz)(e),i=-t/2,r=-t/2;return[[i,r],[i+t,r],[i,r+t],[i+t,r+t]]}}},texCoords:{type:Xi.pe.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:()=>[[0,1],[1,1],[0,0],[1,0]]}},referenceSize:{type:Xi.pe.UNSIGNED_BYTE,count:1,pack:({size:e})=>(0,h.Lz)(e)}}};class wa extends Ki{constructor(){super(...arguments),this.vertexSpec=ba}_write(e,{target:t}){let i,r,s=t.getDisplayId(),n=this.evaluatedMeshParams.minPixelBuffer,a=Math.max((0,h.Lz)(this.evaluatedMeshParams.size),n);if("esriGeometryPoint"===t.geometryType)i=t.readXForDisplay(),r=t.readYForDisplay();else{let e=t.readCentroidForDisplay();if(!e)return;i=e?.coords[0],r=e?.coords[1]}e.recordStart(this.instanceId,this.attributeLayout),e.recordBounds(i,r,a,a);let o=e.vertexCount();this._writeVertex(e,s,i,r),e.indexWrite(o+0),e.indexWrite(o+1),e.indexWrite(o+2),e.indexWrite(o+1),e.indexWrite(o+3),e.indexWrite(o+2),e.recordEnd()}}class va{async createMeshWriter(e,t,i,r,s){let n=this._getMeshWriter(r.techniqueType),a=await xa.create(e,t,r.inputParams,s),o=new n(r.id,a,r.optionalAttributes,i);return await o.loadDependencies(),o}_getMeshWriter(e){switch(e){case 15:return Fs;case 12:return Ps;case 10:return Ds;case 28:return Rs;case 16:return rn;case 26:return Gs;case 29:return on;case 11:return $s;case 23:return ha;case 30:return wa;case 32:return Hn;case 21:return vs;case 33:return sa;case 17:return ia;case 19:return un;case 20:return Jn;case 2:return rs;case 3:return ss;case 0:return Is;case 1:return Cs;default:throw Error("Internal Error: Mesh writer not in the registry")}}}class Sa{constructor(e,t,i,r,s){this.storage=e,this.proxy=t,this.viewParams=i,this.registry=r,this.fieldsMap=s}async createMeshWriters(e){let t=e.map(e=>this.registry.createMeshWriter(this.storage,this.proxy,this.viewParams,e,this.fieldsMap));return ke(await Promise.all(t),e)}}class Ia{constructor(e){this.subscription=e,this.handledChunks=new Set,(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e.tile.id}] ASendState.create`)}destroy(){}}class Ma{constructor(){this.type="append",this.messages=[]}}class Ca{constructor(){this.type="update",this.messages=[]}}class ka{constructor(e){this.level=e,this.type="level-replace",this.messages=[]}}class Aa{constructor(e,t,i){this._source=e,this._attributeStore=t,this._sqlOptions=i,this._sendStates=new Map}destroy(){}get isAggregate(){return!1}get usedMemory(){return 0}onSubscribe(e){let t=this.createState(e);this._sendStates.set(e.key.id,t)}onUnsubscribe(e){this._sendStates.get(e.key.id)?.destroy(),this._sendStates.delete(e.key.id)}get hasSubscribers(){return this._sendStates.size>0}requiresInvalidation(e){return!1}invalidate(){let e=Array.from(this._sendStates.values());this._sendStates.clear();for(let t of e)t.destroy(),this.onSubscribe(t.subscription)}invalidateAttributeData(e){}hasArcadeDependency(e){return!1}getFeatureObjectIdsForAggregate(e){throw Error("InternalError: AggregateId lookup not supported")}getDisplayIds(e){let t={};for(let i of e){let e=this._attributeStore.getDisplayIdForObjectId(i);null!=e&&(t[i]=e)}return t}afterUpdateChunks(){}}class Pa{constructor(e,t,i,r){this.subscription=e,this.reader=t,this.end=i,this.debugInfo=r,this.type="append"}get id(){return this.subscription.tile.id}createMessage(e,t,i){return{type:"append",id:this.id,append:e,end:this.end,debugInfo:this.debugInfo,subscriptionVesrion:this.subscription.version,version:t,attributeEpoch:i}}}class Ta{constructor(e,t,i,r,s){this.subscription=e,this.reader=t,this.remove=i,this.end=r,this.debugInfo=s,this.type="update"}get id(){return this.subscription.tile.id}createMessage(e,t,i){return{type:"update",id:this.id,modify:e,debugInfo:this.debugInfo,remove:this.remove,version:t,subscriptionVesrion:this.subscription.version,end:this.end,attributeEpoch:i}}}var Fa=i(5162),Ea=i(9012),Ra=i(8446);class Oa extends Ia{}class La extends Aa{constructor(e,t,i,r){super(e,t,r),this._arcadeContextInfo=i,this.handledChunks=new Set,this.handledChunksForIdCreation=new Set,this.handledChunksForAttributeData=new Set,this._streamLayerDeferredObjectIdsToRemove=[]}destroy(){super.destroy();for(let e of this._source.chunks())this._cleanupChunkIds(e)}invalidateAttributeData(e){this.handledChunksForAttributeData.clear(),this._arcadeContextInfo=e,null!=this._evalOptions&&(this._evalOptions=(0,Ea.N)(this._evalOptions.$view.scale,e))}onSubscribe(e){super.onSubscribe(e),this._evalOptions=e.tile.createArcadeEvaluationOptions(this._arcadeContextInfo)}createState(e){return new Oa(e)}get aggregateQueryEngine(){return null}getDisplayFeatures(e){let t=new Set(e),i=new Set,r=[];for(let e of this._source.chunks()){let s=e.reader.getCursor();for(;s.next();){let e=s.getObjectId(),n=s.getDisplayId();t.has(n)&&!i.has(e)&&(r.push({...s.readLegacyFeatureWorldSpace(),displayId:n}),i.add(e))}}return{features:r,aggregates:[],tracks:[]}}async applyOverrideUpdate(e){let t=new Ca,i=[];for(let t of e.modified.values()){let e=this._attributeStore.createDisplayIdForObjectId(t.objectId);t.displayId=e,i.push(e)}let r=Ra.K.fromOptimizedFeatures(Array.from(e.modified.values()),this._source.metadata).getCursor();for(;r.next();)this._attributeStore.setAttributeData(r.getDisplayId(),r,this._evalOptions,this._sqlOptions);let s=[];for(let t of e.removed){let e=this._attributeStore.getDisplayIdForObjectId(t);null!=e&&s.push(e)}(0,n.A)("esri-2d-update-debug")&&console.debug("FeatureUpdateStrategy.applyLocalEdit",{message:e,modifiedDisplayIds:i,removedDisplayIds:s});let a=Fa.KN.fromFeatures(Array.from(e.modified.values()),this._source.metadata);this.handledChunks.add(a.chunkId),this.handledChunksForAttributeData.add(a.chunkId),this.handledChunksForIdCreation.add(a.chunkId);for(let e of this._sendStates.values())e.handledChunks.add(a.chunkId),t.messages.push(new Ta(e.subscription,null,i,!1,a.queryInfo));for(let e of this._sendStates.values()){let i=a.getTileReader(e.subscription.tile);t.messages.push(new Ta(e.subscription,i,s,!1,a.queryInfo))}for(let t of e.removed)this._attributeStore.releaseDisplayIdForObjectId(t);return t}async updateChunks(e,t){let i=new Ma;if(!e.length)return i;this._updateAttributeData();for(let t of this._sendStates.values()){let{subscription:r,handledChunks:s}=t;for(let n of e){let{chunkId:e}=n;if(s.has(e)||!this.handledChunksForIdCreation.has(e)||!this.handledChunksForAttributeData.has(e))continue;s.add(e);let a=n.getTileReader(r.tile);if(!a)continue;let o=new Pa(t.subscription,a,n.end,n.queryInfo);i.messages.push(o)}}return i}removeChunks(e){for(let t of e)this.handledChunks.delete(t.chunkId),this.handledChunksForAttributeData.delete(t.chunkId),this._cleanupChunkIds(t)}afterUpdateChunks(){for(let e of this._streamLayerDeferredObjectIdsToRemove)this._attributeStore.releaseDisplayIdForObjectId(e);this._streamLayerDeferredObjectIdsToRemove=[]}_cleanupChunkIds(e){if(this.handledChunksForIdCreation.has(e.chunkId)){let t=e.reader.getCursor();for(;t.next();){let e=t.getObjectId();this._source.isStream?this._streamLayerDeferredObjectIdsToRemove.push(e):this._attributeStore.releaseDisplayIdForObjectId(e)}this.handledChunksForIdCreation.delete(e.chunkId)}}_updateAttributeData(){for(let e of this._source.chunks()){let{chunkId:t,reader:i}=e;if(!this.handledChunksForIdCreation.has(t)){this.handledChunksForIdCreation.add(t);let e=i.getCursor();for(;e.next();){let t=this._attributeStore.createDisplayIdForObjectId(e.getObjectId());e.setDisplayId(t)}}}for(let e of this._source.chunks())if(this._attributeStore.referencesScale()||!this.handledChunksForAttributeData.has(e.chunkId)){this.handledChunksForAttributeData.add(e.chunkId);let t=e.reader.getCursor();for(;t.next();){let e=t.getDisplayId();this._attributeStore.setAttributeData(e,t,this._evalOptions,this._sqlOptions)}}}}var za=i(16930);class Da{static async create(e,t){if("count"===t.statisticType){let e=new pa(1);return new Da(t.name,t.alias,t.type,t.statisticType,e)}let i=await e.createComputedField({expression:t.onStatisticExpression?.expression,field:t.onStatisticField});return new Da(t.name,t.alias,t.type,t.statisticType,i)}constructor(e,t,i,r,s){this.name=e,this.alias=t,this.type=i,this.statisticType=r,this.computed=s}}var Na=i(65529),Ba=i(70328),qa=i(37730),Ga=i(75752);class Ua extends Aa{constructor(e,t,i,r,s,n){super(e,t,s),this.spatialReference=i,this.aggregateFields=r,this._adapter=n,this._arcadeDependencies=new Set,this._levelStates=new Map,this.events=new Na.bk,this.featureAdapter=qa.T;for(let e of r)(0,si.QY)(this._arcadeDependencies,e.computed)}get aggregateQueryEngine(){if(!this._aggregateQueryEngine){let{metadata:e}=this._adapter;this._aggregateQueryEngine=new Ga.do({featureStore:this,fieldsIndex:e.fieldsIndex,geometryType:e.geometryType,featureIdInfo:e.featureIdInfo,spatialReference:this.spatialReference})}return this._aggregateQueryEngine}get isAggregate(){return!0}removeChunks(e){}hasArcadeDependency(e){return this._arcadeDependencies.has(e)}destroy(){super.destroy();for(let e of this._levelStates.values())e.destroy();this._levelStates.clear()}onSubscribe(e){super.onSubscribe(e);let{scale:t,level:i}=e.tile;this._lastSubscribedLodInfo={scale:t,level:i}}onUnsubscribe(e){this._levelStates.get(e.tile.level)?.removeTile(e),super.onUnsubscribe(e)}requiresInvalidation(e){return!1}invalidate(){for(let e of this._levelStates.values())e.invalidate()}getDisplayIds(e){return this.getActiveLevelState()?.getDisplayIds(e)??{}}getDisplayFeatures(e){return this.getActiveLevelState()?.getDisplayFeatures(e)??{features:[],aggregates:[],tracks:[]}}getFeatureObjectIdsForAggregate(e){return this.getActiveLevelState()?.getFeatureObjectIdsForAggregate(e)??[]}applyOverrideUpdate(e){return this._adapter.applyOverrideUpdate(e,this._levelStates.values())}createState(e){return this._adapter.createSendState(e)}async updateChunks(e,t){let i=this._lastSubscribedLodInfo;if(null==i)return null;let r=this._getOrCreateLevelState(i),s=this._getSendStatesForLevel(i.level);await r.update(e,s);let n=new ka(i.level);for(let i of s)n.messages.push(...r.createMessages(i,e,t,()=>{this.events.emit("changed")}));return await this._adapter.afterUpdateLevelState(r,e,s),n}getActiveLevelState(){let e=this._lastSubscribedLodInfo;return null==e?null:this._levelStates.get(e.level)}_getOrCreateLevelState(e){let t=this._levelStates.get(e.level);return t??(t=this._adapter.createLevelState(e),this._levelStates.set(e.level,t)),t}_getSendStatesForLevel(e){return Array.from(this._sendStates.values()).filter(t=>t.subscription.tile.level===e)}forEach(e){this.getActiveLevelState()?.forEachAggregateWorldSpace(e)}forEachInBounds(e,t){}forEachBounds(e,t){let i=(0,Ba.vt)();for(let r of e){let e=(0,rt.jQ)(i,r.geometry);e&&t(e)}}}var Wa=i(43334);class Va{constructor(e,t){this.level=e,this._context=t,this._tileStates=new Map}destroy(){for(let e of this._tileStates.values())this._releaseTileState(e);this._tileStates.clear()}invalidate(){}update(e,t){}removeTile(e){let t=this._tileStates.get(e.key.id);null!=t&&(this._releaseTileState(t),this._tileStates.delete(e.key.id))}getDisplayIds(e){let t=new Set(e),i={};for(let e of this._featuresWorldSpace()){let{objectId:r,displayId:s}=e;null!=r&&t.has(r)&&(i[r]=s)}return i}getDisplayFeatures(e){let t=new Set(e),i=new Set,r=[];for(let e of this._featuresWorldSpace())t.has(e.displayId)&&!i.has(e.objectId)&&(e.geometry&&r.push({...(0,rt.oN)(e,this._context.metadata.geometryType,!1,!1),displayId:e.displayId}),i.add(e.objectId));return{features:[],aggregates:r,tracks:[]}}getFeatureObjectIdsForAggregate(e){for(let t of this._tileStates.values())for(let i of t.bins.values())if(i.id===e){let e=[];for(let t of i.containedObjectIds)for(let i of t.values())e.push(i);return e}return[]}forEachAggregateWorldSpace(e){let t=new Set;for(let i of this._featuresWorldSpace())t.has(i.objectId)||(e(i),t.add(i.objectId))}createMessages(e,t,i,r){let{subscription:s}=e,a=this._getOrCreateTileState(s),o=this._takeTileState(a),l=s.tile,u=new Set;for(let e of t)this._context.getIndex(e,l).putBounded(a.bins,u,l.extent,l.resolution);let h=[],c=s.tile.transform,d=s.tile.key.level;for(let e of a.bins.values()){let t=e.getGeometry(this._context.spatialReference,c),i=new Wa.Om(t,e.getAttributes(),null,e.id);t||(i.centroid=e.getGeometricCentroid(this._context.spatialReference,c)),i.displayId=this._context.attributeStore.createDisplayIdForObjectId(`${i.objectId}.${d}`),a.featureCache.set(e.id,i),h.push(i)}r(),e.done||=!i;let p=Ra.K.fromOptimizedFeatures(h,this._context.metadata,c),f=p.getCursor(),m=e.subscription.tile.createArcadeEvaluationOptions(this._context.arcadeContextInfo);for(;f.next();)this._context.attributeStore.setAttributeData(f.getDisplayId(),f,m,this._context.sqlOptions);(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] BinningStrategy._update`,{done:e.done});let y=new Pa(e.subscription,p,e.done,{});for(let e of o.featureCache.keys())this._context.attributeStore.releaseDisplayIdForObjectId(`${e}.${d}`);return[y]}_getOrCreateTileState(e){let t=this._tileStates.get(e.key.id);return t??(t={subscription:e,bins:new Map,featureCache:new Map},this._tileStates.set(e.key.id,t)),t}_takeTileState(e){let t=e.bins,i=e.featureCache;return e.bins=new Map,e.featureCache=new Map,{bins:t,featureCache:i}}_releaseTileState(e){let t=e.subscription.tile.key.level;for(let i of e.featureCache.keys())this._context.attributeStore.releaseDisplayIdForObjectId(`${i}.${t}`);e.bins.clear(),e.featureCache.clear()}*_featuresWorldSpace(){for(let e of this._tileStates.values())for(let t of e.featureCache.values()){let i=t.clone();i.geometry&&(0,rt.aQ)(i.geometry,e.subscription.tile.transform),yield i}}}class ja extends Ia{constructor(e){super(e),this.done=!1}}var Ya=i(35258);class $a{constructor(e,t=JSON.stringify(e)){this.inner=e,this.hash=t}}class Ha{constructor(e,t,i,r,s,n,a,o){this._schema=e,this._featureFilter=t,this._arcadeContextInfo=i,this._aggregateFields=r,this._spatialReference=s,this._sqlOptions=o,this.metadata=Ya.i.createFeature({geometryType:"esriGeometryPolygon",hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"aggregateId"},fieldsIndex:new ri.A(e.fields).toJSON(),globalIdField:null,spatialReference:n.metadata.spatialReference,outSpatialReference:n.metadata.outSpatialReference,attributeSpatialReference:null,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null}),this._getIndex=this._createGetIndex(),this._binContext={getIndex:this._getIndex,spatialReference:this._spatialReference,attributeStore:a,metadata:this.metadata,arcadeContextInfo:this._arcadeContextInfo,sqlOptions:this._sqlOptions}}createSendState(e){return new ja(e)}createLevelState(e){return new Va(e.level,this._binContext)}async applyOverrideUpdate(e,t){for(let e of t)e.invalidate();return null}afterUpdateLevelState(e,t,i){}_createGetIndex(){return(e,t)=>{switch(this._schema.index.type){case"geohash":return e.getGeohashIndex(new $a({type:"geohash",fields:this._aggregateFields,featureFilter:this._featureFilter,geohashLevel:this._schema.index.fixBinLevel,spatialReference:this._spatialReference,arcadeContextInfo:this._arcadeContextInfo,scale:t.scale,sqlOptions:this._sqlOptions}));case"grid":{let i=this._schema.index.fixedBinLevel,r=null==i?t.scale:t.tileInfoView.getLODInfoAt(i).scale;return e.getGridIndex(new $a({type:"grid",fields:this._aggregateFields,cellSize:this._schema.index.size,featureFilter:this._featureFilter,spatialReference:this._spatialReference,arcadeContextInfo:this._arcadeContextInfo,scale:r,sqlOptions:this._sqlOptions}))}}}}}const Xa=8388607,Za=e=>e&Xa;class Qa extends da{constructor(e){super(),this._field=e}resize(e){throw Error("Method not implemented.")}read(e,t){return e.readAttribute(this._field)}readWithDefault(e,t){return e.readAttribute(this._field)}hasArcadeDependency(e){return!1}}var Ka=i(50115);class Ja extends da{static async create(e,t){let i=await(0,si.Ad)(e,t.spatialReference),r=(0,Ii.Wm)(e);return new Ja(i,r)}constructor(e,t){super(),this._compiled=e,this._cacheKey=t}resize(e){}read(e,t){return this.hasArcadeDependency("scale")||"system"!==t.$view.timeZone?(0,Ka.V4)(this._compiled,e,t):this._readCached(e,t)}readWithDefault(e,t,i){return this.hasArcadeDependency("scale")||"system"!==t.$view.timeZone?(0,Ka.OP)(this._compiled,e,t,i):this._readWithDefaultCached(e,t,i)}hasArcadeDependency(e){return this._compiled?.references(e)??!1}_getCacheKey(e){if(!this._compiled?.references("timeProperties"))return this._cacheKey;let{currentStart:t,currentEnd:i}=e.$view.timeProperties;return this._cacheKey+function(e,t){let i=43758.5453*Math.sin(12.9898*e+78.233*t);return i-Math.floor(i)}(t??1,i??1)}_readCached(e,t){if(e.setCache(this._getCacheKey(t)),e.hasCachedValue())return e.getCachedValue();let i=(0,Ka.V4)(this._compiled,e,t);return e.setCachedValue(i),i}_readWithDefaultCached(e,t,i){if(e.setCache(this._getCacheKey(t)),e.hasCachedValue())return e.getCachedValue();let r=(0,Ka.OP)(this._compiled,e,t,i);return e.setCachedValue(r),r}}var eo=i(39516),to=i(97770),io=i(18047),ro=i(68463),so=i(30524),no=i(32730);class ao extends da{static async create(e,t){let i=(0,no.lc)(e);return new ao(e=>i.replaceAll(/{[^}]*}/g,t=>{let i=t.slice(1,-1),r=e.metadata.fieldsIndex.get(i);if(null==r)return t;let s=e.readAttribute(i);return null==s?"":function(e,t){if(null==e)return"";let i=t.domain;if(i)if("codedValue"===i.type||"coded-value"===i.type){let t=e;for(let e of i.codedValues)if(e.code===t)return e.name}else if("range"===i.type){let{max:r,min:s}=(0,ro.A5)(t),n=+e;if(null!=s&&null!=r&&s<=n&&n<=r)return i.name}let r=e;return(0,so.vE)(t)?r=(0,to.Yq)(r,(0,to.J2)("short-date")):(0,so.WA)(t)&&(r=(0,io.ZV)(+r)),r||""}(s,r)}))}constructor(e){super(),this._evaluator=e}resize(e){}read(e,t){return this._evaluator(e)}readWithDefault(e,t,i){let r=this._evaluator(e);return(0,Ka.rZ)(r)?i:r}hasArcadeDependency(e){return!1}}class oo extends da{constructor(e,t){super(),this._template=e,this._parts=(0,ut.gQ)(e.template,t)}resize(e){}read(e,t){return(0,ut._h)(e,this._parts,this._template.textCase)}readWithDefault(e,t,i){return(0,ut._h)(e,this._parts,this._template.textCase)}hasArcadeDependency(e){return!1}}class lo extends da{constructor(e,t){super(),this._field=e,this._normalizationInfo=t}resize(e){throw Error("Method not implemented.")}read(e,t){return this._readNormalized(e)}readWithDefault(e,t){return this._readNormalized(e)}hasArcadeDependency(e){return!1}_readNormalized(e){let t=e.readAttribute(this._field);if(null==t)return null;let{normalizationField:i,normalizationTotal:r,normalizationType:s}=this._normalizationInfo,n=e.readAttribute(i);switch(s??"esriNormalizeByField"){case"esriNormalizeByField":return n?n?t/n:void 0:null;case"esriNormalizeByLog":return Math.log(t)*Math.LOG10E;case"esriNormalizeByPercentOfTotal":return r?t/r*100:null}}}var uo=i(73250);const ho=()=>Ot.A.getLogger("esri.views.2d.layers.FeatureLayerView2D"),co={getAttribute:(e,t)=>e.readAttribute(t)};async function po(e,t){try{let i=await(0,eo.GP)(e,t);return i.isStandardized||ho().error(new r.A("sql-parse-error","expression is not standardized",{where:e})),(t,s)=>{let n=t.readArcadeFeature();try{return i.testFeatureCompiled(n,co,s.currentUser)}catch(t){return ho().warn(new r.A("sql-runtime-error","Encountered an error when evaluating where clause",{where:e,error:t})),!0}}}catch(t){return ho().warn(new r.A("sql-runtime-error","Encountered an error when evaluating where clause",{where:e,error:t})),e=>!0}}const fo=()=>Ot.A.getLogger("esri.views.2d.layers.features.support.ComputedAttributeStorage"),mo=4294967295;function yo(e,t,i){if(!(e.length>t))for(;e.length<=t;)e.push(i)}class _o{constructor(e){this._numerics=[],this._strings=[],this._allocatedSize=256,this._bitsets=[],this._instanceIds=[],this._bounds=[],this._dirtyBitset=this.getBitset(this.createBitset()),this.compilationOptions=e}createBitset(){let e=this._bitsets.length;return this._bitsets.push(uo.y.create(this._allocatedSize,Xa)),e+1}createDictionaryTemplateField(e,t){return new oo(e,t)}async createComputedField(e,t=!1){if(e.expression)try{if(!this.compilationOptions)throw Error("InternalError: Compilation options not defined");return t?await ao.create(e.expression,this.compilationOptions):await Ja.create(e.expression,this.compilationOptions)}catch(t){let i=new r.A("featurelayer","Failed to compile arcade expression",{error:t,expression:e.expression});return fo().error(i),null}if(e.normalizationType||e.normalizationField)return new lo(e.field,e);if(e.field)return new Qa(e.field);let i=new r.A("featurelayer","Unable to create computed field. No expression or field found",{info:e});return fo().error(i),null}async createWhereClause(e){return e?po(e,this.compilationOptions.fields):null}getBitset(e){return this._bitsets[e-1]}getComputedNumeric(e,t){return this.getComputedNumericAtIndex(e&Xa,0)}setComputedNumeric(e,t,i){return this.setComputedNumericAtIndex(e&Xa,i,0)}getComputedString(e,t){return this.getComputedStringAtIndex(e&Xa,0)}setComputedString(e,t,i){return this.setComputedStringAtIndex(e&Xa,0,i)}getComputedNumericAtIndex(e,t){let i=e&Xa;return this._ensureNumeric(t,i),this._numerics[t][i]}setComputedNumericAtIndex(e,t,i){let r=e&Xa;this._ensureNumeric(t,r),this._numerics[t][r]=i}getPackedChunkId(e){let t=e&Xa;return this._ensureInstanceId(t),this._instanceIds[t]}setPackedChunkId(e,t){let i=e&Xa;this._ensureInstanceId(i),this._instanceIds[i]=t}getComputedStringAtIndex(e,t){let i=e&Xa;return this._ensureString(t,i),this._strings[t][i]}setComputedStringAtIndex(e,t,i){let r=e&Xa;this._ensureString(t,r),this._strings[t][r]=i}getXMin(e){return this._bounds[4*(e&Xa)]}getYMin(e){return this._bounds[4*(e&Xa)+1]}getXMax(e){return this._bounds[4*(e&Xa)+2]}getYMax(e){return this._bounds[4*(e&Xa)+3]}setBounds(e,t,i=!1){let r=e&Xa;if(!i&&!this._dirtyBitset.has(e))return this._bounds[4*r]!==mo;this._dirtyBitset.unset(e);let s=t.readGeometryWorldSpace();if(yo(this._bounds,4*r+4,0),!s||!s.coords.length)return this._bounds[4*r]=mo,this._bounds[4*r+1]=mo,this._bounds[4*r+2]=mo,this._bounds[4*r+3]=mo,!1;let n=1/0,a=1/0,o=-1/0,l=-1/0;return s.forEachVertex((e,t)=>{n=Math.min(n,e),a=Math.min(a,t),o=Math.max(o,e),l=Math.max(l,t)}),this._bounds[4*r]=n,this._bounds[4*r+1]=a,this._bounds[4*r+2]=o,this._bounds[4*r+3]=l,!0}getBounds(e,t){let i=this.getXMin(t),r=this.getYMin(t),s=this.getXMax(t),n=this.getYMax(t);return(0,Ba.BI)(e,i,r,s,n),i!==mo}_ensureNumeric(e,t){this._numerics[e]||(this._numerics[e]=[]),yo(this._numerics[e],t,0)}_ensureInstanceId(e){yo(this._instanceIds,e,0)}_ensureString(e,t){this._strings[e]||(this._strings[e]=[]),yo(this._strings[e],t,null)}}var go=i(58727),xo=i(62660),bo=i(86420),wo=i(97552),vo=i(30661);class So{constructor(e){this._geometryBounds=(0,H.vt)(),this._idToVisibility=new Map,this._serviceInfo=e}static async create(e){let t=new So(e);return await t.update(e.filterJSON,e.spatialReference),t}get hash(){return this._hash}check(e,t){return this._applyFilter(e,t)}invalidate(){this._idToVisibility.forEach((e,t)=>{this._idToVisibility.set(t,0)})}setKnownIds(e){for(let t of e)this._idToVisibility.set(t,1)}setTrue(e){let t=[],i=[],r=new Set(e);return this._idToVisibility.forEach((e,s)=>{let n=!!(1&this._idToVisibility.get(s)),a=r.has(s);!n&&a?t.push(s):n&&!a&&i.push(s),this._idToVisibility.set(s,a?3:0)}),{show:t,hide:i}}createQuery(){let{geometry:e,spatialRel:t,where:i,timeExtent:r,objectIds:s}=this;return wo.A.fromJSON({geometry:e,spatialRel:t,where:i,timeExtent:r,objectIds:s})}async update(e,t){this._hash=JSON.stringify(e);let i=await(0,go.T2)(e,null,t);await Promise.all([this._setGeometryFilter(i),this._setIdFilter(i),this._setAttributeFilter(i),this._setTimeFilter(i)])}async _setAttributeFilter(e){e?.where?(this._clause=await po(e.where,this._serviceInfo.fieldsIndex),this.where=e.where):(this._clause=null,this.where=null)}_setIdFilter(e){this._idsToShow=e?.objectIds&&new Set(e.objectIds),this._idsToHide=e?.hiddenIds&&new Set(e.hiddenIds),this.objectIds=e?.objectIds}async _setGeometryFilter(e){if(!e?.geometry)return this._spatialQueryOperator=null,this.geometry=null,void(this.spatialRel=null);let t=e.geometry,i=e.spatialRel??"esriSpatialRelIntersects",r=await(0,xo.xt)(i,t,this._serviceInfo.geometryType);(0,ot.Rg)(this._geometryBounds,t),this._spatialQueryOperator=r,this.geometry=t,this.spatialRel=i}_setTimeFilter(e){if(this.timeExtent=this._timeOperator=null,e?.timeExtent)if(this._serviceInfo.timeInfo)this.timeExtent=e.timeExtent,this._timeOperator=(0,bo.I)(this._serviceInfo.timeInfo,e.timeExtent,vo.Z.Shared);else{let t=new r.A("feature-layer-view:time-filter-not-available","Unable to apply time filter, as layer doesn't have time metadata.",e.timeExtent);Ot.A.getLogger("esri.views.2d.layers.features.controllers.FeatureFilter").error(t)}}_applyFilter(e,t){return this._filterByGeometry(e)&&this._filterById(e)&&this._filterByTime(e)&&this._filterByExpression(e,t)}_filterByExpression(e,t){return!this.where||this._clause(e,t)}_filterById(e){return(!this._idsToHide?.size||!this._idsToHide.has(e.getObjectId()))&&(!this._idsToShow?.size||this._idsToShow.has(e.getObjectId()))}_filterByGeometry(e){if(!this.geometry)return!0;let t=e.readGeometryWorldSpace();return!!t&&this._spatialQueryOperator(t)}_filterByTime(e){return null==this._timeOperator||this._timeOperator(e)}}var Io=i(75538),Mo=i(24506);class Co{constructor(e,t){this.inner=e,this.displayId=t}}class ko{constructor(e,t,i){this.level=e,this._scale=t,this._context=i,this._statistics=new Map,this._handledChunks=new Set,this._handledIds=new Set,this._cells=new Map,this._clusters=new Map}destroy(){this._clearClusters()}_clearClusters(){for(let e of this._clusters.values())this._context.attributeStore.releaseDisplayIdForObjectId(e.inner.id);this._clusters.clear()}invalidate(){this._cells.clear(),this._handledChunks.clear(),this._handledIds.clear()}removeTile(e){}*aggregatesWorldSpace(){for(let e of this._clusters.values()){let t=e.inner.getCentroid(null);yield new Wa.Om(t,e.inner.getAttributes(),null,e.inner.id,e.displayId)}}clusters(){return this._clusters.values()}getDisplayIds(e){let t=new Set(e),i={};for(let e of this._clusters.values())if(t.has(e.inner.id))i[e.inner.id]=e.displayId;else if(1===e.inner.count){let{firstObjectId:r}=e.inner;null!=r&&t.has(r)&&(i[r]=e.displayId)}return i}getDisplayFeatures(e){let t=new Set(e),i=new Set,r=[],s=[];for(let e of this.aggregatesWorldSpace())if(t.has(e.displayId)&&!i.has(e.displayId)){let t=(0,rt.oN)(e,this._context.metadata.geometryType,!1,!1);if(i.add(e.displayId),1===t.attributes.cluster_count){r.push({...t,displayId:e.displayId});continue}s.push({...t,displayId:e.displayId})}return{features:r,aggregates:s,tracks:[]}}getFeatureObjectIdsForAggregate(e){for(let t of this._clusters.values())if(t.inner.id===e){let e=[];for(let i of t.inner.containedObjectIds)for(let t of i.values())e.push(t);return e}return[]}forEachAggregateWorldSpace(e){for(let t of this.aggregatesWorldSpace())e(t)}update(e,t){let i=!1,r=new $a({...this._context.indexOptions,scale:this._scale});for(let t of e)this._handledChunks.has(t.normalizedChunkId)||(this._handledChunks.add(t.normalizedChunkId),null!=t.lodInfo&&t.lodInfo.level!==this.level)||(t.getGridIndex(r).put(this._cells,this._handledIds),i=!0);let s=(0,Mo.p)(this._context.indexOptions.spatialReference,this._scale),n=this._context.indexOptions.cellSize,a={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0};for(let{subscription:e}of t){let t=e.tile.bounds,i=Math.floor(t[0]*s/n),r=Math.floor(t[1]*s/n),o=Math.ceil(t[2]*s/n),l=Math.ceil(t[3]*s/n);a.xMin=Math.min(a.xMin,i),a.yMin=Math.min(a.yMin,r),a.xMax=Math.max(a.xMax,o),a.yMax=Math.max(a.yMax,l)}(null==this._lastCellBounds||a.xMin!==this._lastCellBounds.xMin||a.xMax!==this._lastCellBounds.xMax||a.yMin!==this._lastCellBounds.yMin||a.yMax!==this._lastCellBounds.yMax)&&(this._lastCellBounds=a,i=!0),i&&this._clusterCells(a)}async updateStatistics(){let e=!1;for(let t of this._clusters.values())t.inner.count>1&&(e=this._updateAggregateStatistics(this._statistics,t.inner)||e);if(e){let e=Array.from(this._statistics.entries()).map(([e,t])=>({fieldName:e,minValue:t.minValue,maxValue:t.maxValue}));await this._context.connection.container.updateStatistics(this.level,e)}}createMessages(e,t,i,r){let s=this._createAggregateFeatures(e);r(),e.done=e.done||!i;let a=s.getCursor(),o=e.subscription.tile.createArcadeEvaluationOptions(this._context.indexOptions.arcadeContextInfo);for(;a.next();)this._context.attributeStore.setAttributeData(a.getDisplayId(),a,o,this._context.sqlOptions);return(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterStrategy._update`,{done:e.done}),[new Pa(e.subscription,s,e.done,{})]}_createAggregateFeatures(e){let t=e.subscription,i=[],r=t.tile.transform,s=Array.from(this._clusters.values()),a=s.length;for(let e of s){let t=e.inner.getCentroidX(r),s=e.inner.getCentroidY(r),n=1===e.inner.count?e.inner.firstObjectId:e.inner.id,a=e.displayId;if(t<640&&t>=-128&&s<640&&s>=-128){let r=new st.A([],[t,s]),o=new Wa.Om(r,e.inner.getAttributes(),null,n,a);i.push(o)}}let o=Ra.K.fromOptimizedFeatures(i,this._context.metadata,t.tile.transform);return(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterLevelState.createAggregateFeatures`,{clusters:o,levelClusterCount:a}),o}_clusterCells(e){let t=this._clusters;this._clusters=new Map;let i=this._context.clusterRadius*(1/(0,Mo.p)(this._context.indexOptions.spatialReference,this._scale)),r=Array.from(this._cells.values());r=r.sort((e,t)=>t.count-e.count);let s=new Set;for(let t of r){if(s.has(t.id)||t.gridX<e.xMin||t.gridX>e.xMax||t.gridY<e.yMin||t.gridY>e.yMax)continue;let r=1+this._context.clusterRadius/this._context.indexOptions.cellSize,n=this._context.attributeStore.createDisplayIdForObjectId(t.id),a=new Co(t.clone(),n);s.add(t.id),this._clusters.set(t.id,a);let o=t.centroidXWorld,l=t.centroidYWorld;for(let e=t.gridY-r;e<=t.gridY+r;e++)for(let n=t.gridX-r;n<=t.gridX+r;n++){if(e===t.gridY&&n===t.gridX)continue;let r=this._cells.get(Io.L.createId(n,e));if(!r||s.has(r.id))continue;let u=Math.abs(r.centroidXWorld-o),h=Math.abs(r.centroidYWorld-l);u<i&&h<i&&(a.inner.merge(r),s.add(r.id))}}for(let e of t.values())this._context.attributeStore.releaseDisplayIdForObjectId(e.inner.id)}_updateAggregateStatistics(e,t){let i=!1;for(let r of t.statistics.values()){if("esriFieldTypeString"===r.field.type)continue;let t=r.value,s=r.field,n=e.get(s.name);if(n){let{minValue:e,maxValue:r}=n,s=Math.min(n.minValue,t),a=Math.max(n.maxValue,t);(e!==s||r!==a)&&(n.minValue=s,n.maxValue=a,i=!0)}else e.set(s.name,{minValue:t,maxValue:t}),i=!0}return i}}class Ao extends Ia{constructor(e){super(e),this.didSend=!1,this.done=!1}}class Po{constructor(e,t,i,r,s,n,a){this.metadata=Ya.i.createFeature({geometryType:"esriGeometryPoint",hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"aggregateId"},fieldsIndex:new ri.A([...r,...s.metadata.fieldsIndex.fields,{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}]).toJSON(),globalIdField:null,spatialReference:s.metadata.spatialReference,outSpatialReference:s.metadata.outSpatialReference,attributeSpatialReference:null,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null}),this._clusterContext={connection:e,clusterRadius:t,indexOptions:i,attributeStore:n,metadata:this.metadata,sqlOptions:a}}createSendState(e){return new Ao(e)}createLevelState(e){return new ko(e.level,e.scale,this._clusterContext)}async applyOverrideUpdate(e,t){for(let e of t)e.invalidate();return null}afterUpdateLevelState(e,t,i){return e.updateStatistics()}}var To=i(77085),Fo=i(5808),Eo=i(52039),Ro=i(89056),Oo=i(92029);let Lo;class zo{constructor(e,t,i,r,s){this.chunkIndex=e,this.featureIndex=t,this.objectId=i,this.displayId=r,this.time=s}}class Do{static getOid(e){return Ie.xq+e}constructor(e,t,i,r){this._context=e,this.trackId=t,this.objectId=i,this.displayId=r,this._maxDisplayDuration=this._context.schema.maxDisplayDuration>0?this._context.schema.maxDisplayDuration:1/0,this._maxDisplayObservationsPerTrack=this._context.schema.maxDisplayObservationsPerTrack>=1?this._context.schema.maxDisplayObservationsPerTrack:1/0,this._observationRecords=[],this._nextObservationRecordsByObjectId=new Map,this._trackLinePath=[],this._bounds=[],this._trackLineGeometry=new st.A}get _trackLineAttributes(){let e={...this._latestObservationFeature?.attributes,aggregateId:this.objectId,[Ie.EA]:0};if(null!=this._statistics)for(let t of this._statistics.values())e[t.field.name]=t.value;return e}get _startTimeField(){return this._context.metadata.timeInfo?.startTimeField}get length(){return this._observationRecords.length}*observations(){yield*this._observationRecords}*previousObservations(){for(let e=0;e<this._observationRecords.length-1;e++)yield this._observationRecords[e]}get latestObservationFeature(){return this._latestObservationFeature}get latestObservationRecord(){return this._latestObservationRecord}stageObservation(e,t){let i=t.getObjectId();this._nextObservationRecordsByObjectId.delete(i),this._nextObservationRecordsByObjectId.set(i,new zo(e,t.getIndex(),i,t.getDisplayId(),null==this._startTimeField?null:t.readAttributeAsTimestamp(this._startTimeField)))}commitObservations(e,t,i){let r,s,n=Array.from(this._nextObservationRecordsByObjectId.values()),a=new Set(n.map(e=>e.objectId)),o=this._observationRecords.filter(e=>!a.has(e.objectId)).map(e=>e.objectId);switch(this._observationRecords=[],this._trackLinePath=[],!this._context.isStream&&null!=this._startTimeField&&n.sort((e,t)=>{let i=e.time,r=t.time;return null!=i&&null!=r?i-r:0}),this._context.schema.timeField){case"startTimeField":r=this._context.metadata.timeInfo?.startTimeField;break;case"endTimeField":r=this._context.metadata.timeInfo?.endTimeField;break;case"timeReceived":r=this._context.isStream?Ie.Aw:null}s=this._context.isStream?i?.end??Date.now():i?.end??-1/0;let l,u=t.map(e=>e.reader.getCursor());for(let e=n.length-1;e>=0&&!(this._observationRecords.length>=this._maxDisplayObservationsPerTrack);e--){let t=n[e],i=u[t.chunkIndex];(0,m.Lw)(i),i.setIndex(t.featureIndex);let a=null==r?null:i.readAttributeAsTimestamp(r);(null==a?0:s-a)>=this._maxDisplayDuration||(this._commitObservation(t,i),l??=t)}if(null!=l){let{chunkIndex:t,featureIndex:i}=l,r=`${l.objectId}.latest`,s=e.createDisplayIdForObjectId(r),n=u[t];(0,m.Lw)(n),n.setIndex(i);let a=new Wa.Om(n.readGeometryWorldSpace(),{...n.readAttributes(),[Ie.EA]:1},null,r,s);this._latestObservationFeature&&o.push(this._latestObservationFeature.objectId),this._latestObservationFeature=a,this._latestObservationRecord=l}else this._latestObservationFeature=null;return this._trackLineGeometry=function(e,t){if(e.length<2)return(0,rt.Ap)({paths:[e]},!1,!1);if(t.isWrappable){let i=!1;for(let r=1;r<e.length;r++){let s=e[r][0],n=(0,Eo.O7)(s,e[r-1][0],t);s!==n&&(e[r][0]=n,i=!0)}if(i){let i=(0,Ro.b3)({paths:[e],spatialReference:t});if(null!=i)return(0,rt.Ap)({paths:i.paths},!1,!1)}return(0,rt.Ap)({paths:[e]},!1,!1)}(0,m.Lw)(Lo);let i=Lo.fromGeometryToGXGeometry({hasM:!1,hasZ:!1,paths:[e]}),r=Lo.fromSpatialReference(t);if(null!=r){let e=(0,To.execute)(i,1e6,r,Fo.O.geodesic);if(null!=e){let t=Lo.toGeometry(e,r);if(null!=t&&"paths"in t)return(0,rt.Ap)({paths:t.paths},!1,!1)}}return(0,rt.Ap)({paths:[e]},!1,!1)}(this._trackLinePath,this._context.spatialReference),this._bounds=function(e){let{lengths:t,coords:i}=e;if(!t.length)return[(0,H.Ie)()];let r=[],s=0;for(let e=0;e<t.length;e++){let n=t[e],a=(0,H.Ie)();r.push(a);for(let e=0;e<n;e++){let t=i[2*(e+s)],r=i[2*(e+s)+1];(0,H.tK)(a,[t,r])}s+=n}return r}(this._trackLineGeometry),this._nextObservationRecordsByObjectId.clear(),o}updateStatistics(e,t){this._statistics=Oo.o.create(this._context.aggregateFields);let i=e.map(e=>e.reader.getCursor());for(let{chunkIndex:e,featureIndex:r}of this._observationRecords){let s=i[e];(0,m.Lw)(s),s.setIndex(r),this._statistics.insert(s,t)}}overlapsTile(e){for(let t of this._bounds)if((0,H.$9)(t,e.bounds,32))return!0;return!1}getLatestObservationFeatureForTile(e){if(null==this._latestObservationFeature)return null;let{objectId:t,displayId:i,geometry:r,attributes:s}=this._latestObservationFeature,n=(0,rt.Nl)(r,this._context.metadata.geometryType,e.subscription.tile.transform)??new st.A,a=(0,H.fA)(1/0,1/0,-1/0,-1/0);return function(e,t){let{coords:i,lengths:r}=e;if(!r.length)return void t(i[0],i[1]);let s=0;for(let e=0;e<r.length;e++){let n=r[e],a=0,o=0;for(let e=0;e<n;e++)a+=i[2*(e+s)],o+=i[2*(e+s)+1],t(a,o);s+=n}}(n,(e,t)=>(0,H.tK)(a,[e,t])),(0,H.HY)(a,(0,H.fA)(0,0,512,512))?new Wa.Om(n,s,null,t,i):null}getTrackLineFeatureForTile(e){let t=(0,rt.Nl)(this._trackLineGeometry,"esriGeometryPolyline",e.subscription.tile.transform)??new st.A;return new Wa.Om(t,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineOptimizedFeature(){return new Wa.Om(this._trackLineGeometry,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineDisplayFeature(){let{_trackLineGeometry:e,_trackLineAttributes:t,displayId:i}=this;return{geometry:(0,rt.zv)(e,"esriGeometryPolyline",!1,!1),attributes:t,displayId:i}}_commitObservation(e,t){let i=t.readCentroidWorldSpace(),r=i?.coords[0],s=i?.coords[1];i??(r=t.readXWorldSpace(),s=t.readYWorldSpace()),null!=r&&null!=s&&(this._observationRecords.unshift(e),this._trackLinePath.unshift([r,s]))}}var No=i(52350);class Bo{constructor(e,t){this.level=e,this._context=t,this._chunks=[],this._tracks=new Map,this._handledChunks=new Set}destroy(){this._clear()}invalidate(){}removeTile(e){}update(e,t){let i=this._chunks,r=this._tracks,s=this._handledChunks;this._chunks=e,this._tracks=new Map,this._handledChunks=new Set,this._rebuildTracks(e),this._releaseState(i,r,s)}getDisplayIds(e){let t=new Set(e),i={};for(let e of this._tracks.values()){if(t.has(e.objectId)){i[e.objectId]=e.displayId;continue}let r=e.latestObservationFeature;if(null!=r?.objectId&&t.has(r.objectId))i[r.objectId]=r.displayId;else for(let r of e.observations())null!=r.objectId&&t.has(r.objectId)&&(i[r.objectId]=r.displayId)}return i}getDisplayFeatures(e){let t=new Set(e),i=[],r=[],s=this._chunks.map(e=>e.reader.getCursor());for(let e of this._tracks.values()){if(t.has(e.displayId)&&r.push(e.getTrackLineDisplayFeature()),null!=e.latestObservationFeature&&t.has(e.latestObservationFeature.displayId)){let{displayId:t,chunkIndex:r,featureIndex:n}=e.latestObservationRecord,a=s[r];a.setIndex(n),i.push({displayId:t,...a.readLegacyFeatureWorldSpace()})}for(let{displayId:r,chunkIndex:n,featureIndex:a}of e.observations())if(t.has(r)){let e=s[n];e.setIndex(a),i.push({displayId:r,...e.readLegacyFeatureWorldSpace()})}}return{features:i,aggregates:[],tracks:r}}getFeatureObjectIdsForAggregate(e){for(let t of this._tracks.values())if(t.objectId===e)return Array.from(t.observations(),e=>e.objectId);return[]}forEachAggregateWorldSpace(e){for(let t of this._tracks.values())e(t.getTrackLineOptimizedFeature())}createMessages(e,t,i,r){e.done=e.done||!i;let s=[],n=[];for(let t of this._tracks.values())if(t.length>0){if(this._context.schema.showLatestObservation){let i=t.getLatestObservationFeatureForTile(e);null!=i&&s.push(i)}this._context.schema.showTrackLine&&t.overlapsTile(e.subscription.tile)&&n.push(t.getTrackLineFeatureForTile(e))}let a=Ra.K.fromOptimizedFeatures(s,this._context.metadata,e.subscription.tile.transform),o=Ra.K.fromOptimizedFeatures(n,this._context.trackLineMetadata,e.subscription.tile.transform),l=[];if(this._context.schema.showPreviousObservations){let t=this._chunks.map(()=>[]);for(let e of this._tracks.values())for(let{chunkIndex:i,featureIndex:r}of e.previousObservations())t[i].push(r);l=this._chunks.map((i,r)=>{let s,n=e.subscription.tile;if("esriGeometryPolygon"===this._context.metadata.geometryType){let e=i.queryFeaturesInBounds(n.bounds);e.setTransformForDisplay(n.transform),s=e}else s=i.getTileReader(n);if(null==s)return null;let a=No.e.from(s,t[r]);return a.setProcessorAttributes({[Ie.EA]:2}),("esriGeometryPoint"===a.geometryType||null==a.getInTransform())&&a.setTransformForDisplay(e.subscription.tile.transform),a}).filter(ca.Ru)}r();let u=e.subscription.tile.createArcadeEvaluationOptions(this._context.arcadeContextInfo),h=o.getCursor();for(;h.next();)this._context.attributeStore.setAttributeData(h.getDisplayId(),h,u,this._context.sqlOptions);for(let e of l){let t=e.getCursor();for(;t.next();)this._context.attributeStore.setAttributeData(t.getDisplayId(),t,u,this._context.sqlOptions)}let c=a.getCursor();for(;c.next();)this._context.attributeStore.setAttributeData(c.getDisplayId(),c,u,this._context.sqlOptions);return[new Pa(e.subscription,o,!1,{}),...l.map(t=>new Pa(e.subscription,t,!1,{})),new Pa(e.subscription,a,e.done,{})]}_clear(){this._releaseState(this._chunks,this._tracks,this._handledChunks),this._chunks=[],this._tracks.clear(),this._handledChunks.clear()}_rebuildTracks(e){if(!e.length)return;let t=this._context.metadata.timeInfo?.trackIdField;if(null!=t){for(let i=0;i<e.length;i++){let r=e[i];if(null!=r.lodInfo&&r.lodInfo.level!==this.level||this._handledChunks.has(r.chunkId))continue;this._handledChunks.add(r.chunkId);let s=r.reader.getCursor();for(;s.next();){let e=s.getObjectId();s.setDisplayId(this._context.attributeStore.createDisplayIdForObjectId(e));let r=s.readAttribute(t);if(null!=r&&null!=e&&(null===this._context.featureFilter||this._context.featureFilter.check(s,this._context.sqlOptions))){if(!this._tracks.has(r)){let e=Do.getOid(r),t=this._context.attributeStore.createDisplayIdForObjectId(e),i=new Do(this._context,r,e,t);this._tracks.set(r,i)}this._tracks.get(r).stageObservation(i,s)}}}for(let t of this._tracks.values()){let i=t.commitObservations(this._context.attributeStore,e,this._context.featureFilter?.timeExtent);for(let e of i)this._context.attributeStore.releaseDisplayIdForObjectId(e);t.updateStatistics(e,(0,Ea.N)(1,this._context.arcadeContextInfo))}}}_releaseState(e,t,i){for(let t of e)if(i.has(t.chunkId)){let e=t.reader.getCursor();for(;e.next();){let t=e.getObjectId();this._context.attributeStore.releaseDisplayIdForObjectId(t)}}for(let e of t.values())this._releaseTrack(e)}_releaseTrack(e){this._context.attributeStore.releaseDisplayIdForObjectId(e.objectId),null!=e.latestObservationFeature&&this._context.attributeStore.releaseDisplayIdForObjectId(e.latestObservationFeature.objectId)}}class qo extends Ia{constructor(e){super(e),this.done=!1}}class Go{constructor(e,t,i,r,s,n,a,o){let l=t.metadata.weakCloneWithAdditionalFields([{name:Ie.EA,alias:"trackPart",type:"esriFieldTypeSmallInteger"}]),u=t.metadata.fieldsIndex.toJSON();u.fields.push(...s,{name:Ie.EA,alias:"trackPart",type:"esriFieldTypeSmallInteger"},{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"});let h=Ya.i.createFeature({geometryType:"esriGeometryPolyline",featureIdInfo:{type:"object-id",fieldName:"aggregateId"},fieldsIndex:u,globalIdField:null,spatialReference:t.metadata.spatialReference,outSpatialReference:t.metadata.outSpatialReference,attributeSpatialReference:null,subtypeField:null,subtypes:null,timeInfo:t.metadata.timeInfo,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null,hasZ:!1,hasM:!1});this.metadata=l,this._trackContext={schema:e,source:t,attributeStore:i,spatialReference:r,metadata:l,trackLineMetadata:h,aggregateFields:s,arcadeContextInfo:a,sqlOptions:o,featureFilter:n,isStream:t.isStream}}createSendState(e){return new qo(e)}createLevelState(e){return new Bo(e.level,this._trackContext)}async applyOverrideUpdate(e,t){return Ot.A.getLogger("esri.views.2d.layers.features.processor.TrackStrategy").error("Applying override to tracks is not supported"),null}afterUpdateLevelState(e,t,i){}}async function Uo(e,t,r,s,n,a){switch(t.type){case"feature":return new La(r,s,n,a);case"binning":return async function(e,t,i,r,s){let n=t.metadata.outSpatialReference,a=new _o({spatialReference:n}),o=await Promise.all(e.fields.map(async e=>Da.create(a,e))),l=e.featureFilter?await So.create({geometryType:t.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:t.metadata.timeInfo,fieldsIndex:t.metadata.fieldsIndex,spatialReference:n,filterJSON:e.featureFilter}):null;"geohash"===e.index.type&&await(0,b.Nk)(n,za.A.WGS84);let u=new Ha(e,l,r,o,n,t,i,s);return new Ua(t,i,n,o,s,u)}(t,r,s,n,a);case"cluster":return async function(e,t,i,r,s,n){let a=i.metadata.outSpatialReference,o=new _o({spatialReference:a}),l=await Promise.all(t.fields.map(async e=>Da.create(o,e))),u={type:"grid",fields:l,spatialReference:a,featureFilter:t.featureFilter?await So.create({geometryType:i.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:i.metadata.timeInfo,fieldsIndex:i.metadata.fieldsIndex,spatialReference:a,filterJSON:t.featureFilter}):null,cellSize:t.clusterRadius/4,arcadeContextInfo:s,sqlOptions:n},h=new Po(e,t.clusterRadius,u,t.fields,i,r,n);return new Ua(i,r,u.spatialReference,l,n,h)}(e,t,r,s,n,a);case"track":return async function(e,t,r,s,n){let a=t.metadata.outSpatialReference,o=new _o({spatialReference:a}),l=await Promise.all(e.fields.map(async e=>Da.create(o,e))),u=e.featureFilter?await So.create({geometryType:t.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:t.metadata.timeInfo,fieldsIndex:t.metadata.fieldsIndex,spatialReference:a,filterJSON:e.featureFilter}):null;await async function(e){if(e.isWrappable||null!=Lo)return;let[t,r]=await Promise.all([Promise.all([i.e(9187),i.e(8885),i.e(9117),i.e(3299),i.e(8125)]).then(()=>i(78125)),Promise.all([i.e(9187),i.e(8885),i.e(9117),i.e(3299)]).then(()=>i(83299)),(0,To.load)()]);Lo={fromGeometryToGXGeometry:r.fromGeometryToGXGeometry,toGeometry:r.toGeometry,fromSpatialReference:t.fromSpatialReference}}(a);let h=new Go(e,t,r,a,l,u,s,n);return new Ua(t,r,a,l,n,h)}(t,r,s,n,a)}}var Wo=i(69397);class Vo{constructor(e){this.data=e,this._referenceCount=0}static{this.estimatedMemory=20}increment(){this._referenceCount+=1}decrement(){--this._referenceCount}get empty(){return 0===this._referenceCount}}class jo{constructor(){this._freeIdsGenerationA=[],this._freeIdsGenerationB=[],this._idCounter=1,this._freeIds=this._freeIdsGenerationA,this._objectIdToDisplayId=new Map}get usedMemory(){let e=0;return e+=(0,Wo.Qf)(this._freeIdsGenerationA),e+=(0,Wo.Qf)(this._freeIdsGenerationB),e+=this._objectIdToDisplayId.size*(Vo.estimatedMemory+8),e}createIdForObjectId(e){let t=this._objectIdToDisplayId.get(e);return t?t.increment():(t=new Vo(function(e){return(0|e)>>>0}(this._getFreeId())),t.increment(),this._objectIdToDisplayId.set(e,t)),t.data}releaseIdForObjectId(e){let t=this._objectIdToDisplayId.get(e);t&&(t.decrement(),t.empty&&(this._objectIdToDisplayId.delete(e),this._freeIds.push(t.data)))}getDisplayIdForObjectId(e){let t=this._objectIdToDisplayId.get(e);return null==t?null:t.data}releaseAll(){for(let e of this._objectIdToDisplayId.values())this._freeIds.push(e.data);this._objectIdToDisplayId.clear()}incrementGeneration(){this._freeIds=this._freeIds===this._freeIdsGenerationA?this._freeIdsGenerationB:this._freeIdsGenerationA}_getFreeId(){return this._freeIds.length?this._freeIds.pop():this._idCounter++}}const Yo=()=>Ot.A.getLogger("esri.views.layers.2d.features.support.AttributeStore"),$o=(Yo(),()=>null),Ho=(0,n.A)("esri-shared-array-buffer");(0,n.A)("esri-atomics");class Xo{constructor(e,t,i){this.size=0,this.texelSize=4,this.dirtyStart=0,this.dirtyEnd=0;let{pixelType:r,layout:s,textureOnly:n}=t;this.textureOnly=n||!1,this.pixelType=r,this.layout=s,this._resetRange(),this.size=e,this.isLocal=i,n||(this.data=this._initData(r,e))}get usedMemory(){return this.data?.byteLength??0}get buffer(){return this.data?.buffer}unsetComponentAllTexels(e,t){let i=this.data;for(let r=0;r<this.size*this.size;r++)i[r*this.texelSize+e]&=~t;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponentAllTexels(e,t){let i=this.data;for(let r=0;r<this.size*this.size;r++)i[r*this.texelSize+e]|=255&t;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponent(e,t,i){let r=this.data;for(let s of i)r[s*this.texelSize+e]|=t,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s)}setComponentTexel(e,t,i){this.data[i*this.texelSize+e]|=t,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}unsetComponentTexel(e,t,i){this.data[i*this.texelSize+e]&=~t,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}getData(e,t){let i=Za(e);return this.data[i*this.texelSize+t]}setData(e,t,i){let r=Za(e),s=1<<t;0===(this.layout&s)?Yo().error("mapview-attributes-store","Tried to set a value for a texel's readonly component"):null!=this.data&&(this.data[r*this.texelSize+t]=i,this.dirtyStart=Math.min(this.dirtyStart,r),this.dirtyEnd=Math.max(this.dirtyEnd,r))}expand(e){if(this.size=e,!this.textureOnly){let t=this._initData(this.pixelType,e),i=this.data;t.set(i),this.data=t}}toMessage(){let e=this.dirtyStart,t=this.dirtyEnd,i=this.texelSize;if(e>t)return null;this._resetRange();let r=!this.isLocal,s=this.pixelType,n=this.layout,a=this.data;return{start:e,end:t,data:r&&a.slice(e*i,(t+1)*i)||null,pixelType:s,layout:n}}_initData(e,t){let i=ArrayBuffer,s=(e=>{switch(e){case Xi.ld.UNSIGNED_BYTE:return Uint8Array;case Xi.ld.UNSIGNED_SHORT_4_4_4_4:return Uint16Array;case Xi.ld.FLOAT:return Float32Array;default:return void Yo().error(new r.A("webgl-utils",`Unable to handle type ${e}`))}})(e),n=new s(new i(t*t*4*s.BYTES_PER_ELEMENT));for(let e=0;e<n.length;e+=4)n[e+1]=255;return n}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}}class Zo{constructor(e){this._client=e,this._filters=[],this._blocks=[],this._attributeComputeInfo=null,this._abortController=new AbortController,this._size=256,this._arcadeDependencies=new Set,this._initialized=!1,this.version=0,this._idGenerator=new jo,this._epoch=1}destroy(){this._abortController.abort()}_initialize(){if(null!=this._blockDescriptors)return;let e=Xi.ld.FLOAT;$o(`Creating AttributeStore ${Ho?"with":"without"} shared memory`),this._blockDescriptors=[{pixelType:Xi.ld.UNSIGNED_BYTE,layout:1},{pixelType:Xi.ld.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:Xi.ld.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:e,layout:15},{pixelType:e,layout:15},{pixelType:e,layout:15},{pixelType:e,layout:15},{pixelType:Xi.ld.FLOAT,layout:15}],this._blocks=this._blockDescriptors.map(()=>null)}get usedMemory(){let e=0;for(let t of this._blocks)t&&(e+=t.usedMemory);return e+=this._idGenerator.usedMemory,e}createDisplayIdForObjectId(e){return this._idGenerator.createIdForObjectId(e)}releaseDisplayIdForObjectId(e){return this._idGenerator.releaseIdForObjectId(e)}getDisplayIdForObjectId(e){return this._idGenerator.getDisplayIdForObjectId(e)}incrementDisplayIdGeneration(){this._idGenerator.incrementGeneration()}hasArcadeDependency(e){return this._arcadeDependencies.has(e)}releaseAllIds(){this._idGenerator.releaseAll()}async update(e,t,i,r=0){let s=(0,_.Ui)(this._schema,e);if(this.version=r,s&&((0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${r}] AttributeStore.update`,{changed:s}),this._schema=e,this._attributeComputeInfo=null,this._matcherFilter=void 0,this._initialize(),null!=e))if(i&&(this._filters=await Promise.all(e.filters.map(async({bitIndex:e,filters:t})=>({bitIndex:e,evaluators:await Promise.all(t.map(e=>So.create({geometryType:i.geometryType,hasM:!1,hasZ:!1,timeInfo:i.timeInfo,fieldsIndex:i.fieldsIndex,spatialReference:i.outSpatialReference,filterJSON:e})))})))),"simple"===e.type&&e.matcherFilter&&(this._matcherFilter=await t.createComputedField(e.matcherFilter),this._updateReferences(this._matcherFilter)),"multi"===e.type){this._attributeComputeInfo={type:"multi",keyField:e.keyField,map:new Map};for(let i in e.bindings){let r=e.bindings[i];await Promise.all(r.map(async e=>{let r=await this._bind(t,e,parseInt(i,10));this._updateReferences(r)}))}}else this._attributeComputeInfo={type:"feature",map:new Map},await Promise.all(e.bindings.map(async e=>{let i=await this._bind(t,e);this._updateReferences(i)}))}setData(e,t,i,r){let s=Za(e);this._ensureSizeForTexel(s),this._getBlock(t).setData(e,i,r)}getData(e,t,i){return this._getBlock(t).getData(e,i)}unsetAttributeData(e){let t=Za(e);this._getBlock(0).setData(t,0,0)}referencesScale(){if(this._matcherFilter?.hasArcadeDependency("scale"))return!0;let e=this._attributeComputeInfo;if(!e)return!1;if("multi"===e.type){for(let t of e.map.values())for(let{field:e}of t.values())if(e?.hasArcadeDependency("scale"))return!0}else for(let{field:t}of e.map.values())if(t?.hasArcadeDependency("scale"))return!0;return!1}setAttributeData(e,t,i,r){let s=Za(e);this._ensureSizeForTexel(s);let n=this.getFilterFlags(t,r);this._passesMatcherFilter(t,i)||(n&=-65),this._getBlock(0).setData(s,0,n);let a=this._attributeComputeInfo,o=null;a&&(o="multi"===a.type?a.map.get(t.readAttribute(a.keyField)):a.map,o?.size&&o.forEach((e,r)=>{let n=1*r%4,a=Math.floor(1*r/4),o=this._getBlock(a+3),l=e.field?.read(t,i);e.valueRepresentation&&(l=function(e,t){if(!e||!t)return e;switch(t){case"radius":case"distance":return 2*e;case"diameter":case"width":return e;case"area":return Math.sqrt(e)}return e}(l,e.valueRepresentation)),(null===l||isNaN(l)||l===1/0||l===-1/0)&&(l=1e-30),o.setData(s,n,l)}))}get epoch(){return this._epoch}sendUpdates(){let e=this._blocks.map(e=>null==e?null:e.toMessage()),t=this._getInitArgs();this._client.update({initArgs:t,blockData:e,version:this.version,sendUpdateEpoch:this._epoch}),this._epoch+=1}_ensureSizeForTexel(e){for(;e>=this._size*this._size;)if(this._expand())return}async _bind(e,t,i){let r=await e.createComputedField(t),{valueRepresentation:s}=t,n=this._attributeComputeInfo;if("multi"===n.type){let e=n.map.get(i)??new Map;e.set(t.binding,{field:r,valueRepresentation:s}),n.map.set(i,e)}else n.map.set(t.binding,{field:r,valueRepresentation:s});return r}_getInitArgs(){return this._initialized?null:(this._initialized=!0,this._getBlock(1),this._getBlock(2),this._getBlock(7),{blockSize:this._size,blockDescriptors:this._blocks.map(e=>null==e?null:{textureOnly:e.textureOnly,buffer:e.buffer,pixelType:e.pixelType})})}_getBlock(e){let t=this._blocks[e];if(null!=t)return t;$o(`Initializing AttributeBlock at index ${e}`);let i=new Xo(this._size,this._blockDescriptors[e],this._client.isLocal);return this._blocks[e]=i,this._initialized=!1,i}_expand(){if(this._size<this._schema.capabilities.maxTextureSize){let e=this._size<<=1;$o("Expanding block size to",e,this._blocks);for(let t of this._blocks)t?.expand(e);return this._initialized=!1,this._size=e,0}return Yo().error(new r.A("mapview-limitations","Maximum number of onscreen features exceeded.")),-1}_updateReferences(e){(0,si.QY)(this._arcadeDependencies,e)}_passesMatcherFilter(e,t){if(void 0===this._matcherFilter)return!0;if(null===this._matcherFilter)return!1;let i=this._matcherFilter.read(e,t);return null!=i&&!isNaN(i)&&i!==1/0&&i!==-1/0&&i>=-(2**53-1)&&i<=2**53-1}isVisible(e){return!!(64&this._getBlock(0).getData(e,0))}getFilterFlags(e,t){let i=192;for(let{bitIndex:r,evaluators:s}of this._filters){let n=1<<r;s.some(i=>i.check(e,t))?i|=n:i&=~n}return i}}class Qo{constructor(e,t){this._connection=e,this._source=t,this._version=1,this._registry=new va;let i={fetch:(e,t)=>this._connection.layerView.fetch(e,t),fetchDictionary:(e,t)=>this._connection.layerView.fetchDictionary(e,t),fetchMesh:(e,t)=>this._connection.layerView.fetchMesh(e,t)},r={fetchGlyphs:async(e,t)=>{let i=[];if(await this._loaded,this._glyphProxy){let r=`${f.A.fontsUrl}/{fontstack}/{range}.pbf`;for(let s of e)i.push(this._glyphProxy.rasterizeText(r,s,t))}else console.error("Failed to fetch glyphs from worker: proxy not created");return Promise.all(i)}};this._proxy=new Ci(i,r),this._attributeStore=new Zo({isLocal:!1,update:e=>(0,c.oV)(this._connection.container.updateAttributeView(e))}),this._loaded=this._load(e)}destroy(){this._proxy.destroy(),this._strategy?.destroy(),this._attributeStore.destroy(),this._loaded.finally(()=>{this._glyphClient?.close(),this._glyphClient=null,this._glyphPorts?.forEach(e=>e.close())})}get hasClusters(){return"cluster"===this._schema?.mesh.strategy.type}get aggregateQueryEngine(){return this._strategy?.aggregateQueryEngine}get usedMemory(){let e=0;return e+=this._attributeStore.usedMemory,this._strategy&&(e+=this._strategy.usedMemory),e}get version(){return this._version}getDisplayFeatures(e){return this._strategy?this._strategy.getDisplayFeatures(e):{features:[],aggregates:[],tracks:[]}}getDisplayIds(e){return this._strategy?this._strategy.getDisplayIds(e):{}}getFeatureObjectIdsForAggregate(e){return this._strategy?this._strategy.getFeatureObjectIdsForAggregate(e):[]}onSubscribe(e){this._strategy?.onSubscribe(e)}onUnsubscribe(e){this._strategy?.onUnsubscribe(e)}requiresInvalidation(e){return this._strategy?.requiresInvalidation(e)??!1}async update(e,t,i,r,s){let a=e.processor,o=(0,y.i8)(this._schema?.storage,a.storage),l=(0,y.i8)(this._schema?.mesh.properties,a.mesh.properties),u=(0,y.i8)(this._schema?.mesh.factory,a.mesh.factory),h=(0,y.i8)(this._schema?.mesh.strategy,a.mesh.strategy),c=function(e,t){let i=[];return(e?.timeExtent?.start!==t.timeExtent?.start||e?.timeExtent?.end!==t.timeExtent?.end)&&i.push("timeProperties"),i}(this._schema?.expressionProperties,a.expressionProperties),d=c.some(e=>this._attributeStore.hasArcadeDependency(e)),p=c.some(e=>this._factory?.hasArcadeDependency(e)??!1),f=c.some(e=>this._strategy?.hasArcadeDependency(e))||this._strategy?.isAggregate&&d,m=p||f,g=l||u||h;if(!(o||g||p||d||f||r))return!1;if((0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${this._version}] SymbolProcessor.update`,{changes:(0,_.Ui)(this._schema,a),schema:a}),this._schema=a,"annotation-feature"===a.mesh.factory.symbology.type||"dimension-feature"===a.mesh.factory.symbology.type){let e=this._source.metadata.outSpatialReference,t=this._source.metadata.attributeSpatialReference??this._source.metadata.spatialReference??e;await(0,b.Nk)(t,e)}let x=new _o({fields:this._source.metadata.fieldsIndex,spatialReference:this._source.metadata.outSpatialReference}),w={currentUser:a.mesh.properties.currentUser};if((o||g||d)&&(await this._attributeStore.update(a.storage,x,this._source.metadata,t),this._strategy?.invalidateAttributeData(Ko(a))),!r&&!g&&!m)return!1;(h||l||m)&&await this._updateStrategy(a.mesh.strategy,s,Ko(a),w),this._updateSortKey(x,"sortKey"in a.mesh.properties?a.mesh.properties.sortKey:null);let v="dictionary"===a.mesh.factory.symbology.type?a.mesh.factory.symbology.fieldMap:null,S=new Sa(x,this._proxy,i,this._registry,v);return(u||"dictionary"===a.mesh.factory.symbology.type)&&(this._factory=await Si.create(S,a.mesh.factory)),this._version=t,!0}async applyOverrideUpdate(e,t){if(this._strategy)try{let i=await this._strategy.applyOverrideUpdate(e);i&&await this._process(i,t)}catch{}}async updateChunks(e,t,i){await this._doUpdateChunks(e,t,i),this._strategy?.afterUpdateChunks()}async removeChunks(e){this._strategy?.removeChunks(e),this._attributeStore.incrementDisplayIdGeneration()}invalidate(){this._strategy&&this._strategy.invalidate()}async _load(e){this._glyphPorts=await e.layerView.openGlyphPorts(),this._glyphClient=await(0,g.N1)(this._glyphPorts,{maxNumberOfConcurrentJobs:20}),this._glyphProxy=this._glyphClient.createInvokeProxy()}async _doUpdateChunks(e,t,i){if(this._strategy){try{let r=await this._strategy.updateChunks(e,t);r&&await this._process(r,i)}catch{}(0,n.A)("esri-2d-update-debug")&&console.log("SendUpdates"),this._attributeStore.sendUpdates(),(0,n.A)("esri-2d-update-debug")&&console.log("SendUpdates.await")}}async _updateStrategy(e,t,i,r){this._strategy?.destroy(),this._strategy=await Uo(this._connection,e,this._source,this._attributeStore,i,r);for(let e of t)this._strategy.onSubscribe(e)}async _updateSortKey(e,t){if(this._sortInfo=(0,m.pR)(this._sortInfo?.computed),null!=t){let i=t.byRenderer?null:await e.createComputedField(t);this._sortInfo={...t,computed:i}}}async _process(e,t){switch(e.type){case"level-replace":return this._processLevelBatch(e,t);case"append":case"update":return this._processStandardBatch(e,t)}}async _processLevelBatch(e,t){let i=await this._connection.container.beginLevelMeshUpdate(e.level);await this._processBatchMessages(e.messages,t),await this._connection.container.applyLevelMeshUpdate(i)}async _processStandardBatch(e,t){return this._processBatchMessages(e.messages,t)}async _processBatchMessages(e,t){for(let i of e){let e=i.subscription;if((0,n.A)("esri-2d-update-debug")){let t=e.tile;console.debug(`Version[${this._version}] Tile[${t.key.id}, end=${i.end}] Processor._process`)}let r={currentUser:this._schema?.mesh.properties.currentUser};await this._fetchResources(i,r),(0,o.Te)(e.signal);let s=await this._write(i,e.tile.createArcadeEvaluationOptions(Ko(this._schema)),r,t),a=e.tile.tileInfoView.getLODInfoAt(e.tile.key);(0,o.Te)(e.signal);let{message:l,transferList:u}=s.serialize(a),h={objectIdMap:null,inner:i.createMessage(l,this._version,this._attributeStore.epoch)};if(this._schema?.mesh.properties.returnMeshObjectId){h.objectIdMap={};let e=i.reader?.getCursor();if(e)for(;e.next();)h.objectIdMap[e.getDisplayId()]=e.getObjectId()}if((0,o.Te)(e.signal),await this._connection.container.onMessage(h,{signal:e.signal,transferList:u}),this._attributeStore.sendUpdates(),(0,n.A)("esri-2d-update-debug")){let t=e.tile;console.debug(`Version[${this._version}] Tile[${t.key.id}, end=${i.end}] Processor._process.await`)}}}async _fetchResources(e,t){await this._loaded,await this._fetchMatcherResources(e),await this._fetchWriterResources(e,t)}async _fetchMatcherResources(e){if(!e.reader)return;let t=e.subscription.tile.createArcadeEvaluationOptions(Ko(this._schema));return this._factory.enqueueMatcherRequests(this._proxy,e.reader,{scale:t.$view.scale,viewingMode:"2d"},e.id)}async _fetchWriterResources(e,t){if(!e.reader)return;let i=e.reader.getCursor(),r=e.subscription.tile.createArcadeEvaluationOptions(Ko(this._schema));for(;i.next();)this._factory.enqueueWriterRequests(this._proxy,i,r,t,e.id);await this._proxy.fetchEnqueuedResources()}async _write(e,t,i,r){let s=e.subscription.tile,n=e.reader?.getCursor(),a=n?.getSize()??0,l=s.tileInfoView.tileInfo.isWrappable,u=s.tileInfoView.spatialReference.isWGS84,h=this._schema?.mesh.factory.referenceScale,c=new ne(s.key,l,u,a);if(!n)return c;let d=function(e,t){let i=(0,x.Q1)(e),r=[];for(let e of t.rings){let t=[];for(let r of e)t.push([(0,x.IE)(i,r[0]),(0,x.B2)(i,r[1])]);r.push(t)}return{rings:r}}(s.transform,r),p=s.createArcadeEvaluationOptions(Ko(this._schema)),f=0;for(;n.next();){++f%1e3||(await(0,o.Pl)(0),(0,o.Te)(e.subscription));let r=this._getSortKeyValue(n,t);c.entityStart(n.getDisplayId(),r);try{this._factory.write(c,this._proxy,n,p,i,s.level,d,h)}catch{}c.entityEnd()}return c}_getSortKeyValue(e,t){if(!this._sortInfo)return 0;let{computed:i,order:r,byRenderer:s}=this._sortInfo,n=s?this._factory.getSortKey(e,t):i?.read(e,t);return null==n||isNaN(n)?0:n*("asc"===r?-1:1)}}function Ko(e){let{timeZone:t}=e?.mesh.properties??{},{timeExtent:i}=e?.expressionProperties??{};return{timeZone:t,timeExtent:i}}class Jo{static from(e){let t=0,i=0,r=0;return e.forEach(e=>{let s=e._readGeometry();s&&(i+=s.isPoint?1:s.lengths.reduce((e,t)=>e+t,0),r+=s.isPoint?1:s.lengths.length,t+=1)}),new Jo(t,i,r)}constructor(e,t,i){this.featureCount=e,this.vertexCount=t,this.ringCount=i}toJSON(){return{featureCount:this.featureCount,ringCount:this.featureCount,vertexCount:this.featureCount}}}let el=class extends L.A{constructor(e){super(),this._connection=e,this._enabledEventTypes=new Set,this._updateInfo={websocket:0,client:0},this._lastTime=performance.now(),this._queuedCommands=[],this.addHandles([(0,u.wB)(()=>this._strategy?.connectionStatus??"disconnected",e=>{this._layerView.setProperty({propertyName:"pipelineConnectionStatus",value:e})},{initial:!0}),(0,u.wB)(()=>this._strategy?.errorString||null,e=>this._layerView.setProperty({propertyName:"pipelineErrorString",value:e}),{initial:!0})])}destroy(){this._strategy=null,this.removeAllHandles()}get _layerView(){return this._connection.layerView}set strategy(e){this._strategy??this._resetUpdateInfo(performance.now());let t="event-handles";this.removeHandles(t),null!=e&&(this.addHandles([e.events.on("data-received",e=>this._onFeature(e)),e.events.on("message-received",e=>this._onWebSocketMessage(e)),e.events.on("features-updated",e=>this._onUpdate(e)),e.events.on("tick",()=>this._onTick())],t),this._queuedCommands.forEach(t=>t(e)),this._queuedCommands=[]),this._strategy=e}updateCustomParameters(e){null!=e&&this._callOrEnqueue(t=>t.updateCustomParameters(e))}sendMessageToSocket(e){this._callOrEnqueue(t=>t.sendMessageToSocket(e))}sendMessageToClient(e){this._callOrEnqueue(t=>t.sendMessageToClient(e))}enableEvent(e,t){t?this._enabledEventTypes.add(e):this._enabledEventTypes.delete(e)}disconnect(){this._strategy?.disconnect()}connect(){this._strategy?.connect()}clear(){this._strategy?.clear()}_onWebSocketMessage(e){this._enabledEventTypes.has("message-received")&&this._layerView.emitEvent({name:"message-received",event:e})}_onFeature(e){this._updateInfo.websocket++,this._enabledEventTypes.has("data-received")&&this._layerView.emitEvent({name:"data-received",event:{attributes:e.attributes,centroid:e.centroid,geometry:e.geometry}})}_onUpdate(e){this._updateInfo.client+=e}_onTick(){let e=performance.now(),t=e-this._lastTime;if(t>2500){let i=Math.round(this._updateInfo.client/(t/1e3)),r=Math.round(this._updateInfo.websocket/(t/1e3));this._resetUpdateInfo(e),this._layerView.emitEvent({name:"update-rate",event:{client:i,websocket:r}})}}_resetUpdateInfo(e){this._lastTime=e,this._updateInfo.client=0,this._updateInfo.websocket=0}_callOrEnqueue(e){null==this._strategy?this._queuedCommands.push(e):e(this._strategy)}};(0,O.Cg)([(0,N.MZ)()],el.prototype,"_strategy",void 0),el=(0,O.Cg)([(0,N.$K)("esri.views.2d.layers.features.sources.StreamMessenger")],el);class tl{constructor(){this._requiresInvalidation=!1}get requiresInvalidation(){return this._requiresInvalidation}requireInvalidation(){this._requiresInvalidation=!0}}class il{constructor(e,t,i){this._context=i,this._controller=new AbortController,this.metadata=Ya.i.createFeature(e),this._schema=t}destroy(){this._controller.abort(),this.store.destroy()}get store(){return this._context.store}get _connection(){return this._context.connection}get _options(){return{signal:this._controller.signal}}get _signal(){return this._controller.signal}async applyOverride(e){this._onOverride(),await this.store.applyOverride(e)}takeOverrideUpdate(){return this.store.takeOverrideUpdate()}unsafeSetQueryHistoricMoment(e){throw Error("InternalError: LoadStrategy does not support query info")}async queryByObjectId(e,t){throw Error("InternalError: LoadStrategy does not support fetching")}prepareCacheUpdate(e,t){}applyCacheUpdate(){return null}}var rl=i(13069),sl=i(28923);class nl{constructor(e,t,i,s){this.store=e,this.queryInfo=t,this._options=i,this._fetch=s,this._nextBatch=new Set,this._fetchFeatures=(0,o.sg)(async()=>{if(0===this._nextBatch.size||this._options.signal?.aborted)return;let e=Array.from(this._nextBatch);this._nextBatch.clear(),e.length>8e3&&Ot.A.getLogger("esri.views.2d.layers.FeatureLayerView2D").warn(new r.A("highlight-too-many-features","highlight is limited to 8000 features on large layers configured with a display filter to avoid performance issues"));let t=this.queryInfo.objectIdsQueryPageSize,i=Math.ceil(8e3/t),s=Math.min(i,Math.ceil(e.length/t)),n=Array.from({length:s},(i,r)=>{let s=r*t,n=Math.min(s+t,e.length);return{num:r,query:this.queryInfo.createObjectIdsQuery(e.slice(s,n))}});try{await async function(e,t,i,s={}){let n=(await Promise.allSettled(i.map(i=>async function(e,t,i,r={}){let s=`${e.chunkPrefix??""}${i.num}`,n=await e.fetch(i.query,r,{chunkId:s}),a=new sl.j(n,i.query.inner.toJSON(),i.num,!1);a.chunkId=a.normalizedChunkId=s,(0,o.Te)(r),t.insert(a)}(e,t,i,s)))).filter(e=>"rejected"===e.status).map(e=>e.reason);if(n.length)throw new r.A("featurelayer-query","Encountered errors when downloading data",{errors:n})}({chunkPrefix:"cache."+(0,rl.lk)(),fetch:this._fetch},this.store,n,this._options)}catch{}})}prepareCacheUpdate(e,t){if(t)for(let e of t)this._nextBatch.delete(e);for(let t of e)this._nextBatch.add(t)}applyCacheUpdate(){return 0===this._nextBatch.size||this._options.signal?.aborted?null:this._fetchFeatures().catch(()=>{})}}var al=i(56507),ol=i(563),ll=i(41560),ul=i(79677);class hl{static create(e,t,i){let r=t.queryScaleRanges,s=t.displayFilterInfo;return new hl(function(e,t,i){let r=function(e){switch(e.type){case"object-id":case"unique-id-simple":return`${e.fieldName} ASC`;case"unique-id-composite":return`${e.fieldNames.join(",")} ASC`}}(i.featureIdInfo);return{returnCentroid:"esriGeometryPolygon"===i.serviceGeometryType&&!e.queryMetadata.supportsCentroidOnDegeneratedQuantizedGeometry&&!e.queryMetadata.supportsDegeneratedQuantizedGeometry,returnGeometry:!0,returnZ:t.returnZ,returnM:t.returnM,timeReferenceUnknownClient:i.timeReferenceUnknownClient??void 0,outSpatialReference:za.A.fromJSON(e.outSpatialReference),orderByFields:"memory"===e.type?[]:[r],where:t.definitionExpression??"1=1",outFields:t.availableFields,multipatchOption:"esriGeometryMultiPatch"===i.serviceGeometryType?"xyFootprint":null,gdbVersion:t.gdbVersion,historicMoment:t.historicMoment?new Date(t.historicMoment):null,timeExtent:t.timeExtent?ul.A.fromJSON(t.timeExtent):null}}(e,t,i),s,r,i.subtypeField,t.customParameters,i.geometryType,e.queryMetadata)}static createParquet(e,t,i){return new hl({returnGeometry:!0,returnZ:t.returnZ,returnM:t.returnM,outSpatialReference:i.outSpatialReference,where:t.definitionExpression??"1=1",outFields:t.availableFields},t.displayFilterInfo,t.queryScaleRanges,i.subtypeField,t.customParameters,i.geometryType,e.queryMetadata)}constructor(e,t,i,r,s,n,a){this._queryParams=e,this._displayFilter=t,this._queryScaleRanges=i,this._subtypeField=r,this._customParameters=s,this._geometryType=n,this._queryMetadata=a}getPageSize(e){if(null==this._queryMetadata)throw Error("InternalError: Service does not support paged queries");let t=this._queryMetadata.supportsMaxRecordCountFactor?4:null,i=((e?this._queryMetadata.tileMaxRecordCount:this._queryMetadata.maxRecordCount)??this._queryMetadata.maxRecordCount??2e3)*(t??1),r=(0,n.A)("featurelayer-query-max-page-size")??8e3;return Math.min(r,i)}get objectIdsQueryPageSize(){return this._queryMetadata?.maxRecordCount??2e3}updateHistoricMoment(e){this._queryParams.historicMoment=e}updateFields(e){this._queryParams.outFields=e}createPatchFieldsQuery(e,t,i){if(!t.getSize())return null;let r=e.clone();if("*"===this._queryParams.outFields[0]){if("*"===(r.outFields??[])[0])return null;r.outFields=this._queryParams.outFields}else{let e=new Set(this._queryParams.outFields),i=[];for(let r of e)t.hasField(r)||i.push(r);if(0===i.length)return null;r.outFields=i}r.returnGeometry=!1,r.returnCentroid=!1,r.quantizationParameters=null,r.cacheHint=!!this._queryMetadata?.supportsCacheHint||void 0;let s={inner:r,customParameters:this._customParameters};if((0,n.A)("esri-tiles-debug")&&null!=i){let e=i.chunkId.toString().replaceAll("/",".");s.customParameters=s.customParameters?{...s.customParameters,chunkId:e}:{chunkId:e}}return s}createQuery(e={}){if(!this._queryParams)throw Error("InternalError: queryInfo should be defined");return{inner:new wo.A({...this._queryParams,...e}),customParameters:this._customParameters}}createTileQuery(e,t){if(null==this._queryMetadata)throw Error("InternalError: Service does not support tile queries");let i=this.createQuery(t),r=i.inner;if(this._queryScaleRanges?.length){let t=this._queryScaleRanges.filter(t=>(!t.minScale||t.minScale>=e.maxScale)&&(!t.maxScale||t.maxScale<=e.minScale)).map(e=>e.subtypeCode);if(!t.length)return null;let i=`${this._subtypeField} IN (${t})`;r.where=(0,eo.mA)(r.where,i)}if(this._displayFilter&&(r.where=(0,eo.mA)(r.where,(0,ll.Ch)(this._displayFilter,e.minScale,e.maxScale))),r.quantizationParameters=t.quantizationParameters??e.getQuantizationParameters(),r.resultType="tile",r.geometry=e.hydratedExtent,this._queryMetadata.supportsQuantization?"esriGeometryPolyline"===this._geometryType&&(r.maxAllowableOffset=e.resolution*(0,n.A)("feature-polyline-generalization-factor")):("esriGeometryPolyline"===this._geometryType||"esriGeometryPolygon"===this._geometryType)&&(r.maxAllowableOffset=e.resolution,"esriGeometryPolyline"===this._geometryType&&(r.maxAllowableOffset*=(0,n.A)("feature-polyline-generalization-factor"))),r.defaultSpatialReferenceEnabled=this._queryMetadata.supportsDefaultSpatialReference,r.compactGeometryEnabled=this._queryMetadata.supportsCompactGeometry,this._queryMetadata.supportsMaxRecordCountFactor&&(r.maxRecordCountFactor=4),(0,n.A)("esri-tiles-debug")){let t=e.id.replaceAll("/",".");i.customParameters=i.customParameters?{...i.customParameters,tileId:t}:{tileId:t}}return i}createPagedTileQuery(e,t){let i=this.getPageSize(!0);return this.createTileQuery(e,{start:i*t,num:i,returnExceededLimitFeatures:!0})}createPagedQuery(e,t){let i=this.getPageSize(!1);return this.createQuery({start:i*e,num:i,returnExceededLimitFeatures:!0,maxRecordCountFactor:4,quantizationParameters:t,cacheHint:!!this._queryMetadata?.supportsCacheHint||void 0})}createObjectIdsQuery(e){return this.createQuery({objectIds:e,outFields:["*"]})}}var cl=i(10382),dl=i(75321),pl=i(80893),fl=i(97633),ml=i(17155),yl=i(53655);const _l=(0,n.A)("featurelayer-snapping-density-sample-interval"),gl=(0,n.A)("featurelayer-snapping-density-max-vertices-per-feature"),xl=(0,n.A)("featurelayer-snapping-density-max-distance")**2,bl=268435455;class wl{constructor(){this.hasFeatures=!1,this.exceededTransferLimit=!1,this.hasZ=!1,this.hasM=!1,this.fieldCount=0,this.featureCount=0,this.idFieldIndices=[],this.transform=null,this.vertexCount=0,this.geometryDensity={sampleCount:0,densePairCount:0},this.offsets={attributes:[],geometry:[]},this.centroid=[],this.byReferenceVertexCounts=new Map}get usedMemory(){let e=0;return e+=(0,Wo.Qf)(this.idFieldIndices),e+=(0,Wo.Qf)(this.offsets.attributes),e+=(0,Wo.Qf)(this.offsets.geometry),e+=(0,Wo.Qf)(this.centroid),this.displayIds&&(e+=(0,Wo.Qf)(this.displayIds)),this.groupIds&&(e+=(0,Wo.Qf)(this.groupIds)),e}get stride(){return 2+Number(this.hasZ)+Number(this.hasM)}}function vl(e,t,i){let r=e.asUnsafe(),s=0,n=0,a=0;for(;r.pos()<t&&r.next();)switch(r.tag()){case 2:{let e=r.getPackedEnd();s=r.pos()<e?r.getUInt32():0,r.move(e);break}case 3:a=r.getPackedEnd(),n=r.pos(),r.move(a);break;default:r.skip()}if(s<2||!n)return;let{stride:o,geometryDensity:l}=i,u=Math.min(s,gl);r.move(n);for(let e=0;e<u&&r.pos()<a;e++){let t=r.getSInt64(),i=r.getSInt64();for(let e=2;e<o;e++)r.getSInt64();e>0&&(l.sampleCount++,t*t+i*i<=xl&&l.densePairCount++)}}const Sl=128e3,Il={small:{delta:new Int32Array(128),decoded:new Int32Array(128)},small64:{delta:new Float64Array,decoded:new Float64Array},large:{delta:new Int32Array(Sl),decoded:new Int32Array(Sl)},large64:{delta:new Float64Array,decoded:new Float64Array}};function Ml(e,t){return t?e<=Il.small64.delta.length?Il.small64:(e<=Il.large64.delta.length||(Il.large64.delta=new Float64Array(Math.round(1.25*e)),Il.large64.decoded=new Float64Array(Math.round(1.25*e))),Il.large64):e<=Il.small.delta.length?Il.small:(e<=Il.large.delta.length||(Il.large.delta=new Int32Array(Math.round(1.25*e)),Il.large.decoded=new Int32Array(Math.round(1.25*e))),Il.large)}function Cl(e){for(;e.next();){if(1===e.tag())return e.getMessage();e.skip()}return null}function kl(e,t,i,r,s){return!!e&&t*s-r*i===0&&t*r+i*s>0}class Al extends ml.Y{static fromBuffer(e,t,i=!1){let s=t.geometryType,n=function(e){try{let t=new Lt.A(new Uint8Array(e),new DataView(e));for(;t.next();){if(2===t.tag())return Cl(t.getMessage());t.skip()}}catch(e){throw new r.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}return null}(e),a="esriGeometryPolyline"===s||"esriGeometryPolygon"===s,o=function(e,t,i,r=!1){let s=e.asUnsafe(),n=s.pos(),a=new wl,o=0,l=0,u=[];for(;s.next();)switch(s.tag()){case 12:a.transform=s.processMessage(yl.ae);break;case 9:a.exceededTransferLimit=s.getBool();break;case 10:a.hasZ=s.getBool();break;case 11:a.hasM=s.getBool();break;case 13:{let e=s.processMessage(yl.cn);e.index=o++,u.push(e);break}case 15:{let i=s.getPackedEnd(),n=a.offsets.geometry,o=a.centroid;n.push(0);let{stride:u}=a;for(o.push(bl),o.push(bl);s.pos()<i&&s.next();)switch(s.tag()){case 1:{a.offsets.attributes.push(s.pos());let e=s.getLength();s.skipLen(e);break}case 2:if(t){let e=s.getPackedEnd();for(;s.pos()<e&&s.next();)switch(s.tag()){case 3:{let e=s.getPackedEnd(),t=l*u;for(;s.pos()<e;)a.centroid[t++]=s.getSInt64();break}default:s.skip()}}else{a.offsets.geometry[l]=s.pos();let t=s.getLength(),i=s.pos()+t;a.vertexCount+=t,r&&null!=a.transform&&l%_l===0&&vl(e,i,a),s.move(i)}break;case 4:{let e=s.getLength(),t=s.pos()+e;for(;s.pos()<t&&s.next();)switch(s.tag()){case 3:{let e=s.getPackedEnd(),t=l*u;for(;s.pos()<e;)a.centroid[t++]=s.getSInt64();break}default:s.skip()}break}case 12:{let e=s.getUInt64();a.byReferenceVertexCounts.set(l,e);break}default:s.skip()}l++,a.hasFeatures=!0;break}default:s.skip()}a.fields=new ri.A(u),a.featureCount=l,a.fieldCount=o;let h=function*(e){switch(e.type){case"object-id":case"unique-id-simple":return void(yield e.fieldName);case"unique-id-composite":return void(yield*e.fieldNames)}}(i);return a.idFieldIndices=Array.from(h,e=>a.fields.get(e)?.index),a.displayIds=new Uint32Array(a.featureCount),a.groupIds=new Uint16Array(a.featureCount),s.move(n),a}(n,"esriGeometryPoint"===s,t.featureIdInfo,a);return new Al(n,o,t,i)}constructor(e,t,i,r){super(i),this._use64Bit=r,this._hasNext=!1,this._isPoints=!1,this._featureIndex=-1,this._featureOffset=0,this._cache={area:0,unquantGeometry:void 0,geometry:void 0},this._parseCaches=[],this._geometryType=i.geometryType,this._reader=e,this._header=t,this._hasNext=t.hasFeatures,this._isPoints="esriGeometryPoint"===i.geometryType}get _size(){return this._header.featureCount}get fields(){return this._header.fields}get geometryType(){return this._geometryType}get hasZ(){return this._header.hasZ}get hasM(){return this._header.hasM}get hasFeatures(){return this._header.hasFeatures}get hasNext(){return this._hasNext}get exceededTransferLimit(){return this._header.exceededTransferLimit}getByReferenceVertexCount(){return this._header.byReferenceVertexCounts.get(this._featureIndex)}getSize(){return this._size}getInTransform(){return this._header.transform}getCursor(){return this.copy()}getIndex(){return this._featureIndex}setIndex(e){this._cache.area=0,this._cache.unquantGeometry=void 0,this._cache.geometry=void 0,this._featureIndex=e}getAttributeHash(){let e="";for(let t of this._header.fields.fields)e+=this._readAttributeAtIndex(t.index)+".";return e}getObjectId(){if(1===this._header.idFieldIndices.length)return this._readAttributeAtIndex(this._header.idFieldIndices[0]);let e=this._header.idFieldIndices.map(e=>this._readAttributeAtIndex(e));return JSON.stringify(e)}getDisplayId(){return this._header.displayIds[this._featureIndex]}setDisplayId(e){this._header.displayIds[this._featureIndex]=e}readGeometryArea(){return this._cache.area||this._readGeometry(!0),this._cache.area}copy(){let e=this._reader.clone(),t=new Al(e,this._header,this.metadata,this._use64Bit);return this.copyInto(t),t}next(){for(this._cache.area=0,this._cache.unquantGeometry=void 0,this._cache.geometry=void 0;++this._featureIndex<this._size&&!this._getExists(););return this._featureIndex<this._size}get usedMemory(){return 32+(this._cache.geometry?.usedMemory??0)}get underlyingMemory(){return super.underlyingMemory+this._reader.usedMemory+this._header.usedMemory}_readX(){return this._header.centroid[this._featureIndex*this._header.stride]}_readY(){return this._header.centroid[this._featureIndex*this._header.stride+1]}_readServerCentroid(){let e=new st.A([],[],this.hasZ,this.hasM),{coords:t,stride:i}=e;for(let e=this._featureIndex*i,r=e+i;e<r;++e)t.push(this._header.centroid[e]);return 268435455===t[0]?null:e}_readGeometry(e=!1){if((this.hasZ||this.hasM)&&(e=!1),void 0===this._cache.geometry){let t=null;if(this._isPoints)t=this._readServerCentroid();else{let i=this._header.offsets.geometry[this._featureIndex],r=this._reader;if(0===i)return null;r.move(i);try{t=e?this._parseGeometryForDisplay(r):this._parseGeometry(r)}catch{return null}}return 0===t?.coords.length&&(t=null),this._cache.geometry=t,t}return this._cache.geometry}get geometryDensity(){return this._header.geometryDensity}_readAttribute(e,t){let i=this._header.fields.get(e);if(null==i)return;let r=this._readAttributeAtIndex(i.index),s=this._header.fields.isDateField(i.name);return t&&null!=r&&s?new Date(r):r}_readAttributes(){let e={};for(let t of this._header.fields.fields)e[t.name]=this._readAttributeAtIndex(t.index);return e}copyInto(e){super.copyInto(e),e._featureIndex=this._featureIndex,e._featureOffset=this._featureOffset,e._hasNext=this._hasNext,e._parseCaches=this._parseCaches}_readAttributeAtIndex(e){let t=this._parseCaches[e];if(t||(t=new fl.P(this.getSize()),this._parseCaches[e]=t),t.has(this._featureIndex))return t.get(this._featureIndex);let i=this._header.offsets.attributes[this._featureIndex*this._header.fieldCount+e],r=this._reader;r.move(i);let s=function(e){let t=e.getLength(),i=e.pos()+t;for(;e.pos()<i&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}(r);return t.set(this._featureIndex,s),s}_readGeometryDeltaDecoded(e){if(void 0===this._cache.unquantGeometry){let t=this._readGeometry(e);if(!t)return this._cache.unquantGeometry=void 0,null;let i=this.getInTransform();if(!i)return this._cache.unquantGeometry=t,t;let r=i.scale[2]??1,s=i.translate[2]??1,n=i.scale[3]??1,a=i.translate[3]??1,o=Ml(t.coords.length,this._use64Bit).decoded,l=t.clone(o);this._cache.unquantGeometry=l;let{lengths:u,coords:h,hasZ:c,hasM:d}=l,p=c&&(1!==r||0!==s),f=d&&(1!==n||0!==a),m=0;for(let e of u){let t=h[m++],i=h[m++];if(p){let e=h[m];h[m++]=r*e+s}if(f){let e=h[m];h[m++]=n*e+a}for(let o=1;o<e;++o){if(t=h[m++]+=t,i=h[m++]+=i,p){let e=h[m];h[m++]=r*e+s}if(f){let e=h[m];h[m++]=n*e+a}}}return l}return this._cache.unquantGeometry}_parseGeometry(e){let t=e.asUnsafe(),i=t.getPackedEnd(),r=[],s=[];for(;t.pos()<i&&t.next();)switch(t.tag()){case 2:{let e=t.getPackedEnd();for(;t.pos()<e;)s.push(t.getUInt32());break}case 3:{let e=t.getPackedEnd();for(;t.pos()<e;)r.push(t.getSInt64());break}default:t.skip()}return new st.A(s,r,this.hasZ,this.hasM)}_parseGeometryForDisplay(e){let t=e.asUnsafe(),i=t.getLength(),r=t.pos()+i,s=[],n=[],a=0,o=0,l=null,u=0,h="esriGeometryPolygon"===this.geometryType,c="esriGeometryPolyline"===this.geometryType,d=h?3:c?2:1,p=h||c;for(;t.pos()<r&&t.next();)switch(t.tag()){case 2:{let e=t.getUInt32(),i=t.pos()+e;for(;t.pos()<i;){let e=t.getUInt32();s.push(e),a+=e}l=Ml(2*a,this._use64Bit).delta;break}case 3:{t.getUInt32();let e=+!!this.hasZ+2+ +!!this.hasM;(0,m.Lw)(l);for(let i of s){if(o+e*i>l.length){for(let e=0;e<i;e++)t.getSInt64(),t.getSInt64(),this.hasZ&&t.getSInt64(),this.hasM&&t.getSInt64();continue}let r=t.getSInt64(),s=t.getSInt64();this.hasZ&&t.getSInt64(),this.hasM&&t.getSInt64(),l[o++]=r,l[o++]=s;let a=1;for(let e=1;e<i;e++){let e=t.getSInt64(),i=t.getSInt64();this.hasZ&&t.getSInt64(),this.hasM&&t.getSInt64();let n=r+e,h=s+i;u+=-.5*(n-r)*(h+s),r=n,s=h,0===e&&0===i||kl(p,l[o-2],l[o-1],e,i)?(l[o-2]+=e,l[o-1]+=i):(l[o++]=e,l[o++]=i,a+=1)}a>=d?n.push(a):o-=a*e}break}default:t.skip()}return this._cache.area=u,n.length?new st.A(n,l):null==l?null:this._createDeltaQuantizedExtrudedGeometry(l[0],l[1])}}class Pl{constructor(e,t){this.service=e,this._metadata=t}destroy(){}}class Tl extends Pl{constructor(e,t,i){super(e,t),this._ports=[],this._loaded=this._load(i)}destroy(){this._loaded.finally(()=>{this._client.close(),this._client=null;for(let e of this._ports)e.close()}).catch(()=>{})}async _load(e){this._ports=await e.layerView.openMemoryPorts(),this._client=await async function(e){let t=new cl.A;return await t.open(e,{}),t}(this._ports)}async executeQuery(e,t){await this._loaded;let i=await this._client.invoke("queryFeatures",e.toJSON(),t),r=this._metadata;return(0,w.aI)(e.outSpatialReference,i.spatialReference)&&(r=r.weakCloneWithResolvedSpatialReference()),Ra.K.fromFeatureSet(i,r)}}class Fl extends Pl{async executeQuery(e,t){let i=await(0,pl.kS)(this.service.source,e,t),s=!e.quantizationParameters;try{return Al.fromBuffer(i,this._metadata,s)}catch(i){let s=await(0,pl.LT)(this.service.source,e,"pbf",t??{}),{data:{url:n}}=await(0,al.A)(s.url,{responseType:"native-request-init",...s.options});throw new r.A("featurelayer:query","Failed to parse response",{url:n,error:i,query:e.toJSON()})}}}class El extends Pl{async executeQuery(e,t){let{source:i,queryMetadata:r}=this.service;if(null!=e.quantizationParameters&&!r.supportsQuantization){let r=e.clone(),s=(0,x.VV)(r.quantizationParameters);r.quantizationParameters=null;let n=await(0,pl.eW)(i,r,null,t),a=(0,rt.q3)(n,this._metadata.featureIdInfo);return(0,rt.jH)(s,a),Ra.K.fromOptimizedFeatureSet(a,this._metadata)}let s=await(0,pl.eW)(i,e,null,t);return"esriGeometryPoint"===this._metadata.geometryType&&(s.features=s.features?.filter(e=>{if(null!=e.geometry){let t=e.geometry;return Number.isFinite(t.x)&&Number.isFinite(t.y)}return!0})),Ra.K.fromFeatureSet(s,this._metadata)}}class Rl extends Pl{async executeQuery(e,t){if(e.quantizationParameters&&!this.service.queryMetadata.supportsQuantization){let i=e.clone(),r=(0,x.VV)(i.quantizationParameters);i.quantizationParameters=null;let s=await(0,dl.I)(this.service.source,e,t);return(0,rt.jH)(r,s),Ra.K.fromOptimizedFeatureSet(s,this._metadata)}let i=await(0,dl.I)(this.service.source,e,t);return Ra.K.fromOptimizedFeatureSet(i,this._metadata)}}class Ol extends il{constructor(e,t,i){super(e.metadata,t,i),this._service=e,this._didApplyOverride=!1,this._queue=new ol.QueueProcessor({concurrency:32,process:async e=>{let t={signal:e.options?.signal,query:e.query.customParameters,useQueue:!0};return this._adapter.executeQuery(e.query.inner,t)}}),this._queryInfo=hl.create(e,{...t.full,...t.partial},this.metadata),this._adapter=function(e,t,i){switch(e.type){case"memory":return new Tl(e,t,i);case"ogc":return new Rl(e,t);case"feature-service":return e.queryMetadata.supportsFormatPBF&&(0,n.A)("featurelayer-pbf")?new Fl(e,t):new El(e,t)}}(e,this.metadata,i.connection),this._lastEditDate=e.queryMetadata.lastEditDate}destroy(){super.destroy(),this._adapter.destroy()}unsafeSetQueryHistoricMoment(e){this._queryInfo.updateHistoricMoment(e)}async tryUpdate(e,t){if((0,y.i8)(this.availableFields,t.availableFields)){if(this._didApplyOverride||await this._queryLastEditDateChanged())return!1;await this._updateFields(t.availableFields)}return this._schema.partial=t,!0}async queryByObjectId(e,t){if(0===e.length)return Ra.K.empty(this.metadata);let i=this._queryInfo.createQuery({objectIds:e});return i.inner.outFields=t,this._fetch(i,null,null)}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}_onOverride(){this._didApplyOverride=!0}async _updateFields(e){this._queryInfo.updateFields(e);let t=Array.from(this.store.chunks()).map(async e=>{let t=wo.A.fromJSON(e.queryInfo.queryJSON);if(t)try{return await this._tryUpdateFields(e.reader,t,{chunkId:e.chunkId}),null}catch(e){return e}}),i=(await Promise.all(t)).filter(e=>null!=e);if(i.length)throw new r.A("featurelayer-query","Encountered errors when downloading fields",{errors:i});await this._onUpdateFields()}async _fetch(e,t,i){let r=await this._enqueue(e,t);return await this._tryUpdateFields(r,e.inner,i),r}async _queryLastEditDateChanged(){if(null==this._lastEditDate||!("source"in this._service))return!1;let e=this._service.source,t={...e.query,f:"json"},i=(await(0,al.A)(e.path,{query:t,responseType:"json"})).data.editingInfo.lastEditDate;return i!==this._lastEditDate&&(this._lastEditDate=i,!0)}async _onUpdateFields(){}async _tryUpdateFields(e,t,i){let s=this._queryInfo.createPatchFieldsQuery(t,e,i);if(!s)return;let n=await this._enqueue(s,this._options);n.getSize()===e.getSize()?e.joinAttributes(n):Ot.A.getLogger("esri.views.2d.layers.features.sources.strategies.AFetchLoadStrategy").error(new r.A("featurelayer-query",`Failed to join features. Expected a count of ${e.getSize()} features, but got ${n.getSize()}`,{query:s.inner.toJSON(),debugInfo:i}))}async _enqueue(e,t){return this._connection.onEvent({type:"fetchStart"}),this._queue.push({query:e,options:t}).finally(()=>{this._connection.onEvent({type:"fetchEnd",done:0===this._queue.length})})}}class Ll extends Ol{constructor(e,t,i){super(e,t,i),this._chunksById=new Map,this._featureCache=new nl(this.store,this._queryInfo,this._options,this._fetch.bind(this))}prepareCacheUpdate(e,t){return this._featureCache.prepareCacheUpdate(e,t)}applyCacheUpdate(){return this._featureCache.applyCacheUpdate()}unload(e){this._removeChunks(e.tile)}_onRemoveTileChunk(e){}_addChunk(e){let t=e.tile.id;this._chunksById.has(t)||this._chunksById.set(t,[]);let i=e.size();(i||e.first||e.end)&&((0,n.A)("esri-2d-update-debug")&&console.debug(`Chunk[${e.chunkId}] ATileLoadStrategy.addChunk [count=${i}]`),this._chunksById.get(t).push(e),this.store.insert(e),this._connection.onEvent({type:"chunk",tile:t,level:e.tile.level,density:e.reader.geometryDensity}))}_removeChunks(e){let t=this._chunksById.get(e.key.id)??[];for(let i of t)(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e.key.id}] Chunk[${i.chunkId}] ATileLoadStrategy.removeChunk`),this._onRemoveTileChunk(i),this.store.remove(i);this._chunksById.delete(e.key.id)}}var zl=i(70300);class Dl extends zl.K{constructor(e,t,i,r,s,n){super(),this._reader=e,this._queryJSON=t,this._tile=i,this._sourceTile=r,this._sourceTileDepth=s,this._end=n,this.chunkId=`${this._tile.key.id}.${this._sourceTile?.key.id}${this._end?"e":""}`,this.normalizedChunkId=`${this._tile.key.normalizedId}.${this._sourceTile?.key.normalizedId}${this._end?"e":""}`}get queryInfo(){return{type:"drill-down-tile",chunkId:this.chunkId,tileId:this._tile.key.id,queryJSON:this._queryJSON,sourceTileDepth:this._sourceTileDepth,sourceTileId:this._sourceTile?.key.id,size:this.size(),end:this.end}}get first(){return 0===this._sourceTileDepth}get reader(){return this._reader}get end(){return this._end}get tile(){return this._tile}get lodInfo(){return{level:this.tile.level}}getTileReader(e){return this._tile.key.id===e.key.id?this.reader:null}}const Nl=(0,n.A)("featurelayer-query-max-depth");class Bl{constructor(e,t){this.subscription=e,this._tileIdToResult=new Map,this._controller=new AbortController,this._emittedObjectIds=new Set,this._handles=(0,s.vE)([(0,o.u7)(e.signal,()=>this._controller.abort()),(0,o.u7)(t,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get(e){return this._tileIdToResult.get(e)}set(e,t){this._tileIdToResult.set(e,t)}deduplicate(e){let t=e.getCursor();for(;t.next();){let e=t.getObjectId();this._emittedObjectIds.has(e)?t.delete():this._emittedObjectIds.add(e)}}get options(){return{signal:this._controller.signal}}}class ql extends Ll{constructor(){super(...arguments),this._loadStates=new Map}destroy(){super.destroy();for(let e of this._loadStates.values())e.destroy();this._loadStates.clear()}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}async load(e){this._loadStates.has(e.key.id)||this._loadStates.set(e.key.id,new Bl(e,this._options));let t,i=this._loadStates.get(e.key.id);try{for await(let t of this._fetchChunkInfos(i,e.tile,0)){let{queryJSON:e,reader:r,sourceTile:s,sourceTileDepth:n,tile:a}=t,l=new Dl(r,e,a,s,n,!1);(0,o.Te)(i.options),this._addChunk(l)}}catch(e){t=e}(0,o.Te)(i.options);let r=new Dl(Ra.K.empty(this.metadata),null,e.tile,null,-1,!0);if(this._addChunk(r),t)throw t}unload(e){super.unload(e),this._loadStates.get(e.key.id)?.destroy(),this._loadStates.delete(e.key.id)}async*_fetchChunkInfos(e,t,i){let r=e.get(t.id),s=!!r;if(r||(r=await this._fetchChunkInfo(e,t,i),e.set(t.id,r)),r.reader.exceededTransferLimit&&i<(0,n.A)("featurelayer-query-max-depth"))for(let r of t.createChildTiles())yield*this._fetchChunkInfos(e,r,i+1);else s||(e.deduplicate(r.reader),yield r)}async _fetchChunkInfo(e,t,i){let r=e.subscription.tile.getQuantizationParameters(),s=this._queryInfo.createTileQuery(t,{returnExceededLimitFeatures:i===Nl,quantizationParameters:r});return s?{reader:await this._fetch(s,e.options,{chunkId:t.id}),queryJSON:s.inner.toJSON(),tile:e.subscription.tile,sourceTile:t,sourceTileDepth:i}:{reader:Ra.K.empty(this.metadata),queryJSON:null,tile:e.subscription.tile,sourceTile:t,sourceTileDepth:i}}}var Gl=i(27348);class Ul extends zl.K{constructor(e,t){super(),this._reader=e,this._tile=t;let i=this._reader.getCursor();i.next();let r=i.getObjectId();this.chunkId=`${this._tile.key.id}.${r}${this.end?"e":""}`,this.normalizedChunkId=this.chunkId}get reader(){return this._reader}get first(){return!1}get end(){return!1}get queryInfo(){return{type:"snapshot",chunkId:this.chunkId,size:this.size(),end:this.end}}get lodInfo(){return null}get tile(){return this._tile}getTileReader(e){if(this._tile.key.id!==e.key.id)return null;let t=this.queryFeaturesInBounds(e.bounds);return t.setTransformForDisplay(e.transform),t}}class Wl extends zl.K{constructor(e,t,i,r,s){super(),this._reader=e,this._queryJSON=t,this._tile=i,this._page=r,this._end=s,this.chunkId=`${this._tile.key.id}.${this._page}${this.end?"e":""}`,this.normalizedChunkId=`${this._tile.key.normalizedId}.${this._page}${this.end?"e":""}`}get queryInfo(){return{type:"paged-tile",chunkId:this.chunkId,tileId:this._tile.key.id,queryJSON:this._queryJSON,page:this._page,size:this.size(),end:this.end}}get reader(){return this._reader}get first(){return 0===this._page}get end(){return this._end}get page(){return this._page}get tile(){return this._tile}get lodInfo(){return{level:this.tile.level}}getTileReader(e){return this._tile.key.id===e.key.id?this.reader:null}}class Vl{constructor(e,t){this.subscription=e,this._pages=new Set,this._controller=new AbortController,this._done=!1,this._handles=(0,s.vE)([(0,o.u7)(e.signal,()=>this._controller.abort()),(0,o.u7)(t,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get pageStart(){let e=-1;for(let t of this._pages.values())e=Math.max(e,t);return e+1}get done(){return this._done}get options(){return{signal:this._controller.signal}}add(e,t){this._pages.add(e),this._done=this._done||t}}class jl extends Ll{constructor(){super(...arguments),this._loadStates=new Map,this._levels=new Map}destroy(){super.destroy();for(let e of this._loadStates.values())e.destroy();this._loadStates.clear()}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}async load(e){let t=(0,z.tE)(this._loadStates,e.key.id,()=>new Vl(e,this._options));for await(let e of this._fetchPages(t))this._addChunk(e)}unload(e){super.unload(e),this._loadStates.get(e.key.id)?.destroy(),this._loadStates.delete(e.key.id)}_onRemoveTileChunk(e){if(e instanceof Ul){let t=e.reader.getCursor(),i=e.tile.resolution;for(;t.next();)this._removeReferenceFeature(t.getObjectId(),i)}}async*_fetchPages(e){let t;try{for await(let t of this._concurrentPageStream(e)){(0,o.Te)(e.options);for(let e of t)0!==e.size()&&(yield e)}}catch(e){t=e}if((!t||!(0,o.zf)(t))&&(yield new Wl(Ra.K.empty(this.metadata),null,e.subscription.tile,-1,!0)),t)throw t}async*_concurrentPageStream(e){let t=(0,n.A)("featurelayer-query-tile-concurrency"),i=this._pageStreamAll(e),r=[],s=!1,a=1;for(;!s;){let e=[];for(;!s&&r.length<a;){let t=i.next();if(!t.value){s=!0;break}let n=t.value;n.then(e=>{e.some(e=>e.reader.exceededTransferLimit)||(s=!0)}).catch(e=>{s=!0}).finally(()=>{r.splice(r.indexOf(n),1)}),r.push(n),e.push(n)}for(let t of e)yield t;r.length&&await Promise.race(r),a<t&&(a+=1)}}*_pageStreamAll(e){let t=Math.ceil((0,n.A)("featurelayer-query-tile-max-features")/this._queryInfo.getPageSize(!0));for(let i=0;i<t;i++)yield this._downloadPage(i,e)}async _downloadPage(e,t){(0,o.Te)(t.options);let i=t.subscription.tile,r=this._queryInfo.createPagedTileQuery(i,e);if(!r){let e=Ra.K.empty(this.metadata);return[new Wl(e,null,i,0,!1)]}r.inner.returnExceededLimitGeometries=!1;let s=await this._fetch(r,t.options,{chunkId:`${i.id}-${e}`}),n=[],a=s.getCursor();for(;a.next();){let e=a.getByReferenceVertexCount();e&&(n.push({vertexCount:e,objectId:a.getObjectId()}),a.delete())}let l=new Wl(s,r.inner.toJSON(),i,e,!1),u=await this._ensureReferenceFeatures(n,i);return(0,o.Te)(t.options),[l,...u]}async _ensureReferenceFeatures(e,t){let i=this._levels.get(t.resolution);return i??(i=new Map,this._levels.set(t.resolution,i)),(await Promise.all(this._ensureReferenceLevelFeatures(i,e,t.resolution))).map(e=>new Ul(e,t))}_removeReferenceFeature(e,t){let i=this._levels.get(t);if(null==i)throw Error("Expected to find reference feature.");this._removeReferenceLevelFeature(i,e)}_ensureReferenceLevelFeatures(e,t,i){let r=[],s=new Gl.A({mode:"view",originPosition:"upper-left",tolerance:i});for(let i of t){let t=e.get(i.objectId);t??(t=new Vo(this._queryFeature(i.objectId,s)),e.set(i.objectId,t)),t.increment(),r.push(t.data)}return r}async _onUpdateFields(){let e=[];for(let[t,i]of this._levels){let r=new Gl.A({mode:"view",originPosition:"upper-left",tolerance:t});for(let[t,s]of i)e.push(this._updateReferenceFields(t,s.data,r))}let t=(await Promise.all(e)).filter(e=>null!=e);if(t.length)throw new r.A("featurelayer-query","Encountered errors when downloading reference fields",{errors:t})}_removeReferenceLevelFeature(e,t){let i=e.get(t);if(null==i)throw Error("Expected to find reference feature.");i.decrement(),i.empty&&e.delete(t)}async _updateReferenceFields(e,t,i){try{let r=await t;(0,o.Te)(this._options);let s=this._queryInfo.createQuery({objectIds:[e]});return s.inner.quantizationParameters=i,await this._tryUpdateFields(r,s.inner,{chunkId:`reference-${e}`}),null}catch(e){return e}}async _queryFeature(e,t){let i=this._queryInfo.createQuery({objectIds:[e]});return i.inner.quantizationParameters=t,this._fetch(i,null,null)}}class Yl{constructor(e,t){this.subscription=e,this._pages=new Set,this._controller=new AbortController,this._done=!1,this._handles=(0,s.vE)([(0,o.u7)(e.signal,()=>this._controller.abort()),(0,o.u7)(t,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get pageStart(){let e=-1;for(let t of this._pages.values())e=Math.max(e,t);return e+1}get done(){return this._done}get options(){return{signal:this._controller.signal}}add(e,t){this._pages.add(e),this._done=this._done||t}}class $l extends Ll{constructor(){super(...arguments),this._loadStates=new Map}destroy(){super.destroy();for(let e of this._loadStates.values())e.destroy();this._loadStates.clear()}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}async load(e){let t=(0,z.tE)(this._loadStates,e.key.id,()=>new Yl(e,this._options));for await(let e of this._fetchPages(t))this._addChunk(e)}unload(e){super.unload(e),this._loadStates.get(e.key.id)?.destroy(),this._loadStates.delete(e.key.id)}async*_fetchPages(e){let t;try{for await(let t of this._concurrentPageStream(e))(0,o.Te)(e.options),0!==t.size()&&(yield t)}catch(e){t=e}if((!t||!(0,o.zf)(t))&&(yield new Wl(Ra.K.empty(this.metadata),null,e.subscription.tile,-1,!0)),t)throw t}async*_concurrentPageStream(e){let t=(0,n.A)("featurelayer-query-tile-concurrency"),i=this._pageStreamAll(e),r=[],s=!1,a=1;for(;!s;){let e=[];for(;!s&&r.length<a;){let t=i.next();if(!t.value){s=!0;break}let n=t.value;n.then(e=>{e.reader.exceededTransferLimit||(s=!0)}).catch(e=>{s=!0}).finally(()=>{r.splice(r.indexOf(n),1)}),r.push(n),e.push(n)}for(let t of e)yield t;r.length&&await Promise.race(r),a<t&&(a+=1)}}*_pageStreamAll(e){let t=Math.ceil((0,n.A)("featurelayer-query-tile-max-features")/this._queryInfo.getPageSize(!0));for(let i=0;i<t;i++)yield this._downloadPage(i,e)}async _downloadPage(e,t){(0,o.Te)(t.options);let i=t.subscription.tile,r=this._queryInfo.createPagedTileQuery(i,e);if(!r){let t=Ra.K.empty(this.metadata);return new Wl(t,null,i,e,!1)}let s=await this._fetch(r,t.options,{chunkId:`${i.id}-${e}`});return(0,o.Te)(t.options),new Wl(s,r.inner.toJSON(),i,e,!1)}}class Hl extends Ol{constructor(e,t,i){super(e,t,i)}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}load(e){return this._promise??=this._download(),this._promise}unload(e){}async _download(){let e=this._schema.snapshotInfo.initialTolerance,t=e?new Gl.A({mode:"view",originPosition:"upper-left",tolerance:e}):null;await this._downloadStreaming(t),null!=t&&await this._downloadRefresh()}async _downloadStreaming(e){try{for await(let t of this._fetchPages(e))this.store.insert(t)}catch(e){throw new r.A("featurelayer-query","Encountered error when downloading data",{error:e})}}async _downloadRefresh(){try{let e=[];for await(let t of this._fetchPages(null))e.push(t);this.store.clear();for(let t of e)this.store.insert(t);this.store.refresh()}catch(e){throw new r.A("featurelayer-query","Encountered error when downloading data",{error:e})}}async*_fetchPages(e){let t;try{for await(let t of this._concurrentPageStream(e))0!==t.size()&&(yield t)}catch(e){t=e}if((!t||!(0,o.zf)(t))&&(yield new sl.j(Ra.K.empty(this.metadata),null,-1,!0)),t)throw t}async*_concurrentPageStream(e){let t=(0,n.A)("featurelayer-snapshot-concurrency"),i=this._pageStreamAll(e),r=[],s=!1,a=1;for(;!s;){let e=[];for(;!s&&r.length<a;){let t=i.next();if(!t.value){s=!0;break}let n=t.value;n.then(e=>{e.reader.exceededTransferLimit||(s=!0)}).catch(e=>{s=!0}).finally(()=>{r.splice(r.indexOf(n),1)}),r.push(n),e.push(n)}for(let t of e)yield t;r.length&&await Promise.race(r),a<t&&(a+=1)}}*_pageStreamAll(e){let t=Math.ceil(this._schema.snapshotInfo.maxFeatureCount/this._queryInfo.getPageSize(!1));for(let i=0;i<t;i++)yield this._downloadPage(i,e)}async _downloadPage(e,t){(0,o.Te)(this._options);let i=this._queryInfo.createPagedQuery(e,t),r=await this._fetch(i,this._options,{chunkId:e.toString()}),s=new sl.j(r,i.inner.toJSON(),e,!1);return(0,o.Te)(this._options),s}}var Xl=i(76248);class Zl extends zl.K{constructor(e,t,i,r,s){super(),this._metadata=e,this._reader=t,this._page=i,this._end=r,this._fileId=s,this.chunkId=`${this._fileId}.${this._page}${this.end?"e":""}`,this.normalizedChunkId=this.chunkId}get reader(){return this._reader??Ra.K.empty(this._metadata)}get first(){return 0===this._page}get end(){return this._end}get queryInfo(){return{type:"snapshot",chunkId:this.chunkId,page:this._page,size:this.size(),end:this.end}}get lodInfo(){return null}async updateFields(e,t,i){if(null!=this._fileId)return this._reader?.updateFields(e,this._fileId,t,i)}getTileReader(e){let t=this.queryFeaturesInBounds(e.bounds);return t.setTransformForDisplay(e.transform),t}}var Ql=i(16630);class Kl extends il{constructor(e,t,i,r){super(e.metadata,t,i),this._service=e,this._loaded=this._load(r)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(let e of this._ports)e.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,t){await this._loaded;let i=!0;return(0,y.i8)(this.availableFields,t.availableFields)&&await this._updateFields(t.availableFields),this._schema.partial.dataSourceHash!==t.dataSourceHash&&(i=!1),this._schema.partial=t,i}async load(e){return this._loaded}unload(e){}_onOverride(){}async _load(e){this._ports=await e.layerView.openMemoryPorts(),this._client=await(0,g.N1)(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap(),await this._download()}async _updateFields(e){let t=new Set(e),i=(0,D.iv)(t,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&i.size){let e=Array.from(this.store.insertedChunks()).map(e=>e.updateFields(this._proxy,Array.from(i),this._options));await Promise.all(e)}}async _downloadFiles(){let e=await(0,Xl.N)();(0,o.Te)(this._options);let t=await this._proxy.queryStream({type:"snapshot",outFields:Array.from(this.availableFields),returnGeometry:!0,returnZ:this._schema.full.returnZ,returnM:this._schema.full.returnM,outSpatialReference:this.metadata.outSpatialReference.toJSON(),where:this.definitionExpression},this._options),i=0;for(;;){let r=await this._proxy.getStreamNext(t,this._options);if((0,o.Te)(this._options),null==r)break;let{fileId:s,buffer:n}=r,a=e.ParquetChunk.deserialize(new Uint8Array(n)),l=new Ql.s(this.metadata,this._indexMap,a,s),u=new Zl(this.metadata,l,i++,!1,s);this.store.insert(u)}}async _download(){try{await this._downloadFiles();let e=new Zl(this.metadata,null,-1,!0,null);this.store.insert(e)}catch(e){throw console.error(e),e}}}var Jl=i(47828);class eu extends zl.K{constructor(e,t,i,r,s,n){super(),this._metadata=e,this._reader=t,this._tile=i,this._fileId=r,this._page=s,this._end=n,this.chunkId=`${this._tile.key.id}.${this._fileId}.${this._page}${this.end?"e":""}`,this.normalizedChunkId=`${this._tile.key.normalizedId}.${this._fileId}.${this._page}${this.end?"e":""}`}get reader(){return this._reader??Ra.K.empty(this._metadata)}get first(){return 0===this._page}get end(){return this._end}get tile(){return this._tile}get queryInfo(){return{type:"parquet",chunkId:this.chunkId,queryJSON:null,page:this._page,size:this.size(),tileId:this._tile.id,end:this.end}}get lodInfo(){return{level:this._tile.level}}async updateFields(e,t,i){if(null!=this._fileId)return this._reader?.updateFields(e,this._fileId,t,i)}getTileReader(e){return this._tile.key.id===e.key.id?this.reader:null}}class tu{constructor(e,t){this.subscription=e,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=(0,s.vE)([(0,o.u7)(e.signal,()=>this._controller.abort()),(0,o.u7)(t,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(e){this.chunks.push(e)}addSourceChunkId(e){this.ids.push(e)}}class iu extends il{constructor(e,t,i,r){if(super(e.metadata,t,i),this._service=e,this._loadStates=new Map,this._queue=new ol.QueueProcessor({concurrency:32,process:e=>this._loadTile(e)}),!e.geometryInfo.displayOptimization)throw Error("InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files");this._loaded=this._load(r),this._queryInfo=hl.createParquet(e,{...t.full,...t.partial,gdbVersion:null,historicMoment:null,queryScaleRanges:null,timeExtent:null},this.metadata),this._featureCache=new nl(this.store,this._queryInfo,this._options,this._fetchCacheFeatures.bind(this))}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(let e of this._ports)e.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,t){await this._loaded;let i=!0;return(0,y.i8)(this.availableFields,t.availableFields)&&await this._updateFields(t.availableFields),this._schema.partial.dataSourceHash!==t.dataSourceHash&&(i=!1),this._schema.partial=t,i}async load(e){try{return await this._loaded,(0,z.tE)(this._loadStates,e.key.id,()=>new tu(e,this._options)),await this._queue.push(e)}catch(e){if(!function(e){return(0,Jl.c)(e)||function(e){return"object"==typeof e&&!!e&&"message"in e&&"Protocol Violation: transport error"===e.message}(e)}(e))throw e}}prepareCacheUpdate(e,t){this._featureCache.prepareCacheUpdate(e,t)}applyCacheUpdate(){return this._featureCache.applyCacheUpdate()}unload(e){let t=this._loadStates.get(e.tile.id);if(null!=t){for(let e of t.ids)this.store.removeById(e);t.destroy(),this._loadStates.delete(e.tile.id)}}async _load(e){this._ports=await e.layerView.openMemoryPorts(),this._client=await(0,g.N1)(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap()}_onOverride(){}async _updateFields(e){this._queryInfo.updateFields(e);let t=new Set(e),i=(0,D.iv)(t,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&i.size){let e=[];for(let t of this.store.insertedChunks())t instanceof eu&&e.push(t.updateFields(this._proxy,Array.from(i),this._options));await Promise.all(e)}}async _loadTile(e){(0,o.Te)(e.signal);let t=e.tile,i=this._loadStates.get(t.id);await this._downloadTileData(e),(0,o.Te)(i.options);let r=new eu(this.metadata,null,t,null,0,!0);i.addSourceChunkId(r.chunkId),this.store.insert(r)}async _downloadTileData(e){let t=e.tile,i=this._loadStates.get(t.id),{signal:r}=i.options,s=await(0,Xl.N)();(0,o.Te)(r);let n=this._queryInfo.createTileQuery(t,{})?.inner;if(!n)return;let a=await this._proxy.queryStream({type:"tile",extent:t.extent,transform:t.normalizedTransform,outFields:n.outFields,returnGeometry:n.returnGeometry,returnZ:!!n.returnZ,returnM:!!n.returnM,outSpatialReference:n.outSpatialReference.toJSON(),resolution:t.resolution,where:n.where},{signal:r}),l=0;for(;;){(0,o.Te)(r);let e=await this._proxy.getStreamNext(a,{signal:r});if((0,o.Te)(r),null==e)break;let{fileId:n,buffer:u}=e,h=s.ParquetChunk.deserialize(new Uint8Array(u)),c=new Ql.s(this.metadata,this._indexMap,h,n,t.transform),d=new eu(this.metadata,c,t,n,l++,!1);i.addBinaryData({data:h,fileId:n}),i.addSourceChunkId(d.chunkId),this.store.insert(d)}}async _fetchCacheFeatures(e,t){await this._loaded,(0,o.Te)(t);let i=await this._proxy.queryFeatures(e.inner.toJSON(),t??void 0);return(0,o.Te)(t),Ra.K.fromFeatureSet(i,this.metadata)}}class ru{constructor(e){this.size=0,this._start=0,this.maxSize=e,this._buffer=Array(e)}get entries(){return this._buffer}enqueue(e){if(this.size===this.maxSize){let t=this._buffer[this._start];return this._buffer[this._start]=e,this._start=(this._start+1)%this.maxSize,t}return this._buffer[(this._start+this.size++)%this.maxSize]=e,null}dequeue(){if(0===this.size)return null;let e=this._buffer[this._start];return this._buffer[this._start]=null,this.size--,this._start=(this._start+1)%this.maxSize,e}peek(){return 0===this.size?null:this._buffer[this._start]}peekLast(){return 0===this.size?null:this._buffer[(this._start+(this.size-1))%this.maxSize]}find(e){if(0===this.size)return null;for(let t of this._buffer)if(null!=t&&e(t))return t;return null}clear(e){let t=this.dequeue();for(;null!=t;)e&&e(t),t=this.dequeue()}}class su{constructor(e,t,i,s,n=128){if(this._trackIdToObservations=new Map,this._idCounter=0,this._lastPurge=performance.now(),this._addOrUpdated=new Map,this._removed=[],this._maxAge=0,this._timeInfo=i,this._purgeOptions=s,this.store=e,"unique-id-composite"===t.type)throw new r.A("stream-layer","composite uniqueIds are not supported");this.idField=t.fieldName,this.purgeInterval=n,this._useGeneratedIds=this.idField===Ie.DN}removeById(e){this._removed.push(e)}removeByTrackId(e){let t=this._trackIdToObservations.get(e);if(t)for(let e of t.entries)this._removed.push(e)}add(e){if(this._useGeneratedIds){let t=this._nextId();e.attributes[this.idField]=t,e.objectId=t}else e.objectId=e.attributes[this.idField];let t=e.objectId;if(this._addOrUpdated.set(t,e),this._maxAge=Math.max(this._maxAge,e.attributes[this._timeInfo.startTimeField]),!this._timeInfo.trackIdField)return this._trackIdLessObservations??=new ru(1e5),void this._trackIdLessObservations.enqueue(t);let i=e.attributes[this._timeInfo.trackIdField];if(!this._trackIdToObservations.has(i)){let e=null==this._purgeOptions?.maxObservations?1e3:this._purgeOptions.maxObservations,t=(0,tt.qE)(e,0,1e3);this._trackIdToObservations.set(i,new ru(t))}let r=this._trackIdToObservations.get(i)?.enqueue(t);null!=r&&(this._addOrUpdated.has(r)?this._addOrUpdated.delete(r):this._removed.push(r))}checkForUpdates(){let e=this._getToAdd(),t=this._getToRemove(),i=performance.now(),r=i-this._lastPurge,s=Date.now();r>=this.purgeInterval&&(this._purge(i),this._lastPurge=i);let n=[];if(null!=t)for(let e of t){let t=this.store.removeById(e);null!=t&&n.push(t)}let a=[];if(null!=e){let r=new Set(t??[]);for(let t of e)r.has(t.objectId)||(t.attributes[Ie.Gm]=i,t.attributes[Ie.Aw]=s,this.store.add(t),a.push(t))}return!(!a.length&&!n?.length||(this.store.update(a,n),0))}_getToAdd(){if(!this._addOrUpdated.size)return null;let e=Array(this._addOrUpdated.size),t=0;return this._addOrUpdated.forEach(i=>e[t++]=i),this._addOrUpdated.clear(),e}_getToRemove(){let e=this._removed;return this._removed.length?(this._removed=[],e):null}_nextId(){let e=this._idCounter;return this._idCounter=(this._idCounter+1)%4294967294+1,e}_purge(e){let t=this._purgeOptions;null!=t&&(this._purgeSomeByDisplayCount(t),this._purgeByAge(t),this._purgeByAgeReceived(e,t),this._purgeTracks())}_purgeSomeByDisplayCount(e){if(!e.displayCount)return;let t=this.store.size;if(t>e.displayCount){if(this._timeInfo.trackIdField)for(let i of this._trackIdToObservations.values())if(t>e.displayCount&&i.size){let e=i.dequeue();this._removed.push(e),t--}if(null!=this._trackIdLessObservations){let i=t-e.displayCount;for(;i-- >0;){let e=this._trackIdLessObservations.dequeue();null!=e&&this._removed.push(e)}}}}_purgeByAge(e){let t=this._timeInfo?.startTimeField;if(!e.age||!t)return;let i=60*e.age*1e3,r=this._maxAge-i;this.store.forEach(e=>{e.attributes[t]<r&&this._removed.push(e.objectId)})}_purgeByAgeReceived(e,t){if(!t.ageReceived)return;let i=e-60*t.ageReceived*1e3;this.store.forEach(e=>{e.attributes[Ie.Gm]<i&&this._removed.push(e.objectId)})}_purgeTracks(){this._trackIdToObservations.forEach((e,t)=>{0===e.size&&this._trackIdToObservations.delete(t)})}}var nu=i(60986),au=i(10107),ou=i(64108);let lu=class extends L.A{constructor(e){super(e)}get connectionStatus(){return this.connection?.connectionStatus}get errorString(){return this.connection?.errorString}};(0,O.Cg)([(0,au.MZ)()],lu.prototype,"connection",void 0),(0,O.Cg)([(0,au.MZ)()],lu.prototype,"connectionStatus",null),(0,O.Cg)([(0,au.MZ)()],lu.prototype,"errorString",null),lu=(0,O.Cg)([(0,ou.$)("esri.views.2d.layers.features.sources.StreamConnectionState")],lu);class uu{constructor(e,t){this._metadata=e,this._onUpdate=t,this._objectIdToFeature=new Map}get size(){return this._objectIdToFeature.size}get reader(){return Ra.K.fromFeatures([...this._objectIdToFeature.values()],this._metadata)}add(e){this._objectIdToFeature.set(e.objectId,e)}forEach(e){this._objectIdToFeature.forEach(e)}removeById(e){let t=this._objectIdToFeature.get(e);return t?(this._objectIdToFeature.delete(e),t):null}clear(){this._objectIdToFeature=new Map}update(e,t){this._onUpdate(e?.length??0)}}class hu extends zl.K{constructor(e){super(),this._reader=e,this.chunkId="stream-chunk",this.normalizedChunkId="stream-chunk"}get reader(){return this._reader}get first(){return!0}get end(){return!0}get queryInfo(){return{type:"stream",chunkId:this.chunkId,size:this.size(),end:this.end}}get lodInfo(){return null}getTileReader(e){let t=this.queryFeaturesInBounds(e.bounds);return t.setTransformForDisplay(e.transform),t}}class cu extends il{constructor(e,t,i){super(e.metadata,t,i),this._service=e,this._connectionState=new lu,this._forceRefresh=!1,this.events=new Na.bk;let{timeInfo:r}=this.metadata,{purgeOptions:s}=t.full;this._stagingStore=new uu(this.metadata.weakCloneWithAdditionalFields([{name:Ie.Aw,alias:"timeReceived",type:"esriFieldTypeDate"}]),e=>this.events.emit("features-updated",e)),this._manager=new su(this._stagingStore,this.metadata.featureIdInfo,r,s),this.connect()}destroy(){super.destroy(),this.disconnect()}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}get connectionStatus(){return this._connectionState.connectionStatus}get errorString(){return this._connectionState?.errorString}get availableFields(){return this._schema.full.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,t){let i=null!=this._chunk;if(t.sourceRefreshVersion!==this._refreshVersion){if(this._refreshVersion=t.sourceRefreshVersion,!this._manager.checkForUpdates()&&i&&!this._forceRefresh)return this.events.emit("tick"),!0;this._chunk&&(this.store.remove(this._chunk),e.requireInvalidation()),this._forceRefresh=!1,this._chunk=new hu(this._stagingStore.reader),this.store.insert(this._chunk),this.events.emit("tick")}return this._schema.partial=t,!0}async load(e){}unload(e){}disconnect(){this._streamConnection=(0,m.pR)(this._streamConnection),this._connectionState.connection=null,this._handlesGroup?.remove()}connect(){this._streamConnection??(this._streamConnection=(0,nu.createConnection)(this._service.source,this.metadata.outSpatialReference),this._handlesGroup=(0,s.vE)([this._streamConnection.on("data-received",e=>this._onFeature(e)),this._streamConnection.on("message-received",e=>this._onWebSocketMessage(e))]),this._connectionState.connection=this._streamConnection)}clear(){this._manager.checkForUpdates(),this._stagingStore.clear(),this._forceRefresh=!0}updateCustomParameters(e){this._streamConnection?.updateCustomParameters(e)}sendMessageToSocket(e){this._streamConnection?.sendMessageToSocket(e)}sendMessageToClient(e){this._streamConnection?.sendMessageToClient(e)}_onOverride(){}_onWebSocketMessage(e){if("type"in e)switch(e.type){case"delete":if(e.objectIds)for(let t of e.objectIds)this._manager.removeById(t);if(e.trackIds)for(let t of e.trackIds)this._manager.removeByTrackId(t);break;case"clear":this.clear()}this.events.emit("message-received",e)}_onFeature(e){try{this._manager.add(e),this.events.emit("data-received",e)}catch{}}}var du=i(44320),pu=i(79897);let fu=class extends L.A{constructor(e){super(e),this.debugName="",this._updatingHandles=new pu.U,this._idToUpdatingState=new G.A}destroy(){this._updatingHandles=(0,m.pR)(this._updatingHandles),this._idToUpdatingState.clear()}get updating(){return!this.destroyed&&(this._updatingHandles?.updating||Array.from(this._idToUpdatingState.values()).some(e=>e))}addUpdateTracking(e,t){let i=(0,u.wB)(()=>t.updating,t=>this._idToUpdatingState.set(e,t),{sync:!0});this.addHandles(i)}consumePromise(e){this._updatingHandles.consumePromise(e)}addPromise(e){return this._updatingHandles.addPromise(e)}};(0,O.Cg)([(0,N.MZ)({constructOnly:!0})],fu.prototype,"debugName",void 0),(0,O.Cg)([(0,N.MZ)({readOnly:!0})],fu.prototype,"updating",null),fu=(0,O.Cg)([(0,ou.$)("esri.views.2d.layers.support.UpdateTracking2D")],fu);class mu{constructor(e,t,i){this._aggregateAdapter=e,this._subscriptions=t,this._connection=i,this._updateTracking=new fu({debugName:"FeatureSource"}),this._filters=[],this.store=new du.I}destroy(){this._strategy?.destroy(),this._streamMessenger?.destroy(),this._updateTracking?.destroy(),this.store.destroy()}get metadata(){return this._strategy.metadata}get streamMessenger(){return this._streamMessenger??this._initStreamMessenger(),this._streamMessenger}get statistics(){return Jo.from(this.store)}get updateTracking(){return this._updateTracking}get usedMemory(){return this.store.usedMemory}get queryEngine(){if(!this._queryEngine){if(!this.store||!this._strategy)return null;this._queryEngine=new Ga.do({featureStore:this.store,fieldsIndex:this.metadata.fieldsIndex,geometryType:this.metadata.geometryType,featureIdInfo:this.metadata.featureIdInfo,hasZ:this.metadata.hasZ,hasM:this.metadata.hasM,spatialReference:this.metadata.outSpatialReference,aggregateAdapter:this._aggregateAdapter,timeInfo:this.metadata.timeInfo,definitionExpression:this._strategy?.definitionExpression,availableFields:this._strategy?.availableFields})}return this._queryEngine}get isStream(){return"stream"===this._schema.type}get hasQueryDisplayFilter(){if(!this._schema)return!1;switch(this._schema.type){case"feature":return null!=this._schema.strategy.full.displayFilterInfo;case"parquet":return"xz"===this._schema.strategy.type&&null!=this._schema.strategy.full.displayFilterInfo;case"stream":return!1}}chunks(){return Array.from(this.store.chunks())}async applyCacheUpdate(){this.hasQueryDisplayFilter&&await this._updateTracking.addPromise(this._strategy.applyCacheUpdate())}cleanup(){return this.store.cleanup()}onSubscribe(e){if(this._connection.onEvent({type:"subscribe",tile:e.tile.id}),!this._strategy)return;let t=this._strategy.load(e);t.then(()=>this._connection.onEvent({type:"loaded",tile:e.tile.id})).catch(t=>this._connection.onEvent({type:"error",tile:e.tile.id,error:t})),this._updateTracking.consumePromise(t)}onResume(e){this._updateTracking.consumePromise((0,o.QZ)(this._strategy?.load(e)))}onUnsubscribe(e){this._connection.onEvent({type:"unsubscribe",tile:e.tile.id}),this._strategy?.unload(e)}async applyOverride(e){await(this._strategy?.applyOverride(e))}takeOverrideUpdate(){return this._strategy?.takeOverrideUpdate()}async update(e,t,i){let r=this._schema,s=this._getCachedObjectIds(this._filters),n=this._getCachedObjectIds(t);if(this._schema=e,this._filters=t,r&&r.type!==e.type)throw Error("InternalError: Reconfiguring source types is not supported.");let a=new tl;if(!r||(0,y.i8)(r.service,e.service)||r.strategy.type!==e.strategy.type||(0,y.i8)(e.strategy.full,r.strategy.full)||!await this._strategy.tryUpdate(a,e.strategy.partial)){await this._updateStrategyType(this._schema.service,e,i);let t=null;return"postQueryFilter"in this._schema.strategy.full&&this._schema.strategy.full.postQueryFilter&&(t=await So.create({geometryType:this.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:this.metadata.timeInfo,fieldsIndex:this.metadata.fieldsIndex,spatialReference:this.metadata.outSpatialReference,filterJSON:this._schema.strategy.full.postQueryFilter})),await this.store.update({metadata:this.metadata,definitionExpression:this._schema.strategy.full.definitionExpression,postQueryFilter:t}),this._queryEngine=(0,m.pR)(this._queryEngine),!0}return this._updateFilterCache(s,n),this._queryEngine=(0,m.pR)(this._queryEngine),a.requiresInvalidation}unsafeSetQueryHistoricMoment(e){"feature"===this._schema.type&&(this._schema.strategy.full.historicMoment=e,this._strategy.unsafeSetQueryHistoricMoment(new Date(e)))}_initStreamMessenger(){this._streamMessenger??=new el(this._connection)}async normalizeOverrides(e){let t={historicMoment:e.historicMoment,commands:{updateWeak:e.commands.updateWeak.map(Wa.Om.fromJSON),removeWeak:e.commands.removeWeak,update:e.commands.update.map(Wa.Om.fromJSON),remove:e.commands.remove,release:e.commands.release}},i=e.commands.updateByIdWeak,r=await this._queryOptimizedFeatures(i);if(r.length!==i.length){let e=new Set(r.map(e=>e.objectId));for(let r of i)e.has(r)||t.commands.removeWeak.push(r)}return t.commands.updateWeak.push(...r),t}async _queryOptimizedFeatures(e){if(0===e.length)return[];let t=[],i=(await this._strategy.queryByObjectId(e,["*"])).getCursor();for(;i.next();)t.push(i.readOptimizedFeatureWorldSpace());return t}getObjectIdsFromGlobalIds(e){let t=this.metadata.globalIdField;if(null==t)throw Error("InternalError: Recieved an edit with globalIds, but not supported by the service");let i=this.store.mapObjectIdsFromGlobalIds(e,t).values();return Array.from(i)}_getCachedObjectIds(e){let t=new Set;for(let{ensureCached:i,filters:r}of e)if(i)for(let e of r)for(let i of e.objectIds??[])t.add(i);return t}_updateFilterCache(e,t){if(!this.hasQueryDisplayFilter)return;let i=new Set,r=new Set;for(let r of t)e.has(r)||i.add(r);for(let i of e)t.has(i)||r.add(i);this._strategy.prepareCacheUpdate(i,r)}async _updateStrategyType(e,t,i){let r=this._createStrategy(e,t);this._connection.onEvent({type:"updateStrategyStart",about:r.about});let s=!!this._strategy;this.store.clear(),this._strategy?.destroy(),this._strategy=r,(0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${i}] FeatureSource.updateStrategy`,{strategy:r});let a=Array.from(this._subscriptions.values());if(!a.length)return void this._connection.onEvent({type:"updateStrategyEnd"});let l=Promise.all(a.map(e=>this._strategy.load(e).then(()=>this._connection.onEvent({type:"loaded",tile:e.tile.id})).catch(t=>this._connection.onEvent({type:"error",tile:e.tile.id,error:t}))));this._updateTracking.consumePromise(l),this._strategy.prepareCacheUpdate(this._getCachedObjectIds(this._filters));try{s&&await l}catch(e){(0,o.jH)(e)}this._connection.onEvent({type:"updateStrategyEnd"}),(0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${i}] FeatureSource.updateStrategyEnd`,{strategy:r})}_createStrategy(e,t){let i={connection:this._connection,store:this.store};switch(t.type){case"feature":return this._createFeatureLoadStrategy(e,t.strategy,i);case"parquet":return this._createParquetLoadStrategy(e,t.strategy,i);case"stream":return this._createStreamLoadStrategy(e,t.strategy,i)}}_createFeatureLoadStrategy(e,t,i){switch(t.type){case"drill-down":return new ql(e,t,i);case"hybrid-tile":return new jl(e,t,i);case"paged-tile":return new $l(e,t,i);case"snapshot":return new Hl(e,t,i)}}_createParquetLoadStrategy(e,t,i){switch(t.type){case"xz":return new iu(e,t,i,this._connection);case"snapshot":return new Kl(e,t,i,this._connection)}}_createStreamLoadStrategy(e,t,i){let r=new cu(e,t,i);return this.streamMessenger.strategy=r,r}}class yu{constructor(e,t){this.tile=e,this.version=t,this._abortController=new AbortController}get key(){return this.tile.key}get signal(){return this._abortController.signal}abort(){this._abortController.abort()}}var _u=i(98291);class gu{constructor(e,t){this.key=new v.A(0,0,0,0),this.bounds=(0,H.vt)(),this.objectIds=new Set,this.key.set(t);let i=e.getLODInfoAt(this.key);this.tileInfoView=e,this.tileInfoView.getTileBounds(this.bounds,this.key,!0),this.resolution=i.resolution,this.level=i.level,this.scale=i.scale,this.minScale=e.zoomToScale(i.level-1),this.maxScale=e.zoomToScale(i.level+1)}get lod(){return this.tileInfoView.getLODInfoAt(this.key)}get id(){return this.key.id}get extent(){let[e,t,i,r]=this.bounds;return{xmin:e,ymin:t,xmax:i,ymax:r}}get hydratedExtent(){return(0,H.w1)(this.bounds,this.tileInfoView.spatialReference)}get transform(){return{originPosition:"upperLeft",scale:[this.resolution,this.resolution],translate:[this.bounds[0],this.bounds[3]]}}get normalizedTransform(){return(0,x.Q1)(this.transform)}createArcadeEvaluationOptions(e){return(0,Ea.N)(this.scale,e)}createChildTiles(){let e=this.key.getChildKeys(),t=_u.A.acquire();for(let i=0;i<e.length;i++)t[i]=new gu(this.tileInfoView,e[i]);return t}getQuantizationParameters(){return Gl.A.fromJSON({mode:"view",originPosition:"upperLeft",tolerance:this.resolution,extent:{xmin:this.bounds[0],ymin:this.bounds[1],xmax:this.bounds[2],ymax:this.bounds[3],spatialReference:this.tileInfoView.spatialReference}})}}class xu{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class bu{constructor(){this._aggregateAdapter={getFeatureObjectIds:e=>this._processor.getFeatureObjectIdsForAggregate(e)},this._subscriptions=new Map,this._updateRequested=!1,this._didSourceRefresh=!1,this._refreshRequested=!0,this._updateSubscriptionRequests=[]}destroy(){this._subscriptions.clear(),this._processor?.destroy(),this._source?.destroy(),this._handles?.remove(),this._updateOverridesRequest=null,this._tileInfoView=null}onAttach(e){(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.onAttach");let t=this._connection,i=d.A.fromJSON(e.tileInfoJSON);this._tileInfoView=new R(i),this._viewExtent=e.initialViewExtent,this._source=new mu(this._aggregateAdapter,this._subscriptions,t),this._processor=new Qo(t,this._source),this._handles=(0,s.vE)([this._source.store.events.on("changed",()=>this._requestUpdate()),this._source.store.events.on("refresh",()=>this._requestRefresh()),(0,u.wB)(()=>this._source.updateTracking.updating,()=>{this._requestUpdate(),(0,o.QZ)(this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}))})])}onDetach(){(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.onDetach"),this.destroy()}set remoteClient(e){this._connection=new p(e)}get features(){let e=this._source?.queryEngine;if(!e)throw new r.A("no-queryEngine","No query engine defined");return e}get aggregates(){let e=this._processor?.aggregateQueryEngine;if(!e)throw new r.A("no-queryEngine","No aggregate query engine defined");return e}get streamMessenger(){return this._source.streamMessenger}getUsedMemory(){return this._source.usedMemory+this._processor.usedMemory}getDisplayFeatures(e){return this._processor.getDisplayFeatures(e)}getDisplayIds(e){return this._processor.getDisplayIds(e)}getObjectIdsFromGlobalIds(e){return this._source.getObjectIdsFromGlobalIds(e)}updateViewExtent(e,t){t&&(this._refreshRequested=!0,this._requestUpdate()),this._viewExtent=e}async updateSchema(e){return(0,n.A)("esri-2d-update-debug")&&this._updateSchemaRequest&&console.error("InternalError: Schema already updating"),this._updateSchemaRequest=new xu({version:e}),this._requestUpdate(),this._updateSchemaRequest.resolver.promise}updateSubscriptions(e){let t=new xu(e);return this._updateSubscriptionRequests.push(t),this._requestUpdate(),t.resolver.promise}async onOverride(e){if(null!=this._updateOverridesRequest)throw new r.A("featurelayer","InternalError - Already processing an edit");this._updateOverridesRequest=new xu(e);let t=this._updateOverridesRequest.resolver.promise;return this._requestUpdate(),t}queryStatistics(){return this._source.statistics.toJSON()}async queryVisibleFeatures(e,t){return this.features.executeQuery(e,t)}async queryHeatmapStatistics(e){let t=Math.round((0,h.Lz)(e.radius)),i=1/0,r=-1/0,s="string"==typeof e.fieldOffset,n=e.fieldOffset??0,a=Array.from(this._subscriptions.values()),o=this._source.chunks(),l=t**2,u=3/(Math.PI*l),c=2*t,d=Math.ceil(512/c);for(let t of a){let a=t.tile,h=new Float64Array(d*d);for(let t of o){let i=t.getTileReader(a);if(!i)continue;let r=i.getCursor();for(;r.next();){let t=1;if(null!=e.field){let i=r.readAttribute(e.field);t=s?-1*i:+i+n}let i=r.readXForDisplay()/c,a=r.readYForDisplay()/c,o=Math.floor(i),p=Math.floor(a);if(o<0||p<0||o>=d||p>=d)continue;let f=((.5+o-i)*c)**2+((.5+p-a)*c)**2;if(f>l)continue;let m=t*(u*(1-f/l)**2);h[p+o*d]+=m}}for(let e=0;e<h.length;e++)i=Math.min(i,h[e]),r=Math.max(r,h[e])}return{max:r,min:i}}async getSampleFeatures(e){let t=this._source.chunks();if(t.reduce((e,t)=>e+t.size(),0)<=e.minFeatureCount){if(!this._source.updateTracking.updating){let e=[];return this._source.store.forEachUnsafe(t=>e.push(t.readLegacyFeatureWorldSpace())),e}return null}let i=new Set,r=[],s=t.map(e=>e.reader.getCursor()),n=new l.A,a=3*e.sampleSize;for(let o=0;o<a&&r.length<e.sampleSize;o++){let e=s[n.getIntRange(0,t.length-1)];if(0===e.getSize())continue;let a=n.getIntRange(0,e.getSize()-1);e.setIndex(a);let o=e.getObjectId();i.has(o)||(i.add(o),r.push(e.readLegacyFeatureWorldSpace()))}return r.length>=e.sampleSize?r:null}_requestUpdate(){this._updateRequested||(this._updateRequested=!0,(0,a.d)(()=>this._scheduleNextUpdate()))}_requestRefresh(){this._didSourceRefresh=!0,this._requestUpdate()}_scheduleNextUpdate(){this._updateRequested&&(this._ongoingUpdate||(this._ongoingUpdate=(0,c.oV)(this._doUpdate()).finally(()=>{this._ongoingUpdate=null,this._scheduleNextUpdate()}),this._updateRequested=!1))}_subscribe(e){let t=e.tileId;if(this._subscriptions.has(t))return;(0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${t}] Pipeline.subscribe`);let i=new gu(this._tileInfoView,t),r=new yu(i,e.version);this._subscriptions.set(t,r),this._source.onSubscribe(r),this._processor.onSubscribe(r)}_unsubscribe(e){let t=this._subscriptions.get(e);t&&((0,n.A)("esri-2d-update-debug")&&console.debug(`Tile[${e}] Pipeline.unsubscribe`),t.abort(),this._source.onUnsubscribe(t),this._processor.onUnsubscribe(t),this._subscriptions.delete(t.key.id))}async _doUpdate(){if((0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateStart"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}),this._updateSubscriptionRequests.length){let e=this._updateSubscriptionRequests;this._updateSubscriptionRequests=[];for(let t of e)this._doUpdateSubscriptions(t.inner),t.resolver.resolve()}let e=this._updateSchemaRequest;this._updateSchemaRequest=null;let t=!1;if(null!=e){let{version:i}=e.inner,r=await this._connection.layerView.updateSchemaStart();r&&(t=await this._doUpdateSchema(r,i))}let i=this._updateOverridesRequest;if(this._updateOverridesRequest=null,null!=i){(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.applyOverride",i.inner),null!=i.inner.historicMoment&&this._source.unsafeSetQueryHistoricMoment(i.inner.historicMoment);let e=await this._source.normalizeOverrides(i.inner);await this._source.applyOverride(e),(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.endOverride",i.inner)}await this._source.applyCacheUpdate();let r=this._source.chunks(),s=this._source.updateTracking.updating;this._processor.requiresInvalidation(r)&&(t=!0),this._didSourceRefresh&&=(t=!0,!1),this._refreshRequested&&(this._refreshRequested=!1,t=!0),t&&(this._processor.invalidate(),await this._connection.container.updateRenderState(this._processor.version));let a=this._source.cleanup();this._processor.removeChunks(a);try{let t=this._source.takeOverrideUpdate();if(null!=t&&this._subscriptions.size){(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesStart"),await this._connection.container.lockForOverrides();try{await this._processor.applyOverrideUpdate(t,this._viewExtent)}catch(e){(0,n.A)("esri-2d-update-debug")&&console.debug("InternalError",e)}await this._connection.container.unlockForOverrides(),(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesEnd")}this._subscriptions.size&&((0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksStart"),await this._processor.updateChunks(r,s,this._viewExtent),(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksEnd"))}catch(e){(0,o.jH)(e)}e?await this._connection.layerView.updateSchemaEnd(t):t&&await this._connection.container.swapRenderState(),i?.resolver.resolve(),e?.resolver.resolve(),this._connection.onEvent({type:"performance",usedMemory:this.getUsedMemory()}),this._updateRequested?((0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=true]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0})):((0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=false, After flush]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:this._updateRequested}))}async _doUpdateSchema(e,t){(0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateStart`,{schema:e});let i={tileInfo:this._tileInfoView?.tileInfo},r=await this._source.update(e.source,e.processor.storage.filters,t),s=Array.from(this._subscriptions.values()),a=this._processor.update(e,t,i,r,s);return(0,n.A)("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateEnd`),a}_doUpdateSubscriptions(e){(0,n.A)("esri-2d-update-debug")&&console.debug("Pipeline.updateSubscriptions",e);for(let t of e.subscribe)this._subscribe(t);for(let t of e.unsubscribe)this._unsubscribe(t)}}},44159(e,t,i){i.d(t,{A:()=>s});var r=i(93687);class s{static{this.pool=new r.A(()=>new s(""),null,null,25,50)}static getId(e,t,i,r){return"object"==typeof e?`${e.level}/${e.row}/${e.col}/${e.world}`:`${e}/${t}/${i}/${r}`}constructor(e,t,i,r){this.set(e,t,i,r)}get key(){return this}get id(){return this.toString()}get normalizedId(){return`${this.level}/${this.row}/${this.col}`}set id(e){this.set(e)}get hash(){let e=4095&this.row,t=4095&this.col,i=63&this.level;return(3&this.world)<<30|t<<22|e<<8|i}acquire(e,t,i,r){this.set(e,t,i,r)}contains(e){let t=e.level-this.level;return t>=0&&this.row===e.row>>t&&this.col===e.col>>t&&this.world===e.world}containsChild(e){let t=e.level-this.level;return t>0&&this.row===e.row>>t&&this.col===e.col>>t&&this.world===e.world}equals(e){return this.level===e.level&&this.row===e.row&&this.col===e.col&&this.world===e.world}clone(){return new s(this)}release(){this.level=0,this.row=0,this.col=0,this.world=0}set(e,t,i,r){if(null==e)this.level=0,this.row=0,this.col=0,this.world=0;else if("object"==typeof e)this.level=e.level||0,this.row=e.row||0,this.col=e.col||0,this.world=e.world||0;else if("string"==typeof e){let[t,i,r,s]=e.split("/");this.level=parseFloat(t),this.row=parseFloat(i),this.col=parseFloat(r),this.world=parseFloat(s)}else this.level=+e,this.row=+t,this.col=+i,this.world=+r||0;return this}toString(){return`${this.level}/${this.row}/${this.col}/${this.world}`}getParentKey(){return this.level<=0?null:new s(this.level-1,this.row>>1,this.col>>1,this.world)}getNormalizedNeighbor(e,t,i){let r=this.clone();return r.col+=e,r.row+=t,i.normalizeKey(r),r}getChildKeys(){let e=this.level+1,t=this.row<<1,i=this.col<<1,r=this.world;return[new s(e,t,i,r),new s(e,t,i+1,r),new s(e,t+1,i,r),new s(e,t+1,i+1,r)]}compareRowMajor(e){return this.row<e.row?-1:this.row>e.row?1:this.col<e.col?-1:+(this.col>e.col)}}}}]);
|