You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is a fork of https://github.com/jm-david/emoji-mart-vue with many performance fixes, tests and some structural code changes.
5
+
This project is a fork of https://github.com/jm-david/emoji-mart-vue with many performance fixes, tests and structural code changes.
6
+
See the [changelog](#changelog) for details.
6
7
7
8
The original component was [very slow to show/destroy](https://github.com/jm-david/emoji-mart-vue/pull/47), around 2 seconds to show and even a bit longer to destroy, so it was unusable in a popup.
8
9
9
10
This was the reason to fork and change it, the demo is [here](https://serebrov.github.io/emoji-mart-vue/), use the "Show / hide the picker" button to see create/destroy performance
10
11
11
-
Major changes are:
12
-
13
-
- Reworked emoji index class: use same index (so same data) for all components.
14
-
- Render emojis in categories without `Emoji` component, there are a lot of emojis to render and there is a noticeable slow down when we render a component per emoji.
15
-
- Frozen objects with emoji data to disable Vue change tracking
16
-
- Do not create `EmojiIndex` globally, before it was loaded (along with the emoji data) even when it was not actually used
17
-
- Extract CSS into external file, use less inline styles to reduce the amount of generated HTML
18
-
- Fixes in CSS for native unicode emojis ported from the [original react project](https://github.com/missive/emoji-mart)
19
-
- Excluded ./data/all.json from the js bundle (it was always loaded within the bundle even if it is not needed)
20
-
- Updated to babel 7
21
-
- Added tests
22
-
- Updated to emojis v12 (see the breaking change note below)
23
-
24
-
Breaking change in v6: removed `Emoji` and `Picker`[wrappers](#convenience-wrappers), renamed `NimbleEmoji` to `Emoji` and `NimblePicker` to `Picker`.
25
-
See the `Convenience Wrappers` section below for details.
26
-
27
-
Breaking change in v7: switched to Unicode v12 emoji set which results in several breaking changes:
28
-
- Removed 'emojione' set (removed from [emoji-datasource](https://github.com/iamcal/emoji-data) by [JoyPixels request](https://github.com/iamcal/emoji-data/blob/master/CHANGES.md#2018-07-05--v410))
29
-
- Removed 'messenger' set - it was [merged](https://github.com/iamcal/emoji-data/blob/master/CHANGES.md#2020-01-10--v500) into 'facebook' set
Live demo app: https://serebrov.github.io/emoji-mart-vue/
23
+
Demo application code is [under the ./docs folder](./docs).
24
+
40
25
## Installation
41
26
42
27
Install from npm: `npm install --save emoji-mart-vue-fast`.
@@ -45,6 +30,14 @@ It is also possible to install directly from github (could be useful for forks):
45
30
46
31
Here is the list of [releases](https://github.com/serebrov/emoji-mart-vue/releases).
47
32
33
+
## Vue 3 Support
34
+
35
+
Component works with Vue 3, [here is a simple demo app](https://github.com/serebrov/emoji-mart-vue3-demo).
36
+
37
+
Live demo: https://serebrov.github.io/emoji-mart-vue3-demo/.
38
+
39
+
See also: [#88](https://github.com/serebrov/emoji-mart-vue/issues/88).
40
+
48
41
## Quick Example
49
42
50
43
```
@@ -100,6 +93,9 @@ export default {
100
93
</style>
101
94
```
102
95
96
+
## Not opinionated
97
+
98
+
**Emoji Mart** doesn’t automatically insert anything into a text input, nor does it show or hide itself. It simply returns an `emoji` object. It’s up to the developer to mount/unmount (it’s fast!) and position the picker. You can use the returned object as props for the `EmojiMart.Emoji` component. You could also use `emoji.colons` to insert text into a textarea or `emoji.native` to use the emoji.
103
99
104
100
## Components
105
101
@@ -667,9 +663,32 @@ export default {
667
663
</script>
668
664
```
669
665
670
-
## Not opinionated
666
+
## Changelog
667
+
668
+
Major changes comparing to the original emoji-mart-vue:
669
+
670
+
- Reworked emoji index class: use same index (so same data) for all components.
671
+
- Render emojis in categories without `Emoji` component, there are a lot of emojis to render and there is a noticeable slow down when we render a component per emoji.
672
+
- Frozen objects with emoji data to disable Vue change tracking
673
+
- Do not create `EmojiIndex` globally, before it was loaded (along with the emoji data) even when it was not actually used
674
+
- Extract CSS into external file, use less inline styles to reduce the amount of generated HTML
675
+
- Fixes in CSS for native unicode emojis ported from the [original react project](https://github.com/missive/emoji-mart)
676
+
- Excluded ./data/all.json from the js bundle (it was always loaded within the bundle even if it is not needed)
677
+
- Updated to babel 7
678
+
- Added tests
679
+
- Updated to emojis v12 (see the breaking change note below)
680
+
681
+
Breaking change in v6: removed `Emoji` and `Picker`[wrappers](#convenience-wrappers), renamed `NimbleEmoji` to `Emoji` and `NimblePicker` to `Picker`.
682
+
See the `Convenience Wrappers` section below for details.
683
+
684
+
Breaking change in v7: switched to Unicode v12 emoji set which results in several breaking changes:
685
+
- Removed 'emojione' set (removed from [emoji-datasource](https://github.com/iamcal/emoji-data) by [JoyPixels request](https://github.com/iamcal/emoji-data/blob/master/CHANGES.md#2018-07-05--v410))
686
+
- Removed 'messenger' set - it was [merged](https://github.com/iamcal/emoji-data/blob/master/CHANGES.md#2020-01-10--v500) into 'facebook' set
- The `StaticPicker` component is now default (exported as `Picker`), previous default component renamed to `VirtualScrollPicker`
671
691
672
-
**Emoji Mart** doesn’t automatically insert anything into a text input, nor does it show or hide itself. It simply returns an `emoji` object. It’s up to the developer to mount/unmount (it’s fast!) and position the picker. You can use the returned object as props for the `EmojiMart.Emoji` component. You could also use `emoji.colons` to insert text into a textarea or `emoji.native` to use the emoji.
0 commit comments