import { PropertyValueMap } from "lit"; import { FRoot } from "../../mixins/components/f-root/f-root"; import { Picker } from "emoji-mart"; import { FDiv } from "../f-div/f-div"; import { FPopover } from "../f-popover/f-popover"; export type FEmojiPickerState = "primary" | "default" | "success" | "warning" | "danger"; export type FEmojiPickerCategories = "activity" | "flags" | "foods" | "frequent" | "nature" | "objects" | "people" | "places" | "symbols"; export type FEmojiPickerIncludesCategories = FEmojiPickerCategories[]; export type FEmojiPickerExcludesCategories = FEmojiPickerCategories[]; export type EmojiSkins = { src: string; }; export type Emoji = { emoticons?: string[]; id: string; keywords?: string[]; name: string; native?: string | undefined; shortcodes?: string; unified?: string; skins?: EmojiSkins[]; src?: string; }; export type FEmojiPickerCustomEmoji = { id: string; name?: string; emojis: string[]; }; export type FEmojiPickerCustomEmojiData = FEmojiPickerCustomEmoji[]; export type RecentEmojis = string[]; export type ExcludeEmojis = string[]; export declare class FEmojiPicker extends FRoot { /** * css loaded from scss file */ static styles: import("lit").CSSResult[]; /** * @attribute Variants are various visual representations of emoji picker. */ variant?: "curved" | "round" | "block"; /** * @attribute Categories are various visual representations of emoji picker. */ category?: "fill" | "outline" | "transparent"; /** * @attribute Defines the value of f-emoji-picker */ value?: string; /** * @attribute Defines the placeholder of f-emoji-picker */ placeholder?: string; /** * @attribute Defines the size of f-emoji-picker. size can be two types - `medium` | `small` */ size?: "medium" | "small"; /** * @attribute States are used to communicate purpose and connotations. */ state?: FEmojiPickerState; /** * @attribute recent decides the emojis that are frequenlt added inside emoji picker. */ recent?: RecentEmojis; /** * @attribute Only load included categories. */ include?: FEmojiPickerIncludesCategories; /** * @attribute remove excluded categories */ exclude?: FEmojiPickerExcludesCategories; /** * @attribute List of emoji IDs that will be excluded from the picker */ ["exclude-emojis"]?: ExcludeEmojis; /** * @attribute add custom emojis array */ custom?: FEmojiPickerCustomEmojiData; /** * @attribute if true close picker popover on value select */ ["close-on-select"]?: boolean; /** * @attribute show/remove clear icon */ clear?: boolean; /** * @attribute Sets the f-emoji-picker to disabled state. */ disabled?: boolean; /** * @attribute assigned elements inside slot label */ _labelNodes: NodeListOf; /** * @attribute assigned elements inside slot description */ _descriptionNodes: NodeListOf; /** * @attribute assigned elements inside slot help */ _helpNodes: NodeListOf; emojiPickerHeader: FDiv; emojiPickerError: FDiv; labelSlot: HTMLElement; descriptionSlot: HTMLElement; helpSlot: HTMLElement; emojiPicker: FDiv; emojiPickerPopover: FPopover; picker?: Picker; categories: string[]; /** * has label slot */ get hasLabel(): boolean; /** * has description slot */ get hasDescription(): boolean; /** * has help slot */ get hasHelperText(): boolean; /** * icon size */ get iconSize(): "small" | "x-small" | undefined; /** * exclude categories */ get excludeCategories(): string[]; /** * categories to be displayed for picker according to inclide amd exclude */ get categroiesToDisplay(): string[]; /** * header slot display */ headerSectionDisplay(): void; /** * help section display */ helpSectionDisplay(): void; /** * open/close picker * @param value boolean */ toggleEmojiPicker(value: boolean): void; /** * * @param valuePicked emoji as value */ handleSelectEmoji(valuePicked?: Emoji): void; /** * clear emoji value * @param e MouseEvent */ clearValue(e: MouseEvent): void; /** * add recently used emojis */ handleFrequentEmojiCategory(): void; /** * handle custom emoji insertion */ handleCustomEmoji(): void; /** * validation for placeolder */ validateProperties(): void; /** * * @param e mMouseEvent * @param element emoji-picker component */ closeEmojiPicker(e: MouseEvent, element: FEmojiPicker): void; outsideClick: (e: MouseEvent) => void; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changedProperties: PropertyValueMap | Map): void; render(): import("lit-html").TemplateResult<1>; protected updated(changedProperties: PropertyValueMap | Map): void; } /** * Required for typescript */ declare global { interface HTMLElementTagNameMap { "f-emoji-picker": FEmojiPicker; } }