mirror of https://github.com/msgbyte/tailchat
				
				
				
			fix: react-mentions
							parent
							
								
									5cc71d0235
								
							
						
					
					
						commit
						27e88211f5
					
				@ -0,0 +1,797 @@
 | 
				
			|||||||
 | 
					diff --git a/CHANGELOG.md b/CHANGELOG.md
 | 
				
			||||||
 | 
					deleted file mode 100644
 | 
				
			||||||
 | 
					index 679058241bcfde9586b543c09e9d37ecd73de1ec..0000000000000000000000000000000000000000
 | 
				
			||||||
 | 
					diff --git a/dist/react-mentions.cjs.dev.js b/dist/react-mentions.cjs.dev.js
 | 
				
			||||||
 | 
					index 015df9d75574f86fbd249fc53447e76cbec1781b..bbf48bd869160cdfb0d62ea2f658c89dbbab3c38 100644
 | 
				
			||||||
 | 
					--- a/dist/react-mentions.cjs.dev.js
 | 
				
			||||||
 | 
					+++ b/dist/react-mentions.cjs.dev.js
 | 
				
			||||||
 | 
					@@ -230,14 +230,23 @@ var applyChangeToValue = function applyChangeToValue(value, plainTextValue, _ref
 | 
				
			||||||
 | 
					       // find start of diff
 | 
				
			||||||
 | 
					       spliceStart = 0;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      while (plainTextValue[spliceStart] === controlPlainTextValue[spliceStart]) {
 | 
				
			||||||
 | 
					+      while (plainTextValue[spliceStart] === oldPlainTextValue[spliceStart]) {
 | 
				
			||||||
 | 
					         spliceStart++;
 | 
				
			||||||
 | 
					+      } // find end of diff
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      var spliceEndOfNew = plainTextValue.length;
 | 
				
			||||||
 | 
					+      var spliceEndOfOld = oldPlainTextValue.length;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      while (plainTextValue[spliceEndOfNew - 1] === oldPlainTextValue[spliceEndOfOld - 1]) {
 | 
				
			||||||
 | 
					+        spliceEndOfNew--;
 | 
				
			||||||
 | 
					+        spliceEndOfOld--;
 | 
				
			||||||
 | 
					       } // extract auto-corrected insertion
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      insert = plainTextValue.slice(spliceStart, selectionEndAfter); // find index of the unchanged remainder
 | 
				
			||||||
 | 
					+      insert = plainTextValue.slice(spliceStart, spliceEndOfNew); // find index of the unchanged remainder
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      spliceEnd = oldPlainTextValue.lastIndexOf(plainTextValue.substring(selectionEndAfter)); // re-map the corrected indices
 | 
				
			||||||
 | 
					+      spliceEnd = spliceEndOfOld >= spliceStart ? spliceEndOfOld : selectionEndAfter; // re-map the corrected indices
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');
 | 
				
			||||||
 | 
					       mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');
 | 
				
			||||||
 | 
					@@ -661,6 +670,10 @@ var omit = function omit(obj) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 var _excluded = ["style", "className", "classNames"];
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					   var enhance = function enhance(ComponentToWrap) {
 | 
				
			||||||
 | 
					     var DefaultStyleEnhancer = function DefaultStyleEnhancer(_ref) {
 | 
				
			||||||
 | 
					@@ -681,8 +694,13 @@ function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					     var displayName = ComponentToWrap.displayName || ComponentToWrap.name || 'Component';
 | 
				
			||||||
 | 
					-    DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")");
 | 
				
			||||||
 | 
					-    return DefaultStyleEnhancer;
 | 
				
			||||||
 | 
					+    DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")"); // return DefaultStyleEnhancer
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+    return /*#__PURE__*/React__default.forwardRef(function (props, ref) {
 | 
				
			||||||
 | 
					+      return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {
 | 
				
			||||||
 | 
					+        ref: ref
 | 
				
			||||||
 | 
					+      }));
 | 
				
			||||||
 | 
					+    });
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   return enhance;
 | 
				
			||||||
 | 
					@@ -724,7 +742,7 @@ function Highlighter(_ref) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   React.useEffect(function () {
 | 
				
			||||||
 | 
					     notifyCaretPosition();
 | 
				
			||||||
 | 
					-  }, [caretElement]);
 | 
				
			||||||
 | 
					+  });
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var notifyCaretPosition = function notifyCaretPosition() {
 | 
				
			||||||
 | 
					     if (!caretElement) {
 | 
				
			||||||
 | 
					@@ -973,7 +991,7 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					       onMouseDown = _ref.onMouseDown,
 | 
				
			||||||
 | 
					       onMouseEnter = _ref.onMouseEnter;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-  var _useState = React.useState(),
 | 
				
			||||||
 | 
					+  var _useState = React.useState(undefined),
 | 
				
			||||||
 | 
					       _useState2 = _slicedToArray(_useState, 2),
 | 
				
			||||||
 | 
					       ulElement = _useState2[0],
 | 
				
			||||||
 | 
					       setUlElement = _useState2[1];
 | 
				
			||||||
 | 
					@@ -1000,17 +1018,23 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					     } else if (bottom > ulElement.offsetHeight) {
 | 
				
			||||||
 | 
					       ulElement.scrollTop = bottom - ulElement.offsetHeight;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					-  }, []);
 | 
				
			||||||
 | 
					+  }, [focusIndex, scrollFocusedIntoView, ulElement]);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var renderSuggestions = function renderSuggestions() {
 | 
				
			||||||
 | 
					-    var suggestionsToRender = Object.values(suggestions).reduce(function (accResults, _ref2) {
 | 
				
			||||||
 | 
					+    var suggestionsToRender = /*#__PURE__*/React__default.createElement("ul", _extends({
 | 
				
			||||||
 | 
					+      ref: setUlElement,
 | 
				
			||||||
 | 
					+      id: id,
 | 
				
			||||||
 | 
					+      role: "listbox",
 | 
				
			||||||
 | 
					+      "aria-label": a11ySuggestionsListLabel
 | 
				
			||||||
 | 
					+    }, style('list')), Object.values(suggestions).reduce(function (accResults, _ref2) {
 | 
				
			||||||
 | 
					       var results = _ref2.results,
 | 
				
			||||||
 | 
					           queryInfo = _ref2.queryInfo;
 | 
				
			||||||
 | 
					       return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function (result, index) {
 | 
				
			||||||
 | 
					         return renderSuggestion(result, queryInfo, accResults.length + index);
 | 
				
			||||||
 | 
					       })));
 | 
				
			||||||
 | 
					-    }, []);
 | 
				
			||||||
 | 
					-    if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);else return suggestionsToRender;
 | 
				
			||||||
 | 
					+    }, []));
 | 
				
			||||||
 | 
					+    if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);
 | 
				
			||||||
 | 
					+    return suggestionsToRender;
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var renderSuggestion = function renderSuggestion(result, queryInfo, index) {
 | 
				
			||||||
 | 
					@@ -1077,12 +1101,7 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					   }, style), {
 | 
				
			||||||
 | 
					     onMouseDown: onMouseDown,
 | 
				
			||||||
 | 
					     ref: containerRef
 | 
				
			||||||
 | 
					-  }), /*#__PURE__*/React__default.createElement("ul", _extends({
 | 
				
			||||||
 | 
					-    ref: setUlElement,
 | 
				
			||||||
 | 
					-    id: id,
 | 
				
			||||||
 | 
					-    role: "listbox",
 | 
				
			||||||
 | 
					-    "aria-label": a11ySuggestionsListLabel
 | 
				
			||||||
 | 
					-  }, style('list')), renderSuggestions()), renderLoadingIndicator());
 | 
				
			||||||
 | 
					+  }), renderSuggestions(), renderLoadingIndicator());
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 SuggestionsOverlay.propTypes = {
 | 
				
			||||||
 | 
					@@ -1099,7 +1118,7 @@ SuggestionsOverlay.propTypes = {
 | 
				
			||||||
 | 
					   isOpened: PropTypes.bool.isRequired,
 | 
				
			||||||
 | 
					   onSelect: PropTypes.func,
 | 
				
			||||||
 | 
					   ignoreAccents: PropTypes.bool,
 | 
				
			||||||
 | 
					-  customSuggestionsContainer: PropTypes.any,
 | 
				
			||||||
 | 
					+  customSuggestionsContainer: PropTypes.func,
 | 
				
			||||||
 | 
					   containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
 | 
				
			||||||
 | 
					     current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)
 | 
				
			||||||
 | 
					   })])
 | 
				
			||||||
 | 
					@@ -1117,9 +1136,9 @@ var styled$2 = createDefaultStyle({
 | 
				
			||||||
 | 
					 });
 | 
				
			||||||
 | 
					 var SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					+function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					+function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -1216,7 +1235,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var props = omit(_this.props, ['style', 'classNames', 'className'], // substyle props
 | 
				
			||||||
 | 
					       keys(propTypes));
 | 
				
			||||||
 | 
					-      return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), style('input')), {}, {
 | 
				
			||||||
 | 
					+      return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, props), style('input')), {}, {
 | 
				
			||||||
 | 
					         value: _this.getPlainText(),
 | 
				
			||||||
 | 
					         onScroll: _this.updateHighlighterScroll
 | 
				
			||||||
 | 
					       }, !readOnly && !disabled && {
 | 
				
			||||||
 | 
					@@ -1380,11 +1399,23 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var value = _this.props.value || '';
 | 
				
			||||||
 | 
					       var config = readConfigFromChildren(_this.props.children);
 | 
				
			||||||
 | 
					-      var newPlainTextValue = ev.target.value; // Derive the new value to set by applying the local change in the textarea's plain text
 | 
				
			||||||
 | 
					+      var newPlainTextValue = ev.target.value;
 | 
				
			||||||
 | 
					+      var selectionStartBefore = _this.state.selectionStart;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (selectionStartBefore == null) {
 | 
				
			||||||
 | 
					+        selectionStartBefore = ev.target.selectionStart;
 | 
				
			||||||
 | 
					+      }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      var selectionEndBefore = _this.state.selectionEnd;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (selectionEndBefore == null) {
 | 
				
			||||||
 | 
					+        selectionEndBefore = ev.target.selectionEnd;
 | 
				
			||||||
 | 
					+      } // Derive the new value to set by applying the local change in the textarea's plain text
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var newValue = applyChangeToValue(value, newPlainTextValue, {
 | 
				
			||||||
 | 
					-        selectionStartBefore: _this.state.selectionStart,
 | 
				
			||||||
 | 
					-        selectionEndBefore: _this.state.selectionEnd,
 | 
				
			||||||
 | 
					+        selectionStartBefore: selectionStartBefore,
 | 
				
			||||||
 | 
					+        selectionEndBefore: selectionEndBefore,
 | 
				
			||||||
 | 
					         selectionEndAfter: ev.target.selectionEnd
 | 
				
			||||||
 | 
					       }, config); // In case a mention is deleted, also adjust the new plain text value
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -1410,9 +1441,14 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					         setSelectionAfterMentionChange: setSelectionAfterMentionChange
 | 
				
			||||||
 | 
					       });
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      var mentions = getMentions(newValue, config); // Propagate change
 | 
				
			||||||
 | 
					+      var mentions = getMentions(newValue, config);
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (ev.nativeEvent.isComposing && selectionStart === selectionEnd) {
 | 
				
			||||||
 | 
					+        _this.updateMentionsQueries(_this.inputElement.value, selectionStart);
 | 
				
			||||||
 | 
					+      } // Propagate change
 | 
				
			||||||
 | 
					       // let handleChange = this.getOnChange(this.props) || emptyFunction;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					         target: {
 | 
				
			||||||
 | 
					           value: newValue
 | 
				
			||||||
 | 
					@@ -1759,7 +1795,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       if (queryId !== _this._queryId) return; // save in property so that multiple sync state updates from different mentions sources
 | 
				
			||||||
 | 
					       // won't overwrite each other
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      _this.suggestions = _objectSpread(_objectSpread({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					+      _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					         queryInfo: {
 | 
				
			||||||
 | 
					           childIndex: childIndex,
 | 
				
			||||||
 | 
					           query: query,
 | 
				
			||||||
 | 
					@@ -1864,7 +1900,8 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       selectionEnd: null,
 | 
				
			||||||
 | 
					       suggestions: {},
 | 
				
			||||||
 | 
					       caretPosition: null,
 | 
				
			||||||
 | 
					-      suggestionsPosition: {}
 | 
				
			||||||
 | 
					+      suggestionsPosition: {},
 | 
				
			||||||
 | 
					+      setSelectionAfterHandlePaste: false
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					     return _this;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					@@ -1894,6 +1931,13 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					         });
 | 
				
			||||||
 | 
					         this.setSelection(this.state.selectionStart, this.state.selectionEnd);
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (this.state.setSelectionAfterHandlePaste) {
 | 
				
			||||||
 | 
					+        this.setState({
 | 
				
			||||||
 | 
					+          setSelectionAfterHandlePaste: false
 | 
				
			||||||
 | 
					+        });
 | 
				
			||||||
 | 
					+        this.setSelection(this.state.selectionStart, this.state.selectionEnd);
 | 
				
			||||||
 | 
					+      }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					     key: "componentWillUnmount",
 | 
				
			||||||
 | 
					@@ -1935,7 +1979,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       var newValue = spliceString(value, markupStartIndex, markupEndIndex, pastedMentions || pastedData).replace(/\r/g, '');
 | 
				
			||||||
 | 
					       var newPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					-        target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+        target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					           value: newValue
 | 
				
			||||||
 | 
					         })
 | 
				
			||||||
 | 
					       };
 | 
				
			||||||
 | 
					@@ -1943,7 +1987,11 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);
 | 
				
			||||||
 | 
					       var nextPos = (startOfMention || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;
 | 
				
			||||||
 | 
					-      this.setSelection(nextPos, nextPos);
 | 
				
			||||||
 | 
					+      this.setState({
 | 
				
			||||||
 | 
					+        selectionStart: nextPos,
 | 
				
			||||||
 | 
					+        selectionEnd: nextPos,
 | 
				
			||||||
 | 
					+        setSelectionAfterHandlePaste: true
 | 
				
			||||||
 | 
					+      });
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					     key: "saveSelectionToClipboard",
 | 
				
			||||||
 | 
					@@ -2005,7 +2053,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       var newValue = [value.slice(0, markupStartIndex), value.slice(markupEndIndex)].join('');
 | 
				
			||||||
 | 
					       var newPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					-        target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+        target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					           value: newPlainTextValue
 | 
				
			||||||
 | 
					         })
 | 
				
			||||||
 | 
					       };
 | 
				
			||||||
 | 
					@@ -2062,7 +2110,7 @@ var styled$3 = createDefaultStyle({
 | 
				
			||||||
 | 
					     letterSpacing: 'inherit'
 | 
				
			||||||
 | 
					   },
 | 
				
			||||||
 | 
					   '&multiLine': {
 | 
				
			||||||
 | 
					-    input: _objectSpread({
 | 
				
			||||||
 | 
					+    input: _objectSpread$1({
 | 
				
			||||||
 | 
					       height: '100%',
 | 
				
			||||||
 | 
					       bottom: 0,
 | 
				
			||||||
 | 
					       overflow: 'hidden',
 | 
				
			||||||
 | 
					diff --git a/dist/react-mentions.cjs.js b/dist/react-mentions.cjs.js
 | 
				
			||||||
 | 
					index 168777643efee2afe58e34f9f147a4e246a4ba29..fd7a5910b8a4ff4e9156126ff1a1849adebfe5fa 100644
 | 
				
			||||||
 | 
					--- a/dist/react-mentions.cjs.js
 | 
				
			||||||
 | 
					+++ b/dist/react-mentions.cjs.js
 | 
				
			||||||
 | 
					@@ -1,7 +1,7 @@
 | 
				
			||||||
 | 
					 'use strict';
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 if (process.env.NODE_ENV === "production") {
 | 
				
			||||||
 | 
					-  module.exports = require("./react-mentions.cjs.prod.js");
 | 
				
			||||||
 | 
					+  module.exports = require("./react-mentions-fix.cjs.prod.js");
 | 
				
			||||||
 | 
					 } else {
 | 
				
			||||||
 | 
					-  module.exports = require("./react-mentions.cjs.dev.js");
 | 
				
			||||||
 | 
					+  module.exports = require("./react-mentions-fix.cjs.dev.js");
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					diff --git a/dist/react-mentions.cjs.prod.js b/dist/react-mentions.cjs.prod.js
 | 
				
			||||||
 | 
					index 206f74b50db6296322f15d82491e98d7d25a330e..0b71c291b9ee7ebe3ae6698b260efa8635231161 100644
 | 
				
			||||||
 | 
					--- a/dist/react-mentions.cjs.prod.js
 | 
				
			||||||
 | 
					+++ b/dist/react-mentions.cjs.prod.js
 | 
				
			||||||
 | 
					@@ -70,14 +70,13 @@ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsu
 | 
				
			||||||
 | 
					   var insert = plainTextValue.slice(selectionStartBefore, selectionEndAfter), spliceStart = Math.min(selectionStartBefore, selectionEndAfter), spliceEnd = selectionEndBefore;
 | 
				
			||||||
 | 
					   selectionStartBefore === selectionEndAfter && (spliceEnd = Math.max(selectionEndBefore, selectionStartBefore + lengthDelta));
 | 
				
			||||||
 | 
					   var mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, "START"), mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, "END"), controlSpliceStart = mapPlainTextIndex(value, config, spliceStart, "NULL"), controlSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, "NULL"), willRemoveMention = null === controlSpliceStart || null === controlSpliceEnd, newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);
 | 
				
			||||||
 | 
					-  if (!willRemoveMention) {
 | 
				
			||||||
 | 
					-    var controlPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					-    if (controlPlainTextValue !== plainTextValue) {
 | 
				
			||||||
 | 
					-      for (spliceStart = 0; plainTextValue[spliceStart] === controlPlainTextValue[spliceStart]; ) spliceStart++;
 | 
				
			||||||
 | 
					-      insert = plainTextValue.slice(spliceStart, selectionEndAfter), spliceEnd = oldPlainTextValue.lastIndexOf(plainTextValue.substring(selectionEndAfter)), 
 | 
				
			||||||
 | 
					-      mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, "START"), mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, "END"), 
 | 
				
			||||||
 | 
					-      newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);
 | 
				
			||||||
 | 
					-    }
 | 
				
			||||||
 | 
					+  if (!willRemoveMention && getPlainText(newValue, config) !== plainTextValue) {
 | 
				
			||||||
 | 
					+    for (spliceStart = 0; plainTextValue[spliceStart] === oldPlainTextValue[spliceStart]; ) spliceStart++;
 | 
				
			||||||
 | 
					+    for (var spliceEndOfNew = plainTextValue.length, spliceEndOfOld = oldPlainTextValue.length; plainTextValue[spliceEndOfNew - 1] === oldPlainTextValue[spliceEndOfOld - 1]; ) spliceEndOfNew--, 
 | 
				
			||||||
 | 
					+    spliceEndOfOld--;
 | 
				
			||||||
 | 
					+    insert = plainTextValue.slice(spliceStart, spliceEndOfNew), spliceEnd = spliceEndOfOld >= spliceStart ? spliceEndOfOld : selectionEndAfter, 
 | 
				
			||||||
 | 
					+    mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, "START"), mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, "END"), 
 | 
				
			||||||
 | 
					+    newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   return newValue;
 | 
				
			||||||
 | 
					 }, findStartOfMentionInPlainText = function(value, config, indexInPlainText) {
 | 
				
			||||||
 | 
					@@ -420,6 +419,29 @@ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsu
 | 
				
			||||||
 | 
					   }, {});
 | 
				
			||||||
 | 
					 }, _excluded = [ "style", "className", "classNames" ];
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+function ownKeys(object, enumerableOnly) {
 | 
				
			||||||
 | 
					+  var keys = Object.keys(object);
 | 
				
			||||||
 | 
					+  if (Object.getOwnPropertySymbols) {
 | 
				
			||||||
 | 
					+    var symbols = Object.getOwnPropertySymbols(object);
 | 
				
			||||||
 | 
					+    enumerableOnly && (symbols = symbols.filter(function(sym) {
 | 
				
			||||||
 | 
					+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
 | 
				
			||||||
 | 
					+    })), keys.push.apply(keys, symbols);
 | 
				
			||||||
 | 
					+  }
 | 
				
			||||||
 | 
					+  return keys;
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+function _objectSpread(target) {
 | 
				
			||||||
 | 
					+  for (var i = 1; i < arguments.length; i++) {
 | 
				
			||||||
 | 
					+    var source = null != arguments[i] ? arguments[i] : {};
 | 
				
			||||||
 | 
					+    i % 2 ? ownKeys(Object(source), !0).forEach(function(key) {
 | 
				
			||||||
 | 
					+      _defineProperty(target, key, source[key]);
 | 
				
			||||||
 | 
					+    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
 | 
				
			||||||
 | 
					+      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
 | 
				
			||||||
 | 
					+    });
 | 
				
			||||||
 | 
					+  }
 | 
				
			||||||
 | 
					+  return target;
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					   return function(ComponentToWrap) {
 | 
				
			||||||
 | 
					     var DefaultStyleEnhancer = function(_ref) {
 | 
				
			||||||
 | 
					@@ -433,7 +455,11 @@ function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					       }));
 | 
				
			||||||
 | 
					     }, displayName = ComponentToWrap.displayName || ComponentToWrap.name || "Component";
 | 
				
			||||||
 | 
					     return DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")"), 
 | 
				
			||||||
 | 
					-    DefaultStyleEnhancer;
 | 
				
			||||||
 | 
					+    React__default.forwardRef(function(props, ref) {
 | 
				
			||||||
 | 
					+      return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {
 | 
				
			||||||
 | 
					+        ref: ref
 | 
				
			||||||
 | 
					+      }));
 | 
				
			||||||
 | 
					+    });
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -449,7 +475,7 @@ function Highlighter(_ref) {
 | 
				
			||||||
 | 
					   }), _useState2 = _slicedToArray(_useState, 2), position = _useState2[0], setPosition = _useState2[1], _useState3 = React.useState(), _useState4 = _slicedToArray(_useState3, 2), caretElement = _useState4[0], setCaretElement = _useState4[1];
 | 
				
			||||||
 | 
					   React.useEffect(function() {
 | 
				
			||||||
 | 
					     notifyCaretPosition();
 | 
				
			||||||
 | 
					-  }, [ caretElement ]);
 | 
				
			||||||
 | 
					+  });
 | 
				
			||||||
 | 
					   var caretPositionInMarkup, notifyCaretPosition = function() {
 | 
				
			||||||
 | 
					     if (caretElement) {
 | 
				
			||||||
 | 
					       var offsetLeft = caretElement.offsetLeft, offsetTop = caretElement.offsetTop;
 | 
				
			||||||
 | 
					@@ -585,13 +611,13 @@ var defaultstyle = {};
 | 
				
			||||||
 | 
					 function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					   var id = _ref.id, _ref$suggestions = _ref.suggestions, suggestions = void 0 === _ref$suggestions ? {} : _ref$suggestions, a11ySuggestionsListLabel = _ref.a11ySuggestionsListLabel, focusIndex = _ref.focusIndex, position = _ref.position, left = _ref.left, right = _ref.right, top = _ref.top, scrollFocusedIntoView = _ref.scrollFocusedIntoView, isLoading = _ref.isLoading, isOpened = _ref.isOpened, _ref$onSelect = _ref.onSelect, onSelect = void 0 === _ref$onSelect ? function() {
 | 
				
			||||||
 | 
					     return null;
 | 
				
			||||||
 | 
					-  } : _ref$onSelect, ignoreAccents = _ref.ignoreAccents, containerRef = _ref.containerRef, children = _ref.children, style = _ref.style, customSuggestionsContainer = _ref.customSuggestionsContainer, onMouseDown = _ref.onMouseDown, onMouseEnter = _ref.onMouseEnter, _useState = React.useState(), _useState2 = _slicedToArray(_useState, 2), ulElement = _useState2[0], setUlElement = _useState2[1];
 | 
				
			||||||
 | 
					+  } : _ref$onSelect, ignoreAccents = _ref.ignoreAccents, containerRef = _ref.containerRef, children = _ref.children, style = _ref.style, customSuggestionsContainer = _ref.customSuggestionsContainer, onMouseDown = _ref.onMouseDown, onMouseEnter = _ref.onMouseEnter, _useState = React.useState(void 0), _useState2 = _slicedToArray(_useState, 2), ulElement = _useState2[0], setUlElement = _useState2[1];
 | 
				
			||||||
 | 
					   React.useEffect(function() {
 | 
				
			||||||
 | 
					     if (ulElement && !(ulElement.offsetHeight >= ulElement.scrollHeight) && scrollFocusedIntoView) {
 | 
				
			||||||
 | 
					       var scrollTop = ulElement.scrollTop, _ulElement$children$f = ulElement.children[focusIndex].getBoundingClientRect(), top = _ulElement$children$f.top, bottom = _ulElement$children$f.bottom, topContainer = ulElement.getBoundingClientRect().top;
 | 
				
			||||||
 | 
					       bottom = bottom - topContainer + scrollTop, (top = top - topContainer + scrollTop) < scrollTop ? ulElement.scrollTop = top : bottom > ulElement.offsetHeight && (ulElement.scrollTop = bottom - ulElement.offsetHeight);
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					-  }, []);
 | 
				
			||||||
 | 
					+  }, [ focusIndex, scrollFocusedIntoView, ulElement ]);
 | 
				
			||||||
 | 
					   var suggestionsToRender, renderSuggestion = function(result, queryInfo, index) {
 | 
				
			||||||
 | 
					     var isFocused = index === focusIndex, childIndex = queryInfo.childIndex, query = queryInfo.query, renderSuggestion = React.Children.toArray(children)[childIndex].props.renderSuggestion;
 | 
				
			||||||
 | 
					     return React__default.createElement(Suggestion$1, {
 | 
				
			||||||
 | 
					@@ -626,17 +652,17 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					   }, style), {
 | 
				
			||||||
 | 
					     onMouseDown: onMouseDown,
 | 
				
			||||||
 | 
					     ref: containerRef
 | 
				
			||||||
 | 
					-  }), React__default.createElement("ul", _extends({
 | 
				
			||||||
 | 
					+  }), (suggestionsToRender = React__default.createElement("ul", _extends({
 | 
				
			||||||
 | 
					     ref: setUlElement,
 | 
				
			||||||
 | 
					     id: id,
 | 
				
			||||||
 | 
					     role: "listbox",
 | 
				
			||||||
 | 
					     "aria-label": a11ySuggestionsListLabel
 | 
				
			||||||
 | 
					-  }, style("list")), (suggestionsToRender = Object.values(suggestions).reduce(function(accResults, _ref2) {
 | 
				
			||||||
 | 
					+  }, style("list")), Object.values(suggestions).reduce(function(accResults, _ref2) {
 | 
				
			||||||
 | 
					     var results = _ref2.results, queryInfo = _ref2.queryInfo;
 | 
				
			||||||
 | 
					     return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function(result, index) {
 | 
				
			||||||
 | 
					       return renderSuggestion(result, queryInfo, accResults.length + index);
 | 
				
			||||||
 | 
					     })));
 | 
				
			||||||
 | 
					-  }, []), customSuggestionsContainer ? customSuggestionsContainer(suggestionsToRender) : suggestionsToRender)), function() {
 | 
				
			||||||
 | 
					+  }, [])), customSuggestionsContainer ? customSuggestionsContainer(suggestionsToRender) : suggestionsToRender), function() {
 | 
				
			||||||
 | 
					     if (isLoading) return React__default.createElement(LoadingIndicator, {
 | 
				
			||||||
 | 
					       style: style("loadingIndicator")
 | 
				
			||||||
 | 
					     });
 | 
				
			||||||
 | 
					@@ -657,7 +683,7 @@ SuggestionsOverlay.propTypes = {
 | 
				
			||||||
 | 
					   isOpened: PropTypes.bool.isRequired,
 | 
				
			||||||
 | 
					   onSelect: PropTypes.func,
 | 
				
			||||||
 | 
					   ignoreAccents: PropTypes.bool,
 | 
				
			||||||
 | 
					-  customSuggestionsContainer: PropTypes.any,
 | 
				
			||||||
 | 
					+  customSuggestionsContainer: PropTypes.func,
 | 
				
			||||||
 | 
					   containerRef: PropTypes.oneOfType([ PropTypes.func, PropTypes.shape({
 | 
				
			||||||
 | 
					     current: "undefined" == typeof Element ? PropTypes.any : PropTypes.instanceOf(Element)
 | 
				
			||||||
 | 
					   }) ])
 | 
				
			||||||
 | 
					@@ -675,7 +701,7 @@ var styled$2 = createDefaultStyle({
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 }), SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function ownKeys(object, enumerableOnly) {
 | 
				
			||||||
 | 
					+function ownKeys$1(object, enumerableOnly) {
 | 
				
			||||||
 | 
					   var keys = Object.keys(object);
 | 
				
			||||||
 | 
					   if (Object.getOwnPropertySymbols) {
 | 
				
			||||||
 | 
					     var symbols = Object.getOwnPropertySymbols(object);
 | 
				
			||||||
 | 
					@@ -686,12 +712,12 @@ function ownKeys(object, enumerableOnly) {
 | 
				
			||||||
 | 
					   return keys;
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function _objectSpread(target) {
 | 
				
			||||||
 | 
					+function _objectSpread$1(target) {
 | 
				
			||||||
 | 
					   for (var i = 1; i < arguments.length; i++) {
 | 
				
			||||||
 | 
					     var source = null != arguments[i] ? arguments[i] : {};
 | 
				
			||||||
 | 
					-    i % 2 ? ownKeys(Object(source), !0).forEach(function(key) {
 | 
				
			||||||
 | 
					+    i % 2 ? ownKeys$1(Object(source), !0).forEach(function(key) {
 | 
				
			||||||
 | 
					       _defineProperty(target, key, source[key]);
 | 
				
			||||||
 | 
					-    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
 | 
				
			||||||
 | 
					+    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function(key) {
 | 
				
			||||||
 | 
					       Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
 | 
				
			||||||
 | 
					     });
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					@@ -769,7 +795,7 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       _this.containerElement = el;
 | 
				
			||||||
 | 
					     }), _defineProperty(_assertThisInitialized(_this), "getInputProps", function() {
 | 
				
			||||||
 | 
					       var _this$props = _this.props, readOnly = _this$props.readOnly, disabled = _this$props.disabled, style = _this$props.style;
 | 
				
			||||||
 | 
					-      return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, omit(_this.props, [ "style", "classNames", "className" ], keys(propTypes))), style("input")), {}, {
 | 
				
			||||||
 | 
					+      return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, omit(_this.props, [ "style", "classNames", "className" ], keys(propTypes))), style("input")), {}, {
 | 
				
			||||||
 | 
					         value: _this.getPlainText(),
 | 
				
			||||||
 | 
					         onScroll: _this.updateHighlighterScroll
 | 
				
			||||||
 | 
					       }, !readOnly && !disabled && {
 | 
				
			||||||
 | 
					@@ -853,9 +879,13 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       return _this.props.onChange ? (_this$props4 = _this.props).onChange.apply(_this$props4, [ event ].concat(args)) : _this.props.valueLink ? (_this$props$valueLink = _this.props.valueLink).requestChange.apply(_this$props$valueLink, [ event.target.value ].concat(args)) : void 0;
 | 
				
			||||||
 | 
					     }), _defineProperty(_assertThisInitialized(_this), "handleChange", function(ev) {
 | 
				
			||||||
 | 
					       if ((isComposing = !1, isIE()) && (document.activeElement && document.activeElement.contentDocument || document).activeElement !== ev.target) return;
 | 
				
			||||||
 | 
					-      var value = _this.props.value || "", config = readConfigFromChildren(_this.props.children), newPlainTextValue = ev.target.value, newValue = applyChangeToValue(value, newPlainTextValue, {
 | 
				
			||||||
 | 
					-        selectionStartBefore: _this.state.selectionStart,
 | 
				
			||||||
 | 
					-        selectionEndBefore: _this.state.selectionEnd,
 | 
				
			||||||
 | 
					+      var value = _this.props.value || "", config = readConfigFromChildren(_this.props.children), newPlainTextValue = ev.target.value, selectionStartBefore = _this.state.selectionStart;
 | 
				
			||||||
 | 
					+      null == selectionStartBefore && (selectionStartBefore = ev.target.selectionStart);
 | 
				
			||||||
 | 
					+      var selectionEndBefore = _this.state.selectionEnd;
 | 
				
			||||||
 | 
					+      null == selectionEndBefore && (selectionEndBefore = ev.target.selectionEnd);
 | 
				
			||||||
 | 
					+      var newValue = applyChangeToValue(value, newPlainTextValue, {
 | 
				
			||||||
 | 
					+        selectionStartBefore: selectionStartBefore,
 | 
				
			||||||
 | 
					+        selectionEndBefore: selectionEndBefore,
 | 
				
			||||||
 | 
					         selectionEndAfter: ev.target.selectionEnd
 | 
				
			||||||
 | 
					       }, config);
 | 
				
			||||||
 | 
					       newPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					@@ -866,7 +896,9 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					         selectionEnd: selectionEnd,
 | 
				
			||||||
 | 
					         setSelectionAfterMentionChange: setSelectionAfterMentionChange
 | 
				
			||||||
 | 
					       });
 | 
				
			||||||
 | 
					-      var mentions = getMentions(newValue, config), eventMock = {
 | 
				
			||||||
 | 
					+      var mentions = getMentions(newValue, config);
 | 
				
			||||||
 | 
					+      ev.nativeEvent.isComposing && selectionStart === selectionEnd && _this.updateMentionsQueries(_this.inputElement.value, selectionStart);
 | 
				
			||||||
 | 
					+      var eventMock = {
 | 
				
			||||||
 | 
					         target: {
 | 
				
			||||||
 | 
					           value: newValue
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					@@ -1005,7 +1037,7 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       syncResult instanceof Array && _this.updateSuggestions(_this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, syncResult);
 | 
				
			||||||
 | 
					     }), _defineProperty(_assertThisInitialized(_this), "updateSuggestions", function(queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, results) {
 | 
				
			||||||
 | 
					       if (queryId === _this._queryId) {
 | 
				
			||||||
 | 
					-        _this.suggestions = _objectSpread(_objectSpread({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					+        _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					           queryInfo: {
 | 
				
			||||||
 | 
					             childIndex: childIndex,
 | 
				
			||||||
 | 
					             query: query,
 | 
				
			||||||
 | 
					@@ -1057,7 +1089,8 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       selectionEnd: null,
 | 
				
			||||||
 | 
					       suggestions: {},
 | 
				
			||||||
 | 
					       caretPosition: null,
 | 
				
			||||||
 | 
					-      suggestionsPosition: {}
 | 
				
			||||||
 | 
					+      suggestionsPosition: {},
 | 
				
			||||||
 | 
					+      setSelectionAfterHandlePaste: !1
 | 
				
			||||||
 | 
					     }, _this;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   return _createClass(MentionsInput, [ {
 | 
				
			||||||
 | 
					@@ -1072,6 +1105,8 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       prevState.suggestionsPosition === this.state.suggestionsPosition && this.updateSuggestionsPosition(), 
 | 
				
			||||||
 | 
					       this.state.setSelectionAfterMentionChange && (this.setState({
 | 
				
			||||||
 | 
					         setSelectionAfterMentionChange: !1
 | 
				
			||||||
 | 
					+      }), this.setSelection(this.state.selectionStart, this.state.selectionEnd)), this.state.setSelectionAfterHandlePaste && (this.setState({
 | 
				
			||||||
 | 
					+        setSelectionAfterHandlePaste: !1
 | 
				
			||||||
 | 
					       }), this.setSelection(this.state.selectionStart, this.state.selectionEnd));
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					@@ -1093,13 +1128,17 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       if (event.target === this.inputElement && this.supportsClipboardActions(event)) {
 | 
				
			||||||
 | 
					         event.preventDefault();
 | 
				
			||||||
 | 
					         var _this$state3 = this.state, selectionStart = _this$state3.selectionStart, selectionEnd = _this$state3.selectionEnd, _this$props7 = this.props, value = _this$props7.value, children = _this$props7.children, config = readConfigFromChildren(children), markupStartIndex = mapPlainTextIndex(value, config, selectionStart, "START"), markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, "END"), pastedMentions = event.clipboardData.getData("text/react-mentions"), pastedData = event.clipboardData.getData("text/plain"), newValue = spliceString(value, markupStartIndex, markupEndIndex, pastedMentions || pastedData).replace(/\r/g, ""), newPlainTextValue = getPlainText(newValue, config), eventMock = {
 | 
				
			||||||
 | 
					-          target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+          target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					             value: newValue
 | 
				
			||||||
 | 
					           })
 | 
				
			||||||
 | 
					         };
 | 
				
			||||||
 | 
					         this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(newValue, config));
 | 
				
			||||||
 | 
					         var nextPos = (findStartOfMentionInPlainText(value, config, selectionStart) || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;
 | 
				
			||||||
 | 
					-        this.setSelection(nextPos, nextPos);
 | 
				
			||||||
 | 
					+        this.setState({
 | 
				
			||||||
 | 
					+          selectionStart: nextPos,
 | 
				
			||||||
 | 
					+          selectionEnd: nextPos,
 | 
				
			||||||
 | 
					+          setSelectionAfterHandlePaste: !0
 | 
				
			||||||
 | 
					+        });
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					@@ -1126,7 +1165,7 @@ var makeTriggerRegex = function(trigger) {
 | 
				
			||||||
 | 
					       if (event.target === this.inputElement && this.supportsClipboardActions(event)) {
 | 
				
			||||||
 | 
					         event.preventDefault(), this.saveSelectionToClipboard(event);
 | 
				
			||||||
 | 
					         var _this$state4 = this.state, selectionStart = _this$state4.selectionStart, selectionEnd = _this$state4.selectionEnd, _this$props9 = this.props, children = _this$props9.children, value = _this$props9.value, config = readConfigFromChildren(children), markupStartIndex = mapPlainTextIndex(value, config, selectionStart, "START"), markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, "END"), newValue = [ value.slice(0, markupStartIndex), value.slice(markupEndIndex) ].join(""), newPlainTextValue = getPlainText(newValue, config), eventMock = {
 | 
				
			||||||
 | 
					-          target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+          target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					             value: newPlainTextValue
 | 
				
			||||||
 | 
					           })
 | 
				
			||||||
 | 
					         };
 | 
				
			||||||
 | 
					@@ -1171,7 +1210,7 @@ var getComputedStyleLengthProp = function(forElement, propertyName) {
 | 
				
			||||||
 | 
					     letterSpacing: "inherit"
 | 
				
			||||||
 | 
					   },
 | 
				
			||||||
 | 
					   "&multiLine": {
 | 
				
			||||||
 | 
					-    input: _objectSpread({
 | 
				
			||||||
 | 
					+    input: _objectSpread$1({
 | 
				
			||||||
 | 
					       height: "100%",
 | 
				
			||||||
 | 
					       bottom: 0,
 | 
				
			||||||
 | 
					       overflow: "hidden",
 | 
				
			||||||
 | 
					diff --git a/dist/react-mentions.esm.js b/dist/react-mentions.esm.js
 | 
				
			||||||
 | 
					index fd6c82b767e342124ea8a9c8b2b1e61d3eed9439..b68de5946a90361c0d1bb4af6ad2ab74f2837cef 100644
 | 
				
			||||||
 | 
					--- a/dist/react-mentions.esm.js
 | 
				
			||||||
 | 
					+++ b/dist/react-mentions.esm.js
 | 
				
			||||||
 | 
					@@ -222,14 +222,23 @@ var applyChangeToValue = function applyChangeToValue(value, plainTextValue, _ref
 | 
				
			||||||
 | 
					       // find start of diff
 | 
				
			||||||
 | 
					       spliceStart = 0;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      while (plainTextValue[spliceStart] === controlPlainTextValue[spliceStart]) {
 | 
				
			||||||
 | 
					+      while (plainTextValue[spliceStart] === oldPlainTextValue[spliceStart]) {
 | 
				
			||||||
 | 
					         spliceStart++;
 | 
				
			||||||
 | 
					+      } // find end of diff
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      var spliceEndOfNew = plainTextValue.length;
 | 
				
			||||||
 | 
					+      var spliceEndOfOld = oldPlainTextValue.length;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      while (plainTextValue[spliceEndOfNew - 1] === oldPlainTextValue[spliceEndOfOld - 1]) {
 | 
				
			||||||
 | 
					+        spliceEndOfNew--;
 | 
				
			||||||
 | 
					+        spliceEndOfOld--;
 | 
				
			||||||
 | 
					       } // extract auto-corrected insertion
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      insert = plainTextValue.slice(spliceStart, selectionEndAfter); // find index of the unchanged remainder
 | 
				
			||||||
 | 
					+      insert = plainTextValue.slice(spliceStart, spliceEndOfNew); // find index of the unchanged remainder
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      spliceEnd = oldPlainTextValue.lastIndexOf(plainTextValue.substring(selectionEndAfter)); // re-map the corrected indices
 | 
				
			||||||
 | 
					+      spliceEnd = spliceEndOfOld >= spliceStart ? spliceEndOfOld : selectionEndAfter; // re-map the corrected indices
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');
 | 
				
			||||||
 | 
					       mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');
 | 
				
			||||||
 | 
					@@ -653,6 +662,10 @@ var omit = function omit(obj) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 var _excluded = ["style", "className", "classNames"];
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					   var enhance = function enhance(ComponentToWrap) {
 | 
				
			||||||
 | 
					     var DefaultStyleEnhancer = function DefaultStyleEnhancer(_ref) {
 | 
				
			||||||
 | 
					@@ -673,8 +686,13 @@ function createDefaultStyle(defaultStyle, getModifiers) {
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					     var displayName = ComponentToWrap.displayName || ComponentToWrap.name || 'Component';
 | 
				
			||||||
 | 
					-    DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")");
 | 
				
			||||||
 | 
					-    return DefaultStyleEnhancer;
 | 
				
			||||||
 | 
					+    DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")"); // return DefaultStyleEnhancer
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+    return /*#__PURE__*/React.forwardRef(function (props, ref) {
 | 
				
			||||||
 | 
					+      return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {
 | 
				
			||||||
 | 
					+        ref: ref
 | 
				
			||||||
 | 
					+      }));
 | 
				
			||||||
 | 
					+    });
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   return enhance;
 | 
				
			||||||
 | 
					@@ -716,7 +734,7 @@ function Highlighter(_ref) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   useEffect(function () {
 | 
				
			||||||
 | 
					     notifyCaretPosition();
 | 
				
			||||||
 | 
					-  }, [caretElement]);
 | 
				
			||||||
 | 
					+  });
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var notifyCaretPosition = function notifyCaretPosition() {
 | 
				
			||||||
 | 
					     if (!caretElement) {
 | 
				
			||||||
 | 
					@@ -965,7 +983,7 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					       onMouseDown = _ref.onMouseDown,
 | 
				
			||||||
 | 
					       onMouseEnter = _ref.onMouseEnter;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-  var _useState = useState(),
 | 
				
			||||||
 | 
					+  var _useState = useState(undefined),
 | 
				
			||||||
 | 
					       _useState2 = _slicedToArray(_useState, 2),
 | 
				
			||||||
 | 
					       ulElement = _useState2[0],
 | 
				
			||||||
 | 
					       setUlElement = _useState2[1];
 | 
				
			||||||
 | 
					@@ -992,17 +1010,23 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					     } else if (bottom > ulElement.offsetHeight) {
 | 
				
			||||||
 | 
					       ulElement.scrollTop = bottom - ulElement.offsetHeight;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					-  }, []);
 | 
				
			||||||
 | 
					+  }, [focusIndex, scrollFocusedIntoView, ulElement]);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var renderSuggestions = function renderSuggestions() {
 | 
				
			||||||
 | 
					-    var suggestionsToRender = Object.values(suggestions).reduce(function (accResults, _ref2) {
 | 
				
			||||||
 | 
					+    var suggestionsToRender = /*#__PURE__*/React.createElement("ul", _extends({
 | 
				
			||||||
 | 
					+      ref: setUlElement,
 | 
				
			||||||
 | 
					+      id: id,
 | 
				
			||||||
 | 
					+      role: "listbox",
 | 
				
			||||||
 | 
					+      "aria-label": a11ySuggestionsListLabel
 | 
				
			||||||
 | 
					+    }, style('list')), Object.values(suggestions).reduce(function (accResults, _ref2) {
 | 
				
			||||||
 | 
					       var results = _ref2.results,
 | 
				
			||||||
 | 
					           queryInfo = _ref2.queryInfo;
 | 
				
			||||||
 | 
					       return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function (result, index) {
 | 
				
			||||||
 | 
					         return renderSuggestion(result, queryInfo, accResults.length + index);
 | 
				
			||||||
 | 
					       })));
 | 
				
			||||||
 | 
					-    }, []);
 | 
				
			||||||
 | 
					-    if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);else return suggestionsToRender;
 | 
				
			||||||
 | 
					+    }, []));
 | 
				
			||||||
 | 
					+    if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);
 | 
				
			||||||
 | 
					+    return suggestionsToRender;
 | 
				
			||||||
 | 
					   };
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   var renderSuggestion = function renderSuggestion(result, queryInfo, index) {
 | 
				
			||||||
 | 
					@@ -1069,12 +1093,7 @@ function SuggestionsOverlay(_ref) {
 | 
				
			||||||
 | 
					   }, style), {
 | 
				
			||||||
 | 
					     onMouseDown: onMouseDown,
 | 
				
			||||||
 | 
					     ref: containerRef
 | 
				
			||||||
 | 
					-  }), /*#__PURE__*/React.createElement("ul", _extends({
 | 
				
			||||||
 | 
					-    ref: setUlElement,
 | 
				
			||||||
 | 
					-    id: id,
 | 
				
			||||||
 | 
					-    role: "listbox",
 | 
				
			||||||
 | 
					-    "aria-label": a11ySuggestionsListLabel
 | 
				
			||||||
 | 
					-  }, style('list')), renderSuggestions()), renderLoadingIndicator());
 | 
				
			||||||
 | 
					+  }), renderSuggestions(), renderLoadingIndicator());
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 SuggestionsOverlay.propTypes = {
 | 
				
			||||||
 | 
					@@ -1091,7 +1110,7 @@ SuggestionsOverlay.propTypes = {
 | 
				
			||||||
 | 
					   isOpened: PropTypes.bool.isRequired,
 | 
				
			||||||
 | 
					   onSelect: PropTypes.func,
 | 
				
			||||||
 | 
					   ignoreAccents: PropTypes.bool,
 | 
				
			||||||
 | 
					-  customSuggestionsContainer: PropTypes.any,
 | 
				
			||||||
 | 
					+  customSuggestionsContainer: PropTypes.func,
 | 
				
			||||||
 | 
					   containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
 | 
				
			||||||
 | 
					     current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)
 | 
				
			||||||
 | 
					   })])
 | 
				
			||||||
 | 
					@@ -1109,9 +1128,9 @@ var styled$2 = createDefaultStyle({
 | 
				
			||||||
 | 
					 });
 | 
				
			||||||
 | 
					 var SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					+function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					+function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -1208,7 +1227,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var props = omit(_this.props, ['style', 'classNames', 'className'], // substyle props
 | 
				
			||||||
 | 
					       keys(propTypes));
 | 
				
			||||||
 | 
					-      return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), style('input')), {}, {
 | 
				
			||||||
 | 
					+      return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, props), style('input')), {}, {
 | 
				
			||||||
 | 
					         value: _this.getPlainText(),
 | 
				
			||||||
 | 
					         onScroll: _this.updateHighlighterScroll
 | 
				
			||||||
 | 
					       }, !readOnly && !disabled && {
 | 
				
			||||||
 | 
					@@ -1372,11 +1391,23 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var value = _this.props.value || '';
 | 
				
			||||||
 | 
					       var config = readConfigFromChildren(_this.props.children);
 | 
				
			||||||
 | 
					-      var newPlainTextValue = ev.target.value; // Derive the new value to set by applying the local change in the textarea's plain text
 | 
				
			||||||
 | 
					+      var newPlainTextValue = ev.target.value;
 | 
				
			||||||
 | 
					+      var selectionStartBefore = _this.state.selectionStart;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (selectionStartBefore == null) {
 | 
				
			||||||
 | 
					+        selectionStartBefore = ev.target.selectionStart;
 | 
				
			||||||
 | 
					+      }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      var selectionEndBefore = _this.state.selectionEnd;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (selectionEndBefore == null) {
 | 
				
			||||||
 | 
					+        selectionEndBefore = ev.target.selectionEnd;
 | 
				
			||||||
 | 
					+      } // Derive the new value to set by applying the local change in the textarea's plain text
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var newValue = applyChangeToValue(value, newPlainTextValue, {
 | 
				
			||||||
 | 
					-        selectionStartBefore: _this.state.selectionStart,
 | 
				
			||||||
 | 
					-        selectionEndBefore: _this.state.selectionEnd,
 | 
				
			||||||
 | 
					+        selectionStartBefore: selectionStartBefore,
 | 
				
			||||||
 | 
					+        selectionEndBefore: selectionEndBefore,
 | 
				
			||||||
 | 
					         selectionEndAfter: ev.target.selectionEnd
 | 
				
			||||||
 | 
					       }, config); // In case a mention is deleted, also adjust the new plain text value
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					@@ -1402,9 +1433,14 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					         setSelectionAfterMentionChange: setSelectionAfterMentionChange
 | 
				
			||||||
 | 
					       });
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      var mentions = getMentions(newValue, config); // Propagate change
 | 
				
			||||||
 | 
					+      var mentions = getMentions(newValue, config);
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (ev.nativeEvent.isComposing && selectionStart === selectionEnd) {
 | 
				
			||||||
 | 
					+        _this.updateMentionsQueries(_this.inputElement.value, selectionStart);
 | 
				
			||||||
 | 
					+      } // Propagate change
 | 
				
			||||||
 | 
					       // let handleChange = this.getOnChange(this.props) || emptyFunction;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					         target: {
 | 
				
			||||||
 | 
					           value: newValue
 | 
				
			||||||
 | 
					@@ -1751,7 +1787,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       if (queryId !== _this._queryId) return; // save in property so that multiple sync state updates from different mentions sources
 | 
				
			||||||
 | 
					       // won't overwrite each other
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      _this.suggestions = _objectSpread(_objectSpread({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					+      _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
 | 
				
			||||||
 | 
					         queryInfo: {
 | 
				
			||||||
 | 
					           childIndex: childIndex,
 | 
				
			||||||
 | 
					           query: query,
 | 
				
			||||||
 | 
					@@ -1856,7 +1892,8 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       selectionEnd: null,
 | 
				
			||||||
 | 
					       suggestions: {},
 | 
				
			||||||
 | 
					       caretPosition: null,
 | 
				
			||||||
 | 
					-      suggestionsPosition: {}
 | 
				
			||||||
 | 
					+      suggestionsPosition: {},
 | 
				
			||||||
 | 
					+      setSelectionAfterHandlePaste: false
 | 
				
			||||||
 | 
					     };
 | 
				
			||||||
 | 
					     return _this;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					@@ -1886,6 +1923,13 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					         });
 | 
				
			||||||
 | 
					         this.setSelection(this.state.selectionStart, this.state.selectionEnd);
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+      if (this.state.setSelectionAfterHandlePaste) {
 | 
				
			||||||
 | 
					+        this.setState({
 | 
				
			||||||
 | 
					+          setSelectionAfterHandlePaste: false
 | 
				
			||||||
 | 
					+        });
 | 
				
			||||||
 | 
					+        this.setSelection(this.state.selectionStart, this.state.selectionEnd);
 | 
				
			||||||
 | 
					+      }
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					     key: "componentWillUnmount",
 | 
				
			||||||
 | 
					@@ -1927,7 +1971,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       var newValue = spliceString(value, markupStartIndex, markupEndIndex, pastedMentions || pastedData).replace(/\r/g, '');
 | 
				
			||||||
 | 
					       var newPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					-        target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+        target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					           value: newValue
 | 
				
			||||||
 | 
					         })
 | 
				
			||||||
 | 
					       };
 | 
				
			||||||
 | 
					@@ -1935,7 +1979,11 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					       var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);
 | 
				
			||||||
 | 
					       var nextPos = (startOfMention || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;
 | 
				
			||||||
 | 
					-      this.setSelection(nextPos, nextPos);
 | 
				
			||||||
 | 
					+      this.setState({
 | 
				
			||||||
 | 
					+        selectionStart: nextPos,
 | 
				
			||||||
 | 
					+        selectionEnd: nextPos,
 | 
				
			||||||
 | 
					+        setSelectionAfterHandlePaste: true
 | 
				
			||||||
 | 
					+      });
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }, {
 | 
				
			||||||
 | 
					     key: "saveSelectionToClipboard",
 | 
				
			||||||
 | 
					@@ -1997,7 +2045,7 @@ var MentionsInput = /*#__PURE__*/function (_React$Component) {
 | 
				
			||||||
 | 
					       var newValue = [value.slice(0, markupStartIndex), value.slice(markupEndIndex)].join('');
 | 
				
			||||||
 | 
					       var newPlainTextValue = getPlainText(newValue, config);
 | 
				
			||||||
 | 
					       var eventMock = {
 | 
				
			||||||
 | 
					-        target: _objectSpread(_objectSpread({}, event.target), {}, {
 | 
				
			||||||
 | 
					+        target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
 | 
				
			||||||
 | 
					           value: newPlainTextValue
 | 
				
			||||||
 | 
					         })
 | 
				
			||||||
 | 
					       };
 | 
				
			||||||
 | 
					@@ -2054,7 +2102,7 @@ var styled$3 = createDefaultStyle({
 | 
				
			||||||
 | 
					     letterSpacing: 'inherit'
 | 
				
			||||||
 | 
					   },
 | 
				
			||||||
 | 
					   '&multiLine': {
 | 
				
			||||||
 | 
					-    input: _objectSpread({
 | 
				
			||||||
 | 
					+    input: _objectSpread$1({
 | 
				
			||||||
 | 
					       height: '100%',
 | 
				
			||||||
 | 
					       bottom: 0,
 | 
				
			||||||
 | 
					       overflow: 'hidden',
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue