UNPKG

ngx-emoji-picker

Version:

A simple emoji picker for Angular 2+ / Ionic 3 with AOT build support

1,984 lines โ€ข 73.5 kB
import { __decorate, __metadata } from 'tslib';
import { EventEmitter, Input, Output, Component, ElementRef, ViewChildren, forwardRef, QueryList, ViewChild, Renderer2, ComponentFactoryResolver, ViewContainerRef, Directive, Pipe, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Subject } from 'rxjs';
import { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';
import twemoji from 'twemoji';
import { DomSanitizer } from '@angular/platform-browser';

let EmojiButtonComponent = class EmojiButtonComponent {
    constructor() {
        this.selectionEmitter = new EventEmitter();
    }
    ngOnChanges() { }
};
__decorate([
    Input('emoji'),
    __metadata("design:type", Object)
], EmojiButtonComponent.prototype, "emoji", void 0);
__decorate([
    Input('dataToEmit'),
    __metadata("design:type", Object)
], EmojiButtonComponent.prototype, "dataToEmit", void 0);
__decorate([
    Input('options'),
    __metadata("design:type", Object)
], EmojiButtonComponent.prototype, "options", void 0);
__decorate([
    Input('fitzpatrick'),
    __metadata("design:type", Object)
], EmojiButtonComponent.prototype, "fitzpatrick", void 0);
__decorate([
    Output('selection'),
    __metadata("design:type", EventEmitter)
], EmojiButtonComponent.prototype, "selectionEmitter", void 0);
EmojiButtonComponent = __decorate([
    Component({
        selector: 'emoji-button',
        template: `
    <button
      class="emoji-button" 
      (click)="selectionEmitter.emit(dataToEmit || emoji)" [innerHTML]="emoji[0] | emojiFallback">
    </button>
  `,
        styles: [":host{display:inline-block}.emoji-button{padding:0;border:none;outline:0;background:0 0;width:34px;height:34px;border-radius:3px;font-size:24px;line-height:1.1;cursor:pointer;transition:.2s}.emoji-button:focus,.emoji-button:hover{background:#f1f1f1;border-color:#f1f1f1}.emoji-button ::ng-deep img{width:20px}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiButtonComponent);

let EmojiCategoriesComponent = class EmojiCategoriesComponent {
    constructor() {
        this.categorySelection = new EventEmitter();
    }
    handleCategorySelection(event) {
        this.categorySelection.emit(event);
    }
};
__decorate([
    Input('emojisCategories'),
    __metadata("design:type", Object)
], EmojiCategoriesComponent.prototype, "emojisCategories", void 0);
__decorate([
    Output('categorySelection'),
    __metadata("design:type", Object)
], EmojiCategoriesComponent.prototype, "categorySelection", void 0);
EmojiCategoriesComponent = __decorate([
    Component({
        selector: 'emoji-categories',
        template: `
  <ng-container *ngFor="let category of emojisCategories">
    <emoji-button 
      (selection)="handleCategorySelection($event)"
      [dataToEmit]="category"
      [emoji]="category.icon"></emoji-button>
  </ng-container>
  `,
        styles: [":host{display:flex;flex-wrap:wrap;justify-content:space-between;margin:0 0 10px}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiCategoriesComponent);

let EmojiCategoryComponent = class EmojiCategoryComponent {
    constructor(_element) {
        this._element = _element;
    }
    scrollIntoView() {
        this._element.nativeElement.scrollIntoView();
    }
};
EmojiCategoryComponent.ctorParameters = () => [
    { type: ElementRef }
];
__decorate([
    Input('category'),
    __metadata("design:type", Object)
], EmojiCategoryComponent.prototype, "category", void 0);
EmojiCategoryComponent = __decorate([
    Component({
        selector: 'emoji-category',
        template: `
  <p class="emoji-category">{{category.name}}</p>
  `,
        styles: [".emoji-category{margin:0;font-size:16px;padding:5px 0 5px 5px;border-bottom:1px solid #f0f0f0;color:#777;font-family:Arial,\"Arial Black\",Tahoma,\"Trebuchet MS\",Verdana}"]
    }),
    __metadata("design:paramtypes", [ElementRef])
], EmojiCategoryComponent);

const EMOJIS = [
    {
        emojis: [
            ['๐Ÿ˜€', 'grinning'],
            ['๐Ÿ˜ƒ', 'smiley'],
            ['๐Ÿ˜„', 'smile'],
            ['๐Ÿ˜', 'grin'],
            ['๐Ÿ˜†', 'laughing'],
            ['๐Ÿ˜…', 'sweat_smile'],
            ['๐Ÿ˜‚', 'joy'],
            ['๐Ÿคฃ', 'rofl'],
            ['๐Ÿ˜Š', 'blush'],
            ['๐Ÿ˜‡', 'innocent'],
            ['๐Ÿ™‚', 'slightly_smiling_face'],
            ['๐Ÿ™ƒ', 'upside_down_face'],
            ['๐Ÿ˜‰', 'wink'],
            ['๐Ÿ˜Œ', 'relieved'],
            ['๐Ÿ˜', 'heart_eyes'],
            ['๐Ÿ˜˜', 'kissing_heart'],
            ['๐Ÿ˜—', 'kissing'],
            ['๐Ÿ˜™', 'kissing_smiling_eyes'],
            ['๐Ÿ˜š', 'kissing_closed_eyes'],
            ['๐Ÿ˜‹', 'yum'],
            ['๐Ÿ˜œ', 'stuck_out_tongue_winking_eye'],
            ['๐Ÿ˜', 'stuck_out_tongue_closed_eyes'],
            ['๐Ÿ˜›', 'stuck_out_tongue'],
            ['๐Ÿค‘', 'money_mouth_face'],
            ['๐Ÿค—', 'hugs'],
            ['๐Ÿค“', 'nerd_face'],
            ['๐Ÿ˜Ž', 'sunglasses'],
            ['๐Ÿคก', 'clown_face'],
            ['๐Ÿค ', 'cowboy_hat_face'],
            ['๐Ÿ˜', 'smirk'],
            ['๐Ÿ˜’', 'unamused'],
            ['๐Ÿ˜ž', 'disappointed'],
            ['๐Ÿ˜”', 'pensive'],
            ['๐Ÿ˜Ÿ', 'worried'],
            ['๐Ÿ˜•', 'confused'],
            ['๐Ÿ™', 'slightly_frowning_face'],
            ['โ˜น๏ธ', 'frowning_face'],
            ['๐Ÿ˜ฃ', 'persevere'],
            ['๐Ÿ˜–', 'confounded'],
            ['๐Ÿ˜ซ', 'tired_face'],
            ['๐Ÿ˜ฉ', 'weary'],
            ['๐Ÿ˜ค', 'triumph'],
            ['๐Ÿ˜ ', 'angry'],
            ['๐Ÿ˜ก', 'rage'],
            ['๐Ÿ˜ถ', 'no_mouth'],
            ['๐Ÿ˜', 'neutral_face'],
            ['๐Ÿ˜‘', 'expressionless'],
            ['๐Ÿ˜ฏ', 'hushed'],
            ['๐Ÿ˜ฆ', 'frowning'],
            ['๐Ÿ˜ง', 'anguished'],
            ['๐Ÿ˜ฎ', 'open_mouth'],
            ['๐Ÿ˜ฒ', 'astonished'],
            ['๐Ÿ˜ต', 'dizzy_face'],
            ['๐Ÿ˜ณ', 'flushed'],
            ['๐Ÿ˜ฑ', 'scream'],
            ['๐Ÿ˜จ', 'fearful'],
            ['๐Ÿ˜ฐ', 'cold_sweat'],
            ['๐Ÿ˜ข', 'cry'],
            ['๐Ÿ˜ฅ', 'disappointed_relieved'],
            ['๐Ÿคค', 'drooling_face'],
            ['๐Ÿ˜ญ', 'sob'],
            ['๐Ÿ˜“', 'sweat'],
            ['๐Ÿ˜ช', 'sleepy'],
            ['๐Ÿ˜ด', 'sleeping'],
            ['๐Ÿ™„', 'roll_eyes'],
            ['๐Ÿค”', 'thinking'],
            ['๐Ÿคฅ', 'lying_face'],
            ['๐Ÿ˜ฌ', 'grimacing'],
            ['๐Ÿค', 'zipper_mouth_face'],
            ['๐Ÿคข', 'nauseated_face'],
            ['๐Ÿคง', 'sneezing_face'],
            ['๐Ÿ˜ท', 'mask'],
            ['๐Ÿค’', 'face_with_thermometer'],
            ['๐Ÿค•', 'face_with_head_bandage'],
            ['๐Ÿ˜ˆ', 'smiling_imp'],
            ['๐Ÿ‘ฟ', 'imp'],
            ['๐Ÿ‘น', 'japanese_ogre'],
            ['๐Ÿ‘บ', 'japanese_goblin'],
            ['๐Ÿ’ฉ', 'hankey'],
            ['๐Ÿ‘ป', 'ghost'],
            ['๐Ÿ’€', 'skull'],
            ['โ˜ ๏ธ', 'skull_and_crossbones'],
            ['๐Ÿ‘ฝ', 'alien'],
            ['๐Ÿ‘พ', 'space_invader'],
            ['๐Ÿค–', 'robot'],
            ['๐ŸŽƒ', 'jack_o_lantern'],
            ['๐Ÿ˜บ', 'smiley_cat'],
            ['๐Ÿ˜ธ', 'smile_cat'],
            ['๐Ÿ˜น', 'joy_cat'],
            ['๐Ÿ˜ป', 'heart_eyes_cat'],
            ['๐Ÿ˜ผ', 'smirk_cat'],
            ['๐Ÿ˜ฝ', 'kissing_cat'],
            ['๐Ÿ™€', 'scream_cat'],
            ['๐Ÿ˜ฟ', 'crying_cat_face'],
            ['๐Ÿ˜พ', 'pouting_cat'],
            ['๐Ÿ‘', 'open_hands'],
            ['๐Ÿ™Œ', 'raised_hands'],
            ['๐Ÿ‘', 'clap'],
            ['๐Ÿ™', 'pray'],
            ['๐Ÿค', 'handshake'],
            ['๐Ÿ‘', '+1'],
            ['๐Ÿ‘Ž', '-1'],
            ['๐Ÿ‘Š', 'fist_oncoming'],
            ['โœŠ', 'fist_raised'],
            ['๐Ÿค›', 'fist_left'],
            ['๐Ÿคœ', 'fist_right'],
            ['๐Ÿคž', 'crossed_fingers'],
            ['โœŒ๏ธ', 'v'],
            ['๐Ÿค˜', 'metal'],
            ['๐Ÿ‘Œ', 'ok_hand'],
            ['๐Ÿ‘ˆ', 'point_left'],
            ['๐Ÿ‘‰', 'point_right'],
            ['๐Ÿ‘†', 'point_up_2'],
            ['๐Ÿ‘‡', 'point_down'],
            ['โ˜๏ธ', 'point_up'],
            ['โœ‹', 'hand'],
            ['๐Ÿคš', 'raised_back_of_hand'],
            ['๐Ÿ–', 'raised_hand_with_fingers_splayed'],
            ['๐Ÿ––', 'vulcan_salute'],
            ['๐Ÿ‘‹', 'wave'],
            ['๐Ÿค™', 'call_me_hand'],
            ['๐Ÿ’ช', 'muscle'],
            ['๐Ÿ–•', 'middle_finger'],
            ['โœ๏ธ', 'writing_hand'],
            ['๐Ÿคณ', 'selfie'],
            ['๐Ÿ’…', 'nail_care'],
            ['๐Ÿ’', 'ring'],
            ['๐Ÿ’„', 'lipstick'],
            ['๐Ÿ’‹', 'kiss'],
            ['๐Ÿ‘„', 'lips'],
            ['๐Ÿ‘…', 'tongue'],
            ['๐Ÿ‘‚', 'ear'],
            ['๐Ÿ‘ƒ', 'nose'],
            ['๐Ÿ‘ฃ', 'footprints'],
            ['๐Ÿ‘', 'eye'],
            ['๐Ÿ‘€', 'eyes'],
            ['๐Ÿ—ฃ', 'speaking_head'],
            ['๐Ÿ‘ค', 'bust_in_silhouette'],
            ['๐Ÿ‘ฅ', 'busts_in_silhouette'],
            ['๐Ÿ‘ถ', 'baby'],
            ['๐Ÿ‘ฆ', 'boy'],
            ['๐Ÿ‘ง', 'girl'],
            ['๐Ÿ‘จ', 'man'],
            ['๐Ÿ‘ฉ', 'woman'],
            ['๐Ÿ‘ฑโ€โ™€', 'blonde_woman'],
            ['๐Ÿ‘ฑ', 'blonde_man'],
            ['๐Ÿ‘ด', 'older_man'],
            ['๐Ÿ‘ต', 'older_woman'],
            ['๐Ÿ‘ฒ', 'man_with_gua_pi_mao'],
            ['๐Ÿ‘ณโ€โ™€', 'woman_with_turban'],
            ['๐Ÿ‘ณ', 'man_with_turban'],
            ['๐Ÿ‘ฎโ€โ™€', 'policewoman'],
            ['๐Ÿ‘ฎ', 'policeman'],
            ['๐Ÿ‘ทโ€โ™€', 'construction_worker_woman'],
            ['๐Ÿ‘ท', 'construction_worker_man'],
            ['๐Ÿ’‚โ€โ™€', 'guardswoman'],
            ['๐Ÿ’‚', 'guardsman'],
            ['๐Ÿ•ต๏ธโ€โ™€๏ธ', 'female_detective'],
            ['๐Ÿ•ต', 'male_detective'],
            ['๐Ÿ‘ฉโ€โš•', 'woman_health_worker'],
            ['๐Ÿ‘จโ€โš•', 'man_health_worker'],
            ['๐Ÿ‘ฉโ€๐ŸŒพ', 'woman_farmer'],
            ['๐Ÿ‘จโ€๐ŸŒพ', 'man_farmer'],
            ['๐Ÿ‘ฉโ€๐Ÿณ', 'woman_cook'],
            ['๐Ÿ‘จโ€๐Ÿณ', 'man_cook'],
            ['๐Ÿ‘ฉโ€๐ŸŽ“', 'woman_student'],
            ['๐Ÿ‘จโ€๐ŸŽ“', 'man_student'],
            ['๐Ÿ‘ฉโ€๐ŸŽค', 'woman_singer'],
            ['๐Ÿ‘จโ€๐ŸŽค', 'man_singer'],
            ['๐Ÿ‘ฉโ€๐Ÿซ', 'woman_teacher'],
            ['๐Ÿ‘จโ€๐Ÿซ', 'man_teacher'],
            ['๐Ÿ‘ฉโ€๐Ÿญ', 'woman_factory_worker'],
            ['๐Ÿ‘จโ€๐Ÿญ', 'man_factory_worker'],
            ['๐Ÿ‘ฉโ€๐Ÿ’ป', 'woman_technologist'],
            ['๐Ÿ‘จโ€๐Ÿ’ป', 'man_technologist'],
            ['๐Ÿ‘ฉโ€๐Ÿ’ผ', 'woman_office_worker'],
            ['๐Ÿ‘จโ€๐Ÿ’ผ', 'man_office_worker'],
            ['๐Ÿ‘ฉโ€๐Ÿ”ง', 'woman_mechanic'],
            ['๐Ÿ‘จโ€๐Ÿ”ง', 'man_mechanic'],
            ['๐Ÿ‘ฉโ€๐Ÿ”ฌ', 'woman_scientist'],
            ['๐Ÿ‘จโ€๐Ÿ”ฌ', 'man_scientist'],
            ['๐Ÿ‘ฉโ€๐ŸŽจ', 'woman_artist'],
            ['๐Ÿ‘จโ€๐ŸŽจ', 'man_artist'],
            ['๐Ÿ‘ฉโ€๐Ÿš’', 'woman_firefighter'],
            ['๐Ÿ‘จโ€๐Ÿš’', 'man_firefighter'],
            ['๐Ÿ‘ฉโ€โœˆ', 'woman_pilot'],
            ['๐Ÿ‘จโ€โœˆ', 'man_pilot'],
            ['๐Ÿ‘ฉโ€๐Ÿš€', 'woman_astronaut'],
            ['๐Ÿ‘จโ€๐Ÿš€', 'man_astronaut'],
            ['๐Ÿ‘ฉโ€โš–', 'woman_judge'],
            ['๐Ÿ‘จโ€โš–', 'man_judge'],
            ['๐Ÿคถ', 'mrs_claus'],
            ['๐ŸŽ…', 'santa'],
            ['๐Ÿ‘ธ', 'princess'],
            ['๐Ÿคด', 'prince'],
            ['๐Ÿ‘ฐ', 'bride_with_veil'],
            ['๐Ÿคต', 'man_in_tuxedo'],
            ['๐Ÿ‘ผ', 'angel'],
            ['๐Ÿคฐ', 'pregnant_woman'],
            ['๐Ÿ™‡โ€โ™€', 'bowing_woman'],
            ['๐Ÿ™‡', 'bowing_man'],
            ['๐Ÿ’', 'tipping_hand_woman'],
            ['๐Ÿ’โ€โ™‚', 'tipping_hand_man'],
            ['๐Ÿ™…', 'no_good_woman'],
            ['๐Ÿ™…โ€โ™‚', 'no_good_man'],
            ['๐Ÿ™†', 'ok_woman'],
            ['๐Ÿ™†โ€โ™‚', 'ok_man'],
            ['๐Ÿ™‹', 'raising_hand_woman'],
            ['๐Ÿ™‹โ€โ™‚', 'raising_hand_man'],
            ['๐Ÿคฆโ€โ™€', 'woman_facepalming'],
            ['๐Ÿคฆโ€โ™‚', 'man_facepalming'],
            ['๐Ÿคทโ€โ™€', 'woman_shrugging'],
            ['๐Ÿคทโ€โ™‚', 'man_shrugging'],
            ['๐Ÿ™Ž', 'pouting_woman'],
            ['๐Ÿ™Žโ€โ™‚', 'pouting_man'],
            ['๐Ÿ™', 'frowning_woman'],
            ['๐Ÿ™โ€โ™‚', 'frowning_man'],
            ['๐Ÿ’‡', 'haircut_woman'],
            ['๐Ÿ’‡โ€โ™‚', 'haircut_man'],
            ['๐Ÿ’†', 'massage_woman'],
            ['๐Ÿ’†โ€โ™‚', 'massage_man'],
            ['๐Ÿ•ด', 'business_suit_levitating'],
            ['๐Ÿ’ƒ', 'dancer'],
            ['๐Ÿ•บ', 'man_dancing'],
            ['๐Ÿ‘ฏ', 'dancing_women'],
            ['๐Ÿ‘ฏโ€โ™‚', 'dancing_men'],
            ['๐Ÿšถโ€โ™€', 'walking_woman'],
            ['๐Ÿšถ', 'walking_man'],
            ['๐Ÿƒโ€โ™€', 'running_woman'],
            ['๐Ÿƒ', 'running_man'],
            ['๐Ÿ‘ซ', 'couple'],
            ['๐Ÿ‘ญ', 'two_women_holding_hands'],
            ['๐Ÿ‘ฌ', 'two_men_holding_hands'],
            ['๐Ÿ’‘', 'couple_with_heart_woman_man'],
            ['๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ', 'couple_with_heart_woman_woman'],
            ['๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ', 'couple_with_heart_man_man'],
            ['๐Ÿ’', 'couplekiss_man_woman'],
            ['๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ', 'couplekiss_woman_woman'],
            ['๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ', 'couplekiss_man_man'],
            ['๐Ÿ‘ช', 'family_man_woman_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง', 'family_man_woman_girl'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', 'family_man_woman_girl_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', 'family_man_woman_boy_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', 'family_man_woman_girl_girl'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ', 'family_woman_woman_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง', 'family_woman_woman_girl'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', 'family_woman_woman_girl_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', 'family_woman_woman_boy_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', 'family_woman_woman_girl_girl'],
            ['๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ', 'family_man_man_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง', 'family_man_man_girl'],
            ['๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', 'family_man_man_girl_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', 'family_man_man_boy_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง', 'family_man_man_girl_girl'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฆ', 'family_woman_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ง', 'family_woman_girl'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', 'family_woman_girl_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', 'family_woman_boy_boy'],
            ['๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง', 'family_woman_girl_girl'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฆ', 'family_man_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘ง', 'family_man_girl'],
            ['๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ', 'family_man_girl_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ', 'family_man_boy_boy'],
            ['๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง', 'family_man_girl_girl'],
            ['๐Ÿ‘š', 'womans_clothes'],
            ['๐Ÿ‘•', 'shirt'],
            ['๐Ÿ‘–', 'jeans'],
            ['๐Ÿ‘”', 'necktie'],
            ['๐Ÿ‘—', 'dress'],
            ['๐Ÿ‘™', 'bikini'],
            ['๐Ÿ‘˜', 'kimono'],
            ['๐Ÿ‘ ', 'high_heel'],
            ['๐Ÿ‘ก', 'sandal'],
            ['๐Ÿ‘ข', 'boot'],
            ['๐Ÿ‘ž', 'mans_shoe'],
            ['๐Ÿ‘Ÿ', 'athletic_shoe'],
            ['๐Ÿ‘’', 'womans_hat'],
            ['๐ŸŽฉ', 'tophat'],
            ['๐ŸŽ“', 'mortar_board'],
            ['๐Ÿ‘‘', 'crown'],
            ['โ›‘', 'rescue_worker_helmet'],
            ['๐ŸŽ’', 'school_satchel'],
            ['๐Ÿ‘', 'pouch'],
            ['๐Ÿ‘›', 'purse'],
            ['๐Ÿ‘œ', 'handbag'],
            ['๐Ÿ’ผ', 'briefcase'],
            ['๐Ÿ‘“', 'eyeglasses'],
            ['๐Ÿ•ถ', 'dark_sunglasses'],
            ['๐ŸŒ‚', 'closed_umbrella'],
            ['โ˜‚๏ธ', 'open_umbrella']
        ],
        name: 'People',
        icon: ['๐Ÿ˜„', 'smile']
    },
    {
        emojis: [
            ['๐Ÿถ', 'dog'],
            ['๐Ÿฑ', 'cat'],
            ['๐Ÿญ', 'mouse'],
            ['๐Ÿน', 'hamster'],
            ['๐Ÿฐ', 'rabbit'],
            ['๐ŸฆŠ', 'fox_face'],
            ['๐Ÿป', 'bear'],
            ['๐Ÿผ', 'panda_face'],
            ['๐Ÿจ', 'koala'],
            ['๐Ÿฏ', 'tiger'],
            ['๐Ÿฆ', 'lion'],
            ['๐Ÿฎ', 'cow'],
            ['๐Ÿท', 'pig'],
            ['๐Ÿฝ', 'pig_nose'],
            ['๐Ÿธ', 'frog'],
            ['๐Ÿต', 'monkey_face'],
            ['๐Ÿ™ˆ', 'see_no_evil'],
            ['๐Ÿ™‰', 'hear_no_evil'],
            ['๐Ÿ™Š', 'speak_no_evil'],
            ['๐Ÿ’', 'monkey'],
            ['๐Ÿ”', 'chicken'],
            ['๐Ÿง', 'penguin'],
            ['๐Ÿฆ', 'bird'],
            ['๐Ÿค', 'baby_chick'],
            ['๐Ÿฃ', 'hatching_chick'],
            ['๐Ÿฅ', 'hatched_chick'],
            ['๐Ÿฆ†', 'duck'],
            ['๐Ÿฆ…', 'eagle'],
            ['๐Ÿฆ‰', 'owl'],
            ['๐Ÿฆ‡', 'bat'],
            ['๐Ÿบ', 'wolf'],
            ['๐Ÿ—', 'boar'],
            ['๐Ÿด', 'horse'],
            ['๐Ÿฆ„', 'unicorn'],
            ['๐Ÿ', 'bee'],
            ['๐Ÿ›', 'bug'],
            ['๐Ÿฆ‹', 'butterfly'],
            ['๐ŸŒ', 'snail'],
            ['๐Ÿš', 'shell'],
            ['๐Ÿž', 'beetle'],
            ['๐Ÿœ', 'ant'],
            ['๐Ÿ•ท', 'spider'],
            ['๐Ÿ•ธ', 'spider_web'],
            ['๐Ÿข', 'turtle'],
            ['๐Ÿ', 'snake'],
            ['๐ŸฆŽ', 'lizard'],
            ['๐Ÿฆ‚', 'scorpion'],
            ['๐Ÿฆ€', 'crab'],
            ['๐Ÿฆ‘', 'squid'],
            ['๐Ÿ™', 'octopus'],
            ['๐Ÿฆ', 'shrimp'],
            ['๐Ÿ ', 'tropical_fish'],
            ['๐ŸŸ', 'fish'],
            ['๐Ÿก', 'blowfish'],
            ['๐Ÿฌ', 'dolphin'],
            ['๐Ÿฆˆ', 'shark'],
            ['๐Ÿณ', 'whale'],
            ['๐Ÿ‹', 'whale2'],
            ['๐ŸŠ', 'crocodile'],
            ['๐Ÿ†', 'leopard'],
            ['๐Ÿ…', 'tiger2'],
            ['๐Ÿƒ', 'water_buffalo'],
            ['๐Ÿ‚', 'ox'],
            ['๐Ÿ„', 'cow2'],
            ['๐ŸฆŒ', 'deer'],
            ['๐Ÿช', 'dromedary_camel'],
            ['๐Ÿซ', 'camel'],
            ['๐Ÿ˜', 'elephant'],
            ['๐Ÿฆ', 'rhinoceros'],
            ['๐Ÿฆ', 'gorilla'],
            ['๐ŸŽ', 'racehorse'],
            ['๐Ÿ–', 'pig2'],
            ['๐Ÿ', 'goat'],
            ['๐Ÿ', 'ram'],
            ['๐Ÿ‘', 'sheep'],
            ['๐Ÿ•', 'dog2'],
            ['๐Ÿฉ', 'poodle'],
            ['๐Ÿˆ', 'cat2'],
            ['๐Ÿ“', 'rooster'],
            ['๐Ÿฆƒ', 'turkey'],
            ['๐Ÿ•Š', 'dove'],
            ['๐Ÿ‡', 'rabbit2'],
            ['๐Ÿ', 'mouse2'],
            ['๐Ÿ€', 'rat'],
            ['๐Ÿฟ', 'chipmunk'],
            ['๐Ÿพ', 'feet'],
            ['๐Ÿ‰', 'dragon'],
            ['๐Ÿฒ', 'dragon_face'],
            ['๐ŸŒต', 'cactus'],
            ['๐ŸŽ„', 'christmas_tree'],
            ['๐ŸŒฒ', 'evergreen_tree'],
            ['๐ŸŒณ', 'deciduous_tree'],
            ['๐ŸŒด', 'palm_tree'],
            ['๐ŸŒฑ', 'seedling'],
            ['๐ŸŒฟ', 'herb'],
            ['โ˜˜๏ธ', 'shamrock'],
            ['๐Ÿ€', 'four_leaf_clover'],
            ['๐ŸŽ', 'bamboo'],
            ['๐ŸŽ‹', 'tanabata_tree'],
            ['๐Ÿƒ', 'leaves'],
            ['๐Ÿ‚', 'fallen_leaf'],
            ['๐Ÿ', 'maple_leaf'],
            ['๐Ÿ„', 'mushroom'],
            ['๐ŸŒพ', 'ear_of_rice'],
            ['๐Ÿ’', 'bouquet'],
            ['๐ŸŒท', 'tulip'],
            ['๐ŸŒน', 'rose'],
            ['๐Ÿฅ€', 'wilted_flower'],
            ['๐ŸŒป', 'sunflower'],
            ['๐ŸŒผ', 'blossom'],
            ['๐ŸŒธ', 'cherry_blossom'],
            ['๐ŸŒบ', 'hibiscus'],
            ['๐ŸŒŽ', 'earth_americas'],
            ['๐ŸŒ', 'earth_africa'],
            ['๐ŸŒ', 'earth_asia'],
            ['๐ŸŒ•', 'full_moon'],
            ['๐ŸŒ–', 'waning_gibbous_moon'],
            ['๐ŸŒ—', 'last_quarter_moon'],
            ['๐ŸŒ˜', 'waning_crescent_moon'],
            ['๐ŸŒ‘', 'new_moon'],
            ['๐ŸŒ’', 'waxing_crescent_moon'],
            ['๐ŸŒ“', 'first_quarter_moon'],
            ['๐ŸŒ”', 'moon'],
            ['๐ŸŒš', 'new_moon_with_face'],
            ['๐ŸŒ', 'full_moon_with_face'],
            ['๐ŸŒž', 'sun_with_face'],
            ['๐ŸŒ›', 'first_quarter_moon_with_face'],
            ['๐ŸŒœ', 'last_quarter_moon_with_face'],
            ['๐ŸŒ™', 'crescent_moon'],
            ['๐Ÿ’ซ', 'dizzy'],
            ['โญ๏ธ', 'star'],
            ['๐ŸŒŸ', 'star2'],
            ['โœจ', 'sparkles'],
            ['โšก๏ธ', 'zap'],
            ['๐Ÿ”ฅ', 'fire'],
            ['๐Ÿ’ฅ', 'boom'],
            ['โ˜„', 'comet'],
            ['โ˜€๏ธ', 'sunny'],
            ['๐ŸŒค', 'sun_behind_small_cloud'],
            ['โ›…๏ธ', 'partly_sunny'],
            ['๐ŸŒฅ', 'sun_behind_large_cloud'],
            ['๐ŸŒฆ', 'sun_behind_rain_cloud'],
            ['๐ŸŒˆ', 'rainbow'],
            ['โ˜๏ธ', 'cloud'],
            ['๐ŸŒง', 'cloud_with_rain'],
            ['โ›ˆ', 'cloud_with_lightning_and_rain'],
            ['๐ŸŒฉ', 'cloud_with_lightning'],
            ['๐ŸŒจ', 'cloud_with_snow'],
            ['โ˜ƒ๏ธ', 'snowman_with_snow'],
            ['โ›„๏ธ', 'snowman'],
            ['โ„๏ธ', 'snowflake'],
            ['๐ŸŒฌ', 'wind_face'],
            ['๐Ÿ’จ', 'dash'],
            ['๐ŸŒช', 'tornado'],
            ['๐ŸŒซ', 'fog'],
            ['๐ŸŒŠ', 'ocean'],
            ['๐Ÿ’ง', 'droplet'],
            ['๐Ÿ’ฆ', 'sweat_drops'],
            ['โ˜”๏ธ', 'umbrella']
        ],
        name: 'Nature',
        icon: ['๐ŸŒธ', 'cherry_blossom']
    },
    {
        emojis: [
            ['๐Ÿ', 'green_apple'],
            ['๐ŸŽ', 'apple'],
            ['๐Ÿ', 'pear'],
            ['๐ŸŠ', 'tangerine'],
            ['๐Ÿ‹', 'lemon'],
            ['๐ŸŒ', 'banana'],
            ['๐Ÿ‰', 'watermelon'],
            ['๐Ÿ‡', 'grapes'],
            ['๐Ÿ“', 'strawberry'],
            ['๐Ÿˆ', 'melon'],
            ['๐Ÿ’', 'cherries'],
            ['๐Ÿ‘', 'peach'],
            ['๐Ÿ', 'pineapple'],
            ['๐Ÿฅ', 'kiwi_fruit'],
            ['๐Ÿฅ‘', 'avocado'],
            ['๐Ÿ…', 'tomato'],
            ['๐Ÿ†', 'eggplant'],
            ['๐Ÿฅ’', 'cucumber'],
            ['๐Ÿฅ•', 'carrot'],
            ['๐ŸŒฝ', 'corn'],
            ['๐ŸŒถ', 'hot_pepper'],
            ['๐Ÿฅ”', 'potato'],
            ['๐Ÿ ', 'sweet_potato'],
            ['๐ŸŒฐ', 'chestnut'],
            ['๐Ÿฅœ', 'peanuts'],
            ['๐Ÿฏ', 'honey_pot'],
            ['๐Ÿฅ', 'croissant'],
            ['๐Ÿž', 'bread'],
            ['๐Ÿฅ–', 'baguette_bread'],
            ['๐Ÿง€', 'cheese'],
            ['๐Ÿฅš', 'egg'],
            ['๐Ÿณ', 'fried_egg'],
            ['๐Ÿฅ“', 'bacon'],
            ['๐Ÿฅž', 'pancakes'],
            ['๐Ÿค', 'fried_shrimp'],
            ['๐Ÿ—', 'poultry_leg'],
            ['๐Ÿ–', 'meat_on_bone'],
            ['๐Ÿ•', 'pizza'],
            ['๐ŸŒญ', 'hotdog'],
            ['๐Ÿ”', 'hamburger'],
            ['๐ŸŸ', 'fries'],
            ['๐Ÿฅ™', 'stuffed_flatbread'],
            ['๐ŸŒฎ', 'taco'],
            ['๐ŸŒฏ', 'burrito'],
            ['๐Ÿฅ—', 'green_salad'],
            ['๐Ÿฅ˜', 'shallow_pan_of_food'],
            ['๐Ÿ', 'spaghetti'],
            ['๐Ÿœ', 'ramen'],
            ['๐Ÿฒ', 'stew'],
            ['๐Ÿฅ', 'fish_cake'],
            ['๐Ÿฃ', 'sushi'],
            ['๐Ÿฑ', 'bento'],
            ['๐Ÿ›', 'curry'],
            ['๐Ÿš', 'rice'],
            ['๐Ÿ™', 'rice_ball'],
            ['๐Ÿ˜', 'rice_cracker'],
            ['๐Ÿข', 'oden'],
            ['๐Ÿก', 'dango'],
            ['๐Ÿง', 'shaved_ice'],
            ['๐Ÿจ', 'ice_cream'],
            ['๐Ÿฆ', 'icecream'],
            ['๐Ÿฐ', 'cake'],
            ['๐ŸŽ‚', 'birthday'],
            ['๐Ÿฎ', 'custard'],
            ['๐Ÿญ', 'lollipop'],
            ['๐Ÿฌ', 'candy'],
            ['๐Ÿซ', 'chocolate_bar'],
            ['๐Ÿฟ', 'popcorn'],
            ['๐Ÿฉ', 'doughnut'],
            ['๐Ÿช', 'cookie'],
            ['๐Ÿฅ›', 'milk_glass'],
            ['๐Ÿผ', 'baby_bottle'],
            ['โ˜•๏ธ', 'coffee'],
            ['๐Ÿต', 'tea'],
            ['๐Ÿถ', 'sake'],
            ['๐Ÿบ', 'beer'],
            ['๐Ÿป', 'beers'],
            ['๐Ÿฅ‚', 'clinking_glasses'],
            ['๐Ÿท', 'wine_glass'],
            ['๐Ÿฅƒ', 'tumbler_glass'],
            ['๐Ÿธ', 'cocktail'],
            ['๐Ÿน', 'tropical_drink'],
            ['๐Ÿพ', 'champagne'],
            ['๐Ÿฅ„', 'spoon'],
            ['๐Ÿด', 'fork_and_knife'],
            ['๐Ÿฝ', 'plate_with_cutlery']
        ],
        name: 'Foods',
        icon: ['๐Ÿ”', 'hamburger']
    },
    {
        emojis: [
            ['โšฝ๏ธ', 'soccer'],
            ['๐Ÿ€', 'basketball'],
            ['๐Ÿˆ', 'football'],
            ['โšพ๏ธ', 'baseball'],
            ['๐ŸŽพ', 'tennis'],
            ['๐Ÿ', 'volleyball'],
            ['๐Ÿ‰', 'rugby_football'],
            ['๐ŸŽฑ', '8ball'],
            ['๐Ÿ“', 'ping_pong'],
            ['๐Ÿธ', 'badminton'],
            ['๐Ÿฅ…', 'goal_net'],
            ['๐Ÿ’', 'ice_hockey'],
            ['๐Ÿ‘', 'field_hockey'],
            ['๐Ÿ', 'cricket'],
            ['โ›ณ๏ธ', 'golf'],
            ['๐Ÿน', 'bow_and_arrow'],
            ['๐ŸŽฃ', 'fishing_pole_and_fish'],
            ['๐ŸฅŠ', 'boxing_glove'],
            ['๐Ÿฅ‹', 'martial_arts_uniform'],
            ['โ›ธ', 'ice_skate'],
            ['๐ŸŽฟ', 'ski'],
            ['โ›ท', 'skier'],
            ['๐Ÿ‚', 'snowboarder'],
            ['๐Ÿ‹๏ธโ€โ™€๏ธ', 'weight_lifting_woman'],
            ['๐Ÿ‹', 'weight_lifting_man'],
            ['๐Ÿคบ', 'person_fencing'],
            ['๐Ÿคผโ€โ™€', 'women_wrestling'],
            ['๐Ÿคผโ€โ™‚', 'men_wrestling'],
            ['๐Ÿคธโ€โ™€', 'woman_cartwheeling'],
            ['๐Ÿคธโ€โ™‚', 'man_cartwheeling'],
            ['โ›น๏ธโ€โ™€๏ธ', 'basketball_woman'],
            ['โ›น', 'basketball_man'],
            ['๐Ÿคพโ€โ™€', 'woman_playing_handball'],
            ['๐Ÿคพโ€โ™‚', 'man_playing_handball'],
            ['๐ŸŒ๏ธโ€โ™€๏ธ', 'golfing_woman'],
            ['๐ŸŒ', 'golfing_man'],
            ['๐Ÿ„โ€โ™€', 'surfing_woman'],
            ['๐Ÿ„', 'surfing_man'],
            ['๐ŸŠโ€โ™€', 'swimming_woman'],
            ['๐ŸŠ', 'swimming_man'],
            ['๐Ÿคฝโ€โ™€', 'woman_playing_water_polo'],
            ['๐Ÿคฝโ€โ™‚', 'man_playing_water_polo'],
            ['๐Ÿšฃโ€โ™€', 'rowing_woman'],
            ['๐Ÿšฃ', 'rowing_man'],
            ['๐Ÿ‡', 'horse_racing'],
            ['๐Ÿšดโ€โ™€', 'biking_woman'],
            ['๐Ÿšด', 'biking_man'],
            ['๐Ÿšตโ€โ™€', 'mountain_biking_woman'],
            ['๐Ÿšต', 'mountain_biking_man'],
            ['๐ŸŽฝ', 'running_shirt_with_sash'],
            ['๐Ÿ…', 'medal_sports'],
            ['๐ŸŽ–', 'medal_military'],
            ['๐Ÿฅ‡', '1st_place_medal'],
            ['๐Ÿฅˆ', '2nd_place_medal'],
            ['๐Ÿฅ‰', '3rd_place_medal'],
            ['๐Ÿ†', 'trophy'],
            ['๐Ÿต', 'rosette'],
            ['๐ŸŽ—', 'reminder_ribbon'],
            ['๐ŸŽซ', 'ticket'],
            ['๐ŸŽŸ', 'tickets'],
            ['๐ŸŽช', 'circus_tent'],
            ['๐Ÿคนโ€โ™€', 'woman_juggling'],
            ['๐Ÿคนโ€โ™‚', 'man_juggling'],
            ['๐ŸŽญ', 'performing_arts'],
            ['๐ŸŽจ', 'art'],
            ['๐ŸŽฌ', 'clapper'],
            ['๐ŸŽค', 'microphone'],
            ['๐ŸŽง', 'headphones'],
            ['๐ŸŽผ', 'musical_score'],
            ['๐ŸŽน', 'musical_keyboard'],
            ['๐Ÿฅ', 'drum'],
            ['๐ŸŽท', 'saxophone'],
            ['๐ŸŽบ', 'trumpet'],
            ['๐ŸŽธ', 'guitar'],
            ['๐ŸŽป', 'violin'],
            ['๐ŸŽฒ', 'game_die'],
            ['๐ŸŽฏ', 'dart'],
            ['๐ŸŽณ', 'bowling'],
            ['๐ŸŽฎ', 'video_game'],
            ['๐ŸŽฐ', 'slot_machine']
        ],
        name: 'Activity',
        icon: ['โšฝ๏ธ', 'soccer']
    },
    {
        emojis: [
            ['๐Ÿš—', 'car'],
            ['๐Ÿš•', 'taxi'],
            ['๐Ÿš™', 'blue_car'],
            ['๐ŸšŒ', 'bus'],
            ['๐ŸšŽ', 'trolleybus'],
            ['๐ŸŽ', 'racing_car'],
            ['๐Ÿš“', 'police_car'],
            ['๐Ÿš‘', 'ambulance'],
            ['๐Ÿš’', 'fire_engine'],
            ['๐Ÿš', 'minibus'],
            ['๐Ÿšš', 'truck'],
            ['๐Ÿš›', 'articulated_lorry'],
            ['๐Ÿšœ', 'tractor'],
            ['๐Ÿ›ด', 'kick_scooter'],
            ['๐Ÿšฒ', 'bike'],
            ['๐Ÿ›ต', 'motor_scooter'],
            ['๐Ÿ', 'motorcycle'],
            ['๐Ÿšจ', 'rotating_light'],
            ['๐Ÿš”', 'oncoming_police_car'],
            ['๐Ÿš', 'oncoming_bus'],
            ['๐Ÿš˜', 'oncoming_automobile'],
            ['๐Ÿš–', 'oncoming_taxi'],
            ['๐Ÿšก', 'aerial_tramway'],
            ['๐Ÿš ', 'mountain_cableway'],
            ['๐ŸšŸ', 'suspension_railway'],
            ['๐Ÿšƒ', 'railway_car'],
            ['๐Ÿš‹', 'train'],
            ['๐Ÿšž', 'mountain_railway'],
            ['๐Ÿš', 'monorail'],
            ['๐Ÿš„', 'bullettrain_side'],
            ['๐Ÿš…', 'bullettrain_front'],
            ['๐Ÿšˆ', 'light_rail'],
            ['๐Ÿš‚', 'steam_locomotive'],
            ['๐Ÿš†', 'train2'],
            ['๐Ÿš‡', 'metro'],
            ['๐ŸšŠ', 'tram'],
            ['๐Ÿš‰', 'station'],
            ['๐Ÿš', 'helicopter'],
            ['๐Ÿ›ฉ', 'small_airplane'],
            ['โœˆ๏ธ', 'airplane'],
            ['๐Ÿ›ซ', 'flight_departure'],
            ['๐Ÿ›ฌ', 'flight_arrival'],
            ['๐Ÿš€', 'rocket'],
            ['๐Ÿ›ฐ', 'artificial_satellite'],
            ['๐Ÿ’บ', 'seat'],
            ['๐Ÿ›ถ', 'canoe'],
            ['โ›ต๏ธ', 'boat'],
            ['๐Ÿ›ฅ', 'motor_boat'],
            ['๐Ÿšค', 'speedboat'],
            ['๐Ÿ›ณ', 'passenger_ship'],
            ['โ›ด', 'ferry'],
            ['๐Ÿšข', 'ship'],
            ['โš“๏ธ', 'anchor'],
            ['๐Ÿšง', 'construction'],
            ['โ›ฝ๏ธ', 'fuelpump'],
            ['๐Ÿš', 'busstop'],
            ['๐Ÿšฆ', 'vertical_traffic_light'],
            ['๐Ÿšฅ', 'traffic_light'],
            ['๐Ÿ—บ', 'world_map'],
            ['๐Ÿ—ฟ', 'moyai'],
            ['๐Ÿ—ฝ', 'statue_of_liberty'],
            ['โ›ฒ๏ธ', 'fountain'],
            ['๐Ÿ—ผ', 'tokyo_tower'],
            ['๐Ÿฐ', 'european_castle'],
            ['๐Ÿฏ', 'japanese_castle'],
            ['๐ŸŸ', 'stadium'],
            ['๐ŸŽก', 'ferris_wheel'],
            ['๐ŸŽข', 'roller_coaster'],
            ['๐ŸŽ ', 'carousel_horse'],
            ['โ›ฑ', 'parasol_on_ground'],
            ['๐Ÿ–', 'beach_umbrella'],
            ['๐Ÿ', 'desert_island'],
            ['โ›ฐ', 'mountain'],
            ['๐Ÿ”', 'mountain_snow'],
            ['๐Ÿ—ป', 'mount_fuji'],
            ['๐ŸŒ‹', 'volcano'],
            ['๐Ÿœ', 'desert'],
            ['๐Ÿ•', 'camping'],
            ['โ›บ๏ธ', 'tent'],
            ['๐Ÿ›ค', 'railway_track'],
            ['๐Ÿ›ฃ', 'motorway'],
            ['๐Ÿ—', 'building_construction'],
            ['๐Ÿญ', 'factory'],
            ['๐Ÿ ', 'house'],
            ['๐Ÿก', 'house_with_garden'],
            ['๐Ÿ˜', 'houses'],
            ['๐Ÿš', 'derelict_house'],
            ['๐Ÿข', 'office'],
            ['๐Ÿฌ', 'department_store'],
            ['๐Ÿฃ', 'post_office'],
            ['๐Ÿค', 'european_post_office'],
            ['๐Ÿฅ', 'hospital'],
            ['๐Ÿฆ', 'bank'],
            ['๐Ÿจ', 'hotel'],
            ['๐Ÿช', 'convenience_store'],
            ['๐Ÿซ', 'school'],
            ['๐Ÿฉ', 'love_hotel'],
            ['๐Ÿ’’', 'wedding'],
            ['๐Ÿ›', 'classical_building'],
            ['โ›ช๏ธ', 'church'],
            ['๐Ÿ•Œ', 'mosque'],
            ['๐Ÿ•', 'synagogue'],
            ['๐Ÿ•‹', 'kaaba'],
            ['โ›ฉ', 'shinto_shrine'],
            ['๐Ÿ—พ', 'japan'],
            ['๐ŸŽ‘', 'rice_scene'],
            ['๐Ÿž', 'national_park'],
            ['๐ŸŒ…', 'sunrise'],
            ['๐ŸŒ„', 'sunrise_over_mountains'],
            ['๐ŸŒ ', 'stars'],
            ['๐ŸŽ‡', 'sparkler'],
            ['๐ŸŽ†', 'fireworks'],
            ['๐ŸŒ‡', 'city_sunrise'],
            ['๐ŸŒ†', 'city_sunset'],
            ['๐Ÿ™', 'cityscape'],
            ['๐ŸŒƒ', 'night_with_stars'],
            ['๐ŸŒŒ', 'milky_way'],
            ['๐ŸŒ‰', 'bridge_at_night'],
            ['๐ŸŒ', 'foggy']
        ],
        name: 'Places',
        icon: ['๐Ÿš—', 'car']
    },
    {
        emojis: [
            ['โŒš๏ธ', 'watch'],
            ['๐Ÿ“ฑ', 'iphone'],
            ['๐Ÿ“ฒ', 'calling'],
            ['๐Ÿ’ป', 'computer'],
            ['โŒจ๏ธ', 'keyboard'],
            ['๐Ÿ–ฅ', 'desktop_computer'],
            ['๐Ÿ–จ', 'printer'],
            ['๐Ÿ–ฑ', 'computer_mouse'],
            ['๐Ÿ–ฒ', 'trackball'],
            ['๐Ÿ•น', 'joystick'],
            ['๐Ÿ—œ', 'clamp'],
            ['๐Ÿ’ฝ', 'minidisc'],
            ['๐Ÿ’พ', 'floppy_disk'],
            ['๐Ÿ’ฟ', 'cd'],
            ['๐Ÿ“€', 'dvd'],
            ['๐Ÿ“ผ', 'vhs'],
            ['๐Ÿ“ท', 'camera'],
            ['๐Ÿ“ธ', 'camera_flash'],
            ['๐Ÿ“น', 'video_camera'],
            ['๐ŸŽฅ', 'movie_camera'],
            ['๐Ÿ“ฝ', 'film_projector'],
            ['๐ŸŽž', 'film_strip'],
            ['๐Ÿ“ž', 'telephone_receiver'],
            ['โ˜Ž๏ธ', 'phone'],
            ['๐Ÿ“Ÿ', 'pager'],
            ['๐Ÿ“ ', 'fax'],
            ['๐Ÿ“บ', 'tv'],
            ['๐Ÿ“ป', 'radio'],
            ['๐ŸŽ™', 'studio_microphone'],
            ['๐ŸŽš', 'level_slider'],
            ['๐ŸŽ›', 'control_knobs'],
            ['โฑ', 'stopwatch'],
            ['โฒ', 'timer_clock'],
            ['โฐ', 'alarm_clock'],
            ['๐Ÿ•ฐ', 'mantelpiece_clock'],
            ['โŒ›๏ธ', 'hourglass'],
            ['โณ', 'hourglass_flowing_sand'],
            ['๐Ÿ“ก', 'satellite'],
            ['๐Ÿ”‹', 'battery'],
            ['๐Ÿ”Œ', 'electric_plug'],
            ['๐Ÿ’ก', 'bulb'],
            ['๐Ÿ”ฆ', 'flashlight'],
            ['๐Ÿ•ฏ', 'candle'],
            ['๐Ÿ—‘', 'wastebasket'],
            ['๐Ÿ›ข', 'oil_drum'],
            ['๐Ÿ’ธ', 'money_with_wings'],
            ['๐Ÿ’ต', 'dollar'],
            ['๐Ÿ’ด', 'yen'],
            ['๐Ÿ’ถ', 'euro'],
            ['๐Ÿ’ท', 'pound'],
            ['๐Ÿ’ฐ', 'moneybag'],
            ['๐Ÿ’ณ', 'credit_card'],
            ['๐Ÿ’Ž', 'gem'],
            ['โš–๏ธ', 'balance_scale'],
            ['๐Ÿ”ง', 'wrench'],
            ['๐Ÿ”จ', 'hammer'],
            ['โš’', 'hammer_and_pick'],
            ['๐Ÿ› ', 'hammer_and_wrench'],
            ['โ›', 'pick'],
            ['๐Ÿ”ฉ', 'nut_and_bolt'],
            ['โš™๏ธ', 'gear'],
            ['โ›“', 'chains'],
            ['๐Ÿ”ซ', 'gun'],
            ['๐Ÿ’ฃ', 'bomb'],
            ['๐Ÿ”ช', 'hocho'],
            ['๐Ÿ—ก', 'dagger'],
            ['โš”๏ธ', 'crossed_swords'],
            ['๐Ÿ›ก', 'shield'],
            ['๐Ÿšฌ', 'smoking'],
            ['โšฐ๏ธ', 'coffin'],
            ['โšฑ๏ธ', 'funeral_urn'],
            ['๐Ÿบ', 'amphora'],
            ['๐Ÿ”ฎ', 'crystal_ball'],
            ['๐Ÿ“ฟ', 'prayer_beads'],
            ['๐Ÿ’ˆ', 'barber'],
            ['โš—๏ธ', 'alembic'],
            ['๐Ÿ”ญ', 'telescope'],
            ['๐Ÿ”ฌ', 'microscope'],
            ['๐Ÿ•ณ', 'hole'],
            ['๐Ÿ’Š', 'pill'],
            ['๐Ÿ’‰', 'syringe'],
            ['๐ŸŒก', 'thermometer'],
            ['๐Ÿšฝ', 'toilet'],
            ['๐Ÿšฐ', 'potable_water'],
            ['๐Ÿšฟ', 'shower'],
            ['๐Ÿ›', 'bathtub'],
            ['๐Ÿ›€', 'bath'],
            ['๐Ÿ›Ž', 'bellhop_bell'],
            ['๐Ÿ”‘', 'key'],
            ['๐Ÿ—', 'old_key'],
            ['๐Ÿšช', 'door'],
            ['๐Ÿ›‹', 'couch_and_lamp'],
            ['๐Ÿ›', 'bed'],
            ['๐Ÿ›Œ', 'sleeping_bed'],
            ['๐Ÿ–ผ', 'framed_picture'],
            ['๐Ÿ›', 'shopping'],
            ['๐Ÿ›’', 'shopping_cart'],
            ['๐ŸŽ', 'gift'],
            ['๐ŸŽˆ', 'balloon'],
            ['๐ŸŽ', 'flags'],
            ['๐ŸŽ€', 'ribbon'],
            ['๐ŸŽŠ', 'confetti_ball'],
            ['๐ŸŽ‰', 'tada'],
            ['๐ŸŽŽ', 'dolls'],
            ['๐Ÿฎ', 'izakaya_lantern'],
            ['๐ŸŽ', 'wind_chime'],
            ['โœ‰๏ธ', 'email'],
            ['๐Ÿ“ฉ', 'envelope_with_arrow'],
            ['๐Ÿ“จ', 'incoming_envelope'],
            ['๐Ÿ“ง', 'e-mail'],
            ['๐Ÿ’Œ', 'love_letter'],
            ['๐Ÿ“ฅ', 'inbox_tray'],
            ['๐Ÿ“ค', 'outbox_tray'],
            ['๐Ÿ“ฆ', 'package'],
            ['๐Ÿท', 'label'],
            ['๐Ÿ“ช', 'mailbox_closed'],
            ['๐Ÿ“ซ', 'mailbox'],
            ['๐Ÿ“ฌ', 'mailbox_with_mail'],
            ['๐Ÿ“ญ', 'mailbox_with_no_mail'],
            ['๐Ÿ“ฎ', 'postbox'],
            ['๐Ÿ“ฏ', 'postal_horn'],
            ['๐Ÿ“œ', 'scroll'],
            ['๐Ÿ“ƒ', 'page_with_curl'],
            ['๐Ÿ“„', 'page_facing_up'],
            ['๐Ÿ“‘', 'bookmark_tabs'],
            ['๐Ÿ“Š', 'bar_chart'],
            ['๐Ÿ“ˆ', 'chart_with_upwards_trend'],
            ['๐Ÿ“‰', 'chart_with_downwards_trend'],
            ['๐Ÿ—’', 'spiral_notepad'],
            ['๐Ÿ—“', 'spiral_calendar'],
            ['๐Ÿ“†', 'calendar'],
            ['๐Ÿ“…', 'date'],
            ['๐Ÿ“‡', 'card_index'],
            ['๐Ÿ—ƒ', 'card_file_box'],
            ['๐Ÿ—ณ', 'ballot_box'],
            ['๐Ÿ—„', 'file_cabinet'],
            ['๐Ÿ“‹', 'clipboard'],
            ['๐Ÿ“', 'file_folder'],
            ['๐Ÿ“‚', 'open_file_folder'],
            ['๐Ÿ—‚', 'card_index_dividers'],
            ['๐Ÿ—ž', 'newspaper_roll'],
            ['๐Ÿ“ฐ', 'newspaper'],
            ['๐Ÿ““', 'notebook'],
            ['๐Ÿ“”', 'notebook_with_decorative_cover'],
            ['๐Ÿ“’', 'ledger'],
            ['๐Ÿ“•', 'closed_book'],
            ['๐Ÿ“—', 'green_book'],
            ['๐Ÿ“˜', 'blue_book'],
            ['๐Ÿ“™', 'orange_book'],
            ['๐Ÿ“š', 'books'],
            ['๐Ÿ“–', 'book'],
            ['๐Ÿ”–', 'bookmark'],
            ['๐Ÿ”—', 'link'],
            ['๐Ÿ“Ž', 'paperclip'],
            ['๐Ÿ–‡', 'paperclips'],
            ['๐Ÿ“', 'triangular_ruler'],
            ['๐Ÿ“', 'straight_ruler'],
            ['๐Ÿ“Œ', 'pushpin'],
            ['๐Ÿ“', 'round_pushpin'],
            ['โœ‚๏ธ', 'scissors'],
            ['๐Ÿ–Š', 'pen'],
            ['๐Ÿ–‹', 'fountain_pen'],
            ['โœ’๏ธ', 'black_nib'],
            ['๐Ÿ–Œ', 'paintbrush'],
            ['๐Ÿ–', 'crayon'],
            ['๐Ÿ“', 'memo'],
            ['โœ๏ธ', 'pencil2'],
            ['๐Ÿ”', 'mag'],
            ['๐Ÿ”Ž', 'mag_right'],
            ['๐Ÿ”', 'lock_with_ink_pen'],
            ['๐Ÿ”', 'closed_lock_with_key'],
            ['๐Ÿ”’', 'lock'],
            ['๐Ÿ”“', 'unlock']
        ],
        name: 'Objects',
        icon: ['๐Ÿ””', 'bell']
    },
    {
        emojis: [
            ['โค๏ธ', 'heart'],
            ['๐Ÿ’›', 'yellow_heart'],
            ['๐Ÿ’š', 'green_heart'],
            ['๐Ÿ’™', 'blue_heart'],
            ['๐Ÿ’œ', 'purple_heart'],
            ['๐Ÿ–ค', 'black_heart'],
            ['๐Ÿ’”', 'broken_heart'],
            ['โฃ๏ธ', 'heavy_heart_exclamation'],
            ['๐Ÿ’•', 'two_hearts'],
            ['๐Ÿ’ž', 'revolving_hearts'],
            ['๐Ÿ’“', 'heartbeat'],
            ['๐Ÿ’—', 'heartpulse'],
            ['๐Ÿ’–', 'sparkling_heart'],
            ['๐Ÿ’˜', 'cupid'],
            ['๐Ÿ’', 'gift_heart'],
            ['๐Ÿ’Ÿ', 'heart_decoration'],
            ['โ˜ฎ๏ธ', 'peace_symbol'],
            ['โœ๏ธ', 'latin_cross'],
            ['โ˜ช๏ธ', 'star_and_crescent'],
            ['๐Ÿ•‰', 'om'],
            ['โ˜ธ๏ธ', 'wheel_of_dharma'],
            ['โœก๏ธ', 'star_of_david'],
            ['๐Ÿ”ฏ', 'six_pointed_star'],
            ['๐Ÿ•Ž', 'menorah'],
            ['โ˜ฏ๏ธ', 'yin_yang'],
            ['โ˜ฆ๏ธ', 'orthodox_cross'],
            ['๐Ÿ›', 'place_of_worship'],
            ['โ›Ž', 'ophiuchus'],
            ['โ™ˆ๏ธ', 'aries'],
            ['โ™‰๏ธ', 'taurus'],
            ['โ™Š๏ธ', 'gemini'],
            ['โ™‹๏ธ', 'cancer'],
            ['โ™Œ๏ธ', 'leo'],
            ['โ™๏ธ', 'virgo'],
            ['โ™Ž๏ธ', 'libra'],
            ['โ™๏ธ', 'scorpius'],
            ['โ™๏ธ', 'sagittarius'],
            ['โ™‘๏ธ', 'capricorn'],
            ['โ™’๏ธ', 'aquarius'],
            ['โ™“๏ธ', 'pisces'],
            ['๐Ÿ†”', 'id'],
            ['โš›๏ธ', 'atom_symbol'],
            ['๐Ÿ‰‘', 'accept'],
            ['โ˜ข๏ธ', 'radioactive'],
            ['โ˜ฃ๏ธ', 'biohazard'],
            ['๐Ÿ“ด', 'mobile_phone_off'],
            ['๐Ÿ“ณ', 'vibration_mode'],
            ['๐Ÿˆถ', 'u6709'],
            ['๐Ÿˆš๏ธ', 'u7121'],
            ['๐Ÿˆธ', 'u7533'],
            ['๐Ÿˆบ', 'u55b6'],
            ['๐Ÿˆท๏ธ', 'u6708'],
            ['โœด๏ธ', 'eight_pointed_black_star'],
            ['๐Ÿ†š', 'vs'],
            ['๐Ÿ’ฎ', 'white_flower'],
            ['๐Ÿ‰', 'ideograph_advantage'],
            ['ใŠ™๏ธ', 'secret'],
            ['ใŠ—๏ธ', 'congratulations'],
            ['๐Ÿˆด', 'u5408'],
            ['๐Ÿˆต', 'u6e80'],
            ['๐Ÿˆน', 'u5272'],
            ['๐Ÿˆฒ', 'u7981'],
            ['๐Ÿ…ฐ๏ธ', 'a'],
            ['๐Ÿ…ฑ๏ธ', 'b'],
            ['๐Ÿ†Ž', 'ab'],
            ['๐Ÿ†‘', 'cl'],
            ['๐Ÿ…พ๏ธ', 'o2'],
            ['๐Ÿ†˜', 'sos'],
            ['โŒ', 'x'],
            ['โญ•๏ธ', 'o'],
            ['๐Ÿ›‘', 'stop_sign'],
            ['โ›”๏ธ', 'no_entry'],
            ['๐Ÿ“›', 'name_badge'],
            ['๐Ÿšซ', 'no_entry_sign'],
            ['๐Ÿ’ฏ', '100'],
            ['๐Ÿ’ข', 'anger'],
            ['โ™จ๏ธ', 'hotsprings'],
            ['๐Ÿšท', 'no_pedestrians'],
            ['๐Ÿšฏ', 'do_not_litter'],
            ['๐Ÿšณ', 'no_bicycles'],
            ['๐Ÿšฑ', 'non-potable_water'],
            ['๐Ÿ”ž', 'underage'],
            ['๐Ÿ“ต', 'no_mobile_phones'],
            ['๐Ÿšญ', 'no_smoking'],
            ['โ—๏ธ', 'exclamation'],
            ['โ•', 'grey_exclamation'],
            ['โ“', 'question'],
            ['โ”', 'grey_question'],
            ['โ€ผ๏ธ', 'bangbang'],
            ['โ‰๏ธ', 'interrobang'],
            ['๐Ÿ”…', 'low_brightness'],
            ['๐Ÿ”†', 'high_brightness'],
            ['ใ€ฝ๏ธ', 'part_alternation_mark'],
            ['โš ๏ธ', 'warning'],
            ['๐Ÿšธ', 'children_crossing'],
            ['๐Ÿ”ฑ', 'trident'],
            ['โšœ๏ธ', 'fleur_de_lis'],
            ['๐Ÿ”ฐ', 'beginner'],
            ['โ™ป๏ธ', 'recycle'],
            ['โœ…', 'white_check_mark'],
            ['๐Ÿˆฏ๏ธ', 'u6307'],
            ['๐Ÿ’น', 'chart'],
            ['โ‡๏ธ', 'sparkle'],
            ['โœณ๏ธ', 'eight_spoked_asterisk'],
            ['โŽ', 'negative_squared_cross_mark'],
            ['๐ŸŒ', 'globe_with_meridians'],
            ['๐Ÿ’ ', 'diamond_shape_with_a_dot_inside'],
            ['โ“‚๏ธ', 'm'],
            ['๐ŸŒ€', 'cyclone'],
            ['๐Ÿ’ค', 'zzz'],
            ['๐Ÿง', 'atm'],
            ['๐Ÿšพ', 'wc'],
            ['โ™ฟ๏ธ', 'wheelchair'],
            ['๐Ÿ…ฟ๏ธ', 'parking'],
            ['๐Ÿˆณ', 'u7a7a'],
            ['๐Ÿˆ‚๏ธ', 'sa'],
            ['๐Ÿ›‚', 'passport_control'],
            ['๐Ÿ›ƒ', 'customs'],
            ['๐Ÿ›„', 'baggage_claim'],
            ['๐Ÿ›…', 'left_luggage'],
            ['๐Ÿšน', 'mens'],
            ['๐Ÿšบ', 'womens'],
            ['๐Ÿšผ', 'baby_symbol'],
            ['๐Ÿšป', 'restroom'],
            ['๐Ÿšฎ', 'put_litter_in_its_place'],
            ['๐ŸŽฆ', 'cinema'],
            ['๐Ÿ“ถ', 'signal_strength'],
            ['๐Ÿˆ', 'koko'],
            ['๐Ÿ”ฃ', 'symbols'],
            ['โ„น๏ธ', 'information_source'],
            ['๐Ÿ”ค', 'abc'],
            ['๐Ÿ”ก', 'abcd'],
            ['๐Ÿ” ', 'capital_abcd'],
            ['๐Ÿ†–', 'ng'],
            ['๐Ÿ†—', 'ok'],
            ['๐Ÿ†™', 'up'],
            ['๐Ÿ†’', 'cool'],
            ['๐Ÿ†•', 'new'],
            ['๐Ÿ†“', 'free'],
            ['0๏ธโƒฃ', 'zero'],
            ['1๏ธโƒฃ', 'one'],
            ['2๏ธโƒฃ', 'two'],
            ['3๏ธโƒฃ', 'three'],
            ['4๏ธโƒฃ', 'four'],
            ['5๏ธโƒฃ', 'five'],
            ['6๏ธโƒฃ', 'six'],
            ['7๏ธโƒฃ', 'seven'],
            ['8๏ธโƒฃ', 'eight'],
            ['9๏ธโƒฃ', 'nine'],
            ['๐Ÿ”Ÿ', 'keycap_ten'],
            ['๐Ÿ”ข', '1234'],
            ['#๏ธโƒฃ', 'hash'],
            ['*๏ธโƒฃ', 'asterisk'],
            ['โ–ถ๏ธ', 'arrow_forward'],
            ['โธ', 'pause_button'],
            ['โฏ', 'play_or_pause_button'],
            ['โน', 'stop_button'],
            ['โบ', 'record_button'],
            ['โญ', 'next_track_button'],
            ['โฎ', 'previous_track_button'],
            ['โฉ', 'fast_forward'],
            ['โช', 'rewind'],
            ['โซ', 'arrow_double_up'],
            ['โฌ', 'arrow_double_down'],
            ['โ—€๏ธ', 'arrow_backward'],
            ['๐Ÿ”ผ', 'arrow_up_small'],
            ['๐Ÿ”ฝ', 'arrow_down_small'],
            ['โžก๏ธ', 'arrow_right'],
            ['โฌ…๏ธ', 'arrow_left'],
            ['โฌ†๏ธ', 'arrow_up'],
            ['โฌ‡๏ธ', 'arrow_down'],
            ['โ†—๏ธ', 'arrow_upper_right'],
            ['โ†˜๏ธ', 'arrow_lower_right'],
            ['โ†™๏ธ', 'arrow_lower_left'],
            ['โ†–๏ธ', 'arrow_upper_left'],
            ['โ†•๏ธ', 'arrow_up_down'],
            ['โ†”๏ธ', 'left_right_arrow'],
            ['โ†ช๏ธ', 'arrow_right_hook'],
            ['โ†ฉ๏ธ', 'leftwards_arrow_with_hook'],
            ['โคด๏ธ', 'arrow_heading_up'],
            ['โคต๏ธ', 'arrow_heading_down'],
            ['๐Ÿ”€', 'twisted_rightwards_arrows'],
            ['๐Ÿ”', 'repeat'],
            ['๐Ÿ”‚', 'repeat_one'],
            ['๐Ÿ”„', 'arrows_counterclockwise'],
            ['๐Ÿ”ƒ', 'arrows_clockwise'],
            ['๐ŸŽต', 'musical_note'],
            ['๐ŸŽถ', 'notes'],
            ['โž•', 'heavy_plus_sign'],
            ['โž–', 'heavy_minus_sign'],
            ['โž—', 'heavy_division_sign'],
            ['โœ–๏ธ', 'heavy_multiplication_x'],
            ['๐Ÿ’ฒ', 'heavy_dollar_sign'],
            ['๐Ÿ’ฑ', 'currency_exchange'],
            ['โ„ข๏ธ', 'tm'],
            ['ยฉ๏ธ', 'copyright'],
            ['ยฎ๏ธ', 'registered'],
            ['ใ€ฐ๏ธ', 'wavy_dash'],
            ['โžฐ', 'curly_loop'],
            ['โžฟ', 'loop'],
            ['๐Ÿ”š', 'end'],
            ['๐Ÿ”™', 'back'],
            ['๐Ÿ”›', 'on'],
            ['๐Ÿ”', 'top'],
            ['๐Ÿ”œ', 'soon'],
            ['โœ”๏ธ', 'heavy_check_mark'],
            ['โ˜‘๏ธ', 'ballot_box_with_check'],
            ['๐Ÿ”˜', 'radio_button'],
            ['โšช๏ธ', 'white_circle'],
            ['โšซ๏ธ', 'black_circle'],
            ['๐Ÿ”ด', 'red_circle'],
            ['๐Ÿ”ต', 'large_blue_circle'],
            ['๐Ÿ”บ', 'small_red_triangle'],
            ['๐Ÿ”ป', 'small_red_triangle_down'],
            ['๐Ÿ”ธ', 'small_orange_diamond'],
            ['๐Ÿ”น', 'small_blue_diamond'],
            ['๐Ÿ”ถ', 'large_orange_diamond'],
            ['๐Ÿ”ท', 'large_blue_diamond'],
            ['๐Ÿ”ณ', 'white_square_button'],
            ['๐Ÿ”ฒ', 'black_square_button'],
            ['โ–ช๏ธ', 'black_small_square'],
            ['โ–ซ๏ธ', 'white_small_square'],
            ['โ—พ๏ธ', 'black_medium_small_square'],
            ['โ—ฝ๏ธ', 'white_medium_small_square'],
            ['โ—ผ๏ธ', 'black_medium_square'],
            ['โ—ป๏ธ', 'white_medium_square'],
            ['โฌ›๏ธ', 'black_large_square'],
            ['โฌœ๏ธ', 'white_large_square'],
            ['๐Ÿ”ˆ', 'speaker'],
            ['๐Ÿ”‡', 'mute'],
            ['๐Ÿ”‰', 'sound'],
            ['๐Ÿ”Š', 'loud_sound'],
            ['๐Ÿ””', 'bell'],
            ['๐Ÿ”•', 'no_bell'],
            ['๐Ÿ“ฃ', 'mega'],
            ['๐Ÿ“ข', 'loudspeaker'],
            ['๐Ÿ‘โ€๐Ÿ—จ', 'eye_speech_bubble'],
            ['๐Ÿ’ฌ', 'speech_balloon'],
            ['๐Ÿ’ญ', 'thought_balloon'],
            ['๐Ÿ—ฏ', 'right_anger_bubble'],
            ['โ™ ๏ธ', 'spades'],
            ['โ™ฃ๏ธ', 'clubs'],
            ['โ™ฅ๏ธ', 'hearts'],
            ['โ™ฆ๏ธ', 'diamonds'],
            ['๐Ÿƒ', 'black_joker'],
            ['๐ŸŽด', 'flower_playing_cards'],
            ['๐Ÿ€„๏ธ', 'mahjong'],
            ['๐Ÿ•', 'clock1'],
            ['๐Ÿ•‘', 'clock2'],
            ['๐Ÿ•’', 'clock3'],
            ['๐Ÿ•“', 'clock4'],
            ['๐Ÿ•”', 'clock5'],
            ['๐Ÿ••', 'clock6'],
            ['๐Ÿ•–', 'clock7'],
            ['๐Ÿ•—', 'clock8'],
            ['๐Ÿ•˜', 'clock9'],
            ['๐Ÿ•™', 'clock10'],
            ['๐Ÿ•š', 'clock11'],
            ['๐Ÿ•›', 'clock12'],
            ['๐Ÿ•œ', 'clock130'],
            ['๐Ÿ•', 'clock230'],
            ['๐Ÿ•ž', 'clock330'],
            ['๐Ÿ•Ÿ', 'clock430'],
            ['๐Ÿ• ', 'clock530'],
            ['๐Ÿ•ก', 'clock630'],
            ['๐Ÿ•ข', 'clock730'],
            ['๐Ÿ•ฃ', 'clock830'],
            ['๐Ÿ•ค', 'clock930'],
            ['๐Ÿ•ฅ', 'clock1030'],
            ['๐Ÿ•ฆ', 'clock1130'],
            ['๐Ÿ•ง', 'clock1230']
        ],
        name: 'Symbols',
        icon: ['๐Ÿ” ', 'capital_abcd']
    }
];

let EmojiListComponent = class EmojiListComponent {
    constructor() {
        this.emojiSelectionEmitter = new EventEmitter();
    }
    selectCategory(event) {
        this.emojiCategoryComponents.forEach((categoryCmp) => {
            if (categoryCmp['category'].name === event.name) {
                categoryCmp.scrollIntoView();
            }
        });
    }
};
__decorate([
    ViewChildren(forwardRef(() => EmojiCategoryComponent)),
    __metadata("design:type", QueryList)
], EmojiListComponent.prototype, "emojiCategoryComponents", void 0);
__decorate([
    Input('emojis'),
    __metadata("design:type", Object)
], EmojiListComponent.prototype, "emojis", void 0);
__decorate([
    Output('emoji-selection'),
    __metadata("design:type", Object)
], EmojiListComponent.prototype, "emojiSelectionEmitter", void 0);
EmojiListComponent = __decorate([
    Component({
        selector: 'emoji-list',
        template: `
  <div class="emoji-list">
    <ng-container *ngFor="let emojiCategory of emojis | notEmptyEmojiCategory">
      <emoji-category [category]="emojiCategory"></emoji-category>
      <div class="emoji-buttons">
        <emoji-button 
        *ngFor="let emoji of emojiCategory.emojis"
        (selection)="emojiSelectionEmitter.emit($event)"
        [emoji]="emoji"></emoji-button>
      </div>
    </ng-container>
  </div>
  `,
        styles: [":host{overflow-y:auto}.emoji-list{padding:0 10px 10px}.emoji-buttons{display:flex;justify-content:center;flex-wrap:wrap;margin:5px 0}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiListComponent);

let EmojiContentComponent = class EmojiContentComponent {
    constructor() {
        this.emojiSelectionEmitter = new EventEmitter();
        this._emojis = EMOJIS;
        this.emojis = this._emojis.slice();
        this.emojisCategories = this._emojis.map(category => Object.assign({}, category, { emojis: [] }));
    }
    searchHandler(value) {
        let filteredEmojis = this.emojisCategories.map(category => Object.assign({}, category, { emojis: [] }));
        value = value.replace(/-/g, '').toLowerCase();
        Object.keys(this._emojis).forEach(i => {
            const category = this._emojis[i];
            category.emojis.forEach(emoji => {
                if (emoji[1].indexOf(value) !== -1) {
                    filteredEmojis[i].emojis.push(emoji);
                }
            });
        });
        this.emojis = filteredEmojis;
    }
    categorySelectionHandler(event) {
        this.emojiListComponent.selectCategory(event);
    }
};
__decorate([
    ViewChild(forwardRef(() => EmojiListComponent), { static: true }),
    __metadata("design:type", EmojiListComponent)
], EmojiContentComponent.prototype, "emojiListComponent", void 0);
__decorate([
    Output('emoji-selection'),
    __metadata("design:type", Object)
], EmojiContentComponent.prototype, "emojiSelectionEmitter", void 0);
EmojiContentComponent = __decorate([
    Component({
        selector: 'emoji-content',
        template: `
  <emoji-header 
    [emojisCategories]="emojisCategories"
    (categorySelection)="categorySelectionHandler($event)"
    (search)="searchHandler($event)"></emoji-header>
  <emoji-list [emojis]="emojis" (emoji-selection)="emojiSelectionEmitter.emit($event)"></emoji-list>
  <emoji-footer></emoji-footer>
  `,
        styles: [":host{display:flex;flex-direction:column;width:100vw;height:314px;border-radius:3px;background:#fff;text-align:left;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media (min-width:258px){:host{width:258px}}emoji-list{flex-grow:1}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiContentComponent);

let EmojiFooterComponent = class EmojiFooterComponent {
    constructor() { }
};
EmojiFooterComponent = __decorate([
    Component({
        selector: 'emoji-footer',
        template: `
  <footer class="emoji-footer"></footer>
  `,
        styles: [".emoji-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f9f9f9;border-radius:0 0 3px 3px;padding:10px;background:#fcfcfc}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiFooterComponent);

let EmojiHeaderComponent = class EmojiHeaderComponent {
    constructor() {
        this.categorySelection = new EventEmitter();
        this.searchEmitter = new EventEmitter();
    }
};
__decorate([
    Input('emojisCategories'),
    __metadata("design:type", Object)
], EmojiHeaderComponent.prototype, "emojisCategories", void 0);
__decorate([
    Output('categorySelection'),
    __metadata("design:type", Object)
], EmojiHeaderComponent.prototype, "categorySelection", void 0);
__decorate([
    Output('search'),
    __metadata("design:type", Object)
], EmojiHeaderComponent.prototype, "searchEmitter", void 0);
EmojiHeaderComponent = __decorate([
    Component({
        selector: 'emoji-header',
        template: `
  <emoji-categories [emojisCategories]="emojisCategories" (categorySelection)="categorySelection.emit($event)"></emoji-categories>
  <emoji-search (search)="searchEmitter.emit($event)"></emoji-search>
  `,
        styles: [":host{display:block;border-bottom:1px solid #f9f9f9;border-radius:3px 3px 0 0;padding:10px;background:#fcfcfc}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiHeaderComponent);

let EmojiSearchComponent = class EmojiSearchComponent {
    constructor() {
        this.searchEmitter = new EventEmitter();
        this._searchValue = new Subject();
        this._destroyed = new Subject();
        this._searchValue.pipe(takeUntil(this._destroyed)).subscribe((value) => {
            this.searchEmitter.emit(value);
        });
    }
    handleInputChange(event) {
        this._searchValue.next(event);
    }
    ngOnDestroy() {
        this._destroyed.next(true);
    }
};
__decorate([
    Output("search"),
    __metadata("design:type", EventEmitter)
], EmojiSearchComponent.prototype, "searchEmitter", void 0);
__decorate([
    ViewChild("input", { static: true }),
    __metadata("design:type", ElementRef)
], EmojiSearchComponent.prototype, "input", void 0);
EmojiSearchComponent = __decorate([
    Component({
        selector: "emoji-search",
        template: `
    <input
      type="text"
      autocomplete="off"
      #input
      (input)="handleInputChange($event.target.value)"
      aria-label="Search"
      placeholder="Search"
    />
  `,
        styles: ["input{width:100%;padding:5px 10px;border:1px solid #f0f0f0;outline:0;font-size:14px;font-weight:inherit;box-sizing:border-box}input:focus{border-color:#d7d7d7}"]
    }),
    __metadata("design:paramtypes", [])
], EmojiSearchComponent);

var DIRECTIONS;
(function (DIRECTIONS) {
    DIRECTIONS[DIRECTIONS["top"] = 0] = "top";
    DIRECTIONS[DIRECTIONS["bottom"] = 1] = "bottom";
    DIRECTIONS[DIRECTIONS["left"] = 2] = "left";
    DIRECTIONS[DIRECTIONS["right"] = 3] = "right";
})(DIRECTIONS || (DIRECTIONS = {}));

let EmojiPickerComponent = class EmojiPickerComponent {
    constructor(_renderer, _el) {
        this._renderer = _renderer;
        this._el = _el;
        this.selectionEmitter = new EventEmitter();
        this.pickerCloseEmitter = new EventEmitter();
        this._windowResize = new Subject();
        this._destroyed = new Subject();
        this._windowResize
            .pipe(takeUntil(this._destroyed), debounceTime(100))
            .subscribe((event) => {
            this.setPosition(this._currentTarget, this._currentDirection);
        });
    }
    hide() {
        this._renderer.setStyle(this._el.nativeElement, "display", "none");
    }
    show() {
        this._renderer.setStyle(this._el.nativeElement, "display", "block");
        this.setPosition(this._currentTarget, this._currentDirection);
    }
    setPosition(target, directionCode = DIRECTIONS.bottom) {
        if (!target) {
            return console.error("Emoji-Picker: positioning failed due to missing target element or direction code");
        }
        this._renderer.setStyle(this._el.nativeElement, "transform", "");
        /** Store anchor and direction */
        this._currentTarget = target;
        this._currentDirection = directionCode;
        const targetBorders = target.nativeElement.getBoundingClientRect(), thisBorders = this._el.nativeElement.getBoundingClientRect();
        let heightCorrection = 0, widthCorrection = 0;
        /** Setting up centering of picker for all cases */
        switch (this._currentDirection) {
            case DIRECTIONS.top:
            case DIRECTIONS.bottom:
                widthCorrection =
                    targetBorders.left -
                        thisBorders.left +
                        (targetBorders.width - thisBorders.width) / 2;
                break;
            case DIRECTIONS.left:
            case DIRECTIONS.right:
                heightCorrection =
                    targetBorders.top -
                        thisBorders.top +
                        (targetBorders.height - thisBorders.height) / 2;
                break;
        }
        /** Setting up relative positioning for all cases */
        switch (this._currentDirection) {
            case DIRECTIONS.top:
                heightCorrection = targetBorders.top - thisBorders.bottom;
                break;
            case DIRECTIONS.left:
                widthCorrection = targetBorders.left - thisBorders.right;
                break;
            case DIRECTIONS.right:
                widthCorrection = targetBorders.right - thisBorders.left;
                break;
            case DIRECTIONS.bottom:
                heightCorrection = targetBorders.bottom - thisBorders.top;
                break;
        }
        /** Correcting positioning due to overflow problems */
        if (thisBorders.bottom + heightCorrection > window.innerHeight) {
            heightCorrection +=
                window.innerHeight - (thisBorders.bottom + heightCorrection);
        }
        if (thisBorders.top + heightCorrection < 0) {
            heightCorrection -= thisBorders.top + heightCorrection;
        }
        if (thisBorders.right + widthCorrection > window.innerWidth) {
            widthCorrection +=
                window.innerWidth - (thisBorders.right + widthCorrection);
        }
        if (thisBorders.left + widthCorrection < 0) {
            widthCorrection -= thisBorders.left + widthCorrection;
        }
        /** set the position adjustments to the emoji picker element */
        this._renderer.setStyle(this._el.nativeElement, "transform", `translate(${widthCorrection}px,${heightCorrection}px)`);
    }
    onBackground(event) {
        /** internal mousedowns are ignored */
        if (event === this._lastHostMousedownEvent || event.emojiPickerExempt) {
            return;
        }
        this.pickerCloseEmitter.emit(event);
    }
    ngOnDestroy() {
        this._destroyed.next(true);
    }
};
EmojiPickerComponent.ctorParameters = () => [
    { type: Renderer2 },
    { type: ElementRef }
];
__decorate([
    Output("emoji-select"),
    __metadata("design:type", Object)
], EmojiPickerComponent.prototype, "selectionEmitter", void 0);
__decorate([
    Output("picker-close"),
    __metadata("design:type", Object)
], EmojiPickerComponent.prototype, "pickerCloseEmitter", void 0);
EmojiPickerComponent = __decorate([
    Component({
        selector: "emoji-picker",
        template: `
    <emoji-content
      (emoji-selection)="selectionEmitter.emit($event)"
    ></emoji-content>
  `,
        host: {
            "(document:click)": "onBackground($event)",
            "(click)": "_lastHostMousedownEvent = $event",
            "(window:resize)": "_windowResize.next($event)",
        },
        styles: [":host { position: absolute; z-index: 9999; display: none; }"]
    }),
    __metadata("design:paramtypes", [Renderer2, ElementRef])
], EmojiPickerComponent);

class EmojiEvent {
    constructor(data) {
        Object.assign(this, data);
    }
    static fromArray(emojiArray) {
        return new EmojiEvent({ char: emojiArray[0], label: emojiArray[1] });
    }
}

let EmojiPickerApiDirective = class EmojiPickerApiDirective {
    constructor(_cfr, _vcr, _el) {
        this._cfr = _cfr;
        this._vcr = _vcr;
        this._el = _el;
        this._directionCode = DIRECTIONS.bottom;
        this._searchBar = false;
        this.emojiPickerIfEmitter = new EventEmitter();
        this.selectEmitter = new EventEmitter();
        this._emojiPickerOpenState = new Subject();
        this._destroyed = new Subject();
        this._emojiSubs = [];
        this.initPicker();
        this._emojiPickerOpenState
            .pipe(takeUntil(this._destroyed), distinctUntilChanged())
            .subscribe(value => {
            var _a, _b, _c, _d, _e, _f;
            if (value) {
                (_c = (_b = (_a = this._emojiPickerRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.show) === null || _c === void 0 ? void 0 : _c.call(_b);
            }
            else {
                (_f = (_e = (_d = this._emojiPickerRef) === null || _d === void 0 ? void 0 : _d.instance) === null || _e === void 0 ? void 0 : _e.hide) === null || _f === void 0 ? void 0 : _f.call(_e);
            }
        });
    }
    set emojiPickerDirection(direction) {
        if (DIRECTIONS[direction] === undefined) {
            console.error(`Emoji-Picker: direction '${direction}' passed as input does not exist in DIRECTIONS table, defaulting to 'bottom'`);
            this._directionCode = DIRECTIONS.bottom;
        }
        else {
            this._directionCode = DIRECTIONS[direction];
        }
    }
    set emojiPickerIf(condition) {
        this._emojiPickerOpenState.next(condition);
    }
    initPicker() {
        this._emojiPickerFactory = this._emojiPickerFactory || this._cfr.resolveComponentFactory(EmojiPickerComponent);
        this._emojiPickerRef = this._emojiPickerRef || this._vcr.createComponent(this._emojiPickerFactory);
        this._emojiPickerRef.instance.setPosition(this._el, this._directionCode);
        this._emojiSubs.push(this._emojiPickerRef.instance.pickerCloseEmitter.subscribe(event => this.emojiPickerIfEmitter.emit(false)), this._emojiPickerRef.instance.selectionEmitter.subscribe(event => this.selectEmitter.emit(EmojiEvent.fromArray(event))));
    }
    closePicker() {
        if (!this._emojiPickerRef || !this._emojiPickerRef.destroy) {
            return;
        }
        this._emojiSubs.forEach((subscription) => subscription.unsubscribe());
        this._emojiPickerRef.destroy();
        this._emojiSubs = [];
        delete this._emojiPickerRef;
    }
    ngOnDestroy() {
        this._destroyed.next(true);
    }
};
EmojiPickerApiDirective.ctorParameters = () => [
    { type: ComponentFactoryResolver },
    { type: ViewContainerRef },
    { type: ElementRef }
];
__decorate([
    Input('emojiPickerDirection'),
    __metadata("design:type", String),
    __metadata("design:paramtypes", [String])
], EmojiPickerApiDirective.prototype, "emojiPickerDirection", null);
__decorate([
    Input('emojiPickerIf'),
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [Boolean])
], EmojiPickerApiDirective.prototype, "emojiPickerIf", null);
__decorate([
    Output('emojiPickerIfChange'),
    __metadata("design:type", Object)
], EmojiPickerApiDirective.prototype, "emojiPickerIfEmitter", void 0);
__decorate([
    Output('emojiPickerSelect'),
    __metadata("design:type", Object)
], EmojiPickerApiDirective.prototype, "selectEmitter", void 0);
EmojiPickerApiDirective = __decorate([
    Directive({
        selector: '[emojiPickerIf]',
        host: {
            '(click)': '$event.emojiPickerExempt = true' // marking off event listening on anchor
        }
    }),
    __metadata("design:paramtypes", [ComponentFactoryResolver,
        ViewContainerRef,
        ElementRef])
], EmojiPickerApiDirective);

class CaretEvent {
    constructor(data) {
        Object.assign(this, data);
    }
    clone() {
        return new CaretEvent(Object.assign({}, this, {
            caretRange: this.caretRange && this.caretRange.cloneRange ? this.caretRange.cloneRange() : this.caretRange
        }));
    }
    static generateNullEvent() {
        return new CaretEvent({
            caretOffset: 0,
            textContent: ''
        });
    }
    static comparePropsOfObject(r1, r2) {
        for (let k in r1) {
            if (r1[k] !== r2[k]) {
                return false;
            }
        }
        return true;
    }
    static compare(e1, e2) {
        const changed = 
        /** different when either caretRange is omitted while other exists */
        (!e1.caretRange && e2.caretRange) ||
            (e1.caretRange && !e2.caretRange) ||
            /** different when offset has changed */
            (e1.caretOffset !== e2.caretOffset) ||
            /** different when textContent has changed */
            (e1.textContent !== e2.textContent) ||
            /** different when range object properties changed */
            !this.comparePropsOfObject(e1.caretRange, e2.caretRange);
        return !changed;
    }
    static generateCaretEvent(win, doc, element) {
        let caretOffset = 0, sel, caretRange, textContent = element.textContent;
        if (element.tagName.toLowerCase() === 'input') {
            return new CaretEvent({
                caretOffset: element.selectionEnd,
                textContent: element.value
            });
        }
        if (typeof win.getSelection != "undefined") {
            sel = win.getSelection();
            if (sel.rangeCount > 0) {
                const range = win.getSelection().getRangeAt(0);
                const preCaretRange = range.cloneRange();
                preCaretRange.selectNodeContents(element);
                preCaretRange.setEnd(range.endContainer, range.endOffset);
                caretOffset = preCaretRange.toString().length;
                /** Keeping a reference of the range to emit */
                caretRange = range.cloneRange();
            }
        }
        else if ((sel = doc.selection) && sel.type != "Control") {
            const textRange = sel.createRange();
            const preCaretTextRange = doc.body.createTextRange();
            preCaretTextRange.moveToElementText(element);
            preCaretTextRange.setEndPoint("EndToEnd", textRange);
            caretOffset = preCaretTextRange.text.length;
            /** Keeping a reference of the range to emit and making it compatible */
            caretRange = textRange.duplicate();
            caretRange.insertNode = (e) => {
                const container = document.createElement("div");
                container.appendChild(e);
                caretRange.pasteHTML(container.innerHTML);
            };
        }
        return new CaretEvent({
            caretOffset,
            caretRange,
            textContent
        });
    }
}

let EmojiPickerCaretDirective = class EmojiPickerCaretDirective {
    constructor(_el) {
        this._el = _el;
        this.caretEmitter = new EventEmitter();
        this._caretEvent$ = new Subject();
        this._destroyed$ = new Subject();
        this._lastCaretEvent = CaretEvent.generateNullEvent();
        this._caretEvent$
            .pipe(takeUntil(this._destroyed$), distinctUntilChanged((event1, event2) => {
            return CaretEvent.compare(event1, event2);
        }))
            .subscribe((event) => {
            this.caretEmitter.emit(event);
            this._lastCaretEvent = event.clone();
        });
    }
    get doc() {
        if (!this._doc) {
            this._doc = this._el.nativeElement.ownerDocument || this._el.nativeElement.document || document;
        }
        return this._doc;
    }
    get win() {
        if (!this._win) {
            this._win = this.doc.defaultView || this.doc.parentWindow || window;
        }
        return this._win;
    }
    ngOnInit() {
        if (!this._el.nativeElement.getAttribute('contenteditable') && this._el.nativeElement.tagName.toLowerCase() !== 'input') {
            throw new Error('(emojiPickerPositionEmitter) should only work on contenteditable enabled or input elements');
        }
    }
    ngOnDestroy() {
        this._destroyed$.next(true);
    }
    updateCaretPosition() {
        const cEvent = CaretEvent.generateCaretEvent(this.win, this.doc, this._el.nativeElement);
        this._caretEvent$.next(cEvent);
    }
    updateCaretDueMutation() {
        const cEvent = CaretEvent.generateCaretEvent(this.win, this.doc, this._el.nativeElement);
        let textMovement = cEvent.textContent.length - this._lastCaretEvent.textContent.length;
        cEvent.caretOffset = this._lastCaretEvent.caretOffset + textMovement;
        /** change detection after DOMSubtreeModified event is weird
         * ChangeDetectorRef.detectChanges(), ChangeDetectorRef.markForCheck(), ApplicationRef.tick(), NgZone.run()
         * all of those methods did not work as expected.
         * As a temporary hack I am emitting an event after a short timeout, which is fine due to the _caretEvent$ smart stream
         */
        setTimeout(() => {
            this._caretEvent$.next(cEvent);
        });
    }
};
EmojiPickerCaretDirective.ctorParameters = () => [
    { type: ElementRef }
];
__decorate([
    Output('emojiPickerCaretEmitter'),
    __metadata("design:type", Object)
], EmojiPickerCaretDirective.prototype, "caretEmitter", void 0);
EmojiPickerCaretDirective = __decorate([
    Directive({
        selector: '[emojiPickerCaretEmitter]',
        host: {
            '(keyup)': 'updateCaretPosition()',
            '(mouseup)': 'updateCaretPosition()',
            '(selectstart)': 'updateCaretPosition()',
            '(focus)': 'updateCaretPosition()',
            '(DOMSubtreeModified)': 'updateCaretDueMutation($event)'
        }
    }),
    __metadata("design:paramtypes", [ElementRef])
], EmojiPickerCaretDirective);

let EmojiEmptyCategoryPipe = class EmojiEmptyCategoryPipe {
    transform(categories) {
        return categories.filter(category => category.emojis.length !== 0);
    }
};
EmojiEmptyCategoryPipe = __decorate([
    Pipe({
        name: 'notEmptyEmojiCategory'
    })
], EmojiEmptyCategoryPipe);

let EmojiFallback = class EmojiFallback {
    constructor(domSanitizer) {
        this.domSanitizer = domSanitizer;
    }
    transform(emoji) {
        return !emoji || this.supportsEmoji() ? emoji : this.domSanitizer.bypassSecurityTrustHtml(twemoji.parse(emoji.trim()));
    }
    // Solution: https://stackoverflow.com/questions/45576748/how-can-i-detect-rendering-support-for-emoji-in-javascript
    supportsEmoji() {
        var ctx = document.createElement("canvas").getContext("2d");
        ctx.fillText("๐Ÿ™ƒ", -2, 4);
        return ctx.getImageData(0, 0, 1, 1).data[3] > 0;
    }
};
EmojiFallback.ctorParameters = () => [
    { type: DomSanitizer }
];
EmojiFallback = __decorate([
    Pipe({
        name: 'emojiFallback'
    }),
    __metadata("design:paramtypes", [DomSanitizer])
], EmojiFallback);

var NgxEmojiPickerModule_1;
let NgxEmojiPickerModule = NgxEmojiPickerModule_1 = class NgxEmojiPickerModule {
    static forRoot() {
        return {
            ngModule: NgxEmojiPickerModule_1,
            providers: []
        };
    }
};
NgxEmojiPickerModule = NgxEmojiPickerModule_1 = __decorate([
    NgModule({
        declarations: [
            EmojiPickerApiDirective,
            EmojiPickerCaretDirective,
            EmojiButtonComponent,
            EmojiContentComponent,
            EmojiPickerComponent,
            EmojiListComponent,
            EmojiHeaderComponent,
            EmojiSearchComponent,
            EmojiCategoriesComponent,
            EmojiCategoryComponent,
            EmojiFooterComponent,
            EmojiEmptyCategoryPipe,
            EmojiFallback
        ],
        imports: [
            CommonModule
        ],
        exports: [
            EmojiPickerApiDirective,
            EmojiPickerCaretDirective,
            EmojiButtonComponent,
            EmojiContentComponent,
            EmojiPickerComponent,
            EmojiListComponent,
            EmojiHeaderComponent,
            EmojiSearchComponent,
            EmojiCategoriesComponent,
            EmojiCategoryComponent,
            EmojiFooterComponent
        ],
        providers: [],
        entryComponents: [EmojiPickerComponent]
    })
], NgxEmojiPickerModule);

/*
 * Public API Surface of ngx-emoji-picker
 */

/**
 * Generated bundle index. Do not edit.
 */

export { CaretEvent, EmojiButtonComponent, EmojiCategoriesComponent, EmojiCategoryComponent, EmojiContentComponent, EmojiEvent, EmojiFooterComponent, EmojiHeaderComponent, EmojiListComponent, EmojiPickerApiDirective, EmojiPickerCaretDirective, EmojiPickerComponent, EmojiSearchComponent, NgxEmojiPickerModule, EmojiEmptyCategoryPipe as ษตa, EmojiFallback as ษตb };
//# sourceMappingURL=ngx-emoji-picker.js.map