react-mentions 4.4.6 → 4.4.8

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.
@@ -420,6 +420,29 @@ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsu
420
420
  }, {});
421
421
  }, _excluded = [ "style", "className", "classNames" ];
422
422
 
423
+ function ownKeys(object, enumerableOnly) {
424
+ var keys = Object.keys(object);
425
+ if (Object.getOwnPropertySymbols) {
426
+ var symbols = Object.getOwnPropertySymbols(object);
427
+ enumerableOnly && (symbols = symbols.filter(function(sym) {
428
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
429
+ })), keys.push.apply(keys, symbols);
430
+ }
431
+ return keys;
432
+ }
433
+
434
+ function _objectSpread(target) {
435
+ for (var i = 1; i < arguments.length; i++) {
436
+ var source = null != arguments[i] ? arguments[i] : {};
437
+ i % 2 ? ownKeys(Object(source), !0).forEach(function(key) {
438
+ _defineProperty(target, key, source[key]);
439
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
440
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
441
+ });
442
+ }
443
+ return target;
444
+ }
445
+
423
446
  function createDefaultStyle(defaultStyle, getModifiers) {
424
447
  return function(ComponentToWrap) {
425
448
  var DefaultStyleEnhancer = function(_ref) {
@@ -433,123 +456,73 @@ function createDefaultStyle(defaultStyle, getModifiers) {
433
456
  }));
434
457
  }, displayName = ComponentToWrap.displayName || ComponentToWrap.name || "Component";
435
458
  return DefaultStyleEnhancer.displayName = "defaultStyle(".concat(displayName, ")"),
436
- DefaultStyleEnhancer;
437
- };
438
- }
439
-
440
- function _createSuper(Derived) {
441
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
442
- return function() {
443
- var result, Super = _getPrototypeOf(Derived);
444
- if (hasNativeReflectConstruct) {
445
- var NewTarget = _getPrototypeOf(this).constructor;
446
- result = Reflect.construct(Super, arguments, NewTarget);
447
- } else result = Super.apply(this, arguments);
448
- return _possibleConstructorReturn(this, result);
459
+ React__default.forwardRef(function(props, ref) {
460
+ return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {
461
+ ref: ref
462
+ }));
463
+ });
449
464
  };
450
465
  }
451
466
 
