import { JSXInterface } from '../jsx'; import { BasicElement, CSSResultGroup, PropertyValues, TemplateResult } from '@refinitiv-ui/core'; import '@refinitiv-ui/phrasebook/locale/en/card.js'; import { Translate } from '@refinitiv-ui/translate'; import '../button/index.js'; import '../label/index.js'; import '../overlay-menu/index.js'; import type { CardConfig } from './helpers/types'; export type { CardConfig }; /** * A card frame component. * * @fires item-trigger - Fired when the user selects card menu. * * @slot header - Adds slotted content into the header of the card. * @slot footer - Adds slotted content into the footer of the card. */ export declare class Card extends BasicElement { /** * Element version number * @returns version number */ static get version(): string; /** * A `CSSResultGroup` that will be used * to style the host, slotted children * and the internal template of the element. * @returns CSS template */ static get styles(): CSSResultGroup; private _config; /** * Set text on the header */ header: string; /** * Set text on the footer */ footer: string; /** * Set card configurations * @type {CardConfig} * @default {} */ get config(): CardConfig; set config(config: CardConfig); /** * Get menu element from shadow root */ private menuElement?; /** * Get button element from shadow root */ private openMenuElement?; /** * Used for translations */ protected t: Translate; /** * Menu data for creating overlay-menu */ private menuData?; /** * Menu open state */ private menuOpened; /** * True if header has slotted content */ private headerHasContent; /** * True if footer has slotted content */ private footerHasContent; /** * Open menu * @returns {void} */ private openMenu; /** * Close menu * @param event ItemTriggerEvent * @returns {void} */ private closeMenu; /** * Run on header slot slotchange * @param event Footer slotchange event * @returns {void} */ private onHeaderSlotChange; /** * Run on footer slot slotchange * @param event Header slotchange event * @returns {void} */ private onFooterSlotChange; /** * Run on overlay menu open changed * @param event overlay menu opened changed event * @returns {void} */ private onMenuOpenChanged; /** * True if card has header */ private get withHeader(); /** * True if card has footer */ private get withFooter(); /** * Called after render life-cycle finished * @param changedProperties Properties which have changed * @return {void} */ protected updated(changedProperties: PropertyValues): void; /** * Called after the component is first rendered * @param changedProperties Properties which have changed * @return {void} */ protected firstUpdated(changedProperties: PropertyValues): void; /** * Template of menu * @return menu template */ protected get menuTemplate(): TemplateResult; /** * Template of header * @return header template */ protected get headerTemplate(): TemplateResult; /** * Template of footer * @return footer template */ protected get footerTemplate(): TemplateResult; /** * A `TemplateResult` that will be used * to render the updated internal template. * @return Render template */ protected render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { 'ef-card': Card; } } declare global { interface HTMLElementTagNameMap { 'ef-card': Card; } namespace JSX { interface IntrinsicElements { 'ef-card': Partial | JSXInterface.HTMLAttributes; } } } export {};