PageSourceSearch

https://give.sparkraise.com/js/react/emoji-picker-entry.mjs?cb=260825025610

js sparkraise.com collected 2026-09-24 10:23:13 UTC 2,291 bytes, 62 lines download raw bytes

1import './emoji-picker-element.mjs';
2
3$(document).ready(function () {
4  let $emojiPicker = $('#emoji-picker');
5  let $activeElement = null;
6  if ($emojiPicker.length === 0) {
7    $('body').append('<emoji-picker id="emoji-picker" class="light"></emoji-picker>');
8    $emojiPicker = $('#emoji-picker');
9  }
10
11  // Event delegation for .emoji-trigger elements
12  $(document).on('click', '.emoji-trigger', function (event) {
13    $activeElement = $(this).siblings('textarea.message-input');
14    if ($activeElement.length === 0 && $('#payer-message').length > 0) {
15      $activeElement = $('#payer-message');
16    }
17    let $wrap = $(this).siblings('div.emoji-picker-wrap');
18    let $gifPicker = $('#gif-picker-div');
19    if ($gifPicker.length >= 0 && $gifPicker.is(':visible')) {
20      $gifPicker.fadeOut();
21      $gifPicker.parent().fadeOut();
22    }
23
24    // Toggle the emoji picker
25    if ($emojiPicker.is(':visible')) {
26      $emojiPicker.fadeOut();
27    } else {
28      // Append only if it's not already inside $wrap
29      if (!$wrap.find($emojiPicker).length) {
30        $emojiPicker.detach().appendTo($wrap);
31      }
32      $emojiPicker.fadeIn();
33    }
34    event.stopPropagation(); // Prevent click from propagating to hide logic
35  });
36
37  // Handle emoji selection
38  $emojiPicker.on('emoji-click', function (event) {
39    const emoji = event.originalEvent.detail.unicode;
40    let wysiwygSelector = $emojiPicker.parent().data('wysiwyg');
41    let isWysiwyg = wysiwygSelector !== null;
42    if (isWysiwyg && $FR.isModuleRunning(wysiwygSelector)) {
43      $FR.getModule(wysiwygSelector).insertContent(emoji);
44    } else if ($activeElement && $activeElement.is('input, textarea')) {
45      $activeElement.val($activeElement.val() + emoji).trigger('input');
46    }
47  });
48
49  // Hide picker when clicking outside
50  $(document).on('click', function (event) {
51    // Check if click is inside the picker or the emoji button
52    if ($(event.target).closest('.emoji-picker, .emoji-trigger, i.mce-ico.mce-i-emoticons').length) ;
53    setTimeout(function () {
54      $emojiPicker.fadeOut();
55    }, 100); // Short delay to ensure TinyMCE UI updates properly
56  });
57
58  // Prevent hiding when clicking on the picker itself or its trigger
59  $emojiPicker.on('click', function (event) {
60    event.stopPropagation();
61  });
62});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.