@arcgis/core 4.28.0-next.20230708 → 4.28.0-next.20230711
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{9e5f59a8e8f12cd9e5e0.js → 8faf88599f86ee276185.js} +1 -1
- package/assets/esri/core/workers/chunks/ddea45acae89759e57fa.js +1 -0
- package/assets/esri/core/workers/chunks/{2c2cab197c47f080772a.js → f5f0a5318337439d464e.js} +1 -1
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +0 -12
- package/assets/esri/themes/base/widgets/_Weather.scss +4 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/Button.js +1 -1
- package/chunks/LineSeries.js +5 -0
- package/chunks/Responsive.js +5 -0
- package/chunks/Theme.js +1 -1
- package/chunks/Tick.js +1 -1
- package/chunks/ar.js +1 -1
- package/chunks/ar2.js +1 -1
- package/chunks/bg_BG.js +1 -1
- package/chunks/bg_BG2.js +1 -1
- package/chunks/bs_BA.js +1 -1
- package/chunks/bs_BA2.js +1 -1
- package/chunks/ca_ES.js +1 -1
- package/chunks/ca_ES2.js +1 -1
- package/chunks/chartUtilsAm5.js +5 -0
- package/chunks/cs_CZ.js +1 -1
- package/chunks/cs_CZ2.js +1 -1
- package/chunks/da_DK.js +1 -1
- package/chunks/da_DK2.js +1 -1
- package/chunks/de_CH.js +1 -1
- package/chunks/de_CH2.js +1 -1
- package/chunks/de_DE.js +1 -1
- package/chunks/de_DE2.js +1 -1
- package/chunks/el_GR.js +1 -1
- package/chunks/el_GR2.js +1 -1
- package/chunks/en_CA.js +1 -1
- package/chunks/en_CA2.js +1 -1
- package/chunks/en_US.js +1 -1
- package/chunks/en_US2.js +1 -1
- package/chunks/es_ES.js +1 -1
- package/chunks/es_ES2.js +1 -1
- package/chunks/et_EE.js +1 -1
- package/chunks/et_EE2.js +1 -1
- package/chunks/fi_FI.js +1 -1
- package/chunks/fi_FI2.js +1 -1
- package/chunks/fr_FR.js +1 -1
- package/chunks/fr_FR2.js +1 -1
- package/chunks/he_IL.js +1 -1
- package/chunks/he_IL2.js +1 -1
- package/chunks/hr_HR.js +1 -1
- package/chunks/hr_HR2.js +1 -1
- package/chunks/hu_HU.js +1 -1
- package/chunks/hu_HU2.js +1 -1
- package/chunks/id_ID.js +1 -1
- package/chunks/id_ID2.js +1 -1
- package/chunks/it_IT.js +1 -1
- package/chunks/it_IT2.js +1 -1
- package/chunks/ja_JP.js +1 -1
- package/chunks/ja_JP2.js +1 -1
- package/chunks/ko_KR.js +1 -1
- package/chunks/ko_KR2.js +1 -1
- package/chunks/lt_LT.js +1 -1
- package/chunks/lt_LT2.js +1 -1
- package/chunks/lv_LV.js +1 -1
- package/chunks/lv_LV2.js +1 -1
- package/chunks/nb_NO.js +1 -1
- package/chunks/nb_NO2.js +1 -1
- package/chunks/nl_NL.js +1 -1
- package/chunks/nl_NL2.js +1 -1
- package/chunks/pl_PL.js +1 -1
- package/chunks/pl_PL2.js +1 -1
- package/chunks/pt_BR.js +1 -1
- package/chunks/pt_BR2.js +1 -1
- package/chunks/pt_PT.js +1 -1
- package/chunks/pt_PT2.js +1 -1
- package/chunks/ro_RO.js +1 -1
- package/chunks/ro_RO2.js +1 -1
- package/chunks/ru_RU.js +1 -1
- package/chunks/ru_RU2.js +1 -1
- package/chunks/sk_SK.js +1 -1
- package/chunks/sk_SK2.js +1 -1
- package/chunks/sl_SL.js +1 -1
- package/chunks/sl_SL2.js +1 -1
- package/chunks/sr_RS.js +1 -1
- package/chunks/sr_RS2.js +1 -1
- package/chunks/sv_SE.js +1 -1
- package/chunks/sv_SE2.js +1 -1
- package/chunks/th_TH.js +1 -1
- package/chunks/th_TH2.js +1 -1
- package/chunks/tr_TR.js +1 -1
- package/chunks/tr_TR2.js +1 -1
- package/chunks/uk_UA.js +1 -1
- package/chunks/uk_UA2.js +1 -1
- package/chunks/vi_VN.js +1 -1
- package/chunks/vi_VN2.js +1 -1
- package/chunks/zh_Hans.js +1 -1
- package/chunks/zh_Hans2.js +1 -1
- package/chunks/zh_Hant.js +1 -1
- package/chunks/zh_Hant2.js +1 -1
- package/interfaces.d.ts +12 -0
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/knowledgeGraph/SessionMemoryStorage.js +1 -1
- package/networks/Network.js +1 -1
- package/networks/UtilityNetwork.js +1 -1
- package/package.json +1 -1
- package/rest/networks/queryAssociations.js +1 -1
- package/rest/networks/queryNamedTraceConfigurations.js +1 -1
- package/rest/networks/support/QueryAssociationsParameters.js +1 -1
- package/rest/networks/support/QueryNamedTraceConfigurationsParameters.js +1 -1
- package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
- package/rest/networks/synthesizeAssociationGeometries.js +1 -1
- package/rest/support/meshFeatureSet.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/3d/environment/CloudsData.js +1 -1
- package/views/3d/environment/CloudsGenerator.js +1 -1
- package/views/3d/environment/CloudsParameters.js +5 -0
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/weather.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +9 -9
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/widgets/Editor/Edits.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/components/LegendItem.js +1 -1
- package/widgets/ElevationProfile/css.js +1 -1
- package/widgets/ElevationProfile/support/chartUtils.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Feature/FeatureMedia/chartCommon.js +1 -1
- package/widgets/Feature/FeatureMedia/pieChart.js +1 -1
- package/widgets/Feature/FeatureMedia/xyChart.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather/css.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/support/chartUtils.js +1 -1
- package/widgets/support/chartUtilsAm5.js +1 -1
- package/assets/esri/core/workers/chunks/0f57b8d4fa3afb296392.js +0 -1
- package/views/3d/environment/CloudsCompositionParameters.js +0 -5
- package/views/3d/environment/weatherUtils.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{lerp as s}from"../../../core/mathUtils.js";import{releaseMaybe as i,disposeMaybe as r,destroyMaybe as a}from"../../../core/maybe.js";import{watch as o,initial as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as u}from"../../../core/accessorSupport/decorators/subclass.js";import{f as l}from"../../../chunks/mat3.js";import{v as d}from"../../../chunks/mat4.js";import{c}from"../../../chunks/mat4f64.js";import{s as m,o as p,j as _}from"../../../chunks/vec2.js";import{a as f}from"../../../chunks/vec2f64.js";import{f as g,z as w}from"../../../chunks/vec3f32.js";import{getReferenceEllipsoid as
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{lerp as s}from"../../../core/mathUtils.js";import{releaseMaybe as i,disposeMaybe as r,destroyMaybe as a}from"../../../core/maybe.js";import{watch as o,initial as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as u}from"../../../core/accessorSupport/decorators/subclass.js";import{f as l}from"../../../chunks/mat3.js";import{v as d}from"../../../chunks/mat4.js";import{c}from"../../../chunks/mat4f64.js";import{s as m,o as p,j as _}from"../../../chunks/vec2.js";import{a as f}from"../../../chunks/vec2f64.js";import{f as g,z as w}from"../../../chunks/vec3f32.js";import{getReferenceEllipsoid as T}from"../../../geometry/ellipsoidUtils.js";import{C as x,a as v}from"../../../chunks/Clouds.glsl.js";import{CloudsTextureChannels as y,CloudsRenderingStages as C}from"./CloudsData.js";import{FadeMode as b}from"./CloudsParameters.js";import{cloudPresets as P}from"./CloudsPresets.js";import{CloudsTechnique as S}from"./CloudsTechnique.js";import{CloudsTechniqueConfiguration as j,RayMarchingSteps as I}from"./CloudsTechniqueConfiguration.js";import{NoiseTextureAtlas as E}from"./NoiseTextureAtlas.js";import{BindParameters as M}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as D}from"../webgl-engine/lib/glUtil3D.js";import{TaskPriority as z,Task as U}from"../../support/Scheduler.js";import{TextureType as q,TextureWrapMode as F}from"../../webgl/enums.js";import{FramebufferObject as R}from"../../webgl/FramebufferObject.js";import{TextureDescriptor as A}from"../../webgl/TextureDescriptor.js";let B=class extends t{constructor(e){super(e),this._techniques=new Array,this._techniqueConfiguration=new j,this._bindParameters=new M(null,null,null),this._passParameters=new x,this._drawParameters=new v,this._weatherTile=f(),this._weatherTileCount=128,this._faceIndex=0,this._tileIndex=0,this.coverage=s(P.default.coverage[0],P.default.coverage[1],.5),this.density=s(P.default.density[0],P.default.density[1],.5),this.absorption=s(P.default.absorption[0],P.default.absorption[1],.5),this.cloudSize=s(P.default.cloudSize[0],P.default.cloudSize[1],.5),this.detailSize=s(P.default.detailSize[0],P.default.detailSize[1],.5),this.smoothness=s(P.default.smoothness[0],P.default.smoothness[1],.5),this.cloudHeight=s(P.default.cloudHeight[0],P.default.cloudHeight[1],.5),this.raymarchingSteps=P.default.raymarchingSteps,this._viewMatrix=c(),this._dirty=!1,this.running=!1,this._vao=D(e.context.renderContext.rctx)}_getTechnique(e){const t=1-this.context.renderContext.bindParameters.cloudsFade.readChannels,s=t===y.RG?2*e:2*e+1,i=this._techniques[s];return i||(this._techniqueConfiguration.writeTextureChannels=t,this._techniqueConfiguration.steps=e,this._techniques[s]=new S({rctx:this.context.renderContext.rctx,viewingMode:this.view.state.viewingMode},this._techniqueConfiguration),this._techniques[s])}updateWeatherTile(){const e=this.view.camera.position.latitude,t=this.view.camera.position.longitude;if(null==e||null==t)return;m(this._weatherTile,(e+90)/180,(t+180)/360);const s=Math.floor(this._weatherTileCount*Math.abs(2*this._weatherTile[0]-1));this._weatherTile[0]=Math.floor(2*this._weatherTileCount*this._weatherTile[0]),this._weatherTile[1]=Math.floor(4*(this._weatherTileCount-s)*this._weatherTile[1]);let i=0,r=0;if(null!=this.view.environment&&"virtual"!==this.view.environment.lighting.type&&null!=this.view.environment.lighting.date){const e=new Date(this.view.environment.lighting.date);e.setUTCHours(this.view.environment.lighting.date.getUTCHours()+(this.view.environment.lighting.displayUTCOffset??0)),i=31*e.getUTCMonth()+e.getUTCDate(),r=e.getUTCFullYear()}this._weatherTile[0]=(this._weatherTile[0]+i)%(2*this._weatherTileCount),this._weatherTile[1]=(this._weatherTile[1]+r%100)%(4*this._weatherTileCount),p(this._passParameters.weatherTile,this._weatherTile)||this.setDirty()}initialize(){const e=T(this.view.spatialReference);this._passParameters.cloudRadius=.5*e.radius,this.setDirty(),this.updateWeatherTile(),this.addHandles([this.view.resourceController.scheduler.registerTask(z.CLOUDS_GENERATOR,this),o((()=>[this.coverage,this.density,this.absorption,this.cloudSize,this.detailSize,this.smoothness,this.cloudHeight,this.raymarchingSteps]),(()=>this.setDirty()),n)])}destroy(){this._techniques.forEach((e=>i(e))),this._frameBufferCube=r(this._frameBufferCube),this._techniques.length=0,this._vao.dispose(),this._passParameters.noiseTexture=a(this._passParameters.noiseTexture)}get _tilesPerFace(){switch(this._techniqueConfiguration.steps){case I.SIXTEEN:return 1;case I.HUNDRED:return 4;case I.COUNT:case I.TWOHUNDRED:return 8}}get usedMemory(){return(this._frameBufferCube?.gpuMemoryUsage??0)+(this._passParameters.noiseTexture?.textureAtlas?.gpuMemoryUsage??0)}_ensureNoiseTexture(){if(null!=this._passParameters.noiseTexture)this._passParameters.noiseTexture.updateWeatherMap(this._passParameters.weatherTile);else{const e=this.context;this._passParameters.noiseTexture=new E({context:e}),this._passParameters.noiseTexture.updateWeatherMap(this._passParameters.weatherTile)}return null!=this._passParameters.noiseTexture.textureAtlas}_ensureFrameBufferCube(e){if(null==this._frameBufferCube){const t=new A(e);t.target=q.TEXTURE_CUBE_MAP,t.wrapMode=F.CLAMP_TO_EDGE,this._frameBufferCube=new R(this.context.renderContext.rctx,t)}return this._frameBufferCube}get cubeMap(){return this._frameBufferCube}destroyFrameBufferCube(){this._frameBufferCube=r(this._frameBufferCube)}applyPreset(e,t){const i=e.median,r=e=>{const r=s(e[0],e[1],i);return t<.5?s(e[0],r,2*t):s(r,e[1],2*(t-.5))};this.coverage=r(e.coverage),this.density=r(e.density),this.absorption=r(e.absorption),this.cloudSize=r(e.cloudSize),this.detailSize=r(e.detailSize),this.smoothness=r(e.smoothness),this.cloudHeight=r(e.cloudHeight),this.raymarchingSteps=e.raymarchingSteps}setDirty(){this._dirty=this.running=!0}runTask(e){0===this._faceIndex&&0===this._tileIndex&&(this._passParameters.raymarchingSteps=this.raymarchingSteps,this.updateWeatherTile(),_(this._passParameters.weatherTile,this._weatherTile));const t=this._getTechnique(this._passParameters.raymarchingSteps);if(!t.compiled)return U.YIELD;if(this.context.renderContext.bindParameters.cloudsFade.fadeMode===b.CROSS_FADE||!this._ensureNoiseTexture())return U.YIELD;0===this._faceIndex&&0===this._tileIndex&&(this.context.renderContext.bindParameters.cloudsFade.renderingStage=C.RENDERING,this._passParameters.absorption=this.absorption,this._passParameters.density=this.density,this._passParameters.cloudSize=this.cloudSize,this._passParameters.detailSize=this.detailSize,this._passParameters.smoothness=this.smoothness,this._passParameters.cloudHeight=this.cloudHeight,this._passParameters.coverage=this.coverage,this._dirty=!1);const s=this.context.renderContext.rctx,i=s.bindTechnique(t,this._passParameters,this._bindParameters);s.bindVAO(this._vao),i.assertCompatibleVertexAttributeLocations(this._vao);const r=s.getViewport(),a=t.configuration.cubeMapSize,o=a/this._tilesPerFace,n=this._tileIndex*o;s.setViewport(0,n,a,o);const h=this._ensureFrameBufferCube(a);s.bindFramebuffer(h);const u=H[this._faceIndex],c=O[this._faceIndex];d(this._viewMatrix,N,u,c),l(this._drawParameters.viewMatrix,this._viewMatrix);const m=q.TEXTURE_CUBE_MAP_POSITIVE_X+this._faceIndex;return h.setColorTextureTarget(m),i.bindDraw(this._drawParameters,this._bindParameters,this._passParameters),s.gl.drawArrays(s.gl.TRIANGLE_STRIP,0,4),s.gl.flush(),s.setViewport(r.x,r.y,r.width,r.height),this.requestRender(),++this._tileIndex,4===this._faceIndex&&this._tileIndex===this._tilesPerFace?(this.running=this._dirty,this._faceIndex=0,this._tileIndex=0,this.running||(this.context.renderContext.bindParameters.cloudsFade.renderingStage=C.FADING)):this._tileIndex===this._tilesPerFace&&(++this._faceIndex,this._tileIndex=0),e.madeProgress(),U.YIELD}};e([h({constructOnly:!0})],B.prototype,"context",void 0),e([h({constructOnly:!0})],B.prototype,"view",void 0),e([h({constructOnly:!0})],B.prototype,"requestRender",void 0),e([h()],B.prototype,"coverage",void 0),e([h()],B.prototype,"density",void 0),e([h()],B.prototype,"absorption",void 0),e([h()],B.prototype,"cloudSize",void 0),e([h()],B.prototype,"detailSize",void 0),e([h()],B.prototype,"smoothness",void 0),e([h()],B.prototype,"cloudHeight",void 0),e([h()],B.prototype,"raymarchingSteps",void 0),e([h()],B.prototype,"running",void 0),B=e([u("esri.views.3d.environment.CloudsGenerator")],B);const H=[g(1,0,0),g(-1,0,0),g(0,1,0),g(0,-1,0),g(0,0,1)],O=[g(0,1,0),g(0,1,0),g(0,0,-1),g(0,0,1),g(0,1,0)],N=w();export{B as CloudsGenerator};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{clamp as t}from"../../../core/mathUtils.js";import{e as a}from"../../../chunks/mat4.js";import{I as i,c as s}from"../../../chunks/mat4f64.js";import{l as e,n as o,g as r,b as h,c as n}from"../../../chunks/vec3.js";import{c as d,f as c}from"../../../chunks/vec3f64.js";import{create as F,fromPoints as p,axis as f}from"../../../geometry/support/axisAngleDegrees.js";import{earth as l}from"../../../geometry/support/Ellipsoid.js";import{CloudsTextureChannels as u,CloudsRenderingStages as _,ensureClouds as D}from"./CloudsData.js";import{weatherHeightLimit as E}from"./weather.js";import{RenderState as m}from"../../support/RenderState.js";class A{constructor(){this.readChannels=u.RG,this.renderingStage=_.FINISHED,this.startTime=0,this.startTimeHeightFade=0,this.cameraPositionLastFrame=d(),this.parallax=new C,this.parallaxNew=new C,this.pointOnGround=d(),this.fadeMode=O.HIDE,this.fadeFactor=0,this.opacity=0}updateParallax(t){const s=this.parallax,o=e(t.eye);if(s.radiusCurvatureCorrectionFactor=.84*Math.sqrt(Math.max(o*o-l.radius*l.radius,0))/o,p(S,s.anchorPointClouds,g),a(s.transform,i,g[3],f(g)),this.fadeMode===O.CROSS_FADE){const t=this.parallaxNew;p(S,t.anchorPointClouds,g),a(t.transform,i,g[3],f(g))}}updateFading(t,a,i,s){this.isFading&&this._advanceFading(i,s),this._evaluateFading(t,a,i)}_evaluateFading(t,a,i){const s=t.relativeElevation,e=this._calculateDistanceToAnchorPoint(t);if((s>1.7*E||s<-E||e>v)&&this.opacity>0)this._setFade(O.HIDE,i);else if(!this.isFading)if((s>E||s<-.35*E||e>M)&&this.opacity>0)this._setFade(O.FADE_OUT,i);else if(s<=E&&s>=-.35*E&&a===m.IDLE&&D(this.data)){if(0===this.opacity)return void this._setFade(O.FADE_IN,i);(e>y||this.renderingStage===_.FADING)&&this._setFade(O.CROSS_FADE,i)}}_advanceFading(t,a){this._switchReadChannels(),this._updateAnchorPoint(),this._advanceFadingFactorAndOpacity(t,a)}_advanceFadingFactorAndOpacity(a,i){if(this.fadeFactor<1)return this.fadeFactor=i?t((a-this.startTime)/(I*i),0,1):1,this.fadeMode===O.FADE_OUT&&(this.opacity=1-this.fadeFactor),this.fadeMode===O.FADE_IN&&(this.opacity=this.fadeFactor),void(this.fadeMode===O.CROSS_FADE&&(this.opacity=1));this.fadeFactor=0,this.fadeMode===O.FADE_OUT&&(this.opacity=0),this.fadeMode===O.FADE_IN&&(this.opacity=1),this.fadeMode===O.CROSS_FADE&&(this.opacity=1),this.fadeMode=O.NONE}_switchReadChannels(){const t=this.fadeMode===O.CROSS_FADE&&1===this.fadeFactor,a=this.fadeMode===O.FADE_IN&&0===this.fadeFactor;this.renderingStage===_.FADING&&(t||a)&&(this.readChannels=1-this.readChannels,this.renderingStage=_.FINISHED)}_calculateDistanceToAnchorPoint(t){return o(this.pointOnGround,t.eye),r(this.pointOnGround,this.pointOnGround,l.radius),e(h(N,this.parallax.anchorPointClouds,this.pointOnGround))}_updateAnchorPoint(){this.fadeMode===O.CROSS_FADE&&(0===this.fadeFactor&&n(this.parallaxNew.anchorPointClouds,this.pointOnGround),1===this.fadeFactor&&n(this.parallax.anchorPointClouds,this.parallaxNew.anchorPointClouds)),this.fadeMode===O.FADE_IN&&0===this.fadeFactor&&n(this.parallax.anchorPointClouds,this.pointOnGround)}_setFade(t,a){switch(t){case O.HIDE:this.opacity=0;break;case O.FADE_OUT:this.opacity=1;break;case O.FADE_IN:this.opacity=0;break;case O.CROSS_FADE:this.opacity=1}this.fadeMode=t,this.fadeFactor=0,this.startTime=a}get isFading(){return this.fadeMode===O.FADE_OUT||this.fadeMode===O.FADE_IN||this.fadeMode===O.CROSS_FADE}}var O;!function(t){t[t.NONE=0]="NONE",t[t.HIDE=1]="HIDE",t[t.FADE_OUT=2]="FADE_OUT",t[t.FADE_IN=3]="FADE_IN",t[t.CROSS_FADE=4]="CROSS_FADE"}(O||(O={}));class C{constructor(){this.anchorPointClouds=d(),this.radiusCurvatureCorrectionFactor=0,this.transform=s()}}const S=c(0,0,1),g=F(),N=d(),I=1.25,y=34e3,M=64e3,v=2e5;export{A as CloudsParameters,O as FadeMode,y as crossFadeDistanceThreshold,M as fadeOutDistanceThreshold,v as hideDistanceThreshold};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{lerp as s}from"../../../core/mathUtils.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{watch as i,syncAndInitial as a,initial as o,sync as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{l as d,c as p,h as u}from"../../../chunks/vec3.js";import{f as m}from"../../../chunks/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{isMoon as _,isEarth as g,isMars as f}from"../../../geometry/support/spatialReferenceUtils.js";import{ViewingMode as w}from"../../ViewingMode.js";import{AtmosphereType as y}from"./AtmosphereType.js";import{ChapmanAtmosphere as v}from"./ChapmanAtmosphere.js";import{CloudsComposition as P}from"./CloudsComposition.js";import{FadeInStages as b,FadeInOutStages as R}from"./CloudsCompositionParameters.js";import{isReadyCloudsData as x,CloudsRenderingStages as A}from"./CloudsData.js";import{CloudsGenerator as N}from"./CloudsGenerator.js";import{cloudPresets as C}from"./CloudsPresets.js";import{Fog as W,FogParameters as j}from"./Fog.js";import{LocalAtmosphere as E}from"./LocalAtmosphere.js";import F from"./MarsAtmosphere.js";import{Precipitation as O}from"./Precipitation.js";import{Stars as S}from"./Stars.js";import{weatherHeightLimit as M}from"./weather.js";import{updateWeatherFading as T,weatherFadingNeedsRender as z}from"./weatherUtils.js";import{ShaderOutput as I}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{RenderSlot as L}from"../webgl-engine/lib/RenderSlot.js";import{Update as U}from"../webgl-engine/lib/Update.js";var V;let k=V=class extends t{constructor(e){super(e),this.renderSlots=[L.POSTPROCESSING_ENVIRONMENT_OPAQUE,L.POSTPROCESSING_ENVIRONMENT_TRANSPARENT],this._context=null,this._atmosphere=null,this._oldWeatherParameters=new q,this._newWeatherParameters=new q,this._fadedWeatherParameters=new q,this._weatherParameters=this._newWeatherParameters}initialize(){this.view._stage.addRenderPlugin(this)}destroy(){this.removeHandles(),this.uninitializeRenderContext(),null!=this.view?._stage&&this.view._stage.removeRenderPlugin(this),this._set("view",null)}get atmosphere(){return this._atmosphere}get _atmosphereType(){return null!=this.atmosphere?this.atmosphere.type:y.None}get canRender(){return!(null===this._atmosphere&&null===this._stars)}get needsLinearDepth(){return this._atmosphereType===y.Realistic}updateAnimation(e){return null!=this._precipitation&&this._precipitation.update(e)}get updating(){return null!=this._stars&&this._stars.updating||null!=this._clouds&&this._clouds.running}get weatherVisible(){return d(this.view.state.camera.eye)-c(this.view.spatialReference).radius<=M}get usedMemory(){return this._clouds?.usedMemory??0}get _stars(){const e=this.view,t=e.environment?.starsEnabled??!1,s=this._get("_stars");return t&&null!=this._context?null!=s?s:new S({view:e,requestRender:()=>this._setNeedsRender()}):(r(s),null)}get _precipitation(){const e=this._get("_precipitation");if(!this._precipitationEnabled||null==this._context)return r(e),null;const t=this.view,s=this._context;return null!=e&&e.context===s?e:(r(e),new O({context:s,view:t}))}get _clouds(){const e=this._get("_clouds");if(!this.weatherEnabled||null==this._context)return r(e),null;if(null!=e)return e;const t=this.view,s=this._context;return r(e),new N({context:s,view:t,requestRender:()=>this._setNeedsRender()})}get _cloudsComposition(){const e=this._get("_cloudsComposition");if(!this.weatherEnabled||null==this._context)return r(e),null;const t=this.view.state.viewingMode,s=this._context.renderContext.rctx,i=c(this.view.spatialReference).radius;return null!=e&&e.viewingMode===t&&e.planetRadius===i?e:(r(e),new P({rctx:s,viewingMode:t,planetRadius:i,requestRender:()=>this._setNeedsRender()}))}get _fog(){const e=this._get("_fog");if(!this.weatherEnabled||null==this._context)return r(e),null;if(null!=e)return e;const t=this.view,s=this._context,i=this._context.renderContext.rctx,a=this.view.state.viewingMode;return new W({context:s,view:t,rctx:i,viewingMode:a})}get weatherEnabled(){return!!this.view?.environmentManager?.weatherEnabled}get _precipitationEnabled(){return this.weatherEnabled&&("rainy"===this.view.environment.weather.type||"snowy"===this.view.environment.weather.type)}initializeRenderContext(e=null){this._context=e;const t=()=>this._setNeedsRender();this.addHandles([i((()=>({viewingMode:this.view.state.viewingMode,enabled:this.view.environment.atmosphereEnabled})),(e=>this._updateAtmosphere(e)),a),i((()=>this._stars),t),i((()=>this._precipitation),t),i((()=>this._clouds),(()=>this._updateWeather()),o),i((()=>this._fog),(()=>this._updateFogHaze()),o),i((()=>this.view.state.mode),(()=>{this._setNeedsRender()}),n),i((()=>this._weatherUpdateParameters),(()=>{this._updateWeather(),this._updateFogHaze()}),a)])}uninitializeRenderContext(){this._context=null,this._atmosphere=r(this._atmosphere),this._set("_stars",r(this._stars)),this._set("_precipitation",r(this._precipitation)),this._set("_clouds",r(this._clouds)),this._set("_cloudsComposition",r(this._cloudsComposition)),this._set("_fog",r(this._fog))}prepareRender(e){e.bindParameters.cloudsFade.data=x(this._clouds)?this._clouds:null,"local"!==this.view.viewingMode&&null!=e.bindParameters.cloudsFade.data?.cubeMap&&(T(e.bindParameters.cloudsFade,e.bindParameters.camera,this.view.state.mode,e.time,this.view.qualitySettings.fadeDuration),this._updateWeatherFading(e.bindParameters),e.bindParameters.cloudsFade.renderingStage===A.FINISHED&&null!=this._clouds&&0===this._clouds.coverage&&!1===this._clouds.running&&(this._clouds.destroyFrameBufferCube(),e.bindParameters.cloudsFade.data=null))}render(e){if(e.output===I.Color)switch(e.bindParameters.slot){case L.POSTPROCESSING_ENVIRONMENT_OPAQUE:null!=this._stars&&this._stars.render(e),null!=this.atmosphere&&(this.atmosphere.render(e,this.view?._stage?.renderer?.fullResolutionAtmosphere),null!=this._cloudsComposition&&null!=e.bindParameters.cloudsFade.data&&(this.weatherVisible&&null!=this._clouds&&this._clouds.updateWeatherTile(),this._cloudsComposition.render(e)),z(e.bindParameters.cloudsFade)&&null!=this._context&&null!=e.bindParameters.cloudsFade.data?.cubeMap&&this._context.requestRender());break;case L.POSTPROCESSING_ENVIRONMENT_TRANSPARENT:if(null!=this.atmosphere&&(this.atmosphere.renderHaze(e,this._weatherParameters.hazeAmount,this.view?._stage?.renderer?.fullResolutionAtmosphere),this._weatherParameters.fog.amount>0&&null!=this._fog&&this._fog.render(e,this._weatherParameters.fog),null!=this._precipitation)){const t=this.view.environment.weather;"rainy"!==t.type&&"snowy"!==t.type||this._precipitation.render(e,t.precipitation,t.type)}}}updateLightSources(e,t,s,r){if(null!=this._context){const i=this._context.renderContext;i.bindParameters.oldLighting.copyFrom(i.bindParameters.lighting),i.bindParameters.newLighting.noonFactor=t,i.bindParameters.newLighting.globalFactor=s,i.bindParameters.newLighting.set(e);r===U.Faded||i.bindParameters.weatherFading?i.bindParameters.fadeLighting(0):i.bindParameters.fadeLighting(1),this._context.requestRender()}}get _weatherUpdateParameters(){const e=this.weatherEnabled?this.view.environment.weather:null;return null==e?null:"rainy"===e.type||"snowy"===e.type?{type:e.type,weatherAdjustment:e.cloudCover,effect:e.precipitation}:{type:e.type,weatherAdjustment:"foggy"===e.type?e.fogStrength:e.cloudCover}}_updateWeatherFading(e){if(!e.weatherFading)return;const t=e.cloudsFade;return t.fadeIn.stage===b.FADE_IN?(e.fadeLighting(t.fadeIn.factor),void this._fadeWeather(t.fadeIn.factor)):t.fadeInOut.stage===R.FADE_IN?(e.fadeLighting(t.fadeInOut.factor),void this._fadeWeather(t.fadeInOut.factor)):t.crossFade.enabled?(e.fadeLighting(t.crossFade.factor),void this._fadeWeather(t.crossFade.factor)):(e.fadeLighting(0),void this._fadeWeather(0))}_fadeWeather(e){const{_newWeatherParameters:t,_oldWeatherParameters:s}=this;e>=1?this._weatherParameters=t:(this._fadedWeatherParameters.lerp(s,t,e),this._weatherParameters=this._fadedWeatherParameters)}_updateWeather(){const e=this._weatherUpdateParameters;null!=e&&null!=this._clouds&&(this._clouds.applyPreset(C[e.type],e.weatherAdjustment),this._setNeedsRender())}_setNeedsRender(){null!=this._context&&this._context.requestRender()}_updateFogHaze(){const e=this._weatherUpdateParameters;if(null==this._fog||null==e||null==this._context)return;const t=this._context.renderContext.bindParameters;switch(this._oldWeatherParameters.copyFrom(this._weatherParameters),e.type){case"foggy":this._newWeatherParameters.fog.strength=s(3e-5,.005,e.weatherAdjustment**3),p(this._newWeatherParameters.fog.color,H),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender();break;case"rainy":this._newWeatherParameters.fog.strength=s(4e-6,2e-4,(e.effect??0)**3),p(this._newWeatherParameters.fog.color,G),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=0,this._setNeedsRender();break;case"snowy":this._newWeatherParameters.fog.strength=s(4e-6,2e-4,(e.effect??0)**3),p(this._newWeatherParameters.fog.color,H),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender();break;default:this._newWeatherParameters.fog.strength=0,this._newWeatherParameters.fog.amount=0,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender()}t.weatherFading?this._fadeWeather(0):this._fadeWeather(1)}_updateAtmosphere(e){const t=this._selectAtmosphereType(e);if(t!==y.None&&this._context){if(!this._atmosphere||this._atmosphere.type!==t){this._atmosphere=r(this._atmosphere);const e=this._getAtmosphereClass(t);e&&(this._atmosphere=new e(this.view,this._context))}}else this._atmosphere=r(this._atmosphere);this._setNeedsRender()}_getAtmosphereClass(e){switch(e){case y.Realistic:return v;case y.Local:return E;case y.Mars:return F;default:case y.None:return null}}_selectAtmosphereType(e){const{enabled:t,viewingMode:s}=e;return!t||_(this.view.spatialReference)?y.None:s===w.Local?y.Local:null!=this._context&&v.isSupported(this._context)&&g(this.view.spatialReference)?y.Realistic:f(this.view.spatialReference)?y.Mars:y.None}get test(){return{atmosphere:this._atmosphere,clouds:this._clouds,selectAtmosphereType:()=>this._selectAtmosphereType({viewingMode:this.view.state.viewingMode,enabled:this.view.environment.atmosphereEnabled}),stubGetAtmosphereClass:e=>{D=V.prototype._getAtmosphereClass,V.prototype._getAtmosphereClass=e},restoreGetAtmosphereClass:()=>{V.prototype._getAtmosphereClass=D}}}};e([h({constructOnly:!0})],k.prototype,"view",void 0),e([h({readOnly:!0})],k.prototype,"atmosphere",null),e([h({readOnly:!0})],k.prototype,"_atmosphereType",null),e([h({type:Boolean,readOnly:!0})],k.prototype,"updating",null),e([h({readOnly:!0})],k.prototype,"weatherVisible",null),e([h()],k.prototype,"_context",void 0),e([h()],k.prototype,"_atmosphere",void 0),e([h({readOnly:!0})],k.prototype,"_stars",null),e([h({readOnly:!0})],k.prototype,"_precipitation",null),e([h({readOnly:!0})],k.prototype,"_clouds",null),e([h({readOnly:!0})],k.prototype,"_cloudsComposition",null),e([h({readOnly:!0})],k.prototype,"_fog",null),e([h({readOnly:!0})],k.prototype,"weatherEnabled",null),e([h({readOnly:!0})],k.prototype,"_precipitationEnabled",null),e([h({readOnly:!0})],k.prototype,"_weatherUpdateParameters",null),k=V=e([l("esri.views.3d.environment.EnvironmentRenderer")],k);class q{constructor(){this.fog=new j,this.hazeAmount=1}copyFrom(e){this.fog.amount=e.fog.amount,this.hazeAmount=e.hazeAmount,this.fog.strength=e.fog.strength,p(this.fog.color,e.fog.color)}lerp(e,t,r){this.fog.amount=s(e.fog.amount,t.fog.amount,r),this.hazeAmount=s(e.hazeAmount,t.hazeAmount,r),this.fog.strength=s(e.fog.strength,t.fog.strength,r),u(this.fog.color,e.fog.color,t.fog.color,r)}}const G=m(.5,.5,.5),H=m(1.5,1.5,1.5);let D;export{k as EnvironmentRenderer,q as WeatherParameters};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{lerp as s}from"../../../core/mathUtils.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{watch as i,syncAndInitial as a,initial as o,sync as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{l as d,c as p,h as u}from"../../../chunks/vec3.js";import{f as m}from"../../../chunks/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{isMoon as _,isEarth as g,isMars as w}from"../../../geometry/support/spatialReferenceUtils.js";import{ViewingMode as f}from"../../ViewingMode.js";import{AtmosphereType as y}from"./AtmosphereType.js";import{ChapmanAtmosphere as P}from"./ChapmanAtmosphere.js";import{CloudsComposition as v}from"./CloudsComposition.js";import{isReadyCloudsData as b,CloudsRenderingStages as R}from"./CloudsData.js";import{CloudsGenerator as A}from"./CloudsGenerator.js";import{FadeMode as x}from"./CloudsParameters.js";import{cloudPresets as F}from"./CloudsPresets.js";import{Fog as N,FogParameters as C}from"./Fog.js";import{LocalAtmosphere as E}from"./LocalAtmosphere.js";import j from"./MarsAtmosphere.js";import{Precipitation as W}from"./Precipitation.js";import{Stars as S}from"./Stars.js";import{weatherHeightLimit as O}from"./weather.js";import{ShaderOutput as M}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{RenderSlot as T}from"../webgl-engine/lib/RenderSlot.js";import{Update as z}from"../webgl-engine/lib/Update.js";var L;let U=L=class extends t{constructor(e){super(e),this.renderSlots=[T.POSTPROCESSING_ENVIRONMENT_OPAQUE,T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT],this._context=null,this._atmosphere=null,this._oldWeatherParameters=new I,this._newWeatherParameters=new I,this._fadedWeatherParameters=new I,this._weatherParameters=this._newWeatherParameters}initialize(){this.view._stage.addRenderPlugin(this)}destroy(){this.removeHandles(),this.uninitializeRenderContext(),null!=this.view?._stage&&this.view._stage.removeRenderPlugin(this),this._set("view",null)}get atmosphere(){return this._atmosphere}get _atmosphereType(){return null!=this.atmosphere?this.atmosphere.type:y.None}get canRender(){return!(null===this._atmosphere&&null===this._stars)}get needsLinearDepth(){return this._atmosphereType===y.Realistic}updateAnimation(e){return null!=this._precipitation&&this._precipitation.update(e)}get updating(){return null!=this._stars&&this._stars.updating||null!=this._clouds&&this._clouds.running}get weatherVisible(){return d(this.view.state.camera.eye)-c(this.view.spatialReference).radius<=O}get usedMemory(){return this._clouds?.usedMemory??0}get _stars(){const e=this.view,t=e.environment?.starsEnabled??!1,s=this._get("_stars");return t&&null!=this._context?null!=s?s:new S({view:e,requestRender:()=>this._setNeedsRender()}):(r(s),null)}get _precipitation(){const e=this._get("_precipitation");if(!this._precipitationEnabled||null==this._context)return r(e),null;const t=this.view,s=this._context;return null!=e&&e.context===s?e:(r(e),new W({context:s,view:t}))}get _clouds(){const e=this._get("_clouds");if(!this.weatherEnabled||null==this._context)return r(e),null;if(null!=e)return e;const t=this.view,s=this._context;return r(e),new A({context:s,view:t,requestRender:()=>this._setNeedsRender()})}get _cloudsComposition(){const e=this._get("_cloudsComposition");if(!this.weatherEnabled||null==this._context)return r(e),null;const t=this.view.state.viewingMode,s=this._context.renderContext.rctx,i=c(this.view.spatialReference).radius;return null!=e&&e.viewingMode===t&&e.planetRadius===i?e:(r(e),new v({rctx:s,viewingMode:t,planetRadius:i,requestRender:()=>this._setNeedsRender()}))}get _fog(){const e=this._get("_fog");if(!this.weatherEnabled||null==this._context)return r(e),null;if(null!=e)return e;const t=this.view,s=this._context,i=this._context.renderContext.rctx,a=this.view.state.viewingMode;return new N({context:s,view:t,rctx:i,viewingMode:a})}get weatherEnabled(){return!!this.view?.environmentManager?.weatherEnabled}get _precipitationEnabled(){return this.weatherEnabled&&("rainy"===this.view.environment.weather.type||"snowy"===this.view.environment.weather.type)}initializeRenderContext(e=null){this._context=e;const t=()=>this._setNeedsRender();this.addHandles([i((()=>({viewingMode:this.view.state.viewingMode,enabled:this.view.environment.atmosphereEnabled})),(e=>this._updateAtmosphere(e)),a),i((()=>this._stars),t),i((()=>this._precipitation),t),i((()=>this._clouds),(()=>this._updateWeather()),o),i((()=>this._fog),(()=>this._updateFogHaze()),o),i((()=>this.view.state.mode),(()=>{this._setNeedsRender()}),n),i((()=>this._weatherUpdateParameters),(()=>{this._updateWeather(),this._updateFogHaze()}),a)])}uninitializeRenderContext(){this._context=null,this._atmosphere=r(this._atmosphere),this._set("_stars",r(this._stars)),this._set("_precipitation",r(this._precipitation)),this._set("_clouds",r(this._clouds)),this._set("_cloudsComposition",r(this._cloudsComposition)),this._set("_fog",r(this._fog))}prepareRender(e){e.bindParameters.cloudsFade.data=b(this._clouds)?this._clouds:null,"local"!==this.view.viewingMode&&null!=e.bindParameters.cloudsFade.data?.cubeMap&&(this._updateWeatherFading(e.bindParameters,e.time),e.bindParameters.cloudsFade.renderingStage===R.FINISHED&&null!=this._clouds&&0===this._clouds.coverage&&!1===this._clouds.running&&(this._clouds.destroyFrameBufferCube(),e.bindParameters.cloudsFade.data=null))}render(e){if(e.output===M.Color)switch(e.bindParameters.slot){case T.POSTPROCESSING_ENVIRONMENT_OPAQUE:null!=this._stars&&this._stars.render(e),null!=this.atmosphere&&(this.atmosphere.render(e,this.view?._stage?.renderer?.fullResolutionAtmosphere),null!=this._cloudsComposition&&null!=e.bindParameters.cloudsFade.data&&(this.weatherVisible&&null!=this._clouds&&this._clouds.updateWeatherTile(),this._cloudsComposition.render(e)),e.bindParameters.cloudsFade.isFading&&null!=this._context&&null!=e.bindParameters.cloudsFade.data?.cubeMap&&this._context.requestRender());break;case T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT:if(null!=this.atmosphere&&(this.atmosphere.renderHaze(e,this._weatherParameters.hazeAmount,this.view?._stage?.renderer?.fullResolutionAtmosphere),this._weatherParameters.fog.amount>0&&null!=this._fog&&this._fog.render(e,this._weatherParameters.fog),null!=this._precipitation)){const t=this.view.environment.weather;"rainy"!==t.type&&"snowy"!==t.type||this._precipitation.render(e,t.precipitation,t.type)}}}updateLightSources(e,t,s,r){if(null!=this._context){const i=this._context.renderContext;i.bindParameters.oldLighting.copyFrom(i.bindParameters.lighting),i.bindParameters.newLighting.noonFactor=t,i.bindParameters.newLighting.globalFactor=s,i.bindParameters.newLighting.set(e);r===z.Faded||i.bindParameters.weatherFading?i.bindParameters.fadeLighting(0):i.bindParameters.fadeLighting(1),this._context.requestRender()}}get _weatherUpdateParameters(){const e=this.weatherEnabled?this.view.environment.weather:null;return null==e?null:"rainy"===e.type||"snowy"===e.type?{type:e.type,weatherAdjustment:e.cloudCover,effect:e.precipitation}:{type:e.type,weatherAdjustment:"foggy"===e.type?e.fogStrength:e.cloudCover}}_updateWeatherFading(e,t){e.cloudsFade.updateFading(e.camera,this.view.state.mode,t,this.view.qualitySettings.fadeDuration),e.cloudsFade.updateParallax(e.camera),e.weatherFading&&(this._updateLighting(e),this._updateFogAtmoshpere(e))}_updateLighting(e){e.cloudsFade.fadeMode!==x.CROSS_FADE&&e.cloudsFade.fadeMode!==x.FADE_IN?e.fadeLighting(0):e.fadeLighting(e.cloudsFade.fadeFactor)}_updateFogAtmoshpere(e){e.cloudsFade.fadeMode!==x.CROSS_FADE&&e.cloudsFade.fadeMode!==x.FADE_IN?this._fadeWeather(0):this._fadeWeather(e.cloudsFade.fadeFactor)}_fadeWeather(e){const{_newWeatherParameters:t,_oldWeatherParameters:s}=this;e>=1?this._weatherParameters=t:(this._fadedWeatherParameters.lerp(s,t,e),this._weatherParameters=this._fadedWeatherParameters)}_updateWeather(){const e=this._weatherUpdateParameters;null!=e&&null!=this._clouds&&(this._clouds.applyPreset(F[e.type],e.weatherAdjustment),this._setNeedsRender())}_setNeedsRender(){null!=this._context&&this._context.requestRender()}_updateFogHaze(){const e=this._weatherUpdateParameters;if(null==this._fog||null==e||null==this._context)return;const t=this._context.renderContext.bindParameters;switch(this._oldWeatherParameters.copyFrom(this._weatherParameters),e.type){case"foggy":this._newWeatherParameters.fog.strength=s(3e-5,.005,e.weatherAdjustment**3),p(this._newWeatherParameters.fog.color,V),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender();break;case"rainy":this._newWeatherParameters.fog.strength=s(4e-6,2e-4,(e.effect??0)**3),p(this._newWeatherParameters.fog.color,D),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=0,this._setNeedsRender();break;case"snowy":this._newWeatherParameters.fog.strength=s(4e-6,2e-4,(e.effect??0)**3),p(this._newWeatherParameters.fog.color,V),this._newWeatherParameters.fog.amount=1,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender();break;default:this._newWeatherParameters.fog.strength=0,this._newWeatherParameters.fog.amount=0,this._newWeatherParameters.hazeAmount=1,this._setNeedsRender()}t.weatherFading?this._fadeWeather(0):this._fadeWeather(1)}_updateAtmosphere(e){const t=this._selectAtmosphereType(e);if(t!==y.None&&this._context){if(!this._atmosphere||this._atmosphere.type!==t){this._atmosphere=r(this._atmosphere);const e=this._getAtmosphereClass(t);e&&(this._atmosphere=new e(this.view,this._context))}}else this._atmosphere=r(this._atmosphere);this._setNeedsRender()}_getAtmosphereClass(e){switch(e){case y.Realistic:return P;case y.Local:return E;case y.Mars:return j;default:case y.None:return null}}_selectAtmosphereType(e){const{enabled:t,viewingMode:s}=e;return!t||_(this.view.spatialReference)?y.None:s===f.Local?y.Local:null!=this._context&&P.isSupported(this._context)&&g(this.view.spatialReference)?y.Realistic:w(this.view.spatialReference)?y.Mars:y.None}get test(){return{atmosphere:this._atmosphere,clouds:this._clouds,selectAtmosphereType:()=>this._selectAtmosphereType({viewingMode:this.view.state.viewingMode,enabled:this.view.environment.atmosphereEnabled}),stubGetAtmosphereClass:e=>{k=L.prototype._getAtmosphereClass,L.prototype._getAtmosphereClass=e},restoreGetAtmosphereClass:()=>{L.prototype._getAtmosphereClass=k}}}};e([h({constructOnly:!0})],U.prototype,"view",void 0),e([h({readOnly:!0})],U.prototype,"atmosphere",null),e([h({readOnly:!0})],U.prototype,"_atmosphereType",null),e([h({type:Boolean,readOnly:!0})],U.prototype,"updating",null),e([h({readOnly:!0})],U.prototype,"weatherVisible",null),e([h()],U.prototype,"_context",void 0),e([h()],U.prototype,"_atmosphere",void 0),e([h({readOnly:!0})],U.prototype,"_stars",null),e([h({readOnly:!0})],U.prototype,"_precipitation",null),e([h({readOnly:!0})],U.prototype,"_clouds",null),e([h({readOnly:!0})],U.prototype,"_cloudsComposition",null),e([h({readOnly:!0})],U.prototype,"_fog",null),e([h({readOnly:!0})],U.prototype,"weatherEnabled",null),e([h({readOnly:!0})],U.prototype,"_precipitationEnabled",null),e([h({readOnly:!0})],U.prototype,"_weatherUpdateParameters",null),U=L=e([l("esri.views.3d.environment.EnvironmentRenderer")],U);class I{constructor(){this.fog=new C,this.hazeAmount=1}copyFrom(e){this.fog.amount=e.fog.amount,this.hazeAmount=e.hazeAmount,this.fog.strength=e.fog.strength,p(this.fog.color,e.fog.color)}lerp(e,t,r){this.fog.amount=s(e.fog.amount,t.fog.amount,r),this.hazeAmount=s(e.hazeAmount,t.hazeAmount,r),this.fog.strength=s(e.fog.strength,t.fog.strength,r),u(this.fog.color,e.fog.color,t.fog.color,r)}}const D=m(.5,.5,.5),V=m(1.5,1.5,1.5);let k;export{U as EnvironmentRenderer,I as WeatherParameters};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{lerp as r}from"../../../core/mathUtils.js";import{releaseMaybe as i,disposeMaybe as s}from"../../../core/maybe.js";import{secondsFromMilliseconds as n}from"../../../core/time.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as c}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as u}from"../../../geometry/ellipsoidUtils.js";import{PrecipitationPassParameters as h,PrecipitationTechnique as p,attributeLocations as m}from"./PrecipitationTechnique.js";import{PrecipitationTechniqueConfiguration as d,PrecipitationType as _}from"./PrecipitationTechniqueConfiguration.js";import{glLayout as l}from"../support/buffer/glUtil.js";import{newLayout as f}from"../support/buffer/InterleavedLayout.js";import{AnimationTimer as
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{lerp as r}from"../../../core/mathUtils.js";import{releaseMaybe as i,disposeMaybe as s}from"../../../core/maybe.js";import{secondsFromMilliseconds as n}from"../../../core/time.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as c}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as u}from"../../../geometry/ellipsoidUtils.js";import{PrecipitationPassParameters as h,PrecipitationTechnique as p,attributeLocations as m}from"./PrecipitationTechnique.js";import{PrecipitationTechniqueConfiguration as d,PrecipitationType as _}from"./PrecipitationTechniqueConfiguration.js";import{glLayout as l}from"../support/buffer/glUtil.js";import{newLayout as f}from"../support/buffer/InterleavedLayout.js";import{AnimationTimer as y}from"../webgl-engine/lib/AnimationTimer.js";import{VertexArrayObject as T}from"../webgl-engine/lib/VertexArrayObject.js";import{VertexAttribute as g}from"../webgl-engine/lib/VertexAttribute.js";import{BufferObject as w}from"../../webgl/BufferObject.js";import{PrimitiveType as b,Usage as j}from"../../webgl/enums.js";import{bindVertexBufferLayout as q,unbindVertexBufferLayout as I}from"../../webgl/Util.js";let A=class extends t{constructor(e){super(e),this._numParticles=25e4,this._rainSpeed=.1,this._snowSpeed=.01,this._passParameters=new h,this._animation=new y,this._updatingTracking=new c,this._passParameters.time=0,this._passParameters.radius=u(e.view.spatialReference).radius,this._techniqueRepository=e.context.techniqueRepository}destroy(){this._updatingTracking.destroy(),this._numParticles=0,this._snowTechniqueCached=i(this._snowTechniqueCached),this._rainTechniqueCached=i(this._rainTechniqueCached),this._vao=s(this._vao),this._instanceIdBuffer=s(this._instanceIdBuffer)}get updating(){return this._updatingTracking.updating}get _rainTechnique(){if(null==this._rainTechniqueCached){const e=new d;e.type=_.Rain,this._rainTechniqueCached=this._techniqueRepository.acquire(p,e)}return this._rainTechniqueCached}get _snowTechnique(){if(null==this._snowTechniqueCached){const e=new d;e.type=_.Snow,this._snowTechniqueCached=this._techniqueRepository.acquire(p,e)}return this._snowTechniqueCached}update(e){return this._animation.advance(e)}render(e,t,i){const s="rainy"===i?this._rainTechnique:this._snowTechnique;if(!s.compiled)return void this.context.requestRender();const o=e.rctx;if(this._ensureResources(o),null==s||null==this._vao||null==this._instanceIdBuffer)return;if(null!=e.bindParameters.cloudsFade.data&&(this._passParameters.opacity=e.bindParameters.cloudsFade.opacity),this._passParameters.opacity<=0)return;const a=.35;t=t<.5?r(0,a,2*t):r(a,1,2*(t-.5)),this._passParameters.time=("rainy"===i?this._rainSpeed:this._snowSpeed)*n(this._animation.time)%1e5;const c=o.bindTechnique(s,this._passParameters,e.bindParameters);o.bindVAO(this._vao),c.assertCompatibleVertexAttributeLocations(this._vao),q(o,m,this._instanceIdBuffer,P,0),o.drawArraysInstanced(b.TRIANGLES,0,3,this._numParticles*t),I(o,m,this._instanceIdBuffer,P)}_ensureResources(e){null==this._vao&&(this._vao=this._createVertexArrayObject(e)),null==this._instanceIdBuffer&&(this._instanceIdBuffer=this._createInstanceIndices(e))}_createInstanceIndices(e){const t=[];for(let r=0;r<this._numParticles;r++)t.push(r);return w.createVertex(e,j.STATIC_DRAW,new Float32Array(t))}_createVertexArrayObject(e){const t=new Float32Array([-1,0,1,1,0,-1,1,0,1]);return new T(e,m,{geometry:l(v)},{geometry:w.createVertex(e,j.STATIC_DRAW,t)})}};e([o({constructOnly:!0})],A.prototype,"context",void 0),e([o({constructOnly:!0})],A.prototype,"view",void 0),e([o({readOnly:!0})],A.prototype,"updating",null),e([o()],A.prototype,"_updatingTracking",void 0),A=e([a("esri.views.3d.environment.Precipitation")],A);const v=f().vec3f(g.POSITION),P=l(f().f32(g.INSTANCEFEATUREATTRIBUTE),1);export{A as Precipitation};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"./CloudyWeather.js";import r from"./FoggyWeather.js";import o from"./RainyWeather.js";import t from"./SnowyWeather.js";import y from"./SunnyWeather.js";const n={key:"type",base:y,typeMap:{sunny:y,cloudy:e,rainy:o,snowy:t,foggy:r}},a=Object.keys(n.typeMap);function s(e,r){return!!a.includes(e)||(r.error(`"${e}" is not a valid weather type`),!1)}const p=1e4;export{s as validateWeatherType,p as weatherHeightLimit,n as weatherTypes,a as weatherTypesArray};
|
|
5
|
+
import e from"./CloudyWeather.js";import r from"./FoggyWeather.js";import o from"./RainyWeather.js";import t from"./SnowyWeather.js";import y from"./SunnyWeather.js";const n={key:"type",base:y,typeMap:{sunny:y,cloudy:e,rainy:o,snowy:t,foggy:r}},a=Object.keys(n.typeMap);function s(e,r){return!!a.includes(e)||(r.error(`"${e}" is not a valid weather type`),!1)}const p=1e4,i=1e5;export{i as cloudsHeight,s as validateWeatherType,p as weatherHeightLimit,n as weatherTypes,a as weatherTypesArray};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as o}from"../../../../../../core/mathUtils.js";import{earth as a}from"../../../../../../geometry/support/Ellipsoid.js";import{
|
|
5
|
+
import{clamp as o}from"../../../../../../core/mathUtils.js";import{earth as a}from"../../../../../../geometry/support/Ellipsoid.js";import{CloudsTextureChannels as t,CloudsRenderingStages as e}from"../../../../environment/CloudsData.js";import{FadeMode as r}from"../../../../environment/CloudsParameters.js";import{cloudsHeight as i}from"../../../../environment/weather.js";import{addMainLightDirection as n,addMainLightIntensity as d}from"../shading/MainLighting.glsl.js";import{BooleanPassUniform as c}from"../../shaderModules/BooleanPassUniform.js";import{Float3PassUniform as l}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as s}from"../../shaderModules/FloatPassUniform.js";import{glsl as u}from"../../shaderModules/interfaces.js";import{Matrix4PassUniform as C}from"../../shaderModules/Matrix4PassUniform.js";import{TextureCubePassUniform as m}from"../../shaderModules/TextureCubePassUniform.js";function v(v){const R=v.fragment;R.uniforms.add(new C("rotationMatrixClouds",((o,a)=>a.cloudsFade.parallax.transform)),new C("rotationMatrixCloudsCrossFade",((o,a)=>a.cloudsFade.parallaxNew.transform)),new l("anchorPosition",((o,a)=>a.cloudsFade.parallax.anchorPointClouds)),new l("anchorPositionCrossFade",((o,a)=>a.cloudsFade.parallaxNew.anchorPointClouds)),new s("cloudsHeight",(()=>i)),new s("radiusCurvatureCorrectionFactor",((o,a)=>a.cloudsFade.parallax.radiusCurvatureCorrectionFactor)),new s("totalFadeInOut",((o,a)=>1-a.cloudsFade.opacity)),new s("crossFadeAnchorFactor",((a,t)=>o(t.cloudsFade.fadeFactor,0,1))),new m("cubeMap",((o,a)=>a.cloudsFade.data?.cubeMap?.colorTexture??null)),new c("crossFade",((o,a)=>a.cloudsFade.fadeMode===r.CROSS_FADE)),new c("readChannelsRG",((o,a)=>a.cloudsFade.readChannels===t.RG)),new c("fadeTextureChannels",((o,a)=>a.cloudsFade.renderingStage===e.FADING))),R.constants.add("planetRadius","float",a.radius),R.code.add(u`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos)
|
|
6
6
|
{
|
|
7
7
|
float radiusClouds = planetRadius + cloudsHeight;
|
|
8
8
|
float B = 2.0 * dot(cameraPosition, dir);
|
|
@@ -12,14 +12,14 @@ float pointIntDist = max(0.0, 0.5 *(-B + sqrt(det)));
|
|
|
12
12
|
vec3 intersectionPont = cameraPosition + dir * pointIntDist;
|
|
13
13
|
intersectionPont = intersectionPont - spherePos;
|
|
14
14
|
return intersectionPont;
|
|
15
|
-
}`),
|
|
15
|
+
}`),R.code.add(u`vec3 correctForPlanetCurvature(vec3 dir)
|
|
16
16
|
{
|
|
17
17
|
dir.z = dir.z*(1.-radiusCurvatureCorrectionFactor) + radiusCurvatureCorrectionFactor;
|
|
18
18
|
return dir;
|
|
19
|
-
}`),
|
|
19
|
+
}`),R.code.add(u`vec3 rotateDirectionToAnchorPoint(mat4 rotMat, vec3 inVec)
|
|
20
20
|
{
|
|
21
21
|
return (rotMat * vec4(inVec, 0.0)).xyz;
|
|
22
|
-
}`),
|
|
22
|
+
}`),n(R),d(R),R.code.add(u`const float SUNSET_TRANSITION_FACTOR = 0.3;
|
|
23
23
|
const vec3 RIM_COLOR = vec3(0.28, 0.175, 0.035);
|
|
24
24
|
const float RIM_SCATTERING_FACTOR = 140.0;
|
|
25
25
|
const float BACKLIGHT_FACTOR = 0.2;
|
|
@@ -39,7 +39,7 @@ float rimLightIntensity = 0.5 + 0.5 *pow(max(upDotLight, 0.0), 0.35);
|
|
|
39
39
|
vec3 directSunScattering = RIM_COLOR * rimLightIntensity * (pow(dirDotLight, RIM_SCATTERING_FACTOR)) * scatteringMod;
|
|
40
40
|
float additionalLight = BACKLIGHT_FACTOR * pow(dirDotLight, BACKLIGHT_SCATTERING_FACTOR) * (1. - pow(sunsetTransition, BACKLIGHT_TRANSITION_FACTOR)) ;
|
|
41
41
|
return vec3(baseCloudColor * (1. + additionalLight) + directSunScattering);
|
|
42
|
-
}`),
|
|
42
|
+
}`),R.code.add(u`vec4 getCloudData(vec3 rayDir, bool readOtherChannel)
|
|
43
43
|
{
|
|
44
44
|
vec4 cloudData = texture(cubeMap, rayDir);
|
|
45
45
|
float mu = dot(rayDir, vec3(0, 0, 1));
|
|
@@ -53,7 +53,7 @@ if (length(cloudData) == 0.0) {
|
|
|
53
53
|
return vec4(cloudData.rgb, 1.0);
|
|
54
54
|
}
|
|
55
55
|
return cloudData;
|
|
56
|
-
}`),
|
|
56
|
+
}`),R.code.add(u`vec4 renderCloudsNoFade(vec3 worldRay, vec3 cameraPosition)
|
|
57
57
|
{
|
|
58
58
|
vec3 intersectionPoint = intersectWithCloudLayer(normalize(worldRay), cameraPosition, anchorPosition);
|
|
59
59
|
vec3 worldRayRotated = rotateDirectionToAnchorPoint(rotationMatrixClouds, normalize(intersectionPoint));
|
|
@@ -64,7 +64,7 @@ if (length(cloudData.rgb) == 0.0) {
|
|
|
64
64
|
totalTransmittance = 1.0;
|
|
65
65
|
}
|
|
66
66
|
return vec4(calculateCloudColor(cameraPosition, normalize(-worldRay), cloudData), totalTransmittance);
|
|
67
|
-
}`),
|
|
67
|
+
}`),R.code.add(u`vec4 renderCloudsCrossFade(vec3 worldRay, vec3 cameraPosition)
|
|
68
68
|
{
|
|
69
69
|
vec3 intersectionPoint = intersectWithCloudLayer(normalize(worldRay), cameraPosition, anchorPosition);
|
|
70
70
|
vec3 worldRayRotated = rotateDirectionToAnchorPoint(rotationMatrixClouds, normalize(intersectionPoint));
|
|
@@ -82,7 +82,7 @@ if (length(cloudColor.rgb) == 0.0) {
|
|
|
82
82
|
totalTransmittance = 1.0;
|
|
83
83
|
}
|
|
84
84
|
return vec4(cloudColor.rgb, totalTransmittance);
|
|
85
|
-
}`),
|
|
85
|
+
}`),R.code.add(u`vec4 renderClouds(vec3 worldRay, vec3 cameraPosition)
|
|
86
86
|
{
|
|
87
87
|
return crossFade ? renderCloudsCrossFade(worldRay, cameraPosition) : renderCloudsNoFade(worldRay, cameraPosition);
|
|
88
|
-
}`)}export{
|
|
88
|
+
}`)}export{v as CloudsParallaxShading};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{a as i}from"../../../../chunks/vec2f64.js";import{
|
|
5
|
+
import{a as i}from"../../../../chunks/vec2f64.js";import{CloudsParameters as e}from"../../environment/CloudsParameters.js";import{HUDRenderStyle as t}from"../core/shaderLibrary/hud/HUDRenderStyle.js";import{MultipassGeometryUniforms as s}from"../core/shaderLibrary/shading/MultipassGeometryTest.glsl.js";import{MultipassTerrainUniforms as r}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{SSRUniforms as h}from"../core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js";import{Decorations as n}from"./basicInterfaces.js";import{Camera as a}from"./Camera.js";import{RenderSlot as o}from"./RenderSlot.js";import{TransparencyPassType as g}from"./TransparencyPassType.js";import{SceneLighting as l}from"../lighting/SceneLighting.js";class m{constructor(m,d,p){this.shadowMap=m,this.ssaoHelper=d,this.slicePlane=p,this.slot=o.OPAQUE_MATERIAL,this.hasOccludees=!1,this.enableFillLights=!0,this.transparencyPassType=g.NONE,this.alignPixelEnabled=!1,this.decorations=n.ON,this.overlayStretch=1,this._camera=new a,this._inverseViewport=i(),this.oldLighting=new l,this.newLighting=new l,this._fadedLighting=new l,this._lighting=this.newLighting,this.ssr=new h,this.multipassEnabled=!1,this.multipassTerrain=new r,this.multipassGeometry=new s,this.overlays=[],this.hudRenderStyle=t.Occluded,this.cloudsFade=new e}get camera(){return this._camera}set camera(i){this._camera=i,this._inverseViewport[0]=1/i.fullViewport[2],this._inverseViewport[1]=1/i.fullViewport[3]}get inverseViewport(){return this._inverseViewport}get lighting(){return this._lighting}get weatherFading(){return this._lighting===this._fadedLighting}fadeLighting(i){const{oldLighting:e,newLighting:t}=this;i>=1?this._lighting=t:(this._fadedLighting.lerpLighting(e,t,i),this._lighting=this._fadedLighting)}}export{m as BindParameters};
|
package/widgets/Editor/Edits.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";function s(t){return null==t?null:JSON.stringify(t)}let o=class extends e{constructor(t){super(t),this._stagedForDelete=!1,this.feature=null,this.initialFeature=null}get attributesModified(){return this._stringifyAttributes(this.feature)!==this._stringifyAttributes(this.initialFeature)}get geometryModified(){return this._stringifyGeometry(this.feature)!==this._stringifyGeometry(this.initialFeature)}get stagedForDelete(){return this._stagedForDelete}get modified(){return this.attributesModified||this.geometryModified||this._stagedForDelete}stageDelete(){this._stagedForDelete=!0}unstageDelete(){this._stagedForDelete=!1}trackChanges(){this.initialFeature=this.feature?.clone()}updateAttributes(t){const{feature:e}=this;e&&(e.attributes=t,this.notifyChange("attributesModified"))}updateGeometry(t){const{feature:e}=this;e&&(e.geometry=t,this.notifyChange("geometryModified"))}_stringifyAttributes(t){return s(t?.attributes)}_stringifyGeometry(t){const e=t?.geometry;return s("mesh"===e?.type?{transform:e.transform,vertexSpace:e.vertexSpace}:e)}};t([r()],o.prototype,"_stagedForDelete",void 0),t([r()],o.prototype,"attributesModified",null),t([r()],o.prototype,"feature",void 0),t([r()],o.prototype,"geometryModified",null),t([r()],o.prototype,"initialFeature",void 0),t([r()],o.prototype,"modified",null),o=t([i("esri.widgets.Editor.Edits")],o);export{o as Edits};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as a}from"../../core/handleUtils.js";import{isAborted as r}from"../../core/promiseUtils.js";import{watch as i}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as a}from"../../core/handleUtils.js";import{isAborted as r}from"../../core/promiseUtils.js";import{watch as i}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as l,getEffectiveEditingEnabled as d}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as n,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import u from"./UpdateRecordWorkflowData.js";import p from"./Workflow.js";import{fetchFullFeature as m}from"./workflowUtils.js";var h;const f={exit:Symbol()},g="esri.widgets.Editor.UpdateRecordWorkflow";let w=h=class extends p{constructor(e){super(e),this.fullFeature=null,this.type="update-table-record"}async initialize(){const{data:e}=this,{edits:i}=e,s=i.feature,o=new AbortController;this.addHandles(a(o)),this._updatingHandles.addPromise(m(s,e.viewModel.view.spatialReference,o.signal).then((e=>{r(o)||this._onFullFeatureLoaded(e)}),(e=>this.cancel({force:!0,error:new t("editor:failed-to-fetch-full-feature","Failed to retrieve all information for this feature. The update cannot proceed.",{detail:{error:e}})}))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){return this.data.edits.modified}get shouldShowAttachments(){return this.editableItem.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return this.editableItem.supports.includes("update")}get reliesOnOwnerAdminPrivileges(){const{layer:e}=this.editableItem,t=e.capabilities?.operations.supportsUpdate,a=l(e)?.operations.supportsUpdate;return d(e)&&!e.editingEnabled||!!a&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(f.exit)}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:a,viewModel:r}=e,{attachmentsViewModel:s}=r;s.set({capabilities:a,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles(i((()=>s.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})),f.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:a,view:r}}=this.data;a.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,map:r?.map,spatialReference:r.spatialReference});const{initialFeature:i}=e;i&&a.overrideInitialFeature(i),this.addHandles(a.on("value-change",(()=>{e.updateAttributes(a.getValues()),this.fullFeature.attributes=e.feature.attributes})),f.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new h({data:await u.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}static _createWorkflowSteps(e){const{attachmentsViewModel:t}=e.data.viewModel;return[{id:"editing-attributes",async setUp(){},async tearDown(){}},{id:"adding-attachment",async setUp(){},async tearDown(){t.mode="view"}},{id:"editing-attachment",async setUp(){},async tearDown(){t.mode="view"}}]}};w._onCommitFactory=e=>async t=>{const{edits:a}=t,{feature:r}=a;if(!r)return;const i=r.sourceLayer,s=r.clone();if(!a.attributesModified||a.stagedForDelete){const e=i.objectIdField;if(s.attributes={[e]:r.getAttribute(e)},n()&&c()&&"scene"===i.type&&null!=i.infoFor3D){const e=i.associatedLayer?.globalIdField;null!=e&&s.setAttribute(e,r.getAttribute(e))}}a.geometryModified&&!a.stagedForDelete||(s.geometry=null);const o=a.stagedForDelete?"deleteFeatures":"updateFeatures";await e(i,{[o]:[s]})},e([s()],w.prototype,"editableItem",null),e([s()],w.prototype,"fullFeature",void 0),e([s()],w.prototype,"hasPendingEdits",null),e([s()],w.prototype,"shouldShowAttachments",null),e([s()],w.prototype,"shouldAllowAttachmentEditing",null),e([s()],w.prototype,"reliesOnOwnerAdminPrivileges",null),w=h=e([o(g)],w);export{f as HANDLE_KEYS,w as UpdateRecordWorkflow};
|
package/widgets/Editor.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import s from"../core/Logger.js";import{createResolver as o}from"../core/promiseUtils.js";import{watch as n,initial as a,on as i,when as r}from"../core/reactiveUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as p}from"../layers/support/fieldUtils.js";import m from"./Attachments.js";import h from"./FeatureForm.js";import u from"./FeatureTemplates.js";import g from"./Spinner.js";import _ from"./Widget.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import{renderItem as y,ItemList as k}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{incrementHeadingLevel as C,Heading as F}from"./support/Heading.js";import{SketchTooltipControls as M}from"./support/SketchTooltipControls.js";import A from"./support/SnappingControls.js";import{accessibleHandler as T}from"./support/decorators/accessibleHandler.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import{vmEvent as W}from"./support/decorators/vmEvent.js";import{tsx as I}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{substitute as L}from"../intl/substitute.js";const S="esri-editor",P=`${S}__panel`,U=`${S}__prompt`,j={base:`${S} esri-widget esri-widget--panel`,actions:`${S}__actions`,helpMessage:`${S}__help-message`,panelToolbar:`${P}-toolbar`,panelContent:`${P}-content`,panelContentMessage:`${P}-content__message`,panelContentSection:`${P}-content__section`,panelContentSectionGroup:`${P}-content__section__group`,panelContentScrimContainer:`${P}-content__scrim-container`,settingsContainer:`${S}__settings`,featureTemplatesContainer:`${S}__feature-templates-container`,notice:`${S}__notice`,templateItemContentEnd:`${S}__template-item-content-end`,templateItemContentEndSuccess:`${S}__template-item-content-end--success`,templateItemContentEndError:`${S}__template-item-content-end--error`,templateItemLoader:`${S}__template-item-loader`,promptContainer:U,promptHeader:`${U}__header`,promptHeading:`${U}__header__heading`,promptMessage:`${U}__message`,promptDivider:`${U}__divider`,promptActions:`${U}__actions`,widgetIcon:"esri-icon-edit"},D={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function $(e){requestAnimationFrame((()=>e.setFocus()))}const B="exclamation-mark-triangle",O="esri.widgets.Editor",x=s.getLogger(O);let H=class extends _{constructor(e,t){super(e,t),this._featureForm=new h,this._attachments=new m({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new u({enableListScroll:!1,renderItemContentEnd:e=>this._renderTemplateContentEnd(e),renderItemDescription:e=>this._renderTemplateDescription(e),renderItemLabel:e=>this._renderTemplateLabel(e),renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new g,this.headingLevel=4,this.iconClass=j.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements={...D},this._renderSelectIcon=()=>I("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:o},...n)=>{const{messagesCommon:a,viewModel:i,visibleElements:r}=this,l=i.sketchViewModel,c=i.syncing||i.updating||this._attachments.submitting;return I("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:o,loading:c,onCalciteFlowItemBack:e??void 0},I("div",{key:"panel-toolbar",class:j.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[I("calcite-button",{key:"undo-button",label:a.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},a.undo),I("calcite-button",{key:"redo-button",label:a.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},a.redo)]),...n)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){this.addHandles([n((()=>C(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),a),n((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,{emit:!1}))),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),n((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),a),n((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),a),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),a),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:n}]=e;this._prompt={title:t.errorWarningTitle,message:L(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{n(),this._clearPrompt()}}}}})),n((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),n((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return b({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...D,...e,snappingControlsElements:{...D.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f(x,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f(x,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f(x,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return I("div",{key:"empty",class:j.base});const{state:t}=e;return I("div",{key:"base",class:j.base},I("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return I("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:o,_onBack:n}=this;return I(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:n,heading:o.selectTemplate,headingLevel:s},I("div",{key:"feature-templates",class:j.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:o,messagesCommon:n,headingLevel:a,_onBack:i,viewModel:r}=this;if(!t)return null;const l=t.type,c="activeWorkflow"in t&&t.activeWorkflow,d=c?c.type:null,p=r.featureFormViewModel,m=c&&!c.hasPendingEdits||"update"===l&&!t.hasPendingEdits||r.syncing||p.updating,h="update"===l?o.editFeature:o.createFeatures,u="update"===l&&"create-features"!==d?n.update:n.create,g="create-features"===l&&"create-new"===t.createFeatureState,_="create-features"===l?t.numPendingFeatures:0,f=_>1?L(o.createFeaturesTemplate,{numFeatures:_}):u,w=t.shouldShowAttachments&&!r.featureFormViewModel.activeRelationshipInput,v=p.inputs.every((e=>!e.visible))&&!w?this._renderMessage(L(o.clickToFinishTemplate,{button:u})):I("div",{key:"panel-content-section",class:j.panelContentSection},this._renderNotices(t),I("div",{class:j.panelContentSectionGroup},this._featureForm.render(),w&&I("div",{key:"attachments"},I(F,{level:C(a)},o.attachments),this._attachments.render())));return I(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:h,headingLevel:a,handleBack:i},I("div",{key:"panel-content",class:this.classes(j.panelContent,{[j.panelContentScrimContainer]:g})},v,g&&I("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:m,label:f,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:n.delete}:null]))}_renderNotices(e){return[this._renderOwnerAdminNotice(e),this._renderInvalidFormTemplateNotice(e),this._renderInvalidDateFieldNotice(e)]}_renderOwnerAdminNotice(e){return e?.reliesOnOwnerAdminPrivileges&&this._renderNotice(this.messages.ownerAdminNotice)}_renderInvalidFormTemplateNotice(e){return e?.hasInvalidFormTemplate&&this._renderNotice(this.messages.formFieldUpdateError,{icon:B})}_renderInvalidDateFieldNotice(e){return e?.hasUnsupportedFields&&this._renderNotice(this.messages.formFieldUnsupportedUpdateError,{icon:B})}_renderNotice(e,t){return I("calcite-notice",{open:!0,scale:"s",class:j.notice,...t},I("div",{slot:"message"},e))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?this._renderNotice(o,{icon:B}):null}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:o,headingLevel:n,messages:a,messagesCommon:i}=this;return I(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:a.addAttachment,headingLevel:n,handleBack:o},I("div",{key:"attachments",class:j.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?i.cancel:i.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:o,activeWorkflow:n,headingLevel:a,messages:i,messagesCommon:r}=this;return n?I(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:i.editAttachment,headingLevel:a,handleBack:o},I("div",{key:"attachments",class:j.panelContent},t.render()),n.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return I("div",{key:"panel-content-message",class:j.panelContentMessage},e)}_renderFooterActions(e){return I("div",{key:"footer-actions",slot:"footer",class:j.actions},e.filter(t).map((({type:e,disabled:t,class:s,clickHandler:o,label:n,...a},i)=>I("calcite-button",{key:`action-${i}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:o,width:"full",...a},n))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:o,actions:n}=e,a=n.secondary;let i;switch(o){case"danger":i="danger";break;case"info":i="brand";break;default:i="neutral"}const r=I("calcite-button",{afterCreate:$,appearance:"solid",key:"prompt-primary-button",kind:i,onclick:n.primary.action,scale:"m",width:a?"half":"full"},n.primary.label),l=a&&I("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:i,onclick:a.action,scale:"m",width:"half"},a.label);return I("calcite-scrim",{key:"prompt","data-testid":"prompt"},I("div",{class:`${j.promptContainer}--${o}`},I("div",{class:j.promptHeader},I("calcite-icon",{icon:B}),I(F,{class:j.promptHeading,level:this.headingLevel},t)),I("div",{class:j.promptMessage},s),I("div",{class:j.promptDivider}),I("div",{class:j.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:o,viewModel:n}=this,{canUpdate:a}=n,i=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!a&&0===i;return I(t,{active:this._isPanelActive(e),key:"landing-panel",heading:o.widgetLabel,headingLevel:s},I("div",{key:"landing-content",class:j.panelContent},a&&I("div",{key:"edit-actions",class:j.panelContentSection},this._renderUpdateActions(e)),i>0&&I("div",{key:"create-actions",class:j.panelContentSection},this._renderCreateActions()),r&&I("div",{key:"no-content",class:j.panelContentMessage},o.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage,n=o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:null;return n?I("div",{key:"footer-actions",slot:"footer",class:j.helpMessage},n):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this,o={id:"select",label:s.select};return I("div",{key:"update-actions"},I(F,{level:C(this.headingLevel)},t.editFeatures),I("calcite-list",{selectionMode:"single",selectionAppearance:"border"},y({grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===e?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return I("div",{key:"create-actions"},I(F,{level:C(t)},s.createFeatures),I("div",{key:"templates",class:j.featureTemplatesContainer},e.render()))}_renderTemplateLabel(e){return e.label}_renderTemplateDescription(e){const t=this._getUploadForTemplateItem(e);if(!t)return null;const{messages:s}=this;switch(t.state){case"pending":return s?.uploadPending;case"error":return s?.uploadError;default:return null}}_renderTemplateContentEnd(e){const t=this._getUploadForTemplateItem(e),s=I("calcite-icon",{key:"upload-icon",class:j.templateItemContentEnd,icon:"upload-to"});if(!t)return e.supportsUpload?s:null;switch(t.state){case"success":return I("calcite-icon",{key:"success-icon",class:this.classes(j.templateItemContentEnd,j.templateItemContentEndSuccess),icon:"check"});case"error":return I("calcite-icon",{key:"error-icon",class:this.classes(j.templateItemContentEnd,j.templateItemContentEndError),icon:"exclamation-mark-circle-f","data-testid":"upload-error-icon"});case"pending":return I("calcite-loader",{class:j.templateItemLoader,inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"});case"canceled":case"default":return s}}_getUploadForTemplateItem(e){const t=this.activeWorkflow;if("create-features"!==t?.type)return null;const{data:s}=t,{creationInfo:o,upload:n}=s;return o?.template===e.template&&o?.layer===e.layer?n:null}_renderFeatureList(e){const{EditorPanel:s,_onBack:o,headingLevel:n,messages:a,messagesTemplates:i,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=L(a.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,o=this._filterText.toLowerCase(),{title:n}=s.layer,a=l.find((e=>e.layer===s.layer));if(!a)return null;const{attachmentsOnUpdateEnabled:i,supports:r}=a;return(r.includes("update")||r.includes("delete")||i)&&(!o||t?.toLowerCase().includes(o)||n?.toLowerCase().includes(o))})).filter(t).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const h=l.toArray().map((({layer:e})=>p.get(e))).filter(t),u=m>10||this._filterText.length>0;return I(s,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:n,handleBack:o},I("div",{key:"feature-list",class:j.panelContent},I("div",{class:j.panelContentSection},k({enableListScroll:!1,filterEnabled:u,filterText:this._filterText,id:this.id,items:h,messages:{filterPlaceholder:i.filterPlaceholder,noItems:i.noItems,noMatches:i.noMatches},onFilterChange:e=>this._filterText=e,onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0)}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const{labelOptions:e,messagesCommon:t,snappingOptions:s,tooltipOptions:o,view:n,visibleElements:a}=this,i=[];return a.sketchTooltipControls&&i.push(I(M,{tooltipOptions:o,labelOptions:e,visibleElements:{labelsToggle:"3d"===n?.type}})),a.snappingControls&&i.push(I(A,{snappingOptions:s,view:n,visibleElements:a.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1})),0===i.length?null:I("calcite-accordion",{key:"settings",class:j.settingsContainer,appearance:"transparent"},I("calcite-accordion-item",{heading:t?.settings,iconStart:"gear"},i))}_getLabel(e){const t=e.layer;if(!t)return null;const s=t.fieldsIndex.get(t.objectIdField),o=s.alias||s.name,{attributes:n}=e,a=p(t);return a&&n[a]&&`${n[a]}`||`${o}: ${n[s.name]}`}_showPrompt({title:e,message:t,yesLabel:s,noLabel:n}){const a=o(),{view:i}=this,r=i?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:s,action:()=>a.resolve(!0)},secondary:{label:n,action:()=>a.resolve(!1)}}},a.promise.finally((()=>{this._clearPrompt(),r&&i?.focus()}))}_onSave(){this.viewModel.saveWorkflow()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([l()],H.prototype,"_featureForm",void 0),e([l()],H.prototype,"_attachments",void 0),e([l()],H.prototype,"_featureTemplates",void 0),e([l()],H.prototype,"_filterText",void 0),e([l()],H.prototype,"_prompt",void 0),e([l()],H.prototype,"_spinner",void 0),e([l()],H.prototype,"_deleteButtonCommonInfo",null),e([l({readOnly:!0})],H.prototype,"activeWorkflow",null),e([l()],H.prototype,"allowedWorkflows",null),e([l()],H.prototype,"useDeprecatedCreateWorkflow",null),e([l()],H.prototype,"headingLevel",void 0),e([l()],H.prototype,"iconClass",void 0),e([l()],H.prototype,"label",null),e([l()],H.prototype,"labelOptions",null),e([l()],H.prototype,"layerInfos",null),e([l(),E("esri/widgets/Editor/t9n/Editor")],H.prototype,"messages",void 0),e([l(),E("esri/t9n/common")],H.prototype,"messagesCommon",void 0),e([l(),E("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],H.prototype,"messagesTemplates",void 0),e([l()],H.prototype,"snappingOptions",null),e([l()],H.prototype,"tooltipOptions",null),e([l()],H.prototype,"supportingWidgetDefaults",void 0),e([l()],H.prototype,"view",null),e([l(),W(["workflow-cancel","workflow-commit"])],H.prototype,"viewModel",void 0),e([l()],H.prototype,"visibleElements",void 0),e([c("visibleElements")],H.prototype,"castVisibleElements",null),e([T()],H.prototype,"_onSave",null),e([T()],H.prototype,"_onDelete",null),e([T()],H.prototype,"_onBack",null),e([T()],H.prototype,"_onAttachmentAdd",null),e([T()],H.prototype,"_onAttachmentUpdate",null),e([T()],H.prototype,"_onAttachmentDelete",null),H=e([d(O)],H);const N=H;export{N as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import s from"../core/Logger.js";import{createResolver as o}from"../core/promiseUtils.js";import{watch as n,initial as a,on as i,when as r}from"../core/reactiveUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as p}from"../layers/support/fieldUtils.js";import m from"./Attachments.js";import h from"./FeatureForm.js";import u from"./FeatureTemplates.js";import g from"./Spinner.js";import _ from"./Widget.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import{renderItem as y,ItemList as k}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{incrementHeadingLevel as C,Heading as F}from"./support/Heading.js";import{SketchTooltipControls as M}from"./support/SketchTooltipControls.js";import A from"./support/SnappingControls.js";import{accessibleHandler as T}from"./support/decorators/accessibleHandler.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import{vmEvent as W}from"./support/decorators/vmEvent.js";import{tsx as I}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{substitute as L}from"../intl/substitute.js";const S="esri-editor",P=`${S}__panel`,U=`${S}__prompt`,j={base:`${S} esri-widget esri-widget--panel`,actions:`${S}__actions`,helpMessage:`${S}__help-message`,panelToolbar:`${P}-toolbar`,panelContent:`${P}-content`,panelContentMessage:`${P}-content__message`,panelContentSection:`${P}-content__section`,panelContentSectionGroup:`${P}-content__section__group`,panelContentScrimContainer:`${P}-content__scrim-container`,settingsContainer:`${S}__settings`,featureTemplatesContainer:`${S}__feature-templates-container`,notice:`${S}__notice`,templateItemContentEnd:`${S}__template-item-content-end`,templateItemContentEndSuccess:`${S}__template-item-content-end--success`,templateItemContentEndError:`${S}__template-item-content-end--error`,templateItemLoader:`${S}__template-item-loader`,promptContainer:U,promptHeader:`${U}__header`,promptHeading:`${U}__header__heading`,promptMessage:`${U}__message`,promptDivider:`${U}__divider`,promptActions:`${U}__actions`,widgetIcon:"esri-icon-edit"},D={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function $(e){requestAnimationFrame((()=>e.setFocus()))}const B="exclamation-mark-triangle",O="esri.widgets.Editor",x=s.getLogger(O);let H=class extends _{constructor(e,t){super(e,t),this._featureForm=new h,this._attachments=new m({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new u({enableListScroll:!1,renderItemContentEnd:e=>this._renderTemplateContentEnd(e),renderItemDescription:e=>this._renderTemplateDescription(e),renderItemLabel:e=>this._renderTemplateLabel(e),renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new g,this.headingLevel=4,this.iconClass=j.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements={...D},this._renderSelectIcon=()=>I("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:o},...n)=>{const{messagesCommon:a,viewModel:i,visibleElements:r}=this,l=i.sketchViewModel,c=i.syncing||i.updating||this._attachments.submitting;return I("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:o,loading:c,onCalciteFlowItemBack:e??void 0},I("div",{key:"panel-toolbar",class:j.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[I("calcite-button",{key:"undo-button",label:a.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},a.undo),I("calcite-button",{key:"redo-button",label:a.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},a.redo)]),...n)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){this.addHandles([n((()=>C(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),a),n((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,{emit:!1}))),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),n((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),a),n((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),a),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),a),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:n}]=e;this._prompt={title:t.errorWarningTitle,message:L(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{n(),this._clearPrompt()}}}}})),n((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),n((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return b({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...D,...e,snappingControlsElements:{...D.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f(x,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f(x,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f(x,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return I("div",{key:"empty",class:j.base});const{state:t}=e;return I("div",{key:"base",class:j.base},I("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return I("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:o,_onBack:n}=this;return I(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:n,heading:o.selectTemplate,headingLevel:s},I("div",{key:"feature-templates",class:j.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:o,messagesCommon:n,headingLevel:a,_onBack:i,viewModel:r}=this;if(!t)return null;const l=t.type,c="activeWorkflow"in t&&t.activeWorkflow,d=c?c.type:null,p=r.featureFormViewModel,m=c&&!c.hasPendingEdits||"update"===l&&!t.hasPendingEdits||r.syncing||p.updating,h="update"===l?o.editFeature:o.createFeatures,u="update"===l&&"create-features"!==d?n.update:n.create,g="create-features"===l&&"create-new"===t.createFeatureState,_="create-features"===l?t.numPendingFeatures:0,f=_>1?L(o.createFeaturesTemplate,{numFeatures:_}):u,w=t.shouldShowAttachments&&!r.featureFormViewModel.activeRelationshipInput,v=p.inputs.every((e=>!e.visible))&&!w?this._renderMessage(L(o.clickToFinishTemplate,{button:u})):I("div",{key:"panel-content-section",class:j.panelContentSection},this._renderNotices(t),I("div",{class:j.panelContentSectionGroup},this._featureForm.render(),w&&I("div",{key:"attachments"},I(F,{level:C(a)},o.attachments),this._attachments.render())));return I(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:h,headingLevel:a,handleBack:i},I("div",{key:"panel-content",class:this.classes(j.panelContent,{[j.panelContentScrimContainer]:g})},v,g&&I("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:m,label:f,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:n.delete}:null]))}_renderNotices(e){return[this._renderOwnerAdminNotice(e),this._renderInvalidFormTemplateNotice(e),this._renderInvalidDateFieldNotice(e)]}_renderOwnerAdminNotice(e){return e?.reliesOnOwnerAdminPrivileges&&this._renderNotice(this.messages.ownerAdminNotice)}_renderInvalidFormTemplateNotice(e){return e?.hasInvalidFormTemplate&&this._renderNotice(this.messages.formFieldUpdateError,{icon:B})}_renderInvalidDateFieldNotice(e){return e?.hasUnsupportedFields&&this._renderNotice(this.messages.formFieldUnsupportedUpdateError,{icon:B})}_renderNotice(e,t){return I("calcite-notice",{open:!0,scale:"s",class:j.notice,...t},I("div",{slot:"message"},e))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?this._renderNotice(o,{icon:B}):null}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:o,headingLevel:n,messages:a,messagesCommon:i}=this;return I(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:a.addAttachment,headingLevel:n,handleBack:o},I("div",{key:"attachments",class:j.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?i.cancel:i.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:o,activeWorkflow:n,headingLevel:a,messages:i,messagesCommon:r}=this;return n?I(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:i.editAttachment,headingLevel:a,handleBack:o},I("div",{key:"attachments",class:j.panelContent},t.render()),n.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return I("div",{key:"panel-content-message",class:j.panelContentMessage},e)}_renderFooterActions(e){return I("div",{key:"footer-actions",slot:"footer",class:j.actions},e.filter(t).map((({type:e,disabled:t,class:s,clickHandler:o,label:n,...a},i)=>I("calcite-button",{key:`action-${i}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:o,width:"full",...a},n))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:o,actions:n}=e,a=n.secondary;let i;switch(o){case"danger":i="danger";break;case"info":i="brand";break;default:i="neutral"}const r=I("calcite-button",{afterCreate:$,appearance:"solid",key:"prompt-primary-button",kind:i,onclick:n.primary.action,scale:"m",width:a?"half":"full","data-testid":"primary-prompt-button"},n.primary.label),l=a&&I("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:i,onclick:a.action,scale:"m",width:"half","data-testid":"secondary-prompt-button"},a.label);return I("calcite-scrim",{key:"prompt","data-testid":"prompt"},I("div",{class:`${j.promptContainer}--${o}`},I("div",{class:j.promptHeader},I("calcite-icon",{icon:B}),I(F,{class:j.promptHeading,level:this.headingLevel},t)),I("div",{class:j.promptMessage},s),I("div",{class:j.promptDivider}),I("div",{class:j.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:o,viewModel:n}=this,{canUpdate:a}=n,i=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!a&&0===i;return I(t,{active:this._isPanelActive(e),key:"landing-panel",heading:o.widgetLabel,headingLevel:s},I("div",{key:"landing-content",class:j.panelContent},a&&I("div",{key:"edit-actions",class:j.panelContentSection},this._renderUpdateActions(e)),i>0&&I("div",{key:"create-actions",class:j.panelContentSection},this._renderCreateActions()),r&&I("div",{key:"no-content",class:j.panelContentMessage},o.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage,n=o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:null;return n?I("div",{key:"footer-actions",slot:"footer",class:j.helpMessage},n):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this,o={id:"select",label:s.select};return I("div",{key:"update-actions"},I(F,{level:C(this.headingLevel)},t.editFeatures),I("calcite-list",{selectionMode:"single",selectionAppearance:"border"},y({grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===e?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return I("div",{key:"create-actions"},I(F,{level:C(t)},s.createFeatures),I("div",{key:"templates",class:j.featureTemplatesContainer},e.render()))}_renderTemplateLabel(e){return e.label}_renderTemplateDescription(e){const t=this._getUploadForTemplateItem(e);if(!t)return null;const{messages:s}=this;switch(t.state){case"pending":return s?.uploadPending;case"error":return s?.uploadError;default:return null}}_renderTemplateContentEnd(e){const t=this._getUploadForTemplateItem(e),s=I("calcite-icon",{key:"upload-icon",class:j.templateItemContentEnd,icon:"upload-to"});if(!t)return e.supportsUpload?s:null;switch(t.state){case"success":return I("calcite-icon",{key:"success-icon",class:this.classes(j.templateItemContentEnd,j.templateItemContentEndSuccess),icon:"check"});case"error":return I("calcite-icon",{key:"error-icon",class:this.classes(j.templateItemContentEnd,j.templateItemContentEndError),icon:"exclamation-mark-circle-f","data-testid":"upload-error-icon"});case"pending":return I("calcite-loader",{class:j.templateItemLoader,inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"});case"canceled":case"default":return s}}_getUploadForTemplateItem(e){const t=this.activeWorkflow;if("create-features"!==t?.type)return null;const{data:s}=t,{creationInfo:o,upload:n}=s;return o?.template===e.template&&o?.layer===e.layer?n:null}_renderFeatureList(e){const{EditorPanel:s,_onBack:o,headingLevel:n,messages:a,messagesTemplates:i,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=L(a.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,o=this._filterText.toLowerCase(),{title:n}=s.layer,a=l.find((e=>e.layer===s.layer));if(!a)return null;const{attachmentsOnUpdateEnabled:i,supports:r}=a;return(r.includes("update")||r.includes("delete")||i)&&(!o||t?.toLowerCase().includes(o)||n?.toLowerCase().includes(o))})).filter(t).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const h=l.toArray().map((({layer:e})=>p.get(e))).filter(t),u=m>10||this._filterText.length>0;return I(s,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:n,handleBack:o},I("div",{key:"feature-list",class:j.panelContent},I("div",{class:j.panelContentSection},k({enableListScroll:!1,filterEnabled:u,filterText:this._filterText,id:this.id,items:h,messages:{filterPlaceholder:i.filterPlaceholder,noItems:i.noItems,noMatches:i.noMatches},onFilterChange:e=>this._filterText=e,onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0)}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const{labelOptions:e,messagesCommon:t,snappingOptions:s,tooltipOptions:o,view:n,visibleElements:a}=this,i=[];return a.sketchTooltipControls&&i.push(I(M,{tooltipOptions:o,labelOptions:e,visibleElements:{labelsToggle:"3d"===n?.type}})),a.snappingControls&&i.push(I(A,{snappingOptions:s,view:n,visibleElements:a.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1})),0===i.length?null:I("calcite-accordion",{key:"settings",class:j.settingsContainer,appearance:"transparent"},I("calcite-accordion-item",{heading:t?.settings,iconStart:"gear"},i))}_getLabel(e){const t=e.layer;if(!t)return null;const s=t.fieldsIndex.get(t.objectIdField),o=s.alias||s.name,{attributes:n}=e,a=p(t);return a&&n[a]&&`${n[a]}`||`${o}: ${n[s.name]}`}_showPrompt({title:e,message:t,yesLabel:s,noLabel:n}){const a=o(),{view:i}=this,r=i?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:s,action:()=>a.resolve(!0)},secondary:{label:n,action:()=>a.resolve(!1)}}},a.promise.finally((()=>{this._clearPrompt(),r&&i?.focus()}))}_onSave(){this.viewModel.saveWorkflow()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([l()],H.prototype,"_featureForm",void 0),e([l()],H.prototype,"_attachments",void 0),e([l()],H.prototype,"_featureTemplates",void 0),e([l()],H.prototype,"_filterText",void 0),e([l()],H.prototype,"_prompt",void 0),e([l()],H.prototype,"_spinner",void 0),e([l()],H.prototype,"_deleteButtonCommonInfo",null),e([l({readOnly:!0})],H.prototype,"activeWorkflow",null),e([l()],H.prototype,"allowedWorkflows",null),e([l()],H.prototype,"useDeprecatedCreateWorkflow",null),e([l()],H.prototype,"headingLevel",void 0),e([l()],H.prototype,"iconClass",void 0),e([l()],H.prototype,"label",null),e([l()],H.prototype,"labelOptions",null),e([l()],H.prototype,"layerInfos",null),e([l(),E("esri/widgets/Editor/t9n/Editor")],H.prototype,"messages",void 0),e([l(),E("esri/t9n/common")],H.prototype,"messagesCommon",void 0),e([l(),E("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],H.prototype,"messagesTemplates",void 0),e([l()],H.prototype,"snappingOptions",null),e([l()],H.prototype,"tooltipOptions",null),e([l()],H.prototype,"supportingWidgetDefaults",void 0),e([l()],H.prototype,"view",null),e([l(),W(["workflow-cancel","workflow-commit"])],H.prototype,"viewModel",void 0),e([l()],H.prototype,"visibleElements",void 0),e([c("visibleElements")],H.prototype,"castVisibleElements",null),e([T()],H.prototype,"_onSave",null),e([T()],H.prototype,"_onDelete",null),e([T()],H.prototype,"_onBack",null),e([T()],H.prototype,"_onAttachmentAdd",null),e([T()],H.prototype,"_onAttachmentUpdate",null),e([T()],H.prototype,"_onAttachmentDelete",null),H=e([d(O)],H);const N=H;export{N as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{destroyMaybe as t}from"../../../core/maybe.js";import{watch as s}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LEGEND_ITEM_CSS as c}from"../css.js";import{Statistics as l}from"./Statistics.js";import{getTranslatedLineTitle as n}from"../support/intlUtils.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";import{substitute as h}from"../../../intl/substitute.js";let m=class extends r{constructor(e,t){super(e,t),this.checkboxVisible=!0,this.expanded=!1}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){this._statistics=new l(this._statisticsProps),this.addHandles(s((()=>this._statisticsProps),(e=>this._statistics.set(e))))}destroy(){this._statistics=t(this._statistics)}render(){const e=this.expanded;return p("div",{key:this,class:this.classes(c.base,{[c.disabled]:this.disabled,[c.expanded]:e})},this._renderColorIndicator(),p("div",{key:"header",class:c.header},this._renderLabelWithCheckbox(),this._renderCollapseToggleButton()),e&&p("div",{key:"content",class:c.content},this._statistics.render()))}get disabled(){return!this.line.available}get _statisticsProps(){return{line:this.line,effectiveUnits:this.effectiveUnits}}_renderColorIndicator(){return p("div",{key:"color-indicator",class:c.colorIndicator,styles:{backgroundColor:this.line.color.toCss()}})}_renderCollapseToggleButton(){const{expanded:e,messages:t}=this,s=e?t.hideDetails:t.showDetails;return p("calcite-action",{appearance:"transparent",bind:this,class:c.collapseToggle,icon:e?"chevron-up":"chevron-down",key:"collapse-toggle",onclick:this._onCollapseToggleClick,scale:"s",text:s})}_onCollapseToggleClick(){this.onExpandedToggle()}_renderLabelWithCheckbox(){const{line:e,checkboxVisible:t,disabled:s,messages:o}=this,i=`label-${e.id}`;return p("calcite-label",{key:i,class:c.label,disabled:s,layout:"inline"},t&&this._renderCheckbox(e.id),n(e,o))}_renderCheckbox(e){const{disabled:t,line:s,messages:o}=this,i=s.visible,r=`${e}-checkbox`,l=i?o.hideProfile:o.showProfile,a=h(l,{name:n(s,o)});return p(d,null,p("calcite-checkbox",{checked:i,class:c.checkbox,disabled:t,id:r,key:"checkbox",onCalciteCheckboxChange:()=>s.toggleVisibility()}),p("calcite-tooltip",{label:a,overlayPositioning:"fixed",referenceElement:r,placement:"top"},a))}};e([o()],m.prototype,"checkboxVisible",void 0),e([o()],m.prototype,"disabled",null),e([o({nonNullable:!0})],m.prototype,"effectiveUnits",void 0),e([o()],m.prototype,"expanded",void 0),e([o({nonNullable:!0})],m.prototype,"line",void 0),e([o()],m.prototype,"messages",void 0),e([o()],m.prototype,"onExpandedToggle",void 0),e([o()],m.prototype,"_statistics",void 0),m=e([i("esri.widgets.ElevationProfile.LegendItem")],m);export{m as LegendItem};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{destroyMaybe as t}from"../../../core/maybe.js";import{watch as s}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import r from"../../Widget.js";import{LEGEND_ITEM_CSS as c}from"../css.js";import{Statistics as l}from"./Statistics.js";import{getTranslatedLineTitle as n}from"../support/intlUtils.js";import{loadCalciteComponents as a}from"../../support/componentsUtils.js";import"../../support/widgetUtils.js";import{tsx as p,tsxFragment as d}from"../../support/jsxFactory.js";import{substitute as h}from"../../../intl/substitute.js";let m=class extends r{constructor(e,t){super(e,t),this.checkboxVisible=!0,this.expanded=!1}loadDependencies(){return a({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}initialize(){this._statistics=new l(this._statisticsProps),this.addHandles(s((()=>this._statisticsProps),(e=>this._statistics.set(e))))}destroy(){this._statistics=t(this._statistics)}render(){const e=this.expanded;return p("div",{key:this,class:this.classes(c.base,{[c.disabled]:this.disabled,[c.expanded]:e})},this._renderColorIndicator(),p("div",{key:"header",class:c.header},this._renderLabelWithCheckbox(),this._renderCollapseToggleButton()),e&&p("div",{key:"content",class:c.content},this._statistics.render()))}get disabled(){return!this.line.available}get _statisticsProps(){return{line:this.line,effectiveUnits:this.effectiveUnits}}_renderColorIndicator(){return p("div",{key:"color-indicator",class:c.colorIndicator,styles:{backgroundColor:this.line.color.toCss()}})}_renderCollapseToggleButton(){const{expanded:e,messages:t}=this,s=e?t.hideDetails:t.showDetails;return p("calcite-action",{appearance:"transparent",bind:this,class:c.collapseToggle,"data-testid":"legend-toggle",icon:e?"chevron-up":"chevron-down",key:"collapse-toggle",onclick:this._onCollapseToggleClick,scale:"s",text:s})}_onCollapseToggleClick(){this.onExpandedToggle()}_renderLabelWithCheckbox(){const{line:e,checkboxVisible:t,disabled:s,messages:o}=this,i=`label-${e.id}`;return p("calcite-label",{key:i,class:c.label,disabled:s,layout:"inline"},t&&this._renderCheckbox(e.id),n(e,o))}_renderCheckbox(e){const{disabled:t,line:s,messages:o}=this,i=s.visible,r=`${e}-checkbox`,l=i?o.hideProfile:o.showProfile,a=h(l,{name:n(s,o)});return p(d,null,p("calcite-checkbox",{checked:i,class:c.checkbox,disabled:t,id:r,key:"checkbox",onCalciteCheckboxChange:()=>s.toggleVisibility()}),p("calcite-tooltip",{label:a,overlayPositioning:"fixed",referenceElement:r,placement:"top"},a))}};e([o()],m.prototype,"checkboxVisible",void 0),e([o()],m.prototype,"disabled",null),e([o({nonNullable:!0})],m.prototype,"effectiveUnits",void 0),e([o()],m.prototype,"expanded",void 0),e([o({nonNullable:!0})],m.prototype,"line",void 0),e([o()],m.prototype,"messages",void 0),e([o()],m.prototype,"onExpandedToggle",void 0),e([o()],m.prototype,"_statistics",void 0),m=e([i("esri.widgets.ElevationProfile.LegendItem")],m);export{m as LegendItem};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
const e="esri-elevation-profile",t={esriWidget:"esri-widget--panel esri-widget",esriWidgetDisabled:"esri-widget--disabled",widgetIcon:"esri-icon-elevation-profile",base:`${e}`,portrait:`${e}--portrait`,refined:`${e}--refined`,mainContainer:`${e}__main-container`,promptContainer:`${e}__prompt-container`,header:`${e}__header`,zoomOutButton:`${e}__zoom-out-button`,clearButton:`${e}__clear-button`,actionButton:`${e}__action-button`,sketchButton:`${e}__sketch-button`,sketchCancelButton:`${e}__sketch-cancel-button`,sketchDoneButton:`${e}__sketch-done-button`,selectButton:`${e}__select-button`,selectCancelButton:`${e}__select-cancel-button`,chartContainer:`${e}__chart-container`,chartSpinner:`${e}__chart-spinner`,chartSpinnerVisible:`${e}__chart-spinner--visible`,chartSpinnerSmall:`${e}__chart-spinner--small`,footer:`${e}__footer`},i={
|
|
5
|
+
const e="esri-elevation-profile",t={esriWidget:"esri-widget--panel esri-widget",esriWidgetDisabled:"esri-widget--disabled",widgetIcon:"esri-icon-elevation-profile",base:`${e}`,portrait:`${e}--portrait`,refined:`${e}--refined`,mainContainer:`${e}__main-container`,promptContainer:`${e}__prompt-container`,header:`${e}__header`,zoomOutButton:`${e}__zoom-out-button`,clearButton:`${e}__clear-button`,actionButton:`${e}__action-button`,sketchButton:`${e}__sketch-button`,sketchCancelButton:`${e}__sketch-cancel-button`,sketchDoneButton:`${e}__sketch-done-button`,selectButton:`${e}__select-button`,selectCancelButton:`${e}__select-cancel-button`,chartContainer:`${e}__chart-container`,chartSpinner:`${e}__chart-spinner`,chartSpinnerVisible:`${e}__chart-spinner--visible`,chartSpinnerSmall:`${e}__chart-spinner--small`,footer:`${e}__footer`},i={base:"esri-elevation-profile-legend"},n="esri-elevation-profile-legend-item",o={base:n,disabled:`${n}--disabled`,expanded:`${n}--expanded`,colorIndicator:`${n}__color-indicator`,header:`${n}__header`,content:`${n}__content`,collapseToggle:`${n}__collapse-toggle`,label:`${n}__label`,checkbox:`${n}__checkbox`},a="esri-elevation-profile-statistics",r={base:a,statistic:`${a}__statistic`,statisticLabel:`${a}__statistic__label`,statisticValue:`${a}__statistic__value`,slopeValue:`${a}__slope-value`},l="esri-elevation-profile-settings",_={base:`${l}`,popoverContent:`${l}__popover-content`,uniformChartScalingLabel:`${l}__uniform-scaling-label`,uniformChartScalingCheckbox:`${l}__uniform-scaling-checkbox`};export{t as CSS,i as LEGEND_CSS,n as LEGEND_ITEM_BASE,o as LEGEND_ITEM_CSS,_ as SETTINGS_CSS,r as STATISTICS_CSS};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../../../intl.js";import{binaryFindClosest as i}from"../../../core/arrayUtils.js";import t from"../../../core/Error.js";import{handlesGroup as e,makeHandle as n}from"../../../core/handleUtils.js";import{throwIfAborted as o}from"../../../core/promiseUtils.js";import{formatDecimal as a,unitName as l}from"../../../core/unitFormatUtils.js";import{convertUnit as s}from"../../../core/unitUtils.js";import{CHART_CSS as r}from"../css.js";import{getConfig as d,NOT_AVAILABLE as c}from"./constants.js";import{getTranslatedLineTitle as u}from"./intlUtils.js";import{niceScale as m}from"./niceScale.js";import{loadChartsModule as x}from"../../support/chartUtils.js";import{isRTL as p}from"../../support/widgetUtils.js";import{isDarkTheme as f}from"../../../support/themeUtils.js";import{substitute as g}from"../../../intl/substitute.js";import{formatNumber as h}from"../../../intl/number.js";const b="#f8f8f8",v="#a9a9a9",T="#323232",A="line",C="fill",y=15,L=12,z=30,k=.001,P=.5,S=.5,w=.02,F=.02,M={sideSpacing:y,paddingBottom:0,paddingLeft:0,paddingRight:0,paddingTop:0,axisFontSize:9,axisFontWeight:"400",axisGridStroke:"#f4f4f4",axisLabelsFontSize:9,axisLabelsFontWeight:"400",axisLabelsColor:v,axisTooltipFontSize:12,axisTooltipBackgroundColor:T,axisTooltipLabelColor:b,axisTooltipPaddingTop:Math.round(L/4),axisTooltipPaddingBottom:Math.round(L/4),axisTooltipPaddingHorizontal:Math.round(y/4),xAxisMinGridDistance:50,xAxisLabelsSpacing:Math.round(L/2),xAxisMinLabelPosition:.05,xAxisMaxLabelPosition:.9,yAxisMinGridDistance:30,yAxisLabelSpacing:Math.round(y/4),yAxisMinLabelPosition:0,yAxisMaxLabelPosition:.8,seriesTooltipFontSize:12,seriesTooltipBackgroundColor:b,seriesTooltipLabelColor:T,seriesFillLighten:.9,seriesTooltipSpacing:L/2,seriesTooltipPaddingVertical:Math.round(y/4),seriesTooltipPaddingHorizontal:Math.round(y/4),tooltipBorderRadius:0},Y={...M,axisGridStroke:T,axisLabelsColor:v,axisTooltipBackgroundColor:T,axisTooltipLabelColor:b,seriesTooltipBackgroundColor:T,seriesTooltipLabelColor:b,seriesFillLighten:-.75},X={minX:void 0,maxX:void 0,minY:void 0,maxY:void 0};async function I(i){const n=await x();if(!n)throw new t("elevation-profile:load-failed","Could not load amCharts");const{am4core:a,am4charts:l}=n;o(i.abortOptions);const{options:s}=a;s.minPolylineStep=P,s.autoSetClassName=!0,s.animationsEnabled=!1;const r=f(),c=r?Y:M;r&&a.useTheme(n.am4themes_dark);const u=a.create(i.container,l.XYChart);u.arrangeTooltips=!1,u.preloader.disabled=!0,u.zoomOutButton.disabled=!0;const m=p(i.container);u.rtl=m,u.padding(c.paddingTop,m?c.paddingLeft:c.paddingRight,c.paddingBottom,m?c.paddingRight:c.paddingLeft);const g=u.plotContainer.background;g.strokeWidth=0,g.strokeOpacity=0,g.stroke=null;const h=u.xAxes.push(new l.ValueAxis),b=u.yAxes.push(new l.ValueAxis),v={params:i,amCharts4Index:n,amChart:u,xAxis:h,yAxis:b,series:new Map,data:null,messages:null,theme:c,zooming:!1,pointerIsOver:!1};u.cursor=W(v),j(v),D(v),U(v);const T=[N(v,i.onRangeChange),J(v,i.onCursorPositionChange),_(v)];let A=null,C=!1;const y=()=>{null!=A&&("undefined"!=typeof window&&"cancelIdleCallback"in window?window.cancelIdleCallback(A):clearTimeout(A),A=null)};return{...v,destroy(){C=!0,y(),e(T).remove(),u.dispose()},update(i){if(i.data===v.data&&i.messages===v.messages)return;if(y(),C)return;const t=()=>{C||(A=null,H(v,i))};A="undefined"!=typeof window&&"requestIdleCallback"in window?window.requestIdleCallback(t,{timeout:d().chartUpdateDelayMillis}):setTimeout(t,d().chartUpdateDelayMillis)},zoomOut(){C||(v.yAxis.zoom({start:0,end:1},!1,!0),v.xAxis.zoom({start:0,end:1},!1,!0))}}}function W(i){const t=new i.amCharts4Index.am4charts.XYCursor;return t.trackable=!0,t.lineY.disabled=!0,t.behavior="zoomXY",t}function j(i){const t=i.theme,e=i.amChart.tooltip,{am4core:n}=i.amCharts4Index;e.id="series-tooltip",e.fitPointerToBounds=!0,e.pointerOrientation="vertical",e.zIndex=-1,e.getFillFromObject=!1,e.label.fontSize=t.seriesTooltipFontSize,e.label.fill=n.color(t.seriesTooltipLabelColor),e.label.padding(t.seriesTooltipPaddingVertical,t.seriesTooltipPaddingHorizontal,t.seriesTooltipPaddingVertical,t.seriesTooltipPaddingHorizontal),e.background.cornerRadius=t.tooltipBorderRadius,e.background.stroke=null,e.background.fill=n.color(t.seriesTooltipBackgroundColor),e.background.padding(0,0,0,0),e.adapter.add("dy",(()=>t.seriesTooltipSpacing*(e.background.pointerY<=0?1:-1))),p(i.params.container)&&(e.label.textAlign="middle")}function D(i){const{xAxis:t,theme:e}=i,{am4core:n}=i.amCharts4Index;t.numberFormatter=oi(i,"distance"),t.strictMinMax=!0,t.cursorTooltipEnabled=!1,t.title.visible=!1;const o=t.renderer;o.line.visible=!1,o.minGridDistance=e.xAxisMinGridDistance,o.minLabelPosition=e.xAxisMinLabelPosition,o.maxLabelPosition=e.xAxisMaxLabelPosition,o.fontWeight=e.axisFontWeight,o.fontSize=e.axisFontSize,o.baseGrid.disabled=!0;const a=o.labels.template;a.fontSize=e.axisLabelsFontSize,a.fontWeight=e.axisLabelsFontWeight,a.fill=n.color(e.axisLabelsColor),a.paddingTop=e.xAxisLabelsSpacing,a.horizontalCenter="left",a.paddingLeft=0;const l=t.tooltip;l.id="axis-tooltip",l.background.fill=n.color(e.axisTooltipBackgroundColor),l.background.stroke=null,l.background.padding(0,0,0,0),l.label.fontSize=e.axisTooltipFontSize,l.label.fill=n.color(e.axisTooltipLabelColor),l.label.padding(e.axisTooltipPaddingTop,e.axisTooltipPaddingHorizontal,e.axisTooltipPaddingBottom,e.axisTooltipPaddingHorizontal);const s=o.grid.template;s.strokeOpacity=1,s.stroke=n.color(e.axisGridStroke)}function U(i){const{yAxis:t,theme:e}=i,{am4core:n}=i.amCharts4Index;t.numberFormatter=oi(i,"elevation"),t.title.visible=!1,t.cursorTooltipEnabled=!1,t.strictMinMax=!0,t.baseValue=d().noDataValue;const o=t.renderer;o.inside=!0,o.line.opacity=0,o.line.visible=!1,o.minGridDistance=e.yAxisMinGridDistance,o.minLabelPosition=e.yAxisMinLabelPosition,o.maxLabelPosition=e.yAxisMaxLabelPosition,o.fontWeight=e.axisFontWeight,o.fontSize=e.axisFontSize,o.baseGrid.disabled=!0;const a=o.labels.template;a.fontSize=e.axisLabelsFontSize,a.fontWeight=e.axisLabelsFontWeight,a.fill=n.color(e.axisLabelsColor),a.verticalCenter="bottom",a.paddingLeft=e.yAxisLabelSpacing,a.paddingBottom=0;const l=o.grid.template;l.strokeOpacity=1,l.stroke=n.color(e.axisGridStroke),p(i.params.container)&&(o.opposite=!0,a.textAlign="middle",a.paddingLeft=0,a.paddingRight=e.yAxisLabelSpacing)}function H(i,{data:t,messages:e}){const{htmlContainer:n}=i.amChart;if(!n)return;const o=null!=t&&t.refined;i.amChart.cursor.disabled=!o,n.classList.toggle(r.cursorEnabled,o);const a=(i.data??null)!==(t??null),l=(i.data?.effectiveUnits??null)!==(t?.effectiveUnits??null);i.data=t,i.messages=e,a&&(E(i),R(i)),l&&(i.yAxis.invalidateLabels(),i.xAxis.invalidateLabels()),Q(i)}function E(i){const{xAxis:t,yAxis:e}=i,{minX:n,maxX:o,minY:a,maxY:l}=O({data:i.data,pixelWidth:t.pixelWidth,pixelHeight:e.pixelHeight});t.min=n,t.max=o,e.min=a,e.max=l}function O({data:i,pixelWidth:t,pixelHeight:e}){if(null==i)return X;const n=i.statistics,o=0,a=n?.maxDistance;let l=n?.minElevation,r=n?.maxElevation;if(null==a||null==l||null==r)return X;const c=Math.max(a-o,k);let u=Math.max(r-l,k);const x=i.effectiveUnits;if(i.dynamicElevationRange){const i=s(c,x.distance,x.elevation);u=Math.max(u,i/d().maxChartRatio)}return l-=F*u,r=l+u+w*u,[l,r]=m(l,r,10),u=r-l,i.uniformScaling?B({data:i,bounds:{minX:o,maxX:a,minY:l,maxY:r},pixelWidth:t,pixelHeight:e,centered:!0}):{minX:o,maxX:o+c,minY:l,maxY:l+u}}function B({data:i,bounds:t,pixelWidth:e,pixelHeight:n,centered:o}){if(null==i)return t;let{minX:a,maxX:l,minY:r,maxY:d}=t;if(null==a||null==l||null==r||null==d)return X;const c=l-a,u=d-r,m=i.effectiveUnits,x=s(u,m.elevation,m.distance)/n/(c/e);return x>=1?[a,l]=G([a,l],x,o):[r,d]=G([r,d],1/x,o),{minX:a,maxX:l,minY:r,maxY:d}}function G([i,t],e,n){const o=(t-i)*e;if(n){const e=(i+t)/2-o/2;return[e,e+o]}return[i,i+o]}function R(i){const{amChart:t,data:e}=i;if(null==e||0===e.lines.length)return void t.series.clear();const n=new Map,o=new Set(t.series.values),a=e.lines.length;for(let l=0;l<a;l++){const s=e.lines[l];let r=i.series.get(s.id);r?(r.fill&&o.delete(r.fill),o.delete(r.line)):(r=$(i,s),r.fill&&t.series.push(r.fill),t.series.push(r.line)),n.set(r.id,r);const d=a-l-1;r.fill&&(r.fill.zIndex=d),r.line.zIndex=a+d,V(i,r,s)}i.series=n;for(const l of o)t.series.removeValue(l)}function V(i,{line:t,fill:e},n){const{theme:o}=i,{am4core:a}=i.amCharts4Index,{r:l,g:s,b:r,a:d}=n.color,c=a.color({r:l,g:s,b:r,a:d}),u=n.samples??new Array,m=u.length>0;t.stroke=c,t.visible=m,e&&(e.visible=m,e.fill=c.lighten(o.seriesFillLighten));const x=u.length,p=t.data;if(p.length===x){let i=!1;for(let t=0;t<x;++t){const e=p[t],n=u[t];i=i||null!=e.elevation!=(null!=n.elevation),Z(e,n)}i?(t.invalidateData(),e?.invalidateData()):(t.invalidateRawData(),e?.invalidateRawData())}else t.data=u,e&&(e.data=u)}function Z(i,t){i.x=t.x,i.y=t.y,i.z=t.z,i.distance=t.distance,i.elevation=t.elevation}function $(i,t){const{id:e}=t,n=q(i,`${A}-${e}`);n.strokeWidth=t.chartStrokeWidth,n.dy=t.chartStrokeOffsetY;let o=null;return t.chartFillEnabled&&(o=q(i,`${C}-${e}`),o.fillOpacity=1),{id:e,line:n,fill:o}}function q(i,t){const e=new i.amCharts4Index.am4charts.LineSeries;e.id=t,e.showOnInit=!1,e.simplifiedProcessing=!0,e.minDistance=S,e.excludeFromTotal=!0,e.clickable=!1,e.contextMenuDisabled=!0,e.cursorHoverEnabled=!1,e.cursorTooltipEnabled=!1,e.connect=!1,e.fill=null,e.stroke=null;const n="distance";e.dataFields.valueX=n;const o="elevation";return e.dataFields.valueY=o,e}function N(i,t){const{amChart:e,xAxis:o,yAxis:a}=i;let l=!1;const s=()=>{const{data:t}=i;if(!l||null==t||!t.uniformScaling)return;l=!1;const{minX:n,maxX:s,minY:r,maxY:d}=B({data:i.data,bounds:{minX:o.minZoomed,maxX:o.maxZoomed,minY:a.minZoomed,maxY:a.maxZoomed},pixelWidth:o.pixelWidth,pixelHeight:a.pixelHeight,centered:!0});null!=n&&null!=s&&o.zoomToValues(n,s,!0),null!=r&&null!=d&&a.zoomToValues(r,d,!0),e.validate(),Q(i)},r=()=>{t(i.xAxis.zoomFactor,i.yAxis.zoomFactor)},d=t=>{i.zooming=t,Q(i)},c=[e.events.on("down",(()=>d(!0))),e.events.on("up",(()=>d(!1))),e.cursor.events.on("zoomended",(()=>{l=!0})),o.events.on("startendchanged",s),a.events.on("startendchanged",s),o.events.on("rangechangeended",r),a.events.on("rangechangeended",r)];return n((()=>{c.forEach((i=>i.dispose()))}))}function _({xAxis:i,yAxis:t}){const e=i=>()=>{i.renderer.grid.each((i=>{i.visible="none"!==i.dataItem.label.dom.getAttribute("display")}))},o=[i.events.on("rangechangeended",e(i)),i.events.on("validated",e(i)),t.events.on("rangechangeended",e(t)),t.events.on("validated",e(t))];return n((()=>{o.forEach((i=>i.dispose()))}))}function J(i,t){const{amChart:e,xAxis:o,yAxis:a}=i,{cursor:l,events:s}=e,r=t=>{i.pointerIsOver=t,Q(i)},d=()=>{r(!1),t(null,null)},c=[l.events.on("cursorpositionchanged",(()=>{if(!i.pointerIsOver)return;Q(i);let e=o.toAxisPosition(l.xPosition),n=a.toAxisPosition(l.yPosition);const s=i.data;if(null!=s&&null!=s.statistics){const{maxDistance:i,minElevation:t,maxElevation:l}=s.statistics;null!=i&&(e=K(e,o.minZoomed,o.maxZoomed,0,i)),null!=t&&null!=l&&(n=K(n,a.minZoomed,a.maxZoomed,t,l))}t(e,n)})),s.on("over",(()=>r(!0))),s.on("out",d),s.on("blur",d)];return n((()=>{c.forEach((i=>i.dispose()))}))}function K(i,t,e,n,o){return(t+i*(e-t)-n)/(o-n)}function Q(i){const{amChart:t,xAxis:e,data:n,theme:o,zooming:a,pointerIsOver:l}=i;if(i.amChart.tooltip.hide(),i.xAxis.hideTooltip(),!l)return;if(a)return;if(null==n||!n.refined)return;const s=ii(i);if(null!=s){const{cursor:n}=t,a=t.tooltip;n.show(0),n.validate(),a.text=s.text,a.show(0),a.validate();const l=s.y-a.contentHeight-o.seriesTooltipSpacing;a.pointerOrientation=l<z?"up":"down",a.pointTo(s,!0),a.validate();const r=e.tooltip;r.text=ni(i),r.show(0),r.validate()}}function ii(i){const{amChart:t,yAxis:e,data:n}=i;if(null==n)return null;const o=n.lines.map((t=>({line:t,y:ai(i,t)?.elevation}))).sort(ti),a=o.length?o[0].y:null;if(null==a)return null;const l=t.cursor,s=e.measuredHeight,r=s+t.pixelPaddingTop;return{text:o.map((({y:t,line:e})=>ei(i,e,t))).join("\n"),x:l.point.x+l.parent.pixelX+t.pixelPaddingLeft,y:r-e.valueToPosition(a)*s}}function ti({y:i},{y:t}){return null==i?1:null==t?-1:t-i}function ei(i,t,e){const{data:n,messages:o}=i;if(null==n||null==o)return"";const l=d().formatPrecision,s=g(o.chartTooltip,{name:u(t,o),elevation:null!=e?a(o,e,n.effectiveUnits.elevation,l):c});return`[${t.color.toHex()}]●[/] ${s}`}function ni(i){const{data:t,messages:e}=i;if(null==t||null==e)return"";const n=t.lines[0],o=n?ai(i,n):null,l=d().formatPrecision;return null!=o?a(e,o.distance,t.effectiveUnits.distance,l):"-"}function oi(i,t){const e=i.xAxis.numberFormatter.clone();return e.format=(e,n,o)=>{const{messages:a,data:s}=i;if(null==a||null==s||"string"==typeof e)return"";return`${h(e,{maximumFractionDigits:o})} ${l(a,s.effectiveUnits[t],"abbr")}`},e}function ai({amChart:t,xAxis:e},n){const o=n.samples??[];if(0===o.length)return null;const a=e.toAxisPosition(t.cursor.xPosition),l=e.positionToValue(a);return i(o,l,(i=>i.distance))}export{I as createChart,O as getAdjustedBounds};
|
|
5
|
+
import{r as t,d as i}from"../../../chunks/Responsive.js";import"../../../intl.js";import{binaryFindClosest as e}from"../../../core/arrayUtils.js";import{handlesGroup as n,makeHandle as o}from"../../../core/handleUtils.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{signal as a}from"../../../core/signal.js";import{formatDecimal as l,unitName as r}from"../../../core/unitFormatUtils.js";import{convertUnit as d}from"../../../core/unitUtils.js";import{g as c}from"../../../chunks/common.js";import{getConfig as p,NOT_AVAILABLE as u}from"./constants.js";import{getTranslatedLineTitle as m}from"./intlUtils.js";import{niceScale as x}from"./niceScale.js";import{c as f,N as g}from"../../../chunks/chartUtilsAm5.js";import{isRTL as h}from"../../support/widgetUtils.js";import{isDarkTheme as A}from"../../../support/themeUtils.js";import{X as v,V as b,A as T,a as y,b as L,L as M}from"../../../chunks/LineSeries.js";import{aq as S,a6 as P,a4 as k,C as X}from"../../../chunks/Theme.js";import{T as Y}from"../../../chunks/Tooltip.js";import{substitute as z}from"../../../intl/substitute.js";import{formatNumber as F}from"../../../intl/number.js";const C="#f8f8f8",j="#a9a9a9",w="#323232",H="line",B="fill",U=15,D=12,R=.001,O=.5,W=.1,G=.02,V={paddingBottom:D/2,paddingLeft:0,paddingRight:0,paddingTop:0,axisGridStroke:"#f4f4f4",axisLabelsFontSize:9,axisLabelsFontWeight:"400",axisLabelsColor:j,axisTooltipFontSize:12,axisTooltipBackgroundColor:w,axisTooltipLabelColor:C,axisTooltipPaddingTop:Math.round(D/4),axisTooltipPaddingBottom:Math.round(D/4),axisTooltipPaddingHorizontal:Math.round(U/4),xAxisMinGridDistance:50,xAxisLabelsSpacing:Math.round(D/2),xAxisMinLabelPosition:.05,xAxisMaxLabelPosition:.9,yAxisMinGridDistance:30,yAxisLabelSpacing:Math.round(U/4),yAxisMinLabelPosition:0,yAxisMaxLabelPosition:.8,seriesTooltipFontSize:12,seriesTooltipBackgroundColor:C,seriesTooltipLabelColor:w,seriesFillLighten:.9,seriesTooltipSpacing:D/2,seriesTooltipPaddingVertical:Math.round(U/4),seriesTooltipPaddingHorizontal:Math.round(U/4)},E={...V,axisGridStroke:w,axisLabelsColor:j,axisTooltipBackgroundColor:w,axisTooltipLabelColor:C,seriesTooltipBackgroundColor:w,seriesTooltipLabelColor:C,seriesFillLighten:-.75},$={minX:void 0,maxX:void 0,minY:void 0,maxY:void 0};async function I(e){const o=await f(e.container);s(e.abortOptions);const l=A(),r=l?E:V;o.setThemes(l?[t.new(o),i.new(o)]:[t.new(o)]);const d=h(e.container),c=o.container.children.push(v.new(o,{panX:!0,panY:!0,paddingTop:r.paddingTop,paddingBottom:r.paddingBottom,paddingLeft:d?r.paddingRight:r.paddingLeft,paddingRight:d?r.paddingLeft:r.paddingRight,maxTooltipDistance:0}));c.zoomOutButton.set("forceHidden",!0);const p=c.xAxes.push(b.new(o,{renderer:T.new(o,{})})),u=c.yAxes.push(b.new(o,{renderer:y.new(o,{})})),m={params:e,chart:c,xAxis:p,yAxis:u,series:new Map,data:null,messages:null,theme:r,state:a("loading"),pointerIsOver:a(!1)};q(m),N(m),Z(m);const x=n([at(m,e.onRangeChange),rt(m,e.onCursorPositionChange),yt(o.events.once("frameended",(()=>{m.state.value="ready"}))),yt(o)]);return{...m,destroy(){x.remove(),m.state.value="destroyed"},update(t){"destroyed"!==m.state.value&&J(m,t)},zoomOut(){"destroyed"!==m.state.value&&(m.xAxis.zoom(0,1),m.yAxis.zoom(0,1))}}}function Z({chart:t,xAxis:i,yAxis:e}){const n=L.new(t.root,{behavior:"none",xAxis:i,yAxis:e});n.lineY.set("visible",!1),t.set("cursor",n)}function q(t){const{chart:i,xAxis:e,theme:n}=t;e.setAll({extraMax:0,extraMin:0,maxDeviation:0,numberFormatter:ft(t,"distance"),strictMinMax:!0,strictMinMaxSelection:!0}),e.axisHeader.set("forceHidden",!0);const o=e.get("renderer");o.setAll({inside:!1,minGridDistance:n.xAxisMinGridDistance}),o.labels.template.setAll({centerX:S,centerY:S,fill:P(n.axisLabelsColor),fontSize:n.axisLabelsFontSize,fontWeight:n.axisLabelsFontWeight,maxPosition:n.xAxisMaxLabelPosition,minPosition:n.xAxisMinLabelPosition,paddingLeft:0,paddingRight:0,paddingTop:n.xAxisLabelsSpacing});const s=e.set("tooltip",Y.new(i.root,{paddingBottom:0,paddingLeft:0,paddingRight:0,paddingTop:0}));s.get("background")?.setAll({fill:P(n.axisTooltipBackgroundColor),stroke:void 0}),s.label.setAll({fill:P(n.axisTooltipLabelColor),fontSize:n.axisTooltipFontSize,paddingBottom:n.axisTooltipPaddingBottom,paddingLeft:n.axisTooltipPaddingHorizontal,paddingRight:n.axisTooltipPaddingHorizontal,paddingTop:n.axisTooltipPaddingTop}),o.grid.template.setAll({strokeOpacity:1,stroke:P(n.axisGridStroke)})}function N(t){const{yAxis:i,theme:e}=t;i.setAll({baseValue:p().noDataValue,extraMax:0,extraMin:0,maxDeviation:0,numberFormatter:ft(t,"elevation"),strictMinMax:!0,strictMinMaxSelection:!0,tooltip:void 0}),i.axisHeader.set("visible",!1);const n=h(t.params.container),o=i.get("renderer");o.setAll({minGridDistance:e.yAxisMinGridDistance,opposite:n,inside:!0}),o.labels.template.setAll({centerX:S,centerY:k,fill:P(e.axisLabelsColor),fontSize:e.axisLabelsFontSize,fontWeight:e.axisLabelsFontWeight,maxPosition:e.yAxisMaxLabelPosition,minPosition:e.yAxisMinLabelPosition,paddingBottom:0,paddingLeft:n?0:e.yAxisLabelSpacing,paddingRight:n?e.yAxisLabelSpacing:0,paddingTop:0,textAlign:"start"}),o.grid.template.setAll({strokeOpacity:1,stroke:P(e.axisGridStroke)})}function J(t,{data:i,messages:e}){if(t.chart.root.isDisposed())return;const n=null!=i&&i.refined;t.chart.get("cursor")?.set("forceHidden",!n);const o=(t.data??null)!==(i??null),s=(t.data?.effectiveUnits??null)!==(i?.effectiveUnits??null);t.data=i,t.messages=e,(o||s)&&(K(t),it(t)),ct(t)}function K(t){const{chart:i,xAxis:e,yAxis:n}=t,{minX:o,maxX:s,minY:a,maxY:l}=Q({data:t.data,pixelWidth:e.width(),pixelHeight:n.height()}),r=t.data?.uniformScaling;i.setAll({panX:!0,panY:r,pinchZoomX:r,pinchZoomY:r,wheelX:"panX",wheelY:r?"zoomXY":"zoomX"}),e.setAll({max:s,min:o,panX:!0,panY:!1,zoomX:!0,zoomY:r}),n.setAll({max:l,min:a,panX:!1,panY:r,zoomX:r,zoomY:r})}function Q({data:t,pixelWidth:i,pixelHeight:e}){if(null==t)return $;const n=t.statistics,o=0,s=n?.maxDistance;let a=n?.minElevation,l=n?.maxElevation;if(null==s||null==a||null==l)return $;const r=Math.max(s-o,R);let c=Math.max(l-a,R);const u=t.effectiveUnits;if(t.dynamicElevationRange){const t=d(r,u.distance,u.elevation);c=Math.max(c,t/p().maxChartRatio)}return a-=G*c,l=a+c+W*c,[a,l]=x(a,l,10),c=l-a,t.uniformScaling?_({data:t,bounds:{minX:o,maxX:s,minY:a,maxY:l},pixelWidth:i,pixelHeight:e,centered:!0}):{minX:o,maxX:o+r,minY:a,maxY:a+c}}function _({data:t,bounds:i,pixelWidth:e,pixelHeight:n,centered:o}){if(null==t)return i;let{minX:s,maxX:a,minY:l,maxY:r}=i;if(null==s||null==a||null==l||null==r)return $;const c=a-s,p=r-l,u=t.effectiveUnits,m=d(p,u.elevation,u.distance)/n/(c/e);return m>=1?[s,a]=tt([s,a],m,o):[l,r]=tt([l,r],1/m,o),{minX:s,maxX:a,minY:l,maxY:r}}function tt([t,i],e,n){const o=(i-t)*e;if(n){const e=(t+i)/2-o/2;return[e,e+o]}return[t,t+o]}function it(t){const{chart:i,data:e,series:n,xAxis:o,yAxis:s}=t;if(null==e||0===e.lines.length)return void i.series.clear();const a=new Map,l=new Set(i.series.values),r=e.lines.length;for(let d=0;d<r;d++){const o=e.lines[d];let s=n.get(o.id);s?(s.fill&&l.delete(s.fill),l.delete(s.line)):(s=nt(t,o),s.fill&&i.series.push(s.fill),i.series.push(s.line)),a.set(s.id,s);const c=r-d-1;s.fill?.set("layer",c),s.line.set("layer",r+c),et(t,s,o)}t.series=a;for(const d of l)i.series.removeValue(d);o.set("layer",r+1),s.set("layer",r+2)}function et(t,{line:i,fill:e},n){const{theme:o}=t,s=P(n.color.toCss()),a=n.samples??[],l=a.length>0;if(i.setAll({stroke:s,visible:l}),i.data.setAll(a),e){const t=X.lighten(s,o.seriesFillLighten);e.setAll({visible:l,fill:t}),e.data.setAll(a)}}function nt(t,i){const{id:e}=i,n=ot(t,`${H}-${e}`);n.setAll({dy:i.chartStrokeOffsetY,tooltip:st(t)}),n.strokes.template.setAll({strokeWidth:i.chartStrokeWidth});let o=null;return i.chartFillEnabled&&(o=ot(t,`${B}-${e}`),o.fills.template.setAll({fillOpacity:1,visible:!0})),{id:e,line:n,fill:o}}function ot(t,i){return M.new(t.chart.root,{connect:!1,excludeFromTotal:!0,fill:void 0,id:i,minDistance:O,stroke:void 0,valueXField:"distance",valueYField:"elevation",xAxis:t.xAxis,yAxis:t.yAxis})}function st({theme:t,chart:i}){const e=Y.new(i.root,{forceHidden:!0,getFillFromSprite:!1,getLabelFillFromSprite:!1,pointerOrientation:"vertical",visible:!1}),n=t.seriesTooltipPaddingHorizontal,o=t.seriesTooltipPaddingVertical;return e.label.setAll({fill:P(t.seriesTooltipLabelColor),fontSize:t.seriesTooltipFontSize,paddingBottom:o,paddingLeft:n,paddingRight:n,paddingTop:o,textAlign:"start"}),e.get("background")?.setAll({stroke:void 0,fill:P(t.seriesTooltipBackgroundColor)}),e.adapters.add("dy",(i=>{const n=t.seriesTooltipSpacing,o=e.get("pointTo")?.y??0;return(i??0)+(e.y()>o?n:-n)})),e}function at(t,i){const{xAxis:e,yAxis:n}=t,o=()=>{i(lt(e),lt(n))},s=t=>[t.on("start",o),t.on("end",o)];return Tt([...s(e),...s(n)])}function lt(t){const i=Math.abs((t.get("end")??0)-(t.get("start")??0)),e=0!==i?1/i:1;return Math.abs(1-e)<c()?1:e}function rt(t,i){const{chart:e,xAxis:n,yAxis:o}=t,s=e.get("cursor"),a=e.plotContainer.events,l=i=>{t.pointerIsOver.value=i,ct(t)},r=()=>{l(!1),i(null,null)};return Tt([s?.events.on("cursormoved",(()=>{if(!t.pointerIsOver.value)return;ct(t);let e=ht(n,s),a=At(o,s);const l=t.data;if(null!=l&&null!=l.statistics){const{maxDistance:t,minElevation:i,maxElevation:s}=l.statistics;if(null!=t){e=dt(e,vt(n)??0,bt(n)??0,0,t)}if(null!=i&&null!=s){a=dt(a,vt(o)??0,bt(o)??0,i,s)}}i(e,a)})),a.on("pointerover",(()=>l(!0))),a.on("pointerout",r),a.on("blur",r)])}function dt(t,i,e,n,o){return(i+t*(e-i)-n)/(o-n)}function ct(t){const i=pt(t);if(!i)return void t.series.forEach((t=>{t.line.get("tooltip")?.set("forceHidden",!0)}));t.series.forEach((t=>{const e=t.line.get("tooltip");e.set("forceHidden",!1),e.label.set("text",i)}));t.xAxis.getTooltip().setAll({tooltipText:xt(t)})}function pt(t){const{data:i}=t,e=i?.lines.map((i=>({line:i,y:gt(t,i)?.elevation}))).sort(ut);return e&&0!==e.length&&null!=e[0].y?e.map((({y:i,line:e})=>mt(t,e,i))).join("\n"):null}function ut({y:t},{y:i}){return null==t?1:null==i?-1:i-t}function mt(t,i,e){const{data:n,messages:o}=t;if(null==n||null==o)return"";const s=p().formatPrecision,a=z(o.chartTooltip,{name:m(i,o),elevation:null!=e?l(o,e,n.effectiveUnits.elevation,s):u});return`[${i.color.toHex()}]●[/] ${a}`}function xt(t){const{data:i,messages:e}=t;if(null==i||null==e)return"";const n=i.lines[0],o=n?gt(t,n):null,s=p().formatPrecision;return null!=o?l(e,o.distance,i.effectiveUnits.distance,s):"-"}function ft(t,i){const e=g.new(t.chart.root,{});return e.format=(e,n,o)=>{const{messages:s,data:a}=t;if(null==s||null==a||"string"==typeof e)return"";return`${F(e,{maximumFractionDigits:o})} ${r(s,a.effectiveUnits[i],"abbr")}`},e}function gt({chart:t,xAxis:i},n){const o=n.samples??[];if(0===o.length)return null;const s=ht(i,t.get("cursor")),a=i.positionToValue(s);return e(o,a,(t=>t.distance))}function ht(t,i){return t.toAxisPosition(i?.getPrivate("positionX")??0)}function At(t,i){return t.toAxisPosition(i?.getPrivate("positionY")??0)}function vt(t){const i=t.get("start");return null!=i?t.positionToValue(t.toAxisPosition(i)):void 0}function bt(t){const i=t.get("end");return null!=i?t.positionToValue(t.toAxisPosition(i)):void 0}function Tt(t){return n(t.map(yt))}function yt(t){return o((()=>{t?.dispose()}))}export{I as createChart,Q as getAdjustedBounds};
|