Coder Social home page Coder Social logo

emoji_extension's Introduction

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

Pub Package Build Status Code Coverage MIT License Unicode 15.0


Quick overview of just a few possibilities:

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.extract; // [πŸ‘, πŸ‘πŸ», πŸ‘πŸΌ, πŸ‘πŸ½, πŸ‘πŸΎ, πŸ‘πŸΏ]


'textπŸ˜€ teπŸ˜€xt πŸ˜€text'.emojis.remove; // text text text


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


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

Usage

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

βœ… Emojis repository

βœ… Emojis extension

1️⃣ Emojis() repository

Full Emojis() repository with unicodes, names, groups, subgroups, shortcodes:

Emojis() // .get .groups .subgroups .groupsWithSubgroups .shortcodePlatforms   and many more...

Emojis().get

Emojis().get; /* [
                  Emoji(
                   value: πŸ˜€,
                   unicode: 1F600,
                   name: Grinning Face,
                   group: Smileys & Emotion,
                   subgroup: face-smiling,
                   shortcodes: [
                            Shortcode(
                            platform: Discord,
                            value: grinning
                          ),
                            Shortcode(
                            platform: Github,
                            value: grinning
                          ),                             
                            Shortcode(
                            platform: Slack,
                            value: grinning
                          ), 
                            Shortcode(
                            platform: Default,
                            value: grinning_face
                          ), 
                            Shortcode(
                            platform: CLDR,
                            value: grinning_face
                          )]
                  ), 
                  Emoji(
                   value: πŸ˜ƒ,
                   unicode: 1F603,
                   name: Grinning face with big eyes,
                   group: Smileys & Emotion,
                   subgroup: face-smiling,
                   shortcodes: [...]
                  )
                 ...
                 ] */

Emojis().get.values

Emojis().get.values; // [πŸ˜€, πŸ˜ƒ, πŸ˜„, 😁, πŸ˜†, πŸ˜…, 🀣, πŸ˜‚, πŸ™‚, πŸ™ƒ, 🫠, πŸ˜‰, 😊, πŸ˜‡, πŸ₯°, 😍, ...]

Emojis().get.unicodes

Emojis().get.unicodes; // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]

Emojis().get.names

Emojis().get.names; // [Grinning face, Grinning face with big eyes, ...]

Emojis().get.shortcodes

// Default (emoji name in snake_case)
Emojis().get.shortcodes; // [:grinning_face:, :grinning_face_with_big_eyes:, ...]

// CLDR
Emojis().get.cldrShortcodes; // [:grinning_face:, :grinning_face_with_big_eyes:, ...]

// Discord
Emojis().get.discordShortcodes; // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

// Github (no skin-tone shortcodes)
Emojis().get.githubShortcodes; // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

// Slack
Emojis().get.slackShortcodes; // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

Emojis().groups

Emojis().groups; // [Group.smileysAndEmotion, Group.peopleAndBody, Group.component, ...]
Emojis().groups.values; // [Smileys & Emotion, People & Body, Component, Animals & Nature, ...]

Emojis().subgroups

Emojis().subgroups; // [Subgroup.faceSmiling, Subgroup.faceAffection, Subgroup.faceTongue, ...]
Emojis().subgroups.values; // face-smiling, face-affection, face-tongue, face-hand, ...]

Emojis().groupsWithSubgroups

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

Emojis().shortcodePlatforms

Emojis().shortcodePlatforms; // [Default, CLDR, Discord, Github, Slack]

Emojis().getOne()

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

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

// By name (ignore-case)
Emojis().getOne('Grinning Face'); // or
Emojis().getOne('grinning 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,
                                         group: Smileys & Emotion,
                                         subgroup: face-smiling,
                                         shortcodes: [
                                           Shortcode(
                                           platform: Discord,
                                           value: grinning
                                         ),
                                           Shortcode(
                                           platform: Github,
                                           value: grinning
                                         ),  
                                           Shortcode(
                                           platform: Slack,
                                           value: grinning
                                         ), 
                                           Shortcode(
                                           platform: Default,
                                           value: grinning_face
                                         ), 
                                           Shortcode(
                                           platform: CLDR,
                                           value: grinning_face
                                         )]
                                       )] */

Emojis().getOneOrNull()

Equivalent of getOne() with null safety:

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

Emojis().byGroup()

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

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

Emojis().bySubgroup()

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

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

2️⃣ emojis extension

Simple emojis extension that you can use to manipulate emojis on any text:

'πŸ˜€ text with emojis πŸ˜€'.emojis // .any .only .count .remove .get .extract   and many more...

emojis.any

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

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.count

'text πŸ˜€ πŸ˜€ πŸ˜€ text'.emojis.count; // 3

emojis.remove

'textπŸ˜€ teπŸ˜€xt πŸ˜€text'.emojis.remove; // text text text

emojis.split

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

emojis.extract

'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.extract; // [πŸ‘, πŸ‘πŸ», πŸ‘πŸΌ, πŸ‘πŸ½, πŸ‘πŸΎ, πŸ‘πŸΏ]

emojis.get

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

emojis.get.unicodes

'πŸ˜€text'.emojis.get.unicodes; // [1F600]

emojis.get.names

'πŸ˜€text'.emojis.get.names; // [Grinning Face]

emojis.get.shortcodes

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

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

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

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

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

emojis.get.groups

'πŸ˜€text'.emojis.get.groups; // [Group.smileysAndEmotion]
'πŸ˜€text'.emojis.get.groups.values; // [Smileys & Emotion]

emojis.get.subgroups

'πŸ˜€text'.emojis.get.subgroups; // [Subgroup.faceSmiling]
'πŸ˜€text'.emojis.get.subgroups.values; // [face-smiling]

emojis.hasAny()

'πŸ‘οΈtext'.emojis.hasAny(['πŸ‘']); // true
'πŸ˜€text'.emojis.hasAny(['πŸ‘', 'πŸ˜€']); // true
'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.hasAny(['πŸ˜€']); // false

emojis.hasEach()

'πŸ‘οΈtext'.emojis.hasEach(['πŸ‘']); // true
'πŸ˜€textπŸ‘'.emojis.hasEach(['πŸ‘', 'πŸ˜€']); // true
'πŸ˜€text'.emojis.hasEach(['πŸ‘', 'πŸ˜€']); // false

emojis.splitMapJoin()

'textπŸ˜€text'.emojis.splitMapJoin( // TEXT_emoji_TEXT
onMatch: (_) => '_emoji_',
onNonMatch: (s) => s.toUpperCase(),
);                                

emojis.replace()

'πŸ˜€textπŸ‘'.emojis.replace('_'); // _️text_

emojis.replaceEach()

'πŸ˜€textπŸ‘πŸ»textπŸ˜€'.emojis.replaceEach({'πŸ˜€': 'ABC', 'πŸ‘πŸ»': '123'}); // ABCtext123textABC

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 
'text:woman_facepalming_medium_dark_skin_tone:text'.emojis.fromShortcodes(); // textπŸ€¦πŸΎβ€β™€οΈtext

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

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

emoji_extension's People

Contributors

nikoro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.