Emojis for Dart Unicode 16.0
+
One, yet powerful emojis String extension
- 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
Import import 'package:emoji_extension/emoji_extension.dart';
and you've got 2 benefits:
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 /* [
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 // [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 // [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 // [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
// 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:
// 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:
// 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:
// 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:
// 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 // [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 // [π, π, π, π, π, π
, π€£, π, π, π, π« , π, π, π, π₯°, π, ...]
.first // π
.second // π
.third // π
.fourth // π
.fifth // π
.sixth // π
.penultimate // π΄σ §σ ’σ ³σ £σ ΄σ Ώ
.last // π΄σ §σ ’σ ·σ ¬σ ³σ Ώ
// 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]
)]
)] */
Equivalent of getOne() with null safety:
Emojis.getOneOrNull('π')?.name; // Grinning face
Emojis.getOneOrNull('some unknown value')?.name; // null
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(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(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(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(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(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(Status.fullyQualified); // [Emoji(value: π, ...), Emoji(value: π, ...), ...]
//or use convenient getters:
Emojis.fullyQualified; // [Emoji(value: π, ...), Emoji(value: π, ...), ...]
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 // [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 // [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 // [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 // [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; // {Group.smileysAndEmotion: [Subgroup.faceSmiling, ...], ...}
Emojis.groupsWithSubgroupsValues; // {Smileys & Emotion: [face-smiling, ...], ...}
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 // [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 // [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 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; // Grinning Face
Emoji('π¦').name; // Fox
Emoji('π').appleName; // Grinning Face
Emoji('π¦').appleName; // Fox Face
Emoji('π').alsoKnownAs; // [Happy Face, Smiley Face]
Emoji('π¦').alsoKnownAs; // [Fox]
Emoji('π΄').color; // Color.red
Emoji('π').color; // null
Emoji('π').shortcode; // :grinning_face:
Emoji('π¦').shortcode; // :fox:
Emoji('π').cldrShortcode; // :grinning_face:
Emoji('π¦').cldrShortcode; // :fox:
Emoji('π').discordShortcode; // :grinning:
Emoji('π¦').discordShortcode; // :fox:
Emoji('π').githubShortcode; // :grinning:
Emoji('π¦').githubShortcode; // :fox_face:
Emoji('π').slackShortcode; // :grinning:
Emoji('π¦').slackShortcode; // :fox_face:
Emoji('π').unicode; // 1F600
Emoji('π¦').unicode; // 1F98A
Emoji('π').version; // Version.v8_0
Emoji('π¦').version; // Version.v9_0
Emoji('π¦').isAnimal; // true
Emoji('π').isAnimal; // false
Emoji('π').isFlag; // true
Emoji('π').isFlag; // false
Emoji('π').isFlower; // true
Emoji('π').isFlower; // false
Emoji('π').isFruit; // true
Emoji('π').isFruit; // false
Emoji('π').isVegetable; // true
Emoji('π').isVegetable; // false
Emoji('π΄').isGeometric; // true
Emoji('π').isGeometric; // false
Emoji('π¨').isMan; // true
Emoji('π©').isMan; // false
Emoji('π΄').isMan; // false
Emoji('π©').isWoman; // true
Emoji('π¨').isWoman; // false
Emoji('π΄').isWoman; // false
Emoji('π').isPerson; // true
Emoji('π΄').isPerson; // false
Emoji('πͺ').isMultiPerson; // true
Emoji('π¨').isMultiPerson; // false
Emoji('π΄').isMultiPerson; // false
Emoji('π§').isSymbol; // true
Emoji('π').isSymbol; // false
Emoji('π§').hasBeard; // true
Emoji('π§').hasBeard; // false
Emoji('π').hasBeard; // false
Emoji('π').hasFace; // true
Emoji('π').hasFace; // true
Emoji('π΄').hasFace; // false
Emoji('π΄').hasColor; // true
Emoji('π©').hasColor; // true
Emoji('π').hasColor; // false
Emoji('π¨βπ¦°').hasHairStyle; // true
Emoji('π¨').hasHairStyle; // false
Emoji('π΄').hasHairStyle; // false
Emoji('π¨βπ¦³').hairStyle; // HairStyle.white
Emoji('π¨').hairStyle; // null
Emoji('π΄').hasHairStyle; // null
Emoji('π©π»').hasSkinTone; // true
Emoji('π©').hasSkinTone; // false
Emoji('π΄').hasSkinTone; // false
Emoji('π©π»').skinTone; // SkinTone.light
Emoji('π©').skinTone; // null
Emoji('π΄').skinTone; // null
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:
'πtextπ€¦πΎββοΈ'.emojis.contains; // true
'text'.emojis.contains; // false
'πtextπ€¦πΎββοΈ'.emojis.count; // 2
'πΊοΈteπ‘xtπ©teπ·xt'.emojis.extract // [πΊ, π‘, π©, π·]
.first // πΊ
.second // π‘
.third // π©
.fourth // π·
.fifthOrNull // null
.sixthOrNull // null
.penultimate // π©
.last // π·
'π΄teππ»xtππΌteππ½xtππΎteππΏxt'.emojis.first // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'π΄teππ»xtππΌteππ½xtππΎteππΏxt'.emojis.firstOrNull // Emoji(value: π΄, ...)
'text'.emojis.firstOrNull; // null
'ποΈteπ΄xtππΌteππ½xtππΎteππΏxt'.emojis.second // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteπ΄xtππΌteππ½xtππΎteππΏxt'.emojis.secondOrNull // Emoji(value: π΄, ...)
'text'.emojis.secondOrNull; // null
'ποΈteπ΄xtππΌteππ½xtππΎteππΏxt'.emojis.third // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtπ΄teππ½xtππΎteππΏxt'.emojis.thirdOrNull // Emoji(value: π΄, ...)
'text'.emojis.thirdOrNull; // null
'ποΈteππ»xtππΌteπ΄xtππΎteππΏxt'.emojis.fourth // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtππΌteπ΄xtππΎteππΏxt'.emojis.fourthOrNull // Emoji(value: π΄, ...)
'text'.emojis.fourthOrNull; // null
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.fifth // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.fifthOrNull // Emoji(value: π΄, ...)
'text'.emojis.fifthOrNull; // null
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.sixth // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.sixthOrNull // Emoji(value: π΄, ...)
'text'.emojis.sixthOrNull; // null
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.penultimate // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.penultimateOrNull // Emoji(value: π΄, ...)
'text'.emojis.penultimateOrNull; // null
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.last // Emoji(value: π΄, ...)
.value // π΄
.name // Red Circle
...
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.lastOrNull // Emoji(value: π΄, ...)
'text'.emojis.lastOrNull; // null
'π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]
)]
)] */
'πtext'.emojis.get.alsoKnownAs // [Happy Face, Smiley Face]
.first // Happy Face
.penultimate // Happy Face
.second // Smiley Face
.last // Smiley Face
'πtextπ€¦πΎββοΈ'.emojis.get.appleNames // [Grinning Face]
.first // Grinning Face
.penultimate // Grinning Face
.secondOrNull // null
.lastOrNull // null
'π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
'π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
'π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
// 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:]
'π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; // true
'π π π'.emojis.only; // true
'text π π π text'.emojis.only; // false
'text'.emojis.only; // false
'π'.emojis.onlyOne; // true
'π π π'.emojis.onlyOne; // false
'text π π π text'.emojis.onlyOne; // false
'text'.emojis.onlyOne; // false
'πtext π€¦πΎββοΈ'.emojis.remove; // text
'π΄teππ»xtππΌteππ½xtππΎteππΏxt'.emojis.removeFirst; // teππ»xtππΌteππ½xtππΎteππΏxt
'ποΈteπ΄xtππΌteππ½xtππΎteππΏxt'.emojis.removeSecond; // ποΈtextππΌteππ½xtππΎteππΏxt
'ποΈteππ»xtπ΄teππ½xtππΎteππΏxt'.emojis.removeThird; // ποΈteππ»xtteππ½xtππΎteππΏxt
'ποΈteππ»xtππΌteπ΄xtππΎteππΏxt'.emojis.removeFourth; // ποΈteππ»xtππΌtextππΎteππΏxt
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.removeFifth; // ποΈteππ»xtππΌteππ½xtteππΏxt
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.removeSixth; // ποΈteππ»xtππΌteππ½xtππΎtext
'ποΈteππ»xtππΌteππ½xtπ΄teππΏxt'.emojis.removePenultimate; // ποΈteππ»xtππΌteππ½xtteππΏxt
'ποΈteππ»xtππΌteππ½xtππΎteπ΄xt'.emojis.removeLast; // ποΈteππ»xtππΌteππ½xtππΎtext
'textπtext'.emojis.split; // [text, text]
'πtextπ€¦πΎββοΈ'.emojis.any((e) => e.value == 'π'); // true
'πtextπ€¦πΎββοΈ'.emojis.any((e) => e.value == 'ππ»'); // false
Same as: emojis.some()
'πtextπ€¦πΎββοΈ'.emojis.anyOf(['π']); // true
'πtextπ€¦πΎββοΈ'.emojis.anyOf(['π', 'ππ»']); // true
'πtextπ€¦πΎββοΈ'.emojis.anyOf(['ππ»']); // false
Same as: emojis.someOf()
'πtextπ€¦πΎββοΈ'.emojis.containsOf(['π']); // true
'πtextπ€¦πΎββοΈ'.emojis.containsOf(['π', 'π€¦πΎββοΈ']); // true
'πtextπ€¦πΎββοΈ'.emojis.containsOf(['π', 'ππ»']); // false
'πtextπ€¦πΎββοΈ'.emojis.containsOf(['ππ»']); // false
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOf(['π']); // false
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOf(['π', 'π€¦πΎββοΈ']); // true
'πtextπ€¦πΎββοΈtextπ'.emojis.containsExactlyOf(['π', 'π€¦πΎββοΈ']); // true
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOf(['ππ»']); // false
'πtextπ€¦πΎββοΈtextπ'.emojis.containsOne((e) => e.value == 'π€¦πΎββοΈ'); // true
'πtextπ€¦πΎββοΈtextπ'.emojis.containsOne((e) => e.value == 'ππ»'); // false
'πtextπ€¦πΎββοΈtextπ'.emojis.containsOne((e) => e.value == 'π'); // false
'πtextπ€¦πΎββοΈ'.emojis.containsOneOf({'π€¦πΎββοΈ'}); // true
'πtextπ€¦πΎββοΈ'.emojis.containsOneOf({'π', 'π€¦πΎββοΈ'}); // true
'πtextπ€¦πΎββοΈ'.emojis.containsOneOf('π', 'π€¦πΎββοΈ', 'ππ»'}); // false
'πtextπ€¦πΎββοΈtextπ'.emojis.containsOneOf({'π'}); // false
'πtext'.emojis.containsExactlyOne((e) => e.value == 'π'); // true
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOne((e) => e.value == 'π'); // false
'text'.emojis.containsExactlyOne((e) => e.value == 'π'); // false
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOneOf({'π', 'π€¦πΎββοΈ'}); // true
'πtextπ€¦πΎββοΈtextπ'.emojis.containsExactlyOneOf({'π', 'π€¦πΎββοΈ'}); // false
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOneOf({'π'}); // false
'πtextπ€¦πΎββοΈ'.emojis.containsExactlyOneOf({'π', 'ππ»'}); // false
'πtextπ€¦πΎββοΈtextπ'.emojis.countWhere((e) => e.value == 'π'); // 2
'πtextπ€¦πΎββοΈtextπ'.emojis.countWhereIndexed((i, e) => i == 0 && e.value == 'π'); // 1
'πtextπ'.emojis.every((e) => e.value == 'π'); // true
'πtextπ€¦πΎββοΈ'.emojis.every((e) => e.value == 'π'); // false
'πtextπ€¦πΎββοΈ'.emojis.every((e) => e.value == 'ππ»'); // false
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.firstWhere((e) => e.name.contains('Woman')); // Emoji(value: π€¦πΎββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.firstWhereIndexed((i, e) => i > 0 && e.name.contains('Woman')); // Emoji(value: π€¦π»ββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.firstWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: π€¦πΎββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.firstWhereOrNull((e) => e.value == 'ππ»'); // null
'π€¦πΎββοΈ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
'πtextπ€¦πΎββοΈ'.emojis.fold('start', (p, c) => p + c.value); // startππ€¦πΎββοΈ
'πtextπ€¦πΎββοΈ'.emojis.foldIndexed('start', (i, p ,c) => '$p${c.value}$i'); // startπ0π€¦πΎββοΈ1
'πtextπ€¦πΎββοΈ'.emojis.forEach((e) => print(e.value)); // π π€¦πΎββοΈ
'πtextπ€¦πΎββοΈ'.emojis.forEachIndexed(i,e) => print('$i:${e.value}')); // 0:π 1:π€¦πΎββοΈ
'πtextπ€¦πΎββοΈtextπ'.emojis.forEachWhile((e) {
print(e.value);
return e.value == 'π';
}); // π π€¦πΎββοΈ
'πtextπ€¦πΎββοΈtextπ'.emojis.forEachIndexedWhile((i, e) {
print('$i:${e.value}');
return e.value == 'π';
}); // 0:π 1:π€¦πΎββοΈ
'πtextπ€¦πΎββοΈ'.emojis.join((e) => e.value,
separator: '.',
prefix: 'prefix',
suffix: 'suffix'); // 'prefixπ.π€¦πΎββοΈsuffix'
'πtextπ€¦πΎββοΈ'.emojis.map((e) => 'Emoji: ${e.name}'); // [Emoji: Grinning Face, Emoji: Woman Facepalming: Medium-Dark Skin Tone]
'πtextπ€¦πΎββοΈ'.emojis.mapIndexed((i, e) => '$i: ${e.name}'); // [0: Grinning Face, 1: Woman Facepalming: Medium-Dark Skin Tone]
'πtextπ€¦πΎββοΈ'.emojis.none((e) => e.value == 'ππ»'); // true
'πtextπ€¦πΎββοΈ'.emojis.none((e) => e.value == 'π'); // false
'πtextπ€¦πΎββοΈ'.emojis.noneOf(['ππ»']); // true
'πtextπ€¦πΎββοΈ'.emojis.noneOf(['ππ»', 'π€¦πΎββοΈ']); // false
'πtextπ€¦πΎββοΈ'.emojis.noneOf(['π', 'π€¦πΎββοΈ']); // false
'πtextπ€¦πΎββοΈ'.emojis.removeAt(0); // textπ€¦πΎββοΈ
'πtextπ€¦πΎββοΈ'.emojis.removeAt(10); // πtextπ€¦πΎββοΈ
'πtextπ€¦πΎββοΈ'.emojis.removeFromEnd(0); // πtext
'πtextπ€¦πΎββοΈ'.emojis.removeFromEnd(10); // πtextπ€¦πΎββοΈ
'πtextπ€¦πΎββοΈtextππ»textπ'.emojis.removeEveryOf(['π', 'ππ»']); // textπ€¦πΎββοΈtexttext
'πtextπ€¦πΎββοΈtextπ'.emojis.removeWhere((e) => e.value == 'π'); // textπ€¦πΎββοΈtext
'πtextπ€¦πΎββοΈtextπ'.emojis.removeWhereIndexed((i, e) => i == 0 && e.value == 'π'); // textπ€¦πΎββοΈtextπ
'πtextπ€¦πΎββοΈ'.emojis.replace('_'); // _οΈtext_
'πtextπ€¦πΎββοΈ'.emojis.replaceWith({'π':'ABC', 'π€¦πΎββοΈ':'123'}); // ABCtext123
'πtextπ€¦πΎββοΈ'.emojis.replaceWhere((e) => e.value == 'π€¦πΎββοΈ' ? '123' : null); // πtext123
'πtextπ€¦πΎββοΈ'.emojis.replaceWhere((e) => {'π':'ABC', 'π€¦πΎββοΈ':'123'}[e.value]); // ABCtext123
'πtextπ€¦πΎββοΈtextπ'.emojis.replaceWhereIndexed((i, e) => i == 1 ? '_123_' : null); // πtext_123_textπ
'πtextπ€¦πΎββοΈtextππ»'.emojis.skip(1); // [Emoji(value: π€¦πΎββοΈ, ...), Emoji(value: ππ», ...)]
'πtextπ€¦πΎββοΈtextππ»'.emojis.skipLast(1); // [Emoji(value: π, ...), Emoji(value: π€¦πΎββοΈ, ...)]
'πtextπ€¦πΎββοΈtextππ»'.emojis.skipWhile((e) => e.value == 'π'); // [Emoji(value: π€¦πΎββοΈ, ...), Emoji(value: ππ», ...)]
'πtextπ€¦πΎββοΈ'.emojis.some((e) => e.value == 'π'); // true
'πtextπ€¦πΎββοΈ'.emojis.some((e) => e.value == 'ππ»'); // false
Same as: emojis.any()
'πtextπ€¦πΎββοΈ'.emojis.someOf(['π']); // true
'πtextπ€¦πΎββοΈ'.emojis.someOf(['π', 'ππ»']); // true
'πtextπ€¦πΎββοΈ'.emojis.someOf(['ππ»']); // false
Same as: emojis.anyOf()
'πtextπ€¦πΎββοΈ'.emojis.splitMapJoin(
onMatch: (_) => '_emoji_',
onNonMatch: (s) => s.toUpperCase(),
); // _emoji_TEXT_emoji_
'πtextπ€¦πΎββοΈtextπ'.emojis.splitWhere((e) => e.value == 'π€¦πΎββοΈ'); // [πtext, textπ]
'πtextπ€¦πΎββοΈtextπ'.emojis.splitWhereIndexed((i, e) => i == 1 && e.value == 'π€¦πΎββοΈ'); // [πtext, textπ]
// 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:
// 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π€¦πΎββοΈ
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.lastWhere((e) => e.name.contains('Woman')); // Emoji(value: π€¦π»ββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.lastWhereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // Emoji(value: π€¦πΎββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.lastWhereOrNull((e) => e.name.contains('Woman')); // Emoji(value: π€¦π»ββοΈ, ...)
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.lastWhereOrNull((e) => e.value == 'ππ»'); // null
'π€¦πΎββοΈ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
'πtextπ€¦πΎββοΈtextππ»'.emojis.take(2); // [Emoji(value: π, ...), Emoji(value: π€¦πΎββοΈ, ...)]
'πtextπ€¦πΎββοΈtextππ»'.emojis.takeLast(2); // [Emoji(value: π€¦πΎββοΈ, ...), Emoji(value: ππ», ...)]
'πtextπ€¦πΎββοΈtextππ»'.emojis.takeWhile((e) => e.value == 'π'); // [Emoji(value: π, ...)]
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.where((e) => e.name.contains('Woman')); // [Emoji(value: π€¦πΎββοΈ, ...), Emoji(value: π€¦π»ββοΈ, ...)]
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.whereIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: π€¦πΎββοΈ, ...)]
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.whereNot((e) => e.name.contains('Woman')); // [Emoji(value: π, ...)]
'π€¦πΎββοΈtextπtextπ€¦π»ββοΈ'.emojis.whereNotIndexed((i, e) => i == 0 && e.name.contains('Woman')); // [Emoji(value: π, ...), Emoji(value: π€¦π»ββοΈ, ...)]
Emoji Overview App Example |
Emoji Chat App Example |