react-input-emoji 5.6.5 → 5.6.7
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.es.js +157 -25
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +175 -25
- package/dist/index.js.map +1 -1
- package/dist/src/utils/input-event-utils.d.ts +19 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -5,6 +5,24 @@ var ReactDOM = require('react-dom');
|
|
5
5
|
|
6
6
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
7
7
|
|
8
|
+
function _interopNamespace(e) {
|
9
|
+
if (e && e.__esModule) return e;
|
10
|
+
var n = Object.create(null);
|
11
|
+
if (e) {
|
12
|
+
Object.keys(e).forEach(function (k) {
|
13
|
+
if (k !== 'default') {
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
16
|
+
enumerable: true,
|
17
|
+
get: function () { return e[k]; }
|
18
|
+
});
|
19
|
+
}
|
20
|
+
});
|
21
|
+
}
|
22
|
+
n["default"] = e;
|
23
|
+
return Object.freeze(n);
|
24
|
+
}
|
25
|
+
|
8
26
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
9
27
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
10
28
|
|
@@ -689,35 +707,100 @@ function totalCharacters(_ref2) {
|
|
689
707
|
var emojisCount = (html.match(/<img/g) || []).length;
|
690
708
|
return textCount + emojisCount;
|
691
709
|
}
|
710
|
+
/**
|
711
|
+
*
|
712
|
+
* @param {HTMLDivElement} inputDiv
|
713
|
+
* @return {string}
|
714
|
+
*/
|
715
|
+
function removeHtmlExceptBr(inputDiv) {
|
716
|
+
var temp = inputDiv.innerHTML.replace(/<br\s*\/?>/gi, "[BR]"); // temporarily replace <br> with placeholder
|
717
|
+
var stripped = temp.replace(/<[^>]+>/g, ""); // strip all html tags
|
718
|
+
var _final = stripped.replace(/\[BR\]/gi, "</br>"); // replace placeholders with <br>
|
719
|
+
return _final;
|
720
|
+
}
|
692
721
|
|
693
722
|
/**
|
694
|
-
*
|
695
|
-
* @param {
|
723
|
+
*
|
724
|
+
* @param {*} range
|
725
|
+
* @returns
|
696
726
|
*/
|
697
|
-
function
|
698
|
-
var range;
|
699
|
-
var
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
selection.removeAllRanges();
|
707
|
-
selection.addRange(range);
|
727
|
+
function getSelectionStart$1(range) {
|
728
|
+
var node = range.startContainer;
|
729
|
+
var offset = range.startOffset;
|
730
|
+
|
731
|
+
// Handle cases where the selection start node is not a text node
|
732
|
+
if (node.nodeType !== Node.TEXT_NODE) {
|
733
|
+
while (node.nodeType !== Node.TEXT_NODE) {
|
734
|
+
node = node.nextSibling;
|
735
|
+
if (!node) break;
|
708
736
|
}
|
737
|
+
if (!node) {
|
738
|
+
node = range.commonAncestorContainer;
|
739
|
+
while (node.nodeType !== Node.TEXT_NODE) {
|
740
|
+
node = node.firstChild;
|
741
|
+
}
|
742
|
+
}
|
743
|
+
offset = 0;
|
709
744
|
}
|
745
|
+
return {
|
746
|
+
node: node,
|
747
|
+
offset: offset
|
748
|
+
};
|
710
749
|
}
|
750
|
+
|
711
751
|
/**
|
712
752
|
*
|
713
|
-
* @
|
714
|
-
* @return {string}
|
753
|
+
* @returns {Object} cursor
|
715
754
|
*/
|
716
|
-
function
|
717
|
-
var
|
718
|
-
var
|
719
|
-
var
|
720
|
-
return
|
755
|
+
function getCursor() {
|
756
|
+
var selection = window.getSelection();
|
757
|
+
var range = selection.getRangeAt(0);
|
758
|
+
var selectionStart = getSelectionStart$1(range);
|
759
|
+
return {
|
760
|
+
selection: selection,
|
761
|
+
range: range,
|
762
|
+
selectionStart: selectionStart
|
763
|
+
};
|
764
|
+
}
|
765
|
+
|
766
|
+
/**
|
767
|
+
*
|
768
|
+
*/
|
769
|
+
function addLineBreak() {
|
770
|
+
var _getCursor = getCursor(),
|
771
|
+
selection = _getCursor.selection,
|
772
|
+
range = _getCursor.range,
|
773
|
+
selectionStart = _getCursor.selectionStart;
|
774
|
+
|
775
|
+
// If cursor is at the end of the text content, add one more line break
|
776
|
+
if (selection.isCollapsed && selectionStart.offset === selectionStart.node.textContent.length) {
|
777
|
+
var br = document.createElement("br");
|
778
|
+
range.insertNode(br);
|
779
|
+
range.setStartAfter(br);
|
780
|
+
range.setEndAfter(br);
|
781
|
+
selection.removeAllRanges();
|
782
|
+
selection.addRange(range);
|
783
|
+
var br2 = document.createElement("br");
|
784
|
+
range.insertNode(br2);
|
785
|
+
range.setStartAfter(br2);
|
786
|
+
range.setEndAfter(br2);
|
787
|
+
selection.removeAllRanges();
|
788
|
+
selection.addRange(range);
|
789
|
+
} else {
|
790
|
+
var _br = document.createElement("br");
|
791
|
+
range.insertNode(_br);
|
792
|
+
range.setStartAfter(_br);
|
793
|
+
range.setEndAfter(_br);
|
794
|
+
selection.removeAllRanges();
|
795
|
+
selection.addRange(range);
|
796
|
+
// Set cursor position right before the first letter after the line break
|
797
|
+
if (selectionStart.node.nextSibling && selectionStart.node.nextSibling.nodeType === Node.TEXT_NODE) {
|
798
|
+
range.setStart(selectionStart.node.nextSibling, 1);
|
799
|
+
range.setEnd(selectionStart.node.nextSibling, 1);
|
800
|
+
}
|
801
|
+
selection.removeAllRanges();
|
802
|
+
selection.addRange(range);
|
803
|
+
}
|
721
804
|
}
|
722
805
|
|
723
806
|
// @ts-check
|
@@ -976,8 +1059,7 @@ var TextInput = function TextInput(_ref, ref) {
|
|
976
1059
|
if (event.key === "Enter" && (event.shiftKey === true || event.ctrlKey === true) && props.shouldReturn) {
|
977
1060
|
event.preventDefault();
|
978
1061
|
if (textInputRef.current) {
|
979
|
-
|
980
|
-
moveCaretToEnd(textInputRef);
|
1062
|
+
addLineBreak();
|
981
1063
|
return;
|
982
1064
|
}
|
983
1065
|
}
|
@@ -3556,12 +3638,31 @@ function EmojiPicker(props) {
|
|
3556
3638
|
categoryies = [].concat(_toConsumableArray(categoryies), ["people", "nature", "foods", "activity", "places", "objects", "symbols", "flags"]);
|
3557
3639
|
return categoryies;
|
3558
3640
|
}, [disableRecent]);
|
3559
|
-
var
|
3641
|
+
var _useState = React.useState(undefined),
|
3642
|
+
_useState2 = _slicedToArray(_useState, 2),
|
3643
|
+
i18n = _useState2[0],
|
3644
|
+
setI18n = _useState2[1];
|
3645
|
+
React.useEffect(function () {
|
3560
3646
|
if (!language) {
|
3561
|
-
|
3647
|
+
// @ts-ignore
|
3648
|
+
Promise.resolve().then(function () { return en$1; }).then(function (translations) {
|
3649
|
+
setI18n(translations);
|
3650
|
+
})["catch"](function (error) {
|
3651
|
+
console.error("Failed to load translations:", error);
|
3652
|
+
});
|
3653
|
+
return;
|
3562
3654
|
}
|
3563
|
-
|
3655
|
+
|
3656
|
+
// @ts-ignore
|
3657
|
+
(function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })("@emoji-mart/data/i18n/".concat(language, ".json")).then(function (translations) {
|
3658
|
+
setI18n(translations);
|
3659
|
+
})["catch"](function (error) {
|
3660
|
+
console.error("Failed to load translations:", error);
|
3661
|
+
});
|
3564
3662
|
}, [language]);
|
3663
|
+
if (!i18n) {
|
3664
|
+
return null;
|
3665
|
+
}
|
3565
3666
|
return /*#__PURE__*/React__default["default"].createElement($e5534fc185f7111e$export$2e2bcd8739ae039, {
|
3566
3667
|
data: undefined,
|
3567
3668
|
theme: theme,
|
@@ -4623,5 +4724,54 @@ InputEmojiWithRef.defaultProps = {
|
|
4623
4724
|
language: undefined
|
4624
4725
|
};
|
4625
4726
|
|
4727
|
+
var search = "Search";
|
4728
|
+
var search_no_results_1 = "Oh no!";
|
4729
|
+
var search_no_results_2 = "That emoji couldn’t be found";
|
4730
|
+
var pick = "Pick an emoji…";
|
4731
|
+
var add_custom = "Add custom emoji";
|
4732
|
+
var categories = {
|
4733
|
+
activity: "Activity",
|
4734
|
+
custom: "Custom",
|
4735
|
+
flags: "Flags",
|
4736
|
+
foods: "Food & Drink",
|
4737
|
+
frequent: "Frequently used",
|
4738
|
+
nature: "Animals & Nature",
|
4739
|
+
objects: "Objects",
|
4740
|
+
people: "Smileys & People",
|
4741
|
+
places: "Travel & Places",
|
4742
|
+
search: "Search Results",
|
4743
|
+
symbols: "Symbols"
|
4744
|
+
};
|
4745
|
+
var skins = {
|
4746
|
+
"1": "Default",
|
4747
|
+
"2": "Light",
|
4748
|
+
"3": "Medium-Light",
|
4749
|
+
"4": "Medium",
|
4750
|
+
"5": "Medium-Dark",
|
4751
|
+
"6": "Dark",
|
4752
|
+
choose: "Choose default skin tone"
|
4753
|
+
};
|
4754
|
+
var en = {
|
4755
|
+
search: search,
|
4756
|
+
search_no_results_1: search_no_results_1,
|
4757
|
+
search_no_results_2: search_no_results_2,
|
4758
|
+
pick: pick,
|
4759
|
+
add_custom: add_custom,
|
4760
|
+
categories: categories,
|
4761
|
+
skins: skins
|
4762
|
+
};
|
4763
|
+
|
4764
|
+
var en$1 = /*#__PURE__*/Object.freeze({
|
4765
|
+
__proto__: null,
|
4766
|
+
search: search,
|
4767
|
+
search_no_results_1: search_no_results_1,
|
4768
|
+
search_no_results_2: search_no_results_2,
|
4769
|
+
pick: pick,
|
4770
|
+
add_custom: add_custom,
|
4771
|
+
categories: categories,
|
4772
|
+
skins: skins,
|
4773
|
+
'default': en
|
4774
|
+
});
|
4775
|
+
|
4626
4776
|
module.exports = InputEmojiWithRef;
|
4627
4777
|
//# sourceMappingURL=index.js.map
|