@arcgis/map-components
Version:
ArcGIS Map Components
68 lines (67 loc) • 8.7 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import { g as x, c as w } from "../../chunks/runtime.js";
import { classes as k } from "@arcgis/toolkit/dom";
import { watch as l } from "@arcgis/core/core/reactiveUtils.js";
import { LitElement as $, nothing as i, safeClassMap as p } from "@arcgis/lumina";
import { css as I, html as a } from "lit";
import { g as B } from "../../chunks/globalCss.js";
import { g as _ } from "../../chunks/component-utils.js";
function C(t) {
return t.portalItem?.type === "Web Scene" || t.referenceLayers.some((e) => e.type === "scene");
}
function A(t) {
return !!t?.portalItem?.tags?.some((e) => e.toLowerCase() === "beta") || !!t?.portalItem?.categories?.includes("/Categories/Status/Beta");
}
function S(t) {
return !!t?.portalItem?.tags?.some((e) => e.toLowerCase() === "preview") || !!t?.portalItem?.categories?.includes("/Categories/Status/Preview");
}
const z = I` esri-basemap-slide{0%{opacity:0;margin-top:0;margin-left:0}75%{opacity:0;margin-top:0;margin-left:0}to{opacity:1;margin-top:5px;margin-left:5px}} esri-docking-animation{0%{opacity:0}25%{opacity:0}to{opacity:1}} popup-intro-animation-down{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translate(0)}} popup-intro-animation-up{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translate(0)}} (-ms-ime-align: auto){.esri-slider__anchor:focus{outline:1px dotted #000}} esri-spinner--start-animation{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}} esri-spinner--finish-animation{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}} esri-spinner--rotate-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}{.esri-utility-network-trace__reset-prompt{animation:none!important}}{.esri-popup--aligned-top-center,.esri-popup--aligned-top-left,.esri-popup--aligned-top-right,.esri-popup--aligned-bottom-center,.esri-popup--aligned-bottom-left,.esri-popup--aligned-bottom-right,.esri-popup--is-docked{animation:none!important}}{.esri-fov-overlay{animation:none!important}} esri-fade-in-down{0%{opacity:0;transform:translateY(-5px)}25%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translate(0)}} esri-fade-in-up{0%{opacity:0;transform:translateY(5px)}25%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translate(0)}} esri-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}} esri-fade-in-scale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}} looping-progresss-bar-ani{0%{width:0;left:0}20%{width:20%;left:0}80%{width:20%;left:80%}to{width:0;left:100%}} esri-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}} panel-advance{0%{opacity:0;transform:translate(50px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}} panel-retreat{0%{opacity:0;transform:translate(-50px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}} panel-advance--rtl{0%{opacity:0;transform:translate(-50px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}} panel-retreat--rtl{0%{opacity:0;transform:translate(50px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}}:host{container-type:inline-size}.empty-message{padding:12px 15px;animation:.5s ease-in-out esri-fade-in}.item{box-sizing:border-box;cursor:pointer;border:1px solid var(--calcite-color-background);flex-direction:row;width:100%;transition:background-color .25s ease-in-out,border-color .25s ease-in-out;animation:.5s ease-in-out esri-fade-in;display:flex;position:relative}.item:hover{background-color:var(--calcite-color-foreground-3);border-color:var(--calcite-color-background-inverse)}.item:hover .item-title{color:var(--calcite-color-text-1)}.item:focus{outline:none}.is-error{opacity:var(--calcite-opacity-light);background-color:var(--calcite-color-transparent)!important;border-color:var(--calcite-color-transparent)!important;cursor:auto}.item-thumbnail{aspect-ratio:1.5;border-inline-end:1px solid var(--calcite-color-border-1);flex-shrink:0;width:120px;min-width:120px;transition:background-color .25s ease-in-out,border-color .25s ease-in-out}.item-title{color:var(--calcite-color-text-3);justify-content:flex-start;align-items:center;width:100%;height:100%;font-size:var(--calcite-font-size-sm);transition:color .25s ease-in-out,font-weight .25s ease-in-out;display:flex}.item-title span{text-align:start;text-overflow:ellipsis;word-wrap:break-word;word-break:break-word;hyphens:auto;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;width:100%;display:-webkit-box;overflow:hidden}.is-selected,.is-selected:hover,.is-selected:focus{cursor:auto;background-color:color-mix(in srgb,var(--calcite-color-brand-underline),70% transparent);border-color:var(--calcite-color-status-info)!important}.is-selected .item-title,.item.is-selected:hover .item-title,.item.is-selected:focus .item-title{color:var(--calcite-color-text-1);font-weight:var(--calcite-font-weight-medium)}.item-content{flex-direction:column;gap:var(--calcite-spacing-md);min-width:0;padding-block:var(--calcite-spacing-base);padding-inline:var(--calcite-spacing-md);display:flex}.item-tags{flex-direction:row;gap:var(--calcite-spacing-base);display:flex}.item-tags calcite-chip{--calcite-font-size--2: var(--calcite-font-size--3);cursor:inherit} (object-fit: cover){.item-thumbnail{object-fit:cover}} (width>=200px) and (width <= 300px){.item{align-items:center}.item:not(.is-selected,:hover){border-color:var(--calcite-color-transparent)}} (width>=200px) and (width <= 278px){.item-thumbnail{aspect-ratio:1;width:80px;min-width:80px;object-position:left}} (width<200px) or (width>=350px){.item{text-align:center;flex-flow:column wrap}.item:not(.is-selected,:hover){border-color:var(--calcite-color-border-1)}.item-thumbnail{border-block-end:1px solid var(--calcite-color-border-1);border-inline-end:none;width:100%;min-width:0;height:auto}.item-content{height:32px;padding-block:var(--calcite-spacing-xxs);padding-inline:var(--calcite-spacing-xs);position:relative}.item-tags{position:absolute;inset-block-end:45px;inset-inline-end:5px}}`;
class P extends $ {
constructor() {
super(...arguments), this._itemState = "loading", this._isActive = !1;
}
static {
this.properties = { _itemState: 16, _isActive: 16, disabled: 5, item: 0, itemIndex: 9, viewModel: 0, messages: 0 };
}
static {
this.styles = z;
}
loaded() {
this.manager.onLifecycle(() => [
l(() => this.item.state, (e) => {
this._itemState = e;
}, { sync: !0 }),
l(() => this.viewModel.activeBasemap, (e) => {
this._isActive = this.item.basemap.id === e?.id, this._isActive && (_(this)?.focus(), this.el.scrollIntoView({ block: "nearest" }));
}, { initial: !0, sync: !0 })
]);
}
render() {
const { item: e, itemIndex: o, viewModel: m, messages: d } = this;
if (!e.basemap)
return null;
const f = e.basemap.thumbnailUrl || x("./assets/basemap-gallery/images/basemap-toggle-64.svg"), s = e.basemap.title, u = e.basemap.portalItem?.snippet, g = e.error?.message || u || s, { state: h, activeBasemapIndex: n } = this.viewModel, b = this.disabled || h === "disabled", r = n === o, y = r || n === -1 && o === 0 ? 0 : -1, v = {
"is-selected": r,
"is-error": e.state === "error"
}, c = `basemapgallery-item-${e.uid}`;
return a`<div .ariaChecked=${r} .ariaDisabled=${b} aria-labelledby=${c ?? i} class=${p(k("item", v))} role=radio tabindex=${y ?? i} title=${g ?? i} =${() => {
e.state === "ready" && (m.activeBasemap = e.basemap);
}}><img alt class="item-thumbnail" src=${f ?? i}><div class="item-content"><div class="item-title"><span id=${c ?? i}>${s}</span></div>${C(e.basemap) ? Y(e.basemap, d) : null}</div>${e.state !== "loading" ? null : a`<calcite-scrim><span aria-hidden=true class=${p(B.loaderAnimation)} role=presentation></span></calcite-scrim>`}</div>`;
}
}
function Y(t, e) {
return a`<div class="item-tags">${D(e)}${A(t) ? L(e) : null}${S(t) ? M(e) : null}</div>`;
}
function D(t) {
return a`<calcite-chip scale=s .label=${t.tag3D}>${t.tag3D}</calcite-chip>`;
}
function L(t) {
return a`<calcite-chip appearance=outline-fill scale=s .label=${t.tagBeta}>${t.tagBeta}</calcite-chip>`;
}
function M(t) {
return a`<calcite-chip appearance=outline-fill scale=s .label=${t.tagPreview}>${t.tagPreview}</calcite-chip>`;
}
w("arcgis-basemap-gallery-item", P);
export {
P as ArcgisBasemapGalleryItem
};