@arcgis/map-components
Version:
ArcGIS Map Components
4 lines • 8.25 kB
JavaScript
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
v4.33.13 */
import{a as S}from"./YNSUMKG7.js";import"./3SV5PEHC.js";import d from"./HXOMZNNJ.js";import{a as T}from"./MZHKSD55.js";import{a as w}from"./HA5P4MAX.js";import c from"./MX24TT2G.js";import b from"./2WKS6ZFG.js";import{e as O}from"./4TYQGSWG.js";import"./JDUE7Q24.js";import"./DXCYBWXJ.js";import{B as f,E as $,P as C,Q as u,R as M,S as y,U as x,a as v,j as _,k as a}from"./HX57SHRL.js";export default $arcgis.t(([R,{property:h,subclass:j},{watch:A},W,E,k,H,L,,,B])=>{var c="arcgis-weather",d={base:c,content:`${c}__content`,hasError:`${c}__content--has-error`,selector:`${c}__selector`,options:`${c}__options`,optionsHidden:`${c}__options--hidden`,error:`${c}__error`,warning:`${c}__warning`},P=_`{.arcgis-weather{position:relative;padding:var(--esri-widget-padding);width:fit-content}.arcgis-weather__content{display:flex;flex-direction:column;gap:var(--calcite-spacing-md);width:min-content}.arcgis-weather__content--has-error{visibility:hidden;height:0;overflow:hidden;pointer-events:none}.arcgis-weather__selector{display:flex;flex-direction:row;gap:var(--calcite-spacing-sm);align-items:center}.arcgis-weather__options{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);calcite-label:last-child{--calcite-label-margin-bottom: 0}}.arcgis-weather__options--hidden{display:none}.arcgis-weather__warning{display:flex;flex-direction:row;gap:var(--calcite-spacing-xs);align-items:center;font-size:var(--calcite-font-size-sm);calcite-icon{color:var(--calcite-color-status-warning)}}}`,z=Object.defineProperty,F=Object.getOwnPropertyDescriptor,o=(t,e,i,s)=>{for(var r=s>1?void 0:s?F(e,i):e,p=t.length-1,l;p>=0;p--)(l=t[p])&&(r=(s?l(e,i,r):l(r))||r);return s&&r&&z(e,i,r),r},I={sunny:L,cloudy:W,rainy:k,snowy:H,foggy:E},D=Object.keys(I),n=class extends R{constructor(t){super(t),this.view=null,this._settingWeather=!1,this._weatherByType={sunny:new L,cloudy:new W,rainy:new k,snowy:new H,foggy:new E}}initialize(){this.addHandles([A(()=>this.current,t=>{this._settingWeather||t==null||(this._weatherByType={...this._weatherByType,[t.type]:t})},{sync:!0,initial:!0})])}get state(){if(!this.view?.ready)return"disabled";if(this.error!=null)switch(this.error){case"not-visible":return"ready";default:return"error"}return"ready"}get disabled(){return this.state==="disabled"}get weatherByType(){return this._weatherByType}get error(){let t=this.view;return t?.ready?t.type!=="3d"?"unsupported-view":t.viewingMode==="local"?"local-scene":t.environment.atmosphereEnabled?t.environment.weatherAvailable?null:"not-visible":"no-atmosphere":null}get current(){return this._environment?.weather??this._weatherByType.sunny}set current(t){let e=this._environment;e&&(e.weather=t)}get _environment(){let t=this.view;return t!=null&&t.type==="3d"?t.environment:null}setWeatherByType(t){if(!D.includes(t)){console.warn(`arcgis-weather - "${t}" is not a valid weather type`);return}let e=this._environment;e!=null&&(this._settingWeather=!0,e.weather=this._weatherByType[t],this._settingWeather=!1)}setSnowCoverEnabled(t){let e=this.current;"snowCover"in e&&(e.snowCover=t?"enabled":"disabled")}};o([h()],n.prototype,"view",2);o([h()],n.prototype,"state",1);o([h()],n.prototype,"disabled",1);o([h()],n.prototype,"weatherByType",1);o([h()],n.prototype,"error",1);o([h()],n.prototype,"current",1);o([h()],n.prototype,"_weatherByType",2);o([h()],n.prototype,"_environment",1);n=o([j("components.weather.WeatherViewModel")],n);function g({label:t,value:e,disabled:i,onChange:s}){let r=p=>{let l=p.currentTarget.value;s?.(l)};return a`<calcite-label scale=s>${t}<calcite-slider aria-label=${t??y} .disabled=${i} style=${M({marginInline:"-7px",marginBottom:"-7px"})} max=1 min=0 step=0.01 .value=${e??0} =${r} =${r}></calcite-slider></calcite-label>`}var V=B(n),G={sunny:"brightness",cloudy:"partly-cloudy",rainy:"rain",snowy:"snow",foggy:"fog"},m=class extends C{constructor(){super(...arguments),this.viewModel=V(this),this.messages=T(),this.autoDestroyDisabled=!1,this.headingLevel=4,this.hideHeader=!1,this.icon="partly-cloudy",this.label=this.messages.componentLabel,this.position="bottom-left",this.state=this.viewModel.state,this.arcgisPropertyChange=O()("state"),this.arcgisReady=f()}static{this.properties={autoDestroyDisabled:5,headingLevel:9,hideHeader:5,icon:1,label:1,messageOverrides:0,position:1,referenceElement:1,state:35}}static{this.shadowRootOptions=$}static{this.styles=P}async destroy(){await this.manager.destroy()}_getWarningMessage(){switch(this.viewModel.error){case"not-visible":{let{view:e}=this.viewModel;return e?.type==="3d"&&e.environment.atmosphereEnabled?this.messages.error?.notVisible:void 0}default:return}}_getErrorMessage(){let e=this.messages.error;if(e)switch(this.viewModel.error){case"local-scene":return e.localScene;case"no-atmosphere":return e.noAtmosphere;case"unsupported-view":return e.unsupported;default:return}}render(){return a`<div aria-label=${this.messages.componentLabelAccessible??y} class=${u(v(d.base,w.widget,this.viewModel.disabled&&w.widgetDisabled))} role=region>${this._renderContent()}</div>`}_renderContent(){let{headingLevel:e,messages:i,viewModel:s}=this,r=this._getWarningMessage(),p=s.current,l=s.state==="error";return a`${this.hideHeader?void 0:S({level:e,children:i.componentLabel})}${l?a`<div class=${u(d.error)}>${this._getErrorMessage()}</div>`:void 0}<div class=${u(v({[d.content]:!0,[d.hasError]:l}))}><div aria-label=${i.weatherType??y} class=${u(d.selector)} role=radiogroup>${D.map(this._renderWeatherTypeButton,this)}</div>${Object.values(s.weatherByType).map(b=>a`<div class=${u(v({[d.options]:!0,[d.optionsHidden]:b.type!==p?.type}))}>${this._renderOptions(b)}</div>`)}${r?this._renderWarning(r):void 0}</div>`}_renderWeatherTypeButton(e){let i=this.messages[e]?.label??"",{disabled:s}=this.viewModel,r=!s&&this.viewModel.current.type===e;return a`<calcite-button .appearance=${r?"solid":"outline"} aria-checked=${r?"true":"false"} .disabled=${s} .iconStart=${G[e]} .kind=${r?"brand":"neutral"} .label=${i} =${()=>{r||this.viewModel.setWeatherByType(e)}} scale=l title=${i??y}></calcite-button>`}_renderOptions(e){switch(e.type){case"sunny":return this._renderSunnyOptions(e);case"cloudy":return this._renderCloudyOptions(e);case"rainy":return this._renderRainyOptions(e);case"snowy":return this._renderSnowyOptions(e);case"foggy":return this._renderFoggyOptions(e)}}_renderSunnyOptions(e){return g({disabled:this.viewModel.disabled,label:this.messages.sunny?.cloudCover,value:e.cloudCover,onChange:i=>{e.cloudCover=i}})}_renderCloudyOptions(e){return g({disabled:this.viewModel.disabled,label:this.messages.cloudy?.cloudCover,value:e.cloudCover,onChange:i=>{e.cloudCover=i}})}_renderRainyOptions(e){let{disabled:i}=this.viewModel,s=this.messages.rainy;return a`${g({disabled:i,label:s?.cloudCover,value:e.cloudCover,onChange:r=>{e.cloudCover=r}})}${g({disabled:i,label:s?.precipitation,value:e.precipitation,onChange:r=>{e.precipitation=r}})}`}_renderSnowyOptions(e){let{disabled:i}=this.viewModel,s=this.messages.snowy;return a`${g({disabled:i,label:s?.cloudCover,value:e.cloudCover,onChange:r=>{e.cloudCover=r}})}${g({disabled:i,label:s?.precipitation,value:e.precipitation,onChange:r=>{e.precipitation=r}})}<calcite-label layout=inline scale=s title=${s?.snowCoverTooltip??y}><calcite-checkbox .checked=${e.snowCover==="enabled"} .disabled=${i} =${r=>{this.viewModel.setSnowCoverEnabled(r.currentTarget.checked)}}></calcite-checkbox>${s?.snowCover}</calcite-label>`}_renderFoggyOptions(e){return g({disabled:this.viewModel.disabled,label:this.messages.foggy?.fogStrength,value:e.fogStrength,onChange:i=>{e.fogStrength=i}})}_renderWarning(e){return a`<div class=${u(d.warning)}><calcite-icon icon=exclamation-mark-triangle scale=s></calcite-icon>${e}</div>`}};x("arcgis-weather",m);return m},"core/Accessor","core/accessorSupport/decorators","core/reactiveUtils","views/3d/environment/CloudyWeather","views/3d/environment/FoggyWeather","views/3d/environment/RainyWeather","views/3d/environment/SnowyWeather","views/3d/environment/SunnyWeather",b,c,d)