emoji_extension 1.2.0 copy "emoji_extension: ^1.2.0" to clipboard
emoji_extension: ^1.2.0 copied to clipboard

Emojis for Flutter & Dart (Unicode 16.0) + one, yet powerful emojis String extension

example/lib/main.dart

import 'package:emoji_extension/emoji_extension.dart';

void main() {
  final shortcode = Emoji('❀️').shortcode;
  // print(shortcode); // :red_heart:

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

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

  final isV13_0 = Emoji('πŸ₯·').isV13_0;
  // print(isV13_0); // true

  final isAnimal = Emoji('🦊').isAnimal;
  // print(isAnimal); // true

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

  final hasColor = Emoji('🩡').hasColor;
  // print(hasColor); // true

  final regex = Emojis.regex;
  // print(regex); // RegExp: pattern=[#*\d]\uFE0F?\u20E3|[\xA9\...

  final emojis = Emojis.all;
  // print(emojis); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]

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

  final unicodes = emojis.unicodes;
  // print(unicodes); // [1F600, 1F603, 1F604, 1F601, 1F606, 1F605, 1F923, 1F602, 1F642, ...]

  final names = emojis.names;
  // print(names); // [Grinning Face, Grinning Face with Big Eyes, ...]

  final appleNames = emojis.appleNames;
  // print(appleNames); // [Grinning Face, Grinning Face with Big Eyes, ...]

  final alsoKnownAs = emojis.alsoKnownAs;
  // print(alsoKnownAs); // [Happy Face, Smiley Face, Grinning Face, ...]

  final shortcodes = emojis.shortcodes;
  // print(shortcodes); // [:grinning_face:, :grinning_face_with_big_eyes:, ...]

  final cldrShortcodes = emojis.cldrShortcodes;
  // print(cldrShortcodes); // [:grinning_face:, :grinning_face_with_big_eyes:, ...]

  final discordShortcodes = emojis.discordShortcodes;
  // print(discordShortcodes); // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

  final githubShortcodes = emojis.githubShortcodes;
  // print(githubShortcodes); // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

  final slackShortcodes = emojis.slackShortcodes;
  // print(slackShortcodes); // [:grinning:, :smiley:, :smile:, :grin:, :laughing:, ...]

  final groups = emojis.groups;
  // print(groups); // [Group.smileysAndEmotion, Group.smileysAndEmotion, ...]
  // print(groups.values); // [Smileys & Emotion, Smileys & Emotion, ...]

  final subgroups = emojis.subgroups;
  // print(subgroups); // [Subgroup.faceSmiling, Subgroup.faceSmiling, ...]
  // print(subgroups.values); // [face-smiling, face-smiling, ...]

  final versions = emojis.versions;
  // print(versions); // [Version.v8_0, Version.v6_0, Version.v6_0, ...]
  // print(versions.values); // [8.0, 6.0, 6.0, 6.0, 6.0, 6.0, 9.0, ...]

  final statuses = emojis.statuses;
  // print(statuses); // [Status.fullyQualified, Status.fullyQualified, ...]
  // print(statuses.values); // [fully-qualified, fully-qualified, ...]

  final availableVersions = Emojis.versions;
  // print(availableVersions); // [Version.v6_0, Version.v7_0, Version.v8_0, Version.v9_0, ...]
  // print(availableVersions.values); // [6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, ...]

  final availableStatuses = Emojis.statuses;
  // print(availableStatuses); // [Status.fullyQualified, Status.minimallyQualified, ...]
  // print(availableStatuses.values); // [fully-qualified, minimally-qualified, unqualified, ...]

  final availableColors = Emojis.colors;
  // print(availableColors); // [Color.red, Color.pink, Color.orange, Color.yellow, ...]
  // print(availableColors.values); // [red, pink, orange, yellow, green, blue, light blue, ...]

  final availableHairStyles = Emojis.hairStyles;
  // print(availableHairStyles); // [HairStyle.blond, HairStyle.red, HairStyle.curly, ...]
  //  print(availableHairStyles.values); // [1F471, 1F9B0, 1F9B1, 1F9B3, 1F9B2]

  final availableSkinTones = Emojis.skinTones;
  // print(availableSkinTones); // [SkinTone.light, SkinTone.mediumLight, ...]
  // print(availableSkinTones.values); // [1F3FB, 1F3FC, 1F3FD, 1F3FE, 1F3FF]

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

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

  final groupsWithSubgroups = Emojis.groupsWithSubgroups;
  // print(groupsWithSubgroups); // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}

  final groupsWithSubgroupsValues = Emojis.groupsWithSubgroupsValues;
  // print(groupsWithSubgroupsValues); // {Smileys & Emotion: [face-smiling, ...], ...}

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

  final name = Emojis.getOne('πŸ˜€').name;
  // print(name); // Grinning face

  final nameOrNull = Emojis.getOneOrNull('some unknown value')?.name;
  // print(nameOrNull); // null

  final smileysAndEmotion = Emojis.smileysAndEmotion;
  // print(smileysAndEmotion); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]

  final faceSmiling = Emojis.faceSmiling;
  // print(faceSmiling); // [Emoji(value: πŸ˜€, ...), Emoji(value: πŸ˜ƒ, ...), ...]

  final contains = 'πŸ˜€textπŸ˜€'.emojis.contains;
  // print(contains); // true

  final only = 'πŸ˜€ πŸ˜€'.emojis.only;
  // print(only); // true

  final onlyOne = 'πŸ˜€'.emojis.onlyOne;
  // print(onlyOne); // true

  final count = 'πŸ˜€textπŸ˜€'.emojis.count;
  // print(count); // 2

  final countWhere = 'πŸ˜€textπŸ”΄textπŸ˜€'.emojis.countWhere((e) => e.hasFace);
  // print(countWhere); // 2

  final remove = 'πŸ˜€textπŸ˜€'.emojis.remove;
  // print(remove); // text

  final removeWhere =
      'πŸ˜€textπŸ‘πŸ»textπŸ˜€'.emojis.removeWhere((e) => e.hasSkinTone);
  // print(removeWhere); // πŸ˜€texttextπŸ˜€

  final split = 'πŸ˜€textπŸ˜€'.emojis.split;
  // print(split); // [text, text]

  final splitWhere =
      'πŸ˜€textπŸ‘πŸ»textπŸ˜€'.emojis.splitWhere((e) => e.value == 'πŸ‘πŸ»');
  // print(splitWhere); // [πŸ˜€text, textπŸ˜€]

  final extract = 'πŸ‘οΈteπŸ‘πŸ»xtπŸ‘πŸΌteπŸ‘πŸ½xtπŸ‘πŸΎteπŸ‘πŸΏxt'.emojis.extract;
  // print(extract); // [πŸ‘, πŸ‘πŸ», πŸ‘πŸΌ, πŸ‘πŸ½, πŸ‘πŸΎ, πŸ‘πŸΏ]
  // print(extract.first); // πŸ‘
  // print(extract.second); // πŸ‘πŸ»
  // print(extract.third); // πŸ‘πŸΌ
  // print(extract.fourth); // πŸ‘πŸ½
  // print(extract.fifth); // πŸ‘πŸΎ
  // print(extract.sixth); // πŸ‘πŸΏ
  // print(extract.penultimate); // πŸ‘πŸΎ
  // print(extract.last); // πŸ‘πŸΏ

  final emoji = 'πŸ˜€text'.emojis.get;
  // print(emoji); Emoji(value: πŸ˜€, ...)

  final anyOf = 'πŸ‘οΈtext'.emojis.anyOf(['πŸ‘']);
  // print(anyOf); // true

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

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

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

  final replaceWhere = 'πŸ˜€textπŸ‘πŸ»textπŸ˜€'
      .emojis
      .replaceWhere((e) => e.value == 'πŸ‘πŸ»' ? '_OK_' : null);
  // print(replaceWhere); // πŸ˜€text_OK_textπŸ˜€

  final toShortcodes = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toShortcodes();
  // print(toShortcodes); // :grinning_face:text:woman_facepalming_medium_dark_skin_tone:

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

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

  final toGithubShortcodes = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.toGithubShortcodes();
  // print(toGithubShortcodes); // :grinning:textπŸ€¦πŸΎβ€β™€οΈ

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

  final fromShortcodes =
      'text:woman_facepalming_tone4:text'.emojis.fromShortcodes();
  // print(fromShortcodes); // textπŸ€¦πŸΎβ€β™€οΈtext

  final take = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.take(1);
  // print(take); // Emoji(value: πŸ˜€, ...)

  final takeLast = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.takeLast(1);
  // print(takeLast); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

  final first = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.first;
  // print(first); // Emoji(value: πŸ˜€, ...)

  final penultimate = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.penultimate;
  // print(penultimate); // Emoji(value: πŸ˜€, ...)

  final second = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.second;
  // print(second); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

  final last = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.last;
  // print(last); // Emoji(value: πŸ€¦πŸΎβ€β™€οΈ, ...)

  final thirdOrNull = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.thirdOrNull;
  // print(thirdOrNull); // null

  final removeFirst = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeFirst;
  // print(removeFirst); // textπŸ€¦πŸΎβ€β™€οΈ

  final removePenultimate = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removePenultimate;
  // print(removePenultimate); // textπŸ€¦πŸΎβ€β™€οΈ

  final removeSecond = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeSecond;
  // print(removeSecond); // πŸ˜€text

  final removeLast = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeLast;
  // print(removeLast); // πŸ˜€text

  final removeThird = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.removeThird;
  // print(removeThird); // πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ

  final any = 'πŸ˜€textπŸ€¦πŸΎβ€β™€οΈ'.emojis.any((e) => e.value == 'πŸ˜€');
  // print(any); // true
}
7
likes
160
points
841
downloads
screenshot

Publisher

verified publisherdominikkrajcer.com

Weekly Downloads

Emojis for Flutter & Dart (Unicode 16.0) + one, yet powerful emojis String extension

Repository (GitHub)
View/report issues

Topics

#emoji #emojis #collection #unicode

Documentation

API reference

License

MIT (license)

Dependencies

collection

More

Packages that depend on emoji_extension