452
- function _isNativeReflectConstruct() {
453
- if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
454
- if (Reflect.construct.sham) return !1;
455
- if ("function" == typeof Proxy) return !0;
456
- try {
457
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})),
458
- !0;
459
- } catch (e) {
460
- return !1;
461
- }
462
- }
463
-
464
467
  var _generateComponentKey = function(usedKeys, id) {
465
468
  return usedKeys.hasOwnProperty(id) ? usedKeys[id]++ : usedKeys[id] = 0, id + "_" + usedKeys[id];
466
- }, Highlighter = function(_Component) {
467
- _inherits(Highlighter, _Component);
468
- var _super = _createSuper(Highlighter);
469
- function Highlighter() {
470
- var _this;
471
- return _classCallCheck(this, Highlighter), _this = _super.apply(this, arguments),
472
- _defineProperty(_assertThisInitialized(_this), "setCaretElement", function(el) {
473
- _this.caretElement = el;
474
- }), _this.state = {
475
- left: void 0,
476
- top: void 0
477
- }, _this;
478
- }
479
- return _createClass(Highlighter, [ {
480
- key: "componentDidMount",
481
- value: function() {
482
- this.notifyCaretPosition();
483
- }
484
- }, {
485
- key: "componentDidUpdate",
486
- value: function() {
487
- this.notifyCaretPosition();
488
- }
489
- }, {
490
- key: "notifyCaretPosition",
491
- value: function() {
492
- if (this.caretElement) {
493
- var _this$caretElement = this.caretElement, offsetLeft = _this$caretElement.offsetLeft, offsetTop = _this$caretElement.offsetTop;
494
- if (this.state.left !== offsetLeft || this.state.top !== offsetTop) {
495
- var newPosition = {
496
- left: offsetLeft,
497
- top: offsetTop
498
- };
499
- this.setState(newPosition), this.props.onCaretPositionChange(newPosition);
500
- }
469
+ };
470
+
471
+ function Highlighter(_ref) {
472
+ var selectionStart = _ref.selectionStart, selectionEnd = _ref.selectionEnd, _ref$value = _ref.value, value = void 0 === _ref$value ? "" : _ref$value, onCaretPositionChange = _ref.onCaretPositionChange, containerRef = _ref.containerRef, children = _ref.children, style = (_ref.singleLine,
473
+ _ref.style), _useState = React.useState({
474
+ left: void 0,
475
+ top: void 0
476
+ }), _useState2 = _slicedToArray(_useState, 2), position = _useState2[0], setPosition = _useState2[1], _useState3 = React.useState(), _useState4 = _slicedToArray(_useState3, 2), caretElement = _useState4[0], setCaretElement = _useState4[1];
477
+ React.useEffect(function() {
478
+ notifyCaretPosition();
479
+ });
480
+ var caretPositionInMarkup, notifyCaretPosition = function() {
481
+ if (caretElement) {
482
+ var offsetLeft = caretElement.offsetLeft, offsetTop = caretElement.offsetTop;
483
+ if (position.left !== offsetLeft || position.top !== offsetTop) {
484
+ var newPosition = {
485
+ left: offsetLeft,
486
+ top: offsetTop
487
+ };
488
+ setPosition(newPosition), onCaretPositionChange(newPosition);
501
489
  }
502
490
  }
503
- }, {
504
- key: "render",
505
- value: function() {
506
- var caretPositionInMarkup, _this2 = this, _this$props = this.props, selectionStart = _this$props.selectionStart, selectionEnd = _this$props.selectionEnd, value = _this$props.value, style = _this$props.style, children = _this$props.children, containerRef = _this$props.containerRef, config = readConfigFromChildren(children);
507
- selectionStart === selectionEnd && (caretPositionInMarkup = mapPlainTextIndex(value, config, selectionStart, "START"));
508
- var resultComponents = [], componentKeys = {}, components = resultComponents, substringComponentKey = 0;
509
- return iterateMentionsMarkup(value, config, function(markup, index, indexInPlainText, id, display, mentionChildIndex, lastMentionEndIndex) {
510
- var key = _generateComponentKey(componentKeys, id);
511
- components.push(_this2.getMentionComponentForMatch(id, display, mentionChildIndex, key));
512
- }, function(substr, index, indexInPlainText) {
513
- if (isNumber(caretPositionInMarkup) && caretPositionInMarkup >= index && caretPositionInMarkup <= index + substr.length) {
514
- var splitIndex = caretPositionInMarkup - index;
515
- components.push(_this2.renderSubstring(substr.substring(0, splitIndex), substringComponentKey)),
516
- components = [ _this2.renderSubstring(substr.substring(splitIndex), substringComponentKey) ];
517
- } else components.push(_this2.renderSubstring(substr, substringComponentKey));
518
- substringComponentKey++;
519
- }), components.push(" "), components !== resultComponents && resultComponents.push(this.renderHighlighterCaret(components)),
520
- React__default.createElement("div", _extends({}, style, {
521
- ref: containerRef
522
- }), resultComponents);
523
- }
524
- }, {
525
- key: "renderSubstring",
526
- value: function(string, key) {
527
- return React__default.createElement("span", _extends({}, this.props.style("substring"), {
528
- key: key
529
- }), string);
530
- }
531
- }, {
532
- key: "getMentionComponentForMatch",
533
- value: function(id, display, mentionChildIndex, key) {
534
- var props = {
535
- id: id,
536
- display: display,
537
- key: key
538
- }, child = React.Children.toArray(this.props.children)[mentionChildIndex];
539
- return React__default.cloneElement(child, props);
540
- }
541
- }, {
542
- key: "renderHighlighterCaret",
543
- value: function(children) {
544
- return React__default.createElement("span", _extends({}, this.props.style("caret"), {
545
- ref: this.setCaretElement,
546
- key: "caret"
547
- }), children);
548
- }
549
- } ]), Highlighter;
550
- }(React.Component);
491
+ }, config = readConfigFromChildren(children);
492
+ selectionEnd === selectionStart && (caretPositionInMarkup = mapPlainTextIndex(value, config, selectionStart, "START"));
493
+ var resultComponents = [], componentKeys = {}, components = resultComponents, substringComponentKey = 0, renderSubstring = function(string, key) {
494
+ return React__default.createElement("span", _extends({}, style("substring"), {
495
+ key: key
496
+ }), string);
497
+ }, getMentionComponentForMatch = function(id, display, mentionChildIndex, key) {
498
+ var props = {
499
+ id: id,
500
+ display: display,
501
+ key: key
502
+ }, child = React.Children.toArray(children)[mentionChildIndex];
503
+ return React__default.cloneElement(child, props);
504
+ };
505
+ return iterateMentionsMarkup(value, config, function(markup, index, indexInPlainText, id, display, mentionChildIndex, lastMentionEndIndex) {
506
+ var key = _generateComponentKey(componentKeys, id);
507
+ components.push(getMentionComponentForMatch(id, display, mentionChildIndex, key));
508
+ }, function(substr, index, indexInPlainText) {
509
+ if (isNumber(caretPositionInMarkup) && caretPositionInMarkup >= index && caretPositionInMarkup <= index + substr.length) {
510
+ var splitIndex = caretPositionInMarkup - index;
511
+ components.push(renderSubstring(substr.substring(0, splitIndex), substringComponentKey)),
512
+ components = [ renderSubstring(substr.substring(splitIndex), substringComponentKey) ];
513
+ } else components.push(renderSubstring(substr, substringComponentKey));
514
+ substringComponentKey++;
515
+ }), components.push(" "), components !== resultComponents && resultComponents.push(function(children) {
516
+ return React__default.createElement("span", _extends({}, style("caret"), {
517
+ ref: setCaretElement,
518
+ key: "caret"
519
+ }), children);
520
+ }(components)), React__default.createElement("div", _extends({}, style, {
521
+ ref: containerRef
522
+ }), resultComponents);
523
+ }
551
524
 
552
- _defineProperty(Highlighter, "propTypes", {
525
+ Highlighter.propTypes = {
553
526
  selectionStart: PropTypes.number,
554
527
  selectionEnd: PropTypes.number,
555
528
  value: PropTypes.string.isRequired,
@@ -558,9 +531,7 @@ _defineProperty(Highlighter, "propTypes", {
558
531
  current: "undefined" == typeof Element ? PropTypes.any : PropTypes.instanceOf(Element)
559
532
  }) ]),
560
533
  children: PropTypes.oneOfType([ PropTypes.element, PropTypes.arrayOf(PropTypes.element) ]).isRequired
561
- }), _defineProperty(Highlighter, "defaultProps", {
562
- value: ""
563
- });
534
+ };
564
535
 
