/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
import { c as _ } from "../../chunks/runtime.js";
import { css as x, html as t } from "lit";
import { usePropertyChange as y } from "@arcgis/lumina/controllers";
import { classes as a } from "@arcgis/toolkit/dom";
import { getBasemapThumbnailUrl as k } from "@arcgis/core/applications/Components/basemapUtils.js";
import z from "@arcgis/core/widgets/BasemapToggle/BasemapToggleViewModel.js";
import { LitElement as $, createEvent as B, nothing as n, safeClassMap as r, safeStyleMap as h } from "@arcgis/lumina";
import { u as M } from "../../chunks/useT9n.js";
import { m as T } from "../../chunks/useViewModel.js";
import { g as u } from "../../chunks/globalCss.js";
import { s as S } from "../../chunks/sr.js";
const E = x`.esri-widget__heading{color:var(--calcite-color-text-2);margin:0 0 .5rem;font-weight:var(--calcite-font-weight-semibold)}h1.esri-widget__heading{font-size:var(--calcite-font-size-xl)}h2.esri-widget__heading{font-size:var(--calcite-font-size-md)}h3.esri-widget__heading,h4.esri-widget__heading,h5.esri-widget__heading,h6.esri-widget__heading{font-size:var(--calcite-font-size)}.esri-widget{box-sizing:border-box;color:var(--calcite-color-text-2);background-color:var(--calcite-color-foreground-1);font-size:var(--calcite-font-size);line-height:var(--calcite-font-line-height-relative-tight)}.esri-widget *,.esri-widget :before,.esri-widget :after{box-sizing:inherit}.esri-widget.esri-widget--disabled>*{opacity:.4;pointer-events:none}.esri-widget.esri-widget--compact{--esri-widget-padding-y: 0;--esri-widget-padding-x: 0}.esri-widget__anchor{color:var(--calcite-color-text-2)}.esri-widget__anchor:hover{color:var(--calcite-color-text-3)}.esri-widget__anchor:hover,.esri-widget__anchor:focus{text-decoration:underline}.esri-widget__anchor--disabled{opacity:.4;pointer-events:none}.esri-widget__header{background-color:var(--calcite-color-foreground-1);flex:1 0 100%;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:12px 0 12px 15px;display:flex}.esri-widget__heading{word-break:break-word}.esri-widget__header .esri-widget__heading{width:calc(100% - 48px);text-align:initial;color:var(--calcite-color-text-1);align-items:center;margin:0;padding:0;display:flex}.esri-widget__header-button{appearance:none;cursor:pointer;color:var(--calcite-color-text-2);background-color:var(--calcite-color-foreground-1);border:none;flex:0 0 48px;justify-content:center;align-self:stretch;align-items:center;width:48px;padding:0;display:flex}.esri-widget__footer{background-color:var(--calcite-color-foreground-1);justify-content:center;align-items:center;width:100%;min-height:48px;display:flex}.esri-widget__footer-pagination{color:var(--calcite-color-text-2);justify-content:space-between;align-items:center;display:flex}.esri-widget__footer-pagination-previous-button,.esri-widget__footer-pagination-next-button{cursor:pointer;background-color:var(--calcite-color-foreground-1);border:0;margin:0 7px;padding:12px 15px;transition:background-color .125s ease-in-out}.esri-widget__footer-pagination-previous-button:hover,.esri-widget__footer-pagination-previous-button:focus,.esri-widget__footer-pagination-next-button:hover,.esri-widget__footer-pagination-next-button:focus{color:var(--calcite-color-text-1);background-color:var(--calcite-color-foreground-1)}.esri-menu{visibility:hidden;z-index:1;background-clip:padding;background-color:var(--calcite-color-foreground-1);background-clip:padding-box;width:100%;max-height:0;margin:2px 0 0;padding:0;font-size:var(--calcite-font-size);line-height:var(--calcite-spacing-xl);position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 1px 2px #0000004d}.esri-menu .esri-menu__header{color:var(--calcite-color-text-inverse);background-color:var(--calcite-color-inverse);padding:6px 12px}.esri-menu__list{margin:0;padding:0;list-style:none}.esri-menu__list-item{cursor:pointer;border-top:1px solid #adadad4d;border-left:3px solid #0000;padding:.8em 1em}.esri-menu__list-item [class^=esri-icon-],.esri-menu__list-item [class*=" esri-icon-"]{padding-right:2.8px}.esri-menu__list-item:first-child{border-top:none}.esri-menu__list-item--focus,.esri-menu__list-item:hover,.esri-menu__list-item:focus{background-color:var(--calcite-color-foreground-1)}.esri-menu__list-item:active{background-color:var(--calcite-color-foreground-current)}.esri-menu__list-item--active,.esri-menu__list-item--active:hover,.esri-menu__list-item--active:focus{background-color:var(--calcite-color-foreground-1);border-left-color:var(--calcite-color-brand)}.esri-widget__table{border-collapse:collapse;color:var(--calcite-color-text-1);border:none;width:100%;line-height:var(--calcite-font-line-height-relative-tight)}.esri-widget__table tr:nth-child(odd){background-color:var(--calcite-color-transparent)}.esri-widget__table tr:nth-child(2n){background-color:var(--calcite-color-transparent-press)}.esri-widget__table tr a{color:var(--calcite-color-text-2)}.esri-widget__table tr a:hover,.esri-widget__table tr a:focus{color:var(--calcite-color-text-1)}.esri-widget__table tr td,.esri-widget__table tr th{vertical-align:top;word-break:break-word;padding:.5em .7em;font-size:var(--calcite-font-size-sm);font-weight:var(--calcite-font-weight-regular)}.esri-widget__table tr th{text-align:left;border-right:3px solid #0000000d;width:50%}.esri-widget__table tr td{width:50%}.esri-input{color:var(--calcite-color-text-1);background-color:var(--calcite-color-foreground-1);border:1px solid #959595;font-size:var(--calcite-font-size)}.esri-input::-ms-clear{display:none}.esri-input::placeholder{opacity:1;color:var(--calcite-color-text-2)}.esri-input:placeholder-shown{text-overflow:ellipsis}.esri-input[type=text],.esri-input[type=password],.esri-input[type=number]{height:32px;padding:0 .5em}calcite-combobox.esri-input{border:none}.esri-widget__content--empty{text-align:center;color:var(--calcite-color-border-input);flex-flow:column wrap;align-items:center;padding:18px 22px;display:flex}.esri-widget__content--empty h1.esri-widget__heading,.esri-widget__content--empty h2.esri-widget__heading,.esri-widget__content--empty h3.esri-widget__heading,.esri-widget__content--empty h4.esri-widget__heading,.esri-widget__content--empty h5.esri-widget__heading{font-weight:var(--calcite-font-weight-regular)}.esri-widget__content-illustration--empty{width:128px;padding:1rem 0}.esri-widget__content-icon--empty{width:32px;padding:.5rem 0}.esri-select{appearance:none;cursor:pointer;color:var(--calcite-color-text-2);background:var(--calcite-color-foreground-1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 32 32' width='32' height='32'%3E%3Cpath d='M8 11.207l-4-4V5.793l4 4 4-4v1.414z' fill='%23adadad' fillrule='nonzero'/%3E%3C/svg%3E") 100% no-repeat;border:1px solid #959595;border-radius:0;width:100%;height:32px;margin:0;padding:0 .5em;font-family:inherit;font-size:.85em;display:block}.esri-select[disabled]{cursor:auto}.esri-select::-ms-expand{display:none}.esri-disabled a,.esri-disabled [role=menu],.esri-disabled [role=checkbox],.esri-disabled [class^=esri-icon-],.esri-disabled [class*=" esri-icon-"]{color:var(--calcite-color-text-3)}.keynav-mode .esri-widget:focus,.keynav-mode .esri-widget :focus{z-index:1;outline-offset:2px;outline:2px solid #adadad}.esri-widget__loader-animation{border:.15em solid #adadad4d;border-top-color:var(--calcite-color-border-input);border-radius:100%;width:1em;height:1em;font-size:var(--calcite-font-size-md);animation:1.25s linear infinite esri-rotate;display:block;transform:translateZ(0)}:dir(rtl) .esri-widget__table th{text-align:right;border-left:3px solid #0000000d;border-right:none}:dir(rtl) .esri-select{background-position:0}:dir(rtl) .esri-menu__list-item{border-left:none;border-right:3px solid #0000}:dir(rtl) .esri-menu__list-item [class^=esri-icon-],:dir(rtl) .esri-menu__list-item [class*=" esri-icon-"]{padding-left:2px;padding-right:0}:dir(rtl) .esri-menu__list-item--active{border-right-color:var(--calcite-color-brand)}.esri-icon-font-fallback-text{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.esri-rotating{animation:1.25s linear infinite esri-rotate;transform:translateZ(0)}.esri-clearfix:before,.esri-clearfix:after{content:" ";display:table}.esri-clearfix:after{clear:both}.esri-interactive{cursor:pointer}.esri-hidden{display:none!important}.esri-invisible{visibility:hidden!important}.esri-offscreen{position:absolute;top:-999em;left:-999em}.esri-match-height{flex-direction:column;flex:auto;display:flex;overflow:hidden}.root{box-shadow:none;background-color:var(--calcite-color-transparent)}.root calcite-button{flex-direction:row;justify-content:center;align-items:center;width:69px;height:69px;display:flex;position:relative;overflow:visible}.container,.image{width:64px;height:64px;position:absolute;top:0;left:0;overflow:hidden}.container{box-shadow:0 1px 2px #0000004d}.image{background-color:var(--calcite-color-foreground-1);background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='%236E6E6E'%20d='M16%2016v32h32V16H16zm17.028%2011.947l.022.106c.175.863.272%201.67-.46%202.066-.52.28-.792.764-1.014%201.155-.28.497-.414.684-.715.684-.158%200-.283-.085-.486-.24-.25-.192-.558-.426-1.03-.426-.692%200-1.255.606-1.255%201.35%200%20.475-.422%201.353-1.022%201.353-.49%200-.652-.172-.763-.37-.296-.53-.665-1.193-1.51-1.193-.85%200-1.542.735-1.542%201.635%200%20.286.06.508.11.702.044.165.083.31.083.478%200%20.244-.102.428-.23.666-.152.278-.34.62-.34%201.09%200%20.613.563%201.113%201.255%201.113.393%200%20.654-.104.865-.186.195-.078.332-.125.56-.103.103.01.21.3.21.5%200%20.323-.274.598-.59.914-.514.512-1.22%201.212-.638%202.368.22.444.758.57%201.277.69.24.057.416.095.56.132%200%200%20.254.34.318.536a.616.616%200%2000.013.23.92.92%200%2001-.17.506c-.253.382-.548.597-.862.825-.623.458-1.14.536-1.156%201.47H18V18h21.48c.03.578-.903%201.22-.903%201.22l-.98.58c-1.054.672-2.254%201.703-2.254%202.56%200%20.377.15.646.27.86.1.177.157.283.157.417%200%20.19-.126.316-.41.56-.25.215-.534.453-.663.84a1.27%201.27%200%2000-.064.4c0%20.138.03.307.063.488.028.153.09.472.042.547%200%200-.054.04-.258.04l-.174-.006c-.37%200-.75.303-.98.582-.172.206-.363.528-.298.86zM46%2046h-9.23c-.207-1.22-1.35-1.258-2.168-1.556-.288-.107-.585-.213-.858-.353-.354-.184-.35-.585-.296-.89%200%200%20.102-.303.09-.37l.003-.002c-.006-.036-.013-.067-.013-.11%200-.23.213-.34.7-.574.507-.25%201.2-.577%201.2-1.39%200-.293-.13-.488-.216-.62-.053-.08-.07-.11-.07-.132%200-.172.068-.286.332-.524.283-.253.628-.6.628-1.19v-.93c0-.092.27-.195.605-.03.165.078.41.188.715.188.672%200%201.04-.494%201.3-.853.24-.332.33-.516.565-.48.235.042.15.05.324.41.12.25.26.538.52.763.454.397.98.528%201.506.57a6.126%206.126%200%20001.996.005l.168-.027a4.14%204.14%200%2001.98-.067s.09.022.14.006c.39.044.717.177.98.458l.1.248c.003.005-.003.01%200%20.015V46z'/%3e%3cpath%20clip-rule='evenodd'%20fill='none'%20d='M16%2016h32v32H16z'/%3e%3cpath%20fill='none'%20d='M0%200h64v64H0z'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:cover}.image-loading{background-image:unset;justify-content:center;align-items:center;display:flex}.image-secondary{margin-top:5px;margin-left:5px;animation:2s ease-in-out esri-basemap-slide;box-shadow:0 1px 2px #0000004d}.overlay-scrim{--calcite-scrim-background: #00000080;color:var(--calcite-color-text-inverse)}.overlay{background-color:var(--calcite-color-transparent);justify-content:center;align-items:flex-end;width:100%;height:100%;transition:background-color .125s ease-in-out;display:flex;position:absolute}.overlay .root:hover{background-color:var(--calcite-color-background)}.title{text-align:center;background-color:var(--calcite-color-transparent-tint);flex:1 0 100%;height:auto;padding:.5em;font-size:var(--calcite-font-size-xs);font-weight:var(--calcite-font-weight-medium);line-height:var(--calcite-font-line-height-relative-tight)}.title-wrap{text-wrap:wrap}`, C = T(z);
class j extends $ {
  constructor() {
    super(...arguments), this.messages = M(), this.viewModel = C(this), this.view = this.viewModel.view, this.activeBasemap = this.viewModel.activeBasemap, this.autoDestroyDisabled = !1, this.icon = "layer-basemap", this.nextBasemap = this.viewModel.nextBasemap, this.showTitle = !1, this.state = this.viewModel.state, this.arcgisPropertyChange = y()("activeBasemap", "nextBasemap", "state"), this.arcgisReady = B();
  }
  static {
    this.properties = { view: 0, activeBasemap: 32, autoDestroyDisabled: 5, icon: 1, label: 1, messageOverrides: 0, nextBasemap: 1, referenceElement: 1, showTitle: 5, state: 32 };
  }
  static {
    this.styles = [E, S];
  }
  async destroy() {
    await this.manager.destroy();
  }
  async toggle() {
    return await this.viewModel.toggle();
  }
  _getThumbnailStyles(e) {
    const o = k(e);
    return o ? { backgroundImage: `url(${o})` } : { backgroundImage: "" };
  }
  render() {
    const e = this.viewModel, o = e.state === "disabled" ? null : e.activeBasemap, i = e.state === "disabled" ? null : e.nextBasemap, v = e.state === "loading", c = e.state === "incompatible-next-basemap", l = i?.title ?? "", d = i && i.loadStatus !== "loaded";
    let g;
    const p = this.showTitle && l, m = c, b = p || m, f = this._getThumbnailStyles(o), w = this._getThumbnailStyles(i);
    b && (g = t`<div class="overlay">${p ? t`<span class=${r(a("title", "title-wrap"))} title=${l ?? n}>${l}</span>` : null}${m ? t`<calcite-scrim class="overlay-scrim" title=${this.messages.incompatibleSpatialReference ?? n}><calcite-icon icon=exclamation-mark-triangle></calcite-icon></calcite-scrim>` : null}</div>`);
    const s = this.label ?? this.messages.componentLabel;
    return t`<div class=${r(a("root", u.widget))}><calcite-button appearance=transparent data-basemap-id=${(i ? i.id : "") ?? n} .disabled=${c} kind=neutral .label=${s} @click=${() => {
      this.toggle();
    }} title=${s ?? n}><span class="sr-only">${s}</span><div class=${r(a("container", "image-secondary"))}><div class="image" style=${h(f)}></div></div><div class="container"><div class=${r(a("image", d ? "image-loading" : null))} style=${h(w)}>${d || v ? t`<calcite-scrim><span aria-hidden=true class=${r(u.loaderAnimation)} role=presentation></span></calcite-scrim>` : null}</div>${g}</div></calcite-button></div>`;
  }
}
_("arcgis-basemap-toggle", j);
export {
  j as ArcgisBasemapToggle
};
