// 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/accessorSupport/decorators/property ../core/accessorSupport/decorators/cast ../core/RandomLCG ../core/has ../core/accessorSupport/decorators/subclass ../support/basemapUtils ./Widget ./BasemapToggle/BasemapToggleViewModel ./BasemapToggle/css ../chunks/componentsUtils ./support/globalCss ./support/widgetUtils ./support/decorators/messageBundle ./support/jsxFactory".split(" "),function(k,d,g,v,b,C,w,x,y,m,e,z,n,D,A,c){function p(a){return(a=x.getBasemapThumbnailUrl(a))? {backgroundImage:"url("+a+")"}:{backgroundImage:""}}const q={title:!1};b=class extends y{constructor(a,f){super(a,f);this.messages=null;this.viewModel=new m;this.visibleElements={...q};this.toggle=()=>this.viewModel.toggle()}loadDependencies(){return z.loadCalciteComponents({button:()=>new Promise((a,f)=>k(["../chunks/calcite-button"],a,f)),icon:()=>new Promise((a,f)=>k(["../chunks/calcite-icon"],a,f)),scrim:()=>new Promise((a,f)=>k(["../chunks/calcite-scrim"],a,f))})}get activeBasemap(){return this.viewModel.activeBasemap}get icon(){return"layer-basemap"}set icon(a){this._overrideIfSome("icon", a)}get label(){return this.messages?.widgetLabel??""}set label(a){this._overrideIfSome("label",a)}get nextBasemap(){return this.viewModel.nextBasemap}set nextBasemap(a){this.viewModel.nextBasemap=a}get view(){return this.viewModel.view}set view(a){this.viewModel.view=a}castVisibleElements(a){return{...q,...a}}render(){var a=this.viewModel;const f="disabled"===a.state?null:a.activeBasemap,h="disabled"===a.state?null:a.nextBasemap,B="loading"===a.state;a="incompatible-next-basemap"===a.state;const l= h?.title??"",r=h&&"loaded"!==h.loadStatus;let t;const u=this.visibleElements.title&&l;if(u||a)t=c.tsx("div",{class:e.css.overlay,key:"overlay"},u?c.tsx("span",{class:e.css.title,title:l},l):null,a?c.tsx("calcite-scrim",{class:e.css.overlayScrim,title:this.messages.incompatibleSpatialReference},c.tsx("calcite-icon",{icon:"exclamation-mark-triangle"})):null);return c.tsx("div",{class:this.classes(e.css.base,n.globalCss.widget)},c.tsx("calcite-button",{appearance:"transparent","data-basemap-id":h?h.id: "",disabled:a,kind:"neutral",label:this.label,onclick:()=>void this.toggle(),title:this.label},c.tsx("div",{class:this.classes(e.css.container,e.css.secondaryBasemapImage)},c.tsx("div",{class:e.css.image,styles:p(f)})),c.tsx("div",{class:e.css.container},c.tsx("div",{class:this.classes(e.css.image,r?e.css.imageLoading:null),styles:p(h)},r||B?c.tsx("calcite-scrim",null,c.tsx("span",{"aria-hidden":"true",class:n.globalCss.loaderAnimation,role:"presentation"})):null),t)))}};d.__decorate([g.property({readOnly:!0})], b.prototype,"activeBasemap",null);d.__decorate([g.property()],b.prototype,"icon",null);d.__decorate([g.property()],b.prototype,"label",null);d.__decorate([g.property(),A.messageBundle("esri/widgets/BasemapToggle/t9n/BasemapToggle")],b.prototype,"messages",void 0);d.__decorate([g.property()],b.prototype,"nextBasemap",null);d.__decorate([g.property()],b.prototype,"view",null);d.__decorate([g.property({type:m})],b.prototype,"viewModel",void 0);d.__decorate([g.property()],b.prototype,"visibleElements", void 0);d.__decorate([v.cast("visibleElements")],b.prototype,"castVisibleElements",null);return b=d.__decorate([w.subclass("esri.widgets.BasemapToggle")],b)});