@rytrox/quill-emoji-mart
Version:
Module Extension for [quill](https://github.com/slab/quill) that introduces [emoji-mart](https://github.com/missive/emoji-mart).
89 lines (83 loc) • 2.62 kB
TypeScript
import Quill, { Module } from 'quill';
import { Emoji, EmojiMartData } from '@emoji-mart/data';
interface CustomEmojiData {
id: string;
name: string;
emojis: Emoji[];
}
interface EmojiI18n {
search: string;
search_no_results_1: string;
search_no_results_2: string;
pick: string;
add_custom: string;
categories: {
activity: string;
custom: string;
flags: string;
foods: string;
frequent: string;
nature: string;
objects: string;
people: string;
places: string;
search: string;
symbols: string;
};
skins: {
choose: string;
1: string;
2: string;
3: string;
4: string;
5: string;
6: string;
};
}
interface EmojiOptions {
data: EmojiMartData;
i18n: EmojiI18n;
categories: EmojiCategory[];
custom: CustomEmojiData[];
autoFocus: boolean;
categoryIcons: Record<EmojiCategory, {
src?: string;
svg?: string;
}>;
dynamicWidth: boolean;
emojiButtonColors: (RGB | RGBA | HEX)[];
emojiButtonRadius: `${number}${LengthUnit}`;
emojiButtonSize: number;
emojiSize: number;
emojiVersion: `${number}` | `${number}.${number}`;
exceptEmojis: string[];
icons: 'auto' | 'outline' | 'solid';
maxFrequentRows: number;
navPosition: 'top' | 'bottom' | 'none';
noCountryFlags: boolean;
noResultsEmoji: string;
perLine: number;
previewEmoji: 'point_up' | 'point_down';
previewPosition: 'top' | 'bottom' | 'none';
searchPosition: 'sticky' | 'static' | 'none';
set: 'native' | 'apple' | 'facebook' | 'google' | 'twitter';
skin: 1 | 2 | 3 | 4 | 5 | 6;
skinTonePosition: 'preview' | 'search' | 'none';
theme: 'auto' | 'light' | 'dark';
}
type EmojiCategory = 'frequent' | 'people' | 'nature' | 'foods' | 'activity' | 'places' | 'objects' | 'symbols' | 'flags';
type RGB = `rgb(${number}, ${number}, ${number})`;
type RGBA = `rgba(${number}, ${number}, ${number}, ${number})`;
type HEX = `#${string}`;
type LengthUnit = 'cm' | 'mm' | 'in' | 'px' | 'pt' | 'pc' | 'em' | 'ex' | 'ch' | 'rem' | 'vw' | 'vh' | 'vmin' | 'vmax' | '%' | 'lh' | 'rlh' | 'cqw' | 'cqh' | 'cqi' | 'cqb' | 'cqmax' | 'cqmin';
declare class EmojiModule extends Module<Partial<EmojiOptions>> {
private readonly toolbar?;
private readonly button?;
private picker?;
constructor(quill: Quill, options: Partial<EmojiOptions>);
openDialog(): void;
private selectEmoji;
private onClickOutside;
closeDialog(): void;
}
export { EmojiModule };