{"version":3,"names":["PopoverManager","constructor","this","registeredElements","Map","registeredElementCount","queryPopover","composedPath","registeredElement","find","pathEl","has","get","togglePopovers","event","togglePopover","triggerDisabled","open","Array","from","values","filter","popover","autoClose","includes","forEach","keyDownHandler","defaultPrevented","key","closeAllPopovers","isActivationKey","clickHandler","isKeyboardTriggeredClick","registerElement","referenceEl","set","addListeners","unregisterElement","delete","removeListeners","window","addEventListener","removeEventListener","CSS","container","imageContainer","closeButtonContainer","closeButton","content","hasHeader","header","headerContainer","headerContent","heading","defaultPopoverPlacement","ARIA_CONTROLS","ARIA_EXPANDED","popoverCss","CalcitePopoverStyle0","manager","Popover","mutationObserver","createObserver","updateFocusTrapElements","guid","openTransitionProp","hasLoaded","setTransitionEl","el","transitionEl","setFilteredPlacements","flipPlacements","filteredFlipPlacements","filterValidFlipPlacements","setUpReferenceElement","warn","removeReferences","effectiveReferenceElement","getReferenceElement","connectFloatingUI","referenceElement","console","tagName","addReferences","getId","id","setExpandedAttr","setAttribute","toAriaBoolean","removeAttribute","hide","storeArrowEl","arrowEl","reposition","defaultOffsetDistance","handleFocusTrapDisabled","focusTrapDisabled","deactivateFocusTrap","activateFocusTrap","flipPlacementsHandler","onMessagesChange","offsetDistanceOffsetHandler","offsetSkiddingHandler","openHandler","onToggleOpenCloseComponent","overlayPositioningHandler","placementHandler","referenceElementHandler","effectiveLocaleChange","updateMessages","effectiveLocale","connectedCallback","observe","childList","subtree","connectLocalized","connectMessages","connectFocusTrap","requestAnimationFrame","componentWillLoad","setUpMessages","setUpLoadableComponent","componentDidLoad","setComponentLoaded","disconnectedCallback","disconnect","disconnectLocalized","disconnectMessages","disconnectFloatingUI","delayed","placement","overlayPositioning","flipDisabled","offsetDistance","offsetSkidding","floatingEl","type","setFocus","componentFocusable","forceUpdate","focusFirstTabbable","queryElementRoots","onBeforeOpen","calcitePopoverBeforeOpen","emit","onOpen","calcitePopoverOpen","onBeforeClose","calcitePopoverBeforeClose","onClose","calcitePopoverClose","renderCloseButton","messages","closable","h","class","appearance","onClick","ref","closeButtonEl","scale","text","close","icon","getIconScale","renderHeader","headingLevel","headingNode","Heading","level","render","label","pointerDisabled","floatingLayout","displayed","hidden","arrowNode","FloatingArrow","Host","role","FloatingCSS","animation","animationActive"],"sources":["src/components/popover/PopoverManager.ts","src/components/popover/resources.ts","src/components/popover/popover.scss?tag=calcite-popover&encapsulation=shadow","src/components/popover/popover.tsx"],"sourcesContent":["import { ReferenceElement } from \"../../utils/floating-ui\";\nimport { isActivationKey } from \"../../utils/key\";\nimport { isKeyboardTriggeredClick } from \"../../utils/dom\";\n\nexport default class PopoverManager {\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n private registeredElements = new Map();\n\n private registeredElementCount = 0;\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n registerElement(referenceEl: ReferenceElement, popover: HTMLCalcitePopoverElement): void {\n this.registeredElementCount++;\n\n this.registeredElements.set(referenceEl, popover);\n\n if (this.registeredElementCount === 1) {\n this.addListeners();\n }\n }\n\n unregisterElement(referenceEl: ReferenceElement): void {\n if (this.registeredElements.delete(referenceEl)) {\n this.registeredElementCount--;\n }\n\n if (this.registeredElementCount === 0) {\n this.removeListeners();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n private queryPopover = (composedPath: EventTarget[]): HTMLCalcitePopoverElement => {\n const { registeredElements } = this;\n\n const registeredElement = (composedPath as HTMLElement[]).find((pathEl) => registeredElements.has(pathEl));\n\n return registeredElements.get(registeredElement);\n };\n\n private togglePopovers = (event: KeyboardEvent | PointerEvent): void => {\n const composedPath = event.composedPath();\n const togglePopover = this.queryPopover(composedPath);\n\n if (togglePopover && !togglePopover.triggerDisabled) {\n togglePopover.open = !togglePopover.open;\n }\n\n Array.from(this.registeredElements.values())\n .filter(\n (popover) => popover !== togglePopover && popover.autoClose && popover.open && !composedPath.includes(popover),\n )\n .forEach((popover) => (popover.open = false));\n };\n\n private closeAllPopovers(): void {\n Array.from(this.registeredElements.values()).forEach((popover) => (popover.open = false));\n }\n\n private keyDownHandler = (event: KeyboardEvent): void => {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.key === \"Escape\") {\n this.closeAllPopovers();\n } else if (isActivationKey(event.key)) {\n this.togglePopovers(event);\n }\n };\n\n private clickHandler = (event: PointerEvent): void => {\n if (isKeyboardTriggeredClick(event)) {\n return;\n }\n\n this.togglePopovers(event);\n };\n\n private addListeners(): void {\n window.addEventListener(\"click\", this.clickHandler);\n window.addEventListener(\"keydown\", this.keyDownHandler);\n }\n\n private removeListeners(): void {\n window.removeEventListener(\"click\", this.clickHandler);\n window.removeEventListener(\"keydown\", this.keyDownHandler);\n }\n}\n","export const CSS = {\n container: \"container\",\n imageContainer: \"image-container\",\n closeButtonContainer: \"close-button-container\",\n closeButton: \"close-button\",\n content: \"content\",\n hasHeader: \"has-header\",\n header: \"header\",\n headerContainer: \"headerContainer\",\n headerContent: \"header-content\",\n heading: \"heading\",\n};\n\nexport const defaultPopoverPlacement = \"auto\";\nexport const ARIA_CONTROLS = \"aria-controls\";\nexport const ARIA_EXPANDED = \"aria-expanded\";\n","/**\n * CSS Custom Properties\n *\n * These properties can be overridden using the component's tag as selector.\n *\n * @prop --calcite-popover-background-color: Specifies the component's background color.\n * @prop --calcite-popover-border-color: Specifies the component's border color.\n * @prop --calcite-popover-corner-radius: Specifies the component's corner radius.\n * @prop --calcite-popover-text-color: Specifies the component's text color.\n * @prop --calcite-popover-z-index: Specifies the component's z-index value.\n */\n\n:host {\n --calcite-floating-ui-z-index: var(--calcite-popover-z-index, theme(\"zIndex.popover\"));\n}\n\n@include floating-ui-host();\n@include floating-ui-arrow();\n\n:host([scale=\"s\"]) {\n .heading {\n @apply text-n1-wrap\n px-3\n py-2;\n }\n}\n\n:host([scale=\"m\"]) {\n .heading {\n @apply text-0-wrap\n px-4\n py-3;\n }\n}\n\n:host([scale=\"l\"]) {\n .heading {\n @apply text-1-wrap\n px-5\n py-4;\n }\n}\n\n:host {\n @apply pointer-events-none;\n}\n\n:host([open]) {\n pointer-events: initial;\n}\n\n.calcite-floating-ui-anim {\n @apply border\n border-solid;\n\n background-color: var(--calcite-popover-background-color, var(--calcite-color-foreground-1));\n border-color: var(--calcite-popover-border-color, var(--calcite-color-border-3));\n border-radius: var(--calcite-popover-corner-radius, var(--calcite-corner-radius-round));\n}\n\n.calcite-floating-ui-arrow {\n fill: var(--calcite-popover-background-color, var(--calcite-color-foreground-1));\n}\n\n.calcite-floating-ui-arrow__stroke {\n stroke: var(--calcite-popover-border-color, var(--calcite-color-border-3));\n}\n\n.header {\n @apply flex\n flex-auto\n items-stretch\n justify-start\n border-0\n border-b\n border-solid;\n\n border-block-end-color: var(--calcite-popover-border-color, var(--calcite-color-border-3));\n}\n\n.heading {\n @apply word-break\n m-0\n block\n flex-auto\n self-center\n whitespace-normal\n font-medium;\n\n color: var(--calcite-popover-text-color, var(--calcite-color-text-1));\n}\n\n.headerContainer {\n @apply relative\n flex\n h-full\n flex-row\n flex-nowrap\n rounded;\n color: var(--calcite-popover-text-color, var(--calcite-color-text-1));\n\n &.has-header {\n @apply flex-col;\n }\n}\n\n.content {\n @apply word-break\n flex\n h-full\n w-full\n flex-col\n flex-nowrap\n self-center;\n}\n\n.close-button-container {\n @apply flex overflow-hidden;\n flex: 0 0 auto;\n border-start-end-radius: var(--calcite-popover-corner-radius, var(--calcite-corner-radius-round));\n border-end-end-radius: var(--calcite-popover-corner-radius, var(--calcite-corner-radius-round));\n --calcite-action-corner-radius-start-end: var(--calcite-popover-corner-radius, var(--calcite-corner-radius-sharp));\n --calcite-action-corner-radius-end-end: var(--calcite-popover-corner-radius, var(--calcite-corner-radius-sharp));\n}\n\n::slotted(calcite-panel),\n::slotted(calcite-flow) {\n @apply h-full;\n}\n\n@include base-component();\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n h,\n Host,\n Method,\n Prop,\n State,\n VNode,\n Watch,\n} from \"@stencil/core\";\nimport {\n connectFloatingUI,\n defaultOffsetDistance,\n disconnectFloatingUI,\n filterValidFlipPlacements,\n FlipPlacement,\n FloatingCSS,\n FloatingLayout,\n FloatingUIComponent,\n LogicalPlacement,\n OverlayPositioning,\n ReferenceElement,\n reposition,\n} from \"../../utils/floating-ui\";\nimport {\n activateFocusTrap,\n connectFocusTrap,\n deactivateFocusTrap,\n FocusTrap,\n FocusTrapComponent,\n updateFocusTrapElements,\n} from \"../../utils/focusTrapComponent\";\nimport { focusFirstTabbable, queryElementRoots, toAriaBoolean } from \"../../utils/dom\";\nimport { guid } from \"../../utils/guid\";\nimport { onToggleOpenCloseComponent, OpenCloseComponent } from \"../../utils/openCloseComponent\";\nimport { Heading, HeadingLevel } from \"../functional/Heading\";\nimport { Scale } from \"../interfaces\";\nimport { connectLocalized, disconnectLocalized, LocalizedComponent } from \"../../utils/locale\";\nimport {\n connectMessages,\n disconnectMessages,\n setUpMessages,\n T9nComponent,\n updateMessages,\n} from \"../../utils/t9n\";\nimport {\n componentFocusable,\n LoadableComponent,\n setComponentLoaded,\n setUpLoadableComponent,\n} from \"../../utils/loadable\";\nimport { createObserver } from \"../../utils/observers\";\nimport { FloatingArrow } from \"../functional/FloatingArrow\";\nimport { getIconScale } from \"../../utils/component\";\nimport PopoverManager from \"./PopoverManager\";\nimport { PopoverMessages } from \"./assets/popover/t9n\";\nimport { ARIA_CONTROLS, ARIA_EXPANDED, CSS, defaultPopoverPlacement } from \"./resources\";\n\nconst manager = new PopoverManager();\n\n/**\n * @slot - A slot for adding custom content.\n */\n@Component({\n tag: \"calcite-popover\",\n styleUrl: \"popover.scss\",\n shadow: true,\n assetsDirs: [\"assets\"],\n})\nexport class Popover\n implements\n FloatingUIComponent,\n OpenCloseComponent,\n FocusTrapComponent,\n LoadableComponent,\n LocalizedComponent,\n T9nComponent\n{\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n /**\n * When `true`, clicking outside of the component automatically closes open `calcite-popover`s.\n */\n @Prop({ reflect: true }) autoClose = false;\n\n /** When `true`, displays a close button within the component. */\n @Prop({ reflect: true }) closable = false;\n\n /**\n * When `true`, prevents flipping the component's placement when overlapping its `referenceElement`.\n */\n @Prop({ reflect: true }) flipDisabled = false;\n\n /**\n * When `true`, prevents focus trapping.\n */\n @Prop({ reflect: true }) focusTrapDisabled = false;\n\n @Watch(\"focusTrapDisabled\")\n handleFocusTrapDisabled(focusTrapDisabled: boolean): void {\n if (!this.open) {\n return;\n }\n\n focusTrapDisabled ? deactivateFocusTrap(this) : activateFocusTrap(this);\n }\n\n /**\n * When `true`, removes the caret pointer.\n */\n @Prop({ reflect: true }) pointerDisabled = false;\n\n /**\n * Specifies the component's fallback `placement` when it's initial or specified `placement` has insufficient space available.\n */\n @Prop() flipPlacements: FlipPlacement[];\n\n @Watch(\"flipPlacements\")\n flipPlacementsHandler(): void {\n this.setFilteredPlacements();\n this.reposition(true);\n }\n\n /**\n * The component header text.\n */\n @Prop() heading: string;\n\n /**\n * Specifies the heading level of the component's `heading` for proper document structure, without affecting visual styling.\n */\n @Prop({ reflect: true }) headingLevel: HeadingLevel;\n\n /** Accessible name for the component. */\n @Prop() label!: string;\n\n /**\n * Use this property to override individual strings used by the component.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable -- updated by t9n module\n @Prop({ mutable: true }) messageOverrides: Partial;\n\n @Watch(\"messageOverrides\")\n onMessagesChange(): void {\n /* wired up by t9n util */\n }\n\n /**\n * Made into a prop for testing purposes only\n *\n * @internal\n */\n // eslint-disable-next-line @stencil-community/strict-mutable -- updated by t9n module\n @Prop({ mutable: true }) messages: PopoverMessages;\n\n /**\n * Offsets the position of the popover away from the `referenceElement`.\n *\n * @default 6\n */\n @Prop({ reflect: true }) offsetDistance = defaultOffsetDistance;\n\n @Watch(\"offsetDistance\")\n offsetDistanceOffsetHandler(): void {\n this.reposition(true);\n }\n\n /**\n * Offsets the position of the component along the `referenceElement`.\n */\n @Prop({ reflect: true }) offsetSkidding = 0;\n\n @Watch(\"offsetSkidding\")\n offsetSkiddingHandler(): void {\n this.reposition(true);\n }\n\n /**\n * When `true`, displays and positions the component.\n */\n @Prop({ reflect: true, mutable: true }) open = false;\n\n @Watch(\"open\")\n openHandler(): void {\n onToggleOpenCloseComponent(this);\n this.reposition(true);\n this.setExpandedAttr();\n }\n\n /**\n * Determines the type of positioning to use for the overlaid content.\n *\n * Using `\"absolute\"` will work for most cases. The component will be positioned inside of overflowing parent containers and will affect the container's layout.\n *\n * `\"fixed\"` value should be used to escape an overflowing parent container, or when the reference element's `position` CSS property is `\"fixed\"`.\n *\n */\n @Prop({ reflect: true }) overlayPositioning: OverlayPositioning = \"absolute\";\n\n @Watch(\"overlayPositioning\")\n overlayPositioningHandler(): void {\n this.reposition(true);\n }\n\n /**\n * Determines where the component will be positioned relative to the `referenceElement`.\n */\n @Prop({ reflect: true }) placement: LogicalPlacement = defaultPopoverPlacement;\n\n @Watch(\"placement\")\n placementHandler(): void {\n this.reposition(true);\n }\n\n /**\n * The `referenceElement` used to position the component according to its `placement` value. Setting to an `HTMLElement` is preferred so the component does not need to query the DOM. However, a string `id` of the reference element can also be used.\n */\n @Prop() referenceElement!: ReferenceElement | string;\n\n @Watch(\"referenceElement\")\n referenceElementHandler(): void {\n this.setUpReferenceElement();\n this.reposition(true);\n }\n\n /** Specifies the size of the component. */\n @Prop({ reflect: true }) scale: Scale = \"m\";\n\n /**\n * When `true`, disables automatically toggling the component when its `referenceElement` has been triggered.\n *\n * This property can be set to `true` to manage when the component is open.\n */\n @Prop({ reflect: true }) triggerDisabled = false;\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n @Element() el: HTMLCalcitePopoverElement;\n\n mutationObserver: MutationObserver = createObserver(\"mutation\", () =>\n this.updateFocusTrapElements(),\n );\n\n filteredFlipPlacements: FlipPlacement[];\n\n @State() effectiveLocale = \"\";\n\n @State() floatingLayout: FloatingLayout = \"vertical\";\n\n @Watch(\"effectiveLocale\")\n effectiveLocaleChange(): void {\n updateMessages(this, this.effectiveLocale);\n }\n\n @State() effectiveReferenceElement: ReferenceElement;\n\n @State() defaultMessages: PopoverMessages;\n\n arrowEl: SVGSVGElement;\n\n closeButtonEl: HTMLCalciteActionElement;\n\n guid = `calcite-popover-${guid()}`;\n\n openTransitionProp = \"opacity\";\n\n transitionEl: HTMLDivElement;\n\n hasLoaded = false;\n\n focusTrap: FocusTrap;\n\n // --------------------------------------------------------------------------\n //\n // Lifecycle\n //\n // --------------------------------------------------------------------------\n\n connectedCallback(): void {\n this.mutationObserver?.observe(this.el, { childList: true, subtree: true });\n this.setFilteredPlacements();\n connectLocalized(this);\n connectMessages(this);\n connectFocusTrap(this);\n\n // we set up the ref element in the next frame to ensure PopoverManager\n // event handlers are invoked after connect (mainly for `components` output target)\n requestAnimationFrame(() => this.setUpReferenceElement(this.hasLoaded));\n }\n\n async componentWillLoad(): Promise {\n await setUpMessages(this);\n setUpLoadableComponent(this);\n }\n\n componentDidLoad(): void {\n setComponentLoaded(this);\n if (this.referenceElement && !this.effectiveReferenceElement) {\n this.setUpReferenceElement();\n }\n\n if (this.open) {\n onToggleOpenCloseComponent(this);\n }\n this.hasLoaded = true;\n }\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.removeReferences();\n disconnectLocalized(this);\n disconnectMessages(this);\n disconnectFloatingUI(this, this.effectiveReferenceElement, this.el);\n deactivateFocusTrap(this);\n }\n\n //--------------------------------------------------------------------------\n //\n // Events\n //\n //--------------------------------------------------------------------------\n\n /** Fires when the component is requested to be closed and before the closing transition begins. */\n @Event({ cancelable: false }) calcitePopoverBeforeClose: EventEmitter;\n\n /** Fires when the component is closed and animation is complete. */\n @Event({ cancelable: false }) calcitePopoverClose: EventEmitter;\n\n /** Fires when the component is added to the DOM but not rendered, and before the opening transition begins. */\n @Event({ cancelable: false }) calcitePopoverBeforeOpen: EventEmitter;\n\n /** Fires when the component is open and animation is complete. */\n @Event({ cancelable: false }) calcitePopoverOpen: EventEmitter;\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n /**\n * Updates the position of the component.\n *\n * @param delayed\n */\n @Method()\n async reposition(delayed = false): Promise {\n const {\n el,\n effectiveReferenceElement,\n placement,\n overlayPositioning,\n flipDisabled,\n filteredFlipPlacements,\n offsetDistance,\n offsetSkidding,\n arrowEl,\n } = this;\n return reposition(\n this,\n {\n floatingEl: el,\n referenceEl: effectiveReferenceElement,\n overlayPositioning,\n placement,\n flipDisabled,\n flipPlacements: filteredFlipPlacements,\n offsetDistance,\n offsetSkidding,\n arrowEl,\n type: \"popover\",\n },\n delayed,\n );\n }\n\n /**\n * Sets focus on the component's first focusable element.\n */\n @Method()\n async setFocus(): Promise {\n await componentFocusable(this);\n forceUpdate(this.el);\n focusFirstTabbable(this.el);\n }\n\n /**\n * Updates the element(s) that are used within the focus-trap of the component.\n */\n @Method()\n async updateFocusTrapElements(): Promise {\n updateFocusTrapElements(this);\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n private setTransitionEl = (el: HTMLDivElement): void => {\n this.transitionEl = el;\n };\n\n setFilteredPlacements = (): void => {\n const { el, flipPlacements } = this;\n\n this.filteredFlipPlacements = flipPlacements\n ? filterValidFlipPlacements(flipPlacements, el)\n : null;\n };\n\n setUpReferenceElement = (warn = true): void => {\n this.removeReferences();\n this.effectiveReferenceElement = this.getReferenceElement();\n connectFloatingUI(this, this.effectiveReferenceElement, this.el);\n\n const { el, referenceElement, effectiveReferenceElement } = this;\n if (warn && referenceElement && !effectiveReferenceElement) {\n console.warn(`${el.tagName}: reference-element id \"${referenceElement}\" was not found.`, {\n el,\n });\n }\n\n this.addReferences();\n };\n\n getId = (): string => {\n return this.el.id || this.guid;\n };\n\n setExpandedAttr = (): void => {\n const { effectiveReferenceElement, open } = this;\n\n if (!effectiveReferenceElement) {\n return;\n }\n\n if (\"setAttribute\" in effectiveReferenceElement) {\n effectiveReferenceElement.setAttribute(ARIA_EXPANDED, toAriaBoolean(open));\n }\n };\n\n addReferences = (): void => {\n const { effectiveReferenceElement } = this;\n\n if (!effectiveReferenceElement) {\n return;\n }\n\n const id = this.getId();\n\n if (\"setAttribute\" in effectiveReferenceElement) {\n effectiveReferenceElement.setAttribute(ARIA_CONTROLS, id);\n }\n\n manager.registerElement(effectiveReferenceElement, this.el);\n this.setExpandedAttr();\n };\n\n removeReferences = (): void => {\n const { effectiveReferenceElement } = this;\n\n if (!effectiveReferenceElement) {\n return;\n }\n\n if (\"removeAttribute\" in effectiveReferenceElement) {\n effectiveReferenceElement.removeAttribute(ARIA_CONTROLS);\n effectiveReferenceElement.removeAttribute(ARIA_EXPANDED);\n }\n\n manager.unregisterElement(effectiveReferenceElement);\n };\n\n getReferenceElement(): ReferenceElement {\n const { referenceElement, el } = this;\n\n return (\n (typeof referenceElement === \"string\"\n ? queryElementRoots(el, { id: referenceElement })\n : referenceElement) || null\n );\n }\n\n hide = (): void => {\n this.open = false;\n };\n\n onBeforeOpen(): void {\n this.calcitePopoverBeforeOpen.emit();\n }\n\n onOpen(): void {\n this.calcitePopoverOpen.emit();\n activateFocusTrap(this);\n }\n\n onBeforeClose(): void {\n this.calcitePopoverBeforeClose.emit();\n }\n\n onClose(): void {\n this.calcitePopoverClose.emit();\n deactivateFocusTrap(this);\n }\n\n storeArrowEl = (el: SVGSVGElement): void => {\n this.arrowEl = el;\n this.reposition(true);\n };\n\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n\n renderCloseButton(): VNode {\n const { messages, closable } = this;\n return closable ? (\n
\n (this.closeButtonEl = closeButtonEl)}\n scale={this.scale}\n text={messages.close}\n >\n \n \n
\n ) : null;\n }\n\n renderHeader(): VNode {\n const { heading, headingLevel } = this;\n const headingNode = heading ? (\n \n {heading}\n \n ) : null;\n\n return headingNode ? (\n
\n {headingNode}\n {this.renderCloseButton()}\n
\n ) : null;\n }\n\n render(): VNode {\n const { effectiveReferenceElement, heading, label, open, pointerDisabled, floatingLayout } =\n this;\n const displayed = effectiveReferenceElement && open;\n const hidden = !displayed;\n const arrowNode = !pointerDisabled ? (\n \n ) : null;\n\n return (\n \n \n {arrowNode}\n \n {this.renderHeader()}\n
\n \n
\n {!heading ? this.renderCloseButton() : null}\n \n \n \n );\n }\n}\n"],"mappings":"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","ignoreList":[]}