├── .gitignore
├── EmojiPicker.Sample
├── App.xaml
├── App.xaml.cs
├── Assets
│ ├── LockScreenLogo.scale-200.png
│ ├── SplashScreen.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── StoreLogo.png
│ └── Wide310x150Logo.scale-200.png
├── EmojiPicker.Sample.csproj
├── EmojiPicker.Sample_TemporaryKey.pfx
├── MainPage.xaml
├── MainPage.xaml.cs
├── Package.appxmanifest
└── Properties
│ ├── AssemblyInfo.cs
│ └── Default.rd.xml
├── EmojiPicker.sln
├── EmojiPicker
├── EmojiPicker.Groups.cs
├── EmojiPicker.cs
├── EmojiPicker.csproj
├── EmojiPicker.nuspec
├── EmojiSkinTone.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── EmojiPicker.rd.xml
└── Themes
│ └── Generic.xaml
├── LICENSE
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # Our targets
2 | obj/
3 | bin/
4 | # Visual Studio cruft
5 | .vs
6 | *.suo
7 | *.csproj.user
8 | *.vcxproj.user
9 | *.opensdf
10 | *.opendb
11 | *.sdf
12 | *.VC.db
13 | # NuGet cruft
14 | *.nupkg
15 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace EmojiPicker.Sample
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 | Frame rootFrame = Window.Current.Content as Frame;
43 |
44 | // Do not repeat app initialization when the Window already has content,
45 | // just ensure that the window is active
46 | if (rootFrame == null)
47 | {
48 | // Create a Frame to act as the navigation context and navigate to the first page
49 | rootFrame = new Frame();
50 |
51 | rootFrame.NavigationFailed += OnNavigationFailed;
52 |
53 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
54 | {
55 | //TODO: Load state from previously suspended application
56 | }
57 |
58 | // Place the frame in the current Window
59 | Window.Current.Content = rootFrame;
60 | }
61 |
62 | if (e.PrelaunchActivated == false)
63 | {
64 | if (rootFrame.Content == null)
65 | {
66 | // When the navigation stack isn't restored navigate to the first page,
67 | // configuring the new page by passing required information as a navigation
68 | // parameter
69 | rootFrame.Navigate(typeof(MainPage), e.Arguments);
70 | }
71 | // Ensure the current window is active
72 | Window.Current.Activate();
73 | }
74 | }
75 |
76 | ///
77 | /// Invoked when Navigation to a certain page fails
78 | ///
79 | /// The Frame which failed navigation
80 | /// Details about the navigation failure
81 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
82 | {
83 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
84 | }
85 |
86 | ///
87 | /// Invoked when application execution is being suspended. Application state is saved
88 | /// without knowing whether the application will be terminated or resumed with the contents
89 | /// of memory still intact.
90 | ///
91 | /// The source of the suspend request.
92 | /// Details about the suspend request.
93 | private void OnSuspending(object sender, SuspendingEventArgs e)
94 | {
95 | var deferral = e.SuspendingOperation.GetDeferral();
96 | //TODO: Save application state and stop any background activity
97 | deferral.Complete();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/EmojiPicker.Sample/EmojiPicker.Sample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {826A2D07-3829-4B03-ADED-43E0216557E1}
8 | AppContainerExe
9 | Properties
10 | EmojiPicker.Sample
11 | EmojiPicker.Sample
12 | en-US
13 | UAP
14 | 10.0.17134.0
15 | 10.0.15063.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 | true
20 | EmojiPicker.Sample_TemporaryKey.pfx
21 |
22 |
23 | true
24 | bin\x86\Debug\
25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
26 | ;2008
27 | full
28 | x86
29 | false
30 | prompt
31 | true
32 |
33 |
34 | bin\x86\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | true
37 | ;2008
38 | pdbonly
39 | x86
40 | false
41 | prompt
42 | true
43 | true
44 |
45 |
46 | true
47 | bin\ARM\Debug\
48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
49 | ;2008
50 | full
51 | ARM
52 | false
53 | prompt
54 | true
55 |
56 |
57 | bin\ARM\Release\
58 | TRACE;NETFX_CORE;WINDOWS_UWP
59 | true
60 | ;2008
61 | pdbonly
62 | ARM
63 | false
64 | prompt
65 | true
66 | true
67 |
68 |
69 | true
70 | bin\x64\Debug\
71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
72 | ;2008
73 | full
74 | x64
75 | false
76 | prompt
77 | true
78 |
79 |
80 | bin\x64\Release\
81 | TRACE;NETFX_CORE;WINDOWS_UWP
82 | true
83 | ;2008
84 | pdbonly
85 | x64
86 | false
87 | prompt
88 | true
89 | true
90 |
91 |
92 | PackageReference
93 |
94 |
95 |
96 | App.xaml
97 |
98 |
99 | MainPage.xaml
100 |
101 |
102 |
103 |
104 |
105 | Designer
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | MSBuild:Compile
122 | Designer
123 |
124 |
125 | MSBuild:Compile
126 | Designer
127 |
128 |
129 |
130 |
131 | 6.1.7
132 |
133 |
134 |
135 |
136 | {06353e37-e0fe-4379-9689-3b6253f314bb}
137 | EmojiPicker
138 |
139 |
140 |
141 | 14.0
142 |
143 |
144 |
151 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/EmojiPicker.Sample_TemporaryKey.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bezysoftware/EmojiPicker/0a9d1676a448faaf70433e526614a3c9925dbc9d/EmojiPicker.Sample/EmojiPicker.Sample_TemporaryKey.pfx
--------------------------------------------------------------------------------
/EmojiPicker.Sample/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
17 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 |
16 | // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
17 |
18 | namespace EmojiPicker.Sample
19 | {
20 | ///
21 | /// An empty page that can be used on its own or navigated to within a Frame.
22 | ///
23 | public sealed partial class MainPage : Page
24 | {
25 | public MainPage()
26 | {
27 | this.InitializeComponent();
28 | }
29 |
30 | private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
31 | {
32 | this.EmojiPresenter.Text = this.EmojiPresenter.Text + await EmojiPicker.ShowAsync();
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 |
16 |
17 | EmojiPicker.Sample
18 | tbezouska
19 | Assets\StoreLogo.png
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("EmojiPicker.Sample")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EmojiPicker.Sample")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/EmojiPicker.Sample/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/EmojiPicker.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28010.2003
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmojiPicker", "EmojiPicker\EmojiPicker.csproj", "{06353E37-E0FE-4379-9689-3B6253F314BB}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmojiPicker.Sample", "EmojiPicker.Sample\EmojiPicker.Sample.csproj", "{826A2D07-3829-4B03-ADED-43E0216557E1}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Debug|ARM = Debug|ARM
14 | Debug|x64 = Debug|x64
15 | Debug|x86 = Debug|x86
16 | Release|Any CPU = Release|Any CPU
17 | Release|ARM = Release|ARM
18 | Release|x64 = Release|x64
19 | Release|x86 = Release|x86
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|ARM.ActiveCfg = Debug|ARM
25 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|ARM.Build.0 = Debug|ARM
26 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|x64.ActiveCfg = Debug|x64
27 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|x64.Build.0 = Debug|x64
28 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|x86.ActiveCfg = Debug|x86
29 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Debug|x86.Build.0 = Debug|x86
30 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
31 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|Any CPU.Build.0 = Release|Any CPU
32 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|ARM.ActiveCfg = Release|ARM
33 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|ARM.Build.0 = Release|ARM
34 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|x64.ActiveCfg = Release|x64
35 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|x64.Build.0 = Release|x64
36 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|x86.ActiveCfg = Release|x86
37 | {06353E37-E0FE-4379-9689-3B6253F314BB}.Release|x86.Build.0 = Release|x86
38 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|Any CPU.ActiveCfg = Debug|x86
39 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|Any CPU.Build.0 = Debug|x86
40 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|Any CPU.Deploy.0 = Debug|x86
41 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|ARM.ActiveCfg = Debug|ARM
42 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|ARM.Build.0 = Debug|ARM
43 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|ARM.Deploy.0 = Debug|ARM
44 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x64.ActiveCfg = Debug|x64
45 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x64.Build.0 = Debug|x64
46 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x64.Deploy.0 = Debug|x64
47 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x86.ActiveCfg = Debug|x86
48 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x86.Build.0 = Debug|x86
49 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Debug|x86.Deploy.0 = Debug|x86
50 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|Any CPU.ActiveCfg = Release|x86
51 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|ARM.ActiveCfg = Release|ARM
52 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|ARM.Build.0 = Release|ARM
53 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|ARM.Deploy.0 = Release|ARM
54 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x64.ActiveCfg = Release|x64
55 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x64.Build.0 = Release|x64
56 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x64.Deploy.0 = Release|x64
57 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x86.ActiveCfg = Release|x86
58 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x86.Build.0 = Release|x86
59 | {826A2D07-3829-4B03-ADED-43E0216557E1}.Release|x86.Deploy.0 = Release|x86
60 | EndGlobalSection
61 | GlobalSection(SolutionProperties) = preSolution
62 | HideSolutionNode = FALSE
63 | EndGlobalSection
64 | GlobalSection(ExtensibilityGlobals) = postSolution
65 | SolutionGuid = {92566CA2-BF60-49FA-9083-45BF426C236F}
66 | EndGlobalSection
67 | EndGlobal
68 |
--------------------------------------------------------------------------------
/EmojiPicker/EmojiPicker.Groups.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using NeoSmart.Unicode;
4 |
5 | namespace EmojiPicker
6 | {
7 | public partial class EmojiPicker
8 | {
9 | private static readonly Dictionary EmojiGroups = new Dictionary
10 | {
11 | { 0, new []
12 | {
13 | /* 😀 */Emoji.GrinningFace,
14 | /* 😁 */Emoji.GrinningFaceWithSmilingEyes,
15 | /* 😂 */Emoji.FaceWithTearsOfJoy,
16 | /* 🤣 */Emoji.RollingOnTheFloorLaughing,
17 | /* 😃 */Emoji.SmilingFaceWithOpenMouth,
18 | /* 😄 */Emoji.SmilingFaceWithOpenMouthAndSmilingEyes,
19 | /* 😅 */Emoji.SmilingFaceWithOpenMouthAndColdSweat,
20 | /* 😆 */Emoji.SmilingFaceWithOpenMouthAndClosedEyes,
21 | /* 😉 */Emoji.WinkingFace,
22 | /* 😊 */Emoji.SmilingFaceWithSmilingEyes,
23 | /* 😋 */Emoji.FaceSavouringDeliciousFood,
24 | /* 😎 */Emoji.SmilingFaceWithSunglasses,
25 | /* 😍 */Emoji.SmilingFaceWithHeartEyes,
26 | /* 😘 */Emoji.FaceBlowingAKiss,
27 | /* 😗 */Emoji.KissingFace,
28 | /* 😙 */Emoji.KissingFaceWithSmilingEyes,
29 | /* 😚 */Emoji.KissingFaceWithClosedEyes,
30 | /* 🙂 */Emoji.SlightlySmilingFace,
31 | /* 🤗 */Emoji.HuggingFace,
32 | /* 🤔 */Emoji.ThinkingFace,
33 | /* 😐 */Emoji.NeutralFace,
34 | /* 😑 */Emoji.ExpressionlessFace,
35 | /* 😶 */Emoji.FaceWithoutMouth,
36 | /* 🙄 */Emoji.FaceWithRollingEyes,
37 | /* 😏 */Emoji.SmirkingFace,
38 | /* 😣 */Emoji.PerseveringFace,
39 | /* 😥 */Emoji.DisappointedButRelievedFace,
40 | /* 😮 */Emoji.FaceWithOpenMouth,
41 | /* 🤐 */Emoji.ZipperMouthFace,
42 | /* 😯 */Emoji.HushedFace,
43 | /* 😪 */Emoji.SleepyFace,
44 | /* 😫 */Emoji.TiredFace,
45 | /* 😴 */Emoji.SleepingFace,
46 | /* 😌 */Emoji.RelievedFace,
47 | /* 😛 */Emoji.FaceWithStuckOutTongue,
48 | /* 😜 */Emoji.FaceWithStuckOutTongueAndWinkingEye,
49 | /* 😝 */Emoji.FaceWithStuckOutTongueAndClosedEyes,
50 | /* 🤤 */Emoji.DroolingFace,
51 | /* 😒 */Emoji.UnamusedFace,
52 | /* 😓 */Emoji.FaceWithColdSweat,
53 | /* 😔 */Emoji.PensiveFace,
54 | /* 😕 */Emoji.ConfusedFace,
55 | /* 🙃 */Emoji.UpsideDownFace,
56 | /* 🤑 */Emoji.MoneyMouthFace,
57 | /* 😲 */Emoji.AstonishedFace,
58 | /* 🙁 */Emoji.SlightlyFrowningFace,
59 | /* 😖 */Emoji.ConfoundedFace,
60 | /* 😞 */Emoji.DisappointedFace,
61 | /* 😟 */Emoji.WorriedFace,
62 | /* 😤 */Emoji.FaceWithSteamFromNose,
63 | /* 😢 */Emoji.CryingFace,
64 | /* 😭 */Emoji.LoudlyCryingFace,
65 | /* 😦 */Emoji.FrowningFaceWithOpenMouth,
66 | /* 😧 */Emoji.AnguishedFace,
67 | /* 😨 */Emoji.FearfulFace,
68 | /* 😩 */Emoji.WearyFace,
69 | /* 😬 */Emoji.GrimacingFace,
70 | /* 😰 */Emoji.FaceWithOpenMouthAndColdSweat,
71 | /* 😱 */Emoji.FaceScreamingInFear,
72 | /* 😳 */Emoji.FlushedFace,
73 | /* 😵 */Emoji.DizzyFace,
74 | /* 😡 */Emoji.PoutingFace,
75 | /* 😠 */Emoji.AngryFace,
76 | /* 😷 */Emoji.FaceWithMedicalMask,
77 | /* 🤒 */Emoji.FaceWithThermometer,
78 | /* 🤕 */Emoji.FaceWithHeadBandage,
79 | /* 🤢 */Emoji.NauseatedFace,
80 | /* 🤧 */Emoji.SneezingFace,
81 | /* 😇 */Emoji.SmilingFaceWithHalo,
82 | /* 🤠 */Emoji.CowboyHatFace,
83 | /* 🤡 */Emoji.ClownFace,
84 | /* 🤥 */Emoji.LyingFace,
85 | /* 🤓 */Emoji.NerdFace,
86 | /* 😈 */Emoji.SmilingFaceWithHorns,
87 | /* 👿 */Emoji.AngryFaceWithHorns,
88 | /* 👹 */Emoji.Ogre,
89 | /* 👺 */Emoji.Goblin,
90 | /* 💀 */Emoji.Skull,
91 | /* 👻 */Emoji.Ghost,
92 | /* 👽 */Emoji.Alien,
93 | /* 👾 */Emoji.AlienMonster,
94 | /* 🤖 */Emoji.RobotFace,
95 | /* 💩 */Emoji.PileOfPoo,
96 | /* 😺 */Emoji.SmilingCatFaceWithOpenMouth,
97 | /* 😸 */Emoji.GrinningCatFaceWithSmilingEyes,
98 | /* 😹 */Emoji.CatFaceWithTearsOfJoy,
99 | /* 😻 */Emoji.SmilingCatFaceWithHeartEyes,
100 | /* 😼 */Emoji.CatFaceWithWrySmile,
101 | /* 😽 */Emoji.KissingCatFaceWithClosedEyes,
102 | /* 🙀 */Emoji.WearyCatFace,
103 | /* 😿 */Emoji.CryingCatFace,
104 | /* 😾 */Emoji.PoutingCatFace,
105 | /* 🙈 */Emoji.SeeNoEvilMonkey,
106 | /* 🙉 */Emoji.HearNoEvilMonkey,
107 | /* 🙊 */Emoji.SpeakNoEvilMonkey,
108 | /* 👤 */Emoji.BustInSilhouette,
109 | /* 👥 */Emoji.BustsInSilhouette,
110 | /* 🤺 */Emoji.PersonFencing,
111 | /* 👫 */Emoji.ManAndWomanHoldingHands,
112 | /* 💏 */Emoji.Kiss,
113 | /* 💑 */Emoji.CoupleWithHeart,
114 | /* 👪 */Emoji.Family,
115 | /* 👨👩👦👦 */Emoji.FamilyManWomanBoyBoy,
116 | /* 👨👩👧👧 */Emoji.FamilyManWomanGirlGirl,
117 | /* 👨👨👦 */Emoji.FamilyManManBoy,
118 | /* 👨👨👧 */Emoji.FamilyManManGirl,
119 | /* 👨👨👧👦 */Emoji.FamilyManManGirlBoy,
120 | /* 👨👨👦👦 */Emoji.FamilyManManBoyBoy,
121 | /* 👨👨👧👧 */Emoji.FamilyManManGirlGirl,
122 | /* 👩👩👦 */Emoji.FamilyWomanWomanBoy,
123 | /* 👩👩👧 */Emoji.FamilyWomanWomanGirl,
124 | /* 👩👩👧👦 */Emoji.FamilyWomanWomanGirlBoy,
125 | /* 👩👩👦👦 */Emoji.FamilyWomanWomanBoyBoy,
126 | /* 👩👩👧👧 */Emoji.FamilyWomanWomanGirlGirl,
127 | /* 👣 */Emoji.Footprints,
128 | /* 👀 */Emoji.Eyes,
129 | /* 👅 */Emoji.Tongue,
130 | /* 👄 */Emoji.Mouth,
131 | /* 🐵 */Emoji.MonkeyFace,
132 | /* 🐒 */Emoji.Monkey,
133 | /* 🦍 */Emoji.Gorilla,
134 | /* 🐶 */Emoji.DogFace,
135 | /* 🐕 */Emoji.Dog,
136 | /* 🐩 */Emoji.Poodle,
137 | /* 🐺 */Emoji.WolfFace,
138 | /* 🦊 */Emoji.FoxFace,
139 | /* 🐱 */Emoji.CatFace,
140 | /* 🐈 */Emoji.Cat,
141 | /* 🦁 */Emoji.LionFace,
142 | /* 🐯 */Emoji.TigerFace,
143 | /* 🐅 */Emoji.Tiger,
144 | /* 🐆 */Emoji.Leopard,
145 | /* 🐴 */Emoji.HorseFace,
146 | /* 🐎 */Emoji.Horse,
147 | /* 🦄 */Emoji.UnicornFace,
148 | /* 🦌 */Emoji.Deer,
149 | /* 🐮 */Emoji.CowFace,
150 | /* 🐂 */Emoji.Ox,
151 | /* 🐃 */Emoji.WaterBuffalo,
152 | /* 🐄 */Emoji.Cow,
153 | /* 🐷 */Emoji.PigFace,
154 | /* 🐖 */Emoji.Pig,
155 | /* 🐗 */Emoji.Boar,
156 | /* 🐽 */Emoji.PigNose,
157 | /* 🐏 */Emoji.Ram,
158 | /* 🐑 */Emoji.Ewe,
159 | /* 🐐 */Emoji.Goat,
160 | /* 🐪 */Emoji.Camel,
161 | /* 🐫 */Emoji.TwoHumpCamel,
162 | /* 🐘 */Emoji.Elephant,
163 | /* 🦏 */Emoji.Rhinoceros,
164 | /* 🐭 */Emoji.MouseFace,
165 | /* 🐁 */Emoji.Mouse,
166 | /* 🐀 */Emoji.Rat,
167 | /* 🐹 */Emoji.HamsterFace,
168 | /* 🐰 */Emoji.RabbitFace,
169 | /* 🐇 */Emoji.Rabbit,
170 | /* 🦇 */Emoji.Bat,
171 | /* 🐻 */Emoji.BearFace,
172 | /* 🐨 */Emoji.Koala,
173 | /* 🐼 */Emoji.PandaFace,
174 | /* 🐾 */Emoji.PawPrints,
175 | /* 🦃 */Emoji.Turkey,
176 | /* 🐔 */Emoji.Chicken,
177 | /* 🐓 */Emoji.Rooster,
178 | /* 🐣 */Emoji.HatchingChick,
179 | /* 🐤 */Emoji.BabyChick,
180 | /* 🐥 */Emoji.FrontFacingBabyChick,
181 | /* 🐦 */Emoji.Bird,
182 | /* 🐧 */Emoji.Penguin,
183 | /* 🦅 */Emoji.Eagle,
184 | /* 🦆 */Emoji.Duck,
185 | /* 🦉 */Emoji.Owl,
186 | /* 🐸 */Emoji.FrogFace,
187 | /* 🐊 */Emoji.Crocodile,
188 | /* 🐢 */Emoji.Turtle,
189 | /* 🦎 */Emoji.Lizard,
190 | /* 🐍 */Emoji.Snake,
191 | /* 🐲 */Emoji.DragonFace,
192 | /* 🐉 */Emoji.Dragon,
193 | /* 🐳 */Emoji.SpoutingWhale,
194 | /* 🐋 */Emoji.Whale,
195 | /* 🐬 */Emoji.Dolphin,
196 | /* 🐟 */Emoji.Fish,
197 | /* 🐠 */Emoji.TropicalFish,
198 | /* 🐡 */Emoji.Blowfish,
199 | /* 🦈 */Emoji.Shark,
200 | /* 🐙 */Emoji.Octopus,
201 | /* 🐚 */Emoji.SpiralShell,
202 | /* 🦀 */Emoji.Crab,
203 | /* 🦐 */Emoji.Shrimp,
204 | /* 🦑 */Emoji.Squid,
205 | /* 🐌 */Emoji.Snail,
206 | /* 🦋 */Emoji.Butterfly,
207 | /* 🐛 */Emoji.Bug,
208 | /* 🐜 */Emoji.Ant,
209 | /* 🐝 */Emoji.Honeybee,
210 | /* 🐞 */Emoji.LadyBeetle,
211 | /* 🦂 */Emoji.Scorpion
212 | }
213 | },
214 | { 1, new []
215 | {
216 | /* 👩 */Emoji.Woman,
217 | /* 👨 */Emoji.Man,
218 | /* 🧑 */Emoji.Adult,
219 | /* 👶 */Emoji.Baby,
220 | /* 🧒 */Emoji.Child,
221 | /* 👦 */Emoji.Boy,
222 | /* 👧 */Emoji.Girl,
223 | /* 🧓 */Emoji.OlderAdult,
224 | /* 👴 */Emoji.OldMan,
225 | /* 👵 */Emoji.OldWoman,
226 | /* 👨⚕️ */Emoji.ManHealthWorker,
227 | /* 👩⚕️ */Emoji.WomanHealthWorker,
228 | /* 👨🎓 */Emoji.ManStudent,
229 | /* 👩🎓 */Emoji.WomanStudent,
230 | /* 👨🏫 */Emoji.ManTeacher,
231 | /* 👩🏫 */Emoji.WomanTeacher,
232 | /* 👨⚖️ */Emoji.ManJudge,
233 | /* 👩⚖️ */Emoji.WomanJudge,
234 | /* 👨🌾 */Emoji.ManFarmer,
235 | /* 👩🌾 */Emoji.WomanFarmer,
236 | /* 👨🍳 */Emoji.ManCook,
237 | /* 👩🍳 */Emoji.WomanCook,
238 | /* 👨🔧 */Emoji.ManMechanic,
239 | /* 👩🔧 */Emoji.WomanMechanic,
240 | /* 👨🏭 */Emoji.ManFactoryWorker,
241 | /* 👩🏭 */Emoji.WomanFactoryWorker,
242 | /* 👨💼 */Emoji.ManOfficeWorker,
243 | /* 👩💼 */Emoji.WomanOfficeWorker,
244 | /* 👨🔬 */Emoji.ManScientist,
245 | /* 👩🔬 */Emoji.WomanScientist,
246 | /* 👨💻 */Emoji.ManTechnologist,
247 | /* 👩💻 */Emoji.WomanTechnologist,
248 | /* 👨🎤 */Emoji.ManSinger,
249 | /* 👩🎤 */Emoji.WomanSinger,
250 | /* 👨🎨 */Emoji.ManArtist,
251 | /* 👩🎨 */Emoji.WomanArtist,
252 | /* 👨✈️ */Emoji.ManPilot,
253 | /* 👩✈️ */Emoji.WomanPilot,
254 | /* 👨🚀 */Emoji.ManAstronaut,
255 | /* 👩🚀 */Emoji.WomanAstronaut,
256 | /* 👨🚒 */Emoji.ManFirefighter,
257 | /* 👩🚒 */Emoji.WomanFirefighter,
258 | /* 👮♂️ */Emoji.ManPoliceOfficer,
259 | /* 👮♀️ */Emoji.WomanPoliceOfficer,
260 | /* 🕵️♂️ */Emoji.ManDetective,
261 | /* 🕵️♀️ */Emoji.WomanDetective,
262 | /* 💂♂️ */Emoji.ManGuard,
263 | /* 💂♀️ */Emoji.WomanGuard,
264 | /* 👷♂️ */Emoji.ManConstructionWorker,
265 | /* 👷♀️ */Emoji.WomanConstructionWorker,
266 | /* 🤴 */Emoji.Prince,
267 | /* 👸 */Emoji.Princess,
268 | /* 👳♂️ */Emoji.ManWearingTurban,
269 | /* 👳♀️ */Emoji.WomanWearingTurban,
270 | /* 👲 */Emoji.ManWithChineseCap,
271 | /* 🧕 */Emoji.WomanWithHeadscarf,
272 | /* 🧔 */Emoji.BeardedPerson,
273 | /* 👱♂️ */Emoji.BlondHairedMan,
274 | /* 👱♀️ */Emoji.BlondHairedWoman,
275 | /* 🤵 */Emoji.ManInTuxedo,
276 | /* 👰 */Emoji.BrideWithVeil,
277 | /* 🤰 */Emoji.PregnantWoman,
278 | /* 🤱 */Emoji.BreastFeeding,
279 | /* 👼 */Emoji.BabyAngel,
280 | /* 🎅 */Emoji.SantaClaus,
281 | /* 🤶 */Emoji.MrsClaus,
282 | /* 🧙♀️ */Emoji.WomanMage,
283 | /* 🧙♂️ */Emoji.ManMage,
284 | /* 🧚♀️ */Emoji.WomanFairy,
285 | /* 🧚♂️ */Emoji.ManFairy,
286 | /* 🧛♀️ */Emoji.WomanVampire,
287 | /* 🧛♂️ */Emoji.ManVampire,
288 | /* 🧜♀️ */Emoji.Mermaid,
289 | /* 🧜♂️ */Emoji.Merman,
290 | /* 🧝♀️ */Emoji.WomanElf,
291 | /* 🧝♂️ */Emoji.ManElf,
292 | /* 🧟♀️ */Emoji.WomanZombie,
293 | /* 🧟♂️ */Emoji.ManZombie,
294 | /* 🙍♂️ */Emoji.ManFrowning,
295 | /* 🙍♀️ */Emoji.WomanFrowning,
296 | /* 🙎♂️ */Emoji.ManPouting,
297 | /* 🙎♀️ */Emoji.WomanPouting,
298 | /* 🙅♂️ */Emoji.ManGesturingNo,
299 | /* 🙅♀️ */Emoji.WomanGesturingNo,
300 | /* 🙆♂️ */Emoji.ManGesturingOk,
301 | /* 🙆♀️ */Emoji.WomanGesturingOk,
302 | /* 💁♂️ */Emoji.ManTippingHand,
303 | /* 💁♀️ */Emoji.WomanTippingHand,
304 | /* 🙋♂️ */Emoji.ManRaisingHand,
305 | /* 🙋♀️ */Emoji.WomanRaisingHand,
306 | /* 🙇♂️ */Emoji.ManBowing,
307 | /* 🙇♀️ */Emoji.WomanBowing,
308 | /* 🤦♂️ */Emoji.ManFacepalming,
309 | /* 🤦♀️ */Emoji.WomanFacepalming,
310 | /* 🤷♂️ */Emoji.ManShrugging,
311 | /* 🤷♀️ */Emoji.WomanShrugging,
312 | /* 💆♂️ */Emoji.ManGettingMassage,
313 | /* 💆♀️ */Emoji.WomanGettingMassage,
314 | /* 💇♂️ */Emoji.ManGettingHaircut,
315 | /* 💇♀️ */Emoji.WomanGettingHaircut,
316 | /* 🚶♂️ */Emoji.ManWalking,
317 | /* 🚶♀️ */Emoji.WomanWalking,
318 | /* 🏃♂️ */Emoji.ManRunning,
319 | /* 🏃♀️ */Emoji.WomanRunning,
320 | /* 💃 */Emoji.WomanDancing,
321 | /* 🕺 */Emoji.ManDancing,
322 | /* 🧖♀️ */Emoji.WomanInSteamyRoom,
323 | /* 🧖♂️ */Emoji.ManInSteamyRoom,
324 | /* 🧗♀️ */Emoji.WomanClimbing,
325 | /* 🧗♂️ */Emoji.ManClimbing,
326 | /* 🧘♀️ */Emoji.WomanInLotusPosition,
327 | /* 🧘♂️ */Emoji.ManInLotusPosition,
328 | /* 🛀 */Emoji.PersonTakingBath,
329 | /* 🛌 */Emoji.PersonInBed,
330 | /* 🏇 */Emoji.HorseRacing,
331 | /* 🏂 */Emoji.Snowboarder,
332 | /* 🏌️♂️ */Emoji.ManGolfing,
333 | /* 🏌️♀️ */Emoji.WomanGolfing,
334 | /* 🏄♂️ */Emoji.ManSurfing,
335 | /* 🏄♀️ */Emoji.WomanSurfing,
336 | /* 🚣♂️ */Emoji.ManRowingBoat,
337 | /* 🚣♀️ */Emoji.WomanRowingBoat,
338 | /* 🏊♂️ */Emoji.ManSwimming,
339 | /* 🏊♀️ */Emoji.WomanSwimming,
340 | /* ⛹️♂️ */Emoji.ManBouncingBall,
341 | /* ⛹️♀️ */Emoji.WomanBouncingBall,
342 | /* 🏋️♂️ */Emoji.ManLiftingWeights,
343 | /* 🏋️♀️ */Emoji.WomanLiftingWeights,
344 | /* 🚴♂️ */Emoji.ManBiking,
345 | /* 🚴♀️ */Emoji.WomanBiking,
346 | /* 🚵♂️ */Emoji.ManMountainBiking,
347 | /* 🚵♀️ */Emoji.WomanMountainBiking,
348 | /* 🤸♂️ */Emoji.ManCartwheeling,
349 | /* 🤸♀️ */Emoji.WomanCartwheeling,
350 | /* 🤽♂️ */Emoji.ManPlayingWaterPolo,
351 | /* 🤽♀️ */Emoji.WomanPlayingWaterPolo,
352 | /* 🤾♂️ */Emoji.ManPlayingHandball,
353 | /* 🤾♀️ */Emoji.WomanPlayingHandball,
354 | /* 🤹♂️ */Emoji.ManJuggling,
355 | /* 🤹♀️ */Emoji.WomanJuggling,
356 | /* 🤳 */Emoji.Selfie,
357 | /* 💪 */Emoji.FlexedBiceps,
358 | /* 👈 */Emoji.BackhandIndexPointingLeft,
359 | /* 👉 */Emoji.BackhandIndexPointingRight,
360 | /* 👆 */Emoji.BackhandIndexPointingUp,
361 | /* 👇 */Emoji.BackhandIndexPointingDown,
362 | /* 🤞 */Emoji.CrossedFingers,
363 | /* 🖖 */Emoji.VulcanSalute,
364 | /* 🤘 */Emoji.SignOfTheHorns,
365 | /* 🤙 */Emoji.CallMeHand,
366 | /* ✋ */Emoji.RaisedHand,
367 | /* 👌 */Emoji.OkHand,
368 | /* 👍 */Emoji.ThumbsUp,
369 | /* 👎 */Emoji.ThumbsDown,
370 | /* ✊ */Emoji.RaisedFist,
371 | /* 👊 */Emoji.OncomingFist,
372 | /* 🤛 */Emoji.LeftFacingFist,
373 | /* 🤜 */Emoji.RightFacingFist,
374 | /* 🤚 */Emoji.RaisedBackOfHand,
375 | /* 👋 */Emoji.WavingHand,
376 | /* 🤟 */Emoji.LoveYouGesture,
377 | /* 👏 */Emoji.ClappingHands,
378 | /* 👐 */Emoji.OpenHands,
379 | /* 🙌 */Emoji.RaisingHands,
380 | /* 🤲 */Emoji.PalmsUpTogether,
381 | /* 🙏 */Emoji.FoldedHands,
382 | /* 🤝 */Emoji.Handshake,
383 | /* 💅 */Emoji.NailPolish,
384 | /* 👂 */Emoji.Ear,
385 | /* 👃 */Emoji.Nose
386 | }
387 | },
388 | { 2, new []
389 | {
390 | /* 🎈 */Emoji.Balloon,
391 | /* 💋 */Emoji.KissMark,
392 | /* 💣 */Emoji.Bomb,
393 | /* 👓 */Emoji.Glasses,
394 | /* 👔 */Emoji.Necktie,
395 | /* 👕 */Emoji.TShirt,
396 | /* 👖 */Emoji.Jeans,
397 | /* 🧣 */Emoji.Scarf,
398 | /* 🧤 */Emoji.Gloves,
399 | /* 🧥 */Emoji.Coat,
400 | /* 🧦 */Emoji.Socks,
401 | /* 👗 */Emoji.Dress,
402 | /* 👘 */Emoji.Kimono,
403 | /* 👙 */Emoji.Bikini,
404 | /* 👚 */Emoji.WomansClothes,
405 | /* 👛 */Emoji.Purse,
406 | /* 👜 */Emoji.Handbag,
407 | /* 👝 */Emoji.ClutchBag,
408 | /* 🎒 */Emoji.SchoolBackpack,
409 | /* 👞 */Emoji.MansShoe,
410 | /* 👟 */Emoji.RunningShoe,
411 | /* 👠 */Emoji.HighHeeledShoe,
412 | /* 👡 */Emoji.WomansSandal,
413 | /* 👢 */Emoji.WomansBoot,
414 | /* 👑 */Emoji.Crown,
415 | /* 👒 */Emoji.WomansHat,
416 | /* 🎩 */Emoji.TopHat,
417 | /* 🎓 */Emoji.GraduationCap,
418 | /* 🧢 */Emoji.BilledCap,
419 | /* 📿 */Emoji.PrayerBeads,
420 | /* 💄 */Emoji.Lipstick,
421 | /* 💍 */Emoji.Ring,
422 | /* 💎 */Emoji.GemStone,
423 | /* 🔪 */Emoji.KitchenKnife,
424 | /* 🎠 */Emoji.CarouselHorse,
425 | /* 🎡 */Emoji.FerrisWheel,
426 | /* 🎢 */Emoji.RollerCoaster,
427 | /* 🎪 */Emoji.CircusTent,
428 | /* 🎭 */Emoji.PerformingArts,
429 | /* 🎨 */Emoji.ArtistPalette,
430 | /* 🎰 */Emoji.SlotMachine,
431 | /* 🛶 */Emoji.Canoe,
432 | /* ⌛ */Emoji.Hourglass,
433 | /* ⏳ */Emoji.HourglassWithFlowingSand,
434 | /* ⌚ */Emoji.Watch,
435 | /* ⏰ */Emoji.AlarmClock,
436 | /* 🎃 */Emoji.JackOLantern,
437 | /* 🎄 */Emoji.ChristmasTree,
438 | /* 🎆 */Emoji.Fireworks,
439 | /* 🎇 */Emoji.Sparkler,
440 | /* ✨ */Emoji.Sparkles,
441 | /* 🎉 */Emoji.PartyPopper,
442 | /* 🎊 */Emoji.ConfettiBall,
443 | /* 🎋 */Emoji.TanabataTree,
444 | /* 🎍 */Emoji.PineDecoration,
445 | /* 🎎 */Emoji.JapaneseDolls,
446 | /* 🎏 */Emoji.CarpStreamer,
447 | /* 🎐 */Emoji.WindChime,
448 | /* 🎑 */Emoji.MoonViewingCeremony,
449 | /* 🎀 */Emoji.Ribbon,
450 | /* 🎁 */Emoji.WrappedGift,
451 | /* 🎫 */Emoji.Ticket,
452 | /* 🏆 */Emoji.Trophy,
453 | /* 🏅 */Emoji.SportsMedal,
454 | /* 🥇 */Emoji.FirstPlaceMedal,
455 | /* 🥈 */Emoji.SecondPlaceMedal,
456 | /* 🥉 */Emoji.ThirdPlaceMedal,
457 | /* ⚽ */Emoji.SoccerBall,
458 | /* ⚾ */Emoji.Baseball,
459 | /* 🏀 */Emoji.Basketball,
460 | /* 🏐 */Emoji.Volleyball,
461 | /* 🏈 */Emoji.AmericanFootball,
462 | /* 🏉 */Emoji.RugbyFootball,
463 | /* 🎾 */Emoji.Tennis,
464 | /* 🎱 */Emoji.Pool8Ball,
465 | /* 🎳 */Emoji.Bowling,
466 | /* 🏑 */Emoji.FieldHockey,
467 | /* 🏒 */Emoji.IceHockey,
468 | /* 🏓 */Emoji.PingPong,
469 | /* 🏸 */Emoji.Badminton,
470 | /* 🥊 */Emoji.BoxingGlove,
471 | /* 🥋 */Emoji.MartialArtsUniform,
472 | /* 🥅 */Emoji.GoalNet,
473 | /* 🎯 */Emoji.DirectHit,
474 | /* ⛳ */Emoji.FlagInHole,
475 | /* 🎣 */Emoji.FishingPole,
476 | /* 🎽 */Emoji.RunningShirt,
477 | /* 🎿 */Emoji.Skis,
478 | /* 🛷 */Emoji.Sled,
479 | /* 🥌 */Emoji.CurlingStone,
480 | /* 🎮 */Emoji.VideoGame,
481 | /* 🎲 */Emoji.GameDie,
482 | /* 🃏 */Emoji.Joker,
483 | /* 🀄 */Emoji.MahjongRedDragon,
484 | /* 🎴 */Emoji.FlowerPlayingCards,
485 | /* 🔈 */Emoji.SpeakerLowVolume,
486 | /* 🔉 */Emoji.SpeakerMediumVolume,
487 | /* 🔊 */Emoji.SpeakerHighVolume,
488 | /* 📢 */Emoji.Loudspeaker,
489 | /* 📣 */Emoji.Megaphone,
490 | /* 📯 */Emoji.PostalHorn,
491 | /* 🔔 */Emoji.Bell,
492 | /* 🎼 */Emoji.MusicalScore,
493 | /* 🎵 */Emoji.MusicalNote,
494 | /* 🎶 */Emoji.MusicalNotes,
495 | /* 🎤 */Emoji.Microphone,
496 | /* 🎧 */Emoji.Headphone,
497 | /* 📻 */Emoji.Radio,
498 | /* 🎷 */Emoji.Saxophone,
499 | /* 🎸 */Emoji.Guitar,
500 | /* 🎹 */Emoji.MusicalKeyboard,
501 | /* 🎺 */Emoji.Trumpet,
502 | /* 🎻 */Emoji.Violin,
503 | /* 🥁 */Emoji.Drum,
504 | /* 📱 */Emoji.MobilePhone,
505 | /* 📲 */Emoji.MobilePhoneWithArrow,
506 | /* 📞 */Emoji.TelephoneReceiver,
507 | /* 📟 */Emoji.Pager,
508 | /* 📠 */Emoji.FaxMachine,
509 | /* 🔋 */Emoji.Battery,
510 | /* 🔌 */Emoji.ElectricPlug,
511 | /* 💻 */Emoji.LaptopComputer,
512 | /* 💽 */Emoji.ComputerDisk,
513 | /* 💾 */Emoji.FloppyDisk,
514 | /* 💿 */Emoji.OpticalDisk,
515 | /* 📀 */Emoji.Dvd,
516 | /* 🎥 */Emoji.MovieCamera,
517 | /* 🎬 */Emoji.ClapperBoard,
518 | /* 📺 */Emoji.Television,
519 | /* 📷 */Emoji.Camera,
520 | /* 📸 */Emoji.CameraWithFlash,
521 | /* 📹 */Emoji.VideoCamera,
522 | /* 📼 */Emoji.Videocassette,
523 | /* 🔍 */Emoji.LeftPointingMagnifyingGlass,
524 | /* 🔎 */Emoji.RightPointingMagnifyingGlass,
525 | /* 🔬 */Emoji.Microscope,
526 | /* 🔭 */Emoji.Telescope,
527 | /* 📡 */Emoji.SatelliteAntenna,
528 | /* 💡 */Emoji.LightBulb,
529 | /* 🔦 */Emoji.Flashlight,
530 | /* 🏮 */Emoji.RedPaperLantern,
531 | /* 📔 */Emoji.NotebookWithDecorativeCover,
532 | /* 📕 */Emoji.ClosedBook,
533 | /* 📖 */Emoji.OpenBook,
534 | /* 📗 */Emoji.GreenBook,
535 | /* 📘 */Emoji.BlueBook,
536 | /* 📙 */Emoji.OrangeBook,
537 | /* 📚 */Emoji.Books,
538 | /* 📓 */Emoji.Notebook,
539 | /* 📒 */Emoji.Ledger,
540 | /* 📃 */Emoji.PageWithCurl,
541 | /* 📜 */Emoji.Scroll,
542 | /* 📄 */Emoji.PageFacingUp,
543 | /* 📰 */Emoji.Newspaper,
544 | /* 📑 */Emoji.BookmarkTabs,
545 | /* 🔖 */Emoji.Bookmark,
546 | /* 💰 */Emoji.MoneyBag,
547 | /* 💴 */Emoji.YenBanknote,
548 | /* 💵 */Emoji.DollarBanknote,
549 | /* 💶 */Emoji.EuroBanknote,
550 | /* 💷 */Emoji.PoundBanknote,
551 | /* 💸 */Emoji.MoneyWithWings,
552 | /* 💳 */Emoji.CreditCard,
553 | /* 📧 */Emoji.EMail,
554 | /* 📨 */Emoji.IncomingEnvelope,
555 | /* 📩 */Emoji.EnvelopeWithArrow,
556 | /* 📤 */Emoji.OutboxTray,
557 | /* 📥 */Emoji.InboxTray,
558 | /* 📦 */Emoji.Package,
559 | /* 📫 */Emoji.ClosedMailboxWithRaisedFlag,
560 | /* 📪 */Emoji.ClosedMailboxWithLoweredFlag,
561 | /* 📬 */Emoji.OpenMailboxWithRaisedFlag,
562 | /* 📭 */Emoji.OpenMailboxWithLoweredFlag,
563 | /* 📮 */Emoji.Postbox,
564 | /* 📝 */Emoji.Memo,
565 | /* 💼 */Emoji.Briefcase,
566 | /* 📁 */Emoji.FileFolder,
567 | /* 📂 */Emoji.OpenFileFolder,
568 | /* 📅 */Emoji.Calendar,
569 | /* 📆 */Emoji.TearOffCalendar,
570 | /* 📇 */Emoji.CardIndex,
571 | /* 📈 */Emoji.ChartIncreasing,
572 | /* 📉 */Emoji.ChartDecreasing,
573 | /* 📊 */Emoji.BarChart,
574 | /* 📋 */Emoji.Clipboard,
575 | /* 📌 */Emoji.Pushpin,
576 | /* 📍 */Emoji.RoundPushpin,
577 | /* 📎 */Emoji.Paperclip,
578 | /* 📏 */Emoji.StraightRuler,
579 | /* 📐 */Emoji.TriangularRuler,
580 | /* 🔒 */Emoji.Locked,
581 | /* 🔓 */Emoji.Unlocked,
582 | /* 🔏 */Emoji.LockedWithPen,
583 | /* 🔐 */Emoji.LockedWithKey,
584 | /* 🔑 */Emoji.Key,
585 | /* 🔨 */Emoji.Hammer,
586 | /* 🔫 */Emoji.Pistol,
587 | /* 🏹 */Emoji.BowAndArrow,
588 | /* 🔧 */Emoji.Wrench,
589 | /* 🔩 */Emoji.NutAndBolt,
590 | /* 🔗 */Emoji.Link,
591 | /* 💉 */Emoji.Syringe,
592 | /* 💊 */Emoji.Pill,
593 | /* 🚬 */Emoji.Cigarette,
594 | /* 🗿 */Emoji.Moai,
595 | /* 🔮 */Emoji.CrystalBall,
596 | /* 🛒 */Emoji.ShoppingCart,
597 | /* 🏧 */Emoji.AtmSign,
598 | /* 🎦 */Emoji.Cinema,
599 | /* 📳 */Emoji.VibrationMode,
600 | /* 📴 */Emoji.MobilePhoneOff
601 | }
602 | },
603 | { 3, new []
604 | {
605 | /* 🍔 */Emoji.Hamburger,
606 | /* 🍟 */Emoji.FrenchFries,
607 | /* 🍕 */Emoji.Pizza,
608 | /* 🌭 */Emoji.HotDog,
609 | /* 🥪 */Emoji.Sandwich,
610 | /* 🌮 */Emoji.Taco,
611 | /* 🌯 */Emoji.Burrito,
612 | /* 🥐 */Emoji.Croissant,
613 | /* 🥖 */Emoji.BaguetteBread,
614 | /* 🥨 */Emoji.Pretzel,
615 | /* 🥞 */Emoji.Pancakes,
616 | /* 🧀 */Emoji.CheeseWedge,
617 | /* 🍖 */Emoji.MeatOnBone,
618 | /* 🍗 */Emoji.PoultryLeg,
619 | /* 🥩 */Emoji.CutOfMeat,
620 | /* 🥓 */Emoji.Bacon,
621 | /* 🥙 */Emoji.StuffedFlatbread,
622 | /* 🥚 */Emoji.Egg,
623 | /* 🍳 */Emoji.Cooking,
624 | /* 🥘 */Emoji.ShallowPanOfFood,
625 | /* 🍲 */Emoji.PotOfFood,
626 | /* 🥣 */Emoji.BowlWithSpoon,
627 | /* 🥗 */Emoji.GreenSalad,
628 | /* 🍿 */Emoji.Popcorn,
629 | /* 🥫 */Emoji.CannedFood,
630 | /* 🍱 */Emoji.BentoBox,
631 | /* 🍘 */Emoji.RiceCracker,
632 | /* 🍙 */Emoji.RiceBall,
633 | /* 🍚 */Emoji.CookedRice,
634 | /* 🍛 */Emoji.CurryRice,
635 | /* 🍜 */Emoji.SteamingBowl,
636 | /* 🍝 */Emoji.Spaghetti,
637 | /* 🍠 */Emoji.RoastedSweetPotato,
638 | /* 🍢 */Emoji.Oden,
639 | /* 🍣 */Emoji.Sushi,
640 | /* 🍤 */Emoji.FriedShrimp,
641 | /* 🍥 */Emoji.FishCakeWithSwirl,
642 | /* 🍡 */Emoji.Dango,
643 | /* 🥟 */Emoji.Dumpling,
644 | /* 🥠 */Emoji.FortuneCookie,
645 | /* 🥡 */Emoji.TakeoutBox,
646 | /* 🍦 */Emoji.SoftIceCream,
647 | /* 🍧 */Emoji.ShavedIce,
648 | /* 🍨 */Emoji.IceCream,
649 | /* 🍩 */Emoji.Doughnut,
650 | /* 🍪 */Emoji.Cookie,
651 | /* 🎂 */Emoji.BirthdayCake,
652 | /* 🍰 */Emoji.Shortcake,
653 | /* 🥧 */Emoji.Pie,
654 | /* 🍫 */Emoji.ChocolateBar,
655 | /* 🍬 */Emoji.Candy,
656 | /* 🍭 */Emoji.Lollipop,
657 | /* 🍮 */Emoji.Custard,
658 | /* 🍯 */Emoji.HoneyPot,
659 | /* 🍼 */Emoji.BabyBottle,
660 | /* 🥛 */Emoji.GlassOfMilk,
661 | /* ☕ */Emoji.HotBeverage,
662 | /* 🍵 */Emoji.TeacupWithoutHandle,
663 | /* 🍶 */Emoji.Sake,
664 | /* 🍾 */Emoji.BottleWithPoppingCork,
665 | /* 🍷 */Emoji.WineGlass,
666 | /* 🍸 */Emoji.CocktailGlass,
667 | /* 🍹 */Emoji.TropicalDrink,
668 | /* 🍺 */Emoji.BeerMug,
669 | /* 🍻 */Emoji.ClinkingBeerMugs,
670 | /* 🥂 */Emoji.ClinkingGlasses,
671 | /* 🥃 */Emoji.TumblerGlass,
672 | /* 🥤 */Emoji.CupWithStraw,
673 | /* 🥢 */Emoji.Chopsticks,
674 | /* 🍴 */Emoji.ForkAndKnife,
675 | /* ☐☐ */Emoji.Spoon,
676 | /* 🏺 */Emoji.Amphora,
677 | /* 💐 */Emoji.Bouquet,
678 | /* 🌸 */Emoji.CherryBlossom,
679 | /* 🌹 */Emoji.Rose,
680 | /* 🥀 */Emoji.WiltedFlower,
681 | /* 🌺 */Emoji.Hibiscus,
682 | /* 🌻 */Emoji.Sunflower,
683 | /* 🌼 */Emoji.Blossom,
684 | /* 🌷 */Emoji.Tulip,
685 | /* 🌱 */Emoji.Seedling,
686 | /* 🌲 */Emoji.EvergreenTree,
687 | /* 🌳 */Emoji.DeciduousTree,
688 | /* 🌴 */Emoji.PalmTree,
689 | /* 🌵 */Emoji.Cactus,
690 | /* 🌾 */Emoji.SheafOfRice,
691 | /* 🌿 */Emoji.Herb,
692 | /* 🍀 */Emoji.FourLeafClover,
693 | /* 🍁 */Emoji.MapleLeaf,
694 | /* 🍂 */Emoji.FallenLeaf,
695 | /* 🍃 */Emoji.LeafFlutteringInWind,
696 | /* 🍇 */Emoji.Grapes,
697 | /* 🍈 */Emoji.Melon,
698 | /* 🍉 */Emoji.Watermelon,
699 | /* 🍊 */Emoji.Tangerine,
700 | /* 🍋 */Emoji.Lemon,
701 | /* 🍌 */Emoji.Banana,
702 | /* 🍍 */Emoji.Pineapple,
703 | /* 🍎 */Emoji.RedApple,
704 | /* 🍏 */Emoji.GreenApple,
705 | /* 🍐 */Emoji.Pear,
706 | /* 🍑 */Emoji.Peach,
707 | /* 🍒 */Emoji.Cherries,
708 | /* 🍓 */Emoji.Strawberry,
709 | /* 🥝 */Emoji.KiwiFruit,
710 | /* 🍅 */Emoji.Tomato,
711 | /* 🥥 */Emoji.Coconut,
712 | /* 🥑 */Emoji.Avocado,
713 | /* 🍆 */Emoji.Eggplant,
714 | /* 🥔 */Emoji.Potato,
715 | /* 🥕 */Emoji.Carrot,
716 | /* 🌽 */Emoji.EarOfCorn,
717 | /* 🥒 */Emoji.Cucumber,
718 | /* 🥦 */Emoji.Broccoli,
719 | /* 🍄 */Emoji.Mushroom,
720 | /* 🥜 */Emoji.Peanuts,
721 | /* 🌰 */Emoji.Chestnut,
722 | /* 🍞 */Emoji.Bread
723 | }
724 | },
725 | { 4, new []
726 | {
727 | /* 🚗 */Emoji.Automobile,
728 | /* 🚘 */Emoji.OncomingAutomobile,
729 | /* 🚂 */Emoji.Locomotive,
730 | /* 🚃 */Emoji.RailwayCar,
731 | /* 🚄 */Emoji.HighSpeedTrain,
732 | /* 🚅 */Emoji.HighSpeedTrainWithBulletNose,
733 | /* 🚆 */Emoji.Train,
734 | /* 🚇 */Emoji.Metro,
735 | /* 🚈 */Emoji.LightRail,
736 | /* 🚉 */Emoji.Station,
737 | /* 🚊 */Emoji.Tram,
738 | /* 🚝 */Emoji.Monorail,
739 | /* 🚞 */Emoji.MountainRailway,
740 | /* 🚋 */Emoji.TramCar,
741 | /* 🚌 */Emoji.Bus,
742 | /* 🚍 */Emoji.OncomingBus,
743 | /* 🚎 */Emoji.Trolleybus,
744 | /* 🚐 */Emoji.Minibus,
745 | /* 🚑 */Emoji.Ambulance,
746 | /* 🚒 */Emoji.FireEngine,
747 | /* 🚓 */Emoji.PoliceCar,
748 | /* 🚔 */Emoji.OncomingPoliceCar,
749 | /* 🚕 */Emoji.Taxi,
750 | /* 🚖 */Emoji.OncomingTaxi,
751 | /* 🚙 */Emoji.SportUtilityVehicle,
752 | /* 🚚 */Emoji.DeliveryTruck,
753 | /* 🚛 */Emoji.ArticulatedLorry,
754 | /* 🚜 */Emoji.Tractor,
755 | /* 🚲 */Emoji.Bicycle,
756 | /* 🛴 */Emoji.KickScooter,
757 | /* 🛵 */Emoji.MotorScooter,
758 | /* 🚏 */Emoji.BusStop,
759 | /* ⛽ */Emoji.FuelPump,
760 | /* 🚨 */Emoji.PoliceCarLight,
761 | /* 🚥 */Emoji.HorizontalTrafficLight,
762 | /* 🚦 */Emoji.VerticalTrafficLight,
763 | /* 🚧 */Emoji.Construction,
764 | /* ⚓ */Emoji.Anchor,
765 | /* ⛵ */Emoji.Sailboat,
766 | /* 🚤 */Emoji.Speedboat,
767 | /* 🚢 */Emoji.Ship,
768 | /* 🛫 */Emoji.AirplaneDeparture,
769 | /* 🛬 */Emoji.AirplaneArrival,
770 | /* 💺 */Emoji.Seat,
771 | /* 🚁 */Emoji.Helicopter,
772 | /* 🚟 */Emoji.SuspensionRailway,
773 | /* 🚠 */Emoji.MountainCableway,
774 | /* 🚡 */Emoji.AerialTramway,
775 | /* 🚀 */Emoji.Rocket,
776 | /* 🛸 */Emoji.FlyingSaucer,
777 | /* 🚪 */Emoji.Door,
778 | /* 🚽 */Emoji.Toilet,
779 | /* 🚿 */Emoji.Shower,
780 | /* 🛁 */Emoji.Bathtub,
781 | /* 🌑 */Emoji.NewMoon,
782 | /* 🌒 */Emoji.WaxingCrescentMoon,
783 | /* 🌓 */Emoji.FirstQuarterMoon,
784 | /* 🌔 */Emoji.WaxingGibbousMoon,
785 | /* 🌕 */Emoji.FullMoon,
786 | /* 🌖 */Emoji.WaningGibbousMoon,
787 | /* 🌗 */Emoji.LastQuarterMoon,
788 | /* 🌘 */Emoji.WaningCrescentMoon,
789 | /* 🌙 */Emoji.CrescentMoon,
790 | /* 🌚 */Emoji.NewMoonFace,
791 | /* 🌛 */Emoji.FirstQuarterMoonWithFace,
792 | /* 🌜 */Emoji.LastQuarterMoonWithFace,
793 | /* 🌝 */Emoji.FullMoonWithFace,
794 | /* 🌞 */Emoji.SunWithFace,
795 | /* ⭐ */Emoji.WhiteMediumStar,
796 | /* 🌟 */Emoji.GlowingStar,
797 | /* 🌠 */Emoji.ShootingStar,
798 | /* ⛅ */Emoji.SunBehindCloud,
799 | /* 🌀 */Emoji.Cyclone,
800 | /* 🌈 */Emoji.Rainbow,
801 | /* 🌂 */Emoji.ClosedUmbrella,
802 | /* ☔ */Emoji.UmbrellaWithRainDrops,
803 | /* ⚡ */Emoji.HighVoltage,
804 | /* ⛄ */Emoji.SnowmanWithoutSnow,
805 | /* 🔥 */Emoji.Fire,
806 | /* 💧 */Emoji.Droplet,
807 | /* 🌊 */Emoji.WaterWave,
808 | /* 🏁 */Emoji.ChequeredFlag,
809 | /* 🚩 */Emoji.TriangularFlag,
810 | /* 🎌 */Emoji.CrossedFlags,
811 | /* 🏴 */Emoji.BlackFlag,
812 | /* 🌍 */Emoji.GlobeShowingEuropeAfrica,
813 | /* 🌎 */Emoji.GlobeShowingAmericas,
814 | /* 🌏 */Emoji.GlobeShowingAsiaAustralia,
815 | /* 🗾 */Emoji.MapOfJapan,
816 | /* 🌋 */Emoji.Volcano,
817 | /* 🗻 */Emoji.MountFuji,
818 | /* 🏡 */Emoji.HouseWithGarden,
819 | /* 🏢 */Emoji.OfficeBuilding,
820 | /* 🏣 */Emoji.JapanesePostOffice,
821 | /* 🏤 */Emoji.PostOffice,
822 | /* 🏥 */Emoji.Hospital,
823 | /* 🏦 */Emoji.Bank,
824 | /* 🏨 */Emoji.Hotel,
825 | /* 🏩 */Emoji.LoveHotel,
826 | /* 🏪 */Emoji.ConvenienceStore,
827 | /* 🏫 */Emoji.School,
828 | /* 🏬 */Emoji.DepartmentStore,
829 | /* 🏭 */Emoji.Factory,
830 | /* 🏯 */Emoji.JapaneseCastle,
831 | /* 🏰 */Emoji.Castle,
832 | /* 💒 */Emoji.Wedding,
833 | /* 🗼 */Emoji.TokyoTower,
834 | /* 🗽 */Emoji.StatueOfLiberty,
835 | /* ⛪ */Emoji.Church,
836 | /* 🕌 */Emoji.Mosque,
837 | /* 🕍 */Emoji.Synagogue,
838 | /* 🕋 */Emoji.Kaaba,
839 | /* ⛲ */Emoji.Fountain,
840 | /* ⛺ */Emoji.Tent,
841 | /* 🌁 */Emoji.Foggy,
842 | /* 🌃 */Emoji.NightWithStars,
843 | /* 🌄 */Emoji.SunriseOverMountains,
844 | /* 🌅 */Emoji.Sunrise,
845 | /* 🌆 */Emoji.CityscapeAtDusk,
846 | /* 🌇 */Emoji.Sunset,
847 | /* 🌉 */Emoji.BridgeAtNight,
848 | /* 🌌 */Emoji.MilkyWay,
849 | /* 💈 */Emoji.BarberPole
850 | }
851 | },
852 | { 5, new []
853 | {
854 | /* 💙 */Emoji.RedHeart,
855 | /* 💙 */Emoji.BlueHeart,
856 | /* 💚 */Emoji.GreenHeart,
857 | /* 💛 */Emoji.YellowHeart,
858 | /* 🧡 */Emoji.OrangeHeart,
859 | /* 💜 */Emoji.PurpleHeart,
860 | /* 🖤 */Emoji.BlackHeart,
861 | /* 💘 */Emoji.HeartWithArrow,
862 | /* 💓 */Emoji.BeatingHeart,
863 | /* 💔 */Emoji.BrokenHeart,
864 | /* 💕 */Emoji.TwoHearts,
865 | /* 💖 */Emoji.SparklingHeart,
866 | /* 💗 */Emoji.GrowingHeart,
867 | /* 💝 */Emoji.HeartWithRibbon,
868 | /* 💞 */Emoji.RevolvingHearts,
869 | /* 💟 */Emoji.HeartDecoration,
870 | /* 💌 */Emoji.LoveLetter,
871 | /* 💤 */Emoji.Zzz,
872 | /* 💢 */Emoji.AngerSymbol,
873 | /* 💥 */Emoji.Collision,
874 | /* 💦 */Emoji.SweatDroplets,
875 | /* 💨 */Emoji.DashingAway,
876 | /* 💫 */Emoji.Dizzy,
877 | /* 💬 */Emoji.SpeechBalloon,
878 | /* 💭 */Emoji.ThoughtBalloon,
879 | /* 💮 */Emoji.WhiteFlower,
880 | /* 🌐 */Emoji.GlobeWithMeridians,
881 | /* 🛑 */Emoji.StopSign,
882 | /* 🔇 */Emoji.MutedSpeaker,
883 | /* 🔕 */Emoji.BellWithSlash,
884 | /* 💹 */Emoji.ChartIncreasingWithYen,
885 | /* 💱 */Emoji.CurrencyExchange,
886 | /* 💲 */Emoji.HeavyDollarSign,
887 | /* 🚮 */Emoji.LitterInBinSign,
888 | /* 🚰 */Emoji.PotableWater,
889 | /* ♿ */Emoji.WheelchairSymbol,
890 | /* 🚹 */Emoji.MensRoom,
891 | /* 🚺 */Emoji.WomensRoom,
892 | /* 🚻 */Emoji.Restroom,
893 | /* 🚼 */Emoji.BabySymbol,
894 | /* 🚾 */Emoji.WaterCloset,
895 | /* 🛂 */Emoji.PassportControl,
896 | /* 🛃 */Emoji.Customs,
897 | /* 🛄 */Emoji.BaggageClaim,
898 | /* 🛅 */Emoji.LeftLuggage,
899 | /* 🚸 */Emoji.ChildrenCrossing,
900 | /* ⛔ */Emoji.NoEntry,
901 | /* 🚫 */Emoji.Prohibited,
902 | /* 🚳 */Emoji.NoBicycles,
903 | /* 🚭 */Emoji.NoSmoking,
904 | /* 🚯 */Emoji.NoLittering,
905 | /* 🚱 */Emoji.NonPotableWater,
906 | /* 🚷 */Emoji.NoPedestrians,
907 | /* 📵 */Emoji.NoMobilePhones,
908 | /* 🔞 */Emoji.NoOneUnderEighteen,
909 | /* 🔃 */Emoji.ClockwiseVerticalArrows,
910 | /* 🔄 */Emoji.AnticlockwiseArrowsButton,
911 | /* 🔙 */Emoji.BackArrow,
912 | /* 🔚 */Emoji.EndArrow,
913 | /* 🔛 */Emoji.OnArrow,
914 | /* 🔜 */Emoji.SoonArrow,
915 | /* 🔝 */Emoji.TopArrow,
916 | /* 🛐 */Emoji.PlaceOfWorship,
917 | /* 🕎 */Emoji.Menorah,
918 | /* 🔯 */Emoji.DottedSixPointedStar,
919 | /* ♈ */Emoji.Aries,
920 | /* ♉ */Emoji.Taurus,
921 | /* ♊ */Emoji.Gemini,
922 | /* ♋ */Emoji.Cancer,
923 | /* ♌ */Emoji.Leo,
924 | /* ♍ */Emoji.Virgo,
925 | /* ♎ */Emoji.Libra,
926 | /* ♏ */Emoji.Scorpius,
927 | /* ♐ */Emoji.Sagittarius,
928 | /* ♑ */Emoji.Capricorn,
929 | /* ♒ */Emoji.Aquarius,
930 | /* ♓ */Emoji.Pisces,
931 | /* ⛎ */Emoji.Ophiuchus,
932 | /* 🔀 */Emoji.ShuffleTracksButton,
933 | /* 🔁 */Emoji.RepeatButton,
934 | /* 🔂 */Emoji.RepeatSingleButton,
935 | /* ⏩ */Emoji.FastForwardButton,
936 | /* ⏪ */Emoji.FastReverseButton,
937 | /* 🔼 */Emoji.UpButton,
938 | /* ⏫ */Emoji.FastUpButton,
939 | /* 🔽 */Emoji.DownButton,
940 | /* ⏬ */Emoji.FastDownButton,
941 | /* 🔅 */Emoji.DimButton,
942 | /* 🔆 */Emoji.BrightButton,
943 | /* 📶 */Emoji.AntennaBars,
944 | /* 🔱 */Emoji.TridentEmblem,
945 | /* 📛 */Emoji.NameBadge,
946 | /* 🔰 */Emoji.JapaneseSymbolForBeginner,
947 | /* ⭕ */Emoji.HeavyLargeCircle,
948 | /* ✅ */Emoji.WhiteHeavyCheckMark,
949 | /* ❌ */Emoji.CrossMark,
950 | /* ❎ */Emoji.CrossMarkButton,
951 | /* ➕ */Emoji.HeavyPlusSign,
952 | /* ➖ */Emoji.HeavyMinusSign,
953 | /* ➗ */Emoji.HeavyDivisionSign,
954 | /* ➰ */Emoji.CurlyLoop,
955 | /* ➿ */Emoji.DoubleCurlyLoop,
956 | /* ❓ */Emoji.QuestionMark,
957 | /* ❔ */Emoji.WhiteQuestionMark,
958 | /* ❕ */Emoji.WhiteExclamationMark,
959 | /* ❗ */Emoji.ExclamationMark,
960 | /* #️⃣ */Emoji.KeycapHash,
961 | /* *️⃣ */Emoji.KeycapAsterisk,
962 | /* 0️⃣ */Emoji.Keycap0,
963 | /* 1️⃣ */Emoji.Keycap1,
964 | /* 2️⃣ */Emoji.Keycap2,
965 | /* 3️⃣ */Emoji.Keycap3,
966 | /* 4️⃣ */Emoji.Keycap4,
967 | /* 5️⃣ */Emoji.Keycap5,
968 | /* 6️⃣ */Emoji.Keycap6,
969 | /* 7️⃣ */Emoji.Keycap7,
970 | /* 8️⃣ */Emoji.Keycap8,
971 | /* 9️⃣ */Emoji.Keycap9,
972 | /* 🔟 */Emoji.Keycap10,
973 | /* 💯 */Emoji.HundredPoints,
974 | /* 🔠 */Emoji.InputLatinUppercase,
975 | /* 🔡 */Emoji.InputLatinLowercase,
976 | /* 🔢 */Emoji.InputNumbers,
977 | /* 🔣 */Emoji.InputSymbols,
978 | /* 🔤 */Emoji.InputLatinLetters,
979 | /* 🆎 */Emoji.AbButtonBloodType,
980 | /* 🆑 */Emoji.ClButton,
981 | /* 🆒 */Emoji.CoolButton,
982 | /* 🆓 */Emoji.FreeButton,
983 | /* 🆔 */Emoji.IdButton,
984 | /* 🆕 */Emoji.NewButton,
985 | /* 🆖 */Emoji.NgButton,
986 | /* 🆗 */Emoji.OkButton,
987 | /* 🆘 */Emoji.SosButton,
988 | /* 🆚 */Emoji.VsButton,
989 | /* 🈁 */Emoji.JapaneseHereButton,
990 | /* 🈶 */Emoji.JapaneseNotFreeOfChargeButton,
991 | /* 🈯 */Emoji.JapaneseReservedButton,
992 | /* 🉐 */Emoji.JapaneseBargainButton,
993 | /* 🈹 */Emoji.JapaneseDiscountButton,
994 | /* 🈚 */Emoji.JapaneseFreeOfChargeButton,
995 | /* 🈲 */Emoji.JapaneseProhibitedButton,
996 | /* 🉑 */Emoji.JapaneseAcceptableButton,
997 | /* 🈸 */Emoji.JapaneseApplicationButton,
998 | /* 🈴 */Emoji.JapanesePassingGradeButton,
999 | /* 🈳 */Emoji.JapaneseVacancyButton,
1000 | /* 🈺 */Emoji.JapaneseOpenForBusinessButton,
1001 | /* 🈵 */Emoji.JapaneseNoVacancyButton,
1002 | /* ◽ */Emoji.WhiteMediumSmallSquare,
1003 | /* ◾ */Emoji.BlackMediumSmallSquare,
1004 | /* ⬛ */Emoji.BlackLargeSquare,
1005 | /* ⬜ */Emoji.WhiteLargeSquare,
1006 | /* 🔶 */Emoji.LargeOrangeDiamond,
1007 | /* 🔷 */Emoji.LargeBlueDiamond,
1008 | /* 🔸 */Emoji.SmallOrangeDiamond,
1009 | /* 🔹 */Emoji.SmallBlueDiamond,
1010 | /* 🔺 */Emoji.RedTrianglePointedUp,
1011 | /* 🔻 */Emoji.RedTrianglePointedDown,
1012 | /* 💠 */Emoji.DiamondWithADot,
1013 | /* 🔘 */Emoji.RadioButton,
1014 | /* 🔲 */Emoji.BlackSquareButton,
1015 | /* 🔳 */Emoji.WhiteSquareButton,
1016 | /* ⚪ */Emoji.WhiteCircle,
1017 | /* ⚫ */Emoji.BlackCircle,
1018 | /* 🔴 */Emoji.RedCircle,
1019 | /* 🔵 */Emoji.BlueCircle,
1020 | /* 🕛 */Emoji.TwelveOclock,
1021 | /* 🕧 */Emoji.TwelveThirty,
1022 | /* 🕐 */Emoji.OneOclock,
1023 | /* 🕜 */Emoji.OneThirty,
1024 | /* 🕑 */Emoji.TwoOclock,
1025 | /* 🕝 */Emoji.TwoThirty,
1026 | /* 🕒 */Emoji.ThreeOclock,
1027 | /* 🕞 */Emoji.ThreeThirty,
1028 | /* 🕓 */Emoji.FourOclock,
1029 | /* 🕟 */Emoji.FourThirty,
1030 | /* 🕔 */Emoji.FiveOclock,
1031 | /* 🕠 */Emoji.FiveThirty,
1032 | /* 🕕 */Emoji.SixOclock,
1033 | /* 🕡 */Emoji.SixThirty,
1034 | /* 🕖 */Emoji.SevenOclock,
1035 | /* 🕢 */Emoji.SevenThirty,
1036 | /* 🕗 */Emoji.EightOclock,
1037 | /* 🕣 */Emoji.EightThirty,
1038 | /* 🕘 */Emoji.NineOclock,
1039 | /* 🕤 */Emoji.NineThirty,
1040 | /* 🕙 */Emoji.TenOclock,
1041 | /* 🕥 */Emoji.TenThirty,
1042 | /* 🕚 */Emoji.ElevenOclock,
1043 | /* 🕦 */Emoji.ElevenThirty
1044 | }
1045 | }
1046 | };
1047 |
1048 | private static readonly EmojiSkinTone[] SkinTones =
1049 | {
1050 | new EmojiSkinTone("✋", "", EmojiGroups[1]),
1051 | new EmojiSkinTone("✋🏻", ": light skin tone", EmojiGroups[1]),
1052 | new EmojiSkinTone("✋🏼", ": medium-light skin tone", EmojiGroups[1]),
1053 | new EmojiSkinTone("✋🏽", ": medium skin tone", EmojiGroups[1]),
1054 | new EmojiSkinTone("✋🏾", ": medium-dark skin tone", EmojiGroups[1]),
1055 | new EmojiSkinTone("✋🏿", ": dark skin tone", EmojiGroups[1])
1056 | };
1057 |
1058 | private SingleEmoji[] AllEmoji() => EmojiGroups.Values.SelectMany(s => s).ToArray();
1059 | }
1060 | }
1061 |
--------------------------------------------------------------------------------
/EmojiPicker/EmojiPicker.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using Windows.System;
6 | using Windows.UI;
7 | using Windows.UI.Xaml;
8 | using Windows.UI.Xaml.Controls;
9 | using Windows.UI.Xaml.Controls.Primitives;
10 | using Windows.UI.Xaml.Input;
11 | using Windows.UI.Xaml.Media;
12 | using Windows.UI.Xaml.Media.Animation;
13 | using NeoSmart.Unicode;
14 | using Windows.UI.Core;
15 | using System.Collections.ObjectModel;
16 |
17 | namespace EmojiPicker
18 | {
19 | public partial class EmojiPicker : Control
20 | {
21 | private static Popup openPopup;
22 |
23 | private int skinToneIndex = 0;
24 | private Border highlightBorder;
25 | private Button skinToneButton;
26 | private ListViewBase emojiPresenter;
27 | private Button[] categoryButtons;
28 | private Button closeButton;
29 | private TextBlock searchPhrase;
30 | private string selectedEmoji;
31 | private SingleEmoji[] activeEmoji;
32 | private ObservableCollection allEmoji;
33 | private bool searchMode;
34 |
35 | public EmojiPicker()
36 | {
37 | this.DefaultStyleKey = typeof(EmojiPicker);
38 | this.categoryButtons = new Button[6];
39 | }
40 |
41 | public static async Task ShowAsync()
42 | {
43 | var picker = new EmojiPicker();
44 | var container = new Grid
45 | {
46 | Width = Window.Current.Bounds.Width,
47 | Height = Window.Current.Bounds.Height,
48 | Background = new SolidColorBrush(new Color { A = 100, R = 100, G = 100, B = 100 })
49 | };
50 | container.Children.Add(picker);
51 |
52 | openPopup = new Popup
53 | {
54 | IsLightDismissEnabled = true,
55 | LightDismissOverlayMode = LightDismissOverlayMode.On,
56 | Child = container,
57 | HorizontalAlignment = HorizontalAlignment.Stretch,
58 | VerticalAlignment = VerticalAlignment.Stretch,
59 | ChildTransitions = new TransitionCollection
60 | {
61 | new ContentThemeTransition()
62 | },
63 | IsOpen = true
64 | };
65 |
66 | picker.Focus(FocusState.Programmatic);
67 |
68 | var tcs = new TaskCompletionSource();
69 |
70 | openPopup.Closed += (_, __) => tcs.SetResult(picker.selectedEmoji);
71 |
72 | return await tcs.Task;
73 | }
74 |
75 | protected override void OnApplyTemplate()
76 | {
77 | base.OnApplyTemplate();
78 |
79 | this.highlightBorder = (Border) this.GetTemplateChild("HighlightBorder");
80 | this.skinToneButton = (Button) this.GetTemplateChild("SkinToneButton");
81 | this.emojiPresenter = (ListViewBase) this.GetTemplateChild("EmojiPresenter");
82 |
83 | this.categoryButtons[0] = (Button) this.GetTemplateChild("SmilesButton");
84 | this.categoryButtons[1] = (Button) this.GetTemplateChild("PeopleButton");
85 | this.categoryButtons[2] = (Button) this.GetTemplateChild("BalloonButton");
86 | this.categoryButtons[3] = (Button) this.GetTemplateChild("PizzaButton");
87 | this.categoryButtons[4] = (Button) this.GetTemplateChild("CarButton");
88 | this.categoryButtons[5] = (Button) this.GetTemplateChild("HeartButton");
89 |
90 | this.closeButton = (Button) this.GetTemplateChild("CloseButton");
91 | this.searchPhrase = (TextBlock)this.GetTemplateChild("SearchPhrase");
92 |
93 | this.skinToneButton.Click += this.SkinToneButtonClick;
94 | this.closeButton.Click += this.CloseButtonClick;
95 | this.emojiPresenter.SelectionChanged += this.EmojiSelected;
96 |
97 | foreach (var button in this.categoryButtons)
98 | {
99 | button.Click += this.ChangeCategoryClick;
100 | }
101 |
102 | this.SetCurrentEmoji(0);
103 | this.allEmoji = new ObservableCollection();
104 | }
105 |
106 | protected override void OnKeyDown(KeyRoutedEventArgs e)
107 | {
108 | if (e.Key == VirtualKey.Tab)
109 | {
110 | var shift = CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Shift) == CoreVirtualKeyStates.Down;
111 | var current = Grid.GetColumn(this.highlightBorder);
112 | var i = this.PositiveModulo(shift ? current - 2 : current, 6);
113 | this.SetCurrentEmoji(i);
114 | Grid.SetColumn(this.highlightBorder, i + 1);
115 | }
116 |
117 | var key = (int)e.Key;
118 | if (key >= 0x41 && key <= 0x5A)
119 | {
120 | this.searchPhrase.Text += ((char)key).ToString().ToLower();
121 | this.RefreshSearch(this.searchPhrase.Text);
122 | }
123 |
124 | if (e.Key == VirtualKey.Back && this.searchPhrase.Text.Length > 0)
125 | {
126 | this.searchPhrase.Text = this.searchPhrase.Text.Substring(0, this.searchPhrase.Text.Length - 1);
127 | this.RefreshSearch(this.searchPhrase.Text);
128 | }
129 |
130 | }
131 |
132 | private void RefreshSearch(string phrase)
133 | {
134 | if (phrase.Length == 0)
135 | {
136 | VisualStateManager.GoToState(this, "NormalState", true);
137 | this.searchMode = false;
138 | this.SetCurrentEmoji(0);
139 | Grid.SetColumn(this.highlightBorder, 1);
140 | this.skinToneButton.Visibility = Visibility.Collapsed;
141 | this.allEmoji.Clear();
142 | }
143 | else
144 | {
145 | VisualStateManager.GoToState(this, "SearchState", true);
146 | this.searchMode = true;
147 | this.skinToneButton.Visibility = Visibility.Visible;
148 |
149 | this.UpdateSearchResults(phrase);
150 |
151 | this.emojiPresenter.ItemsSource = this.allEmoji;
152 | }
153 | }
154 |
155 | private void UpdateSearchResults(string phrase)
156 | {
157 | var skinToneName = SkinTones[this.skinToneIndex].Name;
158 |
159 | // remove emoji which don't satisfy current search phrase
160 | this.allEmoji
161 | .Where(e => !e.SearchTerms.Any(s => s.StartsWith(phrase)))
162 | .ToList()
163 | .ForEach(s => this.allEmoji.Remove(s));
164 |
165 | // add emoji which satisfy current search phrase
166 | AllEmoji()
167 | .Where(e => e.SearchTerms.Any(s => s.StartsWith(phrase)))
168 | .Where(e => !this.allEmoji.Contains(e))
169 | .ToList()
170 | .ForEach(s => this.allEmoji.Add(s));
171 | }
172 |
173 | private void EmojiSelected(object sender, SelectionChangedEventArgs e)
174 | {
175 | this.selectedEmoji = ((SingleEmoji)e.AddedItems.First()).ToString();
176 | openPopup.IsOpen = false;
177 | }
178 |
179 | private void ChangeCategoryClick(object sender, RoutedEventArgs e)
180 | {
181 | var button = (Button)sender;
182 | var tag = int.Parse(button.Tag.ToString());
183 | this.SetCurrentEmoji(tag);
184 | this.skinToneButton.Visibility = tag == 1 ? Visibility.Visible : Visibility.Collapsed;
185 | Grid.SetColumn(this.highlightBorder, tag + 1);
186 | }
187 |
188 | private void CloseButtonClick(object sender, RoutedEventArgs e)
189 | {
190 | openPopup.IsOpen = false;
191 | }
192 |
193 | private int PositiveModulo(int x, int m)
194 | {
195 | return (x % m + m) % m;
196 | }
197 |
198 | private void SetCurrentEmoji(int id)
199 | {
200 | this.activeEmoji = EmojiGroups[id];
201 | this.emojiPresenter.ItemsSource = activeEmoji;
202 | }
203 |
204 | private void SkinToneButtonClick(object sender, RoutedEventArgs e)
205 | {
206 | this.skinToneIndex = (this.skinToneIndex + 1) % 6;
207 | var skinTone = SkinTones[this.skinToneIndex];
208 | EmojiGroups[1] = skinTone.SkinEmoji;
209 |
210 | this.skinToneButton.Content = skinTone.Emoji;
211 |
212 | if (!this.searchMode)
213 | {
214 | this.SetCurrentEmoji(1);
215 | }
216 | else
217 | {
218 | this.allEmoji.Clear();
219 | this.RefreshSearch(this.searchPhrase.Text);
220 | }
221 | }
222 | }
223 | }
224 |
--------------------------------------------------------------------------------
/EmojiPicker/EmojiPicker.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {06353E37-E0FE-4379-9689-3B6253F314BB}
8 | Library
9 | Properties
10 | EmojiPicker
11 | EmojiPicker
12 | en-US
13 | UAP
14 | 10.0.17134.0
15 | 10.0.15063.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 |
20 |
21 | AnyCPU
22 | true
23 | full
24 | false
25 | bin\Debug\
26 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
27 | prompt
28 | 4
29 |
30 |
31 | AnyCPU
32 | pdbonly
33 | true
34 | bin\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | prompt
37 | 4
38 | true
39 | bin\Release\EmojiPicker.XML
40 |
41 |
42 | x86
43 | true
44 | bin\x86\Debug\
45 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
46 | ;2008
47 | full
48 | x86
49 | false
50 | prompt
51 |
52 |
53 | x86
54 | bin\x86\Release\
55 | TRACE;NETFX_CORE;WINDOWS_UWP
56 | true
57 | ;2008
58 | pdbonly
59 | x86
60 | false
61 | prompt
62 |
63 |
64 | ARM
65 | true
66 | bin\ARM\Debug\
67 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
68 | ;2008
69 | full
70 | ARM
71 | false
72 | prompt
73 |
74 |
75 | ARM
76 | bin\ARM\Release\
77 | TRACE;NETFX_CORE;WINDOWS_UWP
78 | true
79 | ;2008
80 | pdbonly
81 | ARM
82 | false
83 | prompt
84 |
85 |
86 | x64
87 | true
88 | bin\x64\Debug\
89 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
90 | ;2008
91 | full
92 | x64
93 | false
94 | prompt
95 |
96 |
97 | x64
98 | bin\x64\Release\
99 | TRACE;NETFX_CORE;WINDOWS_UWP
100 | true
101 | ;2008
102 | pdbonly
103 | x64
104 | false
105 | prompt
106 |
107 |
108 | PackageReference
109 |
110 |
111 |
112 |
113 | EmojiPicker.cs
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | 6.1.7
122 |
123 |
124 | 0.1.2
125 |
126 |
127 |
128 |
129 | Designer
130 | MSBuild:Compile
131 |
132 |
133 |
134 |
135 |
136 |
137 | 14.0
138 |
139 |
140 |
147 |
--------------------------------------------------------------------------------
/EmojiPicker/EmojiPicker.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | EmojiPicker
5 | 1.1.1
6 | UWP EmojiPicker
7 | bezysoftware
8 | bezysoftware
9 | https://github.com/bezysoftware/EmojiPicker
10 | https://github.com/bezysoftware/EmojiPicker/blob/master/LICENSE
11 | false
12 | Emoji Picker Dialog for UWP
13 | Copyright 2018
14 | uwp emoji
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/EmojiPicker/EmojiSkinTone.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using NeoSmart.Unicode;
3 |
4 | namespace EmojiPicker
5 | {
6 | public class EmojiSkinTone
7 | {
8 | public EmojiSkinTone(string emoji, string name, SingleEmoji[] baseEmoji)
9 | {
10 | this.Emoji = emoji;
11 | this.Name = name;
12 | this.SkinEmoji = this.FindSkinTonedEmoji(baseEmoji, name);
13 | }
14 |
15 | public string Emoji
16 | {
17 | get;
18 | }
19 |
20 | public string Name
21 | {
22 | get;
23 | }
24 |
25 | public SingleEmoji[] SkinEmoji
26 | {
27 | get;
28 | }
29 |
30 |
31 | private SingleEmoji[] FindSkinTonedEmoji(SingleEmoji[] baseEmoji, string lookupName)
32 | {
33 | if (string.IsNullOrWhiteSpace(lookupName))
34 | {
35 | return baseEmoji;
36 | }
37 |
38 | return baseEmoji.Select(emoji => NeoSmart.Unicode.Emoji.All.FirstOrDefault(one => one.Name == $"{emoji.Name}{lookupName}") ?? emoji).ToArray();
39 | }
40 |
41 | }
42 | }
--------------------------------------------------------------------------------
/EmojiPicker/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("EmojiPicker")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("EmojiPicker")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/EmojiPicker/Properties/EmojiPicker.rd.xml:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/EmojiPicker/Themes/Generic.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
43 |
44 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
64 |
65 |
73 |
74 |
82 |
83 |
90 |
91 |
92 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
112 |
113 |
114 |
115 |
116 |
117 |
124 |
125 |
133 |
134 |
138 |
139 |
140 |
141 |
142 |
143 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
168 |
174 |
180 |
186 |
192 |
198 |
199 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Tomas Bezouska
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # EmojiPicker
2 | [](https://bezysoftware.visualstudio.com/Emoji%20Picker/_build/latest?definitionId=40)
3 |
4 | Emoji Picker Dialog for UWP
5 |
6 | 
7 |
8 | It also supports the dark theme :)
9 |
10 |
11 |
12 | ## Installation
13 |
14 | ```
15 | Install-Package EmojiPicker
16 | ```
17 |
18 | [Nuget](https://www.nuget.org/packages/EmojiPicker)
19 |
20 | ## Usage
21 |
22 | ```csharp
23 | using EmojiPicker;
24 | ...
25 | var emoji = await EmojiPicker.ShowAsync();
26 | ```
27 |
--------------------------------------------------------------------------------