Skip to content

Nikoro/emoji_extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Emojis for Dart Unicode 16.0
+
One, yet powerful emojis String extension

Pub Package Build Status Code Coverage MIT License Unicode 16.0 YouTube Tutorial


Features

  • Contains over 5,000 emojis from Unicode 16.0 πŸ’ͺ
  • Supports:
    • shorcodes: Discord, Github, Slack 🫑
    • skin tone variations: πŸ‘ πŸ‘πŸ» πŸ‘πŸΌ πŸ‘πŸ½ πŸ‘πŸΎ πŸ‘πŸΏ
    • hair style variations: 🦰 🦱 🦳 🦲
    • multi-person: πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦
  • Provides Emojis collection that has all the info about each emoji:
    • value: πŸ˜†
    • unicode: 1F606
    • name: Grinning Squinting Face
    • apple name: Grinning Face with Squinting Eyes
    • also known as: ><, Closed-Eyes Smile, Big Grin, Laughing, XD
    • group: Smileys & Emotion
    • subgroup: face-smiling
    • version: 6.0
    • status: fully-qualified
    • shortcodes:
      • CLDR: grinning_squinting_face
      • Discord: laughing, satisfied
      • Github: laughing, satisfied
      • Slack: laughing, satisfied
  • Provides emojis extension to interact with emojis within any text. Quick overview of just a few possibilities:
'textπŸ˜€textπŸ€¦πŸΎβ€β™€οΈtext'.emojis 
                         .contains // true
                         .only // false
                         .onlyOne // false
                         .count // 2
                         .split // [text, text, text]
                         .remove // texttexttext
                         .extract // [πŸ˜€, πŸ€¦πŸΎβ€β™€οΈ]
                         .replace('-') // text-text-text
                         .first
                               .value // πŸ˜€
                               .unicode // 1F600
                               .name // Grinning Face
                         ... // and many more
                          
// to Slack shortcodes:
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toSlackShortcodes(); // :grinning:text:woman-facepalming::skin-tone-5:

// from Slack shortcodes:
':grinning:text:woman-facepalming::skin-tone-5:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ
  • Provides Emoji class equipped with numerous properties and getters for your convenience:
Emoji('❀️').shortcode; // :red_heart:

Emoji('🦊').isAnimal; // true

Emoji('πŸ‘ͺ').isMultiPerson; // true

Emoji('πŸ‘πŸ»').hasSkinTone; // true

Emoji('πŸ˜ƒ').hasFace; // true

... // and many more

Table of contents

Import import 'package:emoji_extension/emoji_extension.dart'; and you've got 2 benefits:

1️⃣ Emojis collection

______________________________________

______________________________________

2️⃣ Emojis extension

______________________________________________________

Emojis collection

Full Emojis collection with unicodes, names, apple names, "also known as", groups, subgroups, shortcodes:

Emojis
      .all // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]
          .values // [πŸ˜€, πŸ˜ƒ, πŸ˜„, 😁, πŸ˜†, πŸ˜…, 🀣, πŸ˜‚, πŸ™‚, πŸ™ƒ, 🫠, πŸ˜‰, 😊, πŸ˜‡, πŸ₯°, 😍, ...]
          .unicodes // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]
          .names // [Grinning Face, Grinning Face with Big Eyes, ...]
          .appleNames // [Grinning Face, Grinning Face with Big Eyes, ...]
          .alsoKnownAs // [Happy Face, Smiley Face, Grinning Face, ...]
          .shortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
      .groups // [Group.smileysAndEmotion, Group.peopleAndBody, Group.component, ...]
             .values // [Smileys & Emotion, People & Body, Component, Animals & Nature, ...]
      .subgroups // [Subgroup.faceSmiling, Subgroup.faceAffection, Subgroup.faceTongue, ...]
                .values // [face-smiling, face-affection, face-tongue, face-hand, ...]
      .groupsWithSubgroups // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}
                          .values // {Smileys & Emotion: [face-smiling, ...], ...}
      .shortcodePlatforms // [Default, CLDR, Discord, Github, Slack]
      .versions // [Version.v6_0, Version.v7_0, Version.v8_0, Version.v9_0, ...]
               .values // [6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, ...]
      .statuses // [Status.fullyQualified, Status.minimallyQualified, ...]
               .values // [fully-qualified, minimally-qualified, unqualified, ...]

Emojis.all

Emojis.all  /* [
                Emoji(
                 value: πŸ˜€,
                 unicode: 1F600,
                 name: Grinning Face,
                 appleName: Grinning Face,
                 alsoKnownAs: [Happy Face, Smiley Face],
                 group: Smileys & Emotion,
                 subgroup: face-smiling,
                 version: 8.0,
                 status: fully-qualified,
                 shortcodes: [
                          Shortcode(
                          platform: Default,
                          values: [grinning_face]
                        ),
                          Shortcode(
                          platform: CLDR,
                          values: [grinning_face]
                        ),
                          Shortcode(
                          platform: Discord,
                          values: [grinning]
                        ),
                          Shortcode(
                          platform: Github,
                          values: [grinning]
                        ),
                          Shortcode(
                          platform: Slack,
                          values: [grinning]
                        )]
                ), 
                Emoji(
                 value: πŸ˜ƒ,
                 unicode: 1F603,
                 name: Grinning Face with Big Eyes,
                 appleName: Grinning Face with Big Eyes,
                 alsoKnownAs: [Grinning Face, Happy Face, Happy, Smiley Face]
                 group: Smileys & Emotion,
                 subgroup: face-smiling,
                 version: 6.0,
                 status: fully-qualified
                 shortcodes: [...]
                )
               ...
               ] */

Emojis.all.names

Emojis.all.names // [Grinning Face, Grinning Face with Big Eyes, ...]
                .first // Grinning Face
                .second // Grinning Face with Big Eyes
                .third // Grinning Face with Smiling Eyes
                .fourth // Beaming Face with Smiling Eyes
                .fifth // Grinning Squinting Face
                .sixth // Grinning Face with Sweat
                .penultimate // Flag: Scotland
                .last // Flag: Wales

Emojis.all.appleNames

