@lofcz/platejs-emoji 52.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +24 -0
- package/README.md +11 -0
- package/dist/EmojiFloatingIndexSearch-BNdEWk-b.js +362 -0
- package/dist/EmojiFloatingIndexSearch-BNdEWk-b.js.map +1 -0
- package/dist/index-QJpfncCa.d.ts +213 -0
- package/dist/index-QJpfncCa.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.d.ts +195 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +526 -0
- package/dist/react/index.js.map +1 -0
- package/package.json +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) Ziad Beyens, Dylan Schiemann, Joe Anderson, Felix Feng
|
|
4
|
+
|
|
5
|
+
Unless otherwise specified in a LICENSE file within an individual package directory,
|
|
6
|
+
this license applies to all files in this repository outside of those package directories.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in
|
|
16
|
+
all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
+
THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { withTriggerCombobox } from "@platejs/combobox";
|
|
2
|
+
import { KEYS, createSlatePlugin, createTSlatePlugin } from "platejs";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/types.ts
|
|
5
|
+
const EmojiCategory = {
|
|
6
|
+
Activity: "activity",
|
|
7
|
+
Custom: "custom",
|
|
8
|
+
Flags: "flags",
|
|
9
|
+
Foods: "foods",
|
|
10
|
+
Frequent: "frequent",
|
|
11
|
+
Nature: "nature",
|
|
12
|
+
Objects: "objects",
|
|
13
|
+
People: "people",
|
|
14
|
+
Places: "places",
|
|
15
|
+
Symbols: "symbols"
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/lib/constants.ts
|
|
20
|
+
const EMOJI_MAX_SEARCH_RESULT = 60;
|
|
21
|
+
const DEFAULT_EMOJI_LIBRARY = {
|
|
22
|
+
aliases: {},
|
|
23
|
+
categories: [{
|
|
24
|
+
id: "people",
|
|
25
|
+
emojis: ["+1"]
|
|
26
|
+
}],
|
|
27
|
+
emojis: { "+1": {
|
|
28
|
+
id: "+1",
|
|
29
|
+
keywords: [],
|
|
30
|
+
name: "Thumbs Up",
|
|
31
|
+
skins: [
|
|
32
|
+
{
|
|
33
|
+
native: "👍",
|
|
34
|
+
unified: "1f44d"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
native: "👍🏻",
|
|
38
|
+
unified: "1f44d-1f3fb"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
native: "👍🏼",
|
|
42
|
+
unified: "1f44d-1f3fc"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
native: "👍🏽",
|
|
46
|
+
unified: "1f44d-1f3fd"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
native: "👍🏾",
|
|
50
|
+
unified: "1f44d-1f3fe"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
native: "👍🏿",
|
|
54
|
+
unified: "1f44d-1f3ff"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
version: 1
|
|
58
|
+
} },
|
|
59
|
+
sheet: {
|
|
60
|
+
cols: 1,
|
|
61
|
+
rows: 1
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const defaultCategories = [
|
|
65
|
+
EmojiCategory.People,
|
|
66
|
+
EmojiCategory.Nature,
|
|
67
|
+
EmojiCategory.Foods,
|
|
68
|
+
EmojiCategory.Activity,
|
|
69
|
+
EmojiCategory.Places,
|
|
70
|
+
EmojiCategory.Objects,
|
|
71
|
+
EmojiCategory.Symbols,
|
|
72
|
+
EmojiCategory.Flags
|
|
73
|
+
];
|
|
74
|
+
const EmojiSettings = {
|
|
75
|
+
buttonSize: { value: 36 },
|
|
76
|
+
categories: { value: void 0 },
|
|
77
|
+
perLine: { value: 8 },
|
|
78
|
+
showFrequent: {
|
|
79
|
+
limit: 16,
|
|
80
|
+
value: true
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const DEFAULT_FREQUENTLY_USED_EMOJI = {
|
|
84
|
+
"+1": 1,
|
|
85
|
+
clap: 1,
|
|
86
|
+
grinning: 1,
|
|
87
|
+
heart: 1,
|
|
88
|
+
heart_eyes: 1,
|
|
89
|
+
hugging_face: 1,
|
|
90
|
+
joy: 1,
|
|
91
|
+
kissing_heart: 1,
|
|
92
|
+
laughing: 1,
|
|
93
|
+
pray: 1,
|
|
94
|
+
rocket: 1,
|
|
95
|
+
scream: 1,
|
|
96
|
+
see_no_evil: 1
|
|
97
|
+
};
|
|
98
|
+
const NUM_OF_CATEGORIES = Object.values(EmojiCategory).length;
|
|
99
|
+
const i18n = {
|
|
100
|
+
categories: {
|
|
101
|
+
activity: "Activity",
|
|
102
|
+
custom: "Custom",
|
|
103
|
+
flags: "Flags",
|
|
104
|
+
foods: "Food & Drink",
|
|
105
|
+
frequent: "Frequently used",
|
|
106
|
+
nature: "Animals & Nature",
|
|
107
|
+
objects: "Objects",
|
|
108
|
+
people: "Smileys & People",
|
|
109
|
+
places: "Travel & Places",
|
|
110
|
+
symbols: "Symbols"
|
|
111
|
+
},
|
|
112
|
+
clear: "Clear",
|
|
113
|
+
pick: "Pick an emoji...",
|
|
114
|
+
search: "Search all emoji",
|
|
115
|
+
searchNoResultsSubtitle: "That emoji couldn’t be found",
|
|
116
|
+
searchNoResultsTitle: "Oh no!",
|
|
117
|
+
searchResult: "Search Results",
|
|
118
|
+
skins: {
|
|
119
|
+
"1": "Default",
|
|
120
|
+
"2": "Light",
|
|
121
|
+
"3": "Medium-Light",
|
|
122
|
+
"4": "Medium",
|
|
123
|
+
"5": "Medium-Dark",
|
|
124
|
+
"6": "Dark",
|
|
125
|
+
choose: "Choose default skin tone"
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
//#endregion
|
|
130
|
+
//#region src/lib/BaseEmojiPlugin.ts
|
|
131
|
+
const BaseEmojiInputPlugin = createSlatePlugin({
|
|
132
|
+
key: KEYS.emojiInput,
|
|
133
|
+
editOnly: true,
|
|
134
|
+
node: {
|
|
135
|
+
isElement: true,
|
|
136
|
+
isInline: true,
|
|
137
|
+
isVoid: true
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const BaseEmojiPlugin = createTSlatePlugin({
|
|
141
|
+
key: KEYS.emoji,
|
|
142
|
+
editOnly: true,
|
|
143
|
+
options: {
|
|
144
|
+
data: DEFAULT_EMOJI_LIBRARY,
|
|
145
|
+
trigger: ":",
|
|
146
|
+
triggerPreviousCharPattern: /^\s?$/,
|
|
147
|
+
createComboboxInput: () => ({
|
|
148
|
+
children: [{ text: "" }],
|
|
149
|
+
type: KEYS.emojiInput
|
|
150
|
+
}),
|
|
151
|
+
createEmojiNode: ({ skins }) => ({ text: skins[0].native })
|
|
152
|
+
},
|
|
153
|
+
plugins: [BaseEmojiInputPlugin]
|
|
154
|
+
}).overrideEditor(withTriggerCombobox);
|
|
155
|
+
|
|
156
|
+
//#endregion
|
|
157
|
+
//#region src/lib/transforms/insertEmoji.ts
|
|
158
|
+
const insertEmoji = (editor, emoji) => {
|
|
159
|
+
const { createEmojiNode } = editor.getOptions(BaseEmojiPlugin);
|
|
160
|
+
const emojiNode = createEmojiNode(emoji);
|
|
161
|
+
editor.tf.insertNodes(emojiNode);
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/lib/utils/EmojiLibrary/EmojiInlineLibrary.ts
|
|
166
|
+
var EmojiInlineLibrary = class {
|
|
167
|
+
_emojis;
|
|
168
|
+
_hash = {};
|
|
169
|
+
_keys = [];
|
|
170
|
+
constructor(library = DEFAULT_EMOJI_LIBRARY) {
|
|
171
|
+
this._emojis = library.emojis;
|
|
172
|
+
this.init();
|
|
173
|
+
}
|
|
174
|
+
createSearchableString(emoji) {
|
|
175
|
+
const { id, keywords, name } = emoji;
|
|
176
|
+
return `${id},${this.getName(name)},${keywords.join(",")}`;
|
|
177
|
+
}
|
|
178
|
+
getName(name) {
|
|
179
|
+
return name.toLowerCase().split(" ").join(",");
|
|
180
|
+
}
|
|
181
|
+
init() {
|
|
182
|
+
Object.values(this._emojis).forEach((emoji) => {
|
|
183
|
+
const searchableString = this.createSearchableString(emoji);
|
|
184
|
+
this._keys.push(searchableString);
|
|
185
|
+
this._hash[searchableString] = emoji.id;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
getEmoji(id) {
|
|
189
|
+
return this._emojis[id];
|
|
190
|
+
}
|
|
191
|
+
getEmojiId(key) {
|
|
192
|
+
return this._hash[key];
|
|
193
|
+
}
|
|
194
|
+
get keys() {
|
|
195
|
+
return this._keys;
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/lib/utils/Grid/Grid.ts
|
|
201
|
+
var Grid = class {
|
|
202
|
+
grid = /* @__PURE__ */ new Map();
|
|
203
|
+
rowsCount = 1;
|
|
204
|
+
sectionsIds = [];
|
|
205
|
+
addSection(sectionId, section, elements) {
|
|
206
|
+
section.setIndexRowStart(this.rowsCount).addElements(elements[sectionId]);
|
|
207
|
+
this.rowsCount += section.rowsNum;
|
|
208
|
+
this.grid.set(sectionId, section);
|
|
209
|
+
this.sectionsIds.push(sectionId);
|
|
210
|
+
return this;
|
|
211
|
+
}
|
|
212
|
+
indexOf(sectionId) {
|
|
213
|
+
return this.sectionsIds.indexOf(sectionId);
|
|
214
|
+
}
|
|
215
|
+
section(sectionId) {
|
|
216
|
+
return this.grid.get(sectionId);
|
|
217
|
+
}
|
|
218
|
+
sections() {
|
|
219
|
+
return Array.from(this.grid.values());
|
|
220
|
+
}
|
|
221
|
+
updateSection(sectionId, elements) {
|
|
222
|
+
if (this.grid.has(sectionId)) this.grid.get(sectionId).updateElements(elements);
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
225
|
+
get size() {
|
|
226
|
+
return this.grid.size;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
//#endregion
|
|
231
|
+
//#region src/lib/utils/Grid/GridSection.ts
|
|
232
|
+
var AGridSection = class {
|
|
233
|
+
_indexRowStart = 0;
|
|
234
|
+
_root;
|
|
235
|
+
_rowsNum = 0;
|
|
236
|
+
rows = [];
|
|
237
|
+
_id;
|
|
238
|
+
perLine;
|
|
239
|
+
constructor(_id, perLine = 8) {
|
|
240
|
+
this._id = _id;
|
|
241
|
+
this.perLine = perLine;
|
|
242
|
+
this.createRootRef();
|
|
243
|
+
}
|
|
244
|
+
addRow(elements, lastPosition) {
|
|
245
|
+
const start = lastPosition * this.perLine;
|
|
246
|
+
const end = start + this.perLine;
|
|
247
|
+
this.rows.push({
|
|
248
|
+
id: this._indexRowStart + lastPosition,
|
|
249
|
+
elements: elements.slice(start, end)
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
initRows(elements) {
|
|
253
|
+
let i = 0;
|
|
254
|
+
while (i < this.rowsNum) this.addRow(elements, i++);
|
|
255
|
+
}
|
|
256
|
+
addElements(elements) {
|
|
257
|
+
this._rowsNum = Math.ceil(elements.length / this.perLine);
|
|
258
|
+
this.initRows(elements);
|
|
259
|
+
return this;
|
|
260
|
+
}
|
|
261
|
+
getRows() {
|
|
262
|
+
return this.rows;
|
|
263
|
+
}
|
|
264
|
+
setIndexRowStart(start) {
|
|
265
|
+
this._indexRowStart = start;
|
|
266
|
+
return this;
|
|
267
|
+
}
|
|
268
|
+
updateElements(elements) {
|
|
269
|
+
this.rows = [];
|
|
270
|
+
this.addElements(elements);
|
|
271
|
+
return this;
|
|
272
|
+
}
|
|
273
|
+
get id() {
|
|
274
|
+
return this._id;
|
|
275
|
+
}
|
|
276
|
+
get root() {
|
|
277
|
+
return this._root;
|
|
278
|
+
}
|
|
279
|
+
get rowsNum() {
|
|
280
|
+
return this._rowsNum;
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/lib/utils/IndexSearch/IndexSearch.ts
|
|
286
|
+
var AIndexSearch = class {
|
|
287
|
+
input;
|
|
288
|
+
maxResult = EMOJI_MAX_SEARCH_RESULT;
|
|
289
|
+
result = [];
|
|
290
|
+
scores = {};
|
|
291
|
+
library;
|
|
292
|
+
constructor(library) {
|
|
293
|
+
this.library = library;
|
|
294
|
+
}
|
|
295
|
+
createSearchResult(value) {
|
|
296
|
+
this.scores = {};
|
|
297
|
+
this.result = [];
|
|
298
|
+
for (const key of this.library.keys) {
|
|
299
|
+
const score = key.indexOf(`${value}`);
|
|
300
|
+
if (score === -1) continue;
|
|
301
|
+
const emojiId = this.library.getEmojiId(key);
|
|
302
|
+
this.result.push(emojiId);
|
|
303
|
+
if (!this.scores[emojiId]) this.scores[emojiId] = 0;
|
|
304
|
+
this.scores[emojiId] += emojiId === value ? 0 : score + 1;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
sortResultByScores(result, scores) {
|
|
308
|
+
result.sort((a, b) => {
|
|
309
|
+
const aScore = scores[a];
|
|
310
|
+
const bScore = scores[b];
|
|
311
|
+
if (aScore === bScore) return a.localeCompare(b);
|
|
312
|
+
return aScore - bScore;
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
get() {
|
|
316
|
+
const emojis = [];
|
|
317
|
+
for (const key of this.result) {
|
|
318
|
+
const emoji = this.library?.getEmoji(key);
|
|
319
|
+
if (emoji) emojis.push(emoji);
|
|
320
|
+
if (emojis.length >= this.maxResult) break;
|
|
321
|
+
}
|
|
322
|
+
return emojis;
|
|
323
|
+
}
|
|
324
|
+
getEmoji() {
|
|
325
|
+
return this.get()[0];
|
|
326
|
+
}
|
|
327
|
+
hasFound(exact = false) {
|
|
328
|
+
if (exact && this.input) return this.result.includes(this.input);
|
|
329
|
+
return this.result.length > 0;
|
|
330
|
+
}
|
|
331
|
+
search(input) {
|
|
332
|
+
this.input = input.toLowerCase();
|
|
333
|
+
const value = this.input;
|
|
334
|
+
if (value) {
|
|
335
|
+
this.createSearchResult(value);
|
|
336
|
+
this.sortResultByScores(this.result, this.scores);
|
|
337
|
+
} else {
|
|
338
|
+
this.scores = {};
|
|
339
|
+
this.result = [];
|
|
340
|
+
}
|
|
341
|
+
return this;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
//#endregion
|
|
346
|
+
//#region src/lib/utils/IndexSearch/EmojiFloatingIndexSearch.ts
|
|
347
|
+
var EmojiFloatingIndexSearch = class EmojiFloatingIndexSearch extends AIndexSearch {
|
|
348
|
+
static instance;
|
|
349
|
+
library;
|
|
350
|
+
constructor(library) {
|
|
351
|
+
super(library);
|
|
352
|
+
this.library = library;
|
|
353
|
+
}
|
|
354
|
+
static getInstance(library) {
|
|
355
|
+
if (!EmojiFloatingIndexSearch.instance) EmojiFloatingIndexSearch.instance = new EmojiFloatingIndexSearch(library);
|
|
356
|
+
return EmojiFloatingIndexSearch.instance;
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
//#endregion
|
|
361
|
+
export { EmojiInlineLibrary as a, BaseEmojiPlugin as c, EMOJI_MAX_SEARCH_RESULT as d, EmojiSettings as f, EmojiCategory as g, i18n as h, Grid as i, DEFAULT_EMOJI_LIBRARY as l, defaultCategories as m, AIndexSearch as n, insertEmoji as o, NUM_OF_CATEGORIES as p, AGridSection as r, BaseEmojiInputPlugin as s, EmojiFloatingIndexSearch as t, DEFAULT_FREQUENTLY_USED_EMOJI as u };
|
|
362
|
+
//# sourceMappingURL=EmojiFloatingIndexSearch-BNdEWk-b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiFloatingIndexSearch-BNdEWk-b.js","names":["EmojiSettingsType","buttonSize","value","categories","EmojiCategoryList","perLine","showFrequent","key","limit","prefix","ReverseMap","T","EmojiCategory","Activity","Custom","Flags","Foods","Frequent","Nature","Objects","People","Places","Symbols","const","EmojiIconList","Record","outline","solid","search","delete","loupe","FrequentEmojis","i18nProps","clear","pick","searchNoResultsSubtitle","searchNoResultsTitle","searchResult","skins","EmojiMartData","EmojiCategoryList","EmojiSettingsType","FrequentEmojis","i18nProps","EmojiCategory","EMOJI_MAX_SEARCH_RESULT","DEFAULT_EMOJI_LIBRARY","aliases","categories","id","emojis","keywords","name","skins","native","unified","version","sheet","cols","rows","defaultCategories","People","Nature","Foods","Activity","Places","Objects","Symbols","Flags","EmojiSettings","buttonSize","value","undefined","perLine","showFrequent","limit","DEFAULT_FREQUENTLY_USED_EMOJI","clap","grinning","heart","heart_eyes","hugging_face","joy","kissing_heart","laughing","pray","rocket","scream","see_no_evil","NUM_OF_CATEGORIES","Object","values","length","i18n","activity","custom","flags","foods","frequent","nature","objects","people","places","symbols","clear","pick","search","searchNoResultsSubtitle","searchNoResultsTitle","searchResult","choose","Emoji","EmojiMartData","TriggerComboboxPluginOptions","withTriggerCombobox","Descendant","PluginConfig","createSlatePlugin","createTSlatePlugin","KEYS","DEFAULT_EMOJI_LIBRARY","EmojiInputConfig","data","createEmojiNode","emoji","BaseEmojiInputPlugin","key","emojiInput","editOnly","node","isElement","isInline","isVoid","BaseEmojiPlugin","options","trigger","triggerPreviousCharPattern","createComboboxInput","children","text","type","skins","native","plugins","overrideEditor","Emoji","SlateEditor","BaseEmojiPlugin","insertEmoji","editor","emoji","TEmoji","createEmojiNode","getOptions","emojiNode","tf","insertNodes","Emoji","EmojiLibrary","Emojis","IEmojiLibrary","DEFAULT_EMOJI_LIBRARY","THash","Record","EmojiInlineLibrary","_emojis","_hash","_keys","constructor","library","emojis","init","createSearchableString","emoji","id","keywords","name","getName","join","toLowerCase","split","Object","values","forEach","searchableString","push","getEmoji","getEmojiId","key","keys","GridElements","IGrid","IGridSection","SectionElements","SectionId","Grid","R","T","grid","Map","rowsCount","sectionsIds","addSection","sectionId","section","elements","setIndexRowStart","addElements","rowsNum","set","push","indexOf","get","sections","Array","from","values","updateSection","has","updateElements","size","GridRows","IGridSection","SectionElements","SectionId","Unknown","AGridSection","R","T","_indexRowStart","_root","_rowsNum","rows","_id","perLine","constructor","createRootRef","addRow","elements","lastPosition","start","end","push","id","slice","initRows","i","rowsNum","addElements","Math","ceil","length","getRows","setIndexRowStart","updateElements","root","Emoji","IEmojiLibrary","EMOJI_MAX_SEARCH_RESULT","IIndexSearch","get","hasFound","search","input","AIndexSearch","maxResult","result","scores","library","constructor","createSearchResult","value","key","keys","score","indexOf","emojiId","getEmojiId","push","sortResultByScores","sort","a","b","aScore","bScore","localeCompare","emojis","emoji","getEmoji","length","exact","includes","toLowerCase","IEmojiLibrary","AIndexSearch","EmojiFloatingIndexSearch","instance","library","constructor","getInstance"],"sources":["../src/lib/types.ts","../src/lib/constants.ts","../src/lib/BaseEmojiPlugin.ts","../src/lib/transforms/insertEmoji.ts","../src/lib/utils/EmojiLibrary/EmojiInlineLibrary.ts","../src/lib/utils/Grid/Grid.ts","../src/lib/utils/Grid/GridSection.ts","../src/lib/utils/IndexSearch/IndexSearch.ts","../src/lib/utils/IndexSearch/EmojiFloatingIndexSearch.ts"],"sourcesContent":["export type EmojiSettingsType = {\n buttonSize: {\n value: number;\n };\n categories: {\n value?: EmojiCategoryList[];\n };\n perLine: {\n value: number;\n };\n showFrequent: {\n value: boolean;\n key?: string;\n limit?: number;\n prefix?: string;\n };\n};\n\ntype ReverseMap<T> = T[keyof T];\n\nexport const EmojiCategory = {\n Activity: 'activity',\n Custom: 'custom',\n Flags: 'flags',\n Foods: 'foods',\n Frequent: 'frequent',\n Nature: 'nature',\n Objects: 'objects',\n People: 'people',\n Places: 'places',\n Symbols: 'symbols',\n} as const;\n\nexport type EmojiCategoryList = ReverseMap<typeof EmojiCategory>;\n\nexport type EmojiIconList<T = string> = {\n categories: Record<EmojiCategoryList, { outline: T; solid: T }>;\n search: {\n delete: T;\n loupe: T;\n };\n};\n\nexport type FrequentEmojis = Record<string, number>;\n\nexport type i18nProps = {\n categories: Record<EmojiCategoryList, string>;\n clear: string;\n pick: string;\n search: string;\n searchNoResultsSubtitle: string;\n searchNoResultsTitle: string;\n searchResult: string;\n skins: Record<'1' | '2' | '3' | '4' | '5' | '6' | 'choose', string>;\n};\n","import type { EmojiMartData } from '@emoji-mart/data';\n\nimport {\n type EmojiCategoryList,\n type EmojiSettingsType,\n type FrequentEmojis,\n type i18nProps,\n EmojiCategory,\n} from './types';\n\nexport const EMOJI_MAX_SEARCH_RESULT = 60;\n\nexport const DEFAULT_EMOJI_LIBRARY: EmojiMartData = {\n aliases: {},\n categories: [\n {\n id: 'people',\n emojis: ['+1'],\n },\n ],\n emojis: {\n '+1': {\n id: '+1',\n keywords: [],\n name: 'Thumbs Up',\n skins: [\n {\n native: '👍',\n unified: '1f44d',\n },\n {\n native: '👍🏻',\n unified: '1f44d-1f3fb',\n },\n {\n native: '👍🏼',\n unified: '1f44d-1f3fc',\n },\n {\n native: '👍🏽',\n unified: '1f44d-1f3fd',\n },\n {\n native: '👍🏾',\n unified: '1f44d-1f3fe',\n },\n {\n native: '👍🏿',\n unified: '1f44d-1f3ff',\n },\n ],\n version: 1,\n },\n },\n sheet: {\n cols: 1,\n rows: 1,\n },\n};\n\nexport const defaultCategories: EmojiCategoryList[] = [\n EmojiCategory.People,\n EmojiCategory.Nature,\n EmojiCategory.Foods,\n EmojiCategory.Activity,\n EmojiCategory.Places,\n EmojiCategory.Objects,\n EmojiCategory.Symbols,\n EmojiCategory.Flags,\n];\n\nexport const EmojiSettings: EmojiSettingsType = {\n buttonSize: {\n value: 36,\n },\n categories: {\n value: undefined,\n },\n perLine: {\n value: 8,\n },\n showFrequent: {\n limit: 16,\n value: true,\n },\n};\n\nexport const DEFAULT_FREQUENTLY_USED_EMOJI: FrequentEmojis = {\n '+1': 1,\n clap: 1,\n grinning: 1,\n heart: 1,\n heart_eyes: 1,\n hugging_face: 1,\n joy: 1,\n kissing_heart: 1,\n laughing: 1,\n pray: 1,\n rocket: 1,\n scream: 1,\n see_no_evil: 1,\n};\n\nexport const NUM_OF_CATEGORIES = Object.values(EmojiCategory).length;\n\nexport const i18n: i18nProps = {\n categories: {\n activity: 'Activity',\n custom: 'Custom',\n flags: 'Flags',\n foods: 'Food & Drink',\n frequent: 'Frequently used',\n nature: 'Animals & Nature',\n objects: 'Objects',\n people: 'Smileys & People',\n places: 'Travel & Places',\n symbols: 'Symbols',\n },\n clear: 'Clear',\n pick: 'Pick an emoji...',\n search: 'Search all emoji',\n searchNoResultsSubtitle: 'That emoji couldn’t be found',\n searchNoResultsTitle: 'Oh no!',\n searchResult: 'Search Results',\n skins: {\n '1': 'Default',\n '2': 'Light',\n '3': 'Medium-Light',\n '4': 'Medium',\n '5': 'Medium-Dark',\n '6': 'Dark',\n choose: 'Choose default skin tone',\n },\n};\n","import type { Emoji, EmojiMartData } from '@emoji-mart/data';\n\nimport {\n type TriggerComboboxPluginOptions,\n withTriggerCombobox,\n} from '@platejs/combobox';\nimport {\n type Descendant,\n type PluginConfig,\n createSlatePlugin,\n createTSlatePlugin,\n KEYS,\n} from 'platejs';\n\nimport { DEFAULT_EMOJI_LIBRARY } from './constants';\n\nexport type EmojiInputConfig = PluginConfig<\n 'emoji',\n {\n /**\n * The emoji data.\n *\n * @example\n * import emojiMartData from '@emoji-mart/data';\n */\n data?: EmojiMartData;\n createEmojiNode?: (emoji: Emoji) => Descendant;\n } & TriggerComboboxPluginOptions\n>;\n\nexport const BaseEmojiInputPlugin = createSlatePlugin({\n key: KEYS.emojiInput,\n editOnly: true,\n node: { isElement: true, isInline: true, isVoid: true },\n});\n\nexport const BaseEmojiPlugin = createTSlatePlugin<EmojiInputConfig>({\n key: KEYS.emoji,\n editOnly: true,\n options: {\n data: DEFAULT_EMOJI_LIBRARY,\n trigger: ':',\n triggerPreviousCharPattern: /^\\s?$/,\n createComboboxInput: () => ({\n children: [{ text: '' }],\n type: KEYS.emojiInput,\n }),\n createEmojiNode: ({ skins }) => ({ text: skins[0].native }),\n },\n plugins: [BaseEmojiInputPlugin],\n}).overrideEditor(withTriggerCombobox);\n","import type { Emoji } from '@emoji-mart/data';\nimport type { SlateEditor } from 'platejs';\n\nimport { BaseEmojiPlugin } from '../BaseEmojiPlugin';\n\nexport const insertEmoji = <TEmoji extends Emoji = Emoji>(\n editor: SlateEditor,\n emoji: TEmoji\n) => {\n const { createEmojiNode } = editor.getOptions(BaseEmojiPlugin);\n\n const emojiNode = createEmojiNode!(emoji);\n editor.tf.insertNodes(emojiNode);\n};\n","import type {\n Emoji,\n EmojiLibrary,\n Emojis,\n IEmojiLibrary,\n} from './EmojiLibrary.types';\n\nimport { DEFAULT_EMOJI_LIBRARY } from '../../constants';\n\nexport type THash = Record<string, string>;\n\nexport class EmojiInlineLibrary implements IEmojiLibrary {\n protected _emojis: Emojis;\n protected _hash: THash = {};\n protected _keys: string[] = [];\n\n constructor(library: EmojiLibrary = DEFAULT_EMOJI_LIBRARY) {\n this._emojis = library.emojis;\n this.init();\n }\n\n private createSearchableString(emoji: Emoji) {\n const { id, keywords, name } = emoji;\n\n return `${id},${this.getName(name)},${keywords.join(',')}`;\n }\n\n private getName(name: string) {\n return name.toLowerCase().split(' ').join(',');\n }\n\n private init() {\n Object.values(this._emojis).forEach((emoji) => {\n const searchableString = this.createSearchableString(emoji);\n this._keys.push(searchableString);\n this._hash[searchableString] = emoji.id;\n });\n }\n\n getEmoji(id: string) {\n return this._emojis[id];\n }\n\n getEmojiId(key: string) {\n return this._hash[key];\n }\n\n get keys(): string[] {\n return this._keys;\n }\n}\n","import type {\n GridElements,\n IGrid,\n IGridSection,\n SectionElements,\n SectionId,\n} from './Grid.types';\n\nexport class Grid<R, T extends SectionId = SectionId> implements IGrid<R, T> {\n protected grid = new Map<T, IGridSection<R, T>>();\n protected rowsCount = 1;\n protected sectionsIds: T[] = [];\n\n addSection(\n sectionId: T,\n section: IGridSection<R, T>,\n elements: GridElements\n ) {\n section.setIndexRowStart(this.rowsCount).addElements(elements[sectionId]);\n this.rowsCount += section.rowsNum;\n this.grid.set(sectionId, section);\n this.sectionsIds.push(sectionId);\n\n return this;\n }\n\n indexOf(sectionId: T) {\n return this.sectionsIds.indexOf(sectionId);\n }\n\n section(sectionId: T) {\n return this.grid.get(sectionId)!;\n }\n\n sections() {\n return Array.from(this.grid.values());\n }\n\n updateSection(sectionId: T, elements: SectionElements) {\n if (this.grid.has(sectionId)) {\n const section = this.grid.get(sectionId);\n section!.updateElements(elements);\n }\n\n return this;\n }\n\n get size() {\n return this.grid.size;\n }\n}\n","import type {\n GridRows,\n IGridSection,\n SectionElements,\n SectionId,\n Unknown,\n} from './Grid.types';\n\nexport abstract class AGridSection<R extends Unknown, T = SectionId>\n implements IGridSection<R, T>\n{\n protected _indexRowStart = 0;\n protected _root!: R;\n protected _rowsNum = 0;\n protected rows: GridRows = [];\n protected _id: T;\n protected perLine: number;\n\n constructor(_id: T, perLine = 8) {\n this._id = _id;\n this.perLine = perLine;\n this.createRootRef();\n }\n\n private addRow(elements: SectionElements, lastPosition: number) {\n const start = lastPosition * this.perLine;\n const end = start + this.perLine;\n this.rows.push({\n id: this._indexRowStart + lastPosition,\n elements: elements.slice(start, end),\n });\n }\n\n private initRows(elements: SectionElements) {\n let i = 0;\n\n while (i < this.rowsNum) {\n this.addRow(elements, i++);\n }\n }\n\n protected abstract createRootRef(): void;\n\n addElements(elements: SectionElements) {\n this._rowsNum = Math.ceil(elements.length / this.perLine);\n this.initRows(elements);\n\n return this;\n }\n\n getRows() {\n return this.rows;\n }\n\n setIndexRowStart(start: number) {\n this._indexRowStart = start;\n\n return this;\n }\n\n updateElements(elements: SectionElements) {\n this.rows = [];\n this.addElements(elements);\n\n return this;\n }\n\n get id() {\n return this._id;\n }\n\n get root(): R {\n return this._root;\n }\n\n get rowsNum() {\n return this._rowsNum;\n }\n}\n","import type { Emoji } from '@emoji-mart/data';\n\nimport type { IEmojiLibrary } from '../EmojiLibrary';\n\nimport { EMOJI_MAX_SEARCH_RESULT } from '../../constants';\n\ntype IIndexSearch = {\n get: () => Emoji[];\n hasFound: () => boolean;\n search: (input: string) => void;\n};\n\nexport abstract class AIndexSearch implements IIndexSearch {\n protected input: string | undefined;\n protected maxResult = EMOJI_MAX_SEARCH_RESULT;\n protected result: string[] = [];\n protected scores = {};\n protected library: IEmojiLibrary;\n\n protected constructor(library: IEmojiLibrary) {\n this.library = library;\n }\n\n private createSearchResult(value: string) {\n this.scores = {};\n this.result = [];\n\n for (const key of this.library!.keys) {\n const score = key.indexOf(`${value}`);\n\n if (score === -1) continue;\n\n const emojiId = this.library!.getEmojiId(key);\n this.result.push(emojiId);\n\n if (!(this.scores as any)[emojiId]) {\n (this.scores as any)[emojiId] = 0;\n }\n (this.scores as any)[emojiId] += emojiId === value ? 0 : score + 1;\n }\n }\n\n private sortResultByScores(result: string[], scores: {}) {\n result.sort((a, b) => {\n const aScore = (scores as any)[a];\n const bScore = (scores as any)[b];\n\n if (aScore === bScore) {\n return a.localeCompare(b);\n }\n\n return aScore - bScore;\n });\n }\n\n get(): Emoji[] {\n const emojis: Emoji[] = [];\n\n for (const key of this.result) {\n const emoji = this.library?.getEmoji(key);\n\n if (emoji) {\n emojis.push(emoji);\n }\n if (emojis.length >= this.maxResult) break;\n }\n\n return emojis;\n }\n\n getEmoji(): Emoji | undefined {\n return this.get()[0];\n }\n\n hasFound(exact = false) {\n if (exact && this.input) {\n return this.result.includes(this.input);\n }\n\n return this.result.length > 0;\n }\n\n search(input: string): this {\n this.input = input.toLowerCase();\n const value = this.input;\n\n if (value) {\n this.createSearchResult(value);\n this.sortResultByScores(this.result, this.scores);\n } else {\n this.scores = {};\n this.result = [];\n }\n\n return this;\n }\n}\n","import type { IEmojiLibrary } from '../EmojiLibrary';\n\nimport { AIndexSearch } from './IndexSearch';\n\nexport class EmojiFloatingIndexSearch extends AIndexSearch {\n protected static instance?: EmojiFloatingIndexSearch;\n protected library: IEmojiLibrary;\n\n private constructor(library: IEmojiLibrary) {\n super(library);\n this.library = library;\n }\n\n static getInstance(library: IEmojiLibrary) {\n if (!EmojiFloatingIndexSearch.instance) {\n EmojiFloatingIndexSearch.instance = new EmojiFloatingIndexSearch(library);\n }\n\n return EmojiFloatingIndexSearch.instance;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { TriggerComboboxPluginOptions } from "@platejs/combobox";
|
|
2
|
+
import { Descendant, PluginConfig, SlateEditor } from "platejs";
|
|
3
|
+
import { Emoji, Emoji as Emoji$1, EmojiMartData } from "@emoji-mart/data";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/BaseEmojiPlugin.d.ts
|
|
6
|
+
type EmojiInputConfig = PluginConfig<'emoji', {
|
|
7
|
+
/**
|
|
8
|
+
* The emoji data.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import emojiMartData from '@emoji-mart/data';
|
|
12
|
+
*/
|
|
13
|
+
data?: EmojiMartData;
|
|
14
|
+
createEmojiNode?: (emoji: Emoji) => Descendant;
|
|
15
|
+
} & TriggerComboboxPluginOptions>;
|
|
16
|
+
declare const BaseEmojiInputPlugin: any;
|
|
17
|
+
declare const BaseEmojiPlugin: any;
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/lib/types.d.ts
|
|
20
|
+
type EmojiSettingsType = {
|
|
21
|
+
buttonSize: {
|
|
22
|
+
value: number;
|
|
23
|
+
};
|
|
24
|
+
categories: {
|
|
25
|
+
value?: EmojiCategoryList[];
|
|
26
|
+
};
|
|
27
|
+
perLine: {
|
|
28
|
+
value: number;
|
|
29
|
+
};
|
|
30
|
+
showFrequent: {
|
|
31
|
+
value: boolean;
|
|
32
|
+
key?: string;
|
|
33
|
+
limit?: number;
|
|
34
|
+
prefix?: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
type ReverseMap<T> = T[keyof T];
|
|
38
|
+
declare const EmojiCategory: {
|
|
39
|
+
readonly Activity: "activity";
|
|
40
|
+
readonly Custom: "custom";
|
|
41
|
+
readonly Flags: "flags";
|
|
42
|
+
readonly Foods: "foods";
|
|
43
|
+
readonly Frequent: "frequent";
|
|
44
|
+
readonly Nature: "nature";
|
|
45
|
+
readonly Objects: "objects";
|
|
46
|
+
readonly People: "people";
|
|
47
|
+
readonly Places: "places";
|
|
48
|
+
readonly Symbols: "symbols";
|
|
49
|
+
};
|
|
50
|
+
type EmojiCategoryList = ReverseMap<typeof EmojiCategory>;
|
|
51
|
+
type EmojiIconList<T = string> = {
|
|
52
|
+
categories: Record<EmojiCategoryList, {
|
|
53
|
+
outline: T;
|
|
54
|
+
solid: T;
|
|
55
|
+
}>;
|
|
56
|
+
search: {
|
|
57
|
+
delete: T;
|
|
58
|
+
loupe: T;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
type FrequentEmojis = Record<string, number>;
|
|
62
|
+
type i18nProps = {
|
|
63
|
+
categories: Record<EmojiCategoryList, string>;
|
|
64
|
+
clear: string;
|
|
65
|
+
pick: string;
|
|
66
|
+
search: string;
|
|
67
|
+
searchNoResultsSubtitle: string;
|
|
68
|
+
searchNoResultsTitle: string;
|
|
69
|
+
searchResult: string;
|
|
70
|
+
skins: Record<'1' | '2' | '3' | '4' | '5' | '6' | 'choose', string>;
|
|
71
|
+
};
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/lib/constants.d.ts
|
|
74
|
+
declare const EMOJI_MAX_SEARCH_RESULT = 60;
|
|
75
|
+
declare const DEFAULT_EMOJI_LIBRARY: EmojiMartData;
|
|
76
|
+
declare const defaultCategories: EmojiCategoryList[];
|
|
77
|
+
declare const EmojiSettings: EmojiSettingsType;
|
|
78
|
+
declare const DEFAULT_FREQUENTLY_USED_EMOJI: FrequentEmojis;
|
|
79
|
+
declare const NUM_OF_CATEGORIES: number;
|
|
80
|
+
declare const i18n: i18nProps;
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/lib/transforms/insertEmoji.d.ts
|
|
83
|
+
declare const insertEmoji: <TEmoji extends Emoji = Emoji>(editor: SlateEditor, emoji: TEmoji) => void;
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/lib/utils/EmojiLibrary/EmojiLibrary.types.d.ts
|
|
86
|
+
/**
|
|
87
|
+
* Emoji: type Emoji = { id: string; name: string; keywords: string[]; skins: [
|
|
88
|
+
* { unified: '1f389'; native: '🎉'; shortcodes: ':tada:'; } ]; version: 1; };
|
|
89
|
+
*/
|
|
90
|
+
type EmojiLibrary = EmojiMartData;
|
|
91
|
+
type Emojis = Record<string, Emoji>;
|
|
92
|
+
type IEmojiLibrary = {
|
|
93
|
+
keys: string[];
|
|
94
|
+
getEmoji: (key: string) => Emoji;
|
|
95
|
+
getEmojiId: (key: string) => string;
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/lib/utils/EmojiLibrary/EmojiInlineLibrary.d.ts
|
|
99
|
+
type THash = Record<string, string>;
|
|
100
|
+
declare class EmojiInlineLibrary implements IEmojiLibrary {
|
|
101
|
+
protected _emojis: Emojis;
|
|
102
|
+
protected _hash: THash;
|
|
103
|
+
protected _keys: string[];
|
|
104
|
+
constructor(library?: EmojiLibrary);
|
|
105
|
+
private createSearchableString;
|
|
106
|
+
private getName;
|
|
107
|
+
private init;
|
|
108
|
+
getEmoji(id: string): Emoji$1;
|
|
109
|
+
getEmojiId(key: string): string;
|
|
110
|
+
get keys(): string[];
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/lib/utils/Grid/Grid.types.d.ts
|
|
114
|
+
type GridElements<S extends SectionId = SectionId> = Record<S, string[]>;
|
|
115
|
+
type GridRow = {
|
|
116
|
+
id: number;
|
|
117
|
+
elements: string[];
|
|
118
|
+
};
|
|
119
|
+
type GridRows = GridRow[];
|
|
120
|
+
interface IGrid<R, T extends SectionId> {
|
|
121
|
+
size: number;
|
|
122
|
+
addSection: (sectionId: T, section: IGridSection<R, T>, elements: GridElements) => this;
|
|
123
|
+
indexOf: (sectionId: T) => number;
|
|
124
|
+
section: (sectionId: T) => IGridSection<R, T>;
|
|
125
|
+
sections: () => IGridSection<R, T>[];
|
|
126
|
+
updateSection: (sectionId: T, elements: SectionElements) => this;
|
|
127
|
+
}
|
|
128
|
+
interface IGridSection<R, T> {
|
|
129
|
+
id: T;
|
|
130
|
+
root: R;
|
|
131
|
+
rowsNum: number;
|
|
132
|
+
addElements: (elements: SectionElements) => this;
|
|
133
|
+
getRows: () => GridRows;
|
|
134
|
+
setIndexRowStart: (start: number) => this;
|
|
135
|
+
updateElements: (elements: SectionElements) => this;
|
|
136
|
+
}
|
|
137
|
+
type SectionElements = string[];
|
|
138
|
+
type SectionId = string;
|
|
139
|
+
type Unknown = unknown;
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/lib/utils/Grid/Grid.d.ts
|
|
142
|
+
declare class Grid<R, T extends SectionId = SectionId> implements IGrid<R, T> {
|
|
143
|
+
protected grid: Map<T, IGridSection<R, T>>;
|
|
144
|
+
protected rowsCount: number;
|
|
145
|
+
protected sectionsIds: T[];
|
|
146
|
+
addSection(sectionId: T, section: IGridSection<R, T>, elements: GridElements): this;
|
|
147
|
+
indexOf(sectionId: T): number;
|
|
148
|
+
section(sectionId: T): IGridSection<R, T>;
|
|
149
|
+
sections(): IGridSection<R, T>[];
|
|
150
|
+
updateSection(sectionId: T, elements: SectionElements): this;
|
|
151
|
+
get size(): number;
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region src/lib/utils/Grid/GridSection.d.ts
|
|
155
|
+
declare abstract class AGridSection<R extends Unknown, T = SectionId> implements IGridSection<R, T> {
|
|
156
|
+
protected _indexRowStart: number;
|
|
157
|
+
protected _root: R;
|
|
158
|
+
protected _rowsNum: number;
|
|
159
|
+
protected rows: GridRows;
|
|
160
|
+
protected _id: T;
|
|
161
|
+
protected perLine: number;
|
|
162
|
+
constructor(_id: T, perLine?: number);
|
|
163
|
+
private addRow;
|
|
164
|
+
private initRows;
|
|
165
|
+
protected abstract createRootRef(): void;
|
|
166
|
+
addElements(elements: SectionElements): this;
|
|
167
|
+
getRows(): GridRows;
|
|
168
|
+
setIndexRowStart(start: number): this;
|
|
169
|
+
updateElements(elements: SectionElements): this;
|
|
170
|
+
get id(): T;
|
|
171
|
+
get root(): R;
|
|
172
|
+
get rowsNum(): number;
|
|
173
|
+
}
|
|
174
|
+
//#endregion
|
|
175
|
+
//#region src/lib/utils/IndexSearch/IndexSearch.d.ts
|
|
176
|
+
type IIndexSearch = {
|
|
177
|
+
get: () => Emoji[];
|
|
178
|
+
hasFound: () => boolean;
|
|
179
|
+
search: (input: string) => void;
|
|
180
|
+
};
|
|
181
|
+
declare abstract class AIndexSearch implements IIndexSearch {
|
|
182
|
+
protected input: string | undefined;
|
|
183
|
+
protected maxResult: number;
|
|
184
|
+
protected result: string[];
|
|
185
|
+
protected scores: {};
|
|
186
|
+
protected library: IEmojiLibrary;
|
|
187
|
+
protected constructor(library: IEmojiLibrary);
|
|
188
|
+
private createSearchResult;
|
|
189
|
+
private sortResultByScores;
|
|
190
|
+
get(): Emoji[];
|
|
191
|
+
getEmoji(): Emoji | undefined;
|
|
192
|
+
hasFound(exact?: boolean): boolean;
|
|
193
|
+
search(input: string): this;
|
|
194
|
+
}
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region src/lib/utils/IndexSearch/EmojiFloatingIndexSearch.d.ts
|
|
197
|
+
declare class EmojiFloatingIndexSearch extends AIndexSearch {
|
|
198
|
+
protected static instance?: EmojiFloatingIndexSearch;
|
|
199
|
+
protected library: IEmojiLibrary;
|
|
200
|
+
private constructor();
|
|
201
|
+
static getInstance(library: IEmojiLibrary): EmojiFloatingIndexSearch;
|
|
202
|
+
}
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region src/lib/utils/IndexSearch/EmojiInlineIndexSearch.d.ts
|
|
205
|
+
declare class EmojiInlineIndexSearch extends AIndexSearch {
|
|
206
|
+
protected static instance?: EmojiInlineIndexSearch;
|
|
207
|
+
protected library: IEmojiLibrary;
|
|
208
|
+
private constructor();
|
|
209
|
+
static getInstance(data?: EmojiMartData): EmojiInlineIndexSearch;
|
|
210
|
+
}
|
|
211
|
+
//#endregion
|
|
212
|
+
export { EmojiIconList as A, EMOJI_MAX_SEARCH_RESULT as C, i18n as D, defaultCategories as E, BaseEmojiPlugin as F, EmojiInputConfig as I, FrequentEmojis as M, i18nProps as N, EmojiCategory as O, BaseEmojiInputPlugin as P, DEFAULT_FREQUENTLY_USED_EMOJI as S, NUM_OF_CATEGORIES as T, EmojiLibrary as _, Grid as a, insertEmoji as b, GridRows as c, SectionElements as d, SectionId as f, Emoji$1 as g, THash as h, AGridSection as i, EmojiSettingsType as j, EmojiCategoryList as k, IGrid as l, EmojiInlineLibrary as m, EmojiFloatingIndexSearch as n, GridElements as o, Unknown as p, AIndexSearch as r, GridRow as s, EmojiInlineIndexSearch as t, IGridSection as u, Emojis as v, EmojiSettings as w, DEFAULT_EMOJI_LIBRARY as x, IEmojiLibrary as y };
|
|
213
|
+
//# sourceMappingURL=index-QJpfncCa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-QJpfncCa.d.ts","names":[],"sources":["../src/lib/BaseEmojiPlugin.ts","../src/lib/types.ts","../src/lib/constants.ts","../src/lib/transforms/insertEmoji.ts","../src/lib/utils/EmojiLibrary/EmojiLibrary.types.ts","../src/lib/utils/EmojiLibrary/EmojiInlineLibrary.ts","../src/lib/utils/Grid/Grid.types.ts","../src/lib/utils/Grid/Grid.ts","../src/lib/utils/Grid/GridSection.ts","../src/lib/utils/IndexSearch/IndexSearch.ts","../src/lib/utils/IndexSearch/EmojiFloatingIndexSearch.ts","../src/lib/utils/IndexSearch/EmojiInlineIndexSearch.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { A as EmojiIconList, C as EMOJI_MAX_SEARCH_RESULT, D as i18n, E as defaultCategories, F as BaseEmojiPlugin, I as EmojiInputConfig, M as FrequentEmojis, N as i18nProps, O as EmojiCategory, P as BaseEmojiInputPlugin, S as DEFAULT_FREQUENTLY_USED_EMOJI, T as NUM_OF_CATEGORIES, _ as EmojiLibrary, a as Grid, b as insertEmoji, c as GridRows, d as SectionElements, f as SectionId, g as Emoji, h as THash, i as AGridSection, j as EmojiSettingsType, k as EmojiCategoryList, l as IGrid, m as EmojiInlineLibrary, n as EmojiFloatingIndexSearch, o as GridElements, p as Unknown, r as AIndexSearch, s as GridRow, t as EmojiInlineIndexSearch, u as IGridSection, v as Emojis, w as EmojiSettings, x as DEFAULT_EMOJI_LIBRARY, y as IEmojiLibrary } from "./index-QJpfncCa";
|
|
2
|
+
export { AGridSection, AIndexSearch, BaseEmojiInputPlugin, BaseEmojiPlugin, DEFAULT_EMOJI_LIBRARY, DEFAULT_FREQUENTLY_USED_EMOJI, EMOJI_MAX_SEARCH_RESULT, Emoji, EmojiCategory, EmojiCategoryList, EmojiFloatingIndexSearch, EmojiIconList, EmojiInlineIndexSearch, EmojiInlineLibrary, EmojiInputConfig, EmojiLibrary, EmojiSettings, EmojiSettingsType, Emojis, FrequentEmojis, Grid, GridElements, GridRow, GridRows, IEmojiLibrary, IGrid, IGridSection, NUM_OF_CATEGORIES, SectionElements, SectionId, THash, Unknown, defaultCategories, i18n, i18nProps, insertEmoji };
|