emoji_extension 1.2.0
emoji_extension: ^1.2.0 copied to clipboard
Emojis for Flutter & Dart (Unicode 16.0) + one, yet powerful emojis String extension
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
}