@arcgis/core 4.32.3 → 4.32.4
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/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{9bd0d85706f4cc2f3e9f.js → 01582612e10e6a880eb5.js} +1 -1
- package/assets/esri/core/workers/chunks/{53810519ff5922b42cd2.js → 08a17dd3c573d1154234.js} +1 -1
- package/assets/esri/core/workers/chunks/{fc6264f3fc38f5e9e763.js → 0f4b4e50ad9d634c8ed0.js} +1 -1
- package/assets/esri/core/workers/chunks/{272662e4e28341419b4f.js → 109a56fc07f814c4baa4.js} +1 -1
- package/assets/esri/core/workers/chunks/10ca2107c99fab6bcc3b.js +1 -0
- package/assets/esri/core/workers/chunks/{57924f4909f2cbe5d64c.js → 1accbc048b74857269e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{3bad184751fcb26c003c.js → 1d51c064045e9c47bd2e.js} +1 -1
- package/assets/esri/core/workers/chunks/{c032bcd25e2e7a57ad43.js → 1ede0e123d0addadff63.js} +1 -1
- package/assets/esri/core/workers/chunks/{d6b04f8a72e0c67ecef0.js → 1f3d2308e48f0e4758e7.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ebdd0701e77bb28c75d.js → 2079f9d28e4199714f22.js} +1 -1
- package/assets/esri/core/workers/chunks/{4848a3e31632d15dc4ce.js → 20ac6ee693da8750ac75.js} +1 -1
- package/assets/esri/core/workers/chunks/{401588b9d18866ed83e2.js → 24e174197a1be1f3d36c.js} +1 -1
- package/assets/esri/core/workers/chunks/{61243217aed5de012e93.js → 25af8b25ab853941a992.js} +1 -1
- package/assets/esri/core/workers/chunks/285dd7683f57d9d3667d.js +1 -0
- package/assets/esri/core/workers/chunks/{82facb23dfaba2819bc7.js → 2ec7931a6192e55cc4b1.js} +1 -1
- package/assets/esri/core/workers/chunks/31a5ee1907775cd10a54.js +1 -0
- package/assets/esri/core/workers/chunks/{3835c2884c55e73dc202.js → 33db840002a2b77abc33.js} +1 -1
- package/assets/esri/core/workers/chunks/364445d5a7d90c276246.js +1 -0
- package/assets/esri/core/workers/chunks/39d1a1ef9695405c70cc.js +1 -0
- package/assets/esri/core/workers/chunks/{0a5689348d544090006d.js → 3c23e567cfb7372c44ba.js} +1 -1
- package/assets/esri/core/workers/chunks/3cdd12250fbecc137f06.js +1 -0
- package/assets/esri/core/workers/chunks/4155d28c0ea3d7615af3.js +1 -0
- package/assets/esri/core/workers/chunks/4990affabd907281cddd.js +1 -0
- package/assets/esri/core/workers/chunks/4e867c6e204aa457043a.js +1 -0
- package/assets/esri/core/workers/chunks/548ff32df8b8cc8df535.js +1 -0
- package/assets/esri/core/workers/chunks/57a51abfc708fa937eab.js +1 -0
- package/assets/esri/core/workers/chunks/{cf285e45c18cd4399dde.js → 5869cc7d1d90fb16c2e6.js} +1 -1
- package/assets/esri/core/workers/chunks/5d766ecc16b2389156ef.js +1 -0
- package/assets/esri/core/workers/chunks/{6fa1f1e431aae1794ce3.js → 5dd92428f2ca78dabfa2.js} +1 -1
- package/assets/esri/core/workers/chunks/5e2e92cc87aab56e5393.js +1 -0
- package/assets/esri/core/workers/chunks/{2c1a85a801cb4d9d737e.js → 5fbdb5fea7d6676fcf19.js} +1 -1
- package/assets/esri/core/workers/chunks/62e9e51564d7de62a01b.js +1 -0
- package/assets/esri/core/workers/chunks/{d60da671aba70485050e.js → 6e6422eda398774acbc7.js} +1 -1
- package/assets/esri/core/workers/chunks/7019e238f173ff1b13f0.js +1 -0
- package/assets/esri/core/workers/chunks/75b5502fbea3b3fb8959.js +1 -0
- package/assets/esri/core/workers/chunks/{f52ed527b46c316eb369.js → 778f82f16b9719bea005.js} +1 -1
- package/assets/esri/core/workers/chunks/785fe520685b0efea0ff.js +1 -0
- package/assets/esri/core/workers/chunks/{d29c3bf29fcd7fa31f1a.js → 7a4eecabeb86a23d832c.js} +1 -1
- package/assets/esri/core/workers/chunks/{5984ab09ea8010f8a874.js → 7aa763e7747530f6046f.js} +1 -1
- package/assets/esri/core/workers/chunks/7b4880b2dc6b01d70ccc.js +1 -0
- package/assets/esri/core/workers/chunks/7d94ba0a23fd20f18e32.js +973 -0
- package/assets/esri/core/workers/chunks/{30bd5b3204e09f516ea2.js → 7f87cf3d6a365d987f69.js} +1 -1
- package/assets/esri/core/workers/chunks/{df506c4f81affce248c4.js → 7fe76e764c331b8ac938.js} +1 -1
- package/assets/esri/core/workers/chunks/{e4b3f2d5c43518b0cde7.js → 83c1fecd2ef7e804bcad.js} +1 -1
- package/assets/esri/core/workers/chunks/83e340f4321f363c4bc7.js +1 -0
- package/assets/esri/core/workers/chunks/{21c7265f1f2a718de7c6.js → 84cc488555df6431facc.js} +1 -1
- package/assets/esri/core/workers/chunks/882f703365ca81f192bc.js +1 -0
- package/assets/esri/core/workers/chunks/892ef3f6a46ab0fd7055.js +1 -0
- package/assets/esri/core/workers/chunks/89cb4f2f6da7c313d6a3.js +1 -0
- package/assets/esri/core/workers/chunks/{e481e7d508274bc83c70.js → 8aebd8c89c9b653bade9.js} +1 -1
- package/assets/esri/core/workers/chunks/{1787932b984ec8977095.js → 90e890fe7c56c4b3c47a.js} +1 -1
- package/assets/esri/core/workers/chunks/{6ea02ff25f051c08e6c3.js → 91cce330c2720db377ec.js} +1 -1
- package/assets/esri/core/workers/chunks/{a864ef9b584c83ebf6ae.js → 95ad76e58452b60fb79f.js} +1 -1
- package/assets/esri/core/workers/chunks/9cebecee1eee5fbe849e.js +1 -0
- package/assets/esri/core/workers/chunks/a2f3c5f4aeb997e59205.js +1 -0
- package/assets/esri/core/workers/chunks/{3f6516af411256d90a03.js → a559db8654b4f83fd79b.js} +1 -1
- package/assets/esri/core/workers/chunks/a8154c45aa798a8dc907.js +1 -0
- package/assets/esri/core/workers/chunks/b141cb82c13f6943e657.js +1 -0
- package/assets/esri/core/workers/chunks/b2696362f758e3f7c983.js +1 -0
- package/assets/esri/core/workers/chunks/b399173e13d8675f08bf.js +1 -0
- package/assets/esri/core/workers/chunks/{5cf08ee5114273163e09.js → b3aeda290470dcb2bdd2.js} +1 -1
- package/assets/esri/core/workers/chunks/{dff4a9d656b84fe3e052.js → bb73cd34fbae935ccbcc.js} +1 -1
- package/assets/esri/core/workers/chunks/bf7e8ee652abec309cf0.js +1 -0
- package/assets/esri/core/workers/chunks/{35bcb0622234b38d85b4.js → c04091eea7089dc2e864.js} +1 -1
- package/assets/esri/core/workers/chunks/c593b6c7e145526efef0.js +314 -0
- package/assets/esri/core/workers/chunks/{4300c80fa10c5d9141e8.js → c83b26ff96e39266adc2.js} +1 -1
- package/assets/esri/core/workers/chunks/cb6b9f29d4471532e078.js +1 -0
- package/assets/esri/core/workers/chunks/{17213c3fc63f580e5b73.js → cca7a3dbf899c6a9ce69.js} +1 -1
- package/assets/esri/core/workers/chunks/{152becae48572299b07f.js → cee3a38b92a48a58c4d0.js} +1 -1
- package/assets/esri/core/workers/chunks/d0cbf3a455819d2e2686.js +1 -0
- package/assets/esri/core/workers/chunks/d57c7fb0340d800e7d27.js +1 -0
- package/assets/esri/core/workers/chunks/d94e8a1f64499ec9a22e.js +1 -0
- package/assets/esri/core/workers/chunks/da7eaf403212704b74f5.js +1 -0
- package/assets/esri/core/workers/chunks/{8722d05ae9b0aa5162a4.js → ddcbab04b9559cf310e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{28dbbfc44cc2bdcd221d.js → df850d4c94a39a550229.js} +1 -1
- package/assets/esri/core/workers/chunks/e24307ee8b6d101da39a.js +1 -0
- package/assets/esri/core/workers/chunks/{0b8bf1966653c326e95a.js → e2f1e6c56c494a531bbf.js} +1 -1
- package/assets/esri/core/workers/chunks/e4ab971764d2e57c9e4a.js +1 -0
- package/assets/esri/core/workers/chunks/{5719471414810b6a9aec.js → e56647e61296643c5f84.js} +1 -1
- package/assets/esri/core/workers/chunks/{a12afed58acff17708ca.js → e6087eda5e3b7e5ad3e1.js} +1 -1
- package/assets/esri/core/workers/chunks/e7f866969be8477b6622.js +1 -0
- package/assets/esri/core/workers/chunks/{213249f3c7d639c04305.js → ecbfff23f0716446f050.js} +1 -1
- package/assets/esri/core/workers/chunks/f0456d3eda9861f7e517.js +1 -0
- package/assets/esri/core/workers/chunks/{37cfd102b6ab5b959f9d.js → f1fdade1a5ff27fddef6.js} +1 -1
- package/assets/esri/core/workers/chunks/f4b3199e7e45d9ceb91f.js +1 -0
- package/assets/esri/core/workers/chunks/f8e215ea3f420e666af4.js +1 -0
- package/assets/esri/core/workers/chunks/fa51036a48eec4175c74.js +1 -0
- package/assets/esri/core/workers/chunks/ffd987a0662167b58ff9.js +1 -0
- package/chunks/Bufferer-B-V7yYm-.js +1 -1
- package/chunks/Distance2DCalculator-Coa0qAFt.js +1 -1
- package/chunks/Envelope.js +1 -1
- package/chunks/GeodeticDistanceCalculator-D4iQ-_NX.js +1 -1
- package/chunks/OperatorClip.js +1 -1
- package/chunks/OperatorCut.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/ProjectionTransformation.js +1 -1
- package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
- package/chunks/disjointOperator.js +1 -1
- package/core/timeUtils.js +1 -1
- package/editing/sharedTemplates/SharedTemplateProvider.js +1 -1
- package/editing/sharedTemplates/executor/builders/support/builderUtils.js +1 -1
- package/editing/sharedTemplates/executor/createTemplateExecutor.js +1 -1
- package/editing/sharedTemplates/executor/support/createFeatureServiceEdit.js +5 -0
- package/editing/sharedTemplates/executor/support/createPresetServiceEdit.js +5 -0
- package/editing/sharedTemplates/support/sharedTemplateErrors.js +1 -1
- package/editing/sharedTemplates/templateDefinitions/GroupTemplateDefinition.js +1 -1
- package/editing/templateUtils.js +1 -1
- package/geometry/operators/extendOperator.js +1 -1
- package/geometry/operators/gx/operatorAutoComplete.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
- package/geometry/operators/gx/operatorIntegrate.js +1 -1
- package/geometry/operators/gx/operatorLabelPoint.js +1 -1
- package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorSimplify.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/gx/operatorUnion.js +1 -1
- package/geometry/operators/json/disjointOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/apiConverter.js +1 -1
- package/geometry/operators/support/initNoPeFactory.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/intl/date.js +1 -1
- package/kernel.js +1 -1
- package/layers/graphics/sources/WFSSource.js +1 -1
- package/layers/graphics/sources/WFSSourceWorker.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/support/FieldsIndex.js +1 -1
- package/networks/support/UtilityNetworkLookupHelper.js +5 -0
- package/package.json +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/guards.js +1 -1
- package/support/revision.js +1 -1
- package/time/TimeExtent.js +1 -1
- package/time/constants.js +5 -0
- package/time/timeZoneUtils.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/Utils.js +1 -1
- package/views/2d/engine/webgl/mesh/factories/ResourceProxy.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/constants.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +5 -0
- package/views/2d/engine/webgl/urlUtils.js +5 -0
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
- package/views/2d/layers/features/sources/FeatureSource.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/Overrides.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureCompressionWorkerHandle.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/View.js +1 -1
- package/views/support/TextureCompressionHelper.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/webmap/InitialViewProperties.js +1 -1
- package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/Directions/DirectionsViewModel.js +1 -1
- package/widgets/Editor/AddAssociationWorkflow.js +1 -1
- package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/AssociationDetails.js +1 -1
- package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
- package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationSettings.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/UtilityNetworkAssociationAddAssociationViewModel.js +1 -1
- package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/DataCaptureAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
- package/widgets/OrientedImageryViewer/symbols.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/TimeZoneLabel.js +1 -1
- package/widgets/support/UtilityNetworkAssociations/utils/createAssociation.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/formatPercentAlong.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/getAssociationTitle.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/getFeatureTitle.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/isConnectivity.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/isConnectivityMidspan.js +5 -0
- package/widgets/support/UtilityNetworkAssociations/utils/isFromElement.js +5 -0
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0167cf867d8e46c818b0.js +0 -1
- package/assets/esri/core/workers/chunks/0a8e388e96af44deeabb.js +0 -1
- package/assets/esri/core/workers/chunks/16934a38974256fffbec.js +0 -1
- package/assets/esri/core/workers/chunks/16f82e9d98371431b46d.js +0 -1
- package/assets/esri/core/workers/chunks/17fe69462cba5eb895b8.js +0 -1
- package/assets/esri/core/workers/chunks/192569dfa7c0ea8dd864.js +0 -1
- package/assets/esri/core/workers/chunks/207c040b0e42358a5389.js +0 -1
- package/assets/esri/core/workers/chunks/24c94f97a76646d415ae.js +0 -1
- package/assets/esri/core/workers/chunks/2ebf66e21d155a27b23e.js +0 -1
- package/assets/esri/core/workers/chunks/333091ab2e267652ed56.js +0 -1
- package/assets/esri/core/workers/chunks/37323e58dbec303f5054.js +0 -1
- package/assets/esri/core/workers/chunks/39112ecf6b45b166cad9.js +0 -1
- package/assets/esri/core/workers/chunks/4122d10bc910e888eee1.js +0 -1
- package/assets/esri/core/workers/chunks/433576983754f690bcc7.js +0 -1
- package/assets/esri/core/workers/chunks/476205ee4414ed80666a.js +0 -1
- package/assets/esri/core/workers/chunks/5721557a1d8eab23a55b.js +0 -1
- package/assets/esri/core/workers/chunks/584216b52413cf85fecc.js +0 -1
- package/assets/esri/core/workers/chunks/610c3249fe81e370af8c.js +0 -1
- package/assets/esri/core/workers/chunks/6ab476f696290d190c6c.js +0 -1
- package/assets/esri/core/workers/chunks/7cb09e58bcc537ec1f7a.js +0 -1
- package/assets/esri/core/workers/chunks/7e23c15b2a02116f7189.js +0 -1
- package/assets/esri/core/workers/chunks/80744ad7f7656ef918db.js +0 -1
- package/assets/esri/core/workers/chunks/83fe9a8002a4fc96e534.js +0 -1
- package/assets/esri/core/workers/chunks/9306bfe7ab58e71b75ea.js +0 -1
- package/assets/esri/core/workers/chunks/a5e9ea13e844a62b2a7f.js +0 -1
- package/assets/esri/core/workers/chunks/b44cf0e4c2f93408cabc.js +0 -1
- package/assets/esri/core/workers/chunks/b68bddd0c4ca91493543.js +0 -1
- package/assets/esri/core/workers/chunks/b97673755cd2cc5164e8.js +0 -1
- package/assets/esri/core/workers/chunks/bc25e34a1db735967dc5.js +0 -314
- package/assets/esri/core/workers/chunks/caf410ed75c40b3703eb.js +0 -1
- package/assets/esri/core/workers/chunks/cb0cbfede273455f27bd.js +0 -1
- package/assets/esri/core/workers/chunks/d279e4b09042988f93ae.js +0 -1
- package/assets/esri/core/workers/chunks/d3d0c7624eb139994213.js +0 -1
- package/assets/esri/core/workers/chunks/d4e7de3eb7c0cf6efc19.js +0 -973
- package/assets/esri/core/workers/chunks/d599ba865da87b487b1b.js +0 -1
- package/assets/esri/core/workers/chunks/ddc30044f61a2c2df3fe.js +0 -1
- package/assets/esri/core/workers/chunks/e2d98ac47d8a536e8a5e.js +0 -1
- package/assets/esri/core/workers/chunks/e533c329246ddc9522b6.js +0 -1
- package/assets/esri/core/workers/chunks/f06231c14c0c0e5525bd.js +0 -1
- package/assets/esri/core/workers/chunks/f117a89d1f4001a1f9f0.js +0 -1
- package/assets/esri/core/workers/chunks/f9e48205178a5a804d38.js +0 -1
- package/assets/esri/core/workers/chunks/faf9063420262ea40fd8.js +0 -1
- package/assets/esri/core/workers/chunks/fd8790291348fb7ead55.js +0 -1
- package/assets/esri/core/workers/chunks/fe817283bbcbca8fb296.js +0 -1
- package/editing/sharedTemplates/executor/support/createServiceEdit.js +0 -5
- package/widgets/support/UtilityNetworkAssociations/utilityNetworkUtils.js +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[624,7136],{51624:(e,t,r)=>{r.d(t,{A:()=>h});var s,n,i=r(44208),o=r(69397),a=r(93687);(n=s||(s={}))[n.varint=0]="varint",n[n.fixed64=1]="fixed64",n[n.delimited=2]="delimited",n[n.fixed32=5]="fixed32",n[n.unknown=99]="unknown";const c=4294967296,u=new TextDecoder("utf-8"),l=(0,i.A)("safari")||(0,i.A)("ios")?6:(0,i.A)("ff")?12:32;class h{constructor(e,t,r=0,n=(e?e.byteLength:0)){this._tag=0,this._dataType=s.unknown,this._init(e,t,r,n)}_init(e,t,r,s){this._data=e,this._dataView=t,this._pos=r,this._end=s}get usedMemory(){return 64+(0,o.Qf)(this._data)}asUnsafe(){return this}clone(){return new h(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*c;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*c;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,s){const n=this.getMessage(),i=e(n,t,r,s);return n.release(),i}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=h.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){h.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case s.varint:this._decodeVarint();break;case s.fixed64:this._skip(8);break;case s.delimited:this._skip(this._getLength());break;case s.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,s=0;if(this._end-t>=10)do{if(s=e[t++],r|=127&s,!(128&s))break;if(s=e[t++],r|=(127&s)<<7,!(128&s))break;if(s=e[t++],r|=(127&s)<<14,!(128&s))break;if(s=e[t++],r|=(127&s)<<21,!(128&s))break;if(s=e[t++],r+=268435456*(127&s),!(128&s))break;if(s=e[t++],r+=34359738368*(127&s),!(128&s))break;if(s=e[t++],r+=4398046511104*(127&s),!(128&s))break;if(s=e[t++],r+=562949953421312*(127&s),!(128&s))break;if(s=e[t++],r+=72057594037927940*(127&s),!(128&s))break;if(s=e[t++],r+=0x8000000000000000*(127&s),!(128&s))break;throw new Error("Varint too long!")}while(0);else{let n=1;for(;t!==this._end&&(s=e[t],128&s);)++t,r+=(127&s)*n,n*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=s*n}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,s=0;const n=1&e[this._pos];if(s=e[this._pos++],r|=127&s,!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r|=(127&s)<<7,!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r|=(127&s)<<14,!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r|=(127&s)<<21,!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r+=268435456*(127&s),!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r+=34359738368*(127&s),!(128&s))return n?-(r+1)/2:r/2;if(s=e[this._pos++],r+=4398046511104*(127&s),!(128&s))return n?-(r+1)/2:r/2;if(t=BigInt(r),s=e[this._pos++],t+=0x2000000000000n*BigInt(127&s),!(128&s))return Number(n?-(t+1n)/2n:t/2n);if(s=e[this._pos++],t+=0x100000000000000n*BigInt(127&s),!(128&s))return Number(n?-(t+1n)/2n:t/2n);if(s=e[this._pos++],t+=0x8000000000000000n*BigInt(127&s),!(128&s))return Number(n?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==s.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>l){const s=e.subarray(t,r);return u.decode(s)}let s="",n="";for(let i=t;i<r;++i){const t=e[i];128&t?n+="%"+t.toString(16):(s+=decodeURIComponent(n)+String.fromCharCode(t),n="")}return n.length&&(s+=decodeURIComponent(n)),s}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}}h.pool=new a.A(h,void 0,(e=>{e._data=null,e._dataView=null}))},17136:(e,t,r)=>{r.d(t,{O7:()=>x,el:()=>S});var s=r(92602),n=r(49186),i=r(53966),o=r(39829),a=r(82799),c=r(80754),u=r(21325),l=r(28735),h=r(78888),f=r(65864),d=r(2272),g=r(84952),p=r(92300);const y=()=>i.A.getLogger("esri.geometry.support.normalizeUtils");function m(e){return"polygon"===e[0].type}function _(e){return"polyline"===e[0].type}function b(e,t,r){if(t){const t=function(e,t){if(!(e instanceof a.A||e instanceof o.A)){const e="straightLineDensify: the input geometry is neither polyline nor polygon";throw y().error(e),new n.A(e)}const r=(0,c.r8)(e),s=[];for(const e of r){const r=[];s.push(r),r.push([e[0][0],e[0][1]]);for(let s=0;s<e.length-1;s++){const n=e[s][0],i=e[s][1],o=e[s+1][0],a=e[s+1][1],c=Math.sqrt((o-n)*(o-n)+(a-i)*(a-i)),u=(a-i)/c,l=(o-n)/c,h=c/t;if(h>1){for(let e=1;e<=h-1;e++){const s=e*t,o=l*s+n,a=u*s+i;r.push([o,a])}const e=(c+Math.floor(h-1)*t)/2,s=l*e+n,o=u*e+i;r.push([s,o])}r.push([o,a])}}return function(e){return"polygon"===e.type}(e)?new o.A({rings:s,spatialReference:e.spatialReference}):new a.A({paths:s,spatialReference:e.spatialReference})}(e,1e6);e=(0,l.ci)(t,!0)}return r&&(e=(0,c.kS)(e,r)),e}function w(e,t,r){if(Array.isArray(e)){const s=e[0];if(s>t){const r=(0,c.kd)(s,t);e[0]=s+r*(-2*t)}else if(s<r){const t=(0,c.kd)(s,r);e[0]=s+t*(-2*r)}}else{const s=e.x;if(s>t){const r=(0,c.kd)(s,t);e=e.clone().offset(r*(-2*t),0)}else if(s<r){const t=(0,c.kd)(s,r);e=e.clone().offset(t*(-2*r),0)}}return e}function k(e,t){let r=-1;for(let s=0;s<t.cutIndexes.length;s++){const n=t.cutIndexes[s],i=t.geometries[s],o=(0,c.r8)(i);for(let e=0;e<o.length;e++){const t=o[e];t.some((r=>{if(r[0]<180)return!0;{let r=0;for(let e=0;e<t.length;e++){const s=t[e][0];r=s>r?s:r}r=Number(r.toFixed(9));const s=-360*(0,c.kd)(r,180);for(let r=0;r<t.length;r++){const t=i.getPoint(e,r);i.setPoint(e,r,t.clone().offset(s,0))}return!0}}))}if(n===r){if(m(e))for(const t of(0,c.r8)(i))e[n]=e[n].addRing(t);else if(_(e))for(const t of(0,c.r8)(i))e[n]=e[n].addPath(t)}else r=n,e[n]=i}return e}async function S(e,t,r){if(!Array.isArray(e))return S([e],t);t&&"string"!=typeof t&&y().warn("normalizeCentralMeridian()","The url object is deprecated, use the url string instead");const n="string"==typeof t?t:t?.url??s.A.geometryServiceUrl;let i,m,_,x,F,A,T,R,q=0;const v=[],I=[];for(const t of e)if(null!=t)if(i||(i=t.spatialReference,m=(0,u.Vp)(i),_=i.isWebMercator,A=_?102100:4326,x=c.j7[A].maxX,F=c.j7[A].minX,T=c.j7[A].plus180Line,R=c.j7[A].minus180Line),m)if("mesh"===t.type)I.push(t);else if("point"===t.type)I.push(w(t.clone(),x,F));else if("multipoint"===t.type){const e=t.clone();e.points=e.points.map((e=>w(e,x,F))),I.push(e)}else if("extent"===t.type){const e=t.clone()._normalize(!1,!1,m);I.push(e.rings?new o.A(e):e)}else if(t.extent){const e=t.extent,r=(0,c.kd)(e.xmin,F)*(2*x);let s=0===r?t.clone():(0,c.kS)(t.clone(),r);e.offset(r,0);let{xmin:n,xmax:i}=e;n=Number(n.toFixed(9)),i=Number(i.toFixed(9)),e.intersects(T)&&i!==x?(q=i>q?i:q,s=b(s,_),v.push(s),I.push("cut")):e.intersects(R)&&n!==F?(q=i*(2*x)>q?i*(2*x):q,s=b(s,_,360),v.push(s),I.push("cut")):I.push(s)}else I.push(t.clone());else I.push(t);else I.push(t);let N=(0,c.kd)(q,x),O=-90;const M=N,E=new a.A;for(;N>0;){const e=360*N-180;E.addPath([[e,O],[e,-1*O]]),O*=-1,N--}if(v.length>0&&M>0){const t=k(v,await async function(e,t,r,s){const n=(0,d.Dl)(e),i=t[0].spatialReference,o={...s,responseType:"json",query:{...n.query,f:"json",sr:(0,u.YX)(i),target:JSON.stringify({geometryType:(0,f.$B)(t[0]),geometries:t}),cutter:JSON.stringify(r)}},a=await(0,h.A)(n.path+"/cut",o),{cutIndexes:c,geometries:l=[]}=a.data;return{cutIndexes:c,geometries:l.map((e=>{const t=(0,f.rS)(e);return t.spatialReference=i,t}))}}(n,v,E,r)),s=[],i=[];for(let r=0;r<I.length;r++){const n=I[r];if("cut"!==n)i.push(n);else{const n=t.shift(),o=e[r];null!=o&&"polygon"===o.type&&o.rings&&o.rings.length>1&&n.rings.length>=o.rings.length?(s.push(n),i.push("simplify")):i.push(_?(0,l.Gh)(n):n)}}if(!s.length)return i;const o=await async function(e,t,r){const s="string"==typeof e?(0,g.An)(e):e,n=t[0].spatialReference,i=(0,f.$B)(t[0]),o={...r,query:{...s.query,f:"json",sr:(0,u.YX)(n),geometries:JSON.stringify((0,p.X)(t))}},{data:a}=await(0,h.A)(s.path+"/simplify",o);return(0,p.V)(a.geometries,i,n)}(n,s,r),a=[];for(let e=0;e<i.length;e++){const t=i[e];"simplify"!==t?a.push(t):a.push(_?(0,l.Gh)(o.shift()):o.shift())}return a}const C=[];for(let e=0;e<I.length;e++){const t=I[e];if("cut"!==t)C.push(t);else{const e=v.shift();C.push(!0===_?(0,l.Gh)(e):e)}}return C}function x(e,t,r){const s=(0,u.Vp)(r);if(null==s)return e;const[n,i]=s.valid,o=2*i;let a=0,c=0;t>i?a=Math.ceil(Math.abs(t-i)/o):t<n&&(a=-Math.ceil(Math.abs(t-n)/o)),e>i?c=Math.ceil(Math.abs(e-i)/o):e<n&&(c=-Math.ceil(Math.abs(e-n)/o));let l=e+(a-c)*o;const h=l-t;return h>i?l-=o:h<n&&(l+=o),l}},80754:(e,t,r)=>{r.d(t,{j7:()=>o,kS:()=>c,kd:()=>a,r8:()=>u});var s=r(82799),n=r(16930),i=r(65864);const o={102100:{maxX:20037508.342788905,minX:-20037508.342788905,plus180Line:new s.A({paths:[[[20037508.342788905,-20037508.342788905],[20037508.342788905,20037508.342788905]]],spatialReference:n.A.WebMercator}),minus180Line:new s.A({paths:[[[-20037508.342788905,-20037508.342788905],[-20037508.342788905,20037508.342788905]]],spatialReference:n.A.WebMercator})},4326:{maxX:180,minX:-180,plus180Line:new s.A({paths:[[[180,-180],[180,180]]],spatialReference:n.A.WGS84}),minus180Line:new s.A({paths:[[[-180,-180],[-180,180]]],spatialReference:n.A.WGS84})}};function a(e,t){return Math.ceil((e-t)/(2*t))}function c(e,t){const r=u(e);for(const e of r)for(const r of e)r[0]+=t;return e}function u(e){return(0,i.Bi)(e)?e.rings:e.paths}},30624:(e,t,r)=>{r.r(t),r.d(t,{createConnection:()=>R});var s=r(90237),n=r(78888),i=r(49186),o=r(53966),a=r(74887),c=r(84952),u=(r(44208),r(87811),r(40608)),l=r(16930),h=r(65864),f=r(10107),d=r(62815),g=r(65529);let p=class extends g.A.EventedAccessor{destroy(){this.emit("destroy")}get connectionError(){return this.errorString?new i.A("stream-connection",this.errorString):null}onFeature(e){this.emit("data-received",e)}onMessage(e){this.emit("message-received",e)}};(0,s._)([(0,f.MZ)({readOnly:!0})],p.prototype,"connectionError",null),p=(0,s._)([(0,u.$)("esri.layers.support.StreamConnection")],p);const y=p;var m,_;(_=m||(m={}))[_.CONNECTING=0]="CONNECTING",_[_.OPEN=1]="OPEN",_[_.CLOSING=2]="CLOSING",_[_.CLOSED=3]="CLOSED";let b=class extends y{constructor(e){super({}),this._outstandingMessages=[],this.errorString=null;const{geometryType:t,spatialReference:r,sourceSpatialReference:s}=e;this._config=e,this._featureZScaler=(0,d.N)(t,s,r),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 m.CONNECTING:case m.OPEN:return"connected";case m.CLOSING:case m.CLOSED:return"disconnected"}}sendMessageToSocket(e){null!=this._websocket?this._websocket.send(JSON.stringify(e)):this._outstandingMessages.push(e)}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.source.path,t=1e3,r=0){try{if(this.destroyed)return;const t=(0,c.a6)(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(s){const n=t/1e3;return this._config.maxReconnectionAttempts&&r>=this._config.maxReconnectionAttempts?(o.A.getLogger(this).error(new i.A("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(o.A.getLogger(this).error(new i.A("websocket-connection",`Failed to connect. Attempting to reconnect in ${n}s`,s)),await(0,a.Pl)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),r+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{const t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void o.A.getLogger(this).error(new i.A("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise(((t,r)=>{const s=new WebSocket(e);s.onopen=()=>{if(s.onopen=null,this.destroyed)return s.onclose=null,void s.close();s.onclose=e=>this._onClose(e),s.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(s),t(s)},s.onclose=e=>{s.onopen=s.onclose=null,r(e)}}))}async _handshake(e=1e4){const t=this._websocket;if(null==t)return;const r=(0,a.Tw)(),s=t.onmessage,{filter:n,outFields:c,spatialReference:u}=this._config;return r.timeout(e),t.onmessage=e=>{let a=null;try{a=JSON.parse(e.data)}catch(e){}a&&"object"==typeof a||(o.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),r.reject(),this.destroy()),a.spatialReference?.wkid!==u?.wkid&&(o.A.getLogger(this).error(new i.A("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${u.wkid}`,e.data)),r.reject(),this.destroy()),"json"!==a.format&&(o.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),r.reject(),this.destroy()),n&&a.filter!==n&&o.A.getLogger(this).error(new i.A("websocket-connection","Tried to set filter, but server doesn't support it")),c&&a.outFields!==c&&o.A.getLogger(this).error(new i.A("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=s;for(const e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],r.resolve()},t.send(JSON.stringify({filter:n,outFields:c,format:"json",spatialReference:{wkid:u.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){const t="Encountered an error over WebSocket connection";this._set("errorString",t),o.A.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&o.A.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,s._)([(0,f.MZ)()],b.prototype,"connectionStatus",null),(0,s._)([(0,f.MZ)()],b.prototype,"errorString",void 0),b=(0,s._)([(0,u.$)("esri.layers.graphics.sources.connections.WebSocketConnection")],b);var w=r(80893),k=r(61956);const S={maxQueryDepth:5,maxRecordCountFactor:3};let x=class extends b{constructor(e){super({...S,...e}),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){const e=await this._fetchServiceDefinition(this._config.source);e.timeInfo.trackIdField||o.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.");const t=this._fetchWebSocketUrl(e.streamUrls,this._config.spatialReference);this._buddyServicesQuery||(this._buddyServicesQuery=this._queryBuddyServices()),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);const{filter:r,outFields:s}=this._config;this.destroyed||this._setFilter(r,s)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void o.A.getLogger(this).error(new i.A("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){const t={f:"json",...this._config.customParameters},r=(0,n.A)(e.path,{query:t,responseType:"json"}),s=(await r).data;return this._serviceDefinition=s,s}_fetchWebSocketUrl(e,t){const r=e[0],{urls:s,token:n}=r,i=this._inferWebSocketBaseUrl(s);return(0,c.a6)(`${i}/subscribe`,{outSR:""+t.wkid,token:n})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(const t of e)if(t.includes("wss"))return t;return o.A.getLogger(this).error(new i.A("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){const r=this._websocket;if(null==r||null==e&&null==t)return;const s=JSON.stringify({filter:this._serializeFilter(e,t)});let n=!1;const c=(0,a.Tw)();return r.onmessage=e=>{const t=JSON.parse(e.data);t.filter&&(t.error&&(o.A.getLogger(this).error(new i.A("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),c.reject(t.error)),this._setWebSocketJSONParseHandler(r),n=!0,c.resolve())},r.send(s),setTimeout((()=>{n||(this.destroyed||this._websocket!==r||o.A.getLogger(this).error(new i.A("geoevent-connection","Server timed out when setting filter")),c.reject())}),1e4),c.promise}_serializeFilter(e,t){const r={};if(null==e&&null==t)return r;if(e?.geometry)try{const t=(0,h.rS)(e.geometry);if("extent"!==t.type)throw new i.A(`Expected extent but found type ${t.type}`);r.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){o.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(r.where=e.where),null!=t&&(r.outFields=t.join(",")),r}_enrich(e){if(!this._relatedFeatures)return e;const t=this._serviceDefinition.relatedFeatures.joinField,r=e.attributes[t],s=this._relatedFeatures.get(r);if(!s)return o.A.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;const{attributes:n,geometry:a}=s;for(const t in n)e.attributes[t]=n[t];return a&&(e.geometry=a),e.geometry||e.centroid||o.A.getLogger(this).error(new i.A("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{const{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),s=this._queryArchive(t);await r;const n=await s;if(!n)return;for(const e of n.features)this.onFeature(this._enrich(e))}catch(e){o.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;const t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){const t=new((await Promise.all([r.e(6131),r.e(8219),r.e(8948),r.e(2106),r.e(13),r.e(3112),r.e(9953),r.e(4796),r.e(3029),r.e(4111),r.e(8506),r.e(3600),r.e(812),r.e(655),r.e(52)]).then(r.bind(r,13600))).default)({url:e}),{capabilities:s}=await t.load(),n=s.query.supportsMaxRecordCountFactor,i=s.query.supportsPagination,o=s.query.supportsCentroid,a=this._config.maxRecordCountFactor,c=t.capabilities.query.maxRecordCount,u=n?c*a:c,h=new k.A;if(h.outFields=this._config.outFields??["*"],h.where=this._config.filter?.where??"1=1",h.returnGeometry=!0,h.returnExceededLimitFeatures=!0,h.outSpatialReference=l.A.fromJSON(this._config.spatialReference),o&&(h.returnCentroid=!0),n&&(h.maxRecordCountFactor=a),i)return h.num=u,t.destroy(),this._queryPages(e,h);const f=await(0,w.eW)(e,h,this._config.sourceSpatialReference);return t.destroy(),f.data}async _queryPages(e,t,r=[],s=0){t.start=null!=t.num?s*t.num:null;const{data:n}=await(0,w.eW)(e,t,this._config.sourceSpatialReference);return n.exceededTransferLimit&&s<(this._config.maxQueryDepth??0)?(n.features.forEach((e=>r.push(e))),this._queryPages(e,t,r,s+1)):(r.forEach((e=>n.features.push(e))),n)}_addRelatedFeatures(e){const t=new Map,r=e.features,s=this._serviceDefinition.relatedFeatures.joinField;for(const e of r){const r=e.attributes[s];t.set(r,e)}this._relatedFeatures=t}};x=(0,s._)([(0,u.$)("esri.layers.graphics.sources.connections.GeoEventConnection")],x);const F=x;let A=class extends y{constructor(e){super({}),this.connectionStatus="connected",this.errorString=null;const{geometryType:t,spatialReference:r,sourceSpatialReference:s}=e;this._featureZScaler=(0,d.N)(t,s,r)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function T(e,t){if(null==e&&null==t)return null;const r={};return null!=t&&(r.geometry=t),null!=e&&(r.where=e),r}function R(e,t,r,s,n,i,o,a,c){const u={source:e,sourceSpatialReference:t,spatialReference:r,geometryType:s,filter:T(n,i),maxReconnectionAttempts:o,maxReconnectionInterval:a,customParameters:c};return e?e.path.startsWith("wss://")||e.path.startsWith("ws://")?new b(u):new F(u):new A(u)}(0,s._)([(0,f.MZ)()],A.prototype,"connectionStatus",void 0),(0,s._)([(0,f.MZ)()],A.prototype,"errorString",void 0),A=(0,s._)([(0,u.$)("esri.layers.support.ClientSideConnection")],A)},92300:(e,t,r)=>{r.d(t,{V:()=>i,X:()=>n});var s=r(65864);function n(e){return{geometryType:(0,s.$B)(e[0]),geometries:e.map((e=>e.toJSON()))}}function i(e,t,r){const n=(0,s.xD)(t);return e.map((e=>{const t=n.fromJSON(e);return t.spatialReference=r,t}))}},10536:(e,t,r)=>{function s(e){const t={};for(const r in e){if("declaredClass"===r)continue;const n=e[r];if(null!=n&&"function"!=typeof n)if(Array.isArray(n)){t[r]=[];for(let e=0;e<n.length;e++)t[r][e]=s(n[e])}else"object"==typeof n?n.toJSON&&(t[r]=JSON.stringify(n)):t[r]=n}return t}r.d(t,{z:()=>s})},53655:(e,t,r)=>{r.d(t,{SH:()=>q,ae:()=>x,cn:()=>_});var s=r(49186),n=r(51624),i=r(92722),o=r(69418);const a=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],c=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],u=["upperLeft","lowerLeft"];function l(e){return e>=a.length?null:a[e]}function h(e){return e>=c.length?null:c[e]}function f(e){return e>=u.length?null:u[e]}function d(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function g(e,t,r){const s=e.asUnsafe(),n=t.createPointGeometry(r);for(;s.next();)switch(s.tag()){case 3:{const e=s.getUInt32(),r=s.pos()+e;let i=0;for(;s.pos()<r;)t.addCoordinatePoint(n,s.getSInt64(),i++);break}default:s.skip()}return n}function p(e,t,r){const s=e.asUnsafe(),n=t.createGeometry(r),i=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;s.next();)switch(s.tag()){case 2:{const e=s.getUInt32(),r=s.pos()+e;let i=0;for(;s.pos()<r;)t.addLength(n,s.getUInt32(),i++);break}case 3:{const e=s.getUInt32(),r=s.pos()+e;let o=0;for(t.allocateCoordinates(n);s.pos()<r;)t.addCoordinate(n,s.getSInt64(),o),o++,o===i&&(o=0);break}default:s.skip()}return n}function y(e){const t=e.asUnsafe(),r=new i.A;let s="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),s=t.pos()+e;for(;t.pos()<s;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),s=t.pos()+e;for(;t.pos()<s;)r.coords.push(t.getSInt64());break}case 1:s=o.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:s}}function m(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function _(e){const t=e.asUnsafe(),r={type:l(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=l(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=h(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function b(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function w(e,t,r,s){const n=t.createFeature(r);let i=0;for(;e.next();)switch(e.tag()){case 1:{const t=s[i++].name;n.attributes[t]=e.processMessage(m);break}case 2:n.geometry=e.processMessageWithArgs(p,t,r);break;case 4:n.centroid=e.processMessageWithArgs(g,t,r);break;default:e.skip()}return n}function k(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function S(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function x(e){const t={originPosition:f(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=f(r.getEnum());break;case 2:t.scale=r.processMessage(k);break;case 3:t.translate=r.processMessage(S);break;default:r.skip()}return t}function F(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function A(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function T(e,t){const r=t.createFeatureResult(),s=e.asUnsafe();r.geometryType=d(t,0);let n=!1;for(;s.next();)switch(s.tag()){case 1:r.objectIdFieldName=s.getString();break;case 3:r.globalIdFieldName=s.getString();break;case 4:r.geohashFieldName=s.getString();break;case 5:r.geometryProperties=s.processMessage(F);break;case 7:r.geometryType=d(t,s.getEnum());break;case 8:r.spatialReference=s.processMessageWithArgs(A,t);break;case 10:r.hasZ=s.getBool();break;case 11:r.hasM=s.getBool();break;case 12:r.transform=s.processMessage(x);break;case 9:r.exceededTransferLimit=s.getBool();break;case 13:t.addField(r,s.processMessage(_));break;case 15:n||(t.prepareFeatures(r),n=!0),t.addFeature(r,s.processMessageWithArgs(w,t,r,r.fields));break;case 2:r.uniqueIdField=s.processMessage(b);break;default:s.skip()}return t.finishFeatureResult(r),r}function R(e,t){const r={};let s=null;for(;e.next();)switch(e.tag()){case 4:s=e.processMessageWithArgs(y);break;case 1:r.featureResult=e.processMessageWithArgs(T,t);break;default:e.skip()}return null!=s&&r.featureResult&&t.addQueryGeometry(r,s),r}function q(e,t){try{const r=2,s=new n.A(new Uint8Array(e),new DataView(e)),i={};for(;s.next();)s.tag()===r?i.queryResult=s.processMessageWithArgs(R,t):s.skip();return i}catch(e){throw new s.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},69418:(e,t,r)=>{r.d(t,{S:()=>u,z:()=>c});var s=r(83047),n=r(21325),i=r(43334),o=r(58512),a=r(92722);const c=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"];class u{constructor(e){this._options=e,this.geometryTypes=c,this._coordinatePtr=0,this._vertexDimension=0}createFeatureResult(){return new o.A}prepareFeatures(e){this._vertexDimension=2,e.hasZ&&this._vertexDimension++,e.hasM&&this._vertexDimension++}finishFeatureResult(e){if(!e?.features||!e.hasZ||!this._options.sourceSpatialReference||!e.spatialReference||(0,n.aI)(e.spatialReference,this._options.sourceSpatialReference)||e.spatialReference.vcsWkid)return;const t=(0,s.G9)(this._options.sourceSpatialReference)/(0,s.G9)(e.spatialReference);if(1!==t)for(const r of e.features){if(!(0,i.N3)(r))continue;const e=r.geometry.coords;for(let r=2;r<e.length;r+=3)e[r]*=t}}addFeature(e,t){e.features.push(t)}createFeature(){return new i.Om(null,{},null,0)}createSpatialReference(){return{wkid:0}}createGeometry(){return new a.A}addField(e,t){e.fields.push(t)}allocateCoordinates(e){e.coords.length=e.lengths.reduce(((e,t)=>e+t),0)*this._vertexDimension,this._coordinatePtr=0}addCoordinate(e,t){e.coords[this._coordinatePtr++]=t}addCoordinatePoint(e,t){e.coords.push(t)}addLength(e,t){e.lengths.push(t)}addQueryGeometry(e,t){e.queryGeometry=t.queryGeometry,e.queryGeometryType=t.queryGeometryType}createPointGeometry(){return new a.A}}},66208:(e,t,r)=>{r.d(t,{m:()=>n});var s=r(53655);function n(e,t){const r=(0,s.SH)(e,t),n=r.queryResult.featureResult,i=r.queryResult.queryGeometry,o=r.queryResult.queryGeometryType;if(n&&n.features&&n.features.length&&n.objectIdFieldName){const e=n.objectIdFieldName;for(const t of n.features)t.attributes&&(t.objectId=t.attributes[e])}return n&&(n.queryGeometry=i,n.queryGeometryType=o),n}},80893:(e,t,r)=>{r.d(t,{IJ:()=>g,Jf:()=>_,Pk:()=>y,eW:()=>d,gW:()=>m,kS:()=>p});var s=r(78888),n=r(84952),i=r(65864),o=r(17136),a=r(21325),c=r(10536),u=r(66208),l=r(58501);const h="Layer does not support extent calculation.";function f(e,t){const r=e.geometry,s=e.toJSON();delete s.compactGeometryEnabled,delete s.defaultSpatialReferenceEnabled;const n=s;let o,c,u;if(null!=r&&(c=r.spatialReference,u=(0,a.YX)(c),n.geometryType=(0,i.$B)(r),n.geometry=function(e,t){if(t&&"extent"===e.type)return`${e.xmin},${e.ymin},${e.xmax},${e.ymax}`;if(t&&"point"===e.type)return`${e.x},${e.y}`;const r=e.toJSON();return delete r.spatialReference,JSON.stringify(r)}(r,e.compactGeometryEnabled),n.inSR=u),s.groupByFieldsForStatistics&&(n.groupByFieldsForStatistics=s.groupByFieldsForStatistics.join(",")),s.objectIds&&(n.objectIds=s.objectIds.join(",")),s.orderByFields&&(n.orderByFields=s.orderByFields.join(",")),!s.outFields||!s.returnDistinctValues&&(t?.returnCountOnly||t?.returnExtentOnly||t?.returnIdsOnly)?delete n.outFields:s.outFields.includes("*")?n.outFields="*":n.outFields=s.outFields.join(","),s.outSR?(n.outSR=(0,a.YX)(s.outSR),o=e.outSpatialReference):r&&(s.returnGeometry||s.returnCentroid)&&(n.outSR=n.inSR,o=c),s.returnGeometry&&delete s.returnGeometry,s.outStatistics&&(n.outStatistics=JSON.stringify(s.outStatistics)),s.fullText&&(n.fullText=JSON.stringify(s.fullText)),s.pixelSize&&(n.pixelSize=JSON.stringify(s.pixelSize)),s.quantizationParameters&&(e.defaultSpatialReferenceEnabled&&null!=c&&null!=e.quantizationParameters?.extent&&c.equals(e.quantizationParameters.extent.spatialReference)&&delete s.quantizationParameters.extent.spatialReference,n.quantizationParameters=JSON.stringify(s.quantizationParameters)),s.parameterValues&&(n.parameterValues=JSON.stringify(s.parameterValues)),s.rangeValues&&(n.rangeValues=JSON.stringify(s.rangeValues)),s.dynamicDataSource&&(n.layer=JSON.stringify({source:s.dynamicDataSource}),delete s.dynamicDataSource),s.timeExtent){const e=s.timeExtent,{start:t,end:r}=e;null==t&&null==r||(n.time=t===r?t:`${t??"null"},${r??"null"}`),delete s.timeExtent}return e.defaultSpatialReferenceEnabled&&null!=c&&null!=o&&c.equals(o)&&(n.defaultSR=n.inSR,delete n.inSR,delete n.outSR),n}async function d(e,t,r,s){const n=null!=t.timeExtent&&t.timeExtent.isEmpty?{data:{features:[]}}:await b(e,t,"json",s);return(0,l.q)(t,r,n.data),n}async function g(e,t,r,s){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:r.createFeatureResult()};const n=await p(e,t,s),i=n;return i.data=(0,u.m)(n.data,r),i}function p(e,t,r){return b(e,t,"pbf",r)}function y(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):b(e,t,"json",r,{returnIdsOnly:!0})}function m(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):b(e,t,"json",r,{returnIdsOnly:!0,returnCountOnly:!0})}async function _(e,t,r){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:{count:0,extent:null}};const s=await b(e,t,"json",r,{returnExtentOnly:!0,returnCountOnly:!0}),n=s.data;if(n.hasOwnProperty("extent"))return s;if(n.features)throw new Error(h);if(n.hasOwnProperty("count"))throw new Error(h);return s}async function b(e,t,r,i={},a={}){const u="string"==typeof e?(0,n.An)(e):e,l=t.geometry?[t.geometry]:[],h=await(0,o.el)(l,null,{signal:i.signal}),d=h?.[0];null!=d&&((t=t.clone()).geometry=d);const g=(0,c.z)({...u.query,f:r,...a,...f(t,a)});return(0,s.A)((0,n.fj)(u.path,(p=a,null==t.formatOf3DObjects||p.returnCountOnly||p.returnExtentOnly||p.returnIdsOnly?"query":"query3d")),{...i,responseType:"pbf"===r?"array-buffer":"json",query:{...g,...i.query}});var p}},58501:(e,t,r)=>{r.d(t,{q:()=>n});var s=r(62815);function n(e,t,r){if(!r?.features||!r.hasZ)return;const n=(0,s.N)(r.geometryType,t,e.outSpatialReference);if(null!=n)for(const e of r.features)n(e.geometry)}},2272:(e,t,r)=>{r.d(t,{Dl:()=>o,jV:()=>i,lF:()=>a}),r(92602),r(70333);var s=r(4718),n=r(84952);function i(e,t){return t?{...t,query:{...e??{},...t.query}}:{query:e}}function o(e){return"string"==typeof e?(0,n.An)(e):(0,s.o8)(e)}function a(e,t,r){const s={};for(const n in e){if("declaredClass"===n)continue;const i=e[n];if(null!=i&&"function"!=typeof i)if(Array.isArray(i))s[n]=i.map((e=>a(e)));else if("object"==typeof i)if(i.toJSON){const e=i.toJSON(r?.[n]);s[n]=t?e:JSON.stringify(e)}else s[n]=t?i:JSON.stringify(i);else s[n]=i}return s}r(926)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5920],{4902:(e,t,r)=>{r.d(t,{A:()=>p});var l=r(90237),i=r(40608);let s=0;const n=e=>{let t=class extends e{constructor(...e){super(...e),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:Date.now().toString(16)+"-object-"+s++})}};return t=(0,l._)([(0,i.$)("esri.core.Identifiable")],t),t},o=e=>{let t=class extends e{constructor(...e){super(...e),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:s++})}};return t=(0,l._)([(0,i.$)("esri.core.Identifiable.NumericIdentifiable")],t),t};let a=class extends(n(class{})){};var u;a=(0,l._)([(0,i.$)("esri.core.Identifiable")],a),(u=a||(a={})).IdentifiableMixin=n,u.NumericIdentifiableMixin=o;const p=a},36708:(e,t,r)=>{r.d(t,{C_:()=>d,OH:()=>y,Vh:()=>m,on:()=>c,pc:()=>w,wB:()=>a,z7:()=>u}),r(60999),r(5503);var l=r(37955),i=r(36563),s=r(97768),n=r(74887),o=r(14012);function a(e,t,r={}){return p(e,t,r,h)}function u(e,t,r={}){return p(e,t,r,f)}function p(e,t,r={},l){let i=null;const n=r.once?(e,r)=>{l(e)&&((0,s.xt)(i),t(e,r))}:(e,r)=>{l(e)&&t(e,r)};if(i=(0,o.Cn)(e,n,r.sync,r.equals),r.initial){const t=e();n(t,t)}return i}function c(e,t,r,n={}){let o=null,u=null,p=null;function c(){o&&u&&(u.remove(),n.onListenerRemove?.(o),o=null,u=null)}function d(e){n.once&&n.once&&(0,s.xt)(p),r(e)}const h=a(e,((e,r)=>{c(),(0,l.wb)(e)&&(o=e,u=(0,l.on)(e,t,d),n.onListenerAdd?.(e))}),{sync:n.sync,initial:!0});return p=(0,i.hA)((()=>{h.remove(),c()})),p}function d(e,t){return function(e,t,r){if((0,n.G4)(r))return Promise.reject((0,n.NK)());const l=e();if(t?.(l))return Promise.resolve(l);let o=null;function a(){o=(0,s.xt)(o)}return new Promise(((l,s)=>{o=(0,i.vE)([(0,n.u7)(r,(()=>{a(),s((0,n.NK)())})),p(e,(e=>{a(),l(e)}),{sync:!1,once:!0},t??h)])}))}(e,f,t)}function h(e){return!0}function f(e){return!!e}r(80559);const y={sync:!0},m={initial:!0},w={sync:!0,initial:!0}},47314:(e,t,r)=>{r.r(t),r.d(t,{default:()=>E});var l,i=r(90237),s=r(78888),n=r(49186),o=r(92071),a=r(799),u=r(84952),p=r(10107),c=(r(44208),r(53966),r(87811),r(36005)),d=r(40608),h=r(43937),f=r(5443),y=r(86738),m=r(16930),w=r(4146),v=r(63074),g=r(16131),_=r(8303),A=r(54310),T=r(25036),M=r(33446),b=r(91806),I=r(87045),P=r(83703);let x=l=class extends((0,v.dM)((0,A.J)((0,T.j)((0,g.q)((0,_.A)((0,o.P)(w.A))))))){constructor(...e){super(...e),this.copyright="",this.fullExtent=new f.A(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,m.A.WebMercator),this.legendEnabled=!1,this.isReference=null,this.popupEnabled=!1,this.spatialReference=m.A.WebMercator,this.subDomains=null,this.tileInfo=new I.A({size:[256,256],dpi:96,format:"png8",compressionQuality:0,origin:new y.A({x:-20037508.342787,y:20037508.342787,spatialReference:m.A.WebMercator}),spatialReference:m.A.WebMercator,lods:[new b.A({level:0,scale:591657527.591555,resolution:156543.033928}),new b.A({level:1,scale:295828763.795777,resolution:78271.5169639999}),new b.A({level:2,scale:147914381.897889,resolution:39135.7584820001}),new b.A({level:3,scale:73957190.948944,resolution:19567.8792409999}),new b.A({level:4,scale:36978595.474472,resolution:9783.93962049996}),new b.A({level:5,scale:18489297.737236,resolution:4891.96981024998}),new b.A({level:6,scale:9244648.868618,resolution:2445.98490512499}),new b.A({level:7,scale:4622324.434309,resolution:1222.99245256249}),new b.A({level:8,scale:2311162.217155,resolution:611.49622628138}),new b.A({level:9,scale:1155581.108577,resolution:305.748113140558}),new b.A({level:10,scale:577790.554289,resolution:152.874056570411}),new b.A({level:11,scale:288895.277144,resolution:76.4370282850732}),new b.A({level:12,scale:144447.638572,resolution:38.2185141425366}),new b.A({level:13,scale:72223.819286,resolution:19.1092570712683}),new b.A({level:14,scale:36111.909643,resolution:9.55462853563415}),new b.A({level:15,scale:18055.954822,resolution:4.77731426794937}),new b.A({level:16,scale:9027.977411,resolution:2.38865713397468}),new b.A({level:17,scale:4513.988705,resolution:1.19432856685505}),new b.A({level:18,scale:2256.994353,resolution:.597164283559817}),new b.A({level:19,scale:1128.497176,resolution:.298582141647617}),new b.A({level:20,scale:564.248588,resolution:.14929107082380833}),new b.A({level:21,scale:282.124294,resolution:.07464553541190416}),new b.A({level:22,scale:141.062147,resolution:.03732276770595208}),new b.A({level:23,scale:70.5310735,resolution:.01866138385297604})]}),this.type="web-tile",this.urlTemplate=null,this.wmtsInfo=null}normalizeCtorArgs(e,t){return"string"==typeof e?{urlTemplate:e,...t}:e}load(e){const t=this.loadFromPortal({supportedTypes:["WMTS"]},e).then((()=>{let e="";if(this.urlTemplate)if(this.spatialReference.equals(this.tileInfo.spatialReference)){const t=new u.s0(this.urlTemplate);!(this.subDomains&&this.subDomains.length>0)&&t.authority?.includes("{subDomain}")&&(e="is missing 'subDomains' property")}else e="spatialReference must match tileInfo.spatialReference";else e="is missing the required 'urlTemplate' property value";if(e)throw new n.A("web-tile-layer:load",`WebTileLayer (title: '${this.title}', id: '${this.id}') ${e}`)}));return this.addResolvingPromise(t),Promise.resolve(this)}get levelValues(){const e=[];if(!this.tileInfo)return null;for(const t of this.tileInfo.lods)e[t.level]=t.levelValue||t.level;return e}readSpatialReference(e,t){return e||m.A.fromJSON(t.fullExtent?.spatialReference)}get tileServers(){if(!this.urlTemplate)return null;const e=[],{urlTemplate:t,subDomains:r}=this,l=new u.s0(t),i=l.scheme?l.scheme+"://":"//",s=i+l.authority+"/",n=l.authority;if(n?.includes("{subDomain}")){if(r&&r.length>0&&n.split(".").length>1)for(const t of r)e.push(i+n.replaceAll(/\{subDomain\}/gi,t)+"/")}else e.push(s);return e.map(u.Il)}get urlPath(){if(!this.urlTemplate)return null;const e=this.urlTemplate,t=new u.s0(e),r=(t.scheme?t.scheme+"://":"//")+t.authority+"/";return e.slice(r.length)}readUrlTemplate(e,t){return e||t.templateUrl}writeUrlTemplate(e,t){(0,u.BQ)(e)&&(e="https:"+e),e&&(e=e.replaceAll(/\{z\}/gi,"{level}").replaceAll(/\{x\}/gi,"{col}").replaceAll(/\{y\}/gi,"{row}"),e=(0,u.S8)(e)),t.templateUrl=e}fetchTile(e,t,r,l={}){const{signal:i}=l,n=this.getTileUrl(e,t,r),o={responseType:"image",signal:i,query:{...this.refreshParameters}};return(0,s.A)(n,o).then((e=>e.data))}async fetchImageBitmapTile(e,t,r,i={}){const{signal:n}=i;if(this.fetchTile!==l.prototype.fetchTile){const l=await this.fetchTile(e,t,r,i);return(0,M.C)(l,e,t,r,n)}const o=this.getTileUrl(e,t,r),a={responseType:"blob",signal:n,query:{...this.refreshParameters}},{data:u}=await(0,s.A)(o,a);return(0,M.C)(u,e,t,r,n)}getTileUrl(e,t,r){const{levelValues:l,tileServers:i,urlPath:s}=this;if(!l||!i||!s)return"";const n=l[e];return i[t%i.length]+(0,a.HC)(s,{level:n,z:n,col:r,x:r,row:t,y:t})}};(0,i._)([(0,p.MZ)({type:String,value:"",json:{write:!0}})],x.prototype,"copyright",void 0),(0,i._)([(0,p.MZ)({type:f.A,json:{write:!0},nonNullable:!0})],x.prototype,"fullExtent",void 0),(0,i._)([(0,p.MZ)({readOnly:!0,json:{read:!1,write:!1}})],x.prototype,"legendEnabled",void 0),(0,i._)([(0,p.MZ)({type:["show","hide"]})],x.prototype,"listMode",void 0),(0,i._)([(0,p.MZ)({json:{read:!0,write:!0}})],x.prototype,"blendMode",void 0),(0,i._)([(0,p.MZ)()],x.prototype,"levelValues",null),(0,i._)([(0,p.MZ)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],x.prototype,"isReference",void 0),(0,i._)([(0,p.MZ)({type:["WebTiledLayer"],value:"WebTiledLayer"})],x.prototype,"operationalLayerType",void 0),(0,i._)([(0,p.MZ)({readOnly:!0,json:{read:!1,write:!1}})],x.prototype,"popupEnabled",void 0),(0,i._)([(0,p.MZ)({type:m.A})],x.prototype,"spatialReference",void 0),(0,i._)([(0,c.w)("spatialReference",["spatialReference","fullExtent.spatialReference"])],x.prototype,"readSpatialReference",null),(0,i._)([(0,p.MZ)({type:[String],json:{write:!0}})],x.prototype,"subDomains",void 0),(0,i._)([(0,p.MZ)({type:I.A,json:{write:!0}})],x.prototype,"tileInfo",void 0),(0,i._)([(0,p.MZ)({readOnly:!0})],x.prototype,"tileServers",null),(0,i._)([(0,p.MZ)({json:{read:!1}})],x.prototype,"type",void 0),(0,i._)([(0,p.MZ)()],x.prototype,"urlPath",null),(0,i._)([(0,p.MZ)({type:String,json:{origins:{"portal-item":{read:{source:"url"}}}}})],x.prototype,"urlTemplate",void 0),(0,i._)([(0,c.w)("urlTemplate",["urlTemplate","templateUrl"])],x.prototype,"readUrlTemplate",null),(0,i._)([(0,h.K)("urlTemplate",{templateUrl:{type:String}})],x.prototype,"writeUrlTemplate",null),(0,i._)([(0,p.MZ)({type:P.x,json:{write:!0}})],x.prototype,"wmtsInfo",void 0),x=l=(0,i._)([(0,d.$)("esri.layers.WebTileLayer")],x);const E=x},8303:(e,t,r)=>{r.d(t,{A:()=>T});var l=r(90237),i=r(92602),s=r(70333),n=r(78888),o=r(60999),a=r(49186),u=r(53966),p=r(97768),c=r(74887),d=r(84952),h=r(10107),f=(r(44208),r(87811),r(36005)),y=r(40608),m=r(43937),w=r(83531),v=r(20655),g=r(80812),_=r(41318),A=r(10407);const T=e=>{let t=class extends e{constructor(){super(...arguments),this.resourceReferences={portalItem:null,paths:[]},this.userHasEditingPrivileges=!0,this.userHasFullEditingPrivileges=!1,this.userHasUpdateItemPrivileges=!1}destroy(){this.portalItem=(0,p.pR)(this.portalItem),this.resourceReferences.portalItem=null,this.resourceReferences.paths.length=0}set portalItem(e){e!==this._get("portalItem")&&(this.removeOrigin("portal-item"),this._set("portalItem",e))}readPortalItem(e,t,r){if(t.itemId)return new g.default({id:t.itemId,portal:r?.portal})}writePortalItem(e,t){e?.id&&(t.itemId=e.id)}async loadFromPortal(e,t){if(this.portalItem?.id)try{const{load:l}=await r.e(1204).then(r.bind(r,41204));return(0,c.Te)(t),await l({instance:this,supportedTypes:e.supportedTypes,validateItem:e.validateItem,supportsData:e.supportsData,layerModuleTypeMap:e.layerModuleTypeMap,populateGroupLayer:e.populateGroupLayer},t)}catch(e){throw(0,c.zf)(e)||u.A.getLogger(this).warn(`Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n ${e}`),e}}async finishLoadEditablePortalLayer(e){this._set("userHasEditingPrivileges",await this._fetchUserHasEditingPrivileges(e).catch((e=>((0,c.QP)(e),!0))))}async setUserPrivileges(e,t){if(!i.A.userPrivilegesApplied)return this.finishLoadEditablePortalLayer(t);if(this.url)try{const{features:{edit:r,fullEdit:l},content:{updateItem:i}}=await this._fetchUserPrivileges(e,t);this._set("userHasEditingPrivileges",r),this._set("userHasFullEditingPrivileges",l),this._set("userHasUpdateItemPrivileges",i)}catch(e){(0,c.QP)(e)}}async _fetchUserPrivileges(e,t){let r=this.portalItem;if(!e||!r||!r.loaded||r.sourceUrl)return this._fetchFallbackUserPrivileges(t);const l=!s.id?.findCredential(this.url),i=e===r.id;if(i&&r.portal.user)return this._getUserPrivileges(r,l);let n,o;if(i)n=r.portal.url;else try{n=await(0,w.wI)(this.url,t)}catch(e){(0,c.QP)(e)}if(!n||!(0,d.b8)(n,r.portal.url))return this._fetchFallbackUserPrivileges(t);try{const e=null!=t?t.signal:null;o=await(s.id?.getCredential(`${n}/sharing`,{prompt:!1,signal:e}))}catch(e){(0,c.QP)(e)}const a=!0,u=!1,p=!1;if(!o)return{features:{edit:a,fullEdit:u},content:{updateItem:p}};try{if(i?await r.reload():(r=new g.default({id:e,portal:{url:n}}),await r.load(t)),r.portal.user)return this._getUserPrivileges(r,l)}catch(e){(0,c.QP)(e)}return{features:{edit:a,fullEdit:u},content:{updateItem:p}}}_getUserPrivileges(e,t){const r=(0,A.It)(e);return t&&(r.features.edit=!0),r}async _fetchFallbackUserPrivileges(e){let t=!0;try{t=await this._fetchUserHasEditingPrivileges(e)}catch(e){(0,c.QP)(e)}return{features:{edit:t,fullEdit:!1},content:{updateItem:!1}}}async _fetchUserHasEditingPrivileges(e){const t=this.url?s.id?.findCredential(this.url):null;if(!t)return!0;const r=M.credential===t?M.user:await this._fetchEditingUser(e);return M.credential=t,M.user=r,null==r?.privileges||r.privileges.includes("features:user:edit")}async _fetchEditingUser(e){const t=this.portalItem?.portal?.user;if(t)return t;const r=s.id?.findServerInfo(this.url??"");if(!r?.owningSystemUrl)return null;const l=`${r.owningSystemUrl}/sharing/rest`,i=v.A.getDefault();if(i&&i.loaded&&(0,d.S8)(i.restUrl)===(0,d.S8)(l))return i.user;const a=`${l}/community/self`,u=null!=e?e.signal:null,p=await(0,o.Ke)((0,n.A)(a,{authMode:"no-prompt",query:{f:"json"},signal:u}));return p.ok?_.A.fromJSON(p.value.data):null}read(e,t){t&&(t.layer=this),super.read(e,t)}write(e,t){const r=t?.portal,l=this.portalItem?.id&&(this.portalItem.portal||v.A.getDefault());return r&&l&&!(0,d.ut)(l.restUrl,r.restUrl)?(t.messages&&t.messages.push(new a.A("layer:cross-portal",`The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save, set layer.portalItem to null or save to the same portal as the item associated with the layer`,{layer:this})),null):super.write(e,{...t,layer:this})}};return(0,l._)([(0,h.MZ)({type:g.default})],t.prototype,"portalItem",null),(0,l._)([(0,f.w)("web-document","portalItem",["itemId"])],t.prototype,"readPortalItem",null),(0,l._)([(0,m.K)("web-document","portalItem",{itemId:{type:String}})],t.prototype,"writePortalItem",null),(0,l._)([(0,h.MZ)({clonable:!1})],t.prototype,"resourceReferences",void 0),(0,l._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasEditingPrivileges",void 0),(0,l._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasFullEditingPrivileges",void 0),(0,l._)([(0,h.MZ)({type:Boolean,readOnly:!0})],t.prototype,"userHasUpdateItemPrivileges",void 0),t=(0,l._)([(0,y.$)("esri.layers.mixins.PortalLayer")],t),t},M={credential:null,user:null}},91806:(e,t,r)=>{r.d(t,{A:()=>p});var l,i=r(90237),s=r(25482),n=r(10107),o=r(56507),a=(r(44208),r(87811),r(40608));let u=l=class extends s.A{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 l({cols:this.cols,level:this.level,levelValue:this.levelValue,resolution:this.resolution,rows:this.rows,scale:this.scale})}};(0,i._)([(0,n.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],u.prototype,"cols",void 0),(0,i._)([(0,n.MZ)({type:o.jz,json:{write:!0}})],u.prototype,"level",void 0),(0,i._)([(0,n.MZ)({type:String,json:{write:!0}})],u.prototype,"levelValue",void 0),(0,i._)([(0,n.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],u.prototype,"origin",void 0),(0,i._)([(0,n.MZ)({type:Number,json:{write:!0}})],u.prototype,"resolution",void 0),(0,i._)([(0,n.MZ)({json:{write:!0,origins:{"web-document":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],u.prototype,"rows",void 0),(0,i._)([(0,n.MZ)({type:Number,json:{write:!0}})],u.prototype,"scale",void 0),u=l=(0,i._)([(0,a.$)("esri.layers.support.LOD")],u);const p=u},87045:(e,t,r)=>{r.d(t,{A:()=>b});var l,i=r(90237),s=r(66552),n=r(25482),o=r(83047),a=r(10107),u=r(56507),p=(r(44208),r(87811),r(36005)),c=r(40608),d=r(43937),h=r(86738),f=r(16930),y=r(19419),m=r(21325),w=r(28735),v=r(91806),g=r(72802);const _=new s.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 A=l=class extends n.A{static create(e={}){const{resolutionFactor:t=1,scales:r,size:i=256,spatialReference:s=f.A.WebMercator,numLODs:n=24}=e;if(!(0,m.fn)(s)){const e=[];if(r)for(let t=0;t<r.length;t++){const l=r[t];e.push(new v.A({level:t,scale:l,resolution:l}))}else{let t=5e-4;for(let r=n-1;r>=0;r--)e.unshift(new v.A({level:r,scale:t,resolution:t})),t*=2}return new l({dpi:96,lods:e,origin:new h.A(0,0,s),size:[i,i],spatialReference:s})}const a=(0,m.Vp)(s),u=e.origin?new h.A({x:e.origin.x,y:e.origin.y,spatialReference:s}):new h.A(a?{x:a.origin[0],y:a.origin[1],spatialReference:s}:{x:0,y:0,spatialReference:s}),p=1/(39.37*(0,o.GA)(s)*96),c=[];if(r)for(let e=0;e<r.length;e++){const t=r[e],l=t*p;c.push(new v.A({level:e,scale:t,resolution:l}))}else{let e=(0,m.EA)(s)?512/i*591657527.5917094:256/i*591657527.591555;const r=Math.ceil(n/t);c.push(new v.A({level:0,scale:e,resolution:e*p}));for(let l=1;l<r;l++){const r=e/2**t,i=r*p;c.push(new v.A({level:l,scale:r,resolution:i})),e=r}}return new l({dpi:96,lods:c,origin:u,size:[i,i],spatialReference:s})}constructor(e){super(e),this.dpi=96,this.format=null,this.origin=null,this.size=null,this.spatialReference=null}get isWrappable(){const{spatialReference:e,origin:t}=this;if(e&&t){const r=(0,m.Vp)(e);return e.isWrappable&&!!r&&Math.abs(r.origin[0]-t.x)<=r.dx}return!1}readOrigin(e,t){return h.A.fromJSON({spatialReference:t.spatialReference,...e})}set lods(e){let t=0,r=0;const l=[],i=this._levelToLOD={};e&&(t=-1/0,r=1/0,e.forEach((e=>{l.push(e.scale),t=e.scale>t?e.scale:t,r=e.scale<r?e.scale:r,i[e.level]=e}))),this._set("scales",l),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){const t=this.scales;if(e<=0)return t[0];if(e>=t.length-1)return t[t.length-1];const r=Math.floor(e),l=r+1;return t[r]/(t[r]/t[l])**(e-r)}scaleToZoom(e){const t=this.scales,r=t.length-1;let l=0;for(;l<r;l++){const r=t[l],i=t[l+1];if(r<=e)return l;if(i===e)return l+1;if(r>e&&i<e)return l+Math.log(r/e)/Math.log(r/i)}return l}tileAt(e,t,r,l){const i=this.lodAt(e);if(!i)return null;let s,n;if("number"==typeof t)s=t,n=r;else if((0,m.aI)(t.spatialReference,this.spatialReference))s=t.x,n=t.y,l=r;else{const e=(0,w.Cv)(t,this.spatialReference);if(null==e)return null;s=e.x,n=e.y,l=r}const o=i.resolution*this.size[0],a=i.resolution*this.size[1];return l||(l=new g.U(null,0,0,0,(0,y.vt)())),l.level=e,l.row=Math.floor((this.origin.y-n)/a+.001),l.col=Math.floor((s-this.origin.x)/o+.001),this.updateTileInfo(l),l}updateTileInfo(e,t=l.ExtrapolateOptions.NONE){let r=this.lodAt(e.level);if(!r&&t===l.ExtrapolateOptions.POWER_OF_TWO){const t=this.lods[this.lods.length-1];t.level<e.level&&(r=t)}if(!r)return;const i=e.level-r.level,s=r.resolution*this.size[0]/2**i,n=r.resolution*this.size[1]/2**i;e.id=`${e.level}/${e.row}/${e.col}`,e.extent||(e.extent=(0,y.vt)()),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}upsampleTile(e){const 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){const r=this.lodAt(t.level);if(null==r)return null;const{resolution:l}=r,i=l*this.size[0],s=l*this.size[1];return e[0]=this.origin.x+t.col*i,e[1]=this.origin.y-(t.row+1)*s,e[2]=e[0]+i,e[3]=e[1]+s,e}lodAt(e){return this._levelToLOD?.[e]??null}clone(){return l.fromJSON(this.write({}))}getCompatibleForVTL(e){if(this.size[0]!==this.size[1]||256===this.size[0]&&512===e)return null;const t=(512===this.size[0]&&256===e?-1:0)+(this.spatialReference.isGeographic?1:0);if(this.size[0]===e&&0===t)return this;const r=[],i=this.lods.length-t;for(let e=0;e<i;e++){const l=e+t,{scale:i,resolution:s}=l>=0?this.lods[l]:{scale:2*this.lods[0].scale,resolution:2*this.lods[0].resolution};r.push(new v.A({level:e,scale:i,resolution:s}))}return new l({size:[e,e],dpi:this.dpi,format:this.format,compressionQuality:this.compressionQuality,origin:this.origin,spatialReference:this.spatialReference,lods:r})}_initializeUpsampleLevels(){const e=this.lods;this._upsampleLevels=[];let t=null;for(let r=0;r<e.length;r++){const l=e[r];this._upsampleLevels[l.level]={parentLevel:t?t.level:-1,factor:t?t.resolution/l.resolution:0},t=l}}};var T,M;(0,i._)([(0,a.MZ)({type:Number,json:{write:!0}})],A.prototype,"compressionQuality",void 0),(0,i._)([(0,a.MZ)({type:Number,json:{write:!0}})],A.prototype,"dpi",void 0),(0,i._)([(0,a.MZ)({type:String,json:{read:_.read,write:_.write,origins:{"web-scene":{read:!1,write:!1}}}})],A.prototype,"format",void 0),(0,i._)([(0,a.MZ)({readOnly:!0})],A.prototype,"isWrappable",null),(0,i._)([(0,a.MZ)({type:h.A,json:{write:!0}})],A.prototype,"origin",void 0),(0,i._)([(0,p.w)("origin")],A.prototype,"readOrigin",null),(0,i._)([(0,a.MZ)({type:[v.A],value:null,json:{write:!0}})],A.prototype,"lods",null),(0,i._)([(0,a.MZ)({readOnly:!0})],A.prototype,"scales",void 0),(0,i._)([(0,a.MZ)({cast:e=>Array.isArray(e)?e:"number"==typeof e?[e,e]:[256,256]})],A.prototype,"size",void 0),(0,i._)([(0,p.w)("size",["rows","cols"])],A.prototype,"readSize",null),(0,i._)([(0,d.K)("size",{cols:{type:u.jz},rows:{type:u.jz}})],A.prototype,"writeSize",null),(0,i._)([(0,a.MZ)({type:f.A,json:{write:!0}})],A.prototype,"spatialReference",void 0),A=l=(0,i._)([(0,c.$)("esri.layers.support.TileInfo")],A),T=A||(A={}),(M=T.ExtrapolateOptions||(T.ExtrapolateOptions={}))[M.NONE=0]="NONE",M[M.POWER_OF_TWO=1]="POWER_OF_TWO";const b=A},72802:(e,t,r)=>{r.d(t,{U:()=>l});class l{constructor(e,t,r,l,i=void 0){this.id=e,this.level=t,this.row=r,this.col=l,this.extent=i}}},83703:(e,t,r)=>{r.d(t,{x:()=>u});var l,i=r(90237),s=r(25482),n=r(4718),o=r(10107),a=(r(44208),r(53966),r(40608));let u=l=class extends s.A{constructor(e){super(e)}clone(){return new l({customLayerParameters:(0,n.o8)(this.customLayerParameters),customParameters:(0,n.o8)(this.customParameters),layerIdentifier:this.layerIdentifier,tileMatrixSet:this.tileMatrixSet,url:this.url})}};(0,i._)([(0,o.MZ)({json:{type:Object,write:!0}})],u.prototype,"customLayerParameters",void 0),(0,i._)([(0,o.MZ)({json:{type:Object,write:!0}})],u.prototype,"customParameters",void 0),(0,i._)([(0,o.MZ)({type:String,json:{write:!0}})],u.prototype,"layerIdentifier",void 0),(0,i._)([(0,o.MZ)({type:String,json:{write:!0}})],u.prototype,"tileMatrixSet",void 0),(0,i._)([(0,o.MZ)({type:String,json:{write:!0}})],u.prototype,"url",void 0),u=l=(0,i._)([(0,a.$)("esri.layers.support.WMTSLayerInfo")],u)},33446:(e,t,r)=>{r.d(t,{C:()=>n,m:()=>s});var l=r(49186),i=r(74887);async function s(e,t,r){let s;try{s=await createImageBitmap(e)}catch(e){throw new l.A("request:server",`Unable to load ${t}`,{url:t,error:e})}return(0,i.Te)(r),s}async function n(e,t,r,s,n){let o;try{o=await createImageBitmap(e)}catch(e){throw new l.A("request:server",`Unable to load tile ${t}/${r}/${s}`,{error:e,level:t,row:r,col:s})}return(0,i.Te)(n),o}},79677:(e,t,r)=>{r.d(t,{A:()=>h});var l,i=r(90237),s=r(25482),n=r(88930),o=r(10107),a=(r(44208),r(53966),r(87811),r(36005)),u=r(40608),p=r(43937),c=r(98623);let d=l=class extends s.A{static get allTime(){return f}static get empty(){return y}static fromArray(e){return new l({start:null!=e[0]?new Date(e[0]):e[0],end:null!=e[1]?new Date(e[1]):e[1]})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null!=t.end?new Date(t.end):null}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(l.allTime)}get isEmpty(){return this.equals(l.empty)}readStart(e,t){return null!=t.start?new Date(t.start):null}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new l({end:this.end,start:this.start})}equals(e){if(!e)return!1;const t=this.start?.getTime()??this.start,r=this.end?.getTime()??this.end,l=e.start?.getTime()??e.start,i=e.end?.getTime()??e.end;return t===l&&r===i}expandTo(e,t=c.qU){if(this.isEmpty||this.isAllTime)return this.clone();let r=this.start;r&&(r=(0,n.lL)(r,e,t));let i=this.end;if(i){const r=(0,n.lL)(i,e,t);i=i.getTime()===r.getTime()?r:(0,n.S1)(r,1,e,t)}return new l({start:r,end:i})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return l.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();const t=this.start?.getTime()??-1/0,r=this.end?.getTime()??1/0,i=e.start?.getTime()??-1/0,s=e.end?.getTime()??1/0;let n,o;return i>=t&&i<=r?n=i:t>=i&&t<=s&&(n=t),r>=i&&r<=s?o=r:s>=t&&s<=r&&(o=s),null==n||null==o||isNaN(n)||isNaN(o)?l.empty:new l({start:n===-1/0?null:new Date(n),end:o===1/0?null:new Date(o)})}offset(e,t,r=c.qU){if(this.isEmpty||this.isAllTime)return this.clone();const i=new l,{start:s,end:o}=this;return null!=s&&(i.start=(0,n.S1)(s,e,t,r)),null!=o&&(i.end=(0,n.S1)(o,e,t,r)),i}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 f.clone();const t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,r=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new l({start:t,end:r})}};(0,i._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],d.prototype,"end",void 0),(0,i._)([(0,a.w)("end")],d.prototype,"readEnd",null),(0,i._)([(0,p.K)("end")],d.prototype,"writeEnd",null),(0,i._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],d.prototype,"isAllTime",null),(0,i._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],d.prototype,"isEmpty",null),(0,i._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],d.prototype,"start",void 0),(0,i._)([(0,a.w)("start")],d.prototype,"readStart",null),(0,i._)([(0,p.K)("start")],d.prototype,"writeStart",null),d=l=(0,i._)([(0,u.$)("esri.time.TimeExtent")],d);const h=d,f=new d,y=new d({start:void 0,end:void 0})},78553:(e,t,r)=>{r.d(t,{D:()=>s,p:()=>i});var l=r(56507);function i(e){const t=(0,l.Vr)(100*(1-e));return Math.max(0,Math.min(t,100))}function s(e){const t=1-e/100;return Math.max(0,Math.min(t,1))}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6555],{61893:(e,t,r)=>{r.d(t,{A:()=>u});var s,i,n=r(90237),o=r(69622),a=r(74887),l=r(40608);(i=s||(s={}))[i.PENDING=0]="PENDING",i[i.RESOLVED=1]="RESOLVED",i[i.REJECTED=2]="REJECTED";class h{constructor(){this._resolver=(0,a.Tw)(),this._status=s.PENDING,this._resolvingPromises=[],this._resolver.promise.then((()=>{this._status=s.RESOLVED,this._cleanUp()}),(()=>{this._status=s.REJECTED,this._cleanUp()})),this.promise=this._resolver.promise}destroy(){this._cleanUp()}addResolvingPromise(e){this._resolvingPromises.push(e),this._tryResolve()}isResolved(){return this._status===s.RESOLVED}isRejected(){return this._status===s.REJECTED}isFulfilled(){return this._status!==s.PENDING}abort(){this._resolver.reject((0,a.NK)())}_cleanUp(){this._allPromise=null,this._resolvingPromises=null}_tryResolve(){if(this.isFulfilled())return;const e=(0,a.Tw)(),t=[...this._resolvingPromises,e.promise],r=this._allPromise=Promise.all(t);r.then((()=>{this.isFulfilled()||this._allPromise!==r||this._resolver.resolve()}),(e=>{this.isFulfilled()||this._allPromise!==r||(0,a.zf)(e)||this._resolver.reject(e)})),e.resolve()}}const c=e=>{let t=class extends e{constructor(...e){super(...e),this._promiseProps=new h,this.addResolvingPromise(Promise.resolve())}destroy(){this._promiseProps.destroy()}isResolved(){return this._promiseProps.isResolved()}isRejected(){return this._promiseProps.isRejected()}isFulfilled(){return this._promiseProps.isFulfilled()}when(e,t){return this._promiseProps.promise.then((()=>this)).then(e,t)}catch(e){return this.when(null,e)}addResolvingPromise(e){e&&!this._promiseProps.isFulfilled()&&this._promiseProps.addResolvingPromise("_promiseProps"in e?e.when():e)}};return t=(0,n._)([(0,l.$)("esri.core.Promise")],t),t};let d=class extends(c(o.A)){};d=(0,n._)([(0,l.$)("esri.core.Promise")],d),function(e){e.EsriPromiseMixin=c}(d||(d={}));const u=d},79901:(e,t,r)=>{r.d(t,{w:()=>l});var s=r(56507),i=r(96156);const n=Object.prototype.toString;function o(e){const t="__accessorMetadata__"in e?(0,s.dp)(e):e;return function(...e){if(e.push(t),"number"==typeof e[2])throw new Error("Using @cast has parameter decorator is not supported since 4.16");return a.apply(this,e)}}function a(e,t,r,s){(0,i.z4)(e,t).cast=s}function l(...e){if(3!==e.length||"string"!=typeof e[1])return 1===e.length&&"[object Function]"===n.call(e[0])?o(e[0]):1===e.length&&"string"==typeof e[0]?function(e){return(t,r)=>{(0,i.z4)(t,e).cast=t[r]}}(e[0]):void 0}},60999:(e,t,r)=>{r.d(t,{DZ:()=>f,Ke:()=>p,Tj:()=>c,UT:()=>_,jJ:()=>h});var s=r(90237),i=r(69622),n=r(97768),o=r(74887),a=r(10107),l=r(40608);function h(e,t,r){return(0,o.Lx)(e.map(((e,s)=>t.apply(r,[e,s]))))}async function c(e,t,r){return(await(0,o.Lx)(e.map(((e,s)=>t.apply(r,[e,s]))))).map((e=>e.value))}function d(e){return{ok:!0,value:e}}function u(e){return{ok:!1,error:e}}async function p(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return d(await e)}catch(e){return u(e)}}async function f(e){try{return d(await e)}catch(e){return(0,o.QP)(e),u(e)}}function _(e,t){return new g(e,t)}let g=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,n.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=d(e),this._cleanup()}),(e=>{this._result=u(e),this._cleanup()})),this._abortHandle=(0,o.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,n.xt)(this._abortHandle),this._abortController=null}};(0,s._)([(0,a.MZ)()],g.prototype,"value",null),(0,s._)([(0,a.MZ)()],g.prototype,"error",null),(0,s._)([(0,a.MZ)()],g.prototype,"finished",null),(0,s._)([(0,a.MZ)()],g.prototype,"promise",void 0),(0,s._)([(0,a.MZ)()],g.prototype,"_result",void 0),g=(0,s._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],g)},66552:(e,t,r)=>{r.d(t,{J:()=>i,O:()=>o});var s=r(93637);class i{constructor(e,t={ignoreUnknown:!1,useNumericKeys:!1}){this._jsonToAPI=e,this._options=t,this.apiValues=[],this.jsonValues=[],this._apiToJSON=function(e){const t={};for(const r in e)t[e[r]]=r;return t}(e),this.apiValues=n(this._apiToJSON),this.jsonValues=n(this._jsonToAPI),this.read=e=>this.fromJSON(e),this.write=(e,t,r)=>{const i=this.toJSON(e);void 0!==i&&(0,s.sM)(r,i,t)},this.write.isJSONMapWriter=!0}toJSON(e){if(null==e)return null;if(this._apiToJSON.hasOwnProperty(e)){const t=this._apiToJSON[e];return this._options.useNumericKeys?+t:t}return this._options.ignoreUnknown?null:e}fromJSON(e){return null!=e&&this._jsonToAPI.hasOwnProperty(e)?this._jsonToAPI[e]:this._options.ignoreUnknown?void 0:e}}function n(e){const t=[];for(const r in e)t.push(r);return t.sort(),t}function o(){return function(e,t){return new i(e,{ignoreUnknown:!0,...t})}}},36708:(e,t,r)=>{r.d(t,{C_:()=>u,OH:()=>_,Vh:()=>g,on:()=>d,pc:()=>m,wB:()=>l,z7:()=>h}),r(60999),r(5503);var s=r(37955),i=r(36563),n=r(97768),o=r(74887),a=r(14012);function l(e,t,r={}){return c(e,t,r,p)}function h(e,t,r={}){return c(e,t,r,f)}function c(e,t,r={},s){let i=null;const o=r.once?(e,r)=>{s(e)&&((0,n.xt)(i),t(e,r))}:(e,r)=>{s(e)&&t(e,r)};if(i=(0,a.Cn)(e,o,r.sync,r.equals),r.initial){const t=e();o(t,t)}return i}function d(e,t,r,o={}){let a=null,h=null,c=null;function d(){a&&h&&(h.remove(),o.onListenerRemove?.(a),a=null,h=null)}function u(e){o.once&&o.once&&(0,n.xt)(c),r(e)}const p=l(e,((e,r)=>{d(),(0,s.wb)(e)&&(a=e,h=(0,s.on)(e,t,u),o.onListenerAdd?.(e))}),{sync:o.sync,initial:!0});return c=(0,i.hA)((()=>{p.remove(),d()})),c}function u(e,t){return function(e,t,r){if((0,o.G4)(r))return Promise.reject((0,o.NK)());const s=e();if(t?.(s))return Promise.resolve(s);let a=null;function l(){a=(0,n.xt)(a)}return new Promise(((s,n)=>{a=(0,i.vE)([(0,o.u7)(r,(()=>{l(),n((0,o.NK)())})),c(e,(e=>{l(),s(e)}),{sync:!1,once:!0},t??p)])}))}(e,f,t)}function p(e){return!0}function f(e){return!!e}r(80559);const _={sync:!0},g={initial:!0},m={sync:!0,initial:!0}},13069:(e,t,r)=>{r.d(t,{AG:()=>a,lk:()=>i,vD:()=>o,yS:()=>n});const s="randomUUID"in crypto;function i(){if(s)return crypto.randomUUID();const e=crypto.getRandomValues(new Uint16Array(8));e[3]=4095&e[3]|16384,e[4]=16383&e[4]|32768;const t=t=>e[t].toString(16).padStart(4,"0");return t(0)+t(1)+"-"+t(2)+"-"+t(3)+"-"+t(4)+"-"+t(5)+t(6)+t(7)}function n(){return`{${i().toUpperCase()}}`}function o(){return`{${i()}}`}function a(e){const t=e.toUpperCase();return"{"!==e[0]?`{${t}}`:t}},67112:(e,t,r)=>{r.r(t),r.d(t,{default:()=>dt});var s=r(70333),i=r(90237),n=r(92602),o=r(78888),a=r(49186),l=r(65529),h=r(37955),c=r(4718),d=r(93637),u=r(74887),p=r(84952),f=r(10107),_=(r(44208),r(53966)),g=r(40608);r(47566),r(87811);var m=r(97768),v=r(61893),y=r(36708),w=r(13069),S=r(79901),I=r(62788),A=r(71429),k=r(37330),U=r(98291),b=r(36563),P=r(11932);const T=new Map;function x(){T.clear()}function O(e){T.delete(e)}function R(...e){const t=U.A.acquire();for(let r=0;r<e.length;r++){const s=e[r],i=typeof s;if("string"===i)t.push(s);else if(Array.isArray(s))t.push.apply(t,s);else if("object"===i)for(const e in s)s[e]&&t.push(e)}const r=t.join(" ");return U.A.release(t),r}(()=>{const e=new Map;new ResizeObserver((t=>{x();for(const r of t)e.get(r.target)?.(r)}))})();const C=["dd","dl","dt","h1","h2","h3","h4","h5","h6","sub","sup","animate","animatetransform","circle","clippath","defs","ellipse","g","image","line","lineargradient","marker","mask","path","pattern","polygon","polyline","radialgradient","rect","stop","svg","switch","symbol","text","textpath","tspan","use"].reduce(((e,t)=>(e[t]=[],e)),{}),N=["align","alink","alt","bgcolor","border","cellpadding","cellspacing","class","color","cols","colspan","coords","d","dir","face","height","hspace","ismap","lang","marginheight","marginwidth","multiple","nohref","noresize","noshade","nowrap","ref","rel","rev","rows","rowspan","scrolling","shape","span","summary","tabindex","title","usemap","valign","value","vlink","vspace","width"],M=new k.I({whiteList:C,onTagAttr:(e,t,r)=>{const s=`${t}="${r}"`;if(N.includes(t))return s},stripIgnoreTag:!0,stripIgnoreTagBody:["script","style"]},!0),E="http://www.w3.org/",D=`${E}2000/svg`,j=`${E}1999/xlink`;let L=[],q=(e,t)=>{let r={};return Object.keys(e).forEach((t=>{r[t]=e[t]})),t&&Object.keys(t).forEach((e=>{r[e]=t[e]})),r},Z=(e,t)=>e.vnodeSelector===t.vnodeSelector&&(e.properties&&t.properties?e.properties.key===t.properties.key&&e.properties.bind===t.properties.bind:!e.properties&&!t.properties),$=e=>{if("string"!=typeof e)throw new Error("Style values must be strings")},V=(e,t,r)=>{if(""!==t.vnodeSelector)for(let s=r;s<e.length;s++)if(Z(e[s],t))return s;return-1},F=(e,t,r,s)=>{let i=e[t];if(""===i.vnodeSelector)return;let n=i.properties;if(!(n?void 0===n.key?n.bind:n.key:void 0))for(let n=0;n<e.length;n++)if(n!==t){let t=e[n];if(Z(t,i))throw new Error(`${r.vnodeSelector} had a ${i.vnodeSelector} child ${"added"===s?s:"removed"}, but there is now more than one. You must add unique key properties to make them distinguishable.`)}},B=e=>{if(e.properties){let t=e.properties.enterAnimation;t&&t(e.domNode,e.properties)}},z=[],H=!1,J=e=>{(e.children||[]).forEach(J),e.properties&&e.properties.afterRemoved&&e.properties.afterRemoved.apply(e.properties.bind||e.properties,[e.domNode])},W=()=>{H=!1,z.forEach(J),z.length=0},G=e=>{z.push(e),H||(H=!0,"undefined"!=typeof window&&"requestIdleCallback"in window?window.requestIdleCallback(W,{timeout:16}):setTimeout(W,16))},K=e=>{let t=e.domNode;if(e.properties){let r=e.properties.exitAnimation;if(r){t.style.pointerEvents="none";let s=()=>{t.parentNode&&(t.parentNode.removeChild(t),G(e))};return void r(t,s,e.properties)}}t.parentNode&&(t.parentNode.removeChild(t),G(e))},X=(e,t,r)=>{if(!t)return;let s=r.eventHandlerInterceptor,i=Object.keys(t),n=i.length;for(let o=0;o<n;o++){let n=i[o],a=t[n];if("className"===n)throw new Error('Property "className" is not supported, use "class".');if("class"===n)re(e,a,!0);else if("classes"===n){let t=Object.keys(a),r=t.length;for(let s=0;s<r;s++){let r=t[s];a[r]&&e.classList.add(r)}}else if("styles"===n){let t=Object.keys(a),s=t.length;for(let i=0;i<s;i++){let s=t[i],n=a[s];n&&($(n),r.styleApplyer(e,s,n))}}else if("key"!==n&&null!=a){let i=typeof a;"function"===i?(0===n.lastIndexOf("on",0)&&(s&&(a=s(n,a,e,t)),"oninput"===n&&function(){let e=a;a=function(t){e.apply(this,[t]),t.target["oninput-value"]=t.target.value}}()),e[n]=a):r.namespace===D?"href"===n?e.setAttributeNS(j,n,a):e.setAttribute(n,a):"string"===i&&"value"!==n?"innerHTML"===n?e[n]=M.sanitize(a):Y(e)&&n in e?e[n]=a:e.setAttribute(n,a):e[n]=a}}};function Y(e){if(!(e instanceof Element&&e.tagName.includes("-")))return!1;const t=window.customElements.get(e.tagName.toLowerCase());return!!t&&e instanceof t}let Q,ee=(e,t,r)=>{((e,t,r)=>{if(t)for(let s of t)te(s,e,void 0,r)})(e,t.children,r),t.text&&(e.textContent=t.text),X(e,t.properties,r),t.properties&&t.properties.afterCreate&&t.properties.afterCreate.apply(t.properties.bind||t.properties,[e,r,t.vnodeSelector,t.properties,t.children])},te=(e,t,r,s)=>{let i,n=0,o=e.vnodeSelector,a=t.ownerDocument;if(""===o)i=e.domNode=a.createTextNode(e.text),void 0!==r?t.insertBefore(i,r):t.appendChild(i);else{for(let l=0;l<=o.length;++l){let h=o.charAt(l);if(l===o.length||"."===h||"#"===h){let h=o.charAt(n-1),c=o.slice(n,l);"."===h?i.classList.add(c):"#"===h?i.id=c:("svg"===c&&(s=q(s,{namespace:D})),void 0!==s.namespace?i=e.domNode=a.createElementNS(s.namespace,c):(i=e.domNode=e.domNode||a.createElement(c),"input"===c&&e.properties&&void 0!==e.properties.type&&i.setAttribute("type",e.properties.type)),void 0!==r?t.insertBefore(i,r):i.parentNode!==t&&t.appendChild(i)),n=l+1}}ee(i,e,s)}},re=(e,t,r)=>{t&&t.split(" ").forEach((t=>{t&&e.classList.toggle(t,r)}))},se=(e,t,r,s,i)=>{if(r===s)return!1;s=s||L;let n,o=(r=r||L).length,a=s.length,l=0,h=0,c=!1;for(;h<a;){let a=l<o?r[l]:void 0,d=s[h];if(void 0!==a&&Z(a,d))c=Q(a,d,i)||c,l++;else{let a=V(r,d,l+1);if(a>=0){for(n=l;n<a;n++)K(r[n]),F(r,n,e,"removed");c=Q(r[a],d,i)||c,l=a+1}else te(d,t,l<o?r[l].domNode:void 0,i),B(d),F(s,h,e,"added")}h++}if(o>l)for(n=l;n<o;n++)K(r[n]),F(r,n,e,"removed");return c};Q=(e,t,r)=>{let s=e.domNode,i=!1;if(e===t)return!1;let n=!1;if(""===t.vnodeSelector){if(t.text!==e.text){let e=s.ownerDocument.createTextNode(t.text);return s.parentNode.replaceChild(e,s),t.domNode=e,i=!0,i}t.domNode=s}else 0===t.vnodeSelector.lastIndexOf("svg",0)&&(r=q(r,{namespace:D})),e.text!==t.text&&(n=!0,void 0===t.text?s.removeChild(s.firstChild):s.textContent=t.text),t.domNode=s,n=se(t,s,e.children,t.children,r)||n,n=((e,t,r,s)=>{if(!r)return;let i=!1,n=Object.keys(r),o=n.length;for(let a=0;a<o;a++){let o=n[a],l=r[o],h=t[o];if("class"===o)h!==l&&(re(e,h,!1),re(e,l,!0));else if("classes"===o){let t=e.classList,r=Object.keys(l),s=r.length;for(let e=0;e<s;e++){let s=r[e],n=!!l[s];n!==!!h[s]&&(i=!0,n?t.add(s):t.remove(s))}}else if("styles"===o){let t=Object.keys(l),r=t.length;for(let n=0;n<r;n++){let r=t[n],o=l[r];o!==h[r]&&(i=!0,o?($(o),s.styleApplyer(e,r,o)):s.styleApplyer(e,r,""))}}else if(l||"string"!=typeof h||(l=""),"value"!==o||Y(e)){if(l!==h){let t=typeof l;"function"===t&&s.eventHandlerInterceptor||(s.namespace===D?"href"===o?e.setAttributeNS(j,o,l):e.setAttribute(o,l):"string"===t?"innerHTML"===o?e[o]=M.sanitize(l):"role"===o&&""===l?e.removeAttribute(o):Y(e)&&o in e?e[o]=l:e.setAttribute(o,l):e[o]!==l&&(e[o]=l),i=!0)}}else{let t=e[o];t!==l&&(e["oninput-value"]?t===e["oninput-value"]:l!==h)&&(e[o]=l,e["oninput-value"]=void 0),l!==h&&(i=!0)}}return i})(s,e.properties,t.properties,r)||n,t.properties&&t.properties.afterUpdate&&t.properties.afterUpdate.apply(t.properties.bind||t.properties,[s,r,t.vnodeSelector,t.properties,t.children]);return n&&t.properties&&t.properties.updateAnimation&&t.properties.updateAnimation(s,t.properties,e.properties),i};let ie=(e,t)=>({getLastRender:()=>e,update:r=>{if(e.vnodeSelector!==r.vnodeSelector)throw new Error("The selector for the root VNode may not be changed. (consider using dom.merge and add one extra level to the virtual DOM)");let s=e;e=r,Q(s,r,t)},domNode:e.domNode});const ne={namespace:void 0,performanceLogger:()=>{},eventHandlerInterceptor:void 0,styleApplyer:(e,t,r)=>{"-"===t.charAt(0)?e.style.setProperty(t,r):e.style[t]=r}};let oe,ae=e=>q(ne,e),le=(e,t,r)=>(r=ae(r),te(t,e,void 0,r),ie(t,r)),he=(e,t,r)=>(r=ae(r),te(t,e.parentNode,e,r),ie(t,r)),ce=(e,t,r)=>(r=ae(r),t.domNode=e,ee(e,t,r),ie(t,r)),de=(e,t,r)=>(r=ae(r),te(t,e.parentNode,e,r),e.parentNode.removeChild(e),ie(t,r));oe=Array.prototype.find?(e,t)=>e.find(t):(e,t)=>e.filter(t)[0];const ue={handleInterceptedEvent:(e,t,r,s)=>(e.scheduleRender(),t.properties[`on${s.type}`].apply(t.properties.bind||r,[s]))},pe={namespace:void 0,performanceLogger:()=>{},eventHandlerInterceptor:void 0,styleApplyer:(e,t,r)=>{"-"===t.charAt(0)?e.style.setProperty(t,r):e.style[t]=r}},fe=(e,t,r=!1)=>{let s=e;return t.forEach(((e,i)=>{const n=s?.children?((e,t)=>e.find(t))(s.children,(t=>t.domNode===e)):void 0;r&&!n&&i!==t.length-1||(s=n)})),s};var _e=r(14813),ge=r(2741);let me;me="components/assets";const ve=Symbol("widget"),ye=Symbol("widget-test-data"),we=[],Se={},Ie=new WeakMap;function Ae(e,t){let r=t.children;if(r?.length)for(let t=0;t<r.length;++t)r[t]=Ae(e,r[t]);else r=we;const s=t.vnodeSelector;if(Pe(s)){const i=t.properties||Se,n=i.key||s,o={key:n,afterCreate:ke,afterUpdate:Ue,afterRemoved:be,parentWidget:e,widgetConstructor:s,widgetProperties:{...i,key:n,children:r}};return{vnodeSelector:s.vnodeSelector,properties:o,children:void 0,text:void 0,domNode:null}}return t}function ke(e,t,r,{parentWidget:s,widgetConstructor:i,widgetProperties:n}){const o=new i(n);o.container=e,Ie.set(e,o),o.afterCreate?.(o,e),s.addHandles((0,b.hA)((()=>be(e)))),queueMicrotask((()=>{o[ye].projector.renderNow()}))}function Ue(e,t,r,{widgetProperties:s}){const i=Ie.get(e);i&&(i.set(s),i.afterUpdate?.(i,e))}function be(e){const t=Ie.get(e);t&&(t.afterRemoved?.(t,e),t.destroy(),Ie.delete(e))}function Pe(e){return"function"==typeof e&&e[ve]}const Te=new Set;var xe,Oe=r(73444),Re=r(10838);let Ce=0;function Ne(e,t){const r=Object.prototype.hasOwnProperty;for(const s in t)r.call(t,s)&&r.call(e,s)&&(null!=e[s]&&null!=t[s]&&"object"==typeof e[s]&&"object"==typeof t[s]?Ne(e[s],t[s]):e[s]=t[s]);return e}const Me=(e=>{let t;const r={...ue,...e},s=(n=r,{...pe,...n}),i=s.performanceLogger;var n;let o,a=!0,l=!1;const h=[],c=[],d=(e,n,o)=>{let a;s.eventHandlerInterceptor=(e,s,n,o)=>function(e){let s;i("domEvent",e);const n=((e,t)=>{const r=[];for(;e&&e!==t;)r.push(e),e=e.parentNode;return r})(e.currentTarget,a.domNode),o=n.some((e=>customElements.get(e?.tagName?.toLowerCase())));if(e.eventPhase!==Event.CAPTURING_PHASE&&o){const t=e.composedPath(),r=t.slice(t.indexOf(e.currentTarget),t.indexOf(a.domNode)).reverse();s=fe(a.getLastRender(),r,!0)}else n.reverse(),s=fe(a.getLastRender(),n);let l;return s&&(l=r.handleInterceptedEvent(t,s,this,e)),i("domEventProcessed",e),l},r.postProcessProjectionOptions?.(s);const l=o();a=e(n,l,s),s.eventHandlerInterceptor=void 0,h.push(a),c.push(o),r.afterFirstVNodeRendered&&r.afterFirstVNodeRendered(a,l)};let u=()=>{if(o=void 0,a){a=!1,i("renderStart",void 0);for(let e=0;e<h.length;e++){const t=c[e]();i("rendered",void 0);try{h[e].update(t)}catch(e){console.error(e)}i("patched",void 0)}i("renderDone",void 0),a=!0}};return r.modifyDoRenderImplementation&&(u=r.modifyDoRenderImplementation(u,h,c)),t={renderNow:u,scheduleRender:()=>{o||l||(o=requestAnimationFrame(u))},stop:()=>{o&&(cancelAnimationFrame(o),o=void 0),l=!0},resume:()=>{l=!1,a=!0,t.scheduleRender()},append:(e,t)=>{d(le,e,t)},insertBefore:(e,t)=>{d(he,e,t)},merge:(e,t)=>{d(ce,e,t)},replace:(e,t)=>{d(de,e,t)},detach:e=>{for(let t=0;t<c.length;t++)if(c[t]===e)return c.splice(t,1),h.splice(t,1)[0];throw new Error("renderFunction was not found")}},t})({postProcessProjectionOptions(e){const t=e.eventHandlerInterceptor,r=/capture$/i;e.eventHandlerInterceptor=(e,s,i,n)=>{const o=t?.(e,s,i,n),a=r.test(e);if(!((e=e.replace(r,"")).toLowerCase()in i)||a){const t=e[2].toLowerCase()+e.slice(3),r=e=>o?.call(i,e);i.addEventListener(t,r,a);const s=()=>i.removeEventListener(t,r,a),l=n.afterRemoved;n.afterRemoved=e=>{l?.(e),s()}}return o}},handleInterceptedEvent(e,t,r,s){const{eventPhase:i,type:n}=s,o=i===Event.CAPTURING_PHASE;let a=`on${n}${o?"capture":""}`;const l=t.properties;(l&&a in l||(a=`on${n[0].toUpperCase()}${n.slice(1)}${o?"Capture":""}`,l&&a in l))&&(x(),e.scheduleRender(),l[a].call(l.bind||r,s))}});let Ee=!1,De=class extends(v.A.EsriPromiseMixin(l.A.EventedAccessor)){constructor(e,t){super(e,t),this._attached=!1,this._projector=Me,this._readyForTrueRender=!1,this.key=this,this.autoRenderingEnabled=!0,this._loadLocale=(0,u.sg)((async()=>{if(this._messageBundleProps?.length){const e=await Promise.allSettled(this._messageBundleProps.map((async({bundlePath:e,propertyName:t})=>{if(this.destroyed)return;let r=await(0,Re.ud)(e);this.uiStrings&&Object.keys(this.uiStrings)&&(r=Ne((0,c.o8)(r),this.uiStrings)),this[t]=r})));if(this.destroyed)return;for(const t of e)"rejected"===t.status&&_.A.getLogger(this).error("widget-intl:locale-error",this.declaredClass,t.reason)}await this.loadLocale()})),_e.qu||(0,_e.Qu)((0,p.s2)((0,ge.s)("components/assets")));const r="esri-widget-uid-"+(0,w.lk)(),s=this.render.bind(this);this._trackingTarget=new A.r((()=>{this.autoRenderingEnabled&&this.scheduleRender()}));const i=()=>({vnodeSelector:"div",properties:{key:`${r}-hidden`,class:"",styles:{display:"none"}},domNode:null,children:void 0,text:void 0}),n=()=>{if(!this._readyForTrueRender||this.destroyed)return null;const e=s()??i(),t=e.properties??={};if(t.key??=r,Pe(e.vnodeSelector)){if(!this.visible)return i()}else this.visible?t.styles||(t.styles={}):(t.class="",t.styles={display:"none"}),t.styles.display??="";let n=0;return e.children?.forEach((e=>{Pe(e.vnodeSelector)||(e.properties??={},e.properties.key??=`${this.id}--${n++}`)})),Ae(this,e)};this.render=()=>{if(Ee)return n();let e=function(e){return T.get(e)}(this)??null;if(e)return e;this._trackingTarget.clear(),Ee=!0;try{e=(0,I.a)(this._trackingTarget,n)}catch(e){throw _.A.getLogger(this).error(e),e}finally{Ee=!1}return e&&function(e,t){T.set(e,t)}(this,e),e};const o=this.beforeFirstRender();var a;o?this._resourcesFetch=o.then((()=>{this._readyForTrueRender=!0,this._postInitialize()})):(this._resourcesFetch=Promise.resolve().then((()=>{this._postInitialize()})),this._readyForTrueRender=!0),this.addResolvingPromise(this._resourcesFetch),a=this._resourcesFetch,Te.add(a),a.finally((()=>Te.delete(a)))}normalizeCtorArgs(e,t){const r={...e};return t&&(r.container=t),r}postInitialize(){}beforeFirstRender(){const e=this.loadDependencies();return this._messageBundleProps?.length||e?Promise.all([e,this._loadLocale()]).then((()=>{})).catch(u.jH):null}loadDependencies(){return null}loadLocale(){return null}destroy(){this.destroyed||((0,m.pR)(this._trackingTarget),(0,m.pR)(this.viewModel),this._detach(this.container),this._set("container",null),this._emitter.clear(),this.render=()=>null,this._projector=null,O(this))}set container(e){this._get("container")||this._set("container",e)}castContainer(e){return"string"==typeof(t=e)?document.getElementById(t):t??null;var t}get domNode(){return this.container}set domNode(e){this.container=e}get icon(){return null}set icon(e){this._overrideIfSome("icon",e)}get id(){return this._get("id")||this.container?.id||Date.now().toString(16)+"-widget-"+Ce++}set id(e){e&&this._set("id",e)}get label(){return this.declaredClass.split(".").pop()}set label(e){this._overrideIfSome("label",e)}get renderable(){return this._resourcesFetch}get visible(){return this._get("visible")}set visible(e){this._set("visible",e)}get[(xe=ve,ye)](){return{projector:this._projector}}render(){throw new Error("not implemented")}scheduleRender(){this.destroyed||(O(this),this._projector.scheduleRender())}classes(...e){return R.apply(this,e)}renderNow(){O(this),this._projector.renderNow()}_postInitialize(){if(this.destroyed)return;this.scheduleRender(),this._delegatedEventNames?.length&&this.addHandles((0,y.wB)((()=>this.viewModel),((e,t)=>{t&&this.removeHandles("delegated-events"),e&&(0,h.wb)(e)&&this.addHandles(this._delegatedEventNames.map((t=>(0,h.on)(e,t,(e=>{this.emit(t,e)})))),"delegated-events")}),y.pc)),this.postInitialize();const e=async()=>{await this._loadLocale().catch(u.jH),this.scheduleRender()};this.addHandles([(0,Oe.oQ)(e),(0,y.wB)((()=>this.uiStrings),e),(0,y.z7)((()=>this.container),(e=>{this.destroyed||this._attach(e)}),{initial:!0,once:!0})])}_attach(e){e&&(this._projector.merge(e,this.render),this._attached=!0)}_detach(e){this._attached&&(this._projector.detach(this.render),this._attached=!1),e?.parentNode?.removeChild(e)}};De[xe]=!0,De.vnodeSelector="div",(0,i._)([(0,f.MZ)()],De.prototype,"_readyForTrueRender",void 0),(0,i._)([(0,f.MZ)({value:null})],De.prototype,"container",null),(0,i._)([(0,S.w)("container")],De.prototype,"castContainer",null),(0,i._)([(0,f.MZ)()],De.prototype,"icon",null),(0,i._)([(0,f.MZ)()],De.prototype,"id",null),(0,i._)([(0,f.MZ)()],De.prototype,"label",null),(0,i._)([(0,f.MZ)()],De.prototype,"renderable",null),(0,i._)([(0,f.MZ)()],De.prototype,"uiStrings",void 0),(0,i._)([(0,f.MZ)()],De.prototype,"viewModel",void 0),(0,i._)([(0,f.MZ)({value:!0})],De.prototype,"visible",null),(0,i._)([(0,f.MZ)()],De.prototype,"key",void 0),(0,i._)([(0,f.MZ)()],De.prototype,"children",void 0),(0,i._)([(0,f.MZ)()],De.prototype,"afterCreate",void 0),(0,i._)([(0,f.MZ)()],De.prototype,"afterUpdate",void 0),(0,i._)([(0,f.MZ)()],De.prototype,"afterRemoved",void 0),De=(0,i._)([(0,g.$)("esri.widgets.Widget")],De);const je=De;function Le(e){return(t,r)=>{t.hasOwnProperty("_messageBundleProps")||(t._messageBundleProps=t._messageBundleProps?t._messageBundleProps.slice():[]),t._messageBundleProps.push({bundlePath:e,propertyName:r})}}var qe=function(e){return{vnodeSelector:"",properties:void 0,children:void 0,text:e.toString(),domNode:null}},Ze=function(e,t){for(var r=0,s=e.length;r<s;r++){var i=e[r];Array.isArray(i)?Ze(i,t):null!=i&&!1!==i&&(i.hasOwnProperty("vnodeSelector")||(i=qe(i)),t.push(i))}};function $e(e,t,...r){return"function"!=typeof e||Pe(e)?function(e,t){for(var r=[],s=2;s<arguments.length;s++)r[s-2]=arguments[s];if(1===r.length&&"string"==typeof r[0])return{vnodeSelector:e,properties:t||void 0,children:void 0,text:r[0],domNode:null};var i=[];return Ze(r,i),{vnodeSelector:e,properties:t||void 0,children:i,text:void 0,domNode:null}}(e,t??null,...r):e(t,...r)}function Ve(){return"calcite-mode-"+(getComputedStyle(document.body).getPropertyValue("--esri-calcite-mode-name").replaceAll(/\s|'|"/g,"").startsWith("dark")?"dark":"light")}var Fe=r(71754);const Be="esri-identity-modal",ze={base:Be,info:`${Be}__info`,notice:`${Be}__notice`};let He=class extends je{constructor(e,t){super(e,t),this.container=document.createElement("div"),this.error=null,this.oAuthPrompt=!1,this.open=!1,this.signingIn=!1,this.server=null,this.resource=null,this._usernameInputNode=null,this._passwordInputNode=null,document.body.appendChild(this.container)}loadDependencies(){return function(e){const t=[];for(const r of Object.keys(e))customElements.get(`calcite-${r}`)||t.push(e[r]?.());return t.length>0?Promise.all(t):null}({button:()=>Promise.all([r.e(7007),r.e(7836)]).then(r.bind(r,37836)),dialog:()=>Promise.all([r.e(7007),r.e(8666)]).then(r.bind(r,68666)),input:()=>Promise.all([r.e(7007),r.e(4546)]).then(r.bind(r,2165)),label:()=>r.e(224).then(r.bind(r,87843)),notice:()=>Promise.all([r.e(7007),r.e(8098)]).then(r.bind(r,48098))})}get title(){return this.commonMessages?.auth.signIn}render(){const{open:e,title:t,messages:r,signingIn:s,oAuthPrompt:i,server:n,resource:o,error:a}=this,{info:l,oAuthInfo:h,lblItem:c,invalidUser:d,noAuthService:u,lblUser:p,lblPwd:f,lblCancel:_,lblSigning:g,lblOk:m}=r;return $e("div",{class:this.classes(ze.base,Ve())},$e("form",{bind:this,onsubmit:this._submit},$e("calcite-dialog",{bind:this,heading:t,modal:!0,open:e,outsideCloseDisabled:!0,scale:"s",widthScale:"s",onCalciteDialogClose:this._cancel,onCalciteDialogOpen:this._focusUsernameInput},$e("div",{class:ze.info},(0,Fe.V)(i?h:l,{server:n&&/\.arcgis\.com/i.test(n)?"ArcGIS Online":n,resource:`(${o||c})`})),a?$e("calcite-notice",{class:ze.notice,icon:"exclamation-mark-triangle",kind:"danger",open:!0},$e("div",{slot:"message"},a.details?.httpStatus?d:u)):null,i?null:[$e("calcite-label",null,p,$e("calcite-input",{afterCreate:e=>this._usernameInputNode=e,autocomplete:"off",bind:this,name:"username",required:!0,spellcheck:!1,type:"text",value:""})),$e("calcite-label",null,f,$e("calcite-input",{afterCreate:e=>this._passwordInputNode=e,bind:this,name:"password",required:!0,type:"password",value:""}))],$e("calcite-button",{appearance:"outline",bind:this,onclick:this._cancel,slot:"footer-end",type:"button"},_),$e("calcite-button",{loading:!!s,slot:"footer-end",type:"submit"},s?g:m))))}_focusUsernameInput(){return async function(e){await(0,P.$m)((0,u.Mq)(void 0));const t=e();t&&("setFocus"in t&&"function"==typeof t.setFocus?await t.setFocus():t instanceof HTMLElement&&t.focus())}((()=>this._usernameInputNode))}_cancel(){this._set("signingIn",!1),this.open=!1,this._usernameInputNode&&(this._usernameInputNode.value=""),this._passwordInputNode&&(this._passwordInputNode.value=""),this.emit("cancel")}_submit(e){e.preventDefault(),this._set("signingIn",!0);const t=this.oAuthPrompt?{}:{username:this._usernameInputNode?.value,password:this._passwordInputNode?.value};this.emit("submit",t)}};(0,i._)([(0,f.MZ)({readOnly:!0})],He.prototype,"container",void 0),(0,i._)([(0,f.MZ)(),Le("esri/t9n/common")],He.prototype,"commonMessages",void 0),(0,i._)([(0,f.MZ)()],He.prototype,"error",void 0),(0,i._)([(0,f.MZ)(),Le("esri/identity/t9n/identity")],He.prototype,"messages",void 0),(0,i._)([(0,f.MZ)()],He.prototype,"oAuthPrompt",void 0),(0,i._)([(0,f.MZ)()],He.prototype,"open",void 0),(0,i._)([(0,f.MZ)()],He.prototype,"signingIn",void 0),(0,i._)([(0,f.MZ)()],He.prototype,"server",void 0),(0,i._)([(0,f.MZ)({readOnly:!0})],He.prototype,"title",null),(0,i._)([(0,f.MZ)()],He.prototype,"resource",void 0),He=(0,i._)([(0,g.$)("esri.identity.IdentityModal")],He);const Je=He,We="esriJSAPIOAuth";class Ge{constructor(e,t){this.oAuthInfo=null,this.storage=null,this.appId=null,this.codeVerifier=null,this.expires=null,this.refreshToken=null,this.ssl=null,this.stateUID=null,this.token=null,this.userId=null,this.oAuthInfo=e,this.storage=t,this._init()}isValid(){let e=!1;if(this.oAuthInfo&&this.userId&&(this.refreshToken||this.token))if(null==this.expires&&this.refreshToken)e=!0;else if(this.expires){const t=Date.now();this.expires>t&&(this.expires-t)/1e3>60*this.oAuthInfo.minTimeUntilExpiration&&(e=!0)}return e}save(){if(!this.storage)return!1;const e=this._load(),t=this.oAuthInfo;if(t?.authNamespace&&t.portalUrl){let r=e[t.authNamespace];r||(r=e[t.authNamespace]={}),this.appId||(this.appId=t.appId),r[t.portalUrl]={appId:this.appId,codeVerifier:this.codeVerifier,expires:this.expires,refreshToken:this.refreshToken,ssl:this.ssl,stateUID:this.stateUID,token:this.token,userId:this.userId};try{this.storage.setItem(We,JSON.stringify(e))}catch(e){return console.warn(e),!1}return!0}return!1}destroy(){const e=this._load(),t=this.oAuthInfo;if(t?.appId&&t?.portalUrl&&(null==this.expires||this.expires>Date.now())&&(this.refreshToken||this.token)){const e=t.portalUrl.replace(/^http:/i,"https:")+"/sharing/rest/oauth2/revokeToken",r=new FormData;if(r.append("f","json"),r.append("auth_token",this.refreshToken||this.token),r.append("client_id",t.appId),r.append("token_type_hint",this.refreshToken?"refresh_token":"access_token"),"function"==typeof navigator.sendBeacon)navigator.sendBeacon(e,r);else{const t=new XMLHttpRequest;t.open("POST",e),t.send(r)}}if(t?.authNamespace&&t.portalUrl&&this.storage){const r=e[t.authNamespace];if(r){delete r[t.portalUrl];try{this.storage.setItem(We,JSON.stringify(e))}catch(e){console.log(e)}}}t&&(t._oAuthCred=null,this.oAuthInfo=null)}_init(){const e=this._load(),t=this.oAuthInfo;if(t?.authNamespace&&t.portalUrl){let r=e[t.authNamespace];r&&(r=r[t.portalUrl],r&&(this.appId=r.appId,this.codeVerifier=r.codeVerifier,this.expires=r.expires,this.refreshToken=r.refreshToken,this.ssl=r.ssl,this.stateUID=r.stateUID,this.token=r.token,this.userId=r.userId))}}_load(){let e={};if(this.storage){const t=this.storage.getItem(We);if(t)try{e=JSON.parse(t)}catch(e){console.warn(e)}}return e}}Ge.prototype.declaredClass="esri.identity.OAuthCredential";var Ke,Xe=r(25482);let Ye=Ke=class extends Xe.A{constructor(e){super(e),this._oAuthCred=null,this.appId=null,this.authNamespace="/",this.expiration=20160,this.flowType="auto",this.forceLogin=!1,this.forceUserId=!1,this.locale=null,this.minTimeUntilExpiration=30,this.popup=!1,this.popupCallbackUrl="oauth-callback.html",this.popupWindowFeatures="height=490,width=800,resizable,scrollbars,status",this.portalUrl="https://www.arcgis.com",this.preserveUrlHash=!1,this.userId=null}clone(){return Ke.fromJSON(this.toJSON())}};(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"appId",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"authNamespace",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"expiration",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"flowType",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"forceLogin",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"forceUserId",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"locale",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"minTimeUntilExpiration",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"popup",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"popupCallbackUrl",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"popupWindowFeatures",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"portalUrl",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"preserveUrlHash",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],Ye.prototype,"userId",void 0),Ye=Ke=(0,i._)([(0,g.$)("esri.identity.OAuthInfo")],Ye);const Qe=Ye;let et=class extends Xe.A{constructor(e){super(e),this.adminTokenServiceUrl=null,this.currentVersion=null,this.hasPortal=null,this.hasServer=null,this.owningSystemUrl=null,this.owningTenant=null,this.server=null,this.shortLivedTokenValidity=null,this.tokenServiceUrl=null,this.webTierAuth=null}};(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"adminTokenServiceUrl",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"currentVersion",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"hasPortal",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"hasServer",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"owningSystemUrl",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"owningTenant",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"server",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"shortLivedTokenValidity",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"tokenServiceUrl",void 0),(0,i._)([(0,f.MZ)({json:{write:!0}})],et.prototype,"webTierAuth",void 0),et=(0,i._)([(0,g.$)("esri.identity.ServerInfo")],et);const tt=et;var rt=r(39131);const st={},it=e=>{const t=new p.s0(e.owningSystemUrl).host,r=new p.s0(e.server).host,s=/.+\.arcgis\.com$/i;return s.test(t)&&s.test(r)},nt=(e,t)=>!!(it(e)&&t&&t.some((t=>t.test(e.server))));let ot=null,at=null;try{ot=window.localStorage,at=window.sessionStorage}catch{}class lt extends l.A{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=(0,p.An)(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener("pageshow",(e=>{this._pageShowHandler(e)}))}registerServers(e){const t=this.serverInfos;t?(e=e.filter((e=>!this.findServerInfo(e.server))),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach((e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)}))}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const r of e){const e=this.findOAuthInfo(r.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),r=this._isServerRsrc(t);let s,i=this.findServerInfo(t),n=!0;i||(i=new tt,i.server=this._getServerInstanceRoot(t),r?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),s=this._findCredential(t),s?(delete e.server,Object.assign(s,e),n=!1):(s=new ht({userId:e.userId,server:i.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:r?"server":"portal"}),s.resources=[t],this.credentials.push(s)),s.emitTokenChange(!1),n||s.refreshServerTokens()}toJSON(){return(0,c.oy)({serverInfos:this.serverInfos.map((e=>e.toJSON())),oAuthInfos:this.oAuthInfos.map((e=>e.toJSON())),credentials:this.credentials.map((e=>e.toJSON()))})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,r=e.oAuthInfos,s=e.credentials;if(t){const e=[];t.forEach((t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new tt(t))})),e.length&&this.registerServers(e)}if(r){const e=[];r.forEach((t=>{t.appId&&e.push(t.declaredClass?t:new Qe(t))})),e.length&&this.registerOAuthInfos(e)}s&&s.forEach((e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new ht(e)).emitTokenChange(),this.credentials.push(e))}))}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.serverInfos)if(this._hasSameServerInstance(r.server,e)){t=r;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const r of this.oAuthInfos)if(this._hasSameServerInstance(r.portalUrl,e)){t=r;break}return t}findCredential(e,t){if(!e)return;let r;e=this._sanitizeUrl(e);const s=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===s){r=i;break}}else for(const t of this.credentials)if(this._hasSameServerInstance(t.server,e)&&-1!==this._getIdenticalSvcIdx(e,t)&&t.scope===s){r=t;break}return r}getCredential(e,t){let r,s,i=!0;t&&(r=!!t.token,s=t.error,i=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const n=new AbortController,o=(0,u.Tw)();if(t.signal&&(0,u.u7)(t.signal,(()=>{n.abort()})),(0,u.u7)(n,(()=>{o.reject(new a.A("identity-manager:user-aborted","ABORTED"))})),(0,u.G4)(n))return o.promise;t.signal=n.signal;const l=this._isAdminResource(e),h=r?this.findCredential(e):null;let c;if(h&&s&&s.details&&498===s.details.httpStatus)h.destroy();else if(h)return c=new a.A("identity-manager:not-authorized","You are currently signed in as: '"+h.userId+"'. You do not have access to this resource: "+e,{error:s}),o.reject(c),o.promise;const d=this._findCredential(e,t);if(d)return o.resolve(d),o.promise;let f=this.findServerInfo(e);if(f)!f.hasPortal&&f.server&&f.owningSystemUrl&&this._hasSameServerInstance(f.server,f.owningSystemUrl)&&(f.hasPortal=!0),!f.hasServer&&this._isServerRsrc(e)&&(f._restInfoPms=this._getTokenSvcUrl(e),f.hasServer=!0);else{const t=this._getTokenSvcUrl(e);if(!t)return c=new a.A("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),o.reject(c),o.promise;f=new tt,f.server=this._getServerInstanceRoot(e),"string"==typeof t?(f.tokenServiceUrl=t,f.hasPortal=!0):(f._restInfoPms=t,f.hasServer=!0),this.registerServers([f])}return f.hasPortal&&void 0===f._selfReq&&(i||(0,p.FX)(f.tokenServiceUrl,this._appOrigin)||this._gwDomains.some((e=>e.tokenServiceUrl===f.tokenServiceUrl)))&&(f._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(f.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,f,t,o,l)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,t,r){const s=this._rePortalTokenSvc.test(e.tokenServiceUrl),i=new p.s0(this._appOrigin),n=e.shortLivedTokenValidity;let l,h,c,d,u,f,_,g;t&&(g=this.tokenValidity||n||this._defaultTokenValidity,g>n&&n>0&&(g=n)),r&&(l=r.isAdmin,h=r.serverUrl,c=r.token,f=r.signal,_=r.ssl,e.customParameters=r.customParameters),l?d=e.adminTokenServiceUrl:(d=e.tokenServiceUrl,u=new p.s0(d.toLowerCase()),e.webTierAuth&&r?.serverUrl&&!_&&"http"===i.scheme&&((0,p.FX)(i.uri,d,!0)||"https"===u.scheme&&i.host===u.host&&"7080"===i.port&&"7443"===u.port)&&(d=d.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const m={query:{request:"getToken",username:t?.username,password:t?.password,serverUrl:h,token:c,expiration:g,referer:l||s?this._appOrigin:null,client:l?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,r),signal:f,...r?.ioArgs};return s||(m.withCredentials=!1),(0,o.A)(d,m).then((r=>{const s=r.data;if(!s?.token)return new a.A("identity-manager:authentication-failed","Unable to generate token");const i=e.server;return st[i]||(st[i]={}),t&&(st[i][t.username]=t.password),s.validity=g,s}))}isBusy(){return!!this._busy}async checkSignInStatus(e){return(await this.checkAppAccess(e,"")).credential}checkAppAccess(e,t,r){let s=!1;return this.getCredential(e,{prompt:!1}).then((i=>{let n;const l={f:"json"};if("portal"===i.scope)if(t&&(this._doPortalSignIn(e)||r?.force))n=i.server+"/sharing/rest/oauth2/validateAppAccess",l.client_id=t;else{if(!i.token)return{credential:i};n=i.server+"/sharing/rest"}else{if(!i.token)return{credential:i};n=i.server+"/rest/services"}return i.token&&(l.token=i.token),(0,o.A)(n,{query:l,authMode:"anonymous"}).then((e=>{if(!1===e.data.valid)throw new a.A("identity-manager:not-authorized",`You are currently signed in as: '${i.userId}'.`,e.data);return s=!!e.data.viewOnlyUserTypeApp,{credential:i}})).catch((e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw i.destroy(),new a.A("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new a.A("identity-manager:invalid-request");return{credential:i}}))})).then((e=>({credential:e.credential,viewOnly:s})))}setOAuthResponseHash(e){e&&("#"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams((0,p.zf)(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,r={}){const s=(0,u.Tw)(),i=()=>{l?.remove(),h?.remove(),this.dialog?.destroy(),this.dialog=l=h=null},n=()=>{i(),this._oAuthDfd=null,s.reject(new a.A("identity-manager:user-aborted","ABORTED"))};r.signal&&(0,u.u7)(r.signal,(()=>{n()}));const o=new Je({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=o,this.emit("dialog-create");let l=o.on("cancel",n),h=o.on("submit",(e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then((n=>{i();const o=new ht({userId:e.username,server:t.server??void 0,token:n.token,expires:null!=n.expires?Number(n.expires):null,ssl:!!n.ssl,isAdmin:r.isAdmin,validity:n.validity});s.resolve(o)})).catch((e=>{o.error=e,o.signingIn=!1}))}));return s.promise}oAuthSignIn(e,t,r,s){this._oAuthDfd=(0,u.Tw)();const i=this._oAuthDfd;let n;s?.signal&&(0,u.u7)(s.signal,(()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&c()})),i.resUrl_=e,i.sinfo_=t,i.oinfo_=r;const o=r._oAuthCred;if(o.storage&&("authorization-code"===r.flowType||"auto"===r.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));n=(0,p.$1)(e),o.codeVerifier=n,e=crypto.getRandomValues(new Uint8Array(32)),o.stateUID=(0,p.$1)(e),o.save()||(o.codeVerifier=n=null)}else o.codeVerifier=null;let l,h;this._getCodeChallenge(n).then((i=>{const n=!s||!1!==s.oAuthPopupConfirmation;if(!r.popup||!n)return void this._doOAuthSignIn(e,t,r,i);const o=new Je({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit("dialog-create"),l=o.on("cancel",c),h=o.on("submit",(()=>{d(),this._doOAuthSignIn(e,t,r,i)}))}));const c=()=>{d(),this._oAuthDfd=null,i.reject(new a.A("identity-manager:user-aborted","ABORTED"))},d=()=>{l?.remove(),h?.remove(),this.dialog?.destroy(),this.dialog=null};return i.promise}destroyCredentials(){this.credentials&&this.credentials.slice().forEach((e=>{e.destroy()})),this.emit("credentials-destroy")}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=(0,h.on)(window,"message",(t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const r=t.source;this.getCredential(e).then((e=>{r.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)})).catch((e=>{r.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin)}))}}))}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){"#"===e.charAt(0)&&(e=e.slice(1));const t=(0,p.zf)(e);let r=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,r=!0)}catch{}else if(t.error&&t.error_description&&(console.log("IdentityManager OAuth Error: ",t.error," - ",t.error_description),"access_denied"===t.error&&(r=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}r&&(window.location.hash=t.state?.hash||"")}let t=window.location.search;if(t){"?"===t.charAt(0)&&(t=t.slice(1));const e=(0,p.zf)(t);let r=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,r=!0)}catch{}else if(e.error&&e.error_description&&(console.log("IdentityManager OAuth Error: ",e.error," - ",e.error_description),"access_denied"===e.error&&(r=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(r){const t={...e};["code","error","error_description","message_code","persist","state"].forEach((e=>{delete t[e]}));const r=(0,p.x0)(t),s=window.location.pathname+(r?`?${r}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",s)}}}_getOAuthToken(e,t,r,s,i){return e=e.replace(/^http:/i,"https:"),(0,o.A)(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:s&&i?{grant_type:"authorization_code",code:t,redirect_uri:s,client_id:r,code_verifier:i}:{grant_type:"refresh_token",refresh_token:t,client_id:r}}).then((e=>e.data))}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-256",t);return(0,p.$1)(new Uint8Array(r))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new a.A("identity-manager:user-aborted","ABORTED");this._errbackFunc(e)}}_findCredential(e,t){let r,s,i,n,o=-1;const a=t?.token,l=t?.resource,h=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter((t=>this._hasSameServerInstance(t.server,e)&&t.scope===h));if(e=l||e,c.length)if(1===c.length){if(r=c[0],i=this.findServerInfo(r.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,r.userId):void 0,o=this._getIdenticalSvcIdx(e,r),!a)return-1===o&&r.resources.push(e),this._addResource(e,n),r;-1!==o&&(r.resources.splice(o,1),this._removeResource(e,n))}else{let t,r;if(c.some((a=>(r=this._getIdenticalSvcIdx(e,a),-1!==r&&(t=a,i=this.findServerInfo(t.server),s=i?.owningSystemUrl,n=s?this.findCredential(s,t.userId):void 0,o=r,!0)))),a)t&&(t.resources.splice(o,1),this._removeResource(e,n));else if(t)return this._addResource(e,n),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const r of this.oAuthInfos)if(this._isIdProvider(r.portalUrl,e)){t=r;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e)}_removeResource(e,t){let r=-1;t&&(r=this._getIdenticalSvcIdx(e,t),r>-1&&t.resources.splice(r,1))}_useProxy(e,t){return t?.isAdmin&&!(0,p.FX)(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!(0,p.FX)(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new p.s0(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let r=t.indexOf(this._agsRest);return-1===r&&this._isAdminResource(e)&&(r=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==r||(0,rt.$E)(t)||(r=t.indexOf("/sharing")),-1===r&&t.endsWith("/")&&(r=t.length-1),r>-1?e.slice(0,r):e}_hasSameServerInstance(e,t){return e.endsWith("/")&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=(0,rt.qG)(e),t=(0,rt.qG)(t),(e=e.slice(Math.max(0,e.indexOf(":"))))===t.slice(Math.max(0,t.indexOf(":")))}_sanitizeUrl(e){const t=(n.A.request.proxyUrl||"").toLowerCase(),r=t?e.toLowerCase().indexOf(t+"?"):-1;return-1!==r&&(e=e.slice(r+t.length+1)),e=(0,p.S8)(e),(0,p.An)(e).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let r=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const s=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(r=s===i,!r){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;r=s.replaceAll(e,"$1")===i.replaceAll(e,"$1")}}else this._isAdminResource(e)&&this._isAdminResource(t)?r=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(r=!0);return r}_isPortalDomain(e){const t=new p.s0(e.toLowerCase()),r=this._portalConfig;let s=this._gwDomains.some((e=>e.regex.test(t.uri)));return!s&&r&&(s=this._hasSameServerInstance(this._getServerInstanceRoot(r.restBaseUrl),t.uri)),s||n.A.portalUrl&&(s=(0,p.FX)(t,n.A.portalUrl,!0)),s||(s=this._portals.some((e=>this._hasSameServerInstance(e,t.uri)))),s=s||this._agsPortal.test(t.path),s}_isIdProvider(e,t){let r=-1,s=-1;this._gwDomains.forEach(((i,n)=>{-1===r&&i.regex.test(e)&&(r=n),-1===s&&i.regex.test(t)&&(s=n)}));let i=!1;if(r>-1&&s>-1&&(0===r||4===r?0!==s&&4!==s||(i=!0):1===r?1!==s&&2!==s||(i=!0):2===r?2===s&&(i=!0):3===r&&3===s&&(i=!0)),!i){const r=this.findServerInfo(t),s=r?.owningSystemUrl;s&&it(r)&&this._isPortalDomain(s)&&this._isIdProvider(e,s)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let r=-1;for(let s=0;s<t.resources.length;s++){const i=t.resources[s];if(this._isIdenticalService(e,i)){r=s;break}}return r}_getSuffix(e){return e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"$1")}_getTokenSvcUrl(e){let t,r,s;if(this._isRESTService(e)||this._isAdminResource(e)){const s=this._getServerInstanceRoot(e);return t=s+"/admin/generateToken",r=(0,o.A)(e=s+"/rest/info",{query:{f:"json"}}).then((e=>e.data)),{adminUrl:t,promise:r}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some((r=>(r.regex.test(e)&&(t=r.tokenServiceUrl),!!t))),t||this._portals.some((r=>(this._hasSameServerInstance(r,e)&&(t=r+this._gwTokenUrl),!!t))),t||(s=e.toLowerCase().indexOf("/sharing"),-1!==s&&(t=e.slice(0,s)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const r=new p.s0(e).port;/^http:\/\//i.test(e)&&"7080"===r&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:")}return t}}_processOAuthResponseParams(e,t,r){const s=t._oAuthCred;if(e.code){const i=s.codeVerifier;return s.codeVerifier=null,s.stateUID=null,s.save(),this._getOAuthToken(r.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then((i=>{const n=new ht({userId:i.username,server:r.server??void 0,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=n.userId,s.storage=i.persist?ot:at,s.refreshToken=i.refresh_token,s.token=null,s.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,s.userId=n.userId,s.ssl=n.ssl,s.save(),n}))}const i=new ht({userId:e.username,server:r.server??void 0,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:s});return t.userId=i.userId,s.storage=e.persist?ot:at,s.refreshToken=null,s.token=i.token,s.expires=i.expires,s.userId=i.userId,s.ssl=i.ssl,s.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const r="access_denied"===e.error,s=new a.A(r?"identity-manager:user-aborted":"identity-manager:authentication-failed",r?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(s)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then((e=>{t.resolve(e)})).catch((e=>{t.reject(e)}))}_setOAuthResponseQueryString(e){e&&("?"===e.charAt(0)&&(e=e.slice(1)),this._processOAuthPopupParams((0,p.zf)(e)))}async _exchangeToken(e,t,r){return(await(0,o.A)(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:t,token:r}})).data.token}async _getPlatformSelf(e,t){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,"https:");try{const r=await(0,o.A)(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":t,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,r.data}catch(e){throw"OAUTH_0066"===e.details?.messageCode&&(this._getPlatformSelfError=[e,Date.now()]),e}}_getPortalSelf(e,t){let r;return this._gwDomains.some((t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r))),r?Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:r,portalMode:"multitenant",supportsOAuth:!0}):(this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(t)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080")),(0,o.A)(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then((e=>e.data)))}_doPortalSignIn(e){const t=this._portalConfig,r=window.location.href,s=this.findServerInfo(e);return!(!t&&!this._isPortalDomain(r)||!(s?s.hasPortal||s.owningSystemUrl&&this._isPortalDomain(s.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(r,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||(0,p.FX)(r,e,!0)))}_checkProtocol(e,t,r,s){let i=!0;const n=s?t.adminTokenServiceUrl:t.tokenServiceUrl;return n.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&(0,p.zs)(n)&&(i=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!i)&&r(new a.A("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection.")),i}_enqueue(e,t,r,s,i,n){return s||(s=(0,u.Tw)()),s.resUrl_=e,s.sinfo_=t,s.options_=r,s.admin_=i,s.refresh_=n,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(s)):this._xoReqs.push(s):this._doSignIn(s),s.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;const t=t=>{const r=e.options_?.resource,s=e.resUrl_,i=e.refresh_;let n=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,n=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(r||s)||t.resources.push(r||s),t.scope=this._isServerRsrc(s)?"server":"portal",t.emitTokenChange();const o=this._soReqs,a={};this._soReqs=[],o.forEach((e=>{if(!this._isIdenticalService(s,e.resUrl_)){const r=this._getSuffix(e.resUrl_);a[r]||(a[r]=!0,t.resources.push(e.resUrl_))}})),e.resolve(t),o.forEach((e=>{this._hasSameServerInstance(this._getServerInstanceRoot(s),e.resUrl_)?e.resolve(t):this._soReqs.push(e)})),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,n||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},r=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},s=(i,n,o,l)=>{const c=e.sinfo_,d=!e.options_||!1!==e.options_.prompt,f=c.hasPortal&&this._findOAuthInfo(e.resUrl_);let _,g;if(i)t(new ht({userId:i,server:c.server??void 0,token:o??void 0,expires:null!=l?Number(l):null,ssl:!!n}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const s=(0,h.on)(window,"message",(e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(s.remove(),e.data.credential.expires<Date.now()?r(new a.A("identity-manager:credential-request-failed","Parent application's token has expired.")):t(new ht(e.data.credential))):"arcgis:auth:error"===e.data.type&&(s.remove(),"tokenExpiredError"===e.data.error.name?r(new a.A("identity-manager:credential-request-failed","Parent application's token has expired.")):r(a.A.fromJSON(e.data.error))))}));(0,u.u7)(e.options_?.signal,(()=>{s.remove()}))}else if(f){let i=f._oAuthCred;if(!i){const e=new Ge(f,ot),t=new Ge(f,at);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,f._oAuthCred=i}if(i.isValid()){_=new ht({userId:i.userId??void 0,server:c.server??void 0,token:i.token??void 0,expires:i.expires,ssl:i.ssl??void 0,_oAuthCred:i});const n=f.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);n||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(c.server,i.refreshToken,i.appId).then((e=>(_.expires=Date.now()+1e3*e.expires_in,_.token=e.access_token,_))):Promise.resolve(_),e._pendingDfd.then((e=>n?this._exchangeToken(e.server,f.appId,e.token).then((t=>(e.token=t,e))).catch((()=>e)):e)).then((e=>{t(e)})).catch((e=>{const t=e.details?.httpStatus;t>0&&404!==t?(i.destroy(),s()):r(e)}))):t(_)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(f.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){const s=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(s,f,c).then((e=>{t(e)})).catch(r)}else{const s=()=>{d?e._pendingDfd=this.oAuthSignIn(e.resUrl_,c,f,e.options_).then(t,r):(g=new a.A("identity-manager:not-authenticated","User is not signed in."),r(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(c.server,f.appId).then((e=>{(0,p.FX)(e.portalUrl,this._appOrigin,!0)?(_=new ht({userId:e.username,server:c.server??void 0,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(_)):s()})).catch(s):s()}}else if(d){if(this._checkProtocol(e.resUrl_,c,r,e.admin_)){let s=e.options_;e.admin_&&(s=s||{},s.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,c,s).then(t,r)}}else g=new a.A("identity-manager:not-authenticated","User is not signed in."),r(g)},i=()=>{const s=e.sinfo_,i=s.owningSystemUrl,n=e.options_;let o,a,l,h;if(n&&(o=n.token,a=n.error,l=n.prompt),h=this._findCredential(i,{token:o,resource:e.resUrl_}),!h)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){h=e;break}if(h){const i=this.findCredential(e.resUrl_,h.userId);if(i)t(i);else if(nt(s,this._legacyFed)){const e=h.toJSON();e.server=s.server,e.resources=null,t(new ht(e))}else(e._pendingDfd=this.generateToken(this.findServerInfo(h.server),null,{serverUrl:e.resUrl_,token:h.token,signal:e.options_.signal,ssl:h.ssl})).then((r=>{t(new ht({userId:h?.userId,server:s.server??void 0,token:r.token,expires:null!=r.expires?Number(r.expires):null,ssl:!!r.ssl,isAdmin:e.admin_,validity:r.validity}))}),r)}else this._busy=null,o&&(e.options_.token=null),(e._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e.resUrl_,owningTenant:s.owningTenant,signal:e.options_.signal,token:o,error:a,prompt:l})).then((()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)}),(t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)}))};this._errbackFunc=r;const n=e.sinfo_.owningSystemUrl,o=this._isServerRsrc(e.resUrl_),l=e.sinfo_._restInfoPms;l?l.promise.then((t=>{const r=e.sinfo_;if(r._restInfoPms){r.adminTokenServiceUrl=r._restInfoPms.adminUrl,r._restInfoPms=null,r.tokenServiceUrl=((0,d.wc)("authInfo.tokenServicesUrl",t)||(0,d.wc)("authInfo.tokenServiceUrl",t)||(0,d.wc)("tokenServiceUrl",t))??null,r.shortLivedTokenValidity=(0,d.wc)("authInfo.shortLivedTokenValidity",t)??null,r.currentVersion=t.currentVersion,r.owningTenant=t.owningTenant;const e=r.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}o&&r.owningSystemUrl?i():s()}),(()=>{e.sinfo_._restInfoPms=null;const t=new a.A("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");r(t)})):o&&n?i():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then((t=>{const r={};let s,i,n,o;return t&&(s=t.user?.username,r.username=s,r.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(n=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!s,s&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:r.allSSL}).catch((()=>null)).then((e=>(r.portalToken=e?.token,r.tokenExpiration=e?.expires,r))):!s&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:n,owningTenant:e.sinfo_._selfReq.owningTenant}).catch((()=>null)).then((()=>r)):r})).catch((()=>null)).then((t=>{e.sinfo_._selfReq=null,t?s(t.username,t.allSSL,t.portalToken,t.tokenExpiration):s()})):s()}_generateOAuthInfo(e){let t,r=null,s=e.portalUrl;const i=e.customBaseUrl,n=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){r=window.location.href;let e=r.indexOf("?");e>-1&&(r=r.slice(0,e)),e=r.search(/\/(apps|home)\//),r=e>-1?r.slice(0,e):null}return a&&r?(this._hasTestedIfAppIsOnPortal=!0,t=(0,o.A)(r+"/sharing/rest",{query:{f:"json"}}).then((()=>{this._defaultOAuthInfo=new Qe({appId:"arcgisonline",popupCallbackUrl:r+"/home/oauth-callback.html"})}))):t=Promise.resolve(),t.then((()=>{if(this._defaultOAuthInfo)return s=s.replace(/^http:/i,"https:"),(0,o.A)(s+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:n,client_id:this._defaultOAuthInfo.appId,redirect_uri:(0,p.s2)(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then((e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&i?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+i:t.portalUrl=s,t.popup=window!==window.top||!((0,p.FX)(s,this._appOrigin)||this._gwDomains.some((e=>e.regex.test(s)&&e.regex.test(this._appOrigin)))),this.oAuthInfos.push(t)}}))}))}_doOAuthSignIn(e,t,r,s){const i=r._oAuthCred,n={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(n.hash=window.location.hash),i.stateUID&&(n.uid=i.stateUID);const o={client_id:r.appId,response_type:i.codeVerifier?"code":"token",state:JSON.stringify(n),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!i.codeVerifier)};r.forceLogin&&(o.force_login=!0),r.forceUserId&&r.userId&&(o.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(o.redirectToUserOrgUrl=!0),i.codeVerifier&&(o.code_challenge=s||i.codeVerifier,o.code_challenge_method=s?"S256":"plain");const l=r.portalUrl.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize",c=l+"?"+(0,p.x0)(o);if(r.popup){const e=window.open(c,"esriJSAPIOAuth",r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval((()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new a.A("identity-manager:user-aborted","ABORTED");e.reject(t)}}}),500),this._oAuthOnPopupHandle=(0,h.on)(window,["arcgis:auth:hash","arcgis:auth:location:search"],(e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)}));else{const e=new a.A("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:o,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=c}_getRedirectURI(e,t){const r=window.location.href.replace(/#.*$/,"");if(e.popup)return(0,p.s2)(e.popupCallbackUrl);if(t){const e=(0,p.An)(r);return e.query&&["code","error","error_description","message_code","persist","state"].forEach((t=>{delete e.query[t]})),(0,p.a6)(e.path,e.query)}return r}}lt.prototype.declaredClass="esri.identity.IdentityManagerBase";let ht=class extends l.A.EventedAccessor{constructor(e){super(e),this._oAuthCred=null,this.tokenRefreshBuffer=2,e?._oAuthCred&&(this._oAuthCred=e._oAuthCred)}initialize(){this.resources=this.resources||[],null==this.creationTime&&(this.creationTime=Date.now())}refreshToken(){const e=s.id,t=e.findServerInfo(this.server),r=t?.owningSystemUrl,i=!!r&&"server"===this.scope,n=i&&nt(t,e._legacyFed),o=t.webTierAuth,a=o&&e.normalizeWebTierAuth,l=st[this.server],h=l?.[this.userId];let c,d=this.resources&&this.resources[0],u=i?e.findServerInfo(r):null,p={username:this.userId,password:h};if(o&&!a)return;i&&!u&&e.serverInfos.some((t=>(e._isIdProvider(r,t.server)&&(u=t),!!u)));const f=u?e.findCredential(u.server,this.userId):null;if(!i||f){if(!n){if(i)c={serverUrl:d,token:f?.token,ssl:f?.ssl};else if(a)p=null,c={ssl:this.ssl};else{if(!h){let r;return d&&(d=e._sanitizeUrl(d),this._enqueued=1,r=e._enqueue(d,t,null,null,this.isAdmin,this),r.then((()=>{this._enqueued=0,this.refreshServerTokens()})).catch((()=>{this._enqueued=0}))),r}this.isAdmin&&(c={isAdmin:!0})}return e.generateToken(i?u:t,i?null:p,c).then((e=>{this.token=e.token,this.expires=null!=e.expires?Number(e.expires):null,this.creationTime=Date.now(),this.validity=e.validity,this.emitTokenChange(),this.refreshServerTokens()})).catch((()=>{}))}f?.refreshToken()}}refreshServerTokens(){if("portal"===this.scope){const e=s.id;e.credentials.forEach((t=>{const r=e.findServerInfo(t.server),s=r?.owningSystemUrl;t!==this&&t.userId===this.userId&&s&&"server"===t.scope&&(e._hasSameServerInstance(this.server,s)||e._isIdProvider(s,this.server))&&(nt(r,e._legacyFed)?(t.token=this.token,t.expires=this.expires,t.creationTime=this.creationTime,t.validity=this.validity,t.emitTokenChange()):t.refreshToken())}))}}emitTokenChange(e){clearTimeout(this._refreshTimer);const t=s.id,r=this.server?t.findServerInfo(this.server):null,i=r?.owningSystemUrl,n=i?t.findServerInfo(i):null;!1===e||i&&"portal"!==this.scope&&(!n?.webTierAuth||t.normalizeWebTierAuth)||null==this.expires&&null==this.validity||this._startRefreshTimer(),this.emit("token-change")}destroy(){this.userId=this.server=this.token=this.expires=this.validity=this.resources=this.creationTime=null,this._oAuthCred&&(this._oAuthCred.destroy(),this._oAuthCred=null);const e=s.id,t=e.credentials.indexOf(this);t>-1&&e.credentials.splice(t,1),this.emitTokenChange(),this.emit("destroy")}toJSON(){const e=(0,c.oy)({userId:this.userId,server:this.server,token:this.token,expires:this.expires,validity:this.validity,ssl:this.ssl,isAdmin:this.isAdmin,creationTime:this.creationTime,scope:this.scope}),t=this.resources;return t&&t.length>0&&(e.resources=t.slice()),e}_startRefreshTimer(){clearTimeout(this._refreshTimer);const e=6e4*this.tokenRefreshBuffer,t=2**31-1;let r=(this.validity?this.creationTime+6e4*this.validity:this.expires)-Date.now();r<0?r=0:r>t&&(r=t),this._refreshTimer=setTimeout(this.refreshToken.bind(this),r>e?r-e:r)}};(0,i._)([(0,f.MZ)()],ht.prototype,"creationTime",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"expires",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"isAdmin",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"oAuthState",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"resources",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"scope",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"server",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"ssl",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"token",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"tokenRefreshBuffer",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"userId",void 0),(0,i._)([(0,f.MZ)()],ht.prototype,"validity",void 0),ht=(0,i._)([(0,g.$)("esri.identity.Credential")],ht);class ct extends lt{}ct.prototype.declaredClass="esri.identity.IdentityManager";const dt=new ct;(0,s.Aq)(dt)},47566:(e,t,r)=>{r(97770),r(18047),r(71754),r(73444);var s=r(10838),i=r(78888),n=r(49186);async function o(e){if(null!=l.fetchBundleAsset)return l.fetchBundleAsset(e);const t=await(0,i.A)(e,{responseType:"text"});return JSON.parse(t.data)}class a{constructor({base:e="",pattern:t,location:r=new URL(window.location.href)}){let s;s="string"==typeof r?e=>new URL(e,new URL(r,window.location.href)).href:r instanceof URL?e=>new URL(e,r).href:r,this.pattern="string"==typeof t?new RegExp(`^${t}`):t,this.getAssetUrl=s,e=e?e.endsWith("/")?e:e+"/":"",this.matcher=new RegExp(`^${e}(?:(.*)\\/)?(.*)$`)}fetchMessageBundle(e,t){return async function(e,t,r,i){const a=t.exec(r);if(!a)throw new n.A("esri-intl:invalid-bundle",`Bundle id "${r}" is not compatible with the pattern "${t}"`);const l=a[1]?`${a[1]}/`:"",h=a[2],c=(0,s.xO)(i),d=`${l}${h}.json`,u=c?`${l}${h}_${c}.json`:d;let p;try{p=await o(e(u))}catch(t){if(u===d)throw new n.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:t});try{p=await o(e(d))}catch(e){throw new n.A("intl:unknown-bundle",`Bundle "${r}" cannot be loaded`,{error:e})}}return p}(this.getAssetUrl,this.matcher,e,t)}}const l={};var h,c=r(2741);(0,s.ao)((h={pattern:"esri/",location:c.s},new a(h)))},18047:(e,t,r)=>{r.d(t,{ZV:()=>l,yx:()=>a});var s=r(73444);const i={ar:"ar-u-nu-latn"};let n=new WeakMap,o={};function a(e={}){const t={};return null!=e.digitSeparator&&(t.useGrouping=e.digitSeparator),null!=e.places&&(t.minimumFractionDigits=t.maximumFractionDigits=e.places),t}function l(e,t){return Object.is(e,-0)&&(e=0),function(e){const t=e||o;if(!n.has(t)){const r=(0,s.JK)(),o=i[(0,s.JK)()]||r;n.set(t,new Intl.NumberFormat(o,e))}return n.get(t)}(t).format(e)}(0,s.Ml)((()=>{n=new WeakMap,o={}})),new Map},71754:(e,t,r)=>{r.d(t,{V:()=>h});var s=r(53966),i=r(93637),n=r(799),o=r(97770),a=r(18047);const l=()=>s.A.getLogger("esri.intl.substitute");function h(e,t,r={}){const{format:s={}}=r;return(0,n.HC)(e,(e=>function(e,t,r){let s,n;const o=e.indexOf(":");if(-1===o?s=e.trim():(s=e.slice(0,o).trim(),n=e.slice(o+1).trim()),!s)return"";const a=(0,i.wc)(s,t);if(null==a)return"";const l=(n?r?.[n]:null)??r?.[s];return l?c(a,l):n?d(a,n):u(a)}(e,t,s)))}function c(e,t){switch(t.type){case"date":return(0,o.Yq)(e,t.intlOptions);case"number":return(0,a.ZV)(e,t.intlOptions);default:return l().warn("missing format descriptor for key {key}"),u(e)}}function d(e,t){switch(t.toLowerCase()){case"dateformat":return(0,o.Yq)(e);case"numberformat":return(0,a.ZV)(e);default:return l().warn(`inline format is unsupported since 4.12: ${t}`),/^(dateformat|datestring)/i.test(t)?(0,o.Yq)(e):/^numberformat/i.test(t)?(0,a.ZV)(e):u(e)}}function u(e){switch(typeof e){case"string":return e;case"number":return(0,a.ZV)(e);case"boolean":return""+e;default:return e instanceof Date?(0,o.Yq)(e):""}}}}]);
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{b as e,c as t}from"./tslib.es6.js";import{c as s,t as i,d as n,G as r,o as m,b as o,p as a,e as h,q as l,j as c,f as u,g as f}from"./Geometry.js";import{S as _,G as g}from"./SimpleGeometryCursor.js";import{C as d,c as p,P as y,E as b,s as P}from"./Envelope.js";import{i as x,m as C,P as D,h as w,d as T,s as v}from"./Point2D.js";import{L as S,D as I,a as M,P as E,i as V,E as k,n as R}from"./QuadraticBezier.js";import{Envelope2D as B}from"./Envelope2D.js";import{T as A}from"./Transformation2D.js";import{c as X}from"./GeometryCleaner-BEJM7I4l.js";import{aj as Y,ak as F,j as G,h as j,y as q}from"./ProjectionTransformation.js";import{O as z}from"./OperatorGeneralize.js";class L{getOperatorType(){return 10104}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}isSimple(e,t,s,i,n){return 5===Y(e,t,s,i,n)}executeMany(e,t,s,i){return new N(e,t,s,i)}execute(e,t,i,n){const r=new _([e]),m=this.executeMany(r,t,i,n).next();return m||s("null output"),m}}class N extends g{constructor(e,t,s,n){super(),e||i(""),this.m_progressTracker=n,this.m_bForceSimplify=s,this.m_index=-1,this.m_inputGeometryCursor=e,this.m_spatialReference=t}next(){const e=this.m_inputGeometryCursor.next();return e?(n(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.simplify(e)):null}getGeometryID(){return this.m_index}tock(){return!1}getRank(){return 1}simplify(e){e||i("");return F(e,this.m_spatialReference,this.m_bForceSimplify,this.m_progressTracker)}}var O;function J(e,t,s,i,n,r){return{m_from:e.clone(),m_to:t.clone(),m_center:s.clone(),m_next:n,m_type:i}}function U(e,t,s,i,n){return{m_from:e.clone(),m_to:t.clone(),m_next:s,m_type:4,m_center:new D}}!function(e){e[e.enumDummy=256]="enumDummy",e[e.enumLine=1]="enumLine",e[e.enumArc=2]="enumArc",e[e.enumMiter=8]="enumMiter",e[e.enumBevel=16]="enumBevel",e[e.enumJoinMask=26]="enumJoinMask",e[e.enumConnectionMask=27]="enumConnectionMask"}(O||(O={}));class Q extends g{constructor(e,t,s,i,n,r,m,o,a,h){super(),this.m_index=0,this.m_bufferedPolygon=null,this.m_x=0,this.m_y=0,this.m_progressTracker=h,this.m_parent=e,this.m_mp=t,this.m_distance=s,this.m_spatialReference=i,this.m_densifyDist=o,this.m_maxVertexInCompleteCircle=a,this.m_joins=n,this.m_caps=r,this.m_miterLimit=m}next(){const e=new y;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(1===this.m_caps)return this.m_index=this.m_mp.getPointCount(),new M({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t,s=!1;if(null===this.m_bufferedPolygon&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),s=!0),t=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!s){const s=new A,i=e.getX()-this.m_x,n=e.getY()-this.m_y;s.setShiftCoords(i,n),t.applyTransformation(s)}return P(t,0),t}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class H extends g{constructor(e){super(),this.m_currentPathIndex=0,this.m_polyline=e}next(){if(!this.m_polyline)return null;const e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){const t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let s=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){const t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex))break;if(!t.equals(s))break;s=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(0===t&&this.m_currentPathIndex===this.m_polyline.getPathCount()){const e=this.m_polyline;return this.m_polyline=null,e}const s=new E({vd:this.m_polyline.getDescription()});s.addPath(this.m_polyline,t,!0);for(let i=t+1;i<this.m_currentPathIndex;i++)s.addSegmentsFromPath(this.m_polyline,i,0,e.getSegmentCountPath(i),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),s}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class K extends g{constructor(e,t,s){super(),this.m_geometry=null,this.m_index=0,this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=s}next(){if(null===this.m_geometry&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;const e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){const e=this.m_index;this.m_index++;return this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class W extends g{constructor(e){super(),this.m_index=0,this.m_bufferer=e}next(){const e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){const t=this.m_index,s=e.calculateRingArea2D(this.m_index);for(f(s>0),this.m_index++;this.m_index<e.getPathCount();){if(e.calculateRingArea2D(this.m_index)>0)break;this.m_index++}let i;return i=0===t&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),i}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class Z{constructor(e){this.m_geometry=null,this.m_bufferCommands=[],this.m_originalGeomType=r.enumUnknown,this.m_maxVertexInCompleteCircle=-1,this.m_circleTemplateSize=-1,this.m_oldCircleTemplateSize=0,this.m_spatialReference=null,this.m_tolerance=new d(0,0),this.m_smallTolerance=new d(0,0),this.m_filterTolerance=0,this.m_densifyDist=-1,this.m_distance=Number.NaN,this.m_absDistance=0,this.m_absDistanceReversed=0,this.m_dA=-1,this.m_miterLimit=4,this.m_joins=0,this.m_caps=0,this.m_bRoundBuffer=!0,this.m_bOutputLoops=!0,this.m_bFilter=!0,this.m_circleTemplate=[],this.m_leftStack=[],this.m_middleStack=[],this.m_helperLine1=new S,this.m_helperLine2=new S,this.m_helperArray=[],this.m_progressCounter=0,this.m_densificator=I.constructDefault(e),this.m_progressTracker=e}buffer(e,t,s,n,r,u,f,_){if(e||i("Geometry.Bufferer.Impl.Buffer"),f<0&&i("Geometry.Bufferer.Impl.Buffer"),m(e.getGeometryType())&&o("Unsupported geometry type."),e.isEmpty())return new M({vd:e.getDescription()});if(this.m_joins=n,this.m_caps=r,this.m_bRoundBuffer=!1,this.m_miterLimit=u,this.m_originalGeomType=e.getGeometryType(),a(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_joins:h(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_caps:l(this.m_originalGeomType)&&(this.m_bRoundBuffer=0===this.m_joins&&0===this.m_caps),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=X(e),this.m_geometry.isEmpty())return new M({vd:e.getDescription()});const g=new B;this.m_geometry.queryLooseEnvelope(g),t>0&&g.inflateCoords(t,t),this.m_tolerance=p(s,g,!0),this.m_smallTolerance=p(null,g,!0),_<=0&&(_=96),this.m_spatialReference=s,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=0!==this.m_absDistance?1/this.m_absDistance:0,Number.isNaN(f)||0===f?f=1e-5*this.m_absDistance:f>.5*this.m_absDistance&&(f=.5*this.m_absDistance),_<12&&(_=12);const d=Math.abs(t)*(1-Math.cos(Math.PI/_));if(d>f)f=d;else if(0!==t){const e=Math.PI/Math.acos(1-f/Math.abs(t));e<_-1&&(_=Math.trunc(e))<12&&(_=12,f=Math.abs(t)*(1-Math.cos(Math.PI/_)))}this.m_densifyDist=f,this.m_maxVertexInCompleteCircle=_,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),.25*this.m_densifyDist):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&c(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,0!==this.m_joins,x()));const y=this.bufferImpl();return this.m_geometry=null,y}generateCircleTemplate(){if(this.m_circleTemplate.length)return;const e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),s=.5*Math.PI/t;this.m_dA=s,this.m_circleTemplate=C(D,4*t);const i=Math.cos(s),n=Math.sin(s),r=D.construct(0,1);for(let m=0;m<t;m++)this.m_circleTemplate[m+0*t].setCoords(r.y,-r.x),this.m_circleTemplate[m+1*t].setCoords(-r.x,-r.y),this.m_circleTemplate[m+2*t].setCoords(-r.y,r.x),this.m_circleTemplate[m+3*t].setCoords(r.x,r.y),r.rotateReverse(i,n)}bufferImpl(){const e=this.m_geometry.getGeometryType();if(u(e)){const e=new E({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(!a(e))return new M({vd:this.m_geometry.getDescription()});if(this.m_distance<0){const e=new B;if(this.m_geometry.queryEnvelope(e),e.width()<=2*this.m_absDistance||e.height()<=2*this.m_absDistance)return new M({vd:this.m_geometry.getDescription()})}}switch(this.m_geometry.getGeometryType()){case r.enumPoint:return this.bufferPoint();case r.enumMultiPoint:return this.bufferMultiPoint();case r.enumPolyline:return this.bufferPolyline();case r.enumPolygon:return this.bufferPolygon();case r.enumEnvelope:return this.bufferEnvelope();default:s("")}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){const e=new y;this.m_geometry.getPointByVal(0,e);const t=new B;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;const s=new H(e);let i,n;i=0===this.m_joins?(new z).executeMany(s,.25*this.m_densifyDist,!1,this.m_progressTracker):s,n=this.m_bRoundBuffer?(new L).executeMany(i,null,!0,this.m_progressTracker):i;const r=new K(this,n,this.m_bFilter),m=(new G).executeMany(r,this.m_spatialReference,this.m_progressTracker,2),o=(new j).executeMany(m,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==o?o:new M({vd:t})}bufferPolygon(){if(0===this.m_distance)return this.m_geometry;this.generateCircleTemplate();const e=(new j).execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;const t=this.m_geometry,s=this.bufferPolygonImpl(t,0,t.getPathCount());return(new j).execute(s,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){const e=new y;this.m_geometry.getPointByVal(0,e);const t=new B;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const t=new W(this),s=(new G).executeMany(t,this.m_spatialReference,this.m_progressTracker,2),i=(new j).executeMany(s,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==i?i:new M({vd:this.m_geometry.getDescription()})}}bufferPolygonImpl(e,t,s){const i=e,n=i.getImpl();let r=new M({vd:e.getDescription()});for(let m=t;m<s;m++){if(n.getPathSize(m)<1)continue;const t=n.calculateRingArea2D(m),s=new B;if(n.queryPathEnvelope(m,s),this.m_distance>0)if(t>0)if(this.isDegeneratePath(n,m)){const e=new y;n.getPointByVal(n.getPathStart(m),e),e.setXY(s.getCenter()),r.add(this.bufferDegeneratePath(e,!0),!1)}else{const t=new E({vd:e.getDescription()}),s=t.getImpl();if(V(this.m_geometry,m)){const e=this.bufferConvexPath(i,m);r.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,1);const e=this.bufferCleanup(t);r.add(e,!1)}}else{if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new E({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,1),!t.isEmpty()){const e=s,n=Math.max(1,this.m_absDistance),m=e.clone();m.inflateCoords(n,n),i.addEnvelope(m,!1);const o=this.bufferCleanup(t);r.reserve(r.getPointCount()+o.getPointCount()-4),re(o,r,m,!0)}}else if(t>0){if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new E({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,-1),!t.isEmpty()){const e=new B;i.queryLooseEnvelope(e);const s=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(s,s),i.addEnvelope(n,!1);re(this.bufferCleanup(t),r,n,!0)}}else{const t=new E({vd:e.getDescription()}),s=t.getImpl();this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,-1);const i=this.bufferCleanup(t);for(let e=0,n=i.getPathCount();e<n;e++)r.addPath(i,e,!0)}}if(this.m_distance>0){if(r.getPathCount()>1){return this.bufferCleanup(r)}return $(r)}{const e=new B;if(r.queryLooseEnvelope(e),r.isEmpty())return $(r);{const t=Math.max(1,this.m_absDistance),s=e.clone();s.inflateCoords(t,t),r.addEnvelope(s,!1);const i=this.bufferCleanup(r);r=new M;const n=new M({vd:i.getDescription()});return re(i,n,s,!1),$(n)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){const t=new M({vd:e.getDescription()});return 0===this.m_caps?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):2===this.m_caps?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){const s=new M({vd:e.getDescription()});return t&&0===this.m_joins||!t&&0===this.m_caps?(this.addCircle(s.getImpl(),e),this.setStrongSimple(s)):t||2!==this.m_caps?s:(this.addSquare(s.getImpl(),e),this.setStrongSimple(s))}bufferMultiPoint(){const e=new Q(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return(new G).executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new M({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(0===this.m_distance)e.addEnvelope(this.m_geometry,!1),ee(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{const t=new b;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),ee(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(1===this.m_joins){const t=new b({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}const t=this.m_geometry.clone();if(0===t.width()||0===t.height()){if(0===t.width()&&0===t.height()){const e=new y({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}const e=new E({vd:this.m_geometry.getDescription()}),s=new y;return t.queryCornerByVal(0,s),e.startPathPoint(s),t.queryCornerByVal(2,s),e.lineToPoint(s),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();const i=e.hasAttribute(10),n=new M({vd:e.getDescription()}),r=n.getImpl();n.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));const m=new D,o=new D,a=new D,h=new D(0,0),l=new D,c=new D,u=e.getImpl(),f=e.getPathSize(t),_=e.getPathStart(t);for(let g=0,d=e.getPathSize(t);g<d;g++){const e=u.getXY(_+g),t=u.getXY(_+(g+1)%f),n=u.getXY(_+(g+2)%f);l.setSub(t,e),0===l.length()&&s("");const d=i&&!!(1&u.getAttributeAsInt(10,(g+1)%f,0));l.normalize();const p=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),m.setAdd(l,e),o.setAdd(l,t),0===g?r.startPath(m):r.lineTo(m),r.lineTo(o),c.setSub(n,t),0===c.length()&&s(""),c.normalize();const y=c.clone();c.leftPerpendicularThis(),c.scale(this.m_absDistance),a.setAdd(c,t);let b=O.enumArc;const P=d?0:this.m_joins;if(2===P)b=O.enumBevel;else if(1===P){const e=-p.crossProduct(y);h.setSub(p,y),h.scale(this.m_absDistance/e),h.length()<this.m_miterLimit*this.m_absDistance?(h.addThis(t),b=O.enumMiter):b=O.enumBevel}else h.assign(t);this.addJoin(b,r,h,o,a,!1,!1)}return $(n)}bufferPolylinePath(e,t,s){this.generateCircleTemplate();const i=e,n=i.getImpl();if(n.getPathSize(t)<1)return null;let r;if(r=this.m_bRoundBuffer?n.isClosedPathInXYPlane(t):n.isClosedPath(t),this.isDegeneratePath(n,t)&&this.m_distance>0){const e=new y;n.getPointByVal(n.getPathStart(t),e);const s=new B;return n.queryPathEnvelope(t,s),e.setXY(s.getCenter()),this.bufferDegeneratePath(e,r)}const m=new E({vd:e.getDescription()});m.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*n.getPathSize(t));const o=m.getImpl();return r?2!==this.bufferClosedPath(i,t,o,s,1)&&this.bufferClosedPath(i,t,o,s,-1):this.bufferOpenPath(i,t,o,s),this.bufferCleanup(m)}progress_(){}bufferCleanup(e,t=!1){const s=t?this.m_tolerance:this.m_smallTolerance;return q(e,s,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){const e=4;if(0===this.m_densifyDist)return this.m_maxVertexInCompleteCircle;const t=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed);let s=e;return s=t<-1?e:2*Math.PI/Math.acos(t)+.5,s<e?s=e:s>this.m_maxVertexInCompleteCircle&&(s=this.m_maxVertexInCompleteCircle),Math.trunc(s)}addJoin(e,t,s,i,n,r,m){if(this.generateCircleTemplate(),r&&(t.startPath(i),r=!1),e===O.enumBevel)return void(m&&t.lineTo(n));if(e===O.enumMiter){const e=s.clone();return t.lineTo(e),void(m&&t.lineTo(n))}const o=new D;o.setSub(i,s),o.scale(this.m_absDistanceReversed);const a=new D;a.setSub(n,s),a.scale(this.m_absDistanceReversed);let h=Math.atan2(o.y,o.x)/this.m_dA;h<0&&(h=this.m_circleTemplate.length+h),h=this.m_circleTemplate.length-h;let l=Math.atan2(a.y,a.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l,l<h&&(l+=this.m_circleTemplate.length);let c=Math.trunc(l),u=Math.ceil(h),f=this.m_circleTemplate[u%this.m_circleTemplate.length].clone();f.scaleAddThis(this.m_absDistance,s);const _=10*this.m_tolerance.total();f.sub(i).length()<_&&(u+=1),f=this.m_circleTemplate[c%this.m_circleTemplate.length].clone(),f.scaleAddThis(this.m_absDistance,s),f.sub(n).length()<_&&(c-=1);let g=c-u;g++;for(let d=0,p=u%this.m_circleTemplate.length;d<g;d++,p=(p+1)%this.m_circleTemplate.length)f=this.m_circleTemplate[p].clone(),f.scaleAddThis(this.m_absDistance,s),t.lineTo(f),this.progress_();m&&t.lineTo(n)}bufferClosedPath(e,t,s,i,n){const r=new k,m=r.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(r,m,s,i,n)}bufferClosedPathImpl(e,t,s,i,n){const r=e.getFirstVertex(e.getFirstPath(t)),m=new y;e.queryPoint(r,m),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1);if(e.getPointCount(t)<2)return n<0?0:(this.m_bRoundBuffer&&this.addCircle(s,m),2);f(e.getFirstPath(t)!==R),f(e.getFirstVertex(e.getFirstPath(t))!==R);const o=e.getXY(e.getFirstVertex(e.getFirstPath(t))),a=new A;if(a.setShift(o.negate()),e.applyTransformation(a),i){const i=ne(e,t,n,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(f(1===i),e.getPointCount(t)<2)return n<0?0:(this.addCircle(s,m),2)}const h=0!==this.m_joins&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;const l=e.getFirstPath(t);let c=e.getFirstVertex(l),u=1===n?e.getPrevVertex(c):e.getNextVertex(c),_=1===n?e.getNextVertex(c):e.getPrevVertex(c),g=!0;const d=new D,p=new D,b=new D,P=new D,x=new D,C=new D,w=new D,T=new D,v=this.m_absDistance,S=e.getPathSize(l),I=new D(0,0);for(let f=0;f<S;f++){p.assign(e.getXY(_)),g&&(d.assign(e.getXY(c)),b.assign(e.getXY(u)),C.setSub(d,b),C.normalize(),T.leftPerpendicularOther(C),T.scale(v),P.setAdd(T,d));const t=h&&!!(1&e.getAttributeAsDbl(10,c,0));x.setSub(p,d),x.normalize(),w.leftPerpendicularOther(x),w.scale(v);const s=new D;s.setAdd(d,w);const i=C.crossProduct(x),r=C.dotProduct(x);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8){let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;I.setSub(C,x),I.scale(this.m_absDistance/t),I.length()<this.m_miterLimit*this.m_absDistance&&(I.addThis(d),e=!0),this.m_bufferCommands.push(J(P,s,I,e?O.enumMiter:O.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(J(P,s,d,0===n?O.enumArc:O.enumBevel,this.m_bufferCommands.length+1))}else P.equals(s)||(this.m_bufferCommands.push(U(P,d,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(d,s,this.m_bufferCommands.length+1)));const m=new D;m.setAdd(p,w),this.m_bufferCommands.push(J(s,m,d,O.enumLine,this.m_bufferCommands.length+1)),P.setCoordsPoint2D(m),T.setCoordsPoint2D(w),b.setCoordsPoint2D(d),d.setCoordsPoint2D(p),C.setCoordsPoint2D(x),u=c,c=_,g=!1,_=1===n?e.getNextVertex(c):e.getPrevVertex(c)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),a.setShift(o),s.applyTransformationToPath(a,s.getPathCount()-1),1}bufferOpenPath(e,t,s,i){if(this.m_bRoundBuffer){const n=new E({vd:e.getDescription()});return n.addPath(e,t,!1),n.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(n,0,s,i,1)}let n=0;const r=new E({vd:e.getDescription()}),m=new D(0,0);{const i=new k,o=i.addPathFromMultiPath(e,t,!1),a=i.getFirstVertex(i.getFirstPath(o)),h=new y;i.queryPoint(a,h),m.assign(h.getXY()),i.filterClosePoints(0,!1,!1,!1,-1);if(i.getPointCount(o)<2)return this.m_bRoundBuffer&&this.addCircle(s,h),2;const l=i.getGeometry(i.getFirstGeometry());r.addPath(l,0,!1),n=r.getPointCount()-1,r.addSegmentsFromPath(l,0,0,l.getSegmentCountPath(0)-1,!1)}const o=new k,a=o.addPathFromMultiPath(r,0,!0);f(o.getFirstPath(a)!==R),f(o.getFirstVertex(o.getFirstPath(a))!==R);const h=new A;h.setShift(m.negate()),o.applyTransformation(h),this.m_bufferCommands.length=0;const l=o.getFirstPath(a),c=0!==this.m_joins&&o.getVertexDescription().hasAttribute(10);let u=o.getFirstVertex(l),_=o.getPrevVertex(u),g=o.getNextVertex(u),d=!0;const p=new D,b=new D,P=new D,x=new D,C=new D,w=new D,T=new D,v=new D,S=this.m_absDistance,I=o.getPathSize(l),M=new D(0,0);for(let f=0;f<I;f++){let e=!1;0!==f&&f!==n||(e=!0),b.assign(o.getXY(g)),d&&(p.assign(o.getXY(u)),P.assign(o.getXY(_)),w.setSub(p,P),w.normalize(),v.leftPerpendicularOther(w),v.scale(S),x.setAdd(v,p));const t=c&&!!(1&o.getAttributeAsDbl(10,u,0));C.setSub(b,p),C.normalize(),T.leftPerpendicularOther(C),T.scale(S);const s=new D;s.setAdd(p,T);const i=w.crossProduct(C),r=w.dotProduct(C);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8)if(e)if(0===this.m_caps)this.m_bufferCommands.push(J(x,s,p,O.enumArc,this.m_bufferCommands.length+1));else if(1===this.m_caps)this.m_bufferCommands.push(J(x,s,p,O.enumLine,this.m_bufferCommands.length+1));else{const e=C.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(x),t.addThis(s),this.m_bufferCommands.push(J(x,e,p,O.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(J(e,t,p,O.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(J(t,s,p,O.enumLine,this.m_bufferCommands.length+1))}else{let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;M.setSub(w,C),M.scale(this.m_absDistance/t),M.length()<this.m_miterLimit*this.m_absDistance&&(M.addThis(p),e=!0),this.m_bufferCommands.push(J(x,s,M,e?O.enumMiter:O.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(J(x,s,p,0===n?O.enumArc:O.enumBevel,this.m_bufferCommands.length+1))}else x.equals(s)||(this.m_bufferCommands.push(U(x,p,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(p,s,this.m_bufferCommands.length+1)));const m=new D;m.setAdd(b,T),this.m_bufferCommands.push(J(s,m,p,O.enumLine,this.m_bufferCommands.length+1)),x.setCoordsPoint2D(m),v.setCoordsPoint2D(T),P.setCoordsPoint2D(p),p.setCoordsPoint2D(b),w.setCoordsPoint2D(C),_=u,u=g,d=!1,g=o.getNextVertex(u)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),h.setShift(m),s.applyTransformationToPath(h,s.getPathCount()-1),1}processBufferCommands(e){const t=this.cleanupBufferCommands();let s=!0,i=t+1;for(let n=t;i!==t;n=i){const t=this.m_bufferCommands[n];i=-1!==t.m_next?t.m_next:(n+1)%this.m_bufferCommands.length,t.m_type&&(s&&(e.startPath(t.m_from),s=!1),t.m_type&O.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=C(D,9);let e=0;for(let s=0,i=this.m_bufferCommands.length;s<i;){const t=this.m_bufferCommands[s];if(t.m_type&O.enumConnectionMask){e=s;break}s=t.m_next}let t=e+1;for(let s=e;t!==e;s=t){const e=this.m_bufferCommands[s];t=e.m_next;let i=1,n=null;for(;t!==s&&(n=this.m_bufferCommands[t],!(n.m_type&O.enumConnectionMask));)t=n.m_next,i++;if(1!==i&&(e.m_type&n.m_type)===O.enumLine){this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(n.m_from),this.m_helperLine2.setEndXY(n.m_to);1===this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())&&(e.m_to.assign(this.m_helperArray[0]),n.m_from.assign(this.m_helperArray[0]),e.m_next=t)}}return e}isDegeneratePath(e,t){if(1===e.getPathSize(t))return!0;if(0===this.m_joins&&0===this.m_caps){const s=new B;if(e.queryPathEnvelope(t,s),Math.max(s.width(),s.height())<.5*this.m_densifyDist)return!0}return!1}isDegenerateGeometry(e){if(0===this.m_joins&&0===this.m_caps){const t=new B;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<.5*this.m_densifyDist)return!0}return!1}addCircle(e,t){const s=t.getXY();if(0!==this.m_circleTemplate.length){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,s),e.startPath(t);for(let i=1,n=this.m_circleTemplate.length;i<n;i++)t=this.m_circleTemplate[i].clone(),t.scaleAddThis(this.m_absDistance,s),e.lineTo(t);return}const i=this.m_circleTemplateSize,n=Math.trunc((i+3)/4),r=.5*Math.PI/n;e.reserve(4*n);const m=Math.cos(r),o=Math.sin(r);for(let a=3;a>=0;a--){const t=D.construct(0,this.m_absDistance);switch(a){case 0:for(let i=0;i<n;i++)e.lineToCoords(t.x+s.x,t.y+s.y),t.rotateReverse(m,o);break;case 1:for(let i=0;i<n;i++)e.lineToCoords(-t.y+s.x,t.x+s.y),t.rotateReverse(m,o);break;case 2:for(let i=0;i<n;i++)e.lineToCoords(-t.x+s.x,-t.y+s.y),t.rotateReverse(m,o);break;default:e.startPathCoords(t.y+s.x,-t.x+s.y);for(let i=1;i<n;i++)t.rotateReverse(m,o),e.lineToCoords(t.y+s.x,-t.x+s.y)}this.progress_()}}addSquare(e,t){const s=new b({vd:t.getDescription()});s.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),s.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(s,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function $(e){return P(e,0),e}function ee(e,t){return!!e.isEmpty()||Math.min(e.width(),e.height())>t}function te(e,t,s,i,n,r,m,o){const a=e.getXY(s),h=e.getXY(i);if(a.equals(h))return-1;const l=.25*m,c=.25*m,u=new D;u.setSub(h,a);const _=u.length(),g=_*_*.25,d=r*r-g;if(d<=g)return-1;const p=Math.sqrt(d);u.normalize();const y=u.clone();y.rightPerpendicularThis();const b=g/p,P=b<=c,x=D.lerp(h,a,.5),C=y.clone(),w=b-l;C.scaleAddThis(Math.max(0,w),x);y.negate().scaleAddThis(p,x);const S=3.61*v(r-c),I=C.sub(a),M=C.sub(h);let E=!1,V=0;const k=T(64,0);f(o===k.length);{for(let o=e.getPrevVertexEx(i,n);o!==s;){if(1===e.getUserIndex(o,t))return-1;if(!e.getXY(o).equals(h))break;{const t=e.getPrevVertexEx(o,n);e.removeVertex(o,!1),o=t}}const r=new D,m=a.clone();k[V++]=1;for(let o=e.getNextVertexEx(s,n);o!==i;){if(1===e.getUserIndex(o,t))return-1;const s=e.getXY(o);if(s.equals(m)){const t=e.getNextVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}k[V++]=0;const i=new D;if(i.setSub(s,a),i.dotProduct(y)<0)return 0;(D.sqrDistance(s,a)>S||D.sqrDistance(s,h)>S)&&(E=!0);let l=0;s.sub(a).crossProduct(I)>=0&&(l=1);if(s.sub(h).crossProduct(M)<=0&&(l|=2),0===l)return 0;k[V-1]=l,r.assign(m),m.assign(s),o=e.getNextVertexEx(o,n)}if(1===V)return 0;f(V<k.length),k[V++]=2}let R=!0;for(let f=1,D=0;f<V;f++)if(k[f]!==k[f-1]&&(D++,R=D<3&&(1===D&&3===k[f]||2===D&&2===k[f]),!R))return 0;if(V>2&&R&&(3===V||!E)){let t=0,r=e.getNextVertexEx(s,n);for(P||(e.setXY(r,C),r=e.getNextVertexEx(r,n));r!==i;){const s=e.getNextVertexEx(r,n);e.removeVertex(r,!1),r=s,++t}return t}if(f(3!==V),E&&V>3)return 0;const B=a.clone();let A=s;const X=a.clone();let Y=1,F=-1,G=A,j=0;for(V=1;G!==i;){G=e.getNextVertexEx(G,n);const t=k[V++];if(0===t){if(G===i)break;continue}const s=e.getXY(G);if(-1!==F){if(3&(F&Y&t)){e.removeVertex(A,!0),j++,A=G,X.setCoordsPoint2D(s),Y=t;continue}if(3===Y&&0!==F&&0!==t){if(X.setCoordsPoint2D(C),P||X.equals(B)){e.removeVertex(A,!0),j++,A=G,X.setCoordsPoint2D(s),Y=t;continue}e.setXY(A,X)}}F=Y,B.setCoordsPoint2D(X),A=G,Y=t,X.setCoordsPoint2D(s)}return j}function se(e,t,s,i){let n=-1;const r=new D,m=new D,o=new D;for(let a=0,h=e.getPathSize(i),l=e.getFirstVertex(i);a<h;++a){-1===n&&(e.queryXY(l,m),n=e.getPrevVertex(l),-1!==n&&(e.queryXY(n,r),o.setSub(m,r),o.normalize()));const s=e.getNextVertex(l);if(-1===s)break;const i=e.getXY(s),a=i.sub(m);if(a.normalize(),-1!==n){a.dotProduct(o)<-.99&&Math.abs(a.crossProduct(o))<1e-7&&e.setUserIndex(l,t,1)}n=l,l=s,r.assign(m),m.assign(i),o.assign(a)}}function ie(s,i,n,r,m,o,a){const h={stack:[],error:void 0,hasError:!1};try{const t=s.getFirstPath(i),r=s.createUserIndex();e(h,w((()=>{s.removeUserIndex(r)}),!1),!1),se(s,r,i,t);for(let e=0;e<100;++e){if(0===s.getPathSize(t))return 1;let e=s.getFirstVertex(t),i=s.getPathSize(t);if(i<3)return 1;s.isClosedPath(t)||(i-=1);const o=64;let h=0,l=!1;for(let t=0;t<i&&e!==R;t++){let c=0,u=e;for(let h=1,l=Math.min(o,i-t);h<l;h++)if(u=s.getNextVertexEx(u,n),h>1){const t=te(s,r,e,u,n,m,a,o);if(-1===t)break;c+=t,i-=t}if(h+=c,l=c>0,l){const t=s.getPrevVertexEx(e,n);if(-1!==t){e=t,i++;continue}}e=s.getNextVertexEx(e,n)}if(0===h)break}return s.filterClosePoints(o,!1,!1,!1,-1),1}catch(l){h.error=l,h.hasError=!0}finally{t(h)}}function ne(e,t,s,i,n,r,m){return ie(e,t,s,i,n,r,m)}function re(e,t,s,i){for(let n=0,r=e.getPathCount();n<r;n++){const r=e.getXY(e.getPathStart(n));r.x!==s.xmin&&r.x!==s.xmax&&t.addPath(e,n,i)}}export{Z as B};
|
|
5
|
+
import{b as e,c as t}from"./tslib.es6.js";import{c as s,t as i,d as n,G as r,o as m,b as o,p as a,e as h,q as l,j as c,f as u,g as f}from"./Geometry.js";import{S as _,G as g}from"./SimpleGeometryCursor.js";import{C as d,a as p,P as y,E as b,s as P}from"./Envelope.js";import{i as x,m as C,P as D,h as w,d as T,s as v}from"./Point2D.js";import{L as S,D as I,a as M,P as E,i as V,E as k,n as R}from"./QuadraticBezier.js";import{Envelope2D as B}from"./Envelope2D.js";import{T as A}from"./Transformation2D.js";import{c as X}from"./GeometryCleaner-BEJM7I4l.js";import{aj as Y,ak as F,h as G,g as j,y as q}from"./ProjectionTransformation.js";import{O as z}from"./OperatorGeneralize.js";class L{getOperatorType(){return 10104}accelerateGeometry(e,t,s){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}isSimple(e,t,s,i,n){return 5===Y(e,t,s,i,n)}executeMany(e,t,s,i){return new N(e,t,s,i)}execute(e,t,i,n){const r=new _([e]),m=this.executeMany(r,t,i,n).next();return m||s("null output"),m}}class N extends g{constructor(e,t,s,n){super(),e||i(""),this.m_progressTracker=n,this.m_bForceSimplify=s,this.m_index=-1,this.m_inputGeometryCursor=e,this.m_spatialReference=t}next(){const e=this.m_inputGeometryCursor.next();return e?(n(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.simplify(e)):null}getGeometryID(){return this.m_index}tock(){return!1}getRank(){return 1}simplify(e){e||i("");return F(e,this.m_spatialReference,this.m_bForceSimplify,this.m_progressTracker)}}var O;function J(e,t,s,i,n,r){return{m_from:e.clone(),m_to:t.clone(),m_center:s.clone(),m_next:n,m_type:i}}function U(e,t,s,i,n){return{m_from:e.clone(),m_to:t.clone(),m_next:s,m_type:4,m_center:new D}}!function(e){e[e.enumDummy=256]="enumDummy",e[e.enumLine=1]="enumLine",e[e.enumArc=2]="enumArc",e[e.enumMiter=8]="enumMiter",e[e.enumBevel=16]="enumBevel",e[e.enumJoinMask=26]="enumJoinMask",e[e.enumConnectionMask=27]="enumConnectionMask"}(O||(O={}));class Q extends g{constructor(e,t,s,i,n,r,m,o,a,h){super(),this.m_index=0,this.m_bufferedPolygon=null,this.m_x=0,this.m_y=0,this.m_progressTracker=h,this.m_parent=e,this.m_mp=t,this.m_distance=s,this.m_spatialReference=i,this.m_densifyDist=o,this.m_maxVertexInCompleteCircle=a,this.m_joins=n,this.m_caps=r,this.m_miterLimit=m}next(){const e=new y;for(;;){if(this.m_index===this.m_mp.getPointCount())return null;if(1===this.m_caps)return this.m_index=this.m_mp.getPointCount(),new M({vd:this.m_mp.getDescription()});if(this.m_mp.getPointByVal(this.m_index,e),this.m_index++,!e.isEmpty())break}let t,s=!1;if(null===this.m_bufferedPolygon&&(this.m_x=e.getX(),this.m_y=e.getY(),this.m_bufferedPolygon=this.m_parent.buffer(e,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle),s=!0),t=this.m_index<this.m_mp.getPointCount()?this.m_bufferedPolygon.clone():this.m_bufferedPolygon,!s){const s=new A,i=e.getX()-this.m_x,n=e.getY()-this.m_y;s.setShiftCoords(i,n),t.applyTransformation(s)}return P(t,0),t}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class H extends g{constructor(e){super(),this.m_currentPathIndex=0,this.m_polyline=e}next(){if(!this.m_polyline)return null;const e=this.m_polyline.getImpl(),t=e.getPathCount();if(this.m_currentPathIndex<t){const t=this.m_currentPathIndex;if(this.m_currentPathIndex++,!e.isClosedPathInXYPlane(t)){let s=e.getXY(e.getPathEnd(t)-1);for(;this.m_currentPathIndex<e.getPathCount();){const t=e.getXY(e.getPathStart(this.m_currentPathIndex));if(e.isClosedPathInXYPlane(this.m_currentPathIndex))break;if(!t.equals(s))break;s=e.getXY(e.getPathEnd(this.m_currentPathIndex)-1),this.m_currentPathIndex++}}if(0===t&&this.m_currentPathIndex===this.m_polyline.getPathCount()){const e=this.m_polyline;return this.m_polyline=null,e}const s=new E({vd:this.m_polyline.getDescription()});s.addPath(this.m_polyline,t,!0);for(let i=t+1;i<this.m_currentPathIndex;i++)s.addSegmentsFromPath(this.m_polyline,i,0,e.getSegmentCountPath(i),!1);return this.m_currentPathIndex===this.m_polyline.getPathCount()&&(this.m_polyline=null),s}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class K extends g{constructor(e,t,s){super(),this.m_geometry=null,this.m_index=0,this.m_bufferer=e,this.m_geoms=t,this.m_index=0,this.m_bFilter=s}next(){if(null===this.m_geometry&&(this.m_index=0,this.m_geometry=this.m_geoms.next(),!this.m_geometry))return null;const e=this.m_geometry.getImpl();if(this.m_index<e.getPathCount()){const e=this.m_index;this.m_index++;return this.m_bufferer.bufferPolylinePath(this.m_geometry,e,this.m_bFilter)}return this.m_geometry=null,this.next()}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class W extends g{constructor(e){super(),this.m_index=0,this.m_bufferer=e}next(){const e=this.m_bufferer.m_geometry;if(this.m_index<e.getPathCount()){const t=this.m_index,s=e.calculateRingArea2D(this.m_index);for(f(s>0),this.m_index++;this.m_index<e.getPathCount();){if(e.calculateRingArea2D(this.m_index)>0)break;this.m_index++}let i;return i=0===t&&this.m_index===e.getPathCount()?this.m_bufferer.bufferPolygonImpl(e,0,e.getPathCount()):this.m_bufferer.bufferPolygonImpl(e,t,this.m_index),i}return null}getGeometryID(){return 0}getRank(){return 1}tock(){return!0}}class Z{constructor(e){this.m_geometry=null,this.m_bufferCommands=[],this.m_originalGeomType=r.enumUnknown,this.m_maxVertexInCompleteCircle=-1,this.m_circleTemplateSize=-1,this.m_oldCircleTemplateSize=0,this.m_spatialReference=null,this.m_tolerance=new d(0,0),this.m_smallTolerance=new d(0,0),this.m_filterTolerance=0,this.m_densifyDist=-1,this.m_distance=Number.NaN,this.m_absDistance=0,this.m_absDistanceReversed=0,this.m_dA=-1,this.m_miterLimit=4,this.m_joins=0,this.m_caps=0,this.m_bRoundBuffer=!0,this.m_bOutputLoops=!0,this.m_bFilter=!0,this.m_circleTemplate=[],this.m_leftStack=[],this.m_middleStack=[],this.m_helperLine1=new S,this.m_helperLine2=new S,this.m_helperArray=[],this.m_progressCounter=0,this.m_densificator=I.constructDefault(e),this.m_progressTracker=e}buffer(e,t,s,n,r,u,f,_){if(e||i("Geometry.Bufferer.Impl.Buffer"),f<0&&i("Geometry.Bufferer.Impl.Buffer"),m(e.getGeometryType())&&o("Unsupported geometry type."),e.isEmpty())return new M({vd:e.getDescription()});if(this.m_joins=n,this.m_caps=r,this.m_bRoundBuffer=!1,this.m_miterLimit=u,this.m_originalGeomType=e.getGeometryType(),a(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_joins:h(this.m_originalGeomType)?this.m_bRoundBuffer=0===this.m_caps:l(this.m_originalGeomType)&&(this.m_bRoundBuffer=0===this.m_joins&&0===this.m_caps),this.m_bFilter=this.m_bRoundBuffer,this.m_geometry=X(e),this.m_geometry.isEmpty())return new M({vd:e.getDescription()});const g=new B;this.m_geometry.queryLooseEnvelope(g),t>0&&g.inflateCoords(t,t),this.m_tolerance=p(s,g,!0),this.m_smallTolerance=p(null,g,!0),_<=0&&(_=96),this.m_spatialReference=s,this.m_distance=t,this.m_absDistance=Math.abs(this.m_distance),this.m_absDistanceReversed=0!==this.m_absDistance?1/this.m_absDistance:0,Number.isNaN(f)||0===f?f=1e-5*this.m_absDistance:f>.5*this.m_absDistance&&(f=.5*this.m_absDistance),_<12&&(_=12);const d=Math.abs(t)*(1-Math.cos(Math.PI/_));if(d>f)f=d;else if(0!==t){const e=Math.PI/Math.acos(1-f/Math.abs(t));e<_-1&&(_=Math.trunc(e))<12&&(_=12,f=Math.abs(t)*(1-Math.cos(Math.PI/_)))}this.m_densifyDist=f,this.m_maxVertexInCompleteCircle=_,this.m_filterTolerance=this.m_bRoundBuffer?Math.min(this.m_smallTolerance.total(),.25*this.m_densifyDist):0,this.m_circleTemplateSize=this.calcN(),this.m_circleTemplateSize!==this.m_oldCircleTemplateSize&&(this.m_circleTemplate.length=0,this.m_oldCircleTemplateSize=this.m_circleTemplateSize),this.m_densifyDist>0&&c(this.m_geometry)&&(this.m_geometry=this.m_densificator.densifyEx(this.m_geometry,0,this.m_densifyDist,0,0!==this.m_joins,x()));const y=this.bufferImpl();return this.m_geometry=null,y}generateCircleTemplate(){if(this.m_circleTemplate.length)return;const e=this.m_circleTemplateSize,t=Math.trunc((e+3)/4),s=.5*Math.PI/t;this.m_dA=s,this.m_circleTemplate=C(D,4*t);const i=Math.cos(s),n=Math.sin(s),r=D.construct(0,1);for(let m=0;m<t;m++)this.m_circleTemplate[m+0*t].setCoords(r.y,-r.x),this.m_circleTemplate[m+1*t].setCoords(-r.x,-r.y),this.m_circleTemplate[m+2*t].setCoords(-r.y,r.x),this.m_circleTemplate[m+3*t].setCoords(r.x,r.y),r.rotateReverse(i,n)}bufferImpl(){const e=this.m_geometry.getGeometryType();if(u(e)){const e=new E({vd:this.m_geometry.getDescription()});return e.addSegment(this.m_geometry,!0),this.m_geometry=e,this.bufferImpl()}if(this.m_distance<=this.m_tolerance.total()){if(!a(e))return new M({vd:this.m_geometry.getDescription()});if(this.m_distance<0){const e=new B;if(this.m_geometry.queryEnvelope(e),e.width()<=2*this.m_absDistance||e.height()<=2*this.m_absDistance)return new M({vd:this.m_geometry.getDescription()})}}switch(this.m_geometry.getGeometryType()){case r.enumPoint:return this.bufferPoint();case r.enumMultiPoint:return this.bufferMultiPoint();case r.enumPolyline:return this.bufferPolyline();case r.enumPolygon:return this.bufferPolygon();case r.enumEnvelope:return this.bufferEnvelope();default:s("")}}bufferPolyline(){if(this.isDegenerateGeometry(this.m_geometry)){const e=new y;this.m_geometry.getPointByVal(0,e);const t=new B;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const e=this.m_geometry,t=this.m_geometry.getDescription();this.m_geometry=null;const s=new H(e);let i,n;i=0===this.m_joins?(new z).executeMany(s,.25*this.m_densifyDist,!1,this.m_progressTracker):s,n=this.m_bRoundBuffer?(new L).executeMany(i,null,!0,this.m_progressTracker):i;const r=new K(this,n,this.m_bFilter),m=(new G).executeMany(r,this.m_spatialReference,this.m_progressTracker,2),o=(new j).executeMany(m,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==o?o:new M({vd:t})}bufferPolygon(){if(0===this.m_distance)return this.m_geometry;this.generateCircleTemplate();const e=(new j).execute(this.m_geometry,null,!1,this.m_progressTracker);if(this.m_distance<0){if(this.m_geometry=e,this.m_geometry.isEmpty())return this.m_geometry;const t=this.m_geometry,s=this.bufferPolygonImpl(t,0,t.getPathCount());return(new j).execute(s,this.m_spatialReference,!1,this.m_progressTracker)}{if(this.m_geometry=e,this.isDegenerateGeometry(this.m_geometry)){const e=new y;this.m_geometry.getPointByVal(0,e);const t=new B;return this.m_geometry.queryEnvelope(t),e.setXY(t.getCenter()),this.bufferDegeneratePath(e,!0)}const t=new W(this),s=(new G).executeMany(t,this.m_spatialReference,this.m_progressTracker,2),i=(new j).executeMany(s,this.m_spatialReference,!1,this.m_progressTracker).next();return null!==i?i:new M({vd:this.m_geometry.getDescription()})}}bufferPolygonImpl(e,t,s){const i=e,n=i.getImpl();let r=new M({vd:e.getDescription()});for(let m=t;m<s;m++){if(n.getPathSize(m)<1)continue;const t=n.calculateRingArea2D(m),s=new B;if(n.queryPathEnvelope(m,s),this.m_distance>0)if(t>0)if(this.isDegeneratePath(n,m)){const e=new y;n.getPointByVal(n.getPathStart(m),e),e.setXY(s.getCenter()),r.add(this.bufferDegeneratePath(e,!0),!1)}else{const t=new E({vd:e.getDescription()}),s=t.getImpl();if(V(this.m_geometry,m)){const e=this.bufferConvexPath(i,m);r.add(e,!1)}else{this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,1);const e=this.bufferCleanup(t);r.add(e,!1)}}else{if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new E({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,1),!t.isEmpty()){const e=s,n=Math.max(1,this.m_absDistance),m=e.clone();m.inflateCoords(n,n),i.addEnvelope(m,!1);const o=this.bufferCleanup(t);r.reserve(r.getPointCount()+o.getPointCount()-4),re(o,r,m,!0)}}else if(t>0){if(s.width()+this.m_tolerance.total()<=2*this.m_absDistance||s.height()+this.m_tolerance.total()<=2*this.m_absDistance)continue;const t=new E({vd:e.getDescription()}),i=t.getImpl();if(this.bufferClosedPath(this.m_geometry,m,i,this.m_bRoundBuffer,-1),!t.isEmpty()){const e=new B;i.queryLooseEnvelope(e);const s=Math.max(1,this.m_absDistance),n=e.clone();n.inflateCoords(s,s),i.addEnvelope(n,!1);re(this.bufferCleanup(t),r,n,!0)}}else{const t=new E({vd:e.getDescription()}),s=t.getImpl();this.bufferClosedPath(this.m_geometry,m,s,this.m_bRoundBuffer,-1);const i=this.bufferCleanup(t);for(let e=0,n=i.getPathCount();e<n;e++)r.addPath(i,e,!0)}}if(this.m_distance>0){if(r.getPathCount()>1){return this.bufferCleanup(r)}return $(r)}{const e=new B;if(r.queryLooseEnvelope(e),r.isEmpty())return $(r);{const t=Math.max(1,this.m_absDistance),s=e.clone();s.inflateCoords(t,t),r.addEnvelope(s,!1);const i=this.bufferCleanup(r);r=new M;const n=new M({vd:i.getDescription()});return re(i,n,s,!1),$(n)}}}bufferPoint(){return this.bufferPointImpl(this.m_geometry)}bufferPointImpl(e){const t=new M({vd:e.getDescription()});return 0===this.m_caps?(this.addCircle(t.getImpl(),e),this.setStrongSimple(t)):2===this.m_caps?(this.addSquare(t.getImpl(),e),this.setStrongSimple(t)):t}bufferDegeneratePath(e,t){const s=new M({vd:e.getDescription()});return t&&0===this.m_joins||!t&&0===this.m_caps?(this.addCircle(s.getImpl(),e),this.setStrongSimple(s)):t||2!==this.m_caps?s:(this.addSquare(s.getImpl(),e),this.setStrongSimple(s))}bufferMultiPoint(){const e=new Q(this,this.m_geometry,this.m_distance,this.m_spatialReference,this.m_joins,this.m_caps,this.m_miterLimit,this.m_densifyDist,this.m_maxVertexInCompleteCircle,this.m_progressTracker);return(new G).executeMany(e,this.m_spatialReference,this.m_progressTracker,2).next()}bufferEnvelope(){let e=new M({vd:this.m_geometry.getDescription()});if(this.m_distance<=0){if(0===this.m_distance)e.addEnvelope(this.m_geometry,!1),ee(this.m_geometry,this.m_tolerance.total())&&(e=this.setStrongSimple(e));else{const t=new b;this.m_geometry.queryEnvelope(t),t.inflateCoords(this.m_distance,this.m_distance),e.addEnvelope(t,!1),ee(t,this.m_tolerance.total())&&(e=this.setStrongSimple(e))}return e}if(1===this.m_joins){const t=new b({copy:this.m_geometry});return t.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(t,!1),e}const t=this.m_geometry.clone();if(0===t.width()||0===t.height()){if(0===t.width()&&0===t.height()){const e=new y({vd:this.m_geometry.getDescription()});return t.queryCornerByVal(0,e),this.m_geometry=e,this.bufferImpl()}const e=new E({vd:this.m_geometry.getDescription()}),s=new y;return t.queryCornerByVal(0,s),e.startPathPoint(s),t.queryCornerByVal(2,s),e.lineToPoint(s),this.m_geometry=e,this.bufferImpl()}return e.addEnvelope(this.m_geometry,!1),this.m_geometry=e,this.bufferConvexPath(e,0)}bufferConvexPath(e,t){this.generateCircleTemplate();const i=e.hasAttribute(10),n=new M({vd:e.getDescription()}),r=n.getImpl();n.reserve((this.m_circleTemplate.length/10+4)*e.getPathSize(t));const m=new D,o=new D,a=new D,h=new D(0,0),l=new D,c=new D,u=e.getImpl(),f=e.getPathSize(t),_=e.getPathStart(t);for(let g=0,d=e.getPathSize(t);g<d;g++){const e=u.getXY(_+g),t=u.getXY(_+(g+1)%f),n=u.getXY(_+(g+2)%f);l.setSub(t,e),0===l.length()&&s("");const d=i&&!!(1&u.getAttributeAsInt(10,(g+1)%f,0));l.normalize();const p=l.clone();l.leftPerpendicularThis(),l.scale(this.m_absDistance),m.setAdd(l,e),o.setAdd(l,t),0===g?r.startPath(m):r.lineTo(m),r.lineTo(o),c.setSub(n,t),0===c.length()&&s(""),c.normalize();const y=c.clone();c.leftPerpendicularThis(),c.scale(this.m_absDistance),a.setAdd(c,t);let b=O.enumArc;const P=d?0:this.m_joins;if(2===P)b=O.enumBevel;else if(1===P){const e=-p.crossProduct(y);h.setSub(p,y),h.scale(this.m_absDistance/e),h.length()<this.m_miterLimit*this.m_absDistance?(h.addThis(t),b=O.enumMiter):b=O.enumBevel}else h.assign(t);this.addJoin(b,r,h,o,a,!1,!1)}return $(n)}bufferPolylinePath(e,t,s){this.generateCircleTemplate();const i=e,n=i.getImpl();if(n.getPathSize(t)<1)return null;let r;if(r=this.m_bRoundBuffer?n.isClosedPathInXYPlane(t):n.isClosedPath(t),this.isDegeneratePath(n,t)&&this.m_distance>0){const e=new y;n.getPointByVal(n.getPathStart(t),e);const s=new B;return n.queryPathEnvelope(t,s),e.setXY(s.getCenter()),this.bufferDegeneratePath(e,r)}const m=new E({vd:e.getDescription()});m.reserve((Math.trunc(this.m_circleTemplate.length/10)+4)*n.getPathSize(t));const o=m.getImpl();return r?2!==this.bufferClosedPath(i,t,o,s,1)&&this.bufferClosedPath(i,t,o,s,-1):this.bufferOpenPath(i,t,o,s),this.bufferCleanup(m)}progress_(){}bufferCleanup(e,t=!1){const s=t?this.m_tolerance:this.m_smallTolerance;return q(e,s,!0,!t,-1,this.m_progressTracker,0,!1)}calcN(){const e=4;if(0===this.m_densifyDist)return this.m_maxVertexInCompleteCircle;const t=1-this.m_densifyDist*Math.abs(this.m_absDistanceReversed);let s=e;return s=t<-1?e:2*Math.PI/Math.acos(t)+.5,s<e?s=e:s>this.m_maxVertexInCompleteCircle&&(s=this.m_maxVertexInCompleteCircle),Math.trunc(s)}addJoin(e,t,s,i,n,r,m){if(this.generateCircleTemplate(),r&&(t.startPath(i),r=!1),e===O.enumBevel)return void(m&&t.lineTo(n));if(e===O.enumMiter){const e=s.clone();return t.lineTo(e),void(m&&t.lineTo(n))}const o=new D;o.setSub(i,s),o.scale(this.m_absDistanceReversed);const a=new D;a.setSub(n,s),a.scale(this.m_absDistanceReversed);let h=Math.atan2(o.y,o.x)/this.m_dA;h<0&&(h=this.m_circleTemplate.length+h),h=this.m_circleTemplate.length-h;let l=Math.atan2(a.y,a.x)/this.m_dA;l<0&&(l=this.m_circleTemplate.length+l),l=this.m_circleTemplate.length-l,l<h&&(l+=this.m_circleTemplate.length);let c=Math.trunc(l),u=Math.ceil(h),f=this.m_circleTemplate[u%this.m_circleTemplate.length].clone();f.scaleAddThis(this.m_absDistance,s);const _=10*this.m_tolerance.total();f.sub(i).length()<_&&(u+=1),f=this.m_circleTemplate[c%this.m_circleTemplate.length].clone(),f.scaleAddThis(this.m_absDistance,s),f.sub(n).length()<_&&(c-=1);let g=c-u;g++;for(let d=0,p=u%this.m_circleTemplate.length;d<g;d++,p=(p+1)%this.m_circleTemplate.length)f=this.m_circleTemplate[p].clone(),f.scaleAddThis(this.m_absDistance,s),t.lineTo(f),this.progress_();m&&t.lineTo(n)}bufferClosedPath(e,t,s,i,n){const r=new k,m=r.addPathFromMultiPath(e,t,!0);return this.bufferClosedPathImpl(r,m,s,i,n)}bufferClosedPathImpl(e,t,s,i,n){const r=e.getFirstVertex(e.getFirstPath(t)),m=new y;e.queryPoint(r,m),e.filterClosePoints(this.m_filterTolerance,!1,!1,!1,-1);if(e.getPointCount(t)<2)return n<0?0:(this.m_bRoundBuffer&&this.addCircle(s,m),2);f(e.getFirstPath(t)!==R),f(e.getFirstVertex(e.getFirstPath(t))!==R);const o=e.getXY(e.getFirstVertex(e.getFirstPath(t))),a=new A;if(a.setShift(o.negate()),e.applyTransformation(a),i){const i=ne(e,t,n,!0,this.m_absDistance,this.m_filterTolerance,this.m_densifyDist);if(f(1===i),e.getPointCount(t)<2)return n<0?0:(this.addCircle(s,m),2)}const h=0!==this.m_joins&&e.getVertexDescription().hasAttribute(10);this.m_bufferCommands.length=0;const l=e.getFirstPath(t);let c=e.getFirstVertex(l),u=1===n?e.getPrevVertex(c):e.getNextVertex(c),_=1===n?e.getNextVertex(c):e.getPrevVertex(c),g=!0;const d=new D,p=new D,b=new D,P=new D,x=new D,C=new D,w=new D,T=new D,v=this.m_absDistance,S=e.getPathSize(l),I=new D(0,0);for(let f=0;f<S;f++){p.assign(e.getXY(_)),g&&(d.assign(e.getXY(c)),b.assign(e.getXY(u)),C.setSub(d,b),C.normalize(),T.leftPerpendicularOther(C),T.scale(v),P.setAdd(T,d));const t=h&&!!(1&e.getAttributeAsDbl(10,c,0));x.setSub(p,d),x.normalize(),w.leftPerpendicularOther(x),w.scale(v);const s=new D;s.setAdd(d,w);const i=C.crossProduct(x),r=C.dotProduct(x);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8){let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;I.setSub(C,x),I.scale(this.m_absDistance/t),I.length()<this.m_miterLimit*this.m_absDistance&&(I.addThis(d),e=!0),this.m_bufferCommands.push(J(P,s,I,e?O.enumMiter:O.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(J(P,s,d,0===n?O.enumArc:O.enumBevel,this.m_bufferCommands.length+1))}else P.equals(s)||(this.m_bufferCommands.push(U(P,d,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(d,s,this.m_bufferCommands.length+1)));const m=new D;m.setAdd(p,w),this.m_bufferCommands.push(J(s,m,d,O.enumLine,this.m_bufferCommands.length+1)),P.setCoordsPoint2D(m),T.setCoordsPoint2D(w),b.setCoordsPoint2D(d),d.setCoordsPoint2D(p),C.setCoordsPoint2D(x),u=c,c=_,g=!1,_=1===n?e.getNextVertex(c):e.getPrevVertex(c)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),a.setShift(o),s.applyTransformationToPath(a,s.getPathCount()-1),1}bufferOpenPath(e,t,s,i){if(this.m_bRoundBuffer){const n=new E({vd:e.getDescription()});return n.addPath(e,t,!1),n.addSegmentsFromPath(e,t,0,e.getSegmentCountPath(t),!1),this.bufferClosedPath(n,0,s,i,1)}let n=0;const r=new E({vd:e.getDescription()}),m=new D(0,0);{const i=new k,o=i.addPathFromMultiPath(e,t,!1),a=i.getFirstVertex(i.getFirstPath(o)),h=new y;i.queryPoint(a,h),m.assign(h.getXY()),i.filterClosePoints(0,!1,!1,!1,-1);if(i.getPointCount(o)<2)return this.m_bRoundBuffer&&this.addCircle(s,h),2;const l=i.getGeometry(i.getFirstGeometry());r.addPath(l,0,!1),n=r.getPointCount()-1,r.addSegmentsFromPath(l,0,0,l.getSegmentCountPath(0)-1,!1)}const o=new k,a=o.addPathFromMultiPath(r,0,!0);f(o.getFirstPath(a)!==R),f(o.getFirstVertex(o.getFirstPath(a))!==R);const h=new A;h.setShift(m.negate()),o.applyTransformation(h),this.m_bufferCommands.length=0;const l=o.getFirstPath(a),c=0!==this.m_joins&&o.getVertexDescription().hasAttribute(10);let u=o.getFirstVertex(l),_=o.getPrevVertex(u),g=o.getNextVertex(u),d=!0;const p=new D,b=new D,P=new D,x=new D,C=new D,w=new D,T=new D,v=new D,S=this.m_absDistance,I=o.getPathSize(l),M=new D(0,0);for(let f=0;f<I;f++){let e=!1;0!==f&&f!==n||(e=!0),b.assign(o.getXY(g)),d&&(p.assign(o.getXY(u)),P.assign(o.getXY(_)),w.setSub(p,P),w.normalize(),v.leftPerpendicularOther(w),v.scale(S),x.setAdd(v,p));const t=c&&!!(1&o.getAttributeAsDbl(10,u,0));C.setSub(b,p),C.normalize(),T.leftPerpendicularOther(C),T.scale(S);const s=new D;s.setAdd(p,T);const i=w.crossProduct(C),r=w.dotProduct(C);if(i<0||r<0&&i<Math.abs(r)*Number.EPSILON*8)if(e)if(0===this.m_caps)this.m_bufferCommands.push(J(x,s,p,O.enumArc,this.m_bufferCommands.length+1));else if(1===this.m_caps)this.m_bufferCommands.push(J(x,s,p,O.enumLine,this.m_bufferCommands.length+1));else{const e=C.mul(this.m_absDistance).negate(),t=e.clone();e.addThis(x),t.addThis(s),this.m_bufferCommands.push(J(x,e,p,O.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(J(e,t,p,O.enumLine,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(J(t,s,p,O.enumLine,this.m_bufferCommands.length+1))}else{let e=!1;const n=t?0:this.m_joins;if(1===n){const t=-i;M.setSub(w,C),M.scale(this.m_absDistance/t),M.length()<this.m_miterLimit*this.m_absDistance&&(M.addThis(p),e=!0),this.m_bufferCommands.push(J(x,s,M,e?O.enumMiter:O.enumBevel,this.m_bufferCommands.length+1))}else this.m_bufferCommands.push(J(x,s,p,0===n?O.enumArc:O.enumBevel,this.m_bufferCommands.length+1))}else x.equals(s)||(this.m_bufferCommands.push(U(x,p,this.m_bufferCommands.length+1)),this.m_bufferCommands.push(U(p,s,this.m_bufferCommands.length+1)));const m=new D;m.setAdd(b,T),this.m_bufferCommands.push(J(s,m,p,O.enumLine,this.m_bufferCommands.length+1)),x.setCoordsPoint2D(m),v.setCoordsPoint2D(T),P.setCoordsPoint2D(p),p.setCoordsPoint2D(b),w.setCoordsPoint2D(C),_=u,u=g,d=!1,g=o.getNextVertex(u)}return this.m_bufferCommands.at(-1).m_next=0,this.processBufferCommands(s),h.setShift(m),s.applyTransformationToPath(h,s.getPathCount()-1),1}processBufferCommands(e){const t=this.cleanupBufferCommands();let s=!0,i=t+1;for(let n=t;i!==t;n=i){const t=this.m_bufferCommands[n];i=-1!==t.m_next?t.m_next:(n+1)%this.m_bufferCommands.length,t.m_type&&(s&&(e.startPath(t.m_from),s=!1),t.m_type&O.enumJoinMask?this.addJoin(t.m_type,e,t.m_center,t.m_from,t.m_to,!1,!0):e.lineTo(t.m_to))}}cleanupBufferCommands(){this.m_helperArray=C(D,9);let e=0;for(let s=0,i=this.m_bufferCommands.length;s<i;){const t=this.m_bufferCommands[s];if(t.m_type&O.enumConnectionMask){e=s;break}s=t.m_next}let t=e+1;for(let s=e;t!==e;s=t){const e=this.m_bufferCommands[s];t=e.m_next;let i=1,n=null;for(;t!==s&&(n=this.m_bufferCommands[t],!(n.m_type&O.enumConnectionMask));)t=n.m_next,i++;if(1!==i&&(e.m_type&n.m_type)===O.enumLine){this.m_helperLine1.setStartXY(e.m_from),this.m_helperLine1.setEndXY(e.m_to),this.m_helperLine2.setStartXY(n.m_from),this.m_helperLine2.setEndXY(n.m_to);1===this.m_helperLine1.intersect(this.m_helperLine2,this.m_helperArray,null,null,this.m_smallTolerance.total())&&(e.m_to.assign(this.m_helperArray[0]),n.m_from.assign(this.m_helperArray[0]),e.m_next=t)}}return e}isDegeneratePath(e,t){if(1===e.getPathSize(t))return!0;if(0===this.m_joins&&0===this.m_caps){const s=new B;if(e.queryPathEnvelope(t,s),Math.max(s.width(),s.height())<.5*this.m_densifyDist)return!0}return!1}isDegenerateGeometry(e){if(0===this.m_joins&&0===this.m_caps){const t=new B;if(e.queryEnvelope(t),Math.max(t.width(),t.height())<.5*this.m_densifyDist)return!0}return!1}addCircle(e,t){const s=t.getXY();if(0!==this.m_circleTemplate.length){let t=this.m_circleTemplate[0].clone();t.scaleAddThis(this.m_absDistance,s),e.startPath(t);for(let i=1,n=this.m_circleTemplate.length;i<n;i++)t=this.m_circleTemplate[i].clone(),t.scaleAddThis(this.m_absDistance,s),e.lineTo(t);return}const i=this.m_circleTemplateSize,n=Math.trunc((i+3)/4),r=.5*Math.PI/n;e.reserve(4*n);const m=Math.cos(r),o=Math.sin(r);for(let a=3;a>=0;a--){const t=D.construct(0,this.m_absDistance);switch(a){case 0:for(let i=0;i<n;i++)e.lineToCoords(t.x+s.x,t.y+s.y),t.rotateReverse(m,o);break;case 1:for(let i=0;i<n;i++)e.lineToCoords(-t.y+s.x,t.x+s.y),t.rotateReverse(m,o);break;case 2:for(let i=0;i<n;i++)e.lineToCoords(-t.x+s.x,-t.y+s.y),t.rotateReverse(m,o);break;default:e.startPathCoords(t.y+s.x,-t.x+s.y);for(let i=1;i<n;i++)t.rotateReverse(m,o),e.lineToCoords(t.y+s.x,-t.x+s.y)}this.progress_()}}addSquare(e,t){const s=new b({vd:t.getDescription()});s.setCoords(t.getX(),t.getY(),t.getX(),t.getY()),s.inflateCoords(this.m_absDistance,this.m_absDistance),e.addEnvelope(s,!1)}setStrongSimple(e){return e.getImpl().setIsSimple(4,this.m_tolerance.total()),e.getImpl().updateOGCFlagsProtected(),e}}function $(e){return P(e,0),e}function ee(e,t){return!!e.isEmpty()||Math.min(e.width(),e.height())>t}function te(e,t,s,i,n,r,m,o){const a=e.getXY(s),h=e.getXY(i);if(a.equals(h))return-1;const l=.25*m,c=.25*m,u=new D;u.setSub(h,a);const _=u.length(),g=_*_*.25,d=r*r-g;if(d<=g)return-1;const p=Math.sqrt(d);u.normalize();const y=u.clone();y.rightPerpendicularThis();const b=g/p,P=b<=c,x=D.lerp(h,a,.5),C=y.clone(),w=b-l;C.scaleAddThis(Math.max(0,w),x);y.negate().scaleAddThis(p,x);const S=3.61*v(r-c),I=C.sub(a),M=C.sub(h);let E=!1,V=0;const k=T(64,0);f(o===k.length);{for(let o=e.getPrevVertexEx(i,n);o!==s;){if(1===e.getUserIndex(o,t))return-1;if(!e.getXY(o).equals(h))break;{const t=e.getPrevVertexEx(o,n);e.removeVertex(o,!1),o=t}}const r=new D,m=a.clone();k[V++]=1;for(let o=e.getNextVertexEx(s,n);o!==i;){if(1===e.getUserIndex(o,t))return-1;const s=e.getXY(o);if(s.equals(m)){const t=e.getNextVertexEx(o,n);e.removeVertex(o,!1),o=t;continue}k[V++]=0;const i=new D;if(i.setSub(s,a),i.dotProduct(y)<0)return 0;(D.sqrDistance(s,a)>S||D.sqrDistance(s,h)>S)&&(E=!0);let l=0;s.sub(a).crossProduct(I)>=0&&(l=1);if(s.sub(h).crossProduct(M)<=0&&(l|=2),0===l)return 0;k[V-1]=l,r.assign(m),m.assign(s),o=e.getNextVertexEx(o,n)}if(1===V)return 0;f(V<k.length),k[V++]=2}let R=!0;for(let f=1,D=0;f<V;f++)if(k[f]!==k[f-1]&&(D++,R=D<3&&(1===D&&3===k[f]||2===D&&2===k[f]),!R))return 0;if(V>2&&R&&(3===V||!E)){let t=0,r=e.getNextVertexEx(s,n);for(P||(e.setXY(r,C),r=e.getNextVertexEx(r,n));r!==i;){const s=e.getNextVertexEx(r,n);e.removeVertex(r,!1),r=s,++t}return t}if(f(3!==V),E&&V>3)return 0;const B=a.clone();let A=s;const X=a.clone();let Y=1,F=-1,G=A,j=0;for(V=1;G!==i;){G=e.getNextVertexEx(G,n);const t=k[V++];if(0===t){if(G===i)break;continue}const s=e.getXY(G);if(-1!==F){if(3&(F&Y&t)){e.removeVertex(A,!0),j++,A=G,X.setCoordsPoint2D(s),Y=t;continue}if(3===Y&&0!==F&&0!==t){if(X.setCoordsPoint2D(C),P||X.equals(B)){e.removeVertex(A,!0),j++,A=G,X.setCoordsPoint2D(s),Y=t;continue}e.setXY(A,X)}}F=Y,B.setCoordsPoint2D(X),A=G,Y=t,X.setCoordsPoint2D(s)}return j}function se(e,t,s,i){let n=-1;const r=new D,m=new D,o=new D;for(let a=0,h=e.getPathSize(i),l=e.getFirstVertex(i);a<h;++a){-1===n&&(e.queryXY(l,m),n=e.getPrevVertex(l),-1!==n&&(e.queryXY(n,r),o.setSub(m,r),o.normalize()));const s=e.getNextVertex(l);if(-1===s)break;const i=e.getXY(s),a=i.sub(m);if(a.normalize(),-1!==n){a.dotProduct(o)<-.99&&Math.abs(a.crossProduct(o))<1e-7&&e.setUserIndex(l,t,1)}n=l,l=s,r.assign(m),m.assign(i),o.assign(a)}}function ie(s,i,n,r,m,o,a){const h={stack:[],error:void 0,hasError:!1};try{const t=s.getFirstPath(i),r=s.createUserIndex();e(h,w((()=>{s.removeUserIndex(r)}),!1),!1),se(s,r,i,t);for(let e=0;e<100;++e){if(0===s.getPathSize(t))return 1;let e=s.getFirstVertex(t),i=s.getPathSize(t);if(i<3)return 1;s.isClosedPath(t)||(i-=1);const o=64;let h=0,l=!1;for(let t=0;t<i&&e!==R;t++){let c=0,u=e;for(let h=1,l=Math.min(o,i-t);h<l;h++)if(u=s.getNextVertexEx(u,n),h>1){const t=te(s,r,e,u,n,m,a,o);if(-1===t)break;c+=t,i-=t}if(h+=c,l=c>0,l){const t=s.getPrevVertexEx(e,n);if(-1!==t){e=t,i++;continue}}e=s.getNextVertexEx(e,n)}if(0===h)break}return s.filterClosePoints(o,!1,!1,!1,-1),1}catch(l){h.error=l,h.hasError=!0}finally{t(h)}}function ne(e,t,s,i,n,r,m){return ie(e,t,s,i,n,r,m)}function re(e,t,s,i){for(let n=0,r=e.getPathCount();n<r;n++){const r=e.getXY(e.getPathStart(n));r.x!==s.xmin&&r.x!==s.xmax&&t.addPath(e,n,i)}}export{Z as B};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{b as e,c as t}from"./tslib.es6.js";import{G as n,v as i}from"./Geometry.js";import{s as r,S as s,a as o}from"./QuadraticBezier.js";import{g as m}from"./ProjectionTransformation.js";import{d as a,P as u,b as c,c as h,i as l,h as g,j as y}from"./Point2D.js";import{Envelope2D as _}from"./Envelope2D.js";import{P as D,E as p}from"./Envelope.js";function v(){return{outPoint:new u,index:-1,t:Number.NaN}}function N(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function f(e,t,n,i){e.outPoint.assign(t),e.index=n,e.t=i}function P(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function I(e,t,n,i){e.index=n,e.t=i,t.queryCoord2D(e.t,e.outPoint)}function d(e,t){const n=v();P(n,e),P(e,t),P(t,n)}function q(e,t,i,r,s,o){if(e.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){const t=r.nextSegment();if(0!==m(e,t.getEndXY(),0))return f(s,t.getEndXY(),-1,Number.NaN),f(o,t.getEndXY(),-1,Number.NaN),!0}r.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){const e=i.nextSegment();if(0!==m(t,e.getEndXY(),0))return f(s,e.getEndXY(),-1,Number.NaN),f(o,e.getEndXY(),-1,Number.NaN),!0}i.resetToFirstPath()}return!1}function M(e){const t=e.getPathCount(),n=a(e.getSegmentCount(),0);let i=0;for(let r=0;r<t;++r){const t=i+e.getSegmentCountPath(r);for(let s=i,o=e.getPathStart(r);s<t;++s,++o)n[s]=o;i=t}return r(e.getPointCount(),n),n}function x(e,t){return!!Number.isNaN(t)||e<=t}function E(e){const t=new o;return t.addEnvelope(e,!1),t}class b{constructor(e,t){if(this.m_env2DgeometryA=null,this.m_env2DgeometryB=null,this.m_progressCounter=0,this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,Number.isNaN(this.m_maxDistance)?this.m_maxDistance=Number.POSITIVE_INFINITY:this.m_maxDistance=e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+Number.EPSILON,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,i){if(e.getGeometryType()!==D.type||t.getGeometryType()!==D.type){this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB);if(!x(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance))return Number.POSITIVE_INFINITY}const r=N(new u,y(),Number.NaN),s=N(new u,y(),Number.NaN),o=this._ExecuteBruteForce(e,t,r,s);return x(o,this.m_maxDistance)?(null!==n&&P(n,r),null!==i&&P(i,s),o):Number.POSITIVE_INFINITY}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if(e.getGeometryType()!==D.type&&e.getGeometryType()!==p.type||t.getGeometryType()!==D.type&&t.getGeometryType()!==p.type||(n=!1),n){if(this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!(this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance))return!0;if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}const i=N(new u,y(),Number.NaN),r=N(new u,y(),Number.NaN);return this._ExecuteBruteForce(e,t,i,r)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,i,r){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,i,r);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,i,r);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,i,r);default:return Number.NaN}}distancePointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,i,r);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,i,r);case n.enumEnvelope:return this.distancePointEnvelope(e,t,i,r);default:return Number.NaN}}distancePointPoint(e,t,n,i){const r=e.getXY(),s=t.getXY();return f(n,r,0,0),f(i,s,0,0),Math.sqrt(u.sqrDistance(r,s))}distancePointMultipoint(e,t,n,i){const r=e.getXY();let s=this.m_maxSqrDistance,o=s,m=!1;const a=t.getPointCount(),c=new u;for(let h=0;h<a;++h)if(t.queryXY(h,c),o=u.sqrDistance(r,c),this.m_bIsNearCalc){if(o<=s)return 0}else if(!(o>s)&&(!m&&o===s||o<s)&&(s=o,f(n,r,0,0),f(i,c,h,0),m=!0,0===s))return 0;return m?Math.sqrt(s):Number.POSITIVE_INFINITY}distancePointMultipath(e,t,i,r){const s=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!s&&t.getGeometryType()===n.enumPolygon&&0!==m(t,o,0))return f(i,o,0,0),f(r,o,-1,Number.NaN),0;t.getImpl().getAccelerators();let a=this.m_maxSqrDistance,c=a,h=-1;const l=new _,g=t.querySegmentIterator();let y=!1;for(;g.nextPath();)for(;g.hasNextSegment();){const e=g.nextSegment();e.queryEnvelope(l);const t=l.sqrDistance(o);if(t>a)continue;if(!this.m_bIsNearCalc&&y&&t===a)continue;h=e.getClosestCoordinate(o,!1);const n=e.getCoord2D(h);if(c=u.sqrDistance(o,n),this.m_bIsNearCalc){if(c<=a)return 0}else if(!(c>a)&&(!y||c<a)&&(a=c,f(i,o,0,0),f(r,n,g.getStartPointIndex(),h),y=!0,0===a))return 0}return y?Math.sqrt(a):Number.POSITIVE_INFINITY}distancePointEnvelope(e,t,n,i){const r=e.getXY();f(n,r,0,0),f(i,r,-1,Number.NaN);const s=t.asEnvelope2D();return!s.contains(r)?Math.sqrt(s.sqrDistance(r,i.outPoint)):0}distanceMultipointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipoint(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,i,r,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipointMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipointMultipoint(n,i,r,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&1===o&&1===m){const e=Math.trunc(h(Math.sqrt(n.getPointCount())+1,1,l())),t=Math.trunc(h(Math.sqrt(i.getPointCount())+1,1,l()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,i,r,s,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance;const y=[n],_=[i],D=this.swapGeometriesIfBGtA(y,_);D&&(this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),m=c(o,o=m),d(r,s)),e(a,g((()=>{d(r,s),this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)}),!D),!1);const p=y[0].getImpl(),v=_[0].getImpl(),N=p.getPointCount(),P=v.getPointCount(),I=P>1;let q=!1;const M=new u,x=new u;for(let e=0;e<N;e+=o){if(p.queryXY(e,M),I){const e=this.m_env2DgeometryB.sqrDistance(M);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(M)<=t)return 0}else if(e>=t)continue}for(let n=0;n<P;n+=m){v.queryXY(n,x);const i=u.sqrDistance(M,x);if(this.m_bIsNearCalc){if(i<=t)return 0}else if(!(i>t||q&&i===t)&&(!q||i<t)&&(f(r,M,e,0),f(s,x,n,0),q=!0,t=i,0===t))return q?Math.sqrt(t):Number.POSITIVE_INFINITY}}return q?Math.sqrt(t):Number.POSITIVE_INFINITY}catch(y){a.error=y,a.hasError=!0}finally{t(a)}}distanceMultipointMultipath(e,t,i,r){let s=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon;const o=t.querySegmentIterator();o.stripAttributes();const a=new _,c=new u;let h=this.m_maxSqrDistance;const l=e.getImpl(),g=l.getPointCount(),y=g>1;let D=!1;for(;o.nextPath();)for(;o.hasNextSegment();){const e=o.nextSegment();if(e.queryLooseEnvelope(a),y){const e=a.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h||D&&e===h)continue}for(let n=0;n<g;n++){if(l.queryXY(n,c),s&&0!==m(t,c,0))return f(i,c,-1,Number.NaN),f(r,c,n,0),0;{const e=a.sqrDistance(c);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h)continue}const u=e.getClosestCoordinate(c,!1),g=e.getCoord2D(u);c.subThis(g);const y=c.sqrLength();if(this.m_bIsNearCalc){if(y<=h)return 0}else if(!(y>h)&&(!D||y<h)&&(h=y,f(i,l.getXY(n),n,0),f(r,g,o.getStartPointIndex(),u),D=!0,0===h))return 0}s=!1}return D?Math.sqrt(h):Number.POSITIVE_INFINITY}distanceEnvelopeGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,r,i);case n.enumMultiPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,E(e),r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(E(e),t,i,r);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,i,r);default:return Number.NaN}}distanceEnvelopeEnvelope(e,t,n,i){n.t=Number.NaN,n.index=-1,i.t=Number.NaN,i.index=-1;const r=e.asEnvelope2D(),s=t.asEnvelope2D();return Math.sqrt(r.sqrDistanceEnvelope(s,n.outPoint,i.outPoint))}distanceMultipathGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipath(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipathMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipathMultipath(n,i,r,o){const m={stack:[],error:void 0,hasError:!1};try{const t=[n],a=[i],u=this.swapGeometriesIfAGtB(t,a);u&&(this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),d(r,o)),e(m,g((()=>{d(r,o),this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)}),!u),!1);const y=t[0],D=a[0],p=y.querySegmentIterator();p.stripAttributes();const N=D.querySegmentIterator();if(N.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){const e=Math.trunc(h(Math.sqrt(y.getPointCount())+1,1,l())),t=Math.trunc(h(Math.sqrt(y.getPointCount())+1,1,l()));if(this.distanceMultipointMultipoint(y,D,r,o,e,t)<=this.m_maxSqrDistance)return 0}if(!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){const e=v(),t=v();if(q(y,D,p,N,e,t))return P(r,e),P(o,t),0}const f=M(y),x=[],E=new s,b=new _,B=new _,S=new _;let A=this.m_maxSqrDistance,T=!0,C=!1;for(let e=0,n=f.length;e<n;++e){y.querySegment(f[e],E,!0);const t=E.get();if(t.queryEnvelope(b),!(b.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>A)){if(this.m_bIsNearCalc&&b.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=A)return 0;for(;N.nextPath();){if(this.progress_(),T)D.queryPathEnvelope(N.getPathIndex(),S),x[N.getPathIndex()]=S.clone();else if(b.sqrDistanceEnvelope(x[N.getPathIndex()],null,null)>A)continue;for(;N.hasNextSegment();){const n=N.nextSegment();if(n.queryEnvelope(B),b.sqrDistanceEnvelope(B,null,null)<=A){const i=!b.isIntersecting(B),s=[0],m=[0];let a=t.distance(n,i,s,m);if(a*=a,this.m_bIsNearCalc&&a<=this.m_maxSqrDistance)return 0;if(a<A||a===A&&f[e]<r.index){if(C=!0,I(r,t,f[e],s[0]),I(o,n,N.getStartPointIndex(),m[0]),0===a)return 0;A=a}}}}N.resetToFirstPath(),T=!1}}return C?Math.sqrt(A):Number.POSITIVE_INFINITY}catch(a){m.error=a,m.hasError=!0}finally{t(m)}}swapGeometriesIfAGtB(e,t){return i(e[0])>i(t[0])&&(t[0]=c(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{b as D,v as m,M as s,q as w};
|
|
5
|
+
import{b as e,c as t}from"./tslib.es6.js";import{G as n,v as i}from"./Geometry.js";import{s as r,S as s,a as o}from"./QuadraticBezier.js";import{i as m}from"./ProjectionTransformation.js";import{d as a,P as u,b as c,c as h,i as l,h as g,j as y}from"./Point2D.js";import{Envelope2D as _}from"./Envelope2D.js";import{P as D,E as p}from"./Envelope.js";function v(){return{outPoint:new u,index:-1,t:Number.NaN}}function N(e,t,n){return{outPoint:e.clone(),index:t,t:n}}function f(e,t,n,i){e.outPoint.assign(t),e.index=n,e.t=i}function P(e,t){e.outPoint.assign(t.outPoint),e.index=t.index,e.t=t.t}function I(e,t,n,i){e.index=n,e.t=i,t.queryCoord2D(e.t,e.outPoint)}function d(e,t){const n=v();P(n,e),P(e,t),P(t,n)}function q(e,t,i,r,s,o){if(e.getGeometryType()===n.enumPolygon){for(;r.nextPath();)if(r.hasNextSegment()){const t=r.nextSegment();if(0!==m(e,t.getEndXY(),0))return f(s,t.getEndXY(),-1,Number.NaN),f(o,t.getEndXY(),-1,Number.NaN),!0}r.resetToFirstPath()}if(t.getGeometryType()===n.enumPolygon){for(;i.nextPath();)if(i.hasNextSegment()){const e=i.nextSegment();if(0!==m(t,e.getEndXY(),0))return f(s,e.getEndXY(),-1,Number.NaN),f(o,e.getEndXY(),-1,Number.NaN),!0}i.resetToFirstPath()}return!1}function M(e){const t=e.getPathCount(),n=a(e.getSegmentCount(),0);let i=0;for(let r=0;r<t;++r){const t=i+e.getSegmentCountPath(r);for(let s=i,o=e.getPathStart(r);s<t;++s,++o)n[s]=o;i=t}return r(e.getPointCount(),n),n}function x(e,t){return!!Number.isNaN(t)||e<=t}function E(e){const t=new o;return t.addEnvelope(e,!1),t}class b{constructor(e,t){if(this.m_env2DgeometryA=null,this.m_env2DgeometryB=null,this.m_progressCounter=0,this.m_progressTracker=t,this.m_maxSqrDistance=e*e,this.m_maxDistance=e,this.m_bIsNearCalc=!1,Number.isNaN(this.m_maxDistance)?this.m_maxDistance=Number.POSITIVE_INFINITY:this.m_maxDistance=e,this.m_maxSqrDistance=this.m_maxDistance*this.m_maxDistance,Number.isFinite(this.m_maxSqrDistance)){let e=Math.sqrt(this.m_maxSqrDistance);for(;e<this.m_maxDistance;)this.m_maxSqrDistance*=1+Number.EPSILON,e=Math.sqrt(this.m_maxSqrDistance)}}calculate(e,t,n,i){if(e.getGeometryType()!==D.type||t.getGeometryType()!==D.type){this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB);if(!x(this.m_env2DgeometryA.distanceFromEnvelope(this.m_env2DgeometryB),this.m_maxDistance))return Number.POSITIVE_INFINITY}const r=N(new u,y(),Number.NaN),s=N(new u,y(),Number.NaN),o=this._ExecuteBruteForce(e,t,r,s);return x(o,this.m_maxDistance)?(null!==n&&P(n,r),null!==i&&P(i,s),o):Number.POSITIVE_INFINITY}isNear(e,t){if(this.m_bIsNearCalc=!0,e.isEmpty()||t.isEmpty())return!1;if(e===t)return!0;let n=!0;if(e.getGeometryType()!==D.type&&e.getGeometryType()!==p.type||t.getGeometryType()!==D.type&&t.getGeometryType()!==p.type||(n=!1),n){if(this.m_env2DgeometryA=new _,this.m_env2DgeometryB=new _,e.queryEnvelope(this.m_env2DgeometryA),t.queryEnvelope(this.m_env2DgeometryB),!(this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)>this.m_maxSqrDistance))return!0;if(this.m_env2DgeometryA.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>this.m_maxSqrDistance)return!1}const i=N(new u,y(),Number.NaN),r=N(new u,y(),Number.NaN);return this._ExecuteBruteForce(e,t,i,r)<=this.m_maxDistance}progress_(e=!1){}_ExecuteBruteForce(e,t,i,r){switch(e.getGeometryType()){case n.enumPoint:return this.distancePointGeometry(e,t,i,r);case n.enumMultiPoint:return this.distanceMultipointGeometry(e,t,i,r);case n.enumEnvelope:return this.distanceEnvelopeGeometry(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathGeometry(e,t,i,r);default:return Number.NaN}}distancePointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointPoint(e,t,i,r);case n.enumMultiPoint:return this.distancePointMultipoint(e,t,i,r);case n.enumPolyline:case n.enumPolygon:return this.distancePointMultipath(e,t,i,r);case n.enumEnvelope:return this.distancePointEnvelope(e,t,i,r);default:return Number.NaN}}distancePointPoint(e,t,n,i){const r=e.getXY(),s=t.getXY();return f(n,r,0,0),f(i,s,0,0),Math.sqrt(u.sqrDistance(r,s))}distancePointMultipoint(e,t,n,i){const r=e.getXY();let s=this.m_maxSqrDistance,o=s,m=!1;const a=t.getPointCount(),c=new u;for(let h=0;h<a;++h)if(t.queryXY(h,c),o=u.sqrDistance(r,c),this.m_bIsNearCalc){if(o<=s)return 0}else if(!(o>s)&&(!m&&o===s||o<s)&&(s=o,f(n,r,0,0),f(i,c,h,0),m=!0,0===s))return 0;return m?Math.sqrt(s):Number.POSITIVE_INFINITY}distancePointMultipath(e,t,i,r){const s=!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB),o=e.getXY();if(!s&&t.getGeometryType()===n.enumPolygon&&0!==m(t,o,0))return f(i,o,0,0),f(r,o,-1,Number.NaN),0;t.getImpl().getAccelerators();let a=this.m_maxSqrDistance,c=a,h=-1;const l=new _,g=t.querySegmentIterator();let y=!1;for(;g.nextPath();)for(;g.hasNextSegment();){const e=g.nextSegment();e.queryEnvelope(l);const t=l.sqrDistance(o);if(t>a)continue;if(!this.m_bIsNearCalc&&y&&t===a)continue;h=e.getClosestCoordinate(o,!1);const n=e.getCoord2D(h);if(c=u.sqrDistance(o,n),this.m_bIsNearCalc){if(c<=a)return 0}else if(!(c>a)&&(!y||c<a)&&(a=c,f(i,o,0,0),f(r,n,g.getStartPointIndex(),h),y=!0,0===a))return 0}return y?Math.sqrt(a):Number.POSITIVE_INFINITY}distancePointEnvelope(e,t,n,i){const r=e.getXY();f(n,r,0,0),f(i,r,-1,Number.NaN);const s=t.asEnvelope2D();return!s.contains(r)?Math.sqrt(s.sqrDistance(r,i.outPoint)):0}distanceMultipointGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipoint(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:return this.distanceMultipointMultipoint(e,t,i,r,1,1);case n.enumPolyline:case n.enumPolygon:return this.distanceMultipointMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipointMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipointMultipoint(n,i,r,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{if(this.m_bIsNearCalc&&1===o&&1===m){const e=Math.trunc(h(Math.sqrt(n.getPointCount())+1,1,l())),t=Math.trunc(h(Math.sqrt(i.getPointCount())+1,1,l()));if((e>=4||t>=4)&&this.distanceMultipointMultipoint(n,i,r,s,e,t)<=this.m_maxSqrDistance)return 0}let t=this.m_maxSqrDistance;const y=[n],_=[i],D=this.swapGeometriesIfBGtA(y,_);D&&(this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),m=c(o,o=m),d(r,s)),e(a,g((()=>{d(r,s),this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)}),!D),!1);const p=y[0].getImpl(),v=_[0].getImpl(),N=p.getPointCount(),P=v.getPointCount(),I=P>1;let q=!1;const M=new u,x=new u;for(let e=0;e<N;e+=o){if(p.queryXY(e,M),I){const e=this.m_env2DgeometryB.sqrDistance(M);if(this.m_bIsNearCalc){if(e>t)continue;if(this.m_env2DgeometryB.sqrMaxMinDistance(M)<=t)return 0}else if(e>=t)continue}for(let n=0;n<P;n+=m){v.queryXY(n,x);const i=u.sqrDistance(M,x);if(this.m_bIsNearCalc){if(i<=t)return 0}else if(!(i>t||q&&i===t)&&(!q||i<t)&&(f(r,M,e,0),f(s,x,n,0),q=!0,t=i,0===t))return q?Math.sqrt(t):Number.POSITIVE_INFINITY}}return q?Math.sqrt(t):Number.POSITIVE_INFINITY}catch(y){a.error=y,a.hasError=!0}finally{t(a)}}distanceMultipointMultipath(e,t,i,r){let s=!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)&&t.getGeometryType()===n.enumPolygon;const o=t.querySegmentIterator();o.stripAttributes();const a=new _,c=new u;let h=this.m_maxSqrDistance;const l=e.getImpl(),g=l.getPointCount(),y=g>1;let D=!1;for(;o.nextPath();)for(;o.hasNextSegment();){const e=o.nextSegment();if(e.queryLooseEnvelope(a),y){const e=a.sqrDistanceEnvelope(this.m_env2DgeometryA,null,null);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h||D&&e===h)continue}for(let n=0;n<g;n++){if(l.queryXY(n,c),s&&0!==m(t,c,0))return f(i,c,-1,Number.NaN),f(r,c,n,0),0;{const e=a.sqrDistance(c);if(this.m_bIsNearCalc){if(e>h)continue}else if(e>h)continue}const u=e.getClosestCoordinate(c,!1),g=e.getCoord2D(u);c.subThis(g);const y=c.sqrLength();if(this.m_bIsNearCalc){if(y<=h)return 0}else if(!(y>h)&&(!D||y<h)&&(h=y,f(i,l.getXY(n),n,0),f(r,g,o.getStartPointIndex(),u),D=!0,0===h))return 0}s=!1}return D?Math.sqrt(h):Number.POSITIVE_INFINITY}distanceEnvelopeGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:return this.distancePointEnvelope(t,e,r,i);case n.enumMultiPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,E(e),r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(E(e),t,i,r);case n.enumEnvelope:return this.distanceEnvelopeEnvelope(e,t,i,r);default:return Number.NaN}}distanceEnvelopeEnvelope(e,t,n,i){n.t=Number.NaN,n.index=-1,i.t=Number.NaN,i.index=-1;const r=e.asEnvelope2D(),s=t.asEnvelope2D();return Math.sqrt(r.sqrDistanceEnvelope(s,n.outPoint,i.outPoint))}distanceMultipathGeometry(e,t,i,r){switch(t.getGeometryType()){case n.enumPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distancePointMultipath(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumMultiPoint:{this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB);const n=this.distanceMultipointMultipath(t,e,r,i);return this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),n}case n.enumPolyline:case n.enumPolygon:return this.distanceMultipathMultipath(e,t,i,r);case n.enumEnvelope:return this.distanceMultipathMultipath(e,E(t),i,r);default:return Number.NaN}}distanceMultipathMultipath(n,i,r,o){const m={stack:[],error:void 0,hasError:!1};try{const t=[n],a=[i],u=this.swapGeometriesIfAGtB(t,a);u&&(this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB),d(r,o)),e(m,g((()=>{d(r,o),this.m_env2DgeometryB=c(this.m_env2DgeometryA,this.m_env2DgeometryA=this.m_env2DgeometryB)}),!u),!1);const y=t[0],D=a[0],p=y.querySegmentIterator();p.stripAttributes();const N=D.querySegmentIterator();if(N.stripAttributes(),this.m_bIsNearCalc&&this.m_env2DgeometryA.sqrMaxMinDistanceEnvelope(this.m_env2DgeometryB)<=this.m_maxSqrDistance)return 0;if(this.m_bIsNearCalc){const e=Math.trunc(h(Math.sqrt(y.getPointCount())+1,1,l())),t=Math.trunc(h(Math.sqrt(y.getPointCount())+1,1,l()));if(this.distanceMultipointMultipoint(y,D,r,o,e,t)<=this.m_maxSqrDistance)return 0}if(!!this.m_env2DgeometryA.isIntersecting(this.m_env2DgeometryB)){const e=v(),t=v();if(q(y,D,p,N,e,t))return P(r,e),P(o,t),0}const f=M(y),x=[],E=new s,b=new _,B=new _,S=new _;let A=this.m_maxSqrDistance,T=!0,C=!1;for(let e=0,n=f.length;e<n;++e){y.querySegment(f[e],E,!0);const t=E.get();if(t.queryEnvelope(b),!(b.sqrDistanceEnvelope(this.m_env2DgeometryB,null,null)>A)){if(this.m_bIsNearCalc&&b.sqrMaxDistanceEnvelope(this.m_env2DgeometryB)<=A)return 0;for(;N.nextPath();){if(this.progress_(),T)D.queryPathEnvelope(N.getPathIndex(),S),x[N.getPathIndex()]=S.clone();else if(b.sqrDistanceEnvelope(x[N.getPathIndex()],null,null)>A)continue;for(;N.hasNextSegment();){const n=N.nextSegment();if(n.queryEnvelope(B),b.sqrDistanceEnvelope(B,null,null)<=A){const i=!b.isIntersecting(B),s=[0],m=[0];let a=t.distance(n,i,s,m);if(a*=a,this.m_bIsNearCalc&&a<=this.m_maxSqrDistance)return 0;if(a<A||a===A&&f[e]<r.index){if(C=!0,I(r,t,f[e],s[0]),I(o,n,N.getStartPointIndex(),m[0]),0===a)return 0;A=a}}}}N.resetToFirstPath(),T=!1}}return C?Math.sqrt(A):Number.POSITIVE_INFINITY}catch(a){m.error=a,m.hasError=!0}finally{t(m)}}swapGeometriesIfAGtB(e,t){return i(e[0])>i(t[0])&&(t[0]=c(e[0],e[0]=t[0]),!0)}swapGeometriesIfBGtA(e,t){return this.swapGeometriesIfAGtB(t,e)}}export{b as D,v as m,M as s,q as w};
|