565
536
  var styled = createDefaultStyle({
566
537
  position: "relative",
@@ -638,116 +609,68 @@ function LoadingIndicator(_ref) {
638
609
 
639
610
  var defaultstyle = {};
640
611
 
641
- function _createSuper$1(Derived) {
642
- var hasNativeReflectConstruct = _isNativeReflectConstruct$1();
643
- return function() {
644
- var result, Super = _getPrototypeOf(Derived);
645
- if (hasNativeReflectConstruct) {
646
- var NewTarget = _getPrototypeOf(this).constructor;
647
- result = Reflect.construct(Super, arguments, NewTarget);
648
- } else result = Super.apply(this, arguments);
649
- return _possibleConstructorReturn(this, result);
612
+ function SuggestionsOverlay(_ref) {
613
+ 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() {
614
+ return null;
615
+ } : _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];
616
+ React.useEffect(function() {
617
+ if (ulElement && !(ulElement.offsetHeight >= ulElement.scrollHeight) && scrollFocusedIntoView) {
618
+ 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;
619
+ bottom = bottom - topContainer + scrollTop, (top = top - topContainer + scrollTop) < scrollTop ? ulElement.scrollTop = top : bottom > ulElement.offsetHeight && (ulElement.scrollTop = bottom - ulElement.offsetHeight);
620
+ }
621
+ }, [ focusIndex, scrollFocusedIntoView, ulElement ]);
622
+ var suggestionsToRender, renderSuggestion = function(result, queryInfo, index) {
623
+ var isFocused = index === focusIndex, childIndex = queryInfo.childIndex, query = queryInfo.query, renderSuggestion = React.Children.toArray(children)[childIndex].props.renderSuggestion;
624
+ return React__default.createElement(Suggestion$1, {
625
+ style: style("item"),
626
+ key: "".concat(childIndex, "-").concat(getID(result)),
627
+ id: getSuggestionHtmlId(id, index),
628
+ query: query,
629
+ index: index,
630
+ ignoreAccents: ignoreAccents,
631
+ renderSuggestion: renderSuggestion,
632
+ suggestion: result,
633
+ focused: isFocused,
634
+ onClick: function() {
635
+ return select(result, queryInfo);
636
+ },
637
+ onMouseEnter: function() {
638
+ return handleMouseEnter(index);
639
+ }
640
+ });
641
+ }, handleMouseEnter = function(index, ev) {
642
+ onMouseEnter && onMouseEnter(index);
643
+ }, select = function(suggestion, queryInfo) {
644
+ onSelect(suggestion, queryInfo);
645
+ }, getID = function(suggestion) {
646
+ return "string" == typeof suggestion ? suggestion : suggestion.id;
650
647
  };
648
+ return isOpened ? React__default.createElement("div", _extends({}, useStyles.inline({
649
+ position: position || "absolute",
650
+ left: left,
651
+ right: right,
652
+ top: top
653
+ }, style), {
654
+ onMouseDown: onMouseDown,
655
+ ref: containerRef
656
+ }), (suggestionsToRender = React__default.createElement("ul", _extends({
657
+ ref: setUlElement,
658
+ id: id,
659
+ role: "listbox",
660
+ "aria-label": a11ySuggestionsListLabel
661
+ }, style("list")), Object.values(suggestions).reduce(function(accResults, _ref2) {
662
+ var results = _ref2.results, queryInfo = _ref2.queryInfo;
663
+ return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function(result, index) {
664
+ return renderSuggestion(result, queryInfo, accResults.length + index);
665
+ })));
666
+ }, [])), customSuggestionsContainer ? customSuggestionsContainer(suggestionsToRender) : suggestionsToRender), function() {
667
+ if (isLoading) return React__default.createElement(LoadingIndicator, {
668
+ style: style("loadingIndicator")
669
+ });
670
+ }()) : null;
651
671
  }
652
672
 
653
- function _isNativeReflectConstruct$1() {
654
- if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
655
- if (Reflect.construct.sham) return !1;
656
- if ("function" == typeof Proxy) return !0;
657
- try {
658
- return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})),
659
- !0;
660
- } catch (e) {
661
- return !1;
662
- }
663
- }
664
-
665
- var SuggestionsOverlay = function(_Component) {
666
- _inherits(SuggestionsOverlay, _Component);
667
- var _super = _createSuper$1(SuggestionsOverlay);
668
- function SuggestionsOverlay() {
669
- var _this;
670
- _classCallCheck(this, SuggestionsOverlay);
671
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
672
- return _this = _super.call.apply(_super, [ this ].concat(args)), _defineProperty(_assertThisInitialized(_this), "handleMouseEnter", function(index, ev) {
673
- _this.props.onMouseEnter && _this.props.onMouseEnter(index);
674
- }), _defineProperty(_assertThisInitialized(_this), "select", function(suggestion, queryInfo) {
675
- _this.props.onSelect(suggestion, queryInfo);
676
- }), _defineProperty(_assertThisInitialized(_this), "setUlElement", function(el) {
677
- _this.ulElement = el;
678
- }), _this;
679
- }
680
- return _createClass(SuggestionsOverlay, [ {
681
- key: "componentDidUpdate",
682
- value: function() {
683
- if (this.ulElement && !(this.ulElement.offsetHeight >= this.ulElement.scrollHeight) && this.props.scrollFocusedIntoView) {
684
- var scrollTop = this.ulElement.scrollTop, _this$ulElement$child = this.ulElement.children[this.props.focusIndex].getBoundingClientRect(), top = _this$ulElement$child.top, bottom = _this$ulElement$child.bottom, topContainer = this.ulElement.getBoundingClientRect().top;
685
- bottom = bottom - topContainer + scrollTop, (top = top - topContainer + scrollTop) < scrollTop ? this.ulElement.scrollTop = top : bottom > this.ulElement.offsetHeight && (this.ulElement.scrollTop = bottom - this.ulElement.offsetHeight);
686
- }
687
- }
688
- }, {
689
- key: "render",
690
- value: function() {
691
- var _this$props = this.props, id = _this$props.id, a11ySuggestionsListLabel = _this$props.a11ySuggestionsListLabel, isOpened = _this$props.isOpened, style = _this$props.style, onMouseDown = _this$props.onMouseDown, containerRef = _this$props.containerRef, position = _this$props.position, left = _this$props.left, right = _this$props.right, top = _this$props.top;
692
- return isOpened ? React__default.createElement("div", _extends({}, useStyles.inline({
693
- position: position || "absolute",
694
- left: left,
695
- right: right,
696
- top: top
697
- }, style), {
698
- onMouseDown: onMouseDown,
699
- ref: containerRef
700
- }), React__default.createElement("ul", _extends({
701
- ref: this.setUlElement,
702
- id: id,
703
- role: "listbox",
704
- "aria-label": a11ySuggestionsListLabel
705
- }, style("list")), this.renderSuggestions()), this.renderLoadingIndicator()) : null;
706
- }
707
- }, {
708
- key: "renderSuggestions",
709
- value: function() {
710
- var _this2 = this, customSuggestionsContainer = this.props.customSuggestionsContainer, suggestions = Object.values(this.props.suggestions).reduce(function(accResults, _ref) {
711
- var results = _ref.results, queryInfo = _ref.queryInfo;
712
- return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function(result, index) {
713
- return _this2.renderSuggestion(result, queryInfo, accResults.length + index);
714
- })));
715
- }, []);
716
- return customSuggestionsContainer ? customSuggestionsContainer(suggestions) : suggestions;
717
- }
718
- }, {
719
- key: "renderSuggestion",
720
- value: function(result, queryInfo, index) {
721
- var _this3 = this, isFocused = index === this.props.focusIndex, childIndex = queryInfo.childIndex, query = queryInfo.query, renderSuggestion = React.Children.toArray(this.props.children)[childIndex].props.renderSuggestion, ignoreAccents = this.props.ignoreAccents;
722
- return React__default.createElement(Suggestion$1, {
723
- style: this.props.style("item"),
724
- key: "".concat(childIndex, "-").concat(getID(result)),
725
- id: getSuggestionHtmlId(this.props.id, index),
726
- query: query,
727
- index: index,
728
- ignoreAccents: ignoreAccents,
729
- renderSuggestion: renderSuggestion,
730
- suggestion: result,
731
- focused: isFocused,
732
- onClick: function() {
733
- return _this3.select(result, queryInfo);
734
- },
735
- onMouseEnter: function() {
736
- return _this3.handleMouseEnter(index);
737
- }
738
- });
739
- }
740
- }, {
741
- key: "renderLoadingIndicator",
742
- value: function() {
743
- if (this.props.isLoading) return React__default.createElement(LoadingIndicator, {
744
- style: this.props.style("loadingIndicator")
745
- });
746
- }
747
- } ]), SuggestionsOverlay;
748
- }(React.Component);
749
-
750
- _defineProperty(SuggestionsOverlay, "propTypes", {
673
+ SuggestionsOverlay.propTypes = {
751
674
  id: PropTypes.string.isRequired,
752
675
  suggestions: PropTypes.object.isRequired,
753
676
  a11ySuggestionsListLabel: PropTypes.string,
@@ -761,20 +684,13 @@ _defineProperty(SuggestionsOverlay, "propTypes", {
761
684
  isOpened: PropTypes.bool.isRequired,
762
685
  onSelect: PropTypes.func,
763
686
  ignoreAccents: PropTypes.bool,
687
+ customSuggestionsContainer: PropTypes.func,
764
688
  containerRef: PropTypes.oneOfType([ PropTypes.func, PropTypes.shape({
765
689
  current: "undefined" == typeof Element ? PropTypes.any : PropTypes.instanceOf(Element)
766
- }) ]),
767
- children: PropTypes.oneOfType([ PropTypes.element, PropTypes.arrayOf(PropTypes.element) ]).isRequired
768
- }), _defineProperty(SuggestionsOverlay, "defaultProps", {
769
- suggestions: {},
770
- onSelect: function() {
771
- return null;
772
- }
773
- });
690
+ }) ])
691
+ };
774
692
 
