emoji-picker-react 4.1.1 → 4.3.0

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.
@@ -232,238 +232,6 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
232
232
  Categories["FLAGS"] = "flags";
233
233
  })(exports.Categories || (exports.Categories = {}));
234
234
 
235
- var _configByCategory;
236
- var categoriesOrdered = [exports.Categories.SUGGESTED, exports.Categories.SMILEYS_PEOPLE, exports.Categories.ANIMALS_NATURE, exports.Categories.FOOD_DRINK, exports.Categories.TRAVEL_PLACES, exports.Categories.ACTIVITIES, exports.Categories.OBJECTS, exports.Categories.SYMBOLS, exports.Categories.FLAGS];
237
- var SuggestedRecent = {
238
- name: 'Recently Used',
239
- category: exports.Categories.SUGGESTED
240
- };
241
- var configByCategory = (_configByCategory = {}, _configByCategory[exports.Categories.SUGGESTED] = {
242
- category: exports.Categories.SUGGESTED,
243
- name: 'Frequently Used'
244
- }, _configByCategory[exports.Categories.SMILEYS_PEOPLE] = {
245
- category: exports.Categories.SMILEYS_PEOPLE,
246
- name: 'Smileys & People'
247
- }, _configByCategory[exports.Categories.ANIMALS_NATURE] = {
248
- category: exports.Categories.ANIMALS_NATURE,
249
- name: 'Animals & Nature'
250
- }, _configByCategory[exports.Categories.FOOD_DRINK] = {
251
- category: exports.Categories.FOOD_DRINK,
252
- name: 'Food & Drink'
253
- }, _configByCategory[exports.Categories.TRAVEL_PLACES] = {
254
- category: exports.Categories.TRAVEL_PLACES,
255
- name: 'Travel & Places'
256
- }, _configByCategory[exports.Categories.ACTIVITIES] = {
257
- category: exports.Categories.ACTIVITIES,
258
- name: 'Activities'
259
- }, _configByCategory[exports.Categories.OBJECTS] = {
260
- category: exports.Categories.OBJECTS,
261
- name: 'Objects'
262
- }, _configByCategory[exports.Categories.SYMBOLS] = {
263
- category: exports.Categories.SYMBOLS,
264
- name: 'Symbols'
265
- }, _configByCategory[exports.Categories.FLAGS] = {
266
- category: exports.Categories.FLAGS,
267
- name: 'Flags'
268
- }, _configByCategory);
269
- function baseCategoriesConfig(modifiers) {
270
- return categoriesOrdered.map(function (category) {
271
- return _extends({}, configByCategory[category], modifiers && modifiers[category] && modifiers[category]);
272
- });
273
- }
274
- function categoryFromCategoryConfig(category) {
275
- return category.category;
276
- }
277
- function categoryNameFromCategoryConfig(category) {
278
- return category.name;
279
- }
280
- function mergeCategoriesConfig(userCategoriesConfig, modifiers) {
281
- var _userCategoriesConfig;
282
-
283
- if (userCategoriesConfig === void 0) {
284
- userCategoriesConfig = [];
285
- }
286
-
287
- if (modifiers === void 0) {
288
- modifiers = {};
289
- }
290
-
291
- var extra = {};
292
-
293
- if (modifiers.suggestionMode === exports.SuggestionMode.RECENT) {
294
- extra[exports.Categories.SUGGESTED] = SuggestedRecent;
295
- }
296
-
297
- var base = baseCategoriesConfig(extra);
298
-
299
- if (!((_userCategoriesConfig = userCategoriesConfig) != null && _userCategoriesConfig.length)) {
300
- return base;
301
- }
302
-
303
- return userCategoriesConfig.map(function (category) {
304
- if (typeof category === 'string') {
305
- return getBaseConfigByCategory(category, extra[category]);
306
- }
307
-
308
- return _extends({}, getBaseConfigByCategory(category.category, extra[category.category]), category);
309
- });
310
- }
311
-
312
- function getBaseConfigByCategory(category, modifier) {
313
- if (modifier === void 0) {
314
- modifier = {};
315
- }
316
-
317
- return Object.assign(configByCategory[category], modifier);
318
- }
319
-
320
- function mergeConfig(userConfig) {
321
- var _userConfig$previewCo;
322
-
323
- if (userConfig === void 0) {
324
- userConfig = {};
325
- }
326
-
327
- var base = basePickerConfig();
328
- var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});
329
- var config = Object.assign(base, userConfig);
330
- var categories = mergeCategoriesConfig(userConfig.categories, {
331
- suggestionMode: config.suggestedEmojisMode
332
- });
333
- return _extends({}, config, {
334
- categories: categories,
335
- previewConfig: previewConfig
336
- });
337
- }
338
- function basePickerConfig() {
339
- return {
340
- autoFocusSearch: true,
341
- categories: baseCategoriesConfig(),
342
- defaultSkinTone: exports.SkinTones.NEUTRAL,
343
- emojiStyle: exports.EmojiStyle.APPLE,
344
- emojiVersion: null,
345
- height: 450,
346
- lazyLoadEmojis: false,
347
- onEmojiClick: function defaultOnClickHandler( // @ts-ignore
348
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
349
- emoji, // @ts-ignore
350
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
351
- event) {},
352
- previewConfig: _extends({}, basePreviewConfig),
353
- searchPlaceHolder: 'Search',
354
- skinTonesDisabled: false,
355
- suggestedEmojisMode: exports.SuggestionMode.FREQUENT,
356
- theme: exports.Theme.LIGHT,
357
- width: 350
358
- };
359
- }
360
- var basePreviewConfig = {
361
- defaultEmoji: '1f60a',
362
- defaultCaption: "What's your mood?",
363
- showPreview: true
364
- };
365
-
366
- var _excluded = ["children"];
367
- var ConfigContext = /*#__PURE__*/React.createContext( /*#__PURE__*/basePickerConfig());
368
- function PickerConfigProvider(_ref) {
369
- var children = _ref.children,
370
- config = _objectWithoutPropertiesLoose(_ref, _excluded);
371
-
372
- return React.createElement(ConfigContext.Provider, {
373
- value: mergeConfig(config)
374
- }, children);
375
- }
376
- function usePickerConfig() {
377
- return React.useContext(ConfigContext);
378
- }
379
-
380
- function useSearchPlaceHolderConfig() {
381
- var _usePickerConfig = usePickerConfig(),
382
- searchPlaceHolder = _usePickerConfig.searchPlaceHolder;
383
-
384
- return searchPlaceHolder;
385
- }
386
- function useDefaultSkinToneConfig() {
387
- var _usePickerConfig2 = usePickerConfig(),
388
- defaultSkinTone = _usePickerConfig2.defaultSkinTone;
389
-
390
- return defaultSkinTone;
391
- }
392
- function useSkinTonesDisabledConfig() {
393
- var _usePickerConfig3 = usePickerConfig(),
394
- skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;
395
-
396
- return skinTonesDisabled;
397
- }
398
- function useEmojiStyleConfig() {
399
- var _usePickerConfig4 = usePickerConfig(),
400
- emojiStyle = _usePickerConfig4.emojiStyle;
401
-
402
- return emojiStyle;
403
- }
404
- function useAutoFocusSearchConfig() {
405
- var _usePickerConfig5 = usePickerConfig(),
406
- autoFocusSearch = _usePickerConfig5.autoFocusSearch;
407
-
408
- return autoFocusSearch;
409
- }
410
- function useCategoriesConfig() {
411
- var _usePickerConfig6 = usePickerConfig(),
412
- categories = _usePickerConfig6.categories;
413
-
414
- return categories;
415
- }
416
- function useOnEmojiClickConfig() {
417
- var _usePickerConfig7 = usePickerConfig(),
418
- onEmojiClick = _usePickerConfig7.onEmojiClick;
419
-
420
- return onEmojiClick;
421
- }
422
- function usePreviewConfig() {
423
- var _usePickerConfig8 = usePickerConfig(),
424
- previewConfig = _usePickerConfig8.previewConfig;
425
-
426
- return previewConfig;
427
- }
428
- function useThemeConfig() {
429
- var _usePickerConfig9 = usePickerConfig(),
430
- theme = _usePickerConfig9.theme;
431
-
432
- if (theme === exports.Theme.AUTO) {
433
- return isSystemDarkTheme() ? exports.Theme.DARK : exports.Theme.LIGHT;
434
- }
435
-
436
- return theme;
437
- }
438
- function useSuggestedEmojisModeConfig() {
439
- var _usePickerConfig10 = usePickerConfig(),
440
- suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
441
-
442
- return suggestedEmojisMode;
443
- }
444
- function useLazyLoadEmojisConfig() {
445
- var _usePickerConfig11 = usePickerConfig(),
446
- lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
447
-
448
- return lazyLoadEmojis;
449
- }
450
- function usePickerSizeConfig() {
451
- var _usePickerConfig12 = usePickerConfig(),
452
- height = _usePickerConfig12.height,
453
- width = _usePickerConfig12.width;
454
-
455
- return {
456
- height: height,
457
- width: width
458
- };
459
- }
460
- function useEmojiVersionConfig() {
461
- var _usePickerConfig13 = usePickerConfig(),
462
- emojiVersion = _usePickerConfig13.emojiVersion;
463
-
464
- return emojiVersion;
465
- }
466
-
467
235
  var CDN_URL_APPLE = 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/';
