UNPKG

@atlaskit/editor-plugin-emoji

Version:

Emoji plugin for @atlaskit/editor-core

57 lines (56 loc) 2.29 kB
import type { IntlShape } from 'react-intl'; import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types'; import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model'; import type { NodeView } from '@atlaskit/editor-prosemirror/view'; import type { EmojiPlugin } from '../emojiPluginType'; import type { EmojiNodeDataProvider } from '../pm-plugins/providers/EmojiNodeDataProvider'; interface Params { api: ExtractInjectionAPI<EmojiPlugin> | undefined; emojiNodeDataProvider?: EmojiNodeDataProvider; intl: IntlShape; } /** * Check if we can nicely fallback to the nodes text * * @param fallbackText string of the nodes fallback text * * @example * isSingleEmoji('😀') // true */ export declare function isSingleEmoji(fallbackText: string): boolean; /** * Emoji node view for renderering emoji nodes */ export declare class EmojiNodeView implements NodeView { dom: Node; domElement: HTMLElement | undefined; private readonly node; private readonly intl; private renderingFallback; readonly destroy: () => void; private static logError; /** * Prosemirror node view for rendering emoji nodes. This class is responsible for * rendering emoji nodes in the editor, handling updates, and managing fallback rendering. * * @param node - The ProseMirror node representing the emoji. * @param extraProps - An object containing additional parameters. * @param extraProps.intl - The internationalization object for formatting messages. * @param extraProps.api - The editor API for accessing shared state and connectivity features. * @param extraProps.emojiNodeDataProvider - (Optional) A provider for fetching emoji data. * * @example * const emojiNodeView = new EmojiNodeView(node, { intl, api, emojiNodeDataProvider }); */ constructor(node: PMNode, { intl, api, emojiNodeDataProvider }: Params); /** Type guard to check if a Node is an HTMLElement in a safe way. */ private isHTMLElement; private updateDom; private static isEmojiRepresentationSupported; private cleanUpAndRenderCommonAttributes; private renderFallback; private renderEmoji; private createSpriteEmojiElement; private createImageEmojiElement; } export {};