@ctrl/ngx-emoji-mart
Version:
Customizable Slack-like emoji picker for Angular
101 lines (100 loc) • 5.87 kB
TypeScript
import { ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import { Emoji, EmojiCategory, EmojiData, EmojiEvent } from '@ctrl/ngx-emoji-mart/ngx-emoji';
import { CategoryComponent } from './category.component';
import { EmojiFrequentlyService } from './emoji-frequently.service';
import { PreviewComponent } from './preview.component';
import { SearchComponent } from './search.component';
import * as i0 from "@angular/core";
export declare class PickerComponent implements OnInit, OnDestroy {
private ngZone;
private renderer;
private ref;
private frequently;
private platformId;
perLine: number;
totalFrequentLines: number;
i18n: any;
style: any;
title: string;
emoji: string;
darkMode: boolean;
color: string;
hideObsolete: boolean;
/** all categories shown */
categories: EmojiCategory[];
/** used to temporarily draw categories */
activeCategories: EmojiCategory[];
set: Emoji['set'];
skin: Emoji['skin'];
/** Renders the native unicode emoji */
isNative: Emoji['isNative'];
emojiSize: Emoji['size'];
sheetSize: Emoji['sheetSize'];
emojisToShowFilter?: (x: string) => boolean;
showPreview: boolean;
emojiTooltip: boolean;
autoFocus: boolean;
custom: any[];
hideRecent: boolean;
imageUrlFn: Emoji['imageUrlFn'];
include?: string[];
exclude?: string[];
notFoundEmoji: string;
categoriesIcons: {
[key: string]: string;
};
searchIcons: {
[key: string]: string;
};
useButton: boolean;
enableFrequentEmojiSort: boolean;
enableSearch: boolean;
showSingleCategory: boolean;
virtualize: boolean;
virtualizeOffset: number;
recent?: string[];
emojiClick: EventEmitter<any>;
emojiSelect: EventEmitter<any>;
skinChange: EventEmitter<1 | 2 | 4 | 3 | 5 | 6>;
private scrollRef;
previewRef?: PreviewComponent;
searchRef?: SearchComponent;
categoryRefs: QueryList<CategoryComponent>;
scrollHeight: number;
clientHeight: number;
clientWidth: number;
selected?: string;
nextScroll?: string;
scrollTop?: number;
firstRender: boolean;
previewEmoji: EmojiData | null;
animationFrameRequestId: number | null;
NAMESPACE: string;
measureScrollbar: number;
RECENT_CATEGORY: EmojiCategory;
SEARCH_CATEGORY: EmojiCategory;
CUSTOM_CATEGORY: EmojiCategory;
private scrollListener;
backgroundImageFn: Emoji['backgroundImageFn'];
constructor(ngZone: NgZone, renderer: Renderer2, ref: ChangeDetectorRef, frequently: EmojiFrequentlyService, platformId: string);
ngOnInit(): void;
ngOnDestroy(): void;
setActiveCategories(categoriesToMakeActive: Array<EmojiCategory>): void;
updateCategoriesSize(): void;
handleAnchorClick($event: {
category: EmojiCategory;
index: number;
}): void;
categoryTrack(index: number, item: any): any;
handleScroll(noSelectionChange?: boolean): void;
handleSearch($emojis: any[] | null): void;
handleEnterKey($event: Event, emoji?: EmojiData): void;
handleEmojiOver($event: EmojiEvent): void;
handleEmojiLeave(): void;
handleEmojiClick($event: EmojiEvent): void;
handleSkinChange(skin: Emoji['skin']): void;
getWidth(): string;
private cancelAnimationFrame;
static ɵfac: i0.ɵɵFactoryDeclaration<PickerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PickerComponent, "emoji-mart", never, { "perLine": { "alias": "perLine"; "required": false; }; "totalFrequentLines": { "alias": "totalFrequentLines"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "style": { "alias": "style"; "required": false; }; "title": { "alias": "title"; "required": false; }; "emoji": { "alias": "emoji"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "color": { "alias": "color"; "required": false; }; "hideObsolete": { "alias": "hideObsolete"; "required": false; }; "categories": { "alias": "categories"; "required": false; }; "activeCategories": { "alias": "activeCategories"; "required": false; }; "set": { "alias": "set"; "required": false; }; "skin": { "alias": "skin"; "required": false; }; "isNative": { "alias": "isNative"; "required": false; }; "emojiSize": { "alias": "emojiSize"; "required": false; }; "sheetSize": { "alias": "sheetSize"; "required": false; }; "emojisToShowFilter": { "alias": "emojisToShowFilter"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "emojiTooltip": { "alias": "emojiTooltip"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "custom": { "alias": "custom"; "required": false; }; "hideRecent": { "alias": "hideRecent"; "required": false; }; "imageUrlFn": { "alias": "imageUrlFn"; "required": false; }; "include": { "alias": "include"; "required": false; }; "exclude": { "alias": "exclude"; "required": false; }; "notFoundEmoji": { "alias": "notFoundEmoji"; "required": false; }; "categoriesIcons": { "alias": "categoriesIcons"; "required": false; }; "searchIcons": { "alias": "searchIcons"; "required": false; }; "useButton": { "alias": "useButton"; "required": false; }; "enableFrequentEmojiSort": { "alias": "enableFrequentEmojiSort"; "required": false; }; "enableSearch": { "alias": "enableSearch"; "required": false; }; "showSingleCategory": { "alias": "showSingleCategory"; "required": false; }; "virtualize": { "alias": "virtualize"; "required": false; }; "virtualizeOffset": { "alias": "virtualizeOffset"; "required": false; }; "recent": { "alias": "recent"; "required": false; }; "backgroundImageFn": { "alias": "backgroundImageFn"; "required": false; }; }, { "emojiClick": "emojiClick"; "emojiSelect": "emojiSelect"; "skinChange": "skinChange"; }, never, never, true, never>;
}