468
236
  var CDN_URL_FACEBOOK = 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook/img/facebook/64/';
469
237
  var CDN_URL_TWITTER = 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter/img/twitter/64/';
@@ -16866,8 +16634,9 @@ function emojisByCategory(category) {
16866
16634
 
16867
16635
  // @ts-ignore
16868
16636
  return (_emojis$category = emojis == null ? void 0 : emojis[category]) != null ? _emojis$category : [];
16869
- }
16870
- function emojiUrlByUnified(emojiStyle, unified) {
16637
+ } // WARNING: DO NOT USE DIRECTLY
16638
+
16639
+ function emojiUrlByUnified(unified, emojiStyle) {
16871
16640
  return "" + cdnUrl(emojiStyle) + unified + ".png";
16872
16641
  }
16873
16642
  function emojiVariations(emoji) {
@@ -16910,6 +16679,249 @@ function activeVariationFromUnified(unified) {
16910
16679
  return skinToneVariations.includes(suspectedSkinTone) ? suspectedSkinTone : null;
16911
16680
  }
16912
16681
 
16682
+ var _configByCategory;
16683
+ var categoriesOrdered = [exports.Categories.SUGGESTED, exports.Categories.SMILEYS_PEOPLE, exports.Categories.ANIMALS_NATURE, exports.Categories.FOOD_DRINK, exports.Categories.TRAVEL_PLACES, exports.Categories.ACTIVITIES, exports.Categories.OBJECTS, exports.Categories.SYMBOLS, exports.Categories.FLAGS];
16684
+ var SuggestedRecent = {
16685
+ name: 'Recently Used',
16686
+ category: exports.Categories.SUGGESTED
16687
+ };
16688
+ var configByCategory = (_configByCategory = {}, _configByCategory[exports.Categories.SUGGESTED] = {
16689
+ category: exports.Categories.SUGGESTED,
16690
+ name: 'Frequently Used'
16691
+ }, _configByCategory[exports.Categories.SMILEYS_PEOPLE] = {
16692
+ category: exports.Categories.SMILEYS_PEOPLE,
16693
+ name: 'Smileys & People'
16694
+ }, _configByCategory[exports.Categories.ANIMALS_NATURE] = {
16695
+ category: exports.Categories.ANIMALS_NATURE,
16696
+ name: 'Animals & Nature'
16697
+ }, _configByCategory[exports.Categories.FOOD_DRINK] = {
16698
+ category: exports.Categories.FOOD_DRINK,
16699
+ name: 'Food & Drink'
16700
+ }, _configByCategory[exports.Categories.TRAVEL_PLACES] = {
16701
+ category: exports.Categories.TRAVEL_PLACES,
16702
+ name: 'Travel & Places'
16703
+ }, _configByCategory[exports.Categories.ACTIVITIES] = {
16704
+ category: exports.Categories.ACTIVITIES,
16705
+ name: 'Activities'
16706
+ }, _configByCategory[exports.Categories.OBJECTS] = {
16707
+ category: exports.Categories.OBJECTS,
16708
+ name: 'Objects'
16709
+ }, _configByCategory[exports.Categories.SYMBOLS] = {
16710
+ category: exports.Categories.SYMBOLS,
16711
+ name: 'Symbols'
16712
+ }, _configByCategory[exports.Categories.FLAGS] = {
16713
+ category: exports.Categories.FLAGS,
16714
+ name: 'Flags'
16715
+ }, _configByCategory);
16716
+ function baseCategoriesConfig(modifiers) {
16717
+ return categoriesOrdered.map(function (category) {
16718
+ return _extends({}, configByCategory[category], modifiers && modifiers[category] && modifiers[category]);
16719
+ });
16720
+ }
16721
+ function categoryFromCategoryConfig(category) {
16722
+ return category.category;
16723
+ }
16724
+ function categoryNameFromCategoryConfig(category) {
16725
+ return category.name;
16726
+ }
16727
+ function mergeCategoriesConfig(userCategoriesConfig, modifiers) {
16728
+ var _userCategoriesConfig;
16729
+
16730
+ if (userCategoriesConfig === void 0) {
16731
+ userCategoriesConfig = [];
16732
+ }
16733
+
16734
+ if (modifiers === void 0) {
16735
+ modifiers = {};
16736
+ }
16737
+
16738
+ var extra = {};
16739
+
16740
+ if (modifiers.suggestionMode === exports.SuggestionMode.RECENT) {
16741
+ extra[exports.Categories.SUGGESTED] = SuggestedRecent;
16742
+ }
16743
+
16744
+ var base = baseCategoriesConfig(extra);
16745
+
16746
+ if (!((_userCategoriesConfig = userCategoriesConfig) != null && _userCategoriesConfig.length)) {
16747
+ return base;
16748
+ }
16749
+
16750
+ return userCategoriesConfig.map(function (category) {
16751
+ if (typeof category === 'string') {
16752
+ return getBaseConfigByCategory(category, extra[category]);
16753
+ }
16754
+
16755
+ return _extends({}, getBaseConfigByCategory(category.category, extra[category.category]), category);
16756
+ });
16757
+ }
16758
+
16759
+ function getBaseConfigByCategory(category, modifier) {
16760
+ if (modifier === void 0) {
16761
+ modifier = {};
16762
+ }
16763
+
16764
+ return Object.assign(configByCategory[category], modifier);
16765
+ }
16766
+
16767
+ function mergeConfig(userConfig) {
16768
+ var _userConfig$previewCo;
16769
+
16770
+ if (userConfig === void 0) {
16771
+ userConfig = {};
16772
+ }
16773
+
16774
+ var base = basePickerConfig();
16775
+ var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});
16776
+ var config = Object.assign(base, userConfig);
16777
+ var categories = mergeCategoriesConfig(userConfig.categories, {
16778
+ suggestionMode: config.suggestedEmojisMode
16779
+ });
16780
+ return _extends({}, config, {
16781
+ categories: categories,
16782
+ previewConfig: previewConfig
16783
+ });
16784
+ }
16785
+ function basePickerConfig() {
16786
+ return {
16787
+ autoFocusSearch: true,
16788
+ categories: baseCategoriesConfig(),
16789
+ defaultSkinTone: exports.SkinTones.NEUTRAL,
16790
+ emojiStyle: exports.EmojiStyle.APPLE,
16791
+ emojiVersion: null,
16792
+ getEmojiUrl: emojiUrlByUnified,
16793
+ height: 450,
16794
+ lazyLoadEmojis: false,
16795
+ onEmojiClick: function defaultOnClickHandler( // @ts-ignore
16796
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16797
+ emoji, // @ts-ignore
16798
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16799
+ event) {},
16800
+ previewConfig: _extends({}, basePreviewConfig),
16801
+ searchPlaceHolder: 'Search',
16802
+ skinTonesDisabled: false,
16803
+ suggestedEmojisMode: exports.SuggestionMode.FREQUENT,
16804
+ theme: exports.Theme.LIGHT,
16805
+ width: 350
16806
+ };
16807
+ }
16808
+ var basePreviewConfig = {
16809
+ defaultEmoji: '1f60a',
16810
+ defaultCaption: "What's your mood?",
16811
+ showPreview: true
16812
+ };
16813
+
16814
+ var _excluded = ["children"];
16815
+ var ConfigContext = /*#__PURE__*/React.createContext( /*#__PURE__*/basePickerConfig());
16816
+ function PickerConfigProvider(_ref) {
16817
+ var children = _ref.children,
16818
+ config = _objectWithoutPropertiesLoose(_ref, _excluded);
16819
+
16820
+ return React.createElement(ConfigContext.Provider, {
16821
+ value: mergeConfig(config)
16822
+ }, children);
16823
+ }
16824
+ function usePickerConfig() {
16825
+ return React.useContext(ConfigContext);
16826
+ }
16827
+
16828
+ function useSearchPlaceHolderConfig() {
16829
+ var _usePickerConfig = usePickerConfig(),
16830
+ searchPlaceHolder = _usePickerConfig.searchPlaceHolder;
16831
+
16832
+ return searchPlaceHolder;
16833
+ }
16834
+ function useDefaultSkinToneConfig() {
16835
+ var _usePickerConfig2 = usePickerConfig(),
16836
+ defaultSkinTone = _usePickerConfig2.defaultSkinTone;
16837
+
16838
+ return defaultSkinTone;
16839
+ }
16840
+ function useSkinTonesDisabledConfig() {
16841
+ var _usePickerConfig3 = usePickerConfig(),
16842
+ skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;
16843
+
16844
+ return skinTonesDisabled;
16845
+ }
16846
+ function useEmojiStyleConfig() {
16847
+ var _usePickerConfig4 = usePickerConfig(),
16848
+ emojiStyle = _usePickerConfig4.emojiStyle;
16849
+
16850
+ return emojiStyle;
16851
+ }
16852
+ function useAutoFocusSearchConfig() {
16853
+ var _usePickerConfig5 = usePickerConfig(),
16854
+ autoFocusSearch = _usePickerConfig5.autoFocusSearch;
16855
+
16856
+ return autoFocusSearch;
16857
+ }
16858
+ function useCategoriesConfig() {
16859
+ var _usePickerConfig6 = usePickerConfig(),
16860
+ categories = _usePickerConfig6.categories;
16861
+
16862
+ return categories;
16863
+ }
16864
+ function useOnEmojiClickConfig() {
16865
+ var _usePickerConfig7 = usePickerConfig(),
16866
+ onEmojiClick = _usePickerConfig7.onEmojiClick;
16867
+
16868
+ return onEmojiClick;
16869
+ }
16870
+ function usePreviewConfig() {
16871
+ var _usePickerConfig8 = usePickerConfig(),
16872
+ previewConfig = _usePickerConfig8.previewConfig;
16873
+
16874
+ return previewConfig;
16875
+ }
16876
+ function useThemeConfig() {
16877
+ var _usePickerConfig9 = usePickerConfig(),
16878
+ theme = _usePickerConfig9.theme;
16879
+
16880
+ if (theme === exports.Theme.AUTO) {
16881
+ return isSystemDarkTheme() ? exports.Theme.DARK : exports.Theme.LIGHT;
16882
+ }
16883
+
16884
+ return theme;
16885
+ }
16886
+ function useSuggestedEmojisModeConfig() {
16887
+ var _usePickerConfig10 = usePickerConfig(),
16888
+ suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
16889
+
16890
+ return suggestedEmojisMode;
16891
+ }
16892
+ function useLazyLoadEmojisConfig() {
16893
+ var _usePickerConfig11 = usePickerConfig(),
16894
+ lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
16895
+
16896
+ return lazyLoadEmojis;
16897
+ }
16898
+ function usePickerSizeConfig() {
16899
+ var _usePickerConfig12 = usePickerConfig(),
16900
+ height = _usePickerConfig12.height,
16901
+ width = _usePickerConfig12.width;
16902
+
16903
+ return {
16904
+ height: getDimension(height),
16905
+ width: getDimension(width)
16906
+ };
16907
+ }
16908
+ function useEmojiVersionConfig() {
16909
+ var _usePickerConfig13 = usePickerConfig(),
16910
+ emojiVersion = _usePickerConfig13.emojiVersion;
16911
+
16912
+ return emojiVersion;
16913
+ }
16914
+ function useGetEmojiUrlConfig() {
16915
+ var _usePickerConfig14 = usePickerConfig(),
16916
+ getEmojiUrl = _usePickerConfig14.getEmojiUrl;
16917
+
16918
+ return getEmojiUrl;
16919
+ }
16920
+
16921
+ function getDimension(dimensionConfig) {
16922
+ return typeof dimensionConfig === 'number' ? dimensionConfig + "px" : dimensionConfig;
16923
+ }
16924
+
16913
16925
  var alphaNumericEmojiIndex = {};
