@arcgis/core 6.0.0-next.13 → 6.0.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/arcade/containerUtils.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/portal.js +1 -1
- package/arcade/functions/string.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{5566f14afb63065e438f.js → 0050916e462e3c9e0627.js} +1 -1
- package/assets/esri/core/workers/chunks/02c5d027bdaee67869cf.js +1 -0
- package/assets/esri/core/workers/chunks/0da6abe3ceabfe78f7a0.js +1 -0
- package/assets/esri/core/workers/chunks/0f617980c7dd9ad0444f.js +1 -0
- package/assets/esri/core/workers/chunks/{10445313d0d57b34511b.js → 2145a512d269d64036b0.js} +1 -1
- package/assets/esri/core/workers/chunks/21ddb26526bcb2b122c3.js +1 -0
- package/assets/esri/core/workers/chunks/22e8c0aad2fe75943865.js +1 -0
- package/assets/esri/core/workers/chunks/25f19fc929f25ddd628c.js +1 -0
- package/assets/esri/core/workers/chunks/28b74bc77f7c13080074.js +1 -0
- package/assets/esri/core/workers/chunks/{2ef5237e4c876d6a4ee0.js → 2bd4ee083ca4ad221f8b.js} +1 -1
- package/assets/esri/core/workers/chunks/{f4f9d08b2df856e3b694.js → 2eae542fe7f0f6576ac1.js} +1 -1
- package/assets/esri/core/workers/chunks/{2aeb5cc32284dd3e4d22.js → 33e4ff228a8c81b99022.js} +1 -1
- package/assets/esri/core/workers/chunks/{42323093827adffe56d3.js → 3418877328f4f0830300.js} +1 -1
- package/assets/esri/core/workers/chunks/{8dc1c3042267618fd710.js → 34cbaf844730ac2d92c2.js} +2 -2
- package/assets/esri/core/workers/chunks/{96c50a0dda0f1503ef92.js → 3c301a689c7853c9fa67.js} +2 -2
- package/assets/esri/core/workers/chunks/{02253bdffbd580af22d8.js → 3ff6d1ed3c0f1285f3e7.js} +1 -1
- package/assets/esri/core/workers/chunks/{67e4b5651fd7ff7d8cf0.js → 4ac1d3e49e242e373a92.js} +1 -1
- package/assets/esri/core/workers/chunks/4df6cb1bee5d0720a43e.js +1 -0
- package/assets/esri/core/workers/chunks/{a4cab24af69260438ff4.js → 4e6f40cbdb8c508e6df1.js} +1 -1
- package/assets/esri/core/workers/chunks/{dc486a3595b6d57018bb.js → 5bfea0c55aca826de536.js} +1 -1
- package/assets/esri/core/workers/chunks/601e1d020b8115497944.js +1 -0
- package/assets/esri/core/workers/chunks/{2686fe5b62dd0be699c0.js → 634523cc7757da9020e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{a518ae5683367eeda74c.js → 70d3055f15d8b0cf4074.js} +1 -1
- package/assets/esri/core/workers/chunks/{1b946714ca4a1a7359d4.js → 76ab353d80d786777161.js} +2 -2
- package/assets/esri/core/workers/chunks/7f8e327acad48c9e75ea.js +1 -0
- package/assets/esri/core/workers/chunks/8052da8be251c3ff2176.js +1 -0
- package/assets/esri/core/workers/chunks/{f6e62d2d279a328cbed7.js → 90bdf86f553e2742d67c.js} +1 -1
- package/assets/esri/core/workers/chunks/91ebb2ccab1889eb7e81.js +1 -0
- package/assets/esri/core/workers/chunks/{3d9d7d3a40b51eb7ee3d.js → 953ba13299e7aa92c1a0.js} +1 -1
- package/assets/esri/core/workers/chunks/{f46d9a19f79d4a4bd354.js → 9e1a3b6a08c96dcefdde.js} +1 -1
- package/assets/esri/core/workers/chunks/9f0a973a0dd28953ce25.js +1 -0
- package/assets/esri/core/workers/chunks/a2ad3e620c98e2b2eb06.js +1 -0
- package/assets/esri/core/workers/chunks/a34b3d2e11a777e1ff3f.js +1 -0
- package/assets/esri/core/workers/chunks/{140f2eeb11e39ab15734.js → aa36c3a9bbaa086e3757.js} +1 -1
- package/assets/esri/core/workers/chunks/aadfe34a99c9ec7a0e11.js +1 -0
- package/assets/esri/core/workers/chunks/b49df4ebd4be1181b0f9.js +2 -0
- package/assets/esri/core/workers/chunks/{68d8ae42ab71d01a70a5.js → b557824bc1fa163d72a3.js} +2 -2
- package/assets/esri/core/workers/chunks/bc915fb182d463d804e6.js +1 -0
- package/assets/esri/core/workers/chunks/{992f102992c2bed7b34e.js → d5d0fe8e198ff5a902ee.js} +1 -1
- package/assets/esri/core/workers/chunks/e2190361247f35b02b32.js +1 -0
- package/assets/esri/core/workers/chunks/e2f42aec02bff33b25dd.js +1 -0
- package/assets/esri/core/workers/chunks/ebc1a2ef3aed8aa29424.js +1 -0
- package/assets/esri/core/workers/chunks/ed6e9d7f71bfd2691717.js +1 -0
- package/assets/esri/core/workers/chunks/ee6679ef9efa1504e7eb.js +1 -0
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/chunks/BlendWeights.glsl.js +10 -10
- package/chunks/Blur.glsl.js +2 -2
- package/chunks/EdgeDetect.glsl.js +24 -19
- package/chunks/HUDMaterial.glsl.js +11 -1
- package/chunks/HighlightApply.glsl.js +4 -5
- package/chunks/HighlightBlur.glsl.js +5 -5
- package/chunks/HighlightDownsample.glsl.js +2 -2
- package/chunks/HighlightSharpApply.glsl.js +61 -0
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +2 -2
- package/chunks/portal.js +1 -1
- package/config.js +1 -1
- package/geometry/support/curves/ellipticArc7Utils.js +1 -1
- package/geometry/support/curves/mathUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
- package/layers/geospatialPDF/projectionToWKTUtils.js +2 -2
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/raster/datasets/TIFFRaster.js +1 -1
- package/layers/raster/datasets/pixelReader.js +1 -1
- package/layers/raster/functions/clipUtils.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/package.json +2 -2
- package/portal/schemas/definitions.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +20 -6
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightCellGridScreenSpacePassParameters.js +2 -0
- package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightSharpApply.glsl.js +2 -0
- package/views/3d/webgl-engine/effects/highlight/HighlightSharpApplyTechnique.js +2 -0
- package/views/3d/webgl-engine/effects/smaa/BlendWeights.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/Blur.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/EdgeDetect.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAAPassParameters.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAATechniqueConfiguration.js +2 -0
- package/views/3d/webgl-engine/lib/Compositor.js +1 -1
- package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/plugins/MultipointPlugin.js +1 -1
- package/views/draw/support/PluginContext.js +1 -1
- package/views/draw/support/managers/TooltipManager.js +1 -1
- package/views/draw/support/types.d.ts +5 -2
- package/views/support/HighlightDefaults.js +1 -1
- package/webdoc/applicationProperties/SearchLayerField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchLayerField.js +1 -1
- package/webdoc/applicationProperties/SearchTableField.d.ts +7 -1
- package/webdoc/applicationProperties/SearchTableField.js +1 -1
- package/webdoc/applicationProperties/searchMode.js +2 -0
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/OrientedImageryViewer/services/DepthImageService.js +1 -1
- package/widgets/Search/LayerSearchSource.d.ts +23 -1
- package/widgets/Search/LayerSearchSource.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/types.d.ts +7 -0
- package/widgets/support/forms/formUtils.js +1 -1
- package/widgets/support/forms/types.d.ts +1 -1
- package/assets/esri/core/workers/chunks/0dc66b03ff55d0ea5a09.js +0 -1
- package/assets/esri/core/workers/chunks/175c268e64ccd01f8c25.js +0 -1
- package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +0 -2
- package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +0 -1
- package/assets/esri/core/workers/chunks/3f7d583b676b23b3fadb.js +0 -1
- package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +0 -1
- package/assets/esri/core/workers/chunks/4a640548032355e57acd.js +0 -1
- package/assets/esri/core/workers/chunks/53be85d04cd2da4f391d.js +0 -1
- package/assets/esri/core/workers/chunks/566e129f3d3805d7370a.js +0 -1
- package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +0 -1
- package/assets/esri/core/workers/chunks/5982c6a8459c1237b298.js +0 -1
- package/assets/esri/core/workers/chunks/5eae5c29149f2429fe96.js +0 -1
- package/assets/esri/core/workers/chunks/6dc86e7496157c5e4d2c.js +0 -1
- package/assets/esri/core/workers/chunks/74b5c00f93cfc0d59029.js +0 -1
- package/assets/esri/core/workers/chunks/7c2c8f786a30267a5f05.js +0 -1
- package/assets/esri/core/workers/chunks/88e54449261ef94e390d.js +0 -1
- package/assets/esri/core/workers/chunks/9e142551163acf752618.js +0 -1
- package/assets/esri/core/workers/chunks/af75747b06d79446a855.js +0 -1
- package/assets/esri/core/workers/chunks/dba280c370df13196711.js +0 -1
- package/assets/esri/core/workers/chunks/e3c1c9e6c62ba5cbcdb8.js +0 -1
- package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +0 -1
- package/assets/esri/core/workers/chunks/f47c7065da3b5001245f.js +0 -1
- /package/assets/esri/core/workers/chunks/{1b946714ca4a1a7359d4.js.LICENSE.txt → 34cbaf844730ac2d92c2.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{96c50a0dda0f1503ef92.js.LICENSE.txt → 3c301a689c7853c9fa67.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{8dc1c3042267618fd710.js.LICENSE.txt → 76ab353d80d786777161.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{2a1ec30f9ad305763f81.js.LICENSE.txt → b49df4ebd4be1181b0f9.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{68d8ae42ab71d01a70a5.js.LICENSE.txt → b557824bc1fa163d72a3.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import{__decorate as e}from"tslib";import{parameter as t,ShaderTechniqueConfiguration as n}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class r extends n{constructor(){super(...arguments),this.useHighlightGrid=!1}}e([t()],r.prototype,`useHighlightGrid`,void 0);export{r as SMAATechniqueConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{C as e}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as t}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as n}from"../shaders/CompositingTechniqueConfiguration.js";class r{constructor(t,r){this._rctx=t,this._techniques=r,this._configuration=new n,this._passParameters=new e}precompile(e,n,{hasOpaqueEmission:r,hasTransparentEmission:i}){e&&(this._configuration.blendEmissive=r||i,this._configuration.mode=2,this._techniques.precompile(t,this._configuration)),this._configuration.blendEmissive=r,n&&(this._configuration.mode=1,this._techniques.precompile(t,this._configuration)),this._configuration.mode=3,this._techniques.getCompiled(t,this._configuration)}compositePreMultipliedAlpha(e,t,n=e.hasEmission){this._composite(e,t,2,n)}composite(e,t){this._composite(e,t,1,e.hasEmission)}blitDepthToLinearDepth(e,t){this._composite(e,t,3)}_composite(e,n,r,i=!1){this._configuration.mode=r,this._configuration.blendEmissive=i,this._passParameters.texture=n;let a=this._techniques.get(t,this._configuration);this._rctx.bindTechnique(a,e,this._passParameters),this._rctx.screen.draw()}}export{r as Compositor};
|
|
2
|
+
import{C as e}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as t}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as n}from"../shaders/CompositingTechniqueConfiguration.js";class r{constructor(t,r){this._rctx=t,this._techniques=r,this._configuration=new n,this._passParameters=new e}precompile(e,n,{hasOpaqueEmission:r,hasTransparentEmission:i}){e&&(this._configuration.blendEmissive=r||i,this._configuration.mode=2,this._techniques.precompile(t,this._configuration)),this._configuration.blendEmissive=r,n&&(this._configuration.mode=1,this._techniques.precompile(t,this._configuration)),this._configuration.mode=3,this._techniques.getCompiled(t,this._configuration)}isPremultipliedAlphaReady(e){return this._configuration.mode=2,this._configuration.blendEmissive=e,this._techniques.getCompiled(t,this._configuration)!=null}compositePreMultipliedAlpha(e,t,n=e.hasEmission){this._composite(e,t,2,n)}composite(e,t){this._composite(e,t,1,e.hasEmission)}blitDepthToLinearDepth(e,t){this._composite(e,t,3)}_composite(e,n,r,i=!1){this._configuration.mode=r,this._configuration.blendEmissive=i,this._passParameters.texture=n;let a=this._techniques.get(t,this._configuration);this._rctx.bindTechnique(a,e,this._passParameters),this._rctx.screen.draw()}}export{r as Compositor};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import{NestedMap as e}from"../../../../core/NestedMap.js";function t(t){let i=new e;if(i.set(2,4,!0),i.set(2,0,!0),i.set(2,2,!0),i.set(2,1,!0),i.set(2,8,!0),i.set(2,12,!0),t===`high`){let e=has(`disable-feature:global-illumination`)?3:11;i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0),e===11&&i.set(2,10,!0)}else i.set(2,3,!0);if(t!==`low`&&(i.set(2,5,!0),i.set(2,6,!0)),t===`medium`)for(let e of n)i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0);else if(t===`high`)for(let e of r)i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0);return i}const n=[9,7],r=[...n,0,2,4];export{t as setupFeatureDefaults};
|
|
2
|
+
import has from"../../../../core/has.js";import{NestedMap as e}from"../../../../core/NestedMap.js";function t(t){let i=new e;if(i.set(2,4,!0),i.set(2,0,!0),i.set(2,2,!0),i.set(2,1,!0),i.set(2,8,!0),i.set(2,12,!0),i.set(2,13,!0),t===`high`){let e=has(`disable-feature:global-illumination`)?3:11;i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0),e===11&&i.set(2,10,!0)}else i.set(2,3,!0);if(t!==`low`&&(i.set(2,5,!0),i.set(2,6,!0)),t===`medium`)for(let e of n)i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0);else if(t===`high`)for(let e of r)i.set(0,e,!0),i.set(1,e,!0),i.set(2,e,!0);return i}const n=[9,7],r=[...n,0,2,4];export{t as setupFeatureDefaults};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{toConst as n}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as r}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{removeMaybe as a,destroyMaybe as o}from"../../../../core/maybe.js";import{when as s,initial as c,watch as l,syncAndInitial as ee}from"../../../../core/reactiveUtils.js";import{addFrameTask as u}from"../../../../core/scheduling.js";import{signal as d}from"../../../../core/signal.js";import{Milliseconds as f}from"../../../../core/time.js";import{property as p,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{isMoon as h,isMars as te}from"../../../../geometry/ellipsoidUtils.js";import{debugFlags as g}from"../../support/debugFlags.js";import{ComponentObjectCollection as _}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as v}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as y}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ChapmanAtmosphere as b}from"../effects/atmosphere/ChapmanAtmosphere.js";import{LocalAtmosphere as x}from"../effects/atmosphere/LocalAtmosphere.js";import{MarsAtmosphere as S}from"../effects/atmosphere/MarsAtmosphere.js";import{CloudsComposition as C}from"../effects/clouds/CloudsComposition.js";import{Fog as w}from"../effects/fog/Fog.js";import{ObjectAndLayerID as T}from"../effects/geometry/ObjectAndLayerID.js";import{olidEnabled as E}from"../effects/geometry/olidUtils.js";import{RenderOccluded as D}from"../effects/geometry/RenderOccluded.js";import{GlobalIllumination as O}from"../effects/globalIllumination/GlobalIllumination.js";import{Haze as k}from"../effects/haze/Haze.js";import{Highlight as A}from"../effects/highlight/Highlight.js";import{ShadowHighlight as j}from"../effects/highlight/ShadowHighlight.js";import{ShadowHighlightBuffer as M}from"../effects/highlight/ShadowHighlightBuffer.js";import{Magnifier as N}from"../effects/magnifier/Magnifier.js";import{ShadowAccumulator as P}from"../effects/shadowAccumulation/ShadowAccumulator.js";import{ShadowCastRenderer as ne}from"../effects/shadowAccumulation/ShadowCastRenderer.js";import{SMAA as F}from"../effects/smaa/SMAA.js";import{SSAO as I}from"../effects/ssao/SSAO.js";import{Stars as L}from"../effects/stars/Stars.js";import{EmissionComposite as R}from"../lib/EmissionComposite.js";import{GLMaterialRepository as z}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as B}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as V}from"../lib/Renderer.js";import{RenderingContext as H}from"../lib/RenderingContext.js";import{RenderingContextOptions as U}from"../lib/RenderingContextOptions.js";import{TextureRepository as W}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as G}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as K}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as q}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as J}from"./contextCache.js";import{removeLoadedShaderModules as Y}from"./renderUtils.js";import{ScreenshotManager as X,ScreenshotContext as Z}from"./ScreenshotManager.js";import{contextCache as re}from"./testUtils.js";import{noBudget as ie}from"../../../support/Scheduler.js";import{checkWebGLError as ae}from"../../../webgl/checkWebGLError.js";const oe=has(`disable-feature:async-navigation-3d-depth-readback`);let Q=class extends t{constructor(e,t){super(e),this.olidRenderHelper=E()?new B:null,this.waterTextures=new q,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this._fog=d(null),this.globalIllumination=null,this.shadowAccumulator=null,this.test=null,this._initializeContext(t);let{memoryController:n}=t.view.resourceController;this.stippleTextures=K(this._rctx,n),this.markerTextures=G(this._rctx,n),this.techniques=new y(new v(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this.textures=new W(t),this.addHandles(this.textures.events.on(`changed`,e=>this.requestRender(e)));let r=new z(this.textures,this.techniques,()=>this.requestRender(),()=>this.requestRender());this.renderer=new V(t,r,this.techniques,this._rctx,e=>this.requestRender(e)),this.addHandles([s(()=>t.view.ready,()=>this._createRenderNodes(),c),l(()=>this.waterTextures.updating,()=>this.requestRender(),c),l(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),ee)]);let i={renderScene:(e,t,n,r)=>(this.renderer.setTime(t),this.renderer.render(e,n,r)),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,n,r)=>t.options.screenshot.renderOverlay(e,n,r)};this._screenshotManager=new X(this._rctx,i,e=>t.view.overlayManager.updateOverlays(ie,e.camera,0)),this._registerFrameTask(t)}destroy(){let e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=a(this._frameTask),this.techniques.destroy(),this._componentObjectCollection=o(this._componentObjectCollection),this._screenshotManager.destroy(),this.renderer.destroy(),this.globalIllumination=null,this.textures.destroy(),this.waterTextures.destroy(),this.markerTextures.destroy(),this.stippleTextures.destroy(),this._canvas=null,this._rctx=o(this._rctx),this.test?.destroy()}_createRenderNodes(){let{view:e,viewingMode:t}=this.stage;this.shadowAccumulator=new P({view:e}),this.shadowAccumulator.accumulationRenderer=new ne({view:e,data:this.shadowAccumulator}),this.renderer.setShadowAccumulator(this.shadowAccumulator),new L({view:e}),h(e.spatialReference)||(t===2?new x({view:e}):te(e.spatialReference)?new S({view:e}):(new b({view:e}),new C({view:e}),new k({view:e}),this._fog.value=new w({view:e}))),new I({view:e}),has(`disable-feature:global-illumination`)||(this.globalIllumination=new O({view:e})),new F({view:e,isEnabled:()=>this.renderer.hasSMAA}),new N({view:e}),new A({view:e}),new M({view:e}),new j({view:e,viewingMode:t}),new R({view:e}),new D({view:e}),E()&&new T({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0,this.globalIllumination?.resetAccumulation();case 0:this._needsRender=!0}}get updating(){let e=this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this.textures.updating||this.waterTextures.updating;return e&&g.UPDATING&&console.log(` RenderView:`,this._needsUpdate,this._needsWaterReflectionUpdate,this.renderer.updating,this.textures.updating,this.waterTextures.updating),e}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(n(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,n,r,i,a=i){let o=oe?this._readMainDepthSynchronously(t,n,r,i,a):this.renderer.navigationDepthCache.getMinimalDepthForArea(t,n,r,i,a)??Number.MAX_VALUE;if(e){let i=e.pickDepth(t*r.pixelRatio,n*r.pixelRatio,r);i!=null&&o>i&&i!==r.nearFar[0]&&i!==r.nearFar[1]&&(o=i)}return o===Number.MAX_VALUE?void 0:o}whenRepresentativeDepthForArea(e,t,n,r,i,a=1){return this.renderer.navigationDepthCache.whenRepresentativeDepthForArea(e,t,n,r,i,a)}_readMainDepthSynchronously(e,t,n,r,i){let a=n.constrainWindowSize(e,t,r*n.pixelRatio,i*n.pixelRatio),o=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,o);let s=Number.MAX_VALUE;for(let e=0;e<a[2]*a[3];e++){let t=this._linearDepthFromTexture(e*4,o,n.nearFar);s>t&&t!==n.nearFar[0]&&t!==n.nearFar[1]&&(s=t)}return s}_linearDepthFromTexture(e,t,n){return r(t,e)*(n[1]-n[0])+n[0]}_ensureLinearDepthArrayBuffer(e){let t=4*e[2]*e[3];return(this._tmpDepthBuffer==null||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){Y(),await this.techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){let t=e.view.state,n=!1,r=0,i=!1,a={preRender:({time:i})=>{n=this.updating,r=+!!this._needsUpdate,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),i=this.test?.time??i;let a=f(i-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(a>this.renderer.animationTimestep||n||this._needsRender)&&(this.renderer.updateAnimation(t,i)&&this.requestRender(0),this._lastAnimationUpdate=i)},render:({time:e})=>{if(e=this.test?.time??e,this.renderer.setTime(e),(this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){let e=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,this.renderer.render(t,0),i=!0,e&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this.textures.update();let n=new Z(t,this.renderer.fboCache,this.globalIllumination?.isAccumulating??!1);e=this.test?.time??e,this._screenshotManager.update(n,e)},finish:()=>{i&&=(this.renderer.finish(t.mode===2?r:1),!1)}};this._frameTask=u(a)}_initializeContext(e){let{options:t}=e,n=t.canvas??document.createElement(`canvas`);n.setAttribute(`style`,`width: 100%; height:100%; display:block;`),this._canvas=n;let r={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:`high-performance`,preserveDrawingBuffer:t.preserveDrawingBuffer??!1},a=n.getContext(`webgl2`,r);if(a==null){i.getLogger(this).error(`A WebGL2 context could not be created.`);return}ae(a,!0),this._rctx=se(a,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&i.getLogger(this).error(`WebGL context has alpha channel even though no alpha channel was requested`);let{container:o}=e;!this._rctx.contextAttributes.alpha&&has(`safari`)>=11&&(o.style.backgroundColor=`black`),o.contains(n)||o.appendChild(n)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable(`textureFloatLinear`)}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get componentObjectCollection(){return this._componentObjectCollection??=new _(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator),this._componentObjectCollection}updateQualitySettings(e){this.test?.time!=null&&e.fadeDuration!=null&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=f(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}get fog(){return n(this._fog.value)}};e([p({type:Boolean,readOnly:!0})],Q.prototype,`updating`,null),e([p({constructOnly:!0})],Q.prototype,`view`,void 0),e([p({readOnly:!0})],Q.prototype,`componentObjectCollection`,null),e([p()],Q.prototype,`_componentObjectCollection`,void 0),e([p()],Q.prototype,`_needsUpdate`,void 0),e([p()],Q.prototype,`_needsWaterReflectionUpdate`,void 0),Q=e([m(`esri.views.3d.webgl-engine.parts.RenderView`)],Q);function se(e,t){let n=new U(t);if(re.enabled){let t=$.get(e);return t?.refCount===1?(t.configure(n),t.ref(),t):(t=new H(e,n),$.set(e,t),t.ref(),t)}return new H(e,n)}const $=J();export{Q as RenderView};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{toConst as n}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as r}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{removeMaybe as a,destroyMaybe as o}from"../../../../core/maybe.js";import{when as s,initial as c,watch as l,syncAndInitial as ee}from"../../../../core/reactiveUtils.js";import{addFrameTask as u}from"../../../../core/scheduling.js";import{signal as d}from"../../../../core/signal.js";import{Milliseconds as f}from"../../../../core/time.js";import{property as p,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{isMoon as h,isMars as te}from"../../../../geometry/ellipsoidUtils.js";import{debugFlags as g}from"../../support/debugFlags.js";import{ComponentObjectCollection as _}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as v}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as y}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ChapmanAtmosphere as b}from"../effects/atmosphere/ChapmanAtmosphere.js";import{LocalAtmosphere as x}from"../effects/atmosphere/LocalAtmosphere.js";import{MarsAtmosphere as S}from"../effects/atmosphere/MarsAtmosphere.js";import{CloudsComposition as C}from"../effects/clouds/CloudsComposition.js";import{Fog as w}from"../effects/fog/Fog.js";import{ObjectAndLayerID as T}from"../effects/geometry/ObjectAndLayerID.js";import{olidEnabled as E}from"../effects/geometry/olidUtils.js";import{RenderOccluded as D}from"../effects/geometry/RenderOccluded.js";import{GlobalIllumination as O}from"../effects/globalIllumination/GlobalIllumination.js";import{Haze as k}from"../effects/haze/Haze.js";import{Highlight as A}from"../effects/highlight/Highlight.js";import{ShadowHighlight as j}from"../effects/highlight/ShadowHighlight.js";import{ShadowHighlightBuffer as M}from"../effects/highlight/ShadowHighlightBuffer.js";import{Magnifier as N}from"../effects/magnifier/Magnifier.js";import{ShadowAccumulator as P}from"../effects/shadowAccumulation/ShadowAccumulator.js";import{ShadowCastRenderer as ne}from"../effects/shadowAccumulation/ShadowCastRenderer.js";import{SMAA as F}from"../effects/smaa/SMAA.js";import{SSAO as I}from"../effects/ssao/SSAO.js";import{Stars as L}from"../effects/stars/Stars.js";import{EmissionComposite as R}from"../lib/EmissionComposite.js";import{GLMaterialRepository as z}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as B}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as V}from"../lib/Renderer.js";import{RenderingContext as H}from"../lib/RenderingContext.js";import{RenderingContextOptions as U}from"../lib/RenderingContextOptions.js";import{TextureRepository as W}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as G}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as K}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as q}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as J}from"./contextCache.js";import{removeLoadedShaderModules as Y}from"./renderUtils.js";import{ScreenshotManager as X,ScreenshotContext as Z}from"./ScreenshotManager.js";import{contextCache as re}from"./testUtils.js";import{noBudget as ie}from"../../../support/Scheduler.js";import{checkWebGLError as ae}from"../../../webgl/checkWebGLError.js";const oe=has(`disable-feature:async-navigation-3d-depth-readback`);let Q=class extends t{constructor(e,t){super(e),this.olidRenderHelper=E()?new B:null,this.waterTextures=new q,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this._fog=d(null),this.globalIllumination=null,this.shadowAccumulator=null,this.test=null,this._initializeContext(t);let{memoryController:n}=t.view.resourceController;this.stippleTextures=K(this._rctx,n),this.markerTextures=G(this._rctx,n),this.techniques=new y(new v(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this.textures=new W(t),this.addHandles(this.textures.events.on(`changed`,e=>this.requestRender(e)));let r=new z(this.textures,this.techniques,()=>this.requestRender(),()=>this.requestRender());this.renderer=new V(t,r,this.techniques,this._rctx,e=>this.requestRender(e)),this.addHandles([s(()=>t.view.ready,()=>this._createRenderNodes(),c),l(()=>this.waterTextures.updating,()=>this.requestRender(),c),l(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),ee)]);let i={renderScene:(e,t,n,r)=>(this.renderer.setTime(t),this.renderer.render(e,n,r)),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,n,r)=>t.options.screenshot.renderOverlay(e,n,r)};this._screenshotManager=new X(this._rctx,i,e=>t.view.overlayManager.updateOverlays(ie,e.camera,0)),this._registerFrameTask(t)}destroy(){let e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=a(this._frameTask),this.techniques.destroy(),this._componentObjectCollection=o(this._componentObjectCollection),this._screenshotManager.destroy(),this.renderer.destroy(),this.globalIllumination=null,this.textures.destroy(),this.waterTextures.destroy(),this.markerTextures.destroy(),this.stippleTextures.destroy(),this._canvas=null,this._rctx=o(this._rctx),this.test?.destroy()}_createRenderNodes(){let{view:e,viewingMode:t}=this.stage;this.shadowAccumulator=new P({view:e}),this.shadowAccumulator.accumulationRenderer=new ne({view:e,data:this.shadowAccumulator}),this.renderer.setShadowAccumulator(this.shadowAccumulator),new L({view:e}),h(e.spatialReference)||(t===2?new x({view:e}):te(e.spatialReference)?new S({view:e}):(new b({view:e}),new C({view:e}),new k({view:e}),this._fog.value=new w({view:e}))),new I({view:e}),has(`disable-feature:global-illumination`)||(this.globalIllumination=new O({view:e}));let n=new F({view:e,isEnabled:()=>this.renderer.hasSMAA});new N({view:e}),new A({view:e,antialias:n}),new M({view:e}),new j({view:e,viewingMode:t}),new R({view:e}),new D({view:e}),E()&&new T({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0,this.globalIllumination?.resetAccumulation();case 0:this._needsRender=!0}}get updating(){let e=this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this.textures.updating||this.waterTextures.updating;return e&&g.UPDATING&&console.log(` RenderView:`,this._needsUpdate,this._needsWaterReflectionUpdate,this.renderer.updating,this.textures.updating,this.waterTextures.updating),e}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(n(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,n,r,i,a=i){let o=oe?this._readMainDepthSynchronously(t,n,r,i,a):this.renderer.navigationDepthCache.getMinimalDepthForArea(t,n,r,i,a)??Number.MAX_VALUE;if(e){let i=e.pickDepth(t*r.pixelRatio,n*r.pixelRatio,r);i!=null&&o>i&&i!==r.nearFar[0]&&i!==r.nearFar[1]&&(o=i)}return o===Number.MAX_VALUE?void 0:o}whenRepresentativeDepthForArea(e,t,n,r,i,a=1){return this.renderer.navigationDepthCache.whenRepresentativeDepthForArea(e,t,n,r,i,a)}_readMainDepthSynchronously(e,t,n,r,i){let a=n.constrainWindowSize(e,t,r*n.pixelRatio,i*n.pixelRatio),o=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,o);let s=Number.MAX_VALUE;for(let e=0;e<a[2]*a[3];e++){let t=this._linearDepthFromTexture(e*4,o,n.nearFar);s>t&&t!==n.nearFar[0]&&t!==n.nearFar[1]&&(s=t)}return s}_linearDepthFromTexture(e,t,n){return r(t,e)*(n[1]-n[0])+n[0]}_ensureLinearDepthArrayBuffer(e){let t=4*e[2]*e[3];return(this._tmpDepthBuffer==null||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){Y(),await this.techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){let t=e.view.state,n=!1,r=0,i=!1,a={preRender:({time:i})=>{n=this.updating,r=+!!this._needsUpdate,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),i=this.test?.time??i;let a=f(i-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(a>this.renderer.animationTimestep||n||this._needsRender)&&(this.renderer.updateAnimation(t,i)&&this.requestRender(0),this._lastAnimationUpdate=i)},render:({time:e})=>{if(e=this.test?.time??e,this.renderer.setTime(e),(this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){let e=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,this.renderer.render(t,0),i=!0,e&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this.textures.update();let n=new Z(t,this.renderer.fboCache,this.globalIllumination?.isAccumulating??!1);e=this.test?.time??e,this._screenshotManager.update(n,e)},finish:()=>{i&&=(this.renderer.finish(t.mode===2?r:1),!1)}};this._frameTask=u(a)}_initializeContext(e){let{options:t}=e,n=t.canvas??document.createElement(`canvas`);n.setAttribute(`style`,`width: 100%; height:100%; display:block;`),this._canvas=n;let r={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:`high-performance`,preserveDrawingBuffer:t.preserveDrawingBuffer??!1},a=n.getContext(`webgl2`,r);if(a==null){i.getLogger(this).error(`A WebGL2 context could not be created.`);return}ae(a,!0),this._rctx=se(a,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&i.getLogger(this).error(`WebGL context has alpha channel even though no alpha channel was requested`);let{container:o}=e;!this._rctx.contextAttributes.alpha&&has(`safari`)>=11&&(o.style.backgroundColor=`black`),o.contains(n)||o.appendChild(n)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable(`textureFloatLinear`)}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get componentObjectCollection(){return this._componentObjectCollection??=new _(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator),this._componentObjectCollection}updateQualitySettings(e){this.test?.time!=null&&e.fadeDuration!=null&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=f(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}get fog(){return n(this._fog.value)}};e([p({type:Boolean,readOnly:!0})],Q.prototype,`updating`,null),e([p({constructOnly:!0})],Q.prototype,`view`,void 0),e([p({readOnly:!0})],Q.prototype,`componentObjectCollection`,null),e([p()],Q.prototype,`_componentObjectCollection`,void 0),e([p()],Q.prototype,`_needsUpdate`,void 0),e([p()],Q.prototype,`_needsWaterReflectionUpdate`,void 0),Q=e([m(`esri.views.3d.webgl-engine.parts.RenderView`)],Q);function se(e,t){let n=new U(t);if(re.enabled){let t=$.get(e);return t?.refCount===1?(t.configure(n),t.ref(),t):(t=new H(e,n),$.set(e,t),t.ref(),t)}return new H(e,n)}const $=J();export{Q as RenderView};
|
package/views/draw/DrawTool.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{createTask as r}from"../../core/asyncUtils.js";import{makeHandle as i,disposable as a}from"../../core/handleUtils.js";import o from"../../core/Logger.js";import{getOrCreateMapValue as s}from"../../core/MapUtils.js";import{destroyMaybe as c,abortMaybe as l}from"../../core/maybe.js";import{ignoreAbortErrors as u}from"../../core/promiseUtils.js";import{when as d,initial as f,watch as p,syncAndInitial as ee,on as m,sync as h}from"../../core/reactiveUtils.js";import{screenPointEqual as g,createScreenPoint as _}from"../../core/screenUtils.js";import{diff as v}from"../../core/accessorSupport/diffUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import{subclass as b}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as x}from"../../core/support/UpdatingHandles.js";import te from"../../geometry/Polygon.js";import{simplifyIsSimple as S,simplifyExecute as C}from"../../geometry/operators/simplifyOperator.js";import{isPolygon as w}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as T}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as E}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getEffectiveElevationInfo as D}from"../../support/elevationInfoUtils.js";import{getMaxDeviationInPixels as O,getMinSegmentsPerCurve as k}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as A}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as j,markHandled as M,getPointerType as N,getPointerId as P}from"./support/drawToolUtils.js";import{PluginContext as F}from"./support/PluginContext.js";import{viewEventToCommand as I}from"./support/input/drawToolInput.js";import{EditSessionManager as L}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as R}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as z}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as B}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as V}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as H}from"./support/managers/SurfaceManager.js";import{TooltipManager as U}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as W}from"../input/InputManager.js";import{createCoordinateHelper as G}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as K}from"../interactive/InteractiveToolBase.js";import{KeyBindings as q,mediaKeys as J,sketchKeys as Y,advancedSketchKeys as X,tooltipKeys as Z}from"../interactive/keybindings.js";import{isInputModeAvailable as ne}from"../interactive/tooltip/tooltipCommonUtils.js";const Q=Symbol();let $=class extends K{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._commandsSuspended=!1,this._snappingVisualizer=null,this._segmentLabels=null,this._segmentLabelsImportTask=null,this._updatingHandles=new x,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type=`draw-2.0`,this.automaticManipulatorSelection=!0,this.snappingManager=null,this.toolOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new B,this.globalStateManager=new R({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new L({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new V({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.readPluginSetting=null,this.enableVertexVisuals=!0}initialize(){let{view:e}=this;this.interactiveHandleManager=new z({view:e,renderer:this.renderer}),this._override(`manipulators`,this.interactiveHandleManager.manipulators),this.tooltipManager=new U({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(d(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:`outputGeometry`}),t.addOrUpdateVisual(this._vertexVisualId,{role:`vertex`}),this._updatingHandles.addPromise(A(e,t).then(e=>this._snappingVisualizer=e))},f)),this.addHandles([p(()=>[this.view,this.coordinateHelper.spatialReference,this.defaultZ,this.hasZ,this.elevationInfo],([e,t,n,r,i])=>{this.surfaceManager?.destroy(),this.surfaceManager=new H({spatialReference:t,excludedGraphicsLayer:null,defaultZ:n,hasZ:r,view:e,elevationInfo:i,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},ee),d(()=>this.toolOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),p(()=>[this.editGeometryOperations,this.toolOptions?.labels.enabled,this.globalStateManager.segmentLabelsDisabled],()=>{this._updatingHandles.addPromise(this._setupSegmentLabels())},f),m(()=>this.editSessionManager,`cancelPlugin`,({plugin:e})=>{this._suspendPlugin(e)},h),m(()=>this.editSessionManager,`restartPlugin`,({restartInfo:e})=>{this._resumePlugin(e)},h),p(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},h),m(()=>this.editGeometryOperations,[`vertex-add`,`vertex-update`,`vertex-remove`],e=>{let t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),n=t.map(e=>e.coordinates);switch(e.type){case`vertex-add`:this._emitWhenReady(e.type,{...e,added:n,vertices:t});break;case`vertex-update`:this._emitWhenReady(e.type,{...e,updated:n,vertices:t});break;case`vertex-remove`:this._emitWhenReady(e.type,{...e,removed:n,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(let e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=c(this.surfaceManager),this.interactiveHandleManager=c(this.interactiveHandleManager),this._segmentLabelsImportTask=l(this._segmentLabelsImportTask),this._segmentLabels=c(this._segmentLabels),this.tooltipManager=c(this.tooltipManager)}get _zOfLastUserInput(){let e=(this.mostDownstreamPlugin&&this.editSessionManager.getSession(this.mostDownstreamPlugin))?.firstPointAddedBySession?.point;return e?.hasZ?e.z:null}get _tooltipDependencies(){let{defaultZ:e,editGeometryOperations:t,toolOptions:n,directionOptions:r,elevationInfo:i,view:a}=this;return!t||!n||!a?null:{defaultZ:e,directionOptions:r,elevationInfo:i,editGeometryOperations:t,toolOptions:n,view:a,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{let{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}}get _editSessionManagerContext(){let{coordinateHelper:e,view:t}=this;return t?{coordinateHelper:e,viewingMode:t.type===`3d`&&t.viewingMode===`global`?1:2}:null}get _densificationParameters(){let{view:e,coordinateHelper:t}=this,n=t.spatialReference,r=e?.spatialReference,i=e.resolution;if(!n||!r||!i||!Number.isFinite(i))return null;let a=r.metersPerUnit/n.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(i))*O()*a,minSegmentsPerCurve:k()}}get test(){return{densificationParameters:this._densificationParameters,segmentLabels:this._segmentLabels}}get updating(){return this._updatingHandles.updating||this.snappingManager?.updating||this.lifecycleManager.updating||!!this._segmentLabels?.updating}get coordinateHelper(){return G(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){let e=this.editSessionManager.outputGeometry;if(e&&w(e))try{let t=this._densificationParameters,n=T(e)&&t?new te({...E(e,t)}):e;if(!S(n))return C(n)}catch{return e}return e}get _suppressCoincidentPointOverlaysIn3D(){return this.view.type===`3d`&&this.unprocessedGeometry?.type===`point`&&!!this.interactiveHandleManager?.allhandles?.find(e=>e.role===`primary`)?.outputMapPosition}get _shapeVisualGeometry(){return this._suppressCoincidentPointOverlaysIn3D?null:this.simplifiedGeometryPreview}get _vertexVisualGeometry(){return this._suppressCoincidentPointOverlaysIn3D?null:this.unprocessedGeometry}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){let e=this.lastScreenPosition;return e?this.surfaceManager?.screenToMap(e,{firstPointZ:this._zOfLastUserInput})??this.view.toMap(e):this.view.center}get movementCommandContext(){let{editGeometryOperations:e,tooltipManager:t,surfaceManager:n,snappingManager:r,interactiveHandleManager:i,_snappingVisualizer:a,defaultZ:o,hasZ:s,globalStateManager:{drawAtFixedElevation:c},view:l}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:n,interactiveHandleManager:i,snappingManager:r,snappingVisualizer:a,pointerType:`mouse`,hasZ:s,defaultZ:o,view:l,drawAtFixedElevation:c}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??`noTool`}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){let t=this.lifecycleManager;if(e&&t.complete(e),t.pluginStack.length===0){let e=this.unprocessedGeometry,t=!e||e.type===`mesh`||S(e);this.emit(`complete`,{geometry:e,isSimple:t,aborted:!1,type:`complete`,vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null)}}cancelFirstUserLeafPlugin(){let e=this.pluginStack.toArray().findLast(e=>e.configuration?.hidden!==!0);e&&this.lifecycleManager.cancel(e)}getVertexSnappingCandidates(){return this.interactiveHandleManager?.capturingHandle?.role===`secondary`?[]:this.snappingManager?.getVertexCandidates()??[]}replaceLeaf(e){let t=this.lifecycleManager;t.updating?o.getLogger(this).info(`Ignoring command; arrived while updating:`,`replaceLeaf`):t.replaceLeaf(e)}finishPart(){let e=this.mostUpstreamPlugin?.configuration;if(this.editGeometryOperations&&e&&e.kind?.includes(`multipart`)){let e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._handleCommand({action:`undo`})}redo(){this._handleCommand({action:`redo`})}executeCommand(e){return this._handleCommand(e)}suspendCommands(){return this._commandsSuspended=!0,i(()=>{this._commandsSuspended=!1;let e=this.view?.inputManager.latestPointerInfo;if(e){let{x:t,y:n}=e.location;this._handleCommand({action:`manipulator-move-to`,x:t,y:n})}})}addPromise(e){return this._updatingHandles.addPromise(e)}readPluginSettingValue(e,t){return this.readPluginSetting?.(e,t)}getGeometryIfCompleted(){let e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();let{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&=(this.begin(this._pendingBeginRequest),null),this.enableVertexVisuals&&this.addHandles(p(()=>this._vertexVisualGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?j(e):null})},f)),this.addHandles([p(()=>this._shapeVisualGeometry,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},f),d(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:g}),p(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{let n=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&n&&this._emitWhenReady(`cursor-update`,{updated:n.pos,type:`vertex-update`,operation:`apply`,vertices:[{componentIndex:n.part.index,vertexIndex:n.index,coordinates:n.pos}]})},h),this._keybindings.register(e,W.TOOL),p(()=>e.viewpoint,(e,t)=>{e&&t&&v(e,t)&&this._handleCommand({action:`viewpoint-moved`})})],Q)}onDeactivate(){super.onDeactivate(),this.removeHandles(Q),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){e.type===`pointer-down`?this.interactiveHandleManager?.notePointerDown(e.pointerId,e.pointerType):(e.type===`pointer-up`||e.type===`pointer-leave`)&&this.interactiveHandleManager?.notePointerUp(e.pointerId,e.pointerType);let t=I(e);t&&this._handleCommand(t)}forceAddVertex(){this._commitNext()}_emitWhenReady(e,t){if(this.destroyed)return;let n=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(n):n()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||this._queuedFeedbackEvents.length===0)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(!this._commandsSuspended){if(this.lifecycleManager.updating)o.getLogger(this).info(`Ignoring command; arrived while updating:`,e.action);else switch(e.action){case`view-drag`:return await this._handleViewDragCommand(e);case`vertex-add`:return this._guardCommand(e,()=>{M(e),this._commitNext()});case`vertex-add-and-finish-part`:return this._handleVertexAddAndFinishPartCommand(e);case`cancel`:return this._guardCommand(e,()=>this.cancel());case`complete`:return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(M(e),this.complete(this.mostUpstreamPlugin))});case`finish-part`:return this._guardCommand(e,()=>this.finishPart());case`undo`:return this._guardCommand(e,()=>this.editSessionManager.undo());case`redo`:return this._guardCommand(e,()=>this.editSessionManager.redo());case`next-manipulator`:return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator(`forward`));case`previous-manipulator`:return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator(`backward`));case`toggle-manipulator-follow`:this.interactiveHandleManager?.toggleFollow()&&M(e);break;case`viewpoint-moved`:return await this._handleViewpointMovedCommand(e);case`manipulator-move-to`:return await this._handleManipulatorMoveToCommand(e);case`manipulator-drag-to`:return await this._handleManipulatorDragToCommand(e);case`vertex-add-at-point`:return await this._handleVertexAddAtPointCommand(e);case`show-tooltip`:return this._guardCommand(e,async()=>{let t=this.tooltipManager?.tooltip;t&&ne(t.info)&&(await t.enterInputMode(),M(e))});case`constraint-center`:this.globalStateManager.setCentered(e.enabled);break;case`constraint-aspect`:this.globalStateManager.setPreserveAspectRatio(e.enabled)}}}async _handleViewDragCommand(e){if(!this.editable)return;let t=e.originalEvent,n=this.interactiveHandleManager?.capturingHandle;(t&&`pointerType`in t&&t.pointerType===`touch`&&(n?.captureMode===`capture-always`||n?.captureMode===`capture-when-engaged`)||this.interactiveHandleManager?.capturingHandle?.captureMode===`capture-when-engaged`||this._before(e))&&M(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(M(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:t,pointerId:n})),this.interactiveHandleManager?.updateAllScreenPositions(this.movementCommandContext.surfaceManager)}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(n,t))return;let r=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&M(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(n,t))return;let r=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.findHandleByManipulator(r,t);t===`touch`&&i&&e.state===`start`&&this.interactiveHandleManager?.releaseHandle();let a=this.interactiveHandleManager?.findHandleDragging(),o=this.interactiveHandleManager?.capturingHandle,s=a??o??i;s&&!i&&M(e),s?.captureMode===`capture-when-engaged`||s?.captureMode===`capture-always`&&t===`touch`?e.state===`end`?await this._updatingHandles.addPromise(s.noteDragEnd(r,{...this.movementCommandContext,pointerType:t,pointerId:n}).then(()=>{s&&N(e.originalEvent)===`touch`&&s.captureMode!==`grabbable-object`&&s.defaultCaptureMode!==`capture-when-engaged`&&s.role===`primary`&&(this.interactiveHandleManager?.handleCount===1?this._handleCommand({action:`vertex-add`}):this.interactiveHandleManager?.releaseHandle())})):e.state===`start`?await this._updatingHandles.addPromise(s.noteDragStart(r,{...this.movementCommandContext,pointerType:t,pointerId:n}).then(()=>{s&&N(e.originalEvent)===`touch`&&s.captureMode!==`grabbable-object`&&s.defaultCaptureMode!==`capture-when-engaged`&&!s.editSession?.lastPointAddedBySession&&this._handleCommand({action:`vertex-add`})})):await this._updatingHandles.addPromise(s?.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n})):s?.captureMode===`grabbable-object`&&(this.interactiveHandleManager?.releaseHandle(o),await this._updatingHandles.addPromise(s.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n})))}async _handleVertexAddAtPointCommand(e){let t=this._updateLastScreenPosition(e),n=N(e.originalEvent),r=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(r,n))return;let i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t,n);this.editable&&i&&(this._before(e)||(M(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:n,pointerId:r}).finally(()=>this._commitNext()))))}_makeKeyBindings(){let e=new q,t=(t,n)=>{e.addToggle(t,e=>this._handleCommand({action:n,originalEvent:e,enabled:e.type===`key-down`}))},n=(t,n)=>{e.add(t,e=>this._handleCommand({action:n,originalEvent:e}))};return t(J.preserveAspectRatio,`constraint-aspect`),t(Y.center,`constraint-center`),n(X.toggleFollowManipulator,`toggle-manipulator-follow`),n(Y.undo,`undo`),n(Y.redo,`redo`),n(Y.complete,`complete`),n(Y.vertexAdd,`vertex-add`),n({key:Z.enterInputMode,continuePropagation:!0,repeats:!0},`show-tooltip`),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);let t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){let n={stack:[],error:void 0,hasError:!1};try{let t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let r=!1,i=this.editGeometryOperations;e(n,i?a(i.on(`vertex-add`,()=>r=!0)):null,!1),t.completeStep?t.completeStep():this.complete(t),r&&this.tooltipManager?.unlockOnVertexPlacement()}catch(e){n.error=e,n.hasError=!0}finally{t(n)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){let t=_(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){let n=s(this._pluginContexts,e,()=>new F({drawTool:this,plugin:e,session:t}));return n.session=t,n}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;let t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,n){return this._before(e)?n?.():t()}async _setupSegmentLabels(){let e=this.editGeometryOperations,t=this.toolOptions?.labels,n=!!t?.enabled,r=this.globalStateManager.segmentLabelsDisabled;if(!e||!t||!n){this._segmentLabels=c(this._segmentLabels);return}if(r){this._segmentLabels&&(this._segmentLabels.visible=!1);return}if(this._segmentLabels?.context?.editGeometryOperations===e&&this._segmentLabels.context.labelOptions===t){this._segmentLabels.visible=!0;return}let i=await this._createSegmentLabels(e,t);i&&(this._segmentLabels=c(this._segmentLabels),this._segmentLabels=i)}async _createSegmentLabels(e,t){this._segmentLabelsImportTask?.abort();let n=this._segmentLabelsImportTask=r(async n=>{if(this.view.type===`3d`){let r=import(`../3d/interactive/SegmentLabels3D.js`),{SegmentLabels3D:i}=await this._updatingHandles.addPromise(r);return this._isSegmentLabelsSetupStale(n,e,t)?null:new i({context:{view:this.view,editGeometryOperations:e,elevationInfo:D(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})}let r=import(`../2d/interactive/SegmentLabels2D.js`),{SegmentLabels2D:i}=await this._updatingHandles.addPromise(r);return this._isSegmentLabelsSetupStale(n,e,t)?null:new i({context:{view:this.view,editGeometryOperations:e,elevationInfo:D(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})});return u(n.promise)}_isSegmentLabelsSetupStale(e,t,n){return e.aborted||this.editGeometryOperations!==t||this.toolOptions?.labels!==n||!n.enabled||this.globalStateManager.segmentLabelsDisabled}};n([y()],$.prototype,`_commandsSuspended`,void 0),n([y()],$.prototype,`_zOfLastUserInput`,null),n([y()],$.prototype,`_snappingVisualizer`,void 0),n([y()],$.prototype,`_segmentLabels`,void 0),n([y()],$.prototype,`_segmentLabelsImportTask`,void 0),n([y()],$.prototype,`_tooltipDependencies`,null),n([y()],$.prototype,`_editSessionManagerContext`,null),n([y()],$.prototype,`_densificationParameters`,null),n([y({constructOnly:!0,nonNullable:!0})],$.prototype,`view`,void 0),n([y()],$.prototype,`automaticManipulatorSelection`,void 0),n([y()],$.prototype,`updating`,null),n([y()],$.prototype,`coordinateHelper`,null),n([y()],$.prototype,`editGeometry`,null),n([y()],$.prototype,`editGeometryOperations`,null),n([y()],$.prototype,`unprocessedGeometry`,null),n([y()],$.prototype,`simplifiedGeometryPreview`,null),n([y()],$.prototype,`_suppressCoincidentPointOverlaysIn3D`,null),n([y()],$.prototype,`_shapeVisualGeometry`,null),n([y()],$.prototype,`_vertexVisualGeometry`,null),n([y()],$.prototype,`snappingManager`,void 0),n([y()],$.prototype,`toolOptions`,void 0),n([y()],$.prototype,`elevationInfo`,void 0),n([y()],$.prototype,`hasZ`,void 0),n([y()],$.prototype,`defaultZ`,void 0),n([y()],$.prototype,`directionOptions`,void 0),n([y()],$.prototype,`canUndo`,null),n([y()],$.prototype,`canRedo`,null),n([y()],$.prototype,`pluginStack`,null),n([y()],$.prototype,`mostDownstreamPlugin`,null),n([y()],$.prototype,`mostUpstreamPlugin`,null),n([y()],$.prototype,`lastScreenPosition`,void 0),n([y()],$.prototype,`positionOfLastUserInput`,null),n([y()],$.prototype,`tooltipManager`,void 0),n([y()],$.prototype,`measurementManager`,void 0),n([y()],$.prototype,`globalStateManager`,void 0),n([y()],$.prototype,`editSessionManager`,void 0),n([y()],$.prototype,`lifecycleManager`,void 0),n([y()],$.prototype,`surfaceManager`,void 0),n([y()],$.prototype,`interactiveHandleManager`,void 0),n([y()],$.prototype,`renderer`,void 0),n([y()],$.prototype,`readPluginSetting`,void 0),n([y()],$.prototype,`movementCommandContext`,null),n([y()],$.prototype,`tooltip`,null),n([y()],$.prototype,`activeTooltipInfo`,null),n([y()],$.prototype,`helpMessageKey`,null),n([y({constructOnly:!0})],$.prototype,`enableVertexVisuals`,void 0),$=n([b(`esri.views.draw.DrawTool`)],$);export{$ as DrawTool};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{createTask as r}from"../../core/asyncUtils.js";import{makeHandle as i,disposable as a}from"../../core/handleUtils.js";import o from"../../core/Logger.js";import{getOrCreateMapValue as s}from"../../core/MapUtils.js";import{destroyMaybe as c,abortMaybe as l}from"../../core/maybe.js";import{ignoreAbortErrors as u}from"../../core/promiseUtils.js";import{when as d,initial as f,watch as p,syncAndInitial as ee,on as m,sync as h}from"../../core/reactiveUtils.js";import{screenPointEqual as g,createScreenPoint as _}from"../../core/screenUtils.js";import{diff as v}from"../../core/accessorSupport/diffUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import{subclass as b}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as x}from"../../core/support/UpdatingHandles.js";import te from"../../geometry/Polygon.js";import{simplifyIsSimple as S,simplifyExecute as C}from"../../geometry/operators/simplifyOperator.js";import{isPolygon as w}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as T}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as E}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getEffectiveElevationInfo as D}from"../../support/elevationInfoUtils.js";import{getMaxDeviationInPixels as O,getMinSegmentsPerCurve as k}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as A}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as j,markHandled as M,getPointerType as N,getPointerId as P}from"./support/drawToolUtils.js";import{PluginContext as F}from"./support/PluginContext.js";import{viewEventToCommand as I}from"./support/input/drawToolInput.js";import{EditSessionManager as L}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as R}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as z}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as B}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as V}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as H}from"./support/managers/SurfaceManager.js";import{TooltipManager as U}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as W}from"../input/InputManager.js";import{createCoordinateHelper as G}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as K}from"../interactive/InteractiveToolBase.js";import{KeyBindings as q,mediaKeys as J,sketchKeys as Y,advancedSketchKeys as X,tooltipKeys as Z}from"../interactive/keybindings.js";import{isInputModeAvailable as ne}from"../interactive/tooltip/tooltipCommonUtils.js";const Q=Symbol();let $=class extends K{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._commandsSuspended=!1,this._snappingVisualizer=null,this._segmentLabels=null,this._segmentLabelsImportTask=null,this._updatingHandles=new x,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type=`draw-2.0`,this.automaticManipulatorSelection=!0,this.snappingManager=null,this.toolOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new B,this.globalStateManager=new R({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new L({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new V({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.readPluginSetting=null,this.enableVertexVisuals=!0}initialize(){let{view:e}=this;this.interactiveHandleManager=new z({view:e,renderer:this.renderer}),this._override(`manipulators`,this.interactiveHandleManager.manipulators),this.tooltipManager=new U({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(d(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:`outputGeometry`}),t.addOrUpdateVisual(this._vertexVisualId,{role:`vertex`}),this._updatingHandles.addPromise(A(e,t).then(e=>this._snappingVisualizer=e))},f)),this.addHandles([p(()=>[this.view,this.coordinateHelper.spatialReference,this.defaultZ,this.hasZ,this.elevationInfo],([e,t,n,r,i])=>{this.surfaceManager?.destroy(),this.surfaceManager=new H({spatialReference:t,excludedGraphicsLayer:null,defaultZ:n,hasZ:r,view:e,elevationInfo:i,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},ee),d(()=>this.toolOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),p(()=>[this.editGeometryOperations,this.toolOptions?.labels.enabled,this.globalStateManager.segmentLabelsDisabled],()=>{this._updatingHandles.addPromise(this._setupSegmentLabels())},f),m(()=>this.editSessionManager,`cancelPlugin`,({plugin:e})=>{this._suspendPlugin(e)},h),m(()=>this.editSessionManager,`restartPlugin`,({restartInfo:e})=>{this._resumePlugin(e)},h),p(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},h),m(()=>this.editGeometryOperations,[`vertex-add`,`vertex-update`,`vertex-remove`],e=>{let t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),n=t.map(e=>e.coordinates);switch(e.type){case`vertex-add`:this._emitWhenReady(e.type,{...e,added:n,vertices:t});break;case`vertex-update`:this._emitWhenReady(e.type,{...e,updated:n,vertices:t});break;case`vertex-remove`:this._emitWhenReady(e.type,{...e,removed:n,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(let e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=c(this.surfaceManager),this.interactiveHandleManager=c(this.interactiveHandleManager),this._segmentLabelsImportTask=l(this._segmentLabelsImportTask),this._segmentLabels=c(this._segmentLabels),this.tooltipManager=c(this.tooltipManager)}get _zOfLastUserInput(){let e=(this.mostDownstreamPlugin&&this.editSessionManager.getSession(this.mostDownstreamPlugin))?.firstPointAddedBySession?.point;return e?.hasZ?e.z:null}get _tooltipDependencies(){let{defaultZ:e,editGeometryOperations:t,toolOptions:n,directionOptions:r,elevationInfo:i,view:a}=this;return!t||!n||!a?null:{defaultZ:e,directionOptions:r,elevationInfo:i,editGeometryOperations:t,toolOptions:n,view:a,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{let{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}}get _editSessionManagerContext(){let{coordinateHelper:e,view:t}=this;return t?{coordinateHelper:e,viewingMode:t.type===`3d`&&t.viewingMode===`global`?1:2}:null}get _densificationParameters(){let{view:e,coordinateHelper:t}=this,n=t.spatialReference,r=e?.spatialReference,i=e.resolution;if(!n||!r||!i||!Number.isFinite(i))return null;let a=r.metersPerUnit/n.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(i))*O()*a,minSegmentsPerCurve:k()}}get test(){return{densificationParameters:this._densificationParameters,segmentLabels:this._segmentLabels}}get updating(){return this._updatingHandles.updating||this.snappingManager?.updating||this.lifecycleManager.updating||!!this._segmentLabels?.updating}get coordinateHelper(){return G(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){let e=this.editSessionManager.outputGeometry;if(e&&w(e))try{let t=this._densificationParameters,n=T(e)&&t?new te({...E(e,t)}):e;if(!S(n))return C(n)}catch{return e}return e}get _suppressCoincidentPointOverlaysIn3D(){return this.view.type===`3d`&&this.unprocessedGeometry?.type===`point`&&!!this.interactiveHandleManager?.allhandles?.find(e=>e.role===`primary`)?.outputMapPosition}get _shapeVisualGeometry(){return this._suppressCoincidentPointOverlaysIn3D?null:this.simplifiedGeometryPreview}get _vertexVisualGeometry(){return this._suppressCoincidentPointOverlaysIn3D?null:this.unprocessedGeometry}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){let e=this.lastScreenPosition;return e?this.surfaceManager?.screenToMap(e,{firstPointZ:this._zOfLastUserInput})??this.view.toMap(e):this.view.center}get movementCommandContext(){let{editGeometryOperations:e,tooltipManager:t,surfaceManager:n,snappingManager:r,interactiveHandleManager:i,_snappingVisualizer:a,defaultZ:o,hasZ:s,globalStateManager:{drawAtFixedElevation:c},view:l}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:n,interactiveHandleManager:i,snappingManager:r,snappingVisualizer:a,pointerType:`mouse`,hasZ:s,defaultZ:o,view:l,drawAtFixedElevation:c}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??`noTool`}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){let t=this.lifecycleManager;if(e&&t.complete(e),t.pluginStack.length===0){let e=this.unprocessedGeometry,t=!e||e.type===`mesh`||S(e);this.emit(`complete`,{geometry:e,isSimple:t,aborted:!1,type:`complete`,vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null)}}cancelFirstUserLeafPlugin(){let e=this.pluginStack.toArray().findLast(e=>e.configuration?.hidden!==!0);e&&this.lifecycleManager.cancel(e)}getVertexSnappingCandidates(){return this.interactiveHandleManager?.capturingHandle?.role===`secondary`?[]:this.snappingManager?.getVertexCandidates()??[]}replaceLeaf(e){let t=this.lifecycleManager;t.updating?o.getLogger(this).info(`Ignoring command; arrived while updating:`,`replaceLeaf`):t.replaceLeaf(e)}finishPart(){let e=this.mostUpstreamPlugin?.configuration;if(this.editGeometryOperations&&e&&e.kind?.includes(`multipart`)){let e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._handleCommand({action:`undo`})}redo(){this._handleCommand({action:`redo`})}executeCommand(e){return this._handleCommand(e)}suspendCommands(){return this._commandsSuspended=!0,i(()=>{this._commandsSuspended=!1;let e=this.view?.inputManager.latestPointerInfo;if(e){let{x:t,y:n}=e.location;this._handleCommand({action:`manipulator-move-to`,x:t,y:n})}})}addPromise(e){return this._updatingHandles.addPromise(e)}readPluginSettingValue(e,t){return this.readPluginSetting?.(e,t)}getGeometryIfCompleted(){let e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();let{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&=(this.begin(this._pendingBeginRequest),null),this.enableVertexVisuals&&this.addHandles(p(()=>this._vertexVisualGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?j(e):null})},f)),this.addHandles([p(()=>this._shapeVisualGeometry,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},f),d(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:g}),p(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{let n=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&n&&this._emitWhenReady(`cursor-update`,{updated:n.pos,type:`vertex-update`,operation:`apply`,vertices:[{componentIndex:n.part.index,vertexIndex:n.index,coordinates:n.pos}]})},h),this._keybindings.register(e,W.TOOL),p(()=>e.viewpoint,(e,t)=>{e&&t&&v(e,t)&&this._handleCommand({action:`viewpoint-moved`})})],Q)}onDeactivate(){super.onDeactivate(),this.removeHandles(Q),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){e.type===`pointer-down`?this.interactiveHandleManager?.notePointerDown(e.pointerId,e.pointerType):(e.type===`pointer-up`||e.type===`pointer-leave`)&&this.interactiveHandleManager?.notePointerUp(e.pointerId,e.pointerType);let t=I(e);t&&this._handleCommand(t)}forceAddVertex(){this._commitNext()}_emitWhenReady(e,t){if(this.destroyed)return;let n=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(n):n()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||this._queuedFeedbackEvents.length===0)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(!this._commandsSuspended){if(this.lifecycleManager.updating)o.getLogger(this).info(`Ignoring command; arrived while updating:`,e.action);else switch(e.action){case`view-drag`:return await this._handleViewDragCommand(e);case`vertex-add`:return this._guardCommand(e,()=>{M(e),this._commitNext()});case`vertex-add-and-finish-part`:return this._handleVertexAddAndFinishPartCommand(e);case`cancel`:return this._guardCommand(e,()=>this.cancel());case`complete`:return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(M(e),this.complete(this.mostUpstreamPlugin))});case`finish-part`:return this._guardCommand(e,()=>this.finishPart());case`undo`:return this._guardCommand(e,()=>this.editSessionManager.undo());case`redo`:return this._guardCommand(e,()=>this.editSessionManager.redo());case`next-manipulator`:return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator(`forward`));case`previous-manipulator`:return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator(`backward`));case`toggle-manipulator-follow`:this.interactiveHandleManager?.toggleFollow()&&M(e);break;case`viewpoint-moved`:return await this._handleViewpointMovedCommand(e);case`manipulator-move-to`:return await this._handleManipulatorMoveToCommand(e);case`manipulator-drag-to`:return await this._handleManipulatorDragToCommand(e);case`vertex-add-at-point`:return await this._handleVertexAddAtPointCommand(e);case`show-tooltip`:return this._guardCommand(e,async()=>{let t=this.tooltipManager?.tooltip;t&&ne(t.info)&&(await t.enterInputMode(),M(e))});case`constraint-center`:this.globalStateManager.setCentered(e.enabled);break;case`constraint-aspect`:this.globalStateManager.setPreserveAspectRatio(e.enabled)}}}async _handleViewDragCommand(e){if(!this.editable)return;let t=e.originalEvent,n=this.interactiveHandleManager?.capturingHandle;(t&&`pointerType`in t&&t.pointerType===`touch`&&(n?.captureMode===`capture-always`||n?.captureMode===`capture-when-engaged`)||this.interactiveHandleManager?.capturingHandle?.captureMode===`capture-when-engaged`||this._before(e))&&M(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(M(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:t,pointerId:n})),this.interactiveHandleManager?.updateAllScreenPositions(this.movementCommandContext.surfaceManager)}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(n,t))return;let r=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&M(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;let t=N(e.originalEvent),n=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(n,t))return;let r=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.findHandleByManipulator(r,t);t===`touch`&&i&&e.state===`start`&&this.interactiveHandleManager?.releaseHandle();let a=this.interactiveHandleManager?.findHandleDragging(),o=this.interactiveHandleManager?.capturingHandle,s=a??o??i;s&&!i&&M(e),s?.captureMode===`capture-when-engaged`||s?.captureMode===`capture-always`&&t===`touch`?e.state===`end`?await this._updatingHandles.addPromise(s.noteDragEnd(r,{...this.movementCommandContext,pointerType:t,pointerId:n}).then(()=>{s&&N(e.originalEvent)===`touch`&&s.captureMode!==`grabbable-object`&&s.defaultCaptureMode!==`capture-when-engaged`&&s.role===`primary`&&(this.interactiveHandleManager?.handleCount===1?this._handleCommand({action:`vertex-add`}):this.interactiveHandleManager?.releaseHandle())})):e.state===`start`?await this._updatingHandles.addPromise(s.noteDragStart(r,{...this.movementCommandContext,pointerType:t,pointerId:n}).then(()=>{s&&N(e.originalEvent)===`touch`&&s.captureMode!==`grabbable-object`&&s.defaultCaptureMode!==`capture-when-engaged`&&!s.editSession?.lastPointAddedBySession&&this._handleCommand({action:`vertex-add`})})):await this._updatingHandles.addPromise(s?.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n})):s?.captureMode===`grabbable-object`&&(this.interactiveHandleManager?.releaseHandle(o),await this._updatingHandles.addPromise(s.moveTo(r,{...this.movementCommandContext,pointerType:t,pointerId:n})))}async _handleVertexAddAtPointCommand(e){let t=this._updateLastScreenPosition(e),n=N(e.originalEvent),r=P(e.originalEvent);if(!this.interactiveHandleManager?.shouldCaptureInput(r,n))return;let i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t,n);this.editable&&i&&(this._before(e)||(M(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:n,pointerId:r}).finally(()=>this._commitNext()))))}_makeKeyBindings(){let e=new q,t=(t,n)=>{e.addToggle(t,e=>this._handleCommand({action:n,originalEvent:e,enabled:e.type===`key-down`}))},n=(t,n)=>{e.add(t,e=>this._handleCommand({action:n,originalEvent:e}))};return t(J.preserveAspectRatio,`constraint-aspect`),t(Y.center,`constraint-center`),n(X.toggleFollowManipulator,`toggle-manipulator-follow`),n(Y.undo,`undo`),n(Y.redo,`redo`),n(Y.complete,`complete`),n(Y.vertexAdd,`vertex-add`),n({key:Z.enterInputMode,continuePropagation:!0,repeats:!0},`show-tooltip`),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);let t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){let n={stack:[],error:void 0,hasError:!1};try{let t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let r=this.tooltipManager?.getFieldsToUnlockOnVertexPlacement()??[],i=!1,o=this.editGeometryOperations;e(n,o?a(o.on(`vertex-add`,()=>i=!0)):null,!1),t.completeStep?t.completeStep():this.complete(t),i&&this.tooltipManager?.unlockOnVertexPlacement(r)}catch(e){n.error=e,n.hasError=!0}finally{t(n)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){let t=_(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){let n=s(this._pluginContexts,e,()=>new F({drawTool:this,plugin:e,session:t}));return n.session=t,n}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;let t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,n){return this._before(e)?n?.():t()}async _setupSegmentLabels(){let e=this.editGeometryOperations,t=this.toolOptions?.labels,n=!!t?.enabled,r=this.globalStateManager.segmentLabelsDisabled;if(!e||!t||!n){this._segmentLabels=c(this._segmentLabels);return}if(r){this._segmentLabels&&(this._segmentLabels.visible=!1);return}if(this._segmentLabels?.context?.editGeometryOperations===e&&this._segmentLabels.context.labelOptions===t){this._segmentLabels.visible=!0;return}let i=await this._createSegmentLabels(e,t);i&&(this._segmentLabels=c(this._segmentLabels),this._segmentLabels=i)}async _createSegmentLabels(e,t){this._segmentLabelsImportTask?.abort();let n=this._segmentLabelsImportTask=r(async n=>{if(this.view.type===`3d`){let r=import(`../3d/interactive/SegmentLabels3D.js`),{SegmentLabels3D:i}=await this._updatingHandles.addPromise(r);return this._isSegmentLabelsSetupStale(n,e,t)?null:new i({context:{view:this.view,editGeometryOperations:e,elevationInfo:D(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})}let r=import(`../2d/interactive/SegmentLabels2D.js`),{SegmentLabels2D:i}=await this._updatingHandles.addPromise(r);return this._isSegmentLabelsSetupStale(n,e,t)?null:new i({context:{view:this.view,editGeometryOperations:e,elevationInfo:D(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})});return u(n.promise)}_isSegmentLabelsSetupStale(e,t,n){return e.aborted||this.editGeometryOperations!==t||this.toolOptions?.labels!==n||!n.enabled||this.globalStateManager.segmentLabelsDisabled}};n([y()],$.prototype,`_commandsSuspended`,void 0),n([y()],$.prototype,`_zOfLastUserInput`,null),n([y()],$.prototype,`_snappingVisualizer`,void 0),n([y()],$.prototype,`_segmentLabels`,void 0),n([y()],$.prototype,`_segmentLabelsImportTask`,void 0),n([y()],$.prototype,`_tooltipDependencies`,null),n([y()],$.prototype,`_editSessionManagerContext`,null),n([y()],$.prototype,`_densificationParameters`,null),n([y({constructOnly:!0,nonNullable:!0})],$.prototype,`view`,void 0),n([y()],$.prototype,`automaticManipulatorSelection`,void 0),n([y()],$.prototype,`updating`,null),n([y()],$.prototype,`coordinateHelper`,null),n([y()],$.prototype,`editGeometry`,null),n([y()],$.prototype,`editGeometryOperations`,null),n([y()],$.prototype,`unprocessedGeometry`,null),n([y()],$.prototype,`simplifiedGeometryPreview`,null),n([y()],$.prototype,`_suppressCoincidentPointOverlaysIn3D`,null),n([y()],$.prototype,`_shapeVisualGeometry`,null),n([y()],$.prototype,`_vertexVisualGeometry`,null),n([y()],$.prototype,`snappingManager`,void 0),n([y()],$.prototype,`toolOptions`,void 0),n([y()],$.prototype,`elevationInfo`,void 0),n([y()],$.prototype,`hasZ`,void 0),n([y()],$.prototype,`defaultZ`,void 0),n([y()],$.prototype,`directionOptions`,void 0),n([y()],$.prototype,`canUndo`,null),n([y()],$.prototype,`canRedo`,null),n([y()],$.prototype,`pluginStack`,null),n([y()],$.prototype,`mostDownstreamPlugin`,null),n([y()],$.prototype,`mostUpstreamPlugin`,null),n([y()],$.prototype,`lastScreenPosition`,void 0),n([y()],$.prototype,`positionOfLastUserInput`,null),n([y()],$.prototype,`tooltipManager`,void 0),n([y()],$.prototype,`measurementManager`,void 0),n([y()],$.prototype,`globalStateManager`,void 0),n([y()],$.prototype,`editSessionManager`,void 0),n([y()],$.prototype,`lifecycleManager`,void 0),n([y()],$.prototype,`surfaceManager`,void 0),n([y()],$.prototype,`interactiveHandleManager`,void 0),n([y()],$.prototype,`renderer`,void 0),n([y()],$.prototype,`readPluginSetting`,void 0),n([y()],$.prototype,`movementCommandContext`,null),n([y()],$.prototype,`tooltip`,null),n([y()],$.prototype,`activeTooltipInfo`,null),n([y()],$.prototype,`helpMessageKey`,null),n([y({constructOnly:!0})],$.prototype,`enableVertexVisuals`,void 0),$=n([b(`esri.views.draw.DrawTool`)],$);export{$ as DrawTool};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{watch as t,initial as n}from"../../../core/reactiveUtils.js";import{property as r,subclass as i}from"../../../core/accessorSupport/decorators.js";import{isPoint as a}from"../../../geometry/support/typeUtils.js";import{PluginBase as o}from"./PluginBase.js";const s=Symbol(`multipoint-active-point`);let c=class extends o{get helpMessageKey(){return`multipoint`}start(e){super.start(e),e.addOrUpdateVisual(s,{role:`outputGeometry`,state:`idle`}),e.session.appendOrReplacePart(null,[])}beforeAttachPlugin(e){return{useStandaloneSession:!0,geometryType:`point`}}attachPlugin(e){let r=this._context,i=r?.getSession(e);r&&i&&this.addHandles(t(()=>i.lastPointAddedBySession,()=>{let e=i.generatePreviewGeometry({includeAutomaticConnection:!1,geometryType:`point`});r.addOrUpdateVisual(s,{geometry:e&&a(e)?e:null})},n),this._downstreamHandlesKey)}detachPlugin(e,t){if(this.removeHandles(this._downstreamHandlesKey),this._context?.addOrUpdateVisual(s,{geometry:null}),t!==`complete`)return;let n=this._context?.getSession(e),r=this._session,i=n?.generatePreviewGeometry({includeAutomaticConnection:!1,geometryType:`point`});i&&a(i)&&r&&(r.appendOrReplacePoint(null,i),r.appendOrReplacePart(null,[]),r.automaticRestart=!1,r.groupGeometryChanges()),e.configuration&&this._context?.requestBeginDownstreamPlugin(e.configuration)}};e([r()],c.prototype,`helpMessageKey`,null),c=e([i(`esri.views.draw.plugins.MultipointPlugin`)],c);export{c as MultipointPlugin};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import n from"../../../core/Error.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{createScalar as i,createLength as a,toUnit as o}from"../../../core/quantity.js";import{generateUUID as s}from"../../../core/uuid.js";import{property as c}from"../../../core/accessorSupport/decorators/property.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{isWebMercator as u,isGeographic as d}from"../../../geometry/support/spatialReferenceUtils.js";import{getEffectiveElevationMode as f}from"../../../support/elevationInfoUtils.js";import{createViewAlignedCoordinateSystem as p}from"./surfaceCoordinateSystems.js";import{knownFieldDisplayOrders as m}from"./types.js";import{createGeographicCoordinate as h}from"../../interactive/tooltip/fields/parsingAndFormattingUtils.js";import{elevationFromPoint as g}from"../../support/euclideanLengthMeasurementUtils.js";const _={x:m.Coordinates+10,y:m.Coordinates+11,elevation:m.Coordinates+12};let v=class extends t{constructor(e){super(e)}normalizeCtorArgs(e){let{drawTool:t,plugin:n,...r}=e;return{_drawTool:t,_plugin:n,...r}}get positionOfLastUserInput(){return this._drawTool.positionOfLastUserInput}get elevationConstraint(){return this._drawTool.tooltipManager?.elevationConstraint}getSession(e){return this._drawTool.editSessionManager.getSession(e)}readBooleanSetting(e){let t=this._plugin.configuration?.uniqueId;if(t)return this._drawTool.readPluginSettingValue(t,e)}createInteractiveHandle(e,t){let r=this._drawTool.interactiveHandleManager,a=this._drawTool.tooltipManager,o=this._plugin,c=this.session,l=this._drawTool.coordinateHelper;if(!r||!a)throw new n(`draw-tool:interactive-handle-missing-dependencies`,`Attempted to set up an interactive handle without required dependencies.`);let p=e.name??s(),m=e.defaultCaptureMode??`capture-always`,g=r.registerHandle(o,{...e,name:p,editSession:c,defaultCaptureMode:m,captureMode:m});if(this._drawTool.addPromise(r.setupManipulatorForHandle(g,this._drawTool.lastScreenPosition,this._drawTool.movementCommandContext)),!t?.disableDefaultXYFields){let e=l.spatialReference;if(u(e)||d(e)?(a.createMeasuredField(o,{id:Symbol(`tooltip-long-${p}`),preset:`longitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.longitude),fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-lat-${p}`),preset:`latitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.latitude),fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})):(a.createMeasuredField(o,{id:Symbol(`tooltip-x-${p}`),preset:`x`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.x):null,fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-y-${p}`),preset:`y`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.y):null,fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})),this._drawTool.hasZ&&g.role===`primary`){let e=a.createMeasuredField(o,{id:Symbol(`tooltip-z-${p}`),preset:`elevation`,getMeasurementInput:()=>g.outputMapPosition,measure:async(e,t)=>this.measureElevation(e,t.inputUnitInfos.verticalLength.unit),fieldProperties:{displayOrder:_.elevation},fieldFilters:{appliesToHandlesWithName:p}}).field,{view:
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import n from"../../../core/Error.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{createScalar as i,createLength as a,toUnit as o}from"../../../core/quantity.js";import{generateUUID as s}from"../../../core/uuid.js";import{property as c}from"../../../core/accessorSupport/decorators/property.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{isWebMercator as u,isGeographic as d}from"../../../geometry/support/spatialReferenceUtils.js";import{getEffectiveElevationMode as f}from"../../../support/elevationInfoUtils.js";import{createViewAlignedCoordinateSystem as p}from"./surfaceCoordinateSystems.js";import{knownFieldDisplayOrders as m}from"./types.js";import{createGeographicCoordinate as h}from"../../interactive/tooltip/fields/parsingAndFormattingUtils.js";import{elevationFromPoint as g}from"../../support/euclideanLengthMeasurementUtils.js";const _={x:m.Coordinates+10,y:m.Coordinates+11,elevation:m.Coordinates+12};let v=class extends t{constructor(e){super(e)}normalizeCtorArgs(e){let{drawTool:t,plugin:n,...r}=e;return{_drawTool:t,_plugin:n,...r}}get positionOfLastUserInput(){return this._drawTool.positionOfLastUserInput}get elevationConstraint(){return this._drawTool.tooltipManager?.elevationConstraint}getSession(e){return this._drawTool.editSessionManager.getSession(e)}readBooleanSetting(e){let t=this._plugin.configuration?.uniqueId;if(t)return this._drawTool.readPluginSettingValue(t,e)}createInteractiveHandle(e,t){let r=this._drawTool.interactiveHandleManager,a=this._drawTool.tooltipManager,o=this._plugin,c=this.session,l=this._drawTool.coordinateHelper;if(!r||!a)throw new n(`draw-tool:interactive-handle-missing-dependencies`,`Attempted to set up an interactive handle without required dependencies.`);let p=e.name??s(),m=e.defaultCaptureMode??`capture-always`,g=r.registerHandle(o,{...e,name:p,editSession:c,defaultCaptureMode:m,captureMode:m});if(this._drawTool.addPromise(r.setupManipulatorForHandle(g,this._drawTool.lastScreenPosition,this._drawTool.movementCommandContext)),!t?.disableDefaultXYFields){let e=l.spatialReference;if(u(e)||d(e)?(a.createMeasuredField(o,{id:Symbol(`tooltip-long-${p}`),preset:`longitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.longitude),fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-lat-${p}`),preset:`latitude`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>h(e?.latitude),fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})):(a.createMeasuredField(o,{id:Symbol(`tooltip-x-${p}`),preset:`x`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.x):null,fieldProperties:{displayOrder:_.x},fieldFilters:{appliesToHandlesWithName:p}}),a.createMeasuredField(o,{id:Symbol(`tooltip-y-${p}`),preset:`y`,getMeasurementInput:()=>g.outputMapPosition,measure:async e=>e?i(e.y):null,fieldProperties:{displayOrder:_.y},fieldFilters:{appliesToHandlesWithName:p}})),this._drawTool.hasZ&&g.role===`primary`){let e=a.createMeasuredField(o,{id:Symbol(`tooltip-z-${p}`),preset:`elevation`,getMeasurementInput:()=>g.outputMapPosition,measure:async(e,t)=>this.measureElevation(e,t.inputUnitInfos.verticalLength.unit),fieldProperties:{displayOrder:_.elevation,...t?.elevationFieldProperties},fieldFilters:{appliesToHandlesWithName:p}}).field,{view:n,hasZ:r,elevationInfo:i}=this._drawTool;n.type===`3d`&&f(r,i)!==`absolute-height`&&!e.locked&&e.lock(this.measureElevation(null))}}return g}removeInteractiveHandle(e){let t=e;this._drawTool.interactiveHandleManager?.unregisterHandle(this._plugin,t)}createConstraint(e,t){this._drawTool.interactiveHandleManager?.registerCustomConstraint(this._plugin,e,t)}removeConstraint(e){this._drawTool.interactiveHandleManager?.unregisterCustomConstraint(this._plugin,e)}createCustomField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createCustomField(this._plugin,e)}createMeasuredField(e){if(!this._drawTool.tooltipManager)throw new n(`draw-tool:tooltip-manager-missing`,`Attempted to create a field without access to a tooltip manager.`);return this._drawTool.tooltipManager.createMeasuredField(this._plugin,e)}requestComplete(){this._drawTool.complete(this._plugin)}requestCancel(e){this._drawTool.lifecycleManager.cancel(this._plugin)}requestBeginDownstreamPlugin(e,t){this._drawTool.lifecycleManager.begin([e],this._plugin,t?.cancelExisting)}async measureLength(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureLength(a,t,e,r)}async measureArea(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureArea(a,t,e,r)}async measureDistance(e,t,n,r){let{_drawTool:i,_plugin:a}=this;if(n!==`tooltip`||i.tooltipManager?.effectiveEnabled)return await i.measurementManager.measureDistance(a,t,e,r)}measureElevation(e,t){let n=this._drawTool,r=g(e);if(!r){let e=n.surfaceManager?.metersPerVerticalUnit;e&&(r=a(n.defaultZ*e,`meters`))}return t&&r&&r.unit!==t?o(r,t):r}getGlobalState(){return this._drawTool.globalStateManager.getGlobalState()}setGlobalState(e,t){this._drawTool.globalStateManager.setGlobalState(this._plugin,e,t)}addOrUpdateGraphic(e,t){let{_plugin:n,_drawTool:i}=this,a=i.renderer;a?.addOrUpdateGraphic(e,t),n.hasHandles(e)||n.addHandles(r(()=>a?.removeGraphic(e)),e)}addOrUpdateVisual(e,t){let n=this._plugin,i=this._drawTool.renderer;i?.addOrUpdateVisual(e,t),n.hasHandles(e)||n.addHandles(r(()=>i?.removeVisual(e)),e)}removeGraphic(e){this._plugin.removeHandles(e)}removeVisual(e){this._plugin.removeHandles(e)}getViewInformation(){return this._drawTool.view}getViewAlignedSurfaceCoordinateSystem(e){let{view:t,coordinateHelper:n}=this._drawTool;return!t||!n?null:p(t,n.pointToVector(e))}};e([c()],v.prototype,`_plugin`,void 0),e([c()],v.prototype,`_drawTool`,void 0),e([c({nonNullable:!0})],v.prototype,`session`,void 0),e([c()],v.prototype,`positionOfLastUserInput`,null),e([c()],v.prototype,`elevationConstraint`,null),v=e([l(`esri.views.draw.support.PluginContext`)],v);export{v as PluginContext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{createTask as n}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{getOrCreateMapValue as i}from"../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import o from"../../../../core/ReactiveMap.js";import{watch as s,syncAndInitial as c,initial as l}from"../../../../core/reactiveUtils.js";import{property as u}from"../../../../core/accessorSupport/decorators.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as f}from"../../../../core/support/UpdatingHandles.js";import{isLoaded as p,load as m}from"../../../../geometry/coordinateFormatter.js";import{absoluteHeightElevationInfo as h}from"../../../../support/elevationInfoUtils.js";import{ManagedTooltipField as g}from"../ManagedTooltipField.js";import{getConstraintContext as _}from"../../../interactive/sketch/constraintUtils.js";import{makeTooltip as v}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{makeScalarField as y,makeOrientationField as b,makeAreaField as x,makeLengthField as S,makeRadiusField as C,makeTotalLengthField as w,makeSizeField as T,makeScaleField as E,makeYField as D,makeXField as O,makeLongitudeField as k,makeLatitudeField as A,makeElevationField as j,makeDistanceField as M,makeDirectionField as N}from"../../../interactive/tooltip/fields/fields.js";import{TooltipField as P}from"../../../interactive/tooltip/fields/TooltipField.js";import{DynamicTooltipInfo as F,filterFieldsForHandle as I,isKnownConstraintField as L}from"../../../interactive/tooltip/infos/DynamicTooltipInfo.js";let R=class extends t{constructor(e){super(e),this._pluginTooltipFieldRegistry=new o,this._updatingHandles=new f,this._coordinateFormatterLoadTask=null,this._constraintSnapshot=null,this.constraintsEnabled=!0,this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled=!1,this.enabled=!0}initialize(){this.addHandles([s(()=>[this.effectiveEnabled,this.context?.view,this.context?.toolOptions],([e,t,n])=>{let{context:r}=this;e&&t&&n?(this._tooltipInfo??=new F({toolOptions:n,getAllFields:()=>this.allFields,getActiveHandle:()=>this.effectiveActiveHandle,getHelpMessageKey:()=>this.context?.getHelpMessageKey(),viewType:t.type}),this._tooltip||this._setupTooltip(r)):(this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo),this.inputModeHandle=null)},c)])}destroy(){this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo)}get context(){return this.getDependencies?.()}get focusedHandle(){return this.context?.getActiveHandle?.()}get allHandles(){return this.context?.getAllHandles?.()}get effectiveActiveHandle(){return this._tooltip?.isInInputMode?this.inputModeHandle:this.focusedHandle}get updating(){return this._updatingHandles.updating}get tooltip(){return this._tooltip}get tooltipInfo(){return this._tooltipInfo}get elevationConstraint(){return I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(L).find(e=>e.name===`elevation`)?.committed}get allFields(){return Array.from(this._pluginTooltipFieldRegistry.values()).flatMap(e=>Array.from(e.values()))}get effectiveEnabled(){return this.enabled&&(this.context?.toolOptions.tooltips.effectiveEnabled||this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled)}getConstraints(e){let{tooltipInfo:t,context:n}=this,{view:r,editGeometryOperations:i,elevationInfo:a,toolOptions:o}=n??{},s=this.getLastScreenPosition?.();if(!s||!r||!t||!i||!o)return null;let{coordinateHelper:c,spatialReference:l}=i.data,u=r.toMap(s);if(!u)return null;let d=_(u,r,l,a??h,c.hasZ(),o.values.effectiveDirectionMode);return{...H(t.getConstraintFieldsForHandle(e)),context:d}}storeConstraintSnapshot(){let e=I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(e=>e.locked&&!e.unlockOnVertexPlacement).filter(L);this._constraintSnapshot=e.length?H(e):null}
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{createTask as n}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{getOrCreateMapValue as i}from"../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import o from"../../../../core/ReactiveMap.js";import{watch as s,syncAndInitial as c,initial as l}from"../../../../core/reactiveUtils.js";import{property as u}from"../../../../core/accessorSupport/decorators.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as f}from"../../../../core/support/UpdatingHandles.js";import{isLoaded as p,load as m}from"../../../../geometry/coordinateFormatter.js";import{absoluteHeightElevationInfo as h}from"../../../../support/elevationInfoUtils.js";import{ManagedTooltipField as g}from"../ManagedTooltipField.js";import{getConstraintContext as _}from"../../../interactive/sketch/constraintUtils.js";import{makeTooltip as v}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{makeScalarField as y,makeOrientationField as b,makeAreaField as x,makeLengthField as S,makeRadiusField as C,makeTotalLengthField as w,makeSizeField as T,makeScaleField as E,makeYField as D,makeXField as O,makeLongitudeField as k,makeLatitudeField as A,makeElevationField as j,makeDistanceField as M,makeDirectionField as N}from"../../../interactive/tooltip/fields/fields.js";import{TooltipField as P}from"../../../interactive/tooltip/fields/TooltipField.js";import{DynamicTooltipInfo as F,filterFieldsForHandle as I,isKnownConstraintField as L}from"../../../interactive/tooltip/infos/DynamicTooltipInfo.js";let R=class extends t{constructor(e){super(e),this._pluginTooltipFieldRegistry=new o,this._updatingHandles=new f,this._coordinateFormatterLoadTask=null,this._constraintSnapshot=null,this.constraintsEnabled=!0,this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled=!1,this.enabled=!0}initialize(){this.addHandles([s(()=>[this.effectiveEnabled,this.context?.view,this.context?.toolOptions],([e,t,n])=>{let{context:r}=this;e&&t&&n?(this._tooltipInfo??=new F({toolOptions:n,getAllFields:()=>this.allFields,getActiveHandle:()=>this.effectiveActiveHandle,getHelpMessageKey:()=>this.context?.getHelpMessageKey(),viewType:t.type}),this._tooltip||this._setupTooltip(r)):(this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo),this.inputModeHandle=null)},c)])}destroy(){this._tooltip=a(this._tooltip),this._tooltipInfo=a(this._tooltipInfo)}get context(){return this.getDependencies?.()}get focusedHandle(){return this.context?.getActiveHandle?.()}get allHandles(){return this.context?.getAllHandles?.()}get effectiveActiveHandle(){return this._tooltip?.isInInputMode?this.inputModeHandle:this.focusedHandle}get updating(){return this._updatingHandles.updating}get tooltip(){return this._tooltip}get tooltipInfo(){return this._tooltipInfo}get elevationConstraint(){return I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(L).find(e=>e.name===`elevation`)?.committed}get allFields(){return Array.from(this._pluginTooltipFieldRegistry.values()).flatMap(e=>Array.from(e.values()))}get effectiveEnabled(){return this.enabled&&(this.context?.toolOptions.tooltips.effectiveEnabled||this.keepTooltipAliveEvenWhenTooltipsAreNotEnabled)}getConstraints(e){let{tooltipInfo:t,context:n}=this,{view:r,editGeometryOperations:i,elevationInfo:a,toolOptions:o}=n??{},s=this.getLastScreenPosition?.();if(!s||!r||!t||!i||!o)return null;let{coordinateHelper:c,spatialReference:l}=i.data,u=r.toMap(s);if(!u)return null;let d=_(u,r,l,a??h,c.hasZ(),o.values.effectiveDirectionMode);return{...H(t.getConstraintFieldsForHandle(e)),context:d}}storeConstraintSnapshot(){let e=I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(e=>e.locked&&!e.unlockOnVertexPlacement).filter(L);this._constraintSnapshot=e.length?H(e):null}getFieldsToUnlockOnVertexPlacement(){return I(this.allFields,this.focusedHandle).map(({field:e})=>e).filter(e=>e.unlockOnVertexPlacement)}unlockOnVertexPlacement(e){for(let t of e)t.unlock()}unregisterPluginFields(e){let t=this._pluginTooltipFieldRegistry.get(e);t?.forEach(e=>e.destroy()),t?.clear(),this._pluginTooltipFieldRegistry.delete(e)}createMeasuredField(e,{id:t,preset:n,getMeasurementInput:r,measure:i,fieldProperties:a,fieldFilters:o}){let c=this._getOrCreateField(e,t,n,a,o);return c.registerMeasurement(r,i,()=>this.tooltipInfo?.renderContext),c.addHandles(s(()=>this.tooltipInfo?.isEffectiveVisibleField(c.field),e=>c.enabled=!!e,l)),c}createCustomField(e,{id:t,preset:n,fieldProperties:r,fieldFilters:i}){return this._getOrCreateField(e,t,n,r,i)}_setupTooltip(e){let t=this._tooltip=v(()=>({view:e.view,options:e.toolOptions.tooltips,info:this.tooltipInfo}));t.addHandles([s(()=>this.focusedHandle,e=>{(e&&(!t.isInInputMode||this.inputModeHandle==null)||this.inputModeHandle&&!this.allHandles?.includes(this.inputModeHandle))&&(this.inputModeHandle=e)},c),s(()=>this.focusedHandle?.screenPosition,e=>{e?(t.position=e,t.hidden=!1):t.hidden=!0},c),t.on(`commit`,()=>{this.context?.notifyTooltipsChanged()})]),!this._coordinateFormatterLoadTask&&!p()&&(this._coordinateFormatterLoadTask=n(()=>m()),this.addHandles(this._coordinateFormatterLoadTask),this._updatingHandles.addPromise(this._coordinateFormatterLoadTask.promise))}_getOrCreateField(e,t,n,r,a){let s=i(this._pluginTooltipFieldRegistry,e,()=>new o);if(s.has(t))return s.get(t);let c=V(n,r),l=new g({field:c,displayGroup:r?.displayGroup,...a});s.set(t,l);let u=L(c)?this._constraintSnapshot?.[c.name]:void 0;return u&&!c.unlockOnVertexPlacement&&c.lock(u),l}};e([u()],R.prototype,`_updatingHandles`,void 0),e([u()],R.prototype,`_tooltip`,void 0),e([u()],R.prototype,`_tooltipInfo`,void 0),e([u()],R.prototype,`_coordinateFormatterLoadTask`,void 0),e([u()],R.prototype,`_constraintSnapshot`,void 0),e([u()],R.prototype,`getDependencies`,void 0),e([u()],R.prototype,`getLastScreenPosition`,void 0),e([u()],R.prototype,`context`,null),e([u()],R.prototype,`inputModeHandle`,void 0),e([u()],R.prototype,`focusedHandle`,null),e([u()],R.prototype,`allHandles`,null),e([u()],R.prototype,`effectiveActiveHandle`,null),e([u()],R.prototype,`updating`,null),e([u()],R.prototype,`tooltip`,null),e([u()],R.prototype,`tooltipInfo`,null),e([u()],R.prototype,`constraintsEnabled`,void 0),e([u()],R.prototype,`elevationConstraint`,null),e([u()],R.prototype,`allFields`,null),e([u()],R.prototype,`keepTooltipAliveEvenWhenTooltipsAreNotEnabled`,void 0),e([u()],R.prototype,`enabled`,void 0),e([u()],R.prototype,`effectiveEnabled`,null),R=e([d(`esri.views.draw.support.managers.TooltipManager`)],R);function z(e){return e==null||!(`unit`in e)||!(`rotationType`in e)?null:e}function B(e){return e==null||`rotationType`in e?null:e}function V(e,t){let n=t?{...t}:{};switch(delete n.displayGroup,e){case`area`:return x({...n,name:`area`});case`direction`:return N({...n,name:`direction`});case`distance`:return M({...n,name:`distance`});case`elevation`:{let e=j({...n,name:`elevation`});return e.showAsZ=!0,e}case`latitude`:return A({...n,name:`y`});case`longitude`:return k({...n,name:`x`});case`x`:return O({...n,name:`x`});case`y`:return D({...n,name:`y`});case`orientation`:return b({...n,name:`orientation`});case`scale`:return E({...n,name:`scale`});case`size`:return T({...n,name:`size`});case`totalLength`:return w({...n,name:`totalLength`});case`radius`:return C({...n,name:`radius`});case`generic-length`:return S({...n,name:null});case`generic-area`:return x({...n,name:null});case`generic-angle`:return b({...n,name:null});case`generic-scalar`:return y({...n,name:null});default:if(!n)throw new r(`draw-tool:tooltips:invalid-field-config`,`Attempted to create a tooltip without a preset definition and without tooltip configuration.`);return new P(n)}}function H(e){let t={};for(let n of e)switch(n.name){case`direction`:t[n.name]=n.committed;break;case`distance`:case`elevation`:t[n.name]=n.committed;break;case`x`:t[n.name]=B(n.committed),t.longitude=z(n.committed);break;case`y`:t[n.name]=B(n.committed),t.latitude=z(n.committed)}return t}export{R as TooltipManager};
|
|
@@ -797,7 +797,7 @@ export interface PluginContext {
|
|
|
797
797
|
* Use this method to set up interactive handles that will be used to capture user input.
|
|
798
798
|
*
|
|
799
799
|
* By default, handles will be configured with x/y/z fields, unless opted out using the options
|
|
800
|
-
* parameter.
|
|
800
|
+
* parameter. Use `elevationFieldProperties` to override the default elevation field settings.
|
|
801
801
|
*
|
|
802
802
|
* The `role` property controls both the appearance and several aspects of the behavior of the handle.
|
|
803
803
|
* In general, `"primary"` should be used for handles that correspond directly with a vertex/point/curve endpoint
|
|
@@ -809,7 +809,10 @@ export interface PluginContext {
|
|
|
809
809
|
* @returns The interactive handle
|
|
810
810
|
* @internal
|
|
811
811
|
*/
|
|
812
|
-
createInteractiveHandle(properties: Partial<InteractiveHandleConfigurationProperties>, options?: {
|
|
812
|
+
createInteractiveHandle(properties: Partial<InteractiveHandleConfigurationProperties>, options?: {
|
|
813
|
+
disableDefaultXYFields?: boolean;
|
|
814
|
+
elevationFieldProperties?: Partial<CustomFieldProperties<Length>>;
|
|
815
|
+
}): InteractiveHandle;
|
|
813
816
|
/**
|
|
814
817
|
* Removes an interactive handle.
|
|
815
818
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";const t=new e(`cyan`),n=1,r=.25,i=new e(`black`),a=.4,o=.2,s=.25,c=`default`,
|
|
2
|
+
import e from"../../Color.js";const t=new e(`cyan`),n=1,r=.25,i=new e(`black`),a=.4,o=.2,s=.25,c=.5,l=`default`,u=`temporary`,d=new e(`yellow`),f=8;export{t as defaultColor,r as defaultFillOpacity,n as defaultHaloOpacity,l as defaultHighlightName,s as defaultOccludedFactor,c as defaultOccludedOutlineFactor,i as defaultShadowColor,o as defaultShadowDifference,a as defaultShadowOpacity,f as maximumHighlights,d as temporaryHighlightColor,u as temporaryHighlightName};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
2
2
|
import type { FieldType } from "../../layers/support/types.js";
|
|
3
3
|
|
|
4
|
-
export interface SearchLayerFieldProperties extends Partial<Pick<SearchLayerField, "exactMatch" | "name" | "type">> {}
|
|
4
|
+
export interface SearchLayerFieldProperties extends Partial<Pick<SearchLayerField, "exactMatch" | "name" | "searchMode" | "type">> {}
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents the field of a layer to use for search.
|
|
@@ -18,6 +18,12 @@ export default class SearchLayerField extends JSONSupport {
|
|
|
18
18
|
accessor exactMatch: boolean;
|
|
19
19
|
/** The name of the field. */
|
|
20
20
|
accessor name: string | null | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Specifies how text is matched against the field when searching.
|
|
23
|
+
*
|
|
24
|
+
* @since 5.2
|
|
25
|
+
*/
|
|
26
|
+
searchMode?: "simple" | "starts-with" | "full-text-starts-with" | "full-text-simple" | null;
|
|
21
27
|
/** The data type of the field. */
|
|
22
28
|
type?: FieldType | null;
|
|
23
29
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as n,subclass as r}from"../../core/accessorSupport/decorators.js";import{kebabDict as i}from"../../layers/support/fieldType.js";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as n,subclass as r}from"../../core/accessorSupport/decorators.js";import{kebabDict as i}from"../../layers/support/fieldType.js";import{searchModeKebabDict as a}from"./searchMode.js";import{enumeration as o}from"../../core/accessorSupport/decorators/enumeration.js";var s;let c=s=class extends t{constructor(e){super(e),this.exactMatch=!1,this.searchMode=null,this.name=null,this.type=null}clone(){return new s({exactMatch:this.exactMatch,type:this.type,name:this.name,searchMode:this.searchMode})}};e([n({type:Boolean,json:{write:!0}})],c.prototype,`exactMatch`,void 0),e([o(a)],c.prototype,`searchMode`,void 0),e([n({type:String,json:{write:!0}})],c.prototype,`name`,void 0),e([o(i)],c.prototype,`type`,void 0),c=s=e([r(`esri.webdoc.applicationProperties.SearchLayerField`)],c);const l=c;export{l as default};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
2
2
|
import type { FieldType } from "../../layers/support/types.js";
|
|
3
3
|
|
|
4
|
-
export interface SearchTableFieldProperties extends Partial<Pick<SearchTableField, "exactMatch" | "name" | "type">> {}
|
|
4
|
+
export interface SearchTableFieldProperties extends Partial<Pick<SearchTableField, "exactMatch" | "name" | "searchMode" | "type">> {}
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents the field of a table to use for search.
|
|
@@ -18,6 +18,12 @@ export default class SearchTableField extends JSONSupport {
|
|
|
18
18
|
accessor exactMatch: boolean;
|
|
19
19
|
/** The name of the field. */
|
|
20
20
|
accessor name: string | null | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Specifies how text is matched against the field when searching.
|
|
23
|
+
*
|
|
24
|
+
* @since 5.2
|
|
25
|
+
*/
|
|
26
|
+
searchMode?: "simple" | "starts-with" | "full-text-starts-with" | "full-text-simple" | null;
|
|
21
27
|
/** The data type of the field. */
|
|
22
28
|
type?: FieldType | null;
|
|
23
29
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as n,subclass as r}from"../../core/accessorSupport/decorators.js";import{kebabDict as i}from"../../layers/support/fieldType.js";import{
|
|
2
|
+
import{__decorate as e}from"tslib";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as n,subclass as r}from"../../core/accessorSupport/decorators.js";import{kebabDict as i}from"../../layers/support/fieldType.js";import{searchModeKebabDict as a}from"./searchMode.js";import{enumeration as o}from"../../core/accessorSupport/decorators/enumeration.js";var s;let c=s=class extends t{constructor(e){super(e),this.exactMatch=!1,this.name=null,this.searchMode=null,this.type=null}clone(){return new s({exactMatch:this.exactMatch,type:this.type,name:this.name,searchMode:this.searchMode})}};e([n({type:Boolean,json:{write:!0}})],c.prototype,`exactMatch`,void 0),e([n({type:String,json:{write:!0}})],c.prototype,`name`,void 0),e([o(a)],c.prototype,`searchMode`,void 0),e([o(i)],c.prototype,`type`,void 0),c=s=e([r(`esri.webdoc.applicationProperties.SearchTableField`)],c);const l=c;export{l as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import{JSONMap as e}from"../../core/jsonMap.js";const t=new e({simple:`simple`,startsWith:`starts-with`,fullTextStartsWith:`full-text-starts-with`,fullTextSimple:`full-text-simple`});export{t as searchModeKebabDict};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{substitute as e}from"../../intl.js";import{equalsShallow as t}from"../../core/lang.js";import{throwIfAborted as n}from"../../core/promiseUtils.js";import{isLayerWithHistoricMoment as r}from"../../layers/mixins/EditBusLayer.js";import{DomainValidationError as i}from"../../layers/support/domainUtils.js";import{NumericRangeValidationError as a,TypeValidationError as o}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as s,getSubtypesFromLayer as c}from"../../layers/support/layerUtils.js";import l from"../../rest/support/AttachmentQuery.js";import{unknown as u,utc as d}from"../../time/constants.js";import{ReactiveGraphic as f}from"./ReactiveGraphic.js";import{MultiFeatureError as p,isMultipleChoiceFieldInput as m,FormValidationWarning as h,isGroupInput as g}from"./inputs/support/inputUtils.js";import{getIntlOptionsForField as _}from"../support/dateUtils.js";import{isEmptyValue as v,InputValidationError as y,getRangeErrorMessage as b,shouldUseScientificNotation as x,scientificNumberFormatOptions as S,numberFormatOptions as C,ContingentValuesValidationError as w}from"../support/forms/formUtils.js";const T=(e,t)=>e!=null&&e.input?.type===t;function E(e){return new f({source:e})}function D(t,n,r,s){let{dataType:c,minLength:l}=t;if(!r||!n)return null;let{validationErrors:u}=r;if(n===p.DIFFERENT_ERRORS)return u.invalidBatchFormType;if(n===y.CANNOT_BE_EMPTY)return u.cannotBeNull;if(n===i.VALUE_OUT_OF_RANGE||n===a.OUT_OF_RANGE){let{field:n,range:r}=t,i={type:`date`,intlOptions:{timeZone:n.type===`date`&&s?s:void 0,..._(n)}},a=b(r,u);return e(a,r,{format:{max:c===`date`?i:r.max!=null&&x(r.max)?S:C,min:c===`date`?i:r.min!=null&&x(r.min)?S:C}})}if(n===i.INVALID_CODED_VALUE)return u.invalidCodedValue;if(n===o.INVALID_TYPE)return u.invalidType;if(n===y.TOO_SHORT)return e(u.tooShort,{min:l});if(m(t)){if(n===y.TOO_FEW_SELECTED_CHOICES)return e(u.tooFewSelectedChoices,{min:t.input.minimumChoices});if(n===y.TOO_MANY_SELECTED_CHOICES)return e(u.tooManySelectedChoices,{max:t.input.maximumChoices})}return n===y.TOO_LONG?null:n===w.CONTINGENCY_VIOLATION_WARNING||n===w.CONTINGENCY_VIOLATION_ERROR?u.valuesIncompatible:n===h.OUT_OF_SUBTYPE_DOMAIN?r.subtypes.fieldOutOfSubtypeDomainWarning:null}function O(e,t,n){let r=n?.validationErrors;if(!r)return null;let i=null;for(let n of e.invalidHiddenInputs)switch(n.effectiveVisibilityCode){case`hidden:visibility-expression:all-features`:case`hidden:group-visibility-expression:all-features`:case`hidden:field-definition`:return t===`single`?r.nonVisibleError_changeValues:r.nonVisibleError_checkIndividualFeatures;case`hidden:no-domain-in-common`:case`hidden:visibility-expression:some-features`:case`hidden:group-visibility-expression:some-features`:case`hidden:not-in-all-layers`:i=r.nonVisibleError_checkIndividualFeatures;break;case`visible`:continue;default:n.effectiveVisibilityCode}return i}function k(e){return typeof e==`object`&&!!e&&`type`in e&&(e.type===`feature`||e.type===`geojson`||e.type===`knowledge-graph-sublayer`||e.type===`oriented-imagery`||e.type===`scene`||e.type===`subtype-sublayer`)}function A(e){return k(e)?!0:!!(typeof e==`object`&&e&&`type`in e&&e.type&&`id`in e&&e.id&&`fields`in e&&e.fields&&`fieldsIndex`in e&&e.fieldsIndex&&`objectIdField`in e&&e.objectIdField&&`capabilities`in e&&`getField`in e&&e.getField)}function j(e){return A(e)&&`queryAttachments`in e}function M(e){return typeof e==`object`&&!!e&&`type`in e&&(e.type===`feature`||e.type===`subtype-sublayer`)}function N(e){return j(e)?!!(e?.effectiveCapabilities??e?.capabilities)?.data?.supportsAttachment:!1}async function P(e,t,i,a){let o=new Set,c=!1;for(let e of i){if(e.input?.type===`attachment`&&(e.input.attachmentAssociationType===`any`||e.input.attachmentAssociationType===`exactOrNone`)){c=!0;break}if(!v(e.attachmentKeyword))o.add(e.attachmentKeyword);else{c=!0;break}}let u=o.size&&!c?Array.from(o):void 0,d=new l({objectIds:[t],returnMetadata:!0,keywords:u}),f=s(e)?e.parent:e;r(f)&&f.historicMoment&&(d.historicMoment=f.historicMoment);let p=await e.queryAttachments(d,{signal:a});return n(a),p[t]??[]}function F(e,n,r){let i=c(e),a=i?.find(e=>e.code===r);if(!a)return!1;let o=i?.find(e=>e.code===n);return!t(a.defaultValues,o?.defaultValues)&&Object.values(a.defaultValues).some(e=>e!=null)}function I(e){return e.reduce((e,t)=>g(t)?[...e,...t.inputs]:[...e,t],[])}function L(e){return s(e)&&e.parent&&(e=e.parent),e&&`datesInUnknownTimezone`in e&&e.datesInUnknownTimezone?u:e&&`preferredTimeZone`in e&&e.preferredTimeZone?e.preferredTimeZone:null}function R(e,t){return!e&&!t?`system`:t===u?d:e&&e!==u?e:t??`system`}export{E as createReactiveGraphic,I as flattenInputs,R as getEffectiveTimeZone,O as getHiddenFieldsValidationErrorMessage,L as getLayerTimeZone,D as getMessageString,M as isAssociationsLayerUnion,A as isAttributeFormSupportedLayer,k as isAttributeFormSupportedLayerUnion,j as isAttributeFormSupportedLayerWithAttachments,T as isElementTemplateWithInputType,N as layerSupportsAttachments,P as queryAttachmentsForElements,F as subtypeChangeShouldPrompt};
|
|
2
|
+
import{substitute as e}from"../../intl.js";import{equalsShallow as t}from"../../core/lang.js";import{throwIfAborted as n}from"../../core/promiseUtils.js";import{isLayerWithHistoricMoment as r}from"../../layers/mixins/EditBusLayer.js";import{DomainValidationError as i}from"../../layers/support/domainUtils.js";import{NumericRangeValidationError as a,TypeValidationError as o}from"../../layers/support/fieldUtils.js";import{isSubtypeSublayer as s,getSubtypesFromLayer as c}from"../../layers/support/layerUtils.js";import l from"../../rest/support/AttachmentQuery.js";import{unknown as u,utc as d}from"../../time/constants.js";import{ReactiveGraphic as f}from"./ReactiveGraphic.js";import{MultiFeatureError as p,isMultipleChoiceFieldInput as m,FormValidationWarning as h,isGroupInput as g}from"./inputs/support/inputUtils.js";import{getIntlOptionsForField as _}from"../support/dateUtils.js";import{isEmptyValue as v,InputValidationError as y,getRangeErrorMessage as b,shouldUseScientificNotation as x,scientificNumberFormatOptions as S,numberFormatOptions as C,ContingentValuesValidationError as w}from"../support/forms/formUtils.js";const T=(e,t)=>e!=null&&e.input?.type===t;function E(e){return new f({source:e})}function D(t,n,r,s){let{dataType:c,minLength:l}=t;if(!r||!n)return null;let{validationErrors:u}=r;if(n===p.DIFFERENT_ERRORS)return u.invalidBatchFormType;if(n===y.CANNOT_BE_EMPTY)return u.cannotBeNull;if(n===i.VALUE_OUT_OF_RANGE||n===a.OUT_OF_RANGE){let{field:n,range:r}=t,i={type:`date`,intlOptions:{timeZone:n.type===`date`&&s?s:void 0,..._(n)}},a=b(r,u);return e(a,r,{format:{max:c===`date`?i:r.max!=null&&x(r.max)?S:C,min:c===`date`?i:r.min!=null&&x(r.min)?S:C}})}if(n===i.INVALID_CODED_VALUE)return u.invalidCodedValue;if(n===o.INVALID_TYPE)return u.invalidType;if(n===y.TOO_SHORT)return e(u.tooShort,{min:l});if(m(t)){if(n===y.TOO_FEW_SELECTED_CHOICES)return e(u.tooFewSelectedChoices,{min:t.input.minimumChoices||1});if(n===y.TOO_MANY_SELECTED_CHOICES)return e(u.tooManySelectedChoices,{max:t.input.maximumChoices})}return n===y.TOO_LONG?null:n===w.CONTINGENCY_VIOLATION_WARNING||n===w.CONTINGENCY_VIOLATION_ERROR?u.valuesIncompatible:n===h.OUT_OF_SUBTYPE_DOMAIN?r.subtypes.fieldOutOfSubtypeDomainWarning:null}function O(e,t,n){let r=n?.validationErrors;if(!r)return null;let i=null;for(let n of e.invalidHiddenInputs)switch(n.effectiveVisibilityCode){case`hidden:visibility-expression:all-features`:case`hidden:group-visibility-expression:all-features`:case`hidden:field-definition`:return t===`single`?r.nonVisibleError_changeValues:r.nonVisibleError_checkIndividualFeatures;case`hidden:no-domain-in-common`:case`hidden:visibility-expression:some-features`:case`hidden:group-visibility-expression:some-features`:case`hidden:not-in-all-layers`:i=r.nonVisibleError_checkIndividualFeatures;break;case`visible`:continue;default:n.effectiveVisibilityCode}return i}function k(e){return typeof e==`object`&&!!e&&`type`in e&&(e.type===`feature`||e.type===`geojson`||e.type===`knowledge-graph-sublayer`||e.type===`oriented-imagery`||e.type===`scene`||e.type===`subtype-sublayer`)}function A(e){return k(e)?!0:!!(typeof e==`object`&&e&&`type`in e&&e.type&&`id`in e&&e.id&&`fields`in e&&e.fields&&`fieldsIndex`in e&&e.fieldsIndex&&`objectIdField`in e&&e.objectIdField&&`capabilities`in e&&`getField`in e&&e.getField)}function j(e){return A(e)&&`queryAttachments`in e}function M(e){return typeof e==`object`&&!!e&&`type`in e&&(e.type===`feature`||e.type===`subtype-sublayer`)}function N(e){return j(e)?!!(e?.effectiveCapabilities??e?.capabilities)?.data?.supportsAttachment:!1}async function P(e,t,i,a){let o=new Set,c=!1;for(let e of i){if(e.input?.type===`attachment`&&(e.input.attachmentAssociationType===`any`||e.input.attachmentAssociationType===`exactOrNone`)){c=!0;break}if(!v(e.attachmentKeyword))o.add(e.attachmentKeyword);else{c=!0;break}}let u=o.size&&!c?Array.from(o):void 0,d=new l({objectIds:[t],returnMetadata:!0,keywords:u}),f=s(e)?e.parent:e;r(f)&&f.historicMoment&&(d.historicMoment=f.historicMoment);let p=await e.queryAttachments(d,{signal:a});return n(a),p[t]??[]}function F(e,n,r){let i=c(e),a=i?.find(e=>e.code===r);if(!a)return!1;let o=i?.find(e=>e.code===n);return!t(a.defaultValues,o?.defaultValues)&&Object.values(a.defaultValues).some(e=>e!=null)}function I(e){return e.reduce((e,t)=>g(t)?[...e,...t.inputs]:[...e,t],[])}function L(e){return s(e)&&e.parent&&(e=e.parent),e&&`datesInUnknownTimezone`in e&&e.datesInUnknownTimezone?u:e&&`preferredTimeZone`in e&&e.preferredTimeZone?e.preferredTimeZone:null}function R(e,t){return!e&&!t?`system`:t===u?d:e&&e!==u?e:t??`system`}export{E as createReactiveGraphic,I as flattenInputs,R as getEffectiveTimeZone,O as getHiddenFieldsValidationErrorMessage,L as getLayerTimeZone,D as getMessageString,M as isAssociationsLayerUnion,A as isAttributeFormSupportedLayer,k as isAttributeFormSupportedLayerUnion,j as isAttributeFormSupportedLayerWithAttachments,T as isElementTemplateWithInputType,N as layerSupportsAttachments,P as queryAttachmentsForElements,F as subtypeChangeShouldPrompt};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{isNumericField as e,isStringField as t,isTimeOnlyField as n}from"../../../../layers/support/fieldUtils.js";import{isAnyDateField as
|
|
2
|
+
import{isNumericField as e,isStringField as t,isTimeOnlyField as n,isGuidField as r}from"../../../../layers/support/fieldUtils.js";import{isAnyDateField as i}from"../../../../smartMapping/support/utils.js";import{ContingentValuesValidationError as a}from"../../../support/forms/formUtils.js";const o=`esri_BatchAttributeForm_different_values`,s={DIFFERENT_ERRORS:`batch-attribute-form-validation::features-have-different-errors`},c={OUT_OF_SUBTYPE_DOMAIN:`batch-attribute-form-validation::out-of-subtype-domain`};function l(e){return e===`visible`}function u(e){return e===c.OUT_OF_SUBTYPE_DOMAIN}function d(e){return e.type===`field`}function f(e){return d(e)&&e.input?.type===`multiple-choice`}function p(e){return e.type===`group`}function m(e){return e.type===`relationship`}function h(e){return e.type===`text`}function g(e){return e.type===`attachment`}function _(e){return d(e)||g(e)||m(e)||b(e)}function v(e){return d(e)||g(e)||m(e)||b(e)||h(e)}function y(e){return v(e)&&e.group!=null}function b(e){return e.type===`utilityNetworkAssociations`}function x(e){let t=`${e.elementId}:${e.executorPurpose}`;return e.textExpressionIndex==null?t:`${t}:${e.textExpressionIndex}`}const S=e=>e!=null&&(C(e,`combo-box`)||C(e,`dynamic-choice`)||C(e,`radio-buttons`));function C(e,t){return e?.type===t}function w(e,t,n=[]){for(let r of e)t(r)?n.push(r):p(r)&&w(r.inputs,t,n);return n}function T(e,t){return e.layers[0]?.getField(t)?.name??t}function E(a){return e(a)?`number`:t(a)?`text`:i(a)||n(a)?`date`:r(a)?`guid`:`unsupported`}function D(e){return e===a.CONTINGENCY_VIOLATION_ERROR||e===a.CONTINGENCY_VIOLATION_WARNING}export{c as FormValidationWarning,s as MultiFeatureError,w as deepFilterInputs,o as differentValuesString,E as getFieldInputDataType,T as getNormalizedFieldName,g as isAttachmentElementInput,D as isContingentValuesError,_ as isEditableInput,d as isFieldInput,S as isFieldInputWithShowNoValueOptionInput,p as isGroupInput,v as isGroupableInput,y as isGroupedInput,C as isInputWithInputType,f as isMultipleChoiceFieldInput,m as isRelationshipElementInput,h as isTextElementInput,b as isUtilityNetworkAssociationsElementInput,u as isWarning,x as makeUseId,l as visibilityCodeToBoolean};
|