react-input-emoji 5.6.5 → 5.6.7
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/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
|