16914
16926
  setTimeout(function () {
16915
16927
  allEmojis.reduce(function (searchIndex, emoji) {
@@ -17819,6 +17831,7 @@ function useMouseDownHandlers(BodyRef) {
17819
17831
  var _useUpdateSuggested = useUpdateSuggested(),
17820
17832
  updateSuggested = _useUpdateSuggested[1];
17821
17833
 
17834
+ var getEmojiUrl = useGetEmojiUrlConfig();
17822
17835
  var onClick = React.useCallback(function onClick(event) {
17823
17836
  if (disallowClickRef.current) {
17824
17837
  return;
@@ -17837,8 +17850,8 @@ function useMouseDownHandlers(BodyRef) {
17837
17850
  var skinToneToUse = activeVariationFromUnified(unified) || activeSkinTone;
17838
17851
  updateSuggested();
17839
17852
  setsuggested(emoji, skinToneToUse);
17840
- onEmojiClick(emojiClickOutput(emoji, skinToneToUse), event);
17841
- }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested]);
17853
+ onEmojiClick(emojiClickOutput(emoji, skinToneToUse, getEmojiUrl), event);
17854
+ }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested, getEmojiUrl]);
17842
17855
  var onMouseDown = React.useCallback(function onMouseDown(event) {
17843
17856
  var _window;
17844
17857
 
@@ -17909,13 +17922,13 @@ function emojiFromEvent(event) {
17909
17922
  return emojiFromElement(target);
17910
17923
  }
17911
17924
 
17912
- function emojiClickOutput(emoji, activeSkinTone) {
17925
+ function emojiClickOutput(emoji, activeSkinTone, getEmojiUrl) {
17913
17926
  var unified = emojiUnified(emoji, activeSkinTone);
17914
17927
  return {
17915
17928
  activeSkinTone: activeSkinTone,
17916
17929
  emoji: parseNativeEmoji(unified),
17917
17930
  getImageUrl: function getImageUrl(emojiStyle) {
17918
- return emojiUrlByUnified(emojiStyle, unified);
17931
+ return getEmojiUrl(unified, emojiStyle);
17919
17932
  },
17920
17933
  names: emojiNames(emoji),
17921
17934
  unified: unified,
@@ -18175,7 +18188,8 @@ function ClickableEmoji(_ref) {
18175
18188
  _ref$showVariations = _ref.showVariations,
18176
18189
  showVariations = _ref$showVariations === void 0 ? true : _ref$showVariations,
18177
18190
  size = _ref.size,
18178
- lazyLoad = _ref.lazyLoad;
18191
+ lazyLoad = _ref.lazyLoad,
18192
+ getEmojiUrl = _ref.getEmojiUrl;
18179
18193
  var hasVariations = emojiHasVariations(emoji);
18180
18194
  return React.createElement(Button, {
18181
18195
  className: clsx(ClassNames.emoji, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx[ClassNames.visible] = !hidden && !hiddenOnSearch, _clsx[ClassNames.emojiHasVariatios] = hasVariations && showVariations, _clsx)),
@@ -18187,7 +18201,8 @@ function ClickableEmoji(_ref) {
18187
18201
  emoji: emoji,
18188
18202
  size: size,
18189
18203
  emojiStyle: emojiStyle,
18190
- lazyLoad: lazyLoad
18204
+ lazyLoad: lazyLoad,
18205
+ getEmojiUrl: getEmojiUrl
18191
18206
  }));
18192
18207
  }
18193
18208
  function ViewOnlyEmoji(_ref2) {
@@ -18195,7 +18210,9 @@ function ViewOnlyEmoji(_ref2) {
18195
18210
  unified = _ref2.unified,
18196
18211
  emojiStyle = _ref2.emojiStyle,
18197
18212
  size = _ref2.size,
18198
- lazyLoad = _ref2.lazyLoad;
18213
+ lazyLoad = _ref2.lazyLoad,
18214
+ _ref2$getEmojiUrl = _ref2.getEmojiUrl,
18215
+ getEmojiUrl = _ref2$getEmojiUrl === void 0 ? emojiUrlByUnified : _ref2$getEmojiUrl;
18199
18216
  var style = {};
18200
18217
 
18201
18218
  if (size) {
@@ -18211,7 +18228,8 @@ function ViewOnlyEmoji(_ref2) {
18211
18228
  style: style,
18212
18229
  emoji: asEmoji(emojiToRender),
18213
18230
  emojiStyle: emojiStyle,
18214
- lazyLoad: lazyLoad
18231
+ lazyLoad: lazyLoad,
18232
+ getEmojiUrl: getEmojiUrl
18215
18233
  }));
18216
18234
  }
18217
18235
 
@@ -18231,13 +18249,14 @@ function EmojiImg(_ref4) {
18231
18249
  emojiStyle = _ref4.emojiStyle,
18232
18250
  style = _ref4.style,
18233
18251
  _ref4$lazyLoad = _ref4.lazyLoad,
18234
- lazyLoad = _ref4$lazyLoad === void 0 ? false : _ref4$lazyLoad;
18252
+ lazyLoad = _ref4$lazyLoad === void 0 ? false : _ref4$lazyLoad,
18253
+ getEmojiUrl = _ref4.getEmojiUrl;
18235
18254
 
18236
18255
  var _useEmojisThatFailedT = useEmojisThatFailedToLoadState(),
18237
18256
  setEmojisThatFailedToLoad = _useEmojisThatFailedT[1];
18238
18257
 
18239
18258
  return React.createElement("img", {
18240
- src: emojiUrlByUnified(emojiStyle, unified),
18259
+ src: getEmojiUrl(unified, emojiStyle),
18241
18260
  alt: emojiName(emoji),
18242
18261
  className: clsx(ClassNames.external, 'epr-emoji-img'),
18243
18262
  loading: lazyLoad ? 'lazy' : 'eager',
@@ -18279,6 +18298,7 @@ function Suggested(_ref) {
18279
18298
  suggestedUpdated = _useUpdateSuggested[0];
18280
18299
 
18281
18300
  var suggestedEmojisModeConfig = useSuggestedEmojisModeConfig();
18301
+ var getEmojiUrl = useGetEmojiUrlConfig();
18282
18302
  var suggested = React.useMemo(function () {
18283
18303
  var _getsuggested;
18284
18304
 
@@ -18302,7 +18322,8 @@ function Suggested(_ref) {
18302
18322
  unified: suggestedItem.unified,
18303
18323
  emojiStyle: emojiStyle,
18304
18324
  emoji: emoji,
18305
- key: suggestedItem.unified
18325
+ key: suggestedItem.unified,
18326
+ getEmojiUrl: getEmojiUrl
18306
18327
  });
18307
18328
  }));
18308
18329
  }
@@ -18342,7 +18363,8 @@ function RenderCategory(_ref) {
18342
18363
  var _useActiveSkinToneSta = useActiveSkinToneState(),
18343
18364
  activeSkinTone = _useActiveSkinToneSta[0];
18344
18365
 
18345
- var disallowedEmojisRef = useDisallowedEmojisRef(); // Small trick to defer the rendering of all emoji categories until the first category is visible
18366
+ var disallowedEmojisRef = useDisallowedEmojisRef();
18367
+ var getEmojiUrl = useGetEmojiUrlConfig(); // Small trick to defer the rendering of all emoji categories until the first category is visible
18346
18368
  // This way the user gets to actually see something and not wait for the whole picker to render.
18347
18369
 
18348
18370
  var emojisToPush = !isPastInitialLoad && index > 1 ? [] : emojisByCategory(category);
@@ -18372,7 +18394,8 @@ function RenderCategory(_ref) {
18372
18394
  hidden: failedToLoad,
18373
18395
  hiddenOnSearch: filteredOut,
18374
18396
  emojiStyle: emojiStyle,
18375
- lazyLoad: lazyLoadEmojis
18397
+ lazyLoad: lazyLoadEmojis,
18398
+ getEmojiUrl: getEmojiUrl
18376
18399
  });
18377
18400
  });
18378
18401
  return React.createElement(EmojiCategory, {
@@ -18405,6 +18428,7 @@ function EmojiVariationPicker() {
18405
18428
 
18406
18429
  var setAnchoredEmojiRef = useSetAnchoredEmojiRef();
18407
18430
  var getPointerStyle = usePointerStyle(VariationPickerRef);
18431
+ var getEmojiUrl = useGetEmojiUrlConfig();
18408
18432
  var button = buttonFromTarget(AnchoredEmojiRef.current);
18409
18433
  var visible = emoji && button && emojiHasVariations(emoji) && button.classList.contains(ClassNames.emojiHasVariatios);
18410
18434
  var top, pointerStyle;
@@ -18433,7 +18457,8 @@ function EmojiVariationPicker() {
18433
18457
  emoji: safeEmoji,
18434
18458
  unified: unified,
18435
18459
  emojiStyle: emojiStyle,
18436
- showVariations: false
18460
+ showVariations: false,
18461
+ getEmojiUrl: getEmojiUrl
18437
18462
  });
18438
18463
  }) : null, React.createElement("div", {
18439
18464
  className: "epr-emoji-pointer",
@@ -18631,6 +18656,7 @@ function Preview() {
18631
18656
  var _useEmojiVariationPic = useEmojiVariationPickerState(),
18632
18657
  variationPickerEmoji = _useEmojiVariationPic[0];
18633
18658
 
18659
+ var getEmojiUrl = useGetEmojiUrlConfig();
18634
18660
  useEmojiPreviewEvents(previewConfig.showPreview, setPreviewEmoji);
18635
18661
 
18636
18662
  if (!previewConfig.showPreview) {
@@ -18650,12 +18676,14 @@ function Preview() {
18650
18676
  unified: previewEmoji == null ? void 0 : previewEmoji.unified,
18651
18677
  emoji: asEmoji(emoji),
18652
18678
  emojiStyle: emojiStyle,
18653
- size: 45
18679
+ size: 45,
18680
+ getEmojiUrl: getEmojiUrl
18654
18681
  }) : defaultEmoji ? React.createElement(ViewOnlyEmoji, {
18655
18682
  unified: emojiUnified(defaultEmoji),
18656
18683
  emoji: defaultEmoji,
18657
18684
  emojiStyle: emojiStyle,
18658
- size: 45
18685
+ size: 45,
18686
+ getEmojiUrl: getEmojiUrl
18659
18687
  }) : null), show ? React.createElement("div", {
18660
18688
  className: "epr-preview-emoji-label"
18661
18689
  }, emojiName(asEmoji(emoji))) : React.createElement("div", {
@@ -19284,7 +19312,7 @@ function hasModifier(event) {
19284
19312
  return metaKey || ctrlKey || altKey;
19285
19313
  }
19286
19314
 
19287
- function preloadEmoji(emoji, emojiStyle) {
19315
+ function preloadEmoji(getEmojiUrl, emoji, emojiStyle) {
19288
19316
  if (!emoji) {
19289
19317
  return;
19290
19318
  }
@@ -19300,7 +19328,7 @@ function preloadEmoji(emoji, emojiStyle) {
19300
19328
  }
19301
19329
 
19302
19330
  emojiVariations(emoji).forEach(function (variation) {
19303
- var emojiUrl = emojiUrlByUnified(emojiStyle, variation);
19331
+ var emojiUrl = getEmojiUrl(variation, emojiStyle);
19304
19332
  preloadImage(emojiUrl);
19305
19333
  });
19306
19334
  preloadedEmojs.add(unified);
@@ -19315,6 +19343,7 @@ function preloadImage(url) {
19315
19343
  function useOnFocus() {
19316
19344
  var BodyRef = useBodyRef();
19317
19345
  var emojiStyle = useEmojiStyleConfig();
19346
+ var getEmojiUrl = useGetEmojiUrlConfig();
19318
19347
  React.useEffect(function () {
19319
19348
  if (emojiStyle === exports.EmojiStyle.NATIVE) {
19320
19349
  return;
@@ -19341,10 +19370,10 @@ function useOnFocus() {
19341
19370
  }
19342
19371
 
19343
19372
  if (emojiHasVariations(emoji)) {
19344
- preloadEmoji(emoji, emojiStyle);
19373
+ preloadEmoji(getEmojiUrl, emoji, emojiStyle);
19345
19374
  }
19346
19375
  }
19347
- }, [BodyRef, emojiStyle]);
19376
+ }, [BodyRef, emojiStyle, getEmojiUrl]);
19348
19377
  }
19349
19378
 
19350
19379
  function PickerMain(_ref) {
@@ -19367,8 +19396,8 @@ function PickerRootElement(_ref2) {
19367
19396
  useKeyboardNavigation();
19368
19397
  useOnFocus();
19369
19398
  var style = {
19370
- height: height + "px",
19371
- width: width + "px"
19399
+ height: height,
19400
+ width: width
19372
19401
  };
19373
19402
  return React.createElement("aside", {
19374
19403
  className: clsx(ClassNames.emojiPicker, 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx['epr-dark-theme'] = theme === exports.Theme.DARK, _clsx)),
@@ -19425,7 +19454,8 @@ function ExportedEmoji(_ref) {
19425
19454
  _ref$emojiStyle = _ref.emojiStyle,
19426
19455
  emojiStyle = _ref$emojiStyle === void 0 ? exports.EmojiStyle.APPLE : _ref$emojiStyle,
19427
19456
  _ref$lazyLoad = _ref.lazyLoad,
19428
- lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad;
19457
+ lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad,
19458
+ getEmojiUrl = _ref.getEmojiUrl;
19429
19459
 
19430
19460
  if (!unified) {
19431
19461
  return null;
@@ -19435,7 +19465,8 @@ function ExportedEmoji(_ref) {
19435
19465
  unified: unified,
19436
19466
  size: size,
19437
19467
  emojiStyle: emojiStyle,
19438
- lazyLoad: lazyLoad
19468
+ lazyLoad: lazyLoad,
19469
+ getEmojiUrl: getEmojiUrl
19439
19470
  });
19440
19471
  }
19441
19472