UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

39 lines (38 loc) 1.15 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */ import { makeGenericController } from "@arcgis/lumina/controllers"; const useTopLayer = (options) => { return makeGenericController((component, controller) => { let opened = false; controller.onConnected(() => { if (opened) { togglePopover(true); } }); async function togglePopover(open) { await component.componentOnReady(); const nativePopoverEl = typeof options.target === "function" ? options.target() : options.target.value; if (!nativePopoverEl || !nativePopoverEl.hasAttribute("popover")) { return; } const isDisabled = options.disabledOverride?.() || "topLayerDisabled" in component && component.topLayerDisabled === true; if (isDisabled || !open) { opened = false; nativePopoverEl.hidePopover(); return; } opened = true; nativePopoverEl.showPopover(); } return { show: async () => { await togglePopover(true); }, hide: async () => { await togglePopover(false); } }; }); }; export { useTopLayer as u };