Emojis.all.appleNames // [Grinning Face, Grinning Face with Big Eyes, ...]
                     .first // Grinning Face
                     .second // Grinning Face with Big Eyes
                     .third // Grinning Face with Smiling Eyes
                     .fourth // Beaming Face with Smiling Eyes
                     .fifth // Grinning Face with Squinting Eyes
                     .sixth // Grinning Face with Sweat
                     .penultimate // Flag of Scotland
                     .last // Flag of Wales

Emojis.all.alsoKnownAs

Emojis.all.alsoKnownAs // [Happy Face, Smiley Face, Grinning Face, ...]
                      .first // Happy Face
                      .second // Smiley Face
                      .third // Grinning Face
                      .fourth // Happy Face
                      .fifth // Happy
                      .sixth // Smiley Face
                      .penultimate // Welsh Flag
                      .last // Y Ddraig Goch

Emojis.all.shortcodes

// Default (emoji name in snake_case)
Emojis.all.shortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
                     .first // :grinning_face:
                     .second // :grinning_face_with_big_eyes:
                     .third // :grinning_face_with_smiling_eyes:
                     .fourth // :beaming_face_with_smiling_eyes:
                     .fifth // :grinning_squinting_face:
                     .sixth // :grinning_face_with_sweat:
                     .penultimate // :flag_scotland:
                     .last // :flag_wales:

Emojis.all.cldrShortcodes

// CLDR
Emojis.all.cldrShortcodes // [:grinning_face:, :grinning_face_with_big_eyes:, ...]
                         .first // :grinning_face:
                         .second // :grinning_face_with_big_eyes:
                         .third // :grinning_face_with_smiling_eyes:
                         .fourth // :beaming_face_with_smiling_eyes:
                         .fifth // :grinning_squinting_face:
                         .sixth // :grinning_face_with_sweat:
                         .penultimate // :flag_scotland:
                         .last // :flag_wales:

Emojis.all.discordShortcodes

// Discord
Emojis.all.discordShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                            .first // :grinning:
                            .second // :smiley:
                            .third // :smile:
                            .fourth // :grin:
                            .fifth // :laughing:
                            .sixth // :sweat_smile:
                            .penultimate // :scotland:
                            .last // :wales:

Emojis.all.githubShortcodes

// Github (no skin-tone shortcodes)
Emojis.all.githubShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                           .first // :grinning:
                           .second // :smiley:
                           .third // :smile:
                           .fourth // :grin:
                           .fifth // :laughing:
                           .sixth // :sweat_smile:
                           .penultimate // :scotland:
                           .last // :wales:

Emojis.all.slackShortcodes

// Slack
Emojis.all.slackShortcodes // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]
                          .first // :grinning:
                          .second // :smiley:
                          .third // :smile:
                          .fourth // :grin:
                          .fifth // :laughing:
                          .sixth // :sweat_smile:
                          .penultimate // :flag-scotland:
                          .last // :flag-wales:

Emojis.all.unicodes

Emojis.all.unicodes // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]
                   .first // 1F600
                   .second // 1F603
                   .third // 1F604
                   .fourth // 1F601
                   .fifth // 1F606
                   .sixth // 1F605
                   .penultimate // 1F3F4 E0067 E0062 E0073 E0063 E0074 E007F
                   .last // 1F3F4 E0067 E0062 E0077 E006C E0073 E007F

Emojis.all.values

Emojis.all.values // [πŸ˜€, πŸ˜ƒ, πŸ˜„, 😁, πŸ˜†, πŸ˜…, 🀣, πŸ˜‚, πŸ™‚, πŸ™ƒ, 🫠, πŸ˜‰, 😊, πŸ˜‡, πŸ₯°, 😍, ...]
                 .first // πŸ˜€
                 .second // πŸ˜ƒ
                 .third // πŸ˜„
                 .fourth // 😁
                 .fifth // πŸ˜†
                 .sixth // πŸ˜…
                 .penultimate // 🏴󠁧󠁒󠁳󠁣󠁴󠁿
                 .last // 🏴󠁧󠁒󠁷󠁬󠁳󠁿

Emojis.getOne()

// By value
Emojis.getOne('πŸ˜€'); // or

// By unicode
Emojis.getOne('1F600'); // or

// By name or apple name (ignore-case)
Emojis.getOne('Grinning Face'); // or
Emojis.getOne('grinning face'); // or

// By also known as (ignore-case)
Emojis.getOne('Happy Face'); // or
Emojis.getOne('happy face'); // or
Emojis.getOne('Smiley Face'); // or
Emojis.getOne('smiley face'); // or

// By shortcode (ignore-colons)
Emojis.getOne(':grinning:'); // or
Emojis.getOne('grinning'); // or
Emojis.getOne('grinning_face'); /* [Emoji(
                                       value: πŸ˜€,
                                       unicode: 1F600,
                                       name: Grinning Face,
                                       appleName: Grinning Face,
                                       alsoKnownAs: [Happy Face, Smiley Face],
                                       group: Smileys & Emotion,
                                       subgroup: face-smiling,
                                       version: 8.0,
                                       status: fully-qualified,
                                       shortcodes: [
                                              Shortcode(
                                              platform: Default,
                                              values: [grinning_face]
                                            ),
                                              Shortcode(
                                              platform: CLDR,
                                              values: [grinning_face]
                                            ),
                                              Shortcode(
                                              platform: Discord,
                                              values: [grinning]
                                            ),
                                              Shortcode(
                                              platform: Github,
                                              values: [grinning]
                                            ),
                                              Shortcode(
                                              platform: Slack,
                                              values: [grinning]
                                            )]
                                     )] */

Emojis.getOneOrNull()

Equivalent of getOne() with null safety:

Emojis.getOneOrNull('πŸ˜€')?.name; // Grinning face
Emojis.getOneOrNull('some unknown value')?.name; // null

Emojis.byColor()

Emojis.byColor(Color.blue); // [Emoji(value: 😰, ...), Emoji(value: πŸ’™, ...), ...]
Emojis.byColor(Color.black); // [Emoji(value: πŸ–€, ...), Emoji(value: πŸˆβ€β¬›, ...), ...]

//or use convenient getters:
Emojis.blue; // [Emoji(value: 😰, ...), Emoji(value: πŸ’™, ...), ...]
Emojis.black; // [Emoji(value: πŸ–€, ...), Emoji(value: πŸˆβ€β¬›, ...), ...]

Emojis.byHairStyle()

