@arcgis/map-components
Version:
ArcGIS Map Components
359 lines (358 loc) • 25.4 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import { c as A } from "../../chunks/runtime.js";
import { css as E, html as w } from "lit";
import P from "@arcgis/core/popup/Features.js";
import { u as F } from "../../chunks/useT9n.js";
import { useDirection as O, usePropertyChange as $ } from "@arcgis/lumina/controllers";
import { m as N } from "../../chunks/useViewModel.js";
import { LitElement as L, createEvent as _, safeStyleMap as S, safeClassMap as y } from "@arcgis/lumina";
import { stripHTML as T } from "@arcgis/core/applications/Components/stringUtils.js";
import { classes as x } from "@arcgis/toolkit/dom";
import { createRef as g, ref as m } from "lit/directives/ref.js";
import { watch as p } from "@arcgis/core/core/reactiveUtils.js";
import V from "@arcgis/core/support/actions/ActionButton.js";
import { t as H } from "../../chunks/screenLocation.js";
import "../arcgis-search-result-renderer/customElement.js";
const B = E`:host{display:contents;--arcgis-internal-popup-pointer-size: 12px;--arcgis-internal-popup-content-small-size: 280px;--arcgis-internal-popup-content-medium-size: 340px;--arcgis-internal-popup-content-large-size: 400px;--arcgis-internal-popup-content-x-large-size: 460px;--arcgis-internal-popup-content-min-size-y: 48px;--arcgis-internal-popup-pointer-size-half: calc(var(--arcgis-internal-popup-pointer-size) / 2);--arcgis-internal-popup-pointer-size-half-negative: calc(var(--arcgis-internal-popup-pointer-size-half) * -1)}.root{display:flex;position:absolute;flex-flow:column nowrap;z-index:401;pointer-events:none;border:none;overflow:visible;padding:0;width:auto;height:auto;background-color:transparent}.hidden{visibility:hidden}.root:popover-open{display:flex;position:fixed;flex-flow:column nowrap;margin:0}arcgis-features{flex:1;width:100%}.shadow{box-shadow:var(--calcite-shadow-sm)}.aligned-top-center{transform-origin:50% 100%}.aligned-bottom-center{transform-origin:50% -5%}.aligned-top-left,.aligned-bottom-left{transform-origin:100% 50%}.aligned-top-right,.aligned-bottom-right{transform-origin:-5% 50%}.aligned-top-center,.aligned-top-left,.aligned-top-right{animation:popup-intro-animation-down .2s ease-in-out}.aligned-bottom-center,.aligned-bottom-left,.aligned-bottom-right{animation:popup-intro-animation-up .2s ease-in-out}.main-container{display:flex;position:relative;z-index:1;background-color:var(--calcite-color-foreground-1);width:var(--arcgis-internal-popup-content-medium-size);min-height:var(--arcgis-internal-popup-content-min-size-y);max-height:var(--arcgis-internal-popup-content-medium-size);overflow:hidden;pointer-events:auto}.pointer{position:absolute;width:0;height:0}.pointer-direction{position:absolute;width:var(--arcgis-internal-popup-pointer-size);height:var(--arcgis-internal-popup-pointer-size);content:"";background-color:var(--calcite-color-foreground-1)}.aligned-top-center .pointer{top:100%;left:50%;margin:0 0 0 var(--arcgis-internal-popup-pointer-size-half-negative)}.aligned-bottom-center .pointer{bottom:100%;left:50%;margin:0 0 0 var(--arcgis-internal-popup-pointer-size-half-negative)}.aligned-top-left .pointer{right:var(--arcgis-internal-popup-pointer-size-half);bottom:var(--arcgis-internal-popup-pointer-size-half);transform:rotate(-45deg)}.aligned-bottom-left .pointer{top:var(--arcgis-internal-popup-pointer-size-half);right:var(--arcgis-internal-popup-pointer-size-half);transform:rotate(45deg)}.aligned-top-right .pointer{bottom:var(--arcgis-internal-popup-pointer-size-half);left:var(--arcgis-internal-popup-pointer-size-half);transform:rotate(45deg)}.aligned-bottom-right .pointer{top:var(--arcgis-internal-popup-pointer-size-half);left:var(--arcgis-internal-popup-pointer-size-half);transform:rotate(-45deg)}.aligned-top-center .pointer-direction,.aligned-bottom-center .pointer-direction{transform:scale(.75,2) rotate(45deg)}.aligned-top-left .pointer-direction,.aligned-bottom-left .pointer-direction,.aligned-top-right .pointer-direction,.aligned-bottom-right .pointer-direction{top:var(--arcgis-internal-popup-pointer-size-half-negative);left:var(--arcgis-internal-popup-pointer-size-half-negative);transform:scale(.75,2.5) rotate(45deg)}.aligned-top-center .pointer-direction{top:var(--arcgis-internal-popup-pointer-size-half-negative);left:0}.aligned-bottom-center .pointer-direction{bottom:var(--arcgis-internal-popup-pointer-size-half-negative);left:0}.is-xl-width-breakpoint .main-container{width:var(--arcgis-internal-popup-content-x-large-size)}.is-lg-width-breakpoint .main-container{width:var(--arcgis-internal-popup-content-large-size)}.is-md-width-breakpoint .main-container{width:var(--arcgis-internal-popup-content-medium-size)}.is-sm-width-breakpoint .main-container,.is-xs-width-breakpoint .main-container{width:var(--arcgis-internal-popup-content-small-size)}.is-xs-width-breakpoint.is-docked-top-center,.is-xs-width-breakpoint.is-docked-bottom-center{margin:0;width:auto}.is-xs-width-breakpoint.is-docked-top-center .main-container,.is-xs-width-breakpoint.is-docked-bottom-center .main-container{position:absolute;right:0;left:0;width:100%;max-height:75%}.is-xs-width-breakpoint.is-docked-bottom-center .main-container{bottom:0}.is-xs-width-breakpoint.is-docked-top-center .main-container{top:0}.is-xl-height-breakpoint .main-container{max-height:var(--arcgis-internal-popup-content-x-large-size)}.is-lg-height-breakpoint .main-container{max-height:var(--arcgis-internal-popup-content-large-size)}.is-sm-height-breakpoint .main-container,.is-xs-height-breakpoint .main-container{max-height:var(--arcgis-internal-popup-content-small-size)}.is-docked{flex-flow:row nowrap;inset:0;margin:var(--arcgis-layout-overlay-space-top, 0) var(--arcgis-layout-overlay-space-right, 0) var(--arcgis-layout-overlay-space-bottom, 0) var(--arcgis-layout-overlay-space-left, 0);padding:var(--calcite-spacing-lg) var(--calcite-spacing-lg) var(--calcite-spacing-xxxl) var(--calcite-spacing-lg);animation:docking-animation .25s ease-out}.is-docked-top-left,.is-docked-top-center,.is-docked-top-right,.is-docked-top-start,.is-docked-top-end{align-items:flex-start}.is-docked-bottom-left,.is-docked-bottom-center,.is-docked-bottom-right,.is-docked-bottom-start,.is-docked-bottom-end{align-items:flex-end}.is-docked-top-left,.is-docked-bottom-left,.is-docked-top-start,.is-docked-bottom-start{justify-content:flex-start}.is-docked-top-center,.is-docked-bottom-center{justify-content:center}.is-docked-top-right,.is-docked-bottom-right,.is-docked-top-end,.is-docked-bottom-end{justify-content:flex-end}.is-docked-top-left.is-rtl,.is-docked-top-right.is-rtl,.is-docked-bottom-left.is-rtl,.is-docked-bottom-right.is-rtl{flex-direction:row-reverse}.is-docked-top-left .main-container,.is-docked-top-right .main-container,.is-docked-bottom-left .main-container,.is-docked-bottom-right .main-container,.is-docked-top-start .main-container,.is-docked-top-end .main-container,.is-docked-bottom-start .main-container,.is-docked-bottom-end .main-container{max-height:80%}.is-docked-top-center .main-container,.is-docked-bottom-center .main-container{max-height:40%}{.aligned-top-center,.aligned-top-left,.aligned-top-right,.aligned-bottom-center,.aligned-bottom-left,.aligned-bottom-right{animation:none}}{.is-docked{animation:none}} docking-animation{0%{opacity:0}25%{opacity:0}to{opacity:1}} popup-intro-animation-down{0%{transform:translateY(calc(var(--calcite-spacing-xs) * -1));opacity:0}to{transform:translate(0);opacity:1}} popup-intro-animation-up{0%{transform:translateY(var(--calcite-spacing-xs));opacity:0}to{transform:translate(0);opacity:1}}`;
function f(b) {
return b && Number.parseInt(b.replaceAll(/[^-\d.]/gu, ""), 10) || 0;
}
const I = N(P), C = {
buttonEnabled: !0,
position: "auto",
breakpoint: {
width: 544
}
};
class j extends L {
constructor() {
super(...arguments), this._direction = O(), this._featuresComponent = g(), this._dockAction = new V({ id: "popup-dock-action" }), this._mainContainerNode = g(), this._pointerNode = g(), this.messages = F(), this.viewModel = I(this), this._containerNode = g(), this._popupResizeObserver = new ResizeObserver(() => this._positionContainer()), this._positionContainer = () => {
this.positionStyle = this._calculatePositionStyle();
}, this.screenLocation = H(this), this.actions = this.viewModel.actions, this.active = this.viewModel.active, this.alignment = "auto", this.autoCloseEnabled = !1, this.autoDestroyDisabled = !1, this.collapsed = !1, this.content = this.viewModel.content, this.defaultPopupTemplateEnabled = this.viewModel.defaultPopupTemplateEnabled, this.dockEnabled = !1, this.effectiveHeading = this.viewModel.effectiveHeading, this.featureCount = this.viewModel.featureCount, this.featureMenuOpen = !1, this.features = this.viewModel.features, this.focusTrapDisabled = !1, this.goToOverride = this.viewModel.goToOverride, this.heading = this.viewModel.heading, this.headingLevel = 2, this.hideActionBar = !1, this.hideCloseButton = !1, this.hideCollapseButton = !1, this.hideFeatureMenuHeading = !1, this.hideFeatureNavigation = !1, this.hideFeatureListLayerTitle = !1, this.hideHeading = !1, this.hideSpinner = !1, this.highlightDisabled = this.viewModel.highlightEnabled, this.includeDefaultActionsDisabled = this.viewModel.includeDefaultActions, this.initialDisplayMode = this.viewModel.initialDisplayMode, this.location = this.viewModel.location, this.open = this.viewModel.open, this.promises = this.viewModel.promises, this.selectedFeature = this.viewModel.selectedFeature, this.selectedFeatureIndex = this.viewModel.selectedFeatureIndex, this.state = this.viewModel.state, this.topLayerDisabled = !1, this.updateLocationEnabled = this.viewModel.updateLocationEnabled, this.view = this.viewModel.view, this.arcgisPropertyChange = $()("active", "collapsed", "currentAlignment", "dockEnabled", "effectiveHeading", "featureCount", "featureMenuOpen", "features", "promises", "selectedDrillInFeature", "selectedFeature", "selectedFeatureComponent", "selectedFeatureIndex", "state", "open"), this.arcgisReady = _(), this.arcgisClose = _(), this.arcgisTriggerAction = _();
}
static {
this.properties = { screenLocation: 16, positionStyle: 16, _featureNavigationTop: 16, actions: 0, active: 0, alignment: 1, autoCloseEnabled: 5, autoDestroyDisabled: 5, collapsed: 5, content: 1, currentAlignment: 32, currentDockPosition: 32, defaultPopupTemplateEnabled: 5, dockEnabled: 5, dockOptions: 0, effectiveHeading: 32, featureCount: 0, featureMenuOpen: 5, featureMenuTitle: 1, features: 0, focusTrapDisabled: 5, goToOverride: 0, heading: 1, headingLevel: 9, hideActionBar: 5, hideCloseButton: 5, hideCollapseButton: 5, hideFeatureMenuHeading: 5, hideFeatureNavigation: 5, hideFeatureListLayerTitle: 5, hideHeading: 5, hideSpinner: 5, highlightDisabled: 5, includeDefaultActionsDisabled: 5, initialDisplayMode: 1, label: 1, location: 0, messageOverrides: 0, open: 5, promises: 0, referenceElement: 1, selectedDrillInFeature: 32, selectedFeature: 0, selectedFeatureComponent: 32, selectedFeatureIndex: 9, state: 32, topLayerDisabled: 5, updateLocationEnabled: 5, view: 0 };
}
static {
this.styles = B;
}
get trackLocation() {
return this.active && !this.dockEnabled;
}
get _featureNavigationTop() {
const { currentAlignment: t, currentDockPosition: e } = this;
return t === "bottom-left" || t === "bottom-center" || t === "bottom-right" || t === "bottom-start" || t === "bottom-end" || e === "top-left" || e === "top-center" || e === "top-right" || e === "top-start" || e === "top-end";
}
get currentAlignment() {
return this._getCurrentAlignment();
}
get currentDockPosition() {
return this._getCurrentDockPosition();
}
get dockOptions() {
return this._dockOptions || C;
}
set dockOptions(t) {
const e = { ...C }, o = this.viewModel?.view?.breakpoints, i = {};
o && (i.width = o.xsmall, i.height = o.xsmall);
const s = { ...e, ...t }, n = { ...e.breakpoint, ...i }, { breakpoint: r } = s;
typeof r == "object" ? s.breakpoint = { ...n, ...r } : r && (s.breakpoint = n), this._dockOptions = s;
}
get selectedDrillInFeature() {
return this._featuresComponent.value?.selectedDrillInFeature ?? null;
}
get selectedFeatureComponent() {
return this._featuresComponent.value?.selectedFeatureComponent ?? null;
}
async handleViewClick(t) {
return this.viewModel.handleViewClick(t);
}
async clear() {
this.viewModel.clear();
}
async destroy() {
await this.manager.destroy(), this._dockAction.destroy(), this._popupResizeObserver.disconnect();
}
async fetchFeatures(t, e) {
await this._featuresComponent.value?.fetchFeatures(t, e);
}
async next() {
this.viewModel.next();
}
async previous() {
this.viewModel.previous();
}
async setFocus() {
this._featuresComponent.value?.setFocus();
}
connectedCallback() {
super.connectedCallback(), this._syncPopupResizeObserver();
}
loaded() {
this.manager.onLifecycle(() => [
p(() => [this.viewModel?.view?.widthBreakpoint, this.dockEnabled, this._direction], () => this._handleDockIcon(), { initial: !0 }),
p(() => [this.dockEnabled, this.messages?.undock, this.messages?.dock], () => this._handleDockEnabled(), { initial: !0 }),
p(() => [this.dockOptions, this._featuresComponent.value], () => {
const { _dockAction: t, dockOptions: e } = this, o = this._featuresComponent.value?.headerActions;
o?.remove(t), e.buttonEnabled && o?.add(t);
}, { initial: !0 }),
p(() => [
this._pointerNode.value,
this.alignment,
this.currentAlignment,
this.dockEnabled,
this.dockOptions,
this.screenLocation,
this.viewModel?.active,
this.viewModel?.location,
this.viewModel?.view?.size
], () => this._positionContainer(), { initial: !0 }),
p(() => this._mainContainerNode.value, (t) => {
this._syncPopupResizeObserver(t);
}, { initial: !0 }),
p(() => this.viewModel?.view?.size, (t, e) => this._updateDockEnabledForViewSize(t, e)),
p(() => this.viewModel?.view?.ready, () => this._setDockEnabledForViewSize(this.dockOptions), { initial: !0 }),
p(() => this.view?.map, (t) => {
this.viewModel.map = t;
}, { initial: !0 }),
p(() => this.screenLocation, (t, e) => this._autoClose(t, e)),
p(() => [this.active, this._containerNode.value, this.dockEnabled, this.topLayerDisabled], () => this._togglePopover(), { initial: !0 })
]);
}
disconnectedCallback() {
super.disconnectedCallback(), this._popupResizeObserver.disconnect();
}
_togglePopover() {
this._containerNode.value?.togglePopover(this.active && !this.dockEnabled && !this.topLayerDisabled);
}
_syncPopupResizeObserver(t = this._mainContainerNode.value) {
this._popupResizeObserver.disconnect(), t && this._popupResizeObserver.observe(t);
}
_handleClose(t) {
t.stopPropagation(), this.arcgisClose.emit();
}
_autoClose(t, e) {
this.autoCloseEnabled && t != null && e != null && (this.open = !1);
}
_handleArcgisPropertyChange(t) {
t.detail.name === "collapsed" && (this.collapsed = t.target.collapsed);
}
_handleArcgisTriggerAction(t) {
t.stopPropagation(), t.detail.action === this._dockAction && (this.dockEnabled = !this.dockEnabled), this.arcgisTriggerAction.emit({ action: t.detail.action });
}
_isOutsideView(t) {
const { popupHeight: e, popupWidth: o, screenLocation: i, side: s, view: n } = t;
return Number.isNaN(o) || Number.isNaN(e) || !n || !i ? !1 : s === "right" && i.x + o / 2 > n.width || s === "left" && i.x - o / 2 < 0 || s === "top" && i.y - e < 0 || s === "bottom" && i.y + e > n.height;
}
_getPointerSize() {
const { _pointerNode: t } = this, e = t.value ? window.getComputedStyle(t.value) : null, o = f(e?.height), i = f(e?.width);
return Math.hypot(o, i);
}
_calculateAutoAlignment(t) {
if (t !== "auto")
return t;
const { _mainContainerNode: e, _popupRect: o, viewModel: i } = this, { view: s } = i, { screenLocation: n } = this;
if (n == null || !s || !o || !e.value)
return "top-center";
const r = window.getComputedStyle(e.value), l = f(r.maxHeight), a = f(r.height), c = this._getPointerSize(), { height: d, width: k } = o, h = k + c, u = Math.max(d, l, a) + c, z = this._isOutsideView({
popupHeight: u,
popupWidth: h,
screenLocation: n,
side: "right",
view: s
}), D = this._isOutsideView({
popupHeight: u,
popupWidth: h,
screenLocation: n,
side: "left",
view: s
}), v = this._isOutsideView({
popupHeight: u,
popupWidth: h,
screenLocation: n,
side: "top",
view: s
}), M = this._isOutsideView({
popupHeight: u,
popupWidth: h,
screenLocation: n,
side: "bottom",
view: s
});
return D ? v ? "bottom-right" : "top-right" : z ? v ? "bottom-left" : "top-left" : v ? M ? "top-center" : "bottom-center" : "top-center";
}
_callCurrentAlignment(t) {
return typeof t == "function" ? t.call(this) : t;
}
_getCurrentAlignment() {
return this.dockEnabled || !this.active || !this._mainContainerNode.value ? null : this._calculateAutoAlignment(this._callCurrentAlignment(this.alignment));
}
_callDockPosition(t) {
return typeof t == "function" ? t.call(this) : t;
}
_getDockPosition() {
return this._calculateAutoDockPosition(this._callDockPosition(this.dockOptions?.position));
}
_getCurrentDockPosition() {
return this.dockEnabled && this.active ? this._getDockPosition() : null;
}
_calculateAutoDockPosition(t) {
if (t !== "auto")
return t;
const e = this.viewModel?.view, o = "top-end";
if (!e)
return o;
const { breakpoints: i } = e;
return i?.xsmall && e.width <= i.xsmall ? "bottom-center" : o;
}
_getDockIcon() {
const t = this._getDockPosition(), { _direction: e } = this;
if (this.dockEnabled)
return "minimize";
switch (t) {
case "top-left":
case "bottom-left":
return "dock-left";
case "top-center":
return "maximize";
case "bottom-center":
return "dock-bottom";
case "top-right":
case "bottom-right":
return "dock-right";
case "top-start":
case "bottom-start":
return e === "rtl" ? "dock-right" : "dock-left";
default:
return e === "rtl" ? "dock-left" : "dock-right";
}
}
_handleDockIcon() {
this._dockAction.icon = this._getDockIcon();
}
_handleDockEnabled() {
this._dockAction.title = this.dockEnabled ? this.messages?.undock : this.messages?.dock;
}
_calculateAlignmentPosition(t, e, o, i) {
if (t < 0 || e < 0 || !o || !i || t > o.width || e > o.height)
return;
const { topLayerDisabled: s } = this, n = s ? t : t + o.x, r = s ? e : e + o.y, { _direction: l, currentAlignment: a } = this, c = this._getPointerSize(), d = c / 2;
if (a === "top-left" || a === "top-start" && l === "ltr" || a === "top-end" && l === "rtl")
return {
top: r - (i.height + d),
left: n - i.width - d
};
if (a === "top-center")
return {
top: r - (i.height + c),
left: n - i.width / 2
};
if (a === "top-right" || a === "top-end" && l === "ltr" || a === "top-start" && l === "rtl")
return {
top: r - (i.height + d),
left: n + d
};
if (a === "bottom-left" || a === "bottom-start" && l === "ltr" || a === "bottom-end" && l === "rtl")
return {
top: r + d,
left: n - i.width - d
};
if (a === "bottom-center")
return {
top: r + c,
left: n - i.width / 2
};
if (a === "bottom-right" || a === "bottom-end" && l === "ltr" || a === "bottom-start" && l === "rtl")
return {
top: r + d,
left: n + d
};
}
_getPositionStyleValue(t) {
return t != null ? `${t}px` : "auto";
}
_calculatePositionStyle() {
if (this.dockEnabled)
return;
const { screenLocation: t } = this;
if (t == null)
return;
const e = this.view?.container?.getBoundingClientRect(), o = this._mainContainerNode.value?.getBoundingClientRect();
this._popupRect = o;
const i = this._calculateAlignmentPosition(t.x, t.y, e, o);
if (i)
return `inset: ${this._getPositionStyleValue(i.top)} ${this._getPositionStyleValue(i.right)} ${this._getPositionStyleValue(i.bottom)} ${this._getPositionStyleValue(i.left)};`;
}
_dockingThresholdCrossed(t, e, o) {
const [i, s] = t, [n, r] = e, { width: l = 0, height: a = 0 } = o ?? {};
return i <= l && n > l || i > l && n <= l || s <= a && r > a || s > a && r <= a;
}
_updateDockEnabledForViewSize(t, e) {
if (!t || !e || !this.viewModel?.view?.ready)
return;
const { dockOptions: o } = this, i = o.breakpoint;
typeof i == "object" && this._dockingThresholdCrossed(t, e, i) && this._setDockEnabledForViewSize(o);
}
_shouldDockAtCurrentViewSize(t) {
const e = t.breakpoint, o = this.viewModel?.view?.ui;
if (!o)
return !1;
const { width: i, height: s } = o;
if (Number.isNaN(i) || Number.isNaN(s) || typeof e != "object")
return !1;
const n = typeof e.width == "number" && i <= (e.width ?? 0), r = typeof e.height == "number" && s <= (e.height ?? 0);
return n || r;
}
_setDockEnabledForViewSize(t) {
this.viewModel?.view?.ready && typeof t.breakpoint == "object" && (this.dockEnabled = this._shouldDockAtCurrentViewSize(t));
}
render() {
const { _direction: t, dockEnabled: e, currentAlignment: o, currentDockPosition: i, positionStyle: s } = this, { active: n, view: r } = this.viewModel, l = n && e, a = n && !e, c = r?.widthBreakpoint, d = r?.heightBreakpoint, k = {
"aligned-top-center": o === "top-center",
"aligned-bottom-center": o === "bottom-center",
"aligned-top-left": o === "top-left" || o === "top-start" && t === "ltr" || o === "top-end" && t === "rtl",
"aligned-bottom-left": o === "bottom-left" || o === "bottom-start" && t === "ltr" || o === "bottom-end" && t === "rtl",
"aligned-top-right": o === "top-right" || o === "top-end" && t === "ltr" || o === "top-start" && t === "rtl",
"aligned-bottom-right": o === "bottom-right" || o === "bottom-end" && t === "ltr" || o === "bottom-start" && t === "rtl",
"is-docked": l,
shadow: a,
"is-rtl": this._direction === "rtl",
"is-docked-top-start": i === "top-start",
"is-docked-top-end": i === "top-end",
"is-docked-top-left": i === "top-left",
"is-docked-top-center": i === "top-center",
"is-docked-top-right": i === "top-right",
"is-docked-bottom-left": i === "bottom-left",
"is-docked-bottom-center": i === "bottom-center",
"is-docked-bottom-right": i === "bottom-right",
"is-docked-bottom-start": i === "bottom-start",
"is-docked-bottom-end": i === "bottom-end",
"is-xl-width-breakpoint": c === "xlarge",
"is-lg-width-breakpoint": c === "large",
"is-md-width-breakpoint": c === "medium",
"is-sm-width-breakpoint": c === "small",
"is-xs-width-breakpoint": c === "xsmall",
"is-xl-height-breakpoint": d === "xlarge",
"is-lg-height-breakpoint": d === "large",
"is-md-height-breakpoint": d === "medium",
"is-sm-height-breakpoint": d === "small",
"is-xs-height-breakpoint": d === "xsmall"
};
return w`<div style=${S(s)} class=${y(x("root", k, {
hidden: !n || !s && !e
}))} .ariaHidden=${!n} .ariaLabel=${T(this.heading ?? "")} role=dialog popover=manual ${m(this._containerNode)}>${this._renderMainContainer()}${this._renderPointer()}</div>`;
}
_renderPointer() {
return !this.dockEnabled || !this.active ? w`<div class="pointer" role=presentation><div class=${y(x("pointer-direction", "shadow"))} ${m(this._pointerNode)}></div></div>` : null;
}
_renderMainContainer() {
const t = {
shadow: this.dockEnabled
};
return w`<div class=${y(x("main-container", t))} ${m(this._mainContainerNode)}><arcgis-features-next .collapsed=${this.collapsed} .autoDestroyDisabled=${this.autoDestroyDisabled} .featureNavigationTop=${this._featureNavigationTop} .focusTrapEnabled=${!this.focusTrapDisabled} .headingLevel=${this.headingLevel} .hideActionBar=${this.hideActionBar} .hideCloseButton=${this.hideCloseButton} .hideFeatureListLayerTitle=${this.hideFeatureListLayerTitle} .hideFeatureMenuHeading=${this.hideFeatureMenuHeading} .hideFeatureNavigation=${this.hideFeatureNavigation} .hideHeading=${this.hideHeading} .hideSpinner=${this.hideSpinner} =${this._handleArcgisPropertyChange} =${this._handleArcgisTriggerAction} =${this._handleClose} .messageOverrides=${{ collapse: this.messages.collapse, expand: this.messages.expand }} .referenceElement=${this.referenceElement} .responsiveActionsEnabled=${!0} .showCollapseButton=${!this.hideCollapseButton} .viewModel=${this.viewModel} ${m(this._featuresComponent)}><slot name=actions-start slot=actions-start></slot><slot name=actions-end slot=actions-end></slot></arcgis-features-next></div>`;
}
}
A("arcgis-popup", j);
export {
j as ArcgisPopup
};