You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
15 lines
5.8 KiB
15 lines
5.8 KiB
// All material copyright Esri, All Rights Reserved, unless otherwise specified. |
|
// See https://js.arcgis.com/4.30/esri/copyright.txt for details. |
|
//>>built |
|
define("require ../chunks/tslib.es6 ../core/memoize ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/RandomLCG ../core/accessorSupport/decorators/subclass ../views/3d/environment/weather ./Widget ../chunks/componentsUtils ./support/globalCss ./support/Heading ./support/widgetUtils ./support/decorators/messageBundle ./support/jsxFactory ./Weather/css ./Weather/enums ./Weather/LabeledSlider ./Weather/VisibleElements ./Weather/WeatherViewModel".split(" "),function(q,h,x, |
|
k,g,G,H,y,z,A,B,r,C,t,D,d,l,m,n,u,E){const F={sunny:"brightness",cloudy:"partly-cloudy",rainy:"rain",snowy:"snow",foggy:"fog"};g=class extends A{constructor(a){super(a);this.viewModel=new E;this.headingLevel=4;this.visibleElements=new u;this._renderWeatherTypeButton=b=>{const c=this.viewModel,f=this.messages[b].label,e=c.state===m.WeatherState.Disabled,p=!e&&c.current.type===b;return d.tsx("calcite-button",{appearance:p?"solid":"outline","aria-checked":p?"true":"false",disabled:e,iconStart:F[b],key:`${b}-type-button`, |
|
kind:p?"brand":"neutral",label:f,onclick:()=>{p||c.setWeatherByType(b)},scale:"l",title:f})};this._memoizedCallbacks=x.memoize(b=>({onCloudCoverChange:c=>{"cloudCover"in b&&(b.cloudCover=c)},onPrecipitationChange:c=>{"precipitation"in b&&(b.precipitation=c)},onFogStrengthChange:c=>{"fogStrength"in b&&(b.fogStrength=c)},onSnowCoverChange:c=>{this.viewModel.setSnowCoverEnabled(c.target.checked)}}))}render(){return d.tsx("div",{"aria-label":this.messages.widgetLabelAccessible,class:this.classes(l.css.base, |
|
r.globalCss.widget,this.viewModel.state===m.WeatherState.Disabled&&r.globalCss.widgetDisabled),role:"region"},this._renderContent())}loadDependencies(){return B.loadCalciteComponents({button:()=>new Promise((a,b)=>q(["../chunks/calcite-button"],a,b)),checkbox:()=>new Promise((a,b)=>q(["../chunks/calcite-checkbox"],a,b)),icon:()=>new Promise((a,b)=>q(["../chunks/calcite-icon"],a,b)),label:()=>new Promise((a,b)=>q(["../chunks/calcite-label"],a,b))})}get view(){return this.viewModel?.view}set view(a){this.viewModel&& |
|
(this.viewModel.view=a)}get icon(){return"partly-cloudy"}set icon(a){this._overrideIfSome("icon",a)}get label(){return this.messages?.widgetLabel??""}set label(a){this._overrideIfSome("label",a)}get _errorMessage(){const a=this.messages.error;switch(this.viewModel.error){case m.WeatherError.LocalScene:return a.localScene;case m.WeatherError.NoAtmosphere:return a.noAtmosphere;case m.WeatherError.UnsupportedView:return a.unsupported;default:return null}}get _warningMessage(){switch(this.viewModel.error){case m.WeatherError.NotVisible:return null!= |
|
this.view&&"3d"===this.view?.type&&this.view.environment.atmosphereEnabled?this.messages.error.notVisible:null;default:return null}}_renderContent(){const {headingLevel:a,messages:b,viewModel:c,visibleElements:f}=this,e=this._warningMessage,p=c.current,v=c.state===m.WeatherState.Error;return d.tsx(d.tsxFragment,null,f.header?d.tsx(C.Heading,{level:a},b.widgetLabel):null,v?d.tsx("div",{class:l.css.error,key:"error"},this._errorMessage):null,d.tsx("div",{class:t.classes({[l.css.content]:!0,[l.css.hasError]:v}), |
|
key:"content"},d.tsx("div",{"aria-label":b.weatherType,class:l.css.selector,key:"type-selector",role:"radiogroup"},z.weatherTypesArray.map(this._renderWeatherTypeButton)),Object.values(c.weatherByType).map(w=>d.tsx("div",{class:t.classes({[l.css.options]:!0,[l.css.optionsHidden]:w.type!==p?.type}),key:"options-container"},this._renderOptions(w))),null!=e?this._renderWarning(e):null))}_renderOptions(a){const {viewModel:b,messages:c}=this,f=b.state===m.WeatherState.Disabled,e=this._memoizedCallbacks(a); |
|
switch(a.type){case "sunny":return d.tsx(n.LabeledSlider,{disabled:f,key:"sunny-cover",label:c.sunny.cloudCover,value:a.cloudCover,onChange:e.onCloudCoverChange});case "cloudy":return d.tsx(n.LabeledSlider,{disabled:f,key:"cloudy-cover",label:c.cloudy.cloudCover,value:a.cloudCover,onChange:e.onCloudCoverChange});case "rainy":return d.tsx(d.tsxFragment,null,d.tsx(n.LabeledSlider,{disabled:f,key:"rainy-cover",label:c.rainy.cloudCover,value:a.cloudCover,onChange:e.onCloudCoverChange}),d.tsx(n.LabeledSlider, |
|
{disabled:f,key:"rainy-precipitation",label:c.rainy.precipitation,value:a.precipitation,onChange:e.onPrecipitationChange}));case "snowy":return d.tsx(d.tsxFragment,null,d.tsx(n.LabeledSlider,{disabled:f,key:"snowy-cloud-cover",label:c.snowy.cloudCover,value:a.cloudCover,onChange:e.onCloudCoverChange}),d.tsx(n.LabeledSlider,{disabled:f,key:"snowy-precipitation",label:c.snowy.precipitation,value:a.precipitation,onChange:e.onPrecipitationChange}),d.tsx("calcite-label",{key:"snow-cover",layout:"inline", |
|
scale:"s",title:c.snowy.snowCoverTooltip},d.tsx("calcite-checkbox",{checked:"enabled"===a.snowCover,disabled:f,onCalciteCheckboxChange:e.onSnowCoverChange}),c.snowy.snowCover));case "foggy":return d.tsx(n.LabeledSlider,{disabled:f,key:"foggy-cover",label:c.foggy.fogStrength,value:a.fogStrength,onChange:e.onFogStrengthChange})}}_renderWarning(a){return d.tsx("div",{class:l.css.warning,key:"warning"},d.tsx("calcite-icon",{icon:"exclamation-mark-triangle",scale:"s"}),a)}};h.__decorate([k.property()], |
|
g.prototype,"viewModel",void 0);h.__decorate([k.property()],g.prototype,"view",null);h.__decorate([k.property()],g.prototype,"headingLevel",void 0);h.__decorate([k.property({type:u,nonNullable:!0})],g.prototype,"visibleElements",void 0);h.__decorate([k.property()],g.prototype,"icon",null);h.__decorate([k.property()],g.prototype,"label",null);h.__decorate([k.property(),D.messageBundle("esri/widgets/Weather/t9n/Weather")],g.prototype,"messages",void 0);h.__decorate([k.property()],g.prototype,"_errorMessage", |
|
null);h.__decorate([k.property()],g.prototype,"_warningMessage",null);return g=h.__decorate([y.subclass("esri.widgets.Weather")],g)}); |