Emojis.byHairStyle(HairStyle.white); // [Emoji(value: πŸ‘¨β€πŸ¦³, ...), Emoji(value: πŸ‘¨πŸ»β€πŸ¦³, ...), ...]
Emojis.byHairStyle(HairStyle.red); // [Emoji(value: πŸ‘¨β€πŸ¦°, ...), Emoji(value: πŸ‘¨πŸ»β€πŸ¦°, ...), ...]

//or use convenient getters:
Emojis.whiteHairStyle; // [Emoji(value: πŸ‘¨β€πŸ¦³, ...), Emoji(value: πŸ‘¨πŸ»β€πŸ¦³, ...), ...]
Emojis.redHairStyle; // [Emoji(value: πŸ‘¨β€πŸ¦°, ...), Emoji(value: πŸ‘¨πŸ»β€πŸ¦°, ...), ...]

Emojis.bySkinTone()

Emojis.bySkinTone(SkinTone.light); // [Emoji(value: πŸ‘‹πŸ», ...), Emoji(value: 🀚🏻, ...), ...]
Emojis.bySkinTone(SkinTone.dark); // [Emoji(value: πŸ‘‹πŸΏ, ...), Emoji(value: 🀚🏿, ...), ...]

//or use convenient getters:
Emojis.lightSkinTone; // [Emoji(value: πŸ‘‹πŸ», ...), Emoji(value: 🀚🏻, ...), ...]
Emojis.darkSkinTone; // [Emoji(value: πŸ‘‹πŸΏ, ...), Emoji(value: 🀚🏿, ...), ...]

Emojis.byGroup()

Emojis.byGroup(Group.smileysAndEmotion); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]
Emojis.byGroup(Group.foodAndDrink); // [Emoji(value: πŸ‡, ...), Emoji(value: 🍈, ...), ...]

//or use convenient getters:
Emojis.smileysAndEmotion; // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]
Emojis.foodAndDrink; // [Emoji(value: πŸ‡, ...), Emoji(value: 🍈, ...), ...]

Emojis.bySubgroup()

Emojis.bySubgroup(Subgroup.faceSmiling); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]
Emojis.bySubgroup(Subgroup.animalBird); // [Emoji(value: πŸ¦ƒ, ...), Emoji(value: πŸ”, ...), ...]

//or use convenient getters:
Emojis.faceSmiling; // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]
Emojis.animalBird; // [Emoji(value: πŸ¦ƒ, ...), Emoji(value: πŸ”, ...), ...]

Emojis.byVersion()

Emojis.byVersion(Version.v6_0); // [Emoji(value: πŸ˜ƒ, ...), Emoji(value: πŸ˜„, ...), ...]
Emojis.byVersion(Version.v15_0); // [Emoji(value: 🫨, ...), Emoji(value: 🩷, ...), ...]

//or use convenient getters:
Emojis.v6_0; // [Emoji(value: πŸ˜ƒ, ...), Emoji(value: πŸ˜„, ...), ...]
Emojis.v15_0; // [Emoji(value: 🫨, ...), Emoji(value: 🩷, ...), ...]

Emojis.byStatus()

Emojis.byStatus(Status.fullyQualified); // [Emoji(value: πŸ˜ƒ, ...), Emoji(value: πŸ˜„, ...), ...]

//or use convenient getters:
Emojis.fullyQualified; // [Emoji(value: πŸ˜ƒ, ...), Emoji(value: πŸ˜„, ...), ...]

Emojis.colors

Emojis.colors // [Color.red, Color.pink, Color.orange, Color.yellow, ...]
             .first // Color.red
             .second // Color.pink
             .third // Color.orange
             .fourth // Color.yellow
             .fifth // Color.green
             .sixth // Color.blue
             .penultimate // Color.grey
             .last // Color.white
             .values // [red, pink, orange, yellow, green, blue, light blue, ...]
                    .first // red
                    .second // pink
                    .third // orange
                    .fourth // yellow
                    .fifth // green
                    .sixth // blue
                    .penultimate // grey
                    .last // white

Emojis.hairStyles

Emojis.hairStyles // [HairStyle.blond, HairStyle.red, HairStyle.curly, ...]
                 .first // HairStyle.blond
                 .second // HairStyle.red
                 .third // HairStyle.curly
                 .fourth // HairStyle.white
                 .fifth // HairStyle.bald
                 .sixthOrNull // null
                 .penultimate // HairStyle.white
                 .last // HairStyle.bald
                 .values // [1F471, 1F9B0, 1F9B1, 1F9B3, 1F9B2]
                        .first // 1F471
                        .second // 1F9B0
                        .third // 1F9B1
                        .fourth // 1F9B3
                        .fifth // 1F9B2
                        .sixthOrNull // null
                        .penultimate // 1F9B3
                        .last // 1F9B2

Emojis.skinTones

Emojis.skinTones // [SkinTone.light, SkinTone.mediumLight, ...]
                .first // SkinTone.blond
                .second // SkinTone.mediumLight
                .third // SkinTone.medium
                .fourth // SkinTone.mediumDark
                .fifth // SkinTone.dark
                .sixthOrNull // null
                .penultimate // SkinTone.mediumDark
                .last // SkinTone.dark
                .values // [1F3FB, 1F3FC, 1F3FD, 1F3FE, 1F3FF]
                       .first // 1F3FB
                       .second // 1F3FC
                       .third // 1F3FD
                       .fourth // 1F3FE
                       .fifth // 1F3FF
                       .sixthOrNull // null
                       .penultimate // 1F3FE
                       .last // 1F3FF

Emojis.groups

Emojis.groups // [Group.smileysAndEmotion, Group.peopleAndBody, Group.component, ...]
             .first // Group.smileysAndEmotion
             .second // Group.peopleAndBody
             .third // Group.component
             .fourth // Group.animalsAndNature
             .fifth // Group.foodAndDrink
             .sixth // Group.travelAndPlaces
             .penultimate // Group.symbols
             .last // Group.flags
             .values // [Smileys & Emotion, People & Body, Component, Animals & Nature, ...]
                    .first // Smileys & Emotion
                    .second // People & Body
                    .third // Component
                    .fourth // Animals & Nature
                    .fifth // Food & Drink
                    .sixth // Travel & Places
                    .penultimate // Symbols
                    .last // Flags

Emojis.subgroups