775
- var getID = function(suggestion) {
776
- return "string" == typeof suggestion ? suggestion : suggestion.id;
777
- }, styled$2 = createDefaultStyle({
693
+ var styled$2 = createDefaultStyle({
778
694
  zIndex: 1,
779
695
  backgroundColor: "white",
780
696
  marginTop: 14,
@@ -786,7 +702,7 @@ var getID = function(suggestion) {
786
702
  }
787
703
  }), SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);
788
704
 
789
- function ownKeys(object, enumerableOnly) {
705
+ function ownKeys$1(object, enumerableOnly) {
790
706
  var keys = Object.keys(object);
791
707
  if (Object.getOwnPropertySymbols) {
792
708
  var symbols = Object.getOwnPropertySymbols(object);
@@ -797,20 +713,20 @@ function ownKeys(object, enumerableOnly) {
797
713
  return keys;
798
714
  }
799
715
 
800
- function _objectSpread(target) {
716
+ function _objectSpread$1(target) {
801
717
  for (var i = 1; i < arguments.length; i++) {
802
718
  var source = null != arguments[i] ? arguments[i] : {};
803
- i % 2 ? ownKeys(Object(source), !0).forEach(function(key) {
719
+ i % 2 ? ownKeys$1(Object(source), !0).forEach(function(key) {
804
720
  _defineProperty(target, key, source[key]);
805
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
721
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function(key) {
806
722
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
807
723
  });
808
724
  }
809
725
  return target;
810
726
  }
811
727
 
812
- function _createSuper$2(Derived) {
813
- var hasNativeReflectConstruct = _isNativeReflectConstruct$2();
728
+ function _createSuper(Derived) {
729
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
814
730
  return function() {
815
731
  var result, Super = _getPrototypeOf(Derived);
816
732
  if (hasNativeReflectConstruct) {
@@ -821,7 +737,7 @@ function _createSuper$2(Derived) {
821
737
  };
822
738
  }
823
739
 
824
- function _isNativeReflectConstruct$2() {
740
+ function _isNativeReflectConstruct() {
825
741
  if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
826
742
  if (Reflect.construct.sham) return !1;
827
743
  if ("function" == typeof Proxy) return !0;
@@ -872,7 +788,7 @@ var makeTriggerRegex = function(trigger) {
872
788
  children: PropTypes.oneOfType([ PropTypes.element, PropTypes.arrayOf(PropTypes.element) ]).isRequired
873
789
  }, MentionsInput = function(_React$Component) {
874
790
  _inherits(MentionsInput, _React$Component);
875
- var _super = _createSuper$2(MentionsInput);
791
+ var _super = _createSuper(MentionsInput);
876
792
  function MentionsInput(_props) {
877
793
  var _this;
878
794
  return _classCallCheck(this, MentionsInput), _this = _super.call(this, _props),
@@ -880,7 +796,7 @@ var makeTriggerRegex = function(trigger) {
880
796
  _this.containerElement = el;
881
797
  }), _defineProperty(_assertThisInitialized(_this), "getInputProps", function() {
882
798
  var _this$props = _this.props, readOnly = _this$props.readOnly, disabled = _this$props.disabled, style = _this$props.style;
883
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, omit(_this.props, [ "style", "classNames", "className" ], keys(propTypes))), style("input")), {}, {
799
+ return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, omit(_this.props, [ "style", "classNames", "className" ], keys(propTypes))), style("input")), {}, {
884
800
  value: _this.getPlainText(),
885
801
  onScroll: _this.updateHighlighterScroll
886
802
  }, !readOnly && !disabled && {
@@ -908,6 +824,7 @@ var makeTriggerRegex = function(trigger) {
908
824
  }, props));
909
825
  }), _defineProperty(_assertThisInitialized(_this), "renderTextarea", function(props) {
910
826
  return React__default.createElement("textarea", _extends({
827
+ autoFocus: !0,
911
828
  ref: _this.setInputRef
912
829
  }, props));
913
830
  }), _defineProperty(_assertThisInitialized(_this), "setInputRef", function(el) {
@@ -1116,7 +1033,7 @@ var makeTriggerRegex = function(trigger) {
1116
1033
  syncResult instanceof Array && _this.updateSuggestions(_this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, syncResult);
1117
1034
  }), _defineProperty(_assertThisInitialized(_this), "updateSuggestions", function(queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, results) {
1118
1035
  if (queryId === _this._queryId) {
1119
- _this.suggestions = _objectSpread(_objectSpread({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
1036
+ _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {
1120
1037
  queryInfo: {
1121
1038
  childIndex: childIndex,
1122
1039
  query: query,
@@ -1168,7 +1085,8 @@ var makeTriggerRegex = function(trigger) {
1168
1085
  selectionEnd: null,
1169
1086
  suggestions: {},
1170
1087
  caretPosition: null,
1171
- suggestionsPosition: {}
1088
+ suggestionsPosition: {},
1089
+ setSelectionAfterHandlePaste: !1
1172
1090
  }, _this;
1173
1091
  }
1174
1092
  return _createClass(MentionsInput, [ {
@@ -1183,6 +1101,8 @@ var makeTriggerRegex = function(trigger) {
1183
1101
  prevState.suggestionsPosition === this.state.suggestionsPosition && this.updateSuggestionsPosition(),
1184
1102
  this.state.setSelectionAfterMentionChange && (this.setState({
1185
1103
  setSelectionAfterMentionChange: !1
1104
+ }), this.setSelection(this.state.selectionStart, this.state.selectionEnd)), this.state.setSelectionAfterHandlePaste && (this.setState({
1105
+ setSelectionAfterHandlePaste: !1
1186
1106
  }), this.setSelection(this.state.selectionStart, this.state.selectionEnd));
1187
1107
  }
1188
1108
  }, {
@@ -1202,15 +1122,18 @@ var makeTriggerRegex = function(trigger) {
1202
1122
  key: "handlePaste",
1203
1123
  value: function(event) {
1204
1124
  if (event.target === this.inputElement && this.supportsClipboardActions(event)) {
1205
- event.preventDefault();
1206
1125
  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 = {
1207
- target: _objectSpread(_objectSpread({}, event.target), {}, {
1126
+ target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
1208
1127
  value: newValue
1209
1128
  })
1210
1129
  };
1211
1130
  this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(newValue, config));
1212
1131
  var nextPos = (findStartOfMentionInPlainText(value, config, selectionStart) || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;
1213
- this.setSelection(nextPos, nextPos);
1132
+ this.setState({
1133
+ selectionStart: nextPos,
1134
+ selectionEnd: nextPos,
1135
+ setSelectionAfterHandlePaste: !0
1136
+ });
1214
1137
  }
1215
1138
  }
1216
1139
  }, {
@@ -1237,7 +1160,7 @@ var makeTriggerRegex = function(trigger) {
1237
1160
  if (event.target === this.inputElement && this.supportsClipboardActions(event)) {
1238
1161
  event.preventDefault(), this.saveSelectionToClipboard(event);
1239
1162
  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 = {
1240
- target: _objectSpread(_objectSpread({}, event.target), {}, {
1163
+ target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {
1241
1164
  value: newPlainTextValue
1242
1165
  })
1243
1166
  };
@@ -1282,7 +1205,7 @@ var getComputedStyleLengthProp = function(forElement, propertyName) {
1282
1205
  letterSpacing: "inherit"
1283
1206
  },
1284
1207
  "&multiLine": {
1285
- input: _objectSpread({
1208
+ input: _objectSpread$1({
1286
1209
  height: "100%",
1287
1210
  bottom: 0,
1288
1211
  overflow: "hidden",