Emojis.subgroups // [Subgroup.faceSmiling, Subgroup.faceAffection, Subgroup.faceTongue, ...]
                .first // Subgroup.faceSmiling
                .second // Subgroup.faceAffection
                .third // Subgroup.faceTongue
                .fourth // Subgroup.faceHand
                .fifth // Subgroup.faceNeutralSkeptical
                .sixth // Subgroup.faceSleepy
                .penultimate // Subgroup.countryFlag
                .last // Subgroup.subdivisionFlag
                .values // [face-smiling, face-affection, face-tongue, face-hand, ...]
                       .first // face-smiling
                       .second // face-affection
                       .third // face-tongue
                       .fourth // face-hand
                       .fifth // face-neutral-skeptical
                       .sixth // face-sleepy
                       .penultimate // country-flag
                       .last // subdivision-flag

Emojis.groupsWithSubgroups

Emojis.groupsWithSubgroups; // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}
Emojis.groupsWithSubgroupsValues; // {Smileys & Emotion: [face-smiling, ...], ...}

Emojis.shortcodePlatforms

Emojis.shortcodePlatforms // [Default, CLDR, Discord, Github, Slack]
                         .first // Default
                         .second // CLDR
                         .third // Discord
                         .fourth // Github
                         .fifth // Slack
                         .sixthOrNull // null
                         .penultimate // Github
                         .last // Slack

Emojis.statuses

Emojis.statuses // [Status.fullyQualified, Status.minimallyQualified, ...]
               .first // Status.fullyQualified
               .second // Status.minimallyQualified
               .third // Status.unqualified
               .fourth // Status.component
               .fifthOrNull // null
               .sixthOrNull // null
               .penultimate // Status.unqualified
               .last // Status.component
               .values // [fully-qualified, minimally-qualified, unqualified, ...]
                      .first // fully-qualified
                      .second // minimally-qualified
                      .third // unqualified
                      .fourth // component
                      .fifthOrNull // null
                      .sixthOrNull // null
                      .penultimate // unqualified
                      .last // component

Emojis.versions

Emojis.versions // [Version.v6_0, Version.v7_0, Version.v8_0, Version.v9_0, ...]
               .first // Version.v6_0
               .second // Version.v7_0
               .third // Version.v8_0
               .fourth // Version.v9_0
               .fifth // Version.v10_0
               .sixth // Version.v11_0
               .penultimate // Version.v15_1
               .last // Version.v16_0
               .values // [6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, ...]
                      .first // 6.0
                      .second // 7.0
                      .third // 8.0
                      .fourth // 9.0
                      .fifth // 10.0
                      .sixth // 11.0
                      .penultimate // 15.1
                      .last // 16.0

Emoji class

Emoji class equipped with numerous properties and getters for your convenience:

Emoji('🦊')
           .name // Fox
           .appleName // Fox Face
           .unicode // 1F98A
           .shortcode // :fox:
           .discordShortcode // :fox:
           .discordShortcodes // [:fox:, :fox_face:]
                             .first // :fox:
                             .second // :fox_face:
           .version // Version.v9_0
           .value // 9.0
           .isAnimal // true
           .isFlag // false
           .isFlower // false
           .isFruit // false
           .isGeometric // false
           .isMan // false
           .isWoman // false
           .isVegetable // false
           .isPerson // false
           .isMultiPerson // false
           .isSymbol // false
           .isV9_0 // true
           .hasBeard // false
           .hasFace // true
           .hasHairStyle // false
           .hasSkinTone // false
           .hasColor // false
           .color // null
           .skinTone // null
           .hairStyle // null

Emoji.name

Emoji('πŸ˜€').name; // Grinning Face
Emoji('🦊').name; // Fox

Emoji.appleName

Emoji('πŸ˜€').appleName; // Grinning Face
Emoji('🦊').appleName; // Fox Face

Emoji.alsoKnownAs

Emoji('πŸ˜€').alsoKnownAs; // [Happy Face, Smiley Face]
Emoji('🦊').alsoKnownAs; // [Fox]

Emoji.color

Emoji('πŸ”΄').color; // Color.red
Emoji('πŸ˜€').color; // null

Emoji.shortcode

Emoji('πŸ˜€').shortcode; // :grinning_face:
Emoji('🦊').shortcode; // :fox:

Emoji.cldrShortcode

Emoji('πŸ˜€').cldrShortcode; // :grinning_face:
Emoji('🦊').cldrShortcode; // :fox:

Emoji.discordShortcode

Emoji('πŸ˜€').discordShortcode; // :grinning:
Emoji('🦊').discordShortcode; // :fox:

Emoji.githubShortcode

Emoji('πŸ˜€').githubShortcode; // :grinning:
Emoji('🦊').githubShortcode; // :fox_face:

Emoji.slackShortcode

Emoji('πŸ˜€').slackShortcode; // :grinning:
Emoji('🦊').slackShortcode; // :fox_face:

Emoji.unicode

Emoji('πŸ˜€').unicode; // 1F600
Emoji('🦊').unicode; // 1F98A

Emoji.version

Emoji('πŸ˜€').version; // Version.v8_0
Emoji('🦊').version; // Version.v9_0

Emoji.isAnimal

Emoji('🦊').isAnimal; // true
Emoji('πŸ˜€').isAnimal; // false

Emoji.isFlag

Emoji('🏁').isFlag; // true
Emoji('πŸ˜€').isFlag; // false

Emoji.isFlower

Emoji('πŸ’').isFlower; // true
Emoji('πŸ˜€').isFlower; // false

Emoji.isFruit

Emoji('πŸ‡').isFruit; // true
Emoji('πŸ˜€').isFruit; // false

Emoji.isVegetable

Emoji('πŸ†').isVegetable; // true
Emoji('πŸ˜€').isVegetable; // false

Emoji.isGeometric

Emoji('πŸ”΄').isGeometric; // true
Emoji('πŸ˜€').isGeometric; // false

Emoji.isMan

Emoji('πŸ‘¨').isMan; // true
Emoji('πŸ‘©').isMan; // false
Emoji('πŸ”΄').isMan; // false

Emoji.isWoman

Emoji('πŸ‘©').isWoman; // true
Emoji('πŸ‘¨').isWoman; // false
Emoji('πŸ”΄').isWoman; // false

Emoji.isPerson

Emoji('πŸ™').isPerson; // true
Emoji('πŸ”΄').isPerson; // false

Emoji.isMultiPerson

Emoji('πŸ‘ͺ').isMultiPerson; // true
Emoji('πŸ‘¨').isMultiPerson; // false
Emoji('πŸ”΄').isMultiPerson; // false

Emoji.isSymbol

Emoji('🏧').isSymbol; // true
Emoji('πŸ˜€').isSymbol; // false

Emoji.hasBeard

Emoji('πŸ§”').hasBeard; // true
Emoji('πŸ§‘').hasBeard; // false
Emoji('πŸ˜€').hasBeard; // false

Emoji.hasFace

Emoji('πŸ˜€').hasFace; // true
Emoji('🌚').hasFace; // true
Emoji('πŸ”΄').hasFace; // false

Emoji.hasColor

Emoji('πŸ”΄').hasColor; // true
Emoji('🟩').hasColor; // true
Emoji('πŸ˜€').hasColor; // false

Emoji.hasHairStyle

Emoji('πŸ‘¨β€πŸ¦°').hasHairStyle; // true
Emoji('πŸ‘¨').hasHairStyle; // false
Emoji('πŸ”΄').hasHairStyle; // false

Emoji.hairStyle

Emoji('πŸ‘¨β€πŸ¦³').hairStyle; // HairStyle.white
Emoji('πŸ‘¨').hairStyle; // null
Emoji('πŸ”΄').hasHairStyle; // null

Emoji.hasSkinTone

Emoji('πŸ‘©πŸ»').hasSkinTone; // true
Emoji('πŸ‘©').hasSkinTone; // false
Emoji('πŸ”΄').hasSkinTone; // false

Emoji.skinTone

Emoji('πŸ‘©πŸ»').skinTone; // SkinTone.light
Emoji('πŸ‘©').skinTone; // null
Emoji('πŸ”΄').skinTone; // null

emojis extension

One emojis extension that you can use to interact with emojis within any text:

'textπŸ˜€textπŸ€¦πŸΎβ€β™€οΈtext'.emojis 
                         .contains // true
                         .only // false
                         .onlyOne // false
                         .count // 2
                         .split // [text, text, text]
                         .remove // texttexttext
                         .removeFirst // texttextπŸ€¦πŸΎβ€β™€οΈtext
                         .removeSecond // textπŸ˜€texttext
                         .removePenultimate // texttextπŸ€¦πŸΎβ€β™€οΈtext
                         .removeLast // textπŸ˜€texttext
                         .extract // [πŸ˜€, πŸ€¦πŸΎβ€β™€οΈ]
                                 .first // πŸ˜€
                                 .second // πŸ€¦πŸΎβ€β™€οΈ
                                 .thirdOrNull // null
                                 .penultimate // πŸ˜€
                                 .last // πŸ€¦πŸΎβ€β™€οΈ
                         .any((e) => e.value == 'πŸ˜€') // true
                         // or
                         .some((e) => e.value == 'πŸ˜€') // true
                         .anyOf(['πŸ˜€', 'πŸ‘πŸ»']) // true
                         // or
                         .someOf(['πŸ˜€', 'πŸ‘πŸ»']) // true
                         .every((e) => e.value == 'πŸ˜€') // false
                         .containsOf(['πŸ˜€', 'πŸ‘πŸ»']) // false
                         .containsOne((e) => e.value == 'πŸ˜€') // true
                         .none((e) => e.value == 'πŸ‘πŸ»') // true
                         .noneOf(['πŸ˜€', 'πŸ‘πŸ»']) // false
                         .countWhere((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ') // 1
                         .removeAt(0) // texttextπŸ€¦πŸΎβ€β™€οΈtext
                         .removeFromEnd(0) // textπŸ˜€texttext
                         .removeEveryOf(['πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ']) // texttexttext
                         .removeWhere((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ') // textπŸ˜€texttext
                         .replace('-') // text-text-text
                         .replaceWith({'πŸ˜€':'ABC' , 'πŸ€¦πŸΎβ€β™€οΈ':'123'}) // textABCtext123text
                         .replaceWhere((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ' ? '123' : null) // textπŸ˜€text123text
                         .splitWhere((e) => e.value == 'πŸ˜€'); // [text, textπŸ€¦πŸΎβ€β™€οΈtext]
                         .splitMapJoin(
                                       onMatch: (_) => '_emoji_',
                                       onNonMatch: (s) => s.toUpperCase(),
                                      ) // TEXT_emoji_TEXT_emoji_TEXT
                         .forEach((e) => print(e.value)) // πŸ˜€ πŸ€¦πŸΎβ€β™€οΈ
                         .map((e) => e.value) // [πŸ˜€, πŸ€¦πŸΎβ€β™€οΈ]
                         .where((e) => e.value == 'πŸ˜€') // Emoji(value: πŸ˜€, ...)
                         .take(1) // [Emoji(value: πŸ˜€, ...)]
                         .takeLast(1) // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]
                         .skip(1) // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]
                         .skipLast(1) // [Emoji(value: πŸ˜€, ...)]
                         .join((e) => e.value, separator: '.', prefix: 'prefix', suffix: 'suffix') // prefixπŸ˜€.πŸ€¦πŸΎβ€β™€οΈsuffix
                         .get // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]
                             .values // [πŸ˜€, πŸ€¦πŸΎβ€β™€οΈ]
                             .unicodes // [1F600, 1F926 1F3FE 200D 2640 FE0F]
                                      .first // 1F600
                                      .second // 1F926 1F3FE 200D 2640 FE0F
                             .names // [Grinning Face, Woman Facepalming: Medium-Dark Skin Tone]
                             .appleNames // [Grinning Face]
                             .alsoKnownAs // [Happy Face, Smiley Face]
                             .groups // [Group.smileysAndEmotion, Group.peopleAndBody]
                                    .values // [Smileys & Emotion, People & Body]
                             .subgroups // [Subgroup.faceSmiling, Subgroup.personGesture]
                                       .values // [face-smiling, person-gesture]
                             .shortcodes // [:grinning_face:, :woman_facepalming_medium_dark_skin_tone:]
                             .cldrShortcodes // [:grinning_face:, :woman_facepalming_tone4:]
                             .discordShortcodes // [:grinning:, :woman_facepalming_tone4:]
                             .githubShortcodes // [:grinning:]
                             .slackShortcodes // [:grinning:, :woman-facepalming::skin-tone-5:]
                         .first // Emoji(value: πŸ˜€, ...)
                             .value // πŸ˜€
                             .unicode // 1F600
                             .name // Grinning Face
                             .appleName // Grinning Face
                             .alsoKnownAs // [Happy Face, Smiley Face]
                             .group // Group.smileysAndEmotion
                                   .value // Smileys & Emotion
                             .subgroup // Subgroup.faceSmiling
                                      .value // face-smiling
                             .shortcode // :grinning_face:
                             .cldrShortcode // :grinning_face:
                             .discordShortcode // :grinning:
                             .githubShortcode // :grinning:
                             .slackShortcode // :grinning:

emojis.contains

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.contains; // true
'text'.emojis.contains; // false

emojis.count

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.count; // 2

emojis.extract

'πŸ”ΊοΈte🟑xt🟩teπŸ”·xt'.emojis.extract // [πŸ”Ί, 🟑, 🟩, πŸ”·]
                                  .first // πŸ”Ί
                                  .second // 🟑
                                  .third // 🟩
                                  .fourth // πŸ”·
                                  .fifthOrNull // null
                                  .sixthOrNull // null
                                  .penultimate // 🟩
                                  .last // πŸ”·

emojis.first

'πŸ”΄teπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.first // Emoji(value: πŸ”΄, ...)
                                        .value // πŸ”΄
                                        .name // Red Circle
                                        ...

emojis.firstOrNull

'πŸ”΄teπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.firstOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.firstOrNull; // null

emojis.second

'πŸ‘οΈteπŸ”΄xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.second // Emoji(value: πŸ”΄, ...)
                                         .value // πŸ”΄
                                         .name // Red Circle
                                         ...

emojis.secondOrNull

'πŸ‘οΈteπŸ”΄xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.secondOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.secondOrNull; // null

emojis.third

'πŸ‘οΈteπŸ”΄xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.third // Emoji(value: πŸ”΄, ...)
                                        .value // πŸ”΄
                                        .name // Red Circle
                                        ...

emojis.thirdOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ”΄teπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.thirdOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.thirdOrNull; // null

emojis.fourth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ”΄xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.fourth // Emoji(value: πŸ”΄, ...)
                                         .value // πŸ”΄
                                         .name // Red Circle
                                         ...

emojis.fourthOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ”΄xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.fourthOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.fourthOrNull; // null

emojis.fifth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.fifth // Emoji(value: πŸ”΄, ...)
                                        .value // πŸ”΄
                                        .name // Red Circle
                                        ...

emojis.fifthOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.fifthOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.fifthOrNull; // null

emojis.sixth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.sixth // Emoji(value: πŸ”΄, ...)
                                        .value // πŸ”΄
                                        .name // Red Circle
                                        ...

emojis.sixthOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.sixthOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.sixthOrNull; // null

emojis.penultimate

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.penultimate // Emoji(value: πŸ”΄, ...)
                                              .value // πŸ”΄
                                              .name // Red Circle
                                              ...

emojis.penultimateOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.penultimateOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.penultimateOrNull; // null

emojis.last

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.last // Emoji(value: πŸ”΄, ...)
                                       .value // πŸ”΄
                                       .name // Red Circle
                                       ...

emojis.lastOrNull

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.lastOrNull // Emoji(value: πŸ”΄, ...)

'text'.emojis.lastOrNull; // null

emojis.get

'πŸ˜€text'.emojis.get; /* [Emoji(
                          value: πŸ˜€,
                          unicode: 1F600,
                          name: Grinning Face,
                          appleName: Grinning Face,
                          alsoKnownAs: [Happy Face, Smiley Face],
                          group: Smileys & Emotion,
                          subgroup: face-smiling,
                          version: 8.0,
                          status: fully-qualified,
                          shortcodes: [
                                Shortcode(
                                platform: Default,
                                values: [grinning_face]
                              ),
                                Shortcode(
                                platform: CLDR,
                                values: [grinning_face]
                              ),
                                Shortcode(
                                platform: Discord,
                                values: [grinning]
                              ),
                                Shortcode(
                                platform: Github,
                                values: [grinning]
                              ),
                                Shortcode(
                                platform: Slack,
                                values: [grinning]
                              )]
                        )] */

emojis.get.alsoKnownAs

'πŸ˜€text'.emojis.get.alsoKnownAs // [Happy Face, Smiley Face]
                               .first // Happy Face
                               .penultimate // Happy Face
                               .second // Smiley Face
                               .last // Smiley Face

emojis.get.appleNames

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.appleNames // [Grinning Face]
                                .first // Grinning Face
                                .penultimate // Grinning Face
                                .secondOrNull // null
                                .lastOrNull // null

emojis.get.names

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.names // [Grinning Face, Woman Facepalming: Medium-Dark Skin Tone]
                           .first // Grinning Face
                           .penultimate // Grinning Face
                           .second // Woman Facepalming: Medium-Dark Skin Tone
                           .last // Woman Facepalming: Medium-Dark Skin Tone

emojis.get.groups

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.groups // [Group.smileysAndEmotion, Group.peopleAndBody]
                            .first // Group.smileysAndEmotion
                            .penultimate // Group.smileysAndEmotion
                            .second // Group.peopleAndBody
                            .last // Group.peopleAndBody
                            .values // [Smileys & Emotion, People & Body]
                                   .first // Smileys & Emotion
                                   .penultimate // Smileys & Emotion
                                   .second // People & Body
                                   .last // People & Body 

emojis.get.subgroups

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.subgroups // [Subgroup.faceSmiling, Subgroup.personGesture]
                               .first // Subgroup.faceSmiling
                               .penultimate // Subgroup.faceSmiling
                               .second // Subgroup.personGesture
                               .last // Subgroup.personGesture
                               .values // [face-smiling, person-gesture]
                                      .first // face-smiling
                                      .penultimate // face-smiling
                                      .second // person-gesture
                                      .last // person-gesture

emojis.get.shortcodes

// Default (emoji name in snake_case)
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.shortcodes; // [:grinning_face:, :woman_facepalming_medium_dark_skin_tone:]

emojis.get.cldrShortcodes

// CLDR
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.cldrShortcodes; // [:grinning_face:, :woman_facepalming_tone4:]

emojis.get.discordShortcodes

// Discord
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.discordShortcodes; // [:grinning:, :woman_facepalming_tone4:]

emojis.get.githubShortcodes

// Github (no skin-tone shortcodes)
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.githubShortcodes; // [:grinning:]

emojis.get.slackShortcodes

// Slack
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.slackShortcodes; // [:grinning:, :woman-facepalming::skin-tone-5:]

emojis.get.unicodes

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.get.unicodes // [1F600, 1F926 1F3FE 200D 2640 FE0F]
                              .first // 1F600
                              .penultimate // 1F600
                              .second // 1F926 1F3FE 200D 2640 FE0F
                              .last // 1F926 1F3FE 200D 2640 FE0F

emojis.only

'πŸ˜€'.emojis.only; // true
'πŸ˜€ πŸ˜€ πŸ˜€'.emojis.only; // true
'text πŸ˜€ πŸ˜€ πŸ˜€ text'.emojis.only; // false
'text'.emojis.only; // false

emojis.onlyOne

'πŸ˜€'.emojis.onlyOne; // true
'πŸ˜€ πŸ˜€ πŸ˜€'.emojis.onlyOne; // false
'text πŸ˜€ πŸ˜€ πŸ˜€ text'.emojis.onlyOne; // false
'text'.emojis.onlyOne; // false

emojis.remove

'πŸ˜€text πŸ€¦πŸΎβ€β™€οΈ'.emojis.remove; // text

emojis.removeFirst

'πŸ”΄teπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.removeFirst; // teπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt

emojis.removeSecond

'πŸ‘οΈteπŸ”΄xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.removeSecond; // πŸ‘οΈtextπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt

emojis.removeThird

'πŸ‘οΈteπŸ‘πŸ»xtπŸ”΄teπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.removeThird; // πŸ‘οΈteπŸ‘πŸ»xtteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt

emojis.removeFourth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ”΄xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.removeFourth; // πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌtextπŸ‘πŸΎteπŸ‘πŸΏxt

emojis.removeFifth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.removeFifth; // πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtteπŸ‘πŸΏxt

emojis.removeSixth

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.removeSixth; // πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎtext

emojis.removePenultimate

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ”΄teπŸ‘πŸΏxt'.emojis.removePenultimate; // πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtteπŸ‘πŸΏxt

emojis.removeLast

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ”΄xt'.emojis.removeLast; // πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎtext

emojis.split

'textπŸ˜€text'.emojis.split; // [text, text]

emojis.any()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.any((e) => e.value == 'πŸ˜€'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.any((e) => e.value == 'πŸ‘πŸ»'); // false

Same as: emojis.some()

emojis.anyOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.anyOf(['πŸ˜€']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.anyOf(['πŸ˜€', 'πŸ‘πŸ»']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.anyOf(['πŸ‘πŸ»']); // false

Same as: emojis.someOf()

emojis.containsOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOf(['πŸ˜€']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOf(['πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOf(['πŸ˜€', 'πŸ‘πŸ»']); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOf(['πŸ‘πŸ»']); // false

emojis.containsExactlyOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOf(['πŸ˜€']); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOf(['πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsExactlyOf(['πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOf(['πŸ‘πŸ»']); // false

emojis.containsOne()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsOne((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsOne((e) => e.value == 'πŸ‘πŸ»'); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsOne((e) => e.value == 'πŸ˜€'); // false

emojis.containsOneOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOneOf({'πŸ€¦πŸΎβ€β™€οΈ'}); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOneOf({'πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ'}); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsOneOf('πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ', 'πŸ‘πŸ»'}); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsOneOf({'πŸ˜€'}); // false

emojis.containsExactlyOne()

'πŸ˜€text'.emojis.containsExactlyOne((e) => e.value == 'πŸ˜€'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOne((e) => e.value == 'πŸ˜€'); // false
'text'.emojis.containsExactlyOne((e) => e.value == 'πŸ˜€'); // false

emojis.containsExactlyOneOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOneOf({'πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ'}); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.containsExactlyOneOf({'πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ'}); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOneOf({'πŸ˜€'}); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.containsExactlyOneOf({'πŸ˜€', 'πŸ‘πŸ»'}); // false

emojis.countWhere()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.countWhere((e) => e.value == 'πŸ˜€'); // 2

emojis.countWhereIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.countWhereIndexed((i, e) => i == 0 && e.value == 'πŸ˜€'); // 1

emojis.every()

'πŸ˜€textπŸ˜€'.emojis.every((e) => e.value == 'πŸ˜€'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.every((e) => e.value == 'πŸ˜€'); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.every((e) => e.value == 'πŸ‘πŸ»'); // false

emojis.firstWhere()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhere((e) => e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

emojis.firstWhereIndexed()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhereIndexed((i, e) => i > 0 && e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸ»β€β™€οΈ, ...)

emojis.firstWhereOrNull()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhereOrNull((e) => e.value == 'πŸ‘πŸ»'); // null

emojis.firstWhereIndexedOrNull()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhereIndexedOrNull((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.firstWhereIndexedOrNull((i, e) => i == 0 && e.value == 'πŸ˜€'); // null

emojis.fold()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.fold('start', (p, c) => p + c.value); // startπŸ˜€πŸ€¦πŸΎβ€β™€οΈ

emojis.foldIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.foldIndexed('start', (i, p ,c) => '$p${c.value}$i'); // startπŸ˜€0πŸ€¦πŸΎβ€β™€οΈ1

emojis.forEach()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.forEach((e) => print(e.value)); // πŸ˜€ πŸ€¦πŸΎβ€β™€οΈ

emojis.forEachIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.forEachIndexed(i,e) => print('$i:${e.value}')); // 0:πŸ˜€ 1:πŸ€¦πŸΎβ€β™€οΈ

emojis.forEachWhile()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.forEachWhile((e) {
                                          print(e.value);
                                          return e.value == 'πŸ˜€';
                                          }); // πŸ˜€ πŸ€¦πŸΎβ€β™€οΈ

emojis.forEachIndexedWhile()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.forEachIndexedWhile((i, e) {
                                                    print('$i:${e.value}');
                                                    return e.value == 'πŸ˜€';
                                                    }); // 0:πŸ˜€ 1:πŸ€¦πŸΎβ€β™€οΈ

emojis.join()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.join((e) => e.value, 
                              separator: '.', 
                              prefix: 'prefix', 
                              suffix: 'suffix'); // 'prefixπŸ˜€.πŸ€¦πŸΎβ€β™€οΈsuffix'

emojis.map()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.map((e) => 'Emoji: ${e.name}'); // [Emoji: Grinning Face, Emoji: Woman Facepalming: Medium-Dark Skin Tone]

emojis.mapIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.mapIndexed((i, e) => '$i: ${e.name}'); // [0: Grinning Face, 1: Woman Facepalming: Medium-Dark Skin Tone]

emojis.none()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.none((e) => e.value == 'πŸ‘πŸ»'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.none((e) => e.value == 'πŸ˜€'); // false

emojis.noneOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.noneOf(['πŸ‘πŸ»']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.noneOf(['πŸ‘πŸ»', 'πŸ€¦πŸΎβ€β™€οΈ']); // false
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.noneOf(['πŸ˜€', 'πŸ€¦πŸΎβ€β™€οΈ']); // false

emojis.removeAt()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeAt(0); // textπŸ€¦πŸΎβ€β™€οΈ
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeAt(10); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

emojis.removeFromEnd()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeFromEnd(0); // πŸ˜€text
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeFromEnd(10); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

emojis.removeEveryOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»textπŸ˜€'.emojis.removeEveryOf(['πŸ˜€', 'πŸ‘πŸ»']); // textπŸ€¦πŸΎβ€β™€οΈtexttext

emojis.removeWhere()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.removeWhere((e) => e.value == 'πŸ˜€'); // textπŸ€¦πŸΎβ€β™€οΈtext

emojis.removeWhereIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.removeWhereIndexed((i, e) => i == 0 && e.value == 'πŸ˜€'); // textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€

emojis.replace()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.replace('_'); // _️text_

emojis.replaceWith()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.replaceWith({'πŸ˜€':'ABC', 'πŸ€¦πŸΎβ€β™€οΈ':'123'}); // ABCtext123

emojis.replaceWhere()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.replaceWhere((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ' ? '123' : null); // πŸ˜€text123

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.replaceWhere((e) => {'πŸ˜€':'ABC', 'πŸ€¦πŸΎβ€β™€οΈ':'123'}[e.value]); // ABCtext123

emojis.replaceWhereIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.replaceWhereIndexed((i, e) => i == 1 ? '_123_' : null); // πŸ˜€text_123_textπŸ˜€

emojis.skip()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.skip(1); // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...), Emoji(value: πŸ‘πŸ», ...)]

emojis.skipLast()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.skipLast(1); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]

emojis.skipWhile()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.skipWhile((e) => e.value == 'πŸ˜€'); // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...), Emoji(value: πŸ‘πŸ», ...)]

emojis.some()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.some((e) => e.value == 'πŸ˜€'); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.some((e) => e.value == 'πŸ‘πŸ»'); // false

Same as: emojis.any()

emojis.someOf()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.someOf(['πŸ˜€']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.someOf(['πŸ˜€', 'πŸ‘πŸ»']); // true
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.someOf(['πŸ‘πŸ»']); // false

Same as: emojis.anyOf()

emojis.splitMapJoin()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.splitMapJoin(
onMatch: (_) => '_emoji_',
onNonMatch: (s) => s.toUpperCase(),
); // _emoji_TEXT_emoji_                                

emojis.splitWhere()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.splitWhere((e) => e.value == 'πŸ€¦πŸΎβ€β™€οΈ'); // [πŸ˜€text, textπŸ˜€]

emojis.splitWhereIndexed()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ˜€'.emojis.splitWhereIndexed((i, e) => i == 1 && e.value == 'πŸ€¦πŸΎβ€β™€οΈ'); // [πŸ˜€text, textπŸ˜€]

emojis.toShortcodes()

// Default (emoji name in snake_case)
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toShortcodes(); // :grinning_face:text:woman_facepalming_medium_dark_skin_tone:

// CLDR
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toCLDRShortcodes(); // :grinning_face:text:woman_facepalming_tone4:

// Discord
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toDiscordShortcodes(); // :grinning:text:woman_facepalming_tone4:

// Github (no skin-tone shortcodes)
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toGithubShortcodes(); // :grinning:textπŸ€¦πŸΎβ€β™€οΈ

// Slack
'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toSlackShortcodes(); // :grinning:text:woman-facepalming::skin-tone-5:

emojis.fromShortcodes()

// Default 
':grinning_face:text:woman_facepalming_medium_dark_skin_tone:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

// CLDR
':grinning_face:text:woman_facepalming_tone4:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

// Discord
':grinning:text:woman_facepalming_tone4:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

// Github (no skin-tone shortcodes)
':grinning:text:woman_facepalming:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦β€β™€

// Slack
':grinning:text:woman-facepalming::skin-tone-5:'.emojis.fromShortcodes(); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

emojis.lastWhere()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhere((e) => e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸ»β€β™€οΈ, ...)

emojis.lastWhereIndexed()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

emojis.lastWhereOrNull()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸ»β€β™€οΈ, ...)

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhereOrNull((e) => e.value == 'πŸ‘πŸ»'); // null

emojis.lastWhereIndexedOrNull()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhereIndexedOrNull((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.lastWhereIndexedOrNull((i, e) => i == 0 && e.value == 'πŸ˜€'); // null

emojis.take()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.take(2); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]

emojis.takeLast()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.takeLast(2); // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...), Emoji(value: πŸ‘πŸ», ...)]

emojis.takeWhile()

'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈtextπŸ‘πŸ»'.emojis.takeWhile((e) => e.value == 'πŸ˜€'); // [Emoji(value: πŸ˜€, ...)]

emojis.where()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.where((e) => e.name.contains('Woman')); // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...), Emoji(value: πŸ€¦πŸ»β€β™€οΈ, ...)]

emojis.whereIndexed()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.whereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)]

emojis.whereNot()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.whereNot((e) => e.name.contains('Woman')); // [Emoji(value: πŸ˜€, ...)]

emojis.whereNotIndexed()

'πŸ€¦πŸΎβ€β™€οΈtextπŸ˜€textπŸ€¦πŸ»β€β™€οΈ'.emojis.whereNotIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ€¦πŸ»β€β™€οΈ, ...)]
Emoji Overview App Example

Emoji overview app demo GIF
Emoji Chat App Example

Emoji chat app demo GIF

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published