react-mentions 3.1.0 → 3.3.1

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.
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: !0
9
9
  });
10
10
 
11
- var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsumableArray")), _extends = _interopDefault(require("@babel/runtime/helpers/extends")), _objectSpread = _interopDefault(require("@babel/runtime/helpers/objectSpread")), _classCallCheck = _interopDefault(require("@babel/runtime/helpers/classCallCheck")), _createClass = _interopDefault(require("@babel/runtime/helpers/createClass")), _possibleConstructorReturn = _interopDefault(require("@babel/runtime/helpers/possibleConstructorReturn")), _getPrototypeOf = _interopDefault(require("@babel/runtime/helpers/getPrototypeOf")), _assertThisInitialized = _interopDefault(require("@babel/runtime/helpers/assertThisInitialized")), _inherits = _interopDefault(require("@babel/runtime/helpers/inherits")), _defineProperty = _interopDefault(require("@babel/runtime/helpers/defineProperty")), isEqual = _interopDefault(require("lodash/isEqual")), isNumber = _interopDefault(require("lodash/isNumber")), keys = _interopDefault(require("lodash/keys")), omit = _interopDefault(require("lodash/omit")), values = _interopDefault(require("lodash/values")), PropTypes = _interopDefault(require("prop-types")), React = require("react"), React__default = _interopDefault(React), ReactDOM = _interopDefault(require("react-dom")), substyle = require("substyle"), substyle__default = _interopDefault(substyle), invariant = _interopDefault(require("invariant")), _slicedToArray = _interopDefault(require("@babel/runtime/helpers/slicedToArray")), escapeRegex = function(str) {
11
+ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsumableArray")), _extends = _interopDefault(require("@babel/runtime/helpers/extends")), _classCallCheck = _interopDefault(require("@babel/runtime/helpers/classCallCheck")), _createClass = _interopDefault(require("@babel/runtime/helpers/createClass")), _possibleConstructorReturn = _interopDefault(require("@babel/runtime/helpers/possibleConstructorReturn")), _getPrototypeOf = _interopDefault(require("@babel/runtime/helpers/getPrototypeOf")), _assertThisInitialized = _interopDefault(require("@babel/runtime/helpers/assertThisInitialized")), _inherits = _interopDefault(require("@babel/runtime/helpers/inherits")), _defineProperty = _interopDefault(require("@babel/runtime/helpers/defineProperty")), React = require("react"), React__default = _interopDefault(React), invariant = _interopDefault(require("invariant")), _slicedToArray = _interopDefault(require("@babel/runtime/helpers/slicedToArray")), PropTypes = _interopDefault(require("prop-types")), substyle = require("substyle"), substyle__default = _interopDefault(substyle), isEqual = _interopDefault(require("lodash/isEqual")), isNumber = _interopDefault(require("lodash/isNumber")), ReactDOM = _interopDefault(require("react-dom")), omit = _interopDefault(require("lodash/omit")), keys = _interopDefault(require("lodash/keys")), values = _interopDefault(require("lodash/values")), escapeRegex = function(str) {
12
12
  return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
13
13
  }, PLACEHOLDERS = {
14
14
  id: "__id__",
@@ -124,7 +124,311 @@ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsu
124
124
  regex;
125
125
  }, makeMentionsMarkup = function(markup, id, display) {
126
126
  return markup.replace(PLACEHOLDERS.id, id).replace(PLACEHOLDERS.display, display);
127
- }, _generateComponentKey = function(usedKeys, id) {
127
+ }, lettersDiacritics = [ {
128
+ base: "A",
129
+ letters: /(A|Ⓐ|A|À|Á|Â|Ầ|Ấ|Ẫ|Ẩ|Ã|Ā|Ă|Ằ|Ắ|Ẵ|Ẳ|Ȧ|Ǡ|Ä|Ǟ|Ả|Å|Ǻ|Ǎ|Ȁ|Ȃ|Ạ|Ậ|Ặ|Ḁ|Ą|Ⱥ|Ɐ|[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F])/g
130
+ }, {
131
+ base: "AA",
132
+ letters: /(Ꜳ|[\uA732])/g
133
+ }, {
134
+ base: "AE",
135
+ letters: /(Æ|Ǽ|Ǣ|[\u00C6\u01FC\u01E2])/g
136
+ }, {
137
+ base: "AO",
138
+ letters: /(Ꜵ|[\uA734])/g
139
+ }, {
140
+ base: "AU",
141
+ letters: /(Ꜷ|[\uA736])/g
142
+ }, {
143
+ base: "AV",
144
+ letters: /(Ꜹ|Ꜻ|[\uA738\uA73A])/g
145
+ }, {
146
+ base: "AY",
147
+ letters: /(Ꜽ|[\uA73C])/g
148
+ }, {
149
+ base: "B",
150
+ letters: /(B|Ⓑ|B|Ḃ|Ḅ|Ḇ|Ƀ|Ƃ|Ɓ|[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181])/g
151
+ }, {
152
+ base: "C",
153
+ letters: /(C|Ⓒ|C|Ć|Ĉ|Ċ|Č|Ç|Ḉ|Ƈ|Ȼ|Ꜿ|[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E])/g
154
+ }, {
155
+ base: "D",
156
+ letters: /(D|Ⓓ|D|Ḋ|Ď|Ḍ|Ḑ|Ḓ|Ḏ|Đ|Ƌ|Ɗ|Ɖ|Ꝺ|Ð|[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779\u00D0])/g
157
+ }, {
158
+ base: "DZ",
159
+ letters: /(DZ|DŽ|[\u01F1\u01C4])/g
160
+ }, {
161
+ base: "Dz",
162
+ letters: /(Dz|Dž|[\u01F2\u01C5])/g
163
+ }, {
164
+ base: "E",
165
+ letters: /(E|Ⓔ|E|È|É|Ê|Ề|Ế|Ễ|Ể|Ẽ|Ē|Ḕ|Ḗ|Ĕ|Ė|Ë|Ẻ|Ě|Ȅ|Ȇ|Ẹ|Ệ|Ȩ|Ḝ|Ę|Ḙ|Ḛ|Ɛ|Ǝ|[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E])/g
166
+ }, {
167
+ base: "F",
168
+ letters: /(F|Ⓕ|F|Ḟ|Ƒ|Ꝼ|[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B])/g
169
+ }, {
170
+ base: "G",
171
+ letters: /(G|Ⓖ|G|Ǵ|Ĝ|Ḡ|Ğ|Ġ|Ǧ|Ģ|Ǥ|Ɠ|Ꞡ|Ᵹ|Ꝿ|[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E])/g
172
+ }, {
173
+ base: "H",
174
+ letters: /(H|Ⓗ|H|Ĥ|Ḣ|Ḧ|Ȟ|Ḥ|Ḩ|Ḫ|Ħ|Ⱨ|Ⱶ|Ɥ|[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D])/g
175
+ }, {
176
+ base: "I",
177
+ letters: /(I|Ⓘ|I|Ì|Í|Î|Ĩ|Ī|Ĭ|İ|Ï|Ḯ|Ỉ|Ǐ|Ȉ|Ȋ|Ị|Į|Ḭ|Ɨ|[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197])/g
178
+ }, {
179
+ base: "J",
180
+ letters: /(J|Ⓙ|J|Ĵ|Ɉ|[\u004A\u24BF\uFF2A\u0134\u0248])/g
181
+ }, {
182
+ base: "K",
183
+ letters: /(K|Ⓚ|K|Ḱ|Ǩ|Ḳ|Ķ|Ḵ|Ƙ|Ⱪ|Ꝁ|Ꝃ|Ꝅ|Ꞣ|[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2])/g
184
+ }, {
185
+ base: "L",
186
+ letters: /(L|Ⓛ|L|Ŀ|Ĺ|Ľ|Ḷ|Ḹ|Ļ|Ḽ|Ḻ|Ł|Ƚ|Ɫ|Ⱡ|Ꝉ|Ꝇ|Ꞁ|[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780])/g
187
+ }, {
188
+ base: "LJ",
189
+ letters: /(LJ|[\u01C7])/g
190
+ }, {
191
+ base: "Lj",
192
+ letters: /(Lj|[\u01C8])/g
193
+ }, {
194
+ base: "M",
195
+ letters: /(M|Ⓜ|M|Ḿ|Ṁ|Ṃ|Ɱ|Ɯ|[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C])/g
196
+ }, {
197
+ base: "N",
198
+ letters: /(N|Ⓝ|N|Ǹ|Ń|Ñ|Ṅ|Ň|Ṇ|Ņ|Ṋ|Ṉ|Ƞ|Ɲ|Ꞑ|Ꞥ|Ŋ|[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4\u014A])/g
199
+ }, {
200
+ base: "NJ",
201
+ letters: /(NJ|[\u01CA])/g
202
+ }, {
203
+ base: "Nj",
204
+ letters: /(Nj|[\u01CB])/g
205
+ }, {
206
+ base: "O",
207
+ letters: /(O|Ⓞ|O|Ò|Ó|Ô|Ồ|Ố|Ỗ|Ổ|Õ|Ṍ|Ȭ|Ṏ|Ō|Ṑ|Ṓ|Ŏ|Ȯ|Ȱ|Ö|Ȫ|Ỏ|Ő|Ǒ|Ȍ|Ȏ|Ơ|Ờ|Ớ|Ỡ|Ở|Ợ|Ọ|Ộ|Ǫ|Ǭ|Ø|Ǿ|Ɔ|Ɵ|Ꝋ|Ꝍ|[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C])/g
208
+ }, {
209
+ base: "OE",
210
+ letters: /(Œ|[\u0152])/g
211
+ }, {
212
+ base: "OI",
213
+ letters: /(Ƣ|[\u01A2])/g
214
+ }, {
215
+ base: "OO",
216
+ letters: /(Ꝏ|[\uA74E])/g
217
+ }, {
218
+ base: "OU",
219
+ letters: /(Ȣ|[\u0222])/g
220
+ }, {
221
+ base: "P",
222
+ letters: /(P|Ⓟ|P|Ṕ|Ṗ|Ƥ|Ᵽ|Ꝑ|Ꝓ|Ꝕ|[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754])/g
223
+ }, {
224
+ base: "Q",
225
+ letters: /(Q|Ⓠ|Q|Ꝗ|Ꝙ|Ɋ|[\u0051\u24C6\uFF31\uA756\uA758\u024A])/g
226
+ }, {
227
+ base: "R",
228
+ letters: /(R|Ⓡ|R|Ŕ|Ṙ|Ř|Ȑ|Ȓ|Ṛ|Ṝ|Ŗ|Ṟ|Ɍ|Ɽ|Ꝛ|Ꞧ|Ꞃ|[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782])/g
229
+ }, {
230
+ base: "S",
231
+ letters: /(S|Ⓢ|S|ẞ|Ś|Ṥ|Ŝ|Ṡ|Š|Ṧ|Ṣ|Ṩ|Ș|Ş|Ȿ|Ꞩ|Ꞅ|[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784])/g
232
+ }, {
233
+ base: "T",
234
+ letters: /(T|Ⓣ|T|Ṫ|Ť|Ṭ|Ț|Ţ|Ṱ|Ṯ|Ŧ|Ƭ|Ʈ|Ⱦ|Ꞇ|[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786])/g
235
+ }, {
236
+ base: "TH",
237
+ letters: /(Þ|[\u00DE])/g
238
+ }, {
239
+ base: "TZ",
240
+ letters: /(Ꜩ|[\uA728])/g
241
+ }, {
242
+ base: "U",
243
+ letters: /(U|Ⓤ|U|Ù|Ú|Û|Ũ|Ṹ|Ū|Ṻ|Ŭ|Ü|Ǜ|Ǘ|Ǖ|Ǚ|Ủ|Ů|Ű|Ǔ|Ȕ|Ȗ|Ư|Ừ|Ứ|Ữ|Ử|Ự|Ụ|Ṳ|Ų|Ṷ|Ṵ|Ʉ|[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244])/g
244
+ }, {
245
+ base: "V",
246
+ letters: /(V|Ⓥ|V|Ṽ|Ṿ|Ʋ|Ꝟ|Ʌ|[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245])/g
247
+ }, {
248
+ base: "VY",
249
+ letters: /(Ꝡ|[\uA760])/g
250
+ }, {
251
+ base: "W",
252
+ letters: /(W|Ⓦ|W|Ẁ|Ẃ|Ŵ|Ẇ|Ẅ|Ẉ|Ⱳ|[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72])/g
253
+ }, {
254
+ base: "X",
255
+ letters: /(X|Ⓧ|X|Ẋ|Ẍ|[\u0058\u24CD\uFF38\u1E8A\u1E8C])/g
256
+ }, {
257
+ base: "Y",
258
+ letters: /(Y|Ⓨ|Y|Ỳ|Ý|Ŷ|Ỹ|Ȳ|Ẏ|Ÿ|Ỷ|Ỵ|Ƴ|Ɏ|Ỿ|[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE])/g
259
+ }, {
260
+ base: "Z",
261
+ letters: /(Z|Ⓩ|Z|Ź|Ẑ|Ż|Ž|Ẓ|Ẕ|Ƶ|Ȥ|Ɀ|Ⱬ|Ꝣ|[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762])/g
262
+ }, {
263
+ base: "a",
264
+ letters: /(a|ⓐ|a|ẚ|à|á|â|ầ|ấ|ẫ|ẩ|ã|ā|ă|ằ|ắ|ẵ|ẳ|ȧ|ǡ|ä|ǟ|ả|å|ǻ|ǎ|ȁ|ȃ|ạ|ậ|ặ|ḁ|ą|ⱥ|ɐ|[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250])/g
265
+ }, {
266
+ base: "aa",
267
+ letters: /(ꜳ|[\uA733])/g
268
+ }, {
269
+ base: "ae",
270
+ letters: /(æ|ǽ|ǣ|[\u00E6\u01FD\u01E3])/g
271
+ }, {
272
+ base: "ao",
273
+ letters: /(ꜵ|[\uA735])/g
274
+ }, {
275
+ base: "au",
276
+ letters: /(ꜷ|[\uA737])/g
277
+ }, {
278
+ base: "av",
279
+ letters: /(ꜹ|ꜻ|[\uA739\uA73B])/g
280
+ }, {
281
+ base: "ay",
282
+ letters: /(ꜽ|[\uA73D])/g
283
+ }, {
284
+ base: "b",
285
+ letters: /(b|ⓑ|b|ḃ|ḅ|ḇ|ƀ|ƃ|ɓ|[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253])/g
286
+ }, {
287
+ base: "c",
288
+ letters: /(c|ⓒ|c|ć|ĉ|ċ|č|ç|ḉ|ƈ|ȼ|ꜿ|ↄ|[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184])/g
289
+ }, {
290
+ base: "d",
291
+ letters: /(d|ⓓ|d|ḋ|ď|ḍ|ḑ|ḓ|ḏ|đ|ƌ|ɖ|ɗ|ꝺ|ð|[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A\u00F0])/g
292
+ }, {
293
+ base: "dz",
294
+ letters: /(dz|dž|[\u01F3\u01C6])/g
295
+ }, {
296
+ base: "e",
297
+ letters: /(e|ⓔ|e|è|é|ê|ề|ế|ễ|ể|ẽ|ē|ḕ|ḗ|ĕ|ė|ë|ẻ|ě|ȅ|ȇ|ẹ|ệ|ȩ|ḝ|ę|ḙ|ḛ|ɇ|ɛ|ǝ|[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD])/g
298
+ }, {
299
+ base: "f",
300
+ letters: /(f|ⓕ|f|ḟ|ƒ|ꝼ|[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C])/g
301
+ }, {
302
+ base: "g",
303
+ letters: /(g|ⓖ|g|ǵ|ĝ|ḡ|ğ|ġ|ǧ|ģ|ǥ|ɠ|ꞡ|ᵹ|ꝿ|[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F])/g
304
+ }, {
305
+ base: "h",
306
+ letters: /(h|ⓗ|h|ĥ|ḣ|ḧ|ȟ|ḥ|ḩ|ḫ|ẖ|ħ|ⱨ|ⱶ|ɥ|[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265])/g
307
+ }, {
308
+ base: "hv",
309
+ letters: /(ƕ|[\u0195])/g
310
+ }, {
311
+ base: "i",
312
+ letters: /(i|ⓘ|i|ì|í|î|ĩ|ī|ĭ|ï|ḯ|ỉ|ǐ|ȉ|ȋ|ị|į|ḭ|ɨ|ı|[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131])/g
313
+ }, {
314
+ base: "ij",
315
+ letters: /(ij|[\u0133])/g
316
+ }, {
317
+ base: "j",
318
+ letters: /(j|ⓙ|j|ĵ|ǰ|ɉ|[\u006A\u24D9\uFF4A\u0135\u01F0\u0249])/g
319
+ }, {
320
+ base: "k",
321
+ letters: /(k|ⓚ|k|ḱ|ǩ|ḳ|ķ|ḵ|ƙ|ⱪ|ꝁ|ꝃ|ꝅ|ꞣ|[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3])/g
322
+ }, {
323
+ base: "l",
324
+ letters: /(l|ⓛ|l|ŀ|ĺ|ľ|ḷ|ḹ|ļ|ḽ|ḻ|ł|ƚ|ɫ|ⱡ|ꝉ|ꞁ|ꝇ|[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u0142\u019A\u026B\u2C61\uA749\uA781\uA747])/g
325
+ }, {
326
+ base: "lj",
327
+ letters: /(lj|[\u01C9])/g
328
+ }, {
329
+ base: "m",
330
+ letters: /(m|ⓜ|m|ḿ|ṁ|ṃ|ɱ|ɯ|[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F])/g
331
+ }, {
332
+ base: "n",
333
+ letters: /(n|ⓝ|n|ǹ|ń|ñ|ṅ|ň|ṇ|ņ|ṋ|ṉ|ƞ|ɲ|ʼn|ꞑ|ꞥ|ŋ|[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5\u014B])/g
334
+ }, {
335
+ base: "nj",
336
+ letters: /(nj|[\u01CC])/g
337
+ }, {
338
+ base: "o",
339
+ letters: /(o|ⓞ|o|ò|ó|ô|ồ|ố|ỗ|ổ|õ|ṍ|ȭ|ṏ|ō|ṑ|ṓ|ŏ|ȯ|ȱ|ö|ȫ|ỏ|ő|ǒ|ȍ|ȏ|ơ|ờ|ớ|ỡ|ở|ợ|ọ|ộ|ǫ|ǭ|ø|ǿ|ɔ|ꝋ|ꝍ|ɵ|[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275])/g
340
+ }, {
341
+ base: "oe",
342
+ letters: /(œ|[\u0153])/g
343
+ }, {
344
+ base: "oi",
345
+ letters: /(ƣ|[\u01A3])/g
346
+ }, {
347
+ base: "ou",
348
+ letters: /(ȣ|[\u0223])/g
349
+ }, {
350
+ base: "oo",
351
+ letters: /(ꝏ|[\uA74F])/g
352
+ }, {
353
+ base: "p",
354
+ letters: /(p|ⓟ|p|ṕ|ṗ|ƥ|ᵽ|ꝑ|ꝓ|ꝕ|[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755])/g
355
+ }, {
356
+ base: "q",
357
+ letters: /(q|ⓠ|q|ɋ|ꝗ|ꝙ|[\u0071\u24E0\uFF51\u024B\uA757\uA759])/g
358
+ }, {
359
+ base: "r",
360
+ letters: /(r|ⓡ|r|ŕ|ṙ|ř|ȑ|ȓ|ṛ|ṝ|ŗ|ṟ|ɍ|ɽ|ꝛ|ꞧ|ꞃ|[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783])/g
361
+ }, {
362
+ base: "s",
363
+ letters: /(s|ⓢ|s|ś|ṥ|ŝ|ṡ|š|ṧ|ṣ|ṩ|ș|ş|ȿ|ꞩ|ꞅ|ẛ|ſ|[\u0073\u24E2\uFF53\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B\u017F])/g
364
+ }, {
365
+ base: "ss",
366
+ letters: /(ß|[\u00DF])/g
367
+ }, {
368
+ base: "t",
369
+ letters: /(t|ⓣ|t|ṫ|ẗ|ť|ṭ|ț|ţ|ṱ|ṯ|ŧ|ƭ|ʈ|ⱦ|ꞇ|[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787])/g
370
+ }, {
371
+ base: "th",
372
+ letters: /(þ|[\u00FE])/g
373
+ }, {
374
+ base: "tz",
375
+ letters: /(ꜩ|[\uA729])/g
376
+ }, {
377
+ base: "u",
378
+ letters: /(u|ⓤ|u|ù|ú|û|ũ|ṹ|ū|ṻ|ŭ|ü|ǜ|ǘ|ǖ|ǚ|ủ|ů|ű|ǔ|ȕ|ȗ|ư|ừ|ứ|ữ|ử|ự|ụ|ṳ|ų|ṷ|ṵ|ʉ|[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289])/g
379
+ }, {
380
+ base: "v",
381
+ letters: /(v|ⓥ|v|ṽ|ṿ|ʋ|ꝟ|ʌ|[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C])/g
382
+ }, {
383
+ base: "vy",
384
+ letters: /(ꝡ|[\uA761])/g
385
+ }, {
386
+ base: "w",
387
+ letters: /(w|ⓦ|w|ẁ|ẃ|ŵ|ẇ|ẅ|ẘ|ẉ|ⱳ|[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73])/g
388
+ }, {
389
+ base: "x",
390
+ letters: /(x|ⓧ|x|ẋ|ẍ|[\u0078\u24E7\uFF58\u1E8B\u1E8D])/g
391
+ }, {
392
+ base: "y",
393
+ letters: /(y|ⓨ|y|ỳ|ý|ŷ|ỹ|ȳ|ẏ|ÿ|ỷ|ẙ|ỵ|ƴ|ɏ|ỿ|[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF])/g
394
+ }, {
395
+ base: "z",
396
+ letters: /(z|ⓩ|z|ź|ẑ|ż|ž|ẓ|ẕ|ƶ|ȥ|ɀ|ⱬ|ꝣ|[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763])/g
397
+ } ], removeAccents = function(str) {
398
+ var formattedStr = str;
399
+ return lettersDiacritics.forEach(function(letterDiacritics) {
400
+ formattedStr = formattedStr.replace(letterDiacritics.letters, letterDiacritics.base);
401
+ }), formattedStr;
402
+ }, normalizeString = function(str) {
403
+ return removeAccents(str).toLowerCase();
404
+ }, getSubstringIndex = function(str, substr, ignoreAccents) {
405
+ return ignoreAccents ? normalizeString(str).indexOf(normalizeString(substr)) : str.toLowerCase().indexOf(substr.toLowerCase());
406
+ };
407
+
408
+ function ownKeys(object, enumerableOnly) {
409
+ var keys = Object.keys(object);
410
+ if (Object.getOwnPropertySymbols) {
411
+ var symbols = Object.getOwnPropertySymbols(object);
412
+ enumerableOnly && (symbols = symbols.filter(function(sym) {
413
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
414
+ })), keys.push.apply(keys, symbols);
415
+ }
416
+ return keys;
417
+ }
418
+
419
+ function _objectSpread(target) {
420
+ for (var i = 1; i < arguments.length; i++) {
421
+ var source = null != arguments[i] ? arguments[i] : {};
422
+ i % 2 ? ownKeys(source, !0).forEach(function(key) {
423
+ _defineProperty(target, key, source[key]);
424
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(source).forEach(function(key) {
425
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
426
+ });
427
+ }
428
+ return target;
429
+ }
430
+
431
+ var _generateComponentKey = function(usedKeys, id) {
128
432
  return usedKeys.hasOwnProperty(id) ? usedKeys[id]++ : usedKeys[id] = 0, id + "_" + usedKeys[id];
129
433
  }, Highlighter = function(_Component) {
130
434
  function Highlighter() {
@@ -174,7 +478,7 @@ var _toConsumableArray = _interopDefault(require("@babel/runtime/helpers/toConsu
174
478
  substringComponentKey++;
175
479
  }), components.push(" "), components !== resultComponents && resultComponents.push(this.renderHighlighterCaret(components)),
176
480
  React__default.createElement("div", _extends({}, style, {
177
- style: _objectSpread({}, inputStyle, style.style)
481
+ style: _objectSpread({}, inputStyle, {}, style.style)
178
482
  }), resultComponents);
179
483
  }
180
484
  }, {
@@ -267,7 +571,7 @@ var styled = substyle.defaultStyle({
267
571
  }, {
268
572
  key: "renderHighlightedDisplay",
269
573
  value: function(display) {
270
- var _this$props2 = this.props, query = _this$props2.query, style = _this$props2.style, i = display.toLowerCase().indexOf(query.toLowerCase());
574
+ var _this$props2 = this.props, ignoreAccents = _this$props2.ignoreAccents, query = _this$props2.query, style = _this$props2.style, i = getSubstringIndex(display, query, ignoreAccents);
271
575
  return -1 === i ? React__default.createElement("span", style("display"), display) : React__default.createElement("span", style("display"), display.substring(0, i), React__default.createElement("b", style("highlight"), display.substring(i, i + query.length)), display.substring(i + query.length));
272
576
  }
273
577
  } ]), Suggestion;
@@ -277,6 +581,7 @@ _defineProperty(Suggestion, "propTypes", {
277
581
  id: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]).isRequired,
278
582
  query: PropTypes.string.isRequired,
279
583
  index: PropTypes.number.isRequired,
584
+ ignoreAccents: PropTypes.bool,
280
585
  suggestion: PropTypes.oneOfType([ PropTypes.string, PropTypes.shape({
281
586
  id: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]).isRequired,
282
587
  display: PropTypes.string
@@ -298,7 +603,32 @@ function LoadingIndicator(_ref) {
298
603
  return React__default.createElement("div", style, React__default.createElement("div", spinnerStyle, React__default.createElement("div", spinnerStyle([ "element", "element1" ])), React__default.createElement("div", spinnerStyle([ "element", "element2" ])), React__default.createElement("div", spinnerStyle([ "element", "element3" ])), React__default.createElement("div", spinnerStyle([ "element", "element4" ])), React__default.createElement("div", spinnerStyle([ "element", "element5" ]))));
299
604
  }
300
605
 
301
- var LoadingIndicator$1 = substyle__default(LoadingIndicator), SuggestionsOverlay = function(_Component) {
606
+ var LoadingIndicator$1 = substyle__default(LoadingIndicator);
607
+
608
+ function ownKeys$1(object, enumerableOnly) {
609
+ var keys = Object.keys(object);
610
+ if (Object.getOwnPropertySymbols) {
611
+ var symbols = Object.getOwnPropertySymbols(object);
612
+ enumerableOnly && (symbols = symbols.filter(function(sym) {
613
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
614
+ })), keys.push.apply(keys, symbols);
615
+ }
616
+ return keys;
617
+ }
618
+
619
+ function _objectSpread$1(target) {
620
+ for (var i = 1; i < arguments.length; i++) {
621
+ var source = null != arguments[i] ? arguments[i] : {};
622
+ i % 2 ? ownKeys$1(source, !0).forEach(function(key) {
623
+ _defineProperty(target, key, source[key]);
624
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(source).forEach(function(key) {
625
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
626
+ });
627
+ }
628
+ return target;
629
+ }
630
+
631
+ var SuggestionsOverlay = function(_Component) {
302
632
  function SuggestionsOverlay() {
303
633
  return _classCallCheck(this, SuggestionsOverlay), _possibleConstructorReturn(this, _getPrototypeOf(SuggestionsOverlay).apply(this, arguments));
304
634
  }
@@ -336,13 +666,14 @@ var LoadingIndicator$1 = substyle__default(LoadingIndicator), SuggestionsOverlay
336
666
  }, {
337
667
  key: "renderSuggestion",
338
668
  value: function(result, queryInfo, index) {
339
- var _this3 = this, id = this.getID(result), isFocused = index === this.props.focusIndex, childIndex = queryInfo.childIndex, query = queryInfo.query, renderSuggestion = React.Children.toArray(this.props.children)[childIndex].props.renderSuggestion;
669
+ var _this3 = this, id = this.getID(result), 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;
340
670
  return React__default.createElement(Suggestion$1, {
341
671
  style: this.props.style("item"),
342
672
  key: "".concat(childIndex, "-").concat(id),
343
673
  id: id,
344
674
  query: query,
345
675
  index: index,
676
+ ignoreAccents: ignoreAccents,
346
677
  renderSuggestion: renderSuggestion,
347
678
  suggestion: result,
348
679
  focused: isFocused,
@@ -385,6 +716,7 @@ _defineProperty(SuggestionsOverlay, "propTypes", {
385
716
  scrollFocusedIntoView: PropTypes.bool,
386
717
  isLoading: PropTypes.bool,
387
718
  onSelect: PropTypes.func,
719
+ ignoreAccents: PropTypes.bool,
388
720
  children: PropTypes.oneOfType([ PropTypes.element, PropTypes.arrayOf(PropTypes.element) ]).isRequired
389
721
  }), _defineProperty(SuggestionsOverlay, "defaultProps", {
390
722
  suggestions: {},
@@ -394,29 +726,54 @@ _defineProperty(SuggestionsOverlay, "propTypes", {
394
726
  });
395
727
 
396
728
  var styled$2 = substyle.defaultStyle(function(_ref2) {
397
- var position = _ref2.position;
398
- return _objectSpread({
729
+ return _objectSpread$1({
399
730
  position: "absolute",
400
731
  zIndex: 1,
401
732
  backgroundColor: "white",
402
733
  marginTop: 14,
403
734
  minWidth: 100
404
- }, position, {
735
+ }, _ref2.position, {
405
736
  list: {
406
737
  margin: 0,
407
738
  padding: 0,
408
739
  listStyleType: "none"
409
740
  }
410
741
  });
411
- }), SuggestionsOverlay$1 = styled$2(SuggestionsOverlay), makeTriggerRegex = function(trigger) {
742
+ }), SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);
743
+
744
+ function ownKeys$2(object, enumerableOnly) {
745
+ var keys = Object.keys(object);
746
+ if (Object.getOwnPropertySymbols) {
747
+ var symbols = Object.getOwnPropertySymbols(object);
748
+ enumerableOnly && (symbols = symbols.filter(function(sym) {
749
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
750
+ })), keys.push.apply(keys, symbols);
751
+ }
752
+ return keys;
753
+ }
754
+
755
+ function _objectSpread$2(target) {
756
+ for (var i = 1; i < arguments.length; i++) {
757
+ var source = null != arguments[i] ? arguments[i] : {};
758
+ i % 2 ? ownKeys$2(source, !0).forEach(function(key) {
759
+ _defineProperty(target, key, source[key]);
760
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(source).forEach(function(key) {
761
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
762
+ });
763
+ }
764
+ return target;
765
+ }
766
+
767
+ var makeTriggerRegex = function(trigger) {
412
768
  var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
413
769
  if (trigger instanceof RegExp) return trigger;
414
770
  var allowSpaceInQuery = options.allowSpaceInQuery, escapedTriggerChar = escapeRegex(trigger);
415
771
  return new RegExp("(?:^|\\s)(".concat(escapedTriggerChar, "([^").concat(allowSpaceInQuery ? "" : "\\s").concat(escapedTriggerChar, "]*))$"));
416
- }, getDataProvider = function(data) {
772
+ }, getDataProvider = function(data, ignoreAccents) {
417
773
  return data instanceof Array ? function(query, callback) {
418
774
  for (var results = [], i = 0, l = data.length; i < l; ++i) {
419
- (data[i].display || data[i].id).toLowerCase().indexOf(query.toLowerCase()) >= 0 && results.push(data[i]);
775
+ var display = data[i].display || data[i].id;
776
+ getSubstringIndex(display, query, ignoreAccents) >= 0 && results.push(data[i]);
420
777
  }
421
778
  return results;
422
779
  } : data;
@@ -430,6 +787,8 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
430
787
  singleLine: PropTypes.bool,
431
788
  allowSpaceInQuery: PropTypes.bool,
432
789
  EXPERIMENTAL_cutCopyPaste: PropTypes.bool,
790
+ allowSuggestionsAboveCursor: PropTypes.bool,
791
+ ignoreAccents: PropTypes.bool,
433
792
  value: PropTypes.string,
434
793
  onKeyDown: PropTypes.func,
435
794
  onSelect: PropTypes.func,
@@ -445,8 +804,8 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
445
804
  var _this;
446
805
  return _classCallCheck(this, MentionsInput), _this = _possibleConstructorReturn(this, _getPrototypeOf(MentionsInput).call(this, _props)),
447
806
  _defineProperty(_assertThisInitialized(_this), "getInputProps", function(isTextarea) {
448
- var _this$props = _this.props, readOnly = _this$props.readOnly, disabled = _this$props.disabled, style = _this$props.style, props = omit(_this.props, "style", keys(propTypes));
449
- return _objectSpread({}, props, style("input"), {
807
+ var _this$props = _this.props, readOnly = _this$props.readOnly, disabled = _this$props.disabled, style = _this$props.style;
808
+ return _objectSpread$2({}, omit(_this.props, "style", keys(propTypes)), {}, style("input"), {
450
809
  value: _this.getPlainText()
451
810
  }, !readOnly && !disabled && {
452
811
  onChange: _this.handleChange,
@@ -492,7 +851,8 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
492
851
  scrollFocusedIntoView: !1
493
852
  });
494
853
  },
495
- isLoading: _this.isLoading()
854
+ isLoading: _this.isLoading(),
855
+ ignoreAccents: _this.props.ignoreAccents
496
856
  }, _this.props.children);
497
857
  return _this.props.suggestionsPortalHost ? ReactDOM.createPortal(suggestionsNode, _this.props.suggestionsPortalHost) : suggestionsNode;
498
858
  }), _defineProperty(_assertThisInitialized(_this), "renderHighlighter", function(inputStyle) {
@@ -602,27 +962,26 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
602
962
  }), _defineProperty(_assertThisInitialized(_this), "handleSuggestionsMouseDown", function(ev) {
603
963
  _this._suggestionsMouseDown = !0;
604
964
  }), _defineProperty(_assertThisInitialized(_this), "updateSuggestionsPosition", function() {
605
- var caretPosition = _this.state.caretPosition;
965
+ var caretPosition = _this.state.caretPosition, _this$props5 = _this.props, suggestionsPortalHost = _this$props5.suggestionsPortalHost, allowSuggestionsAboveCursor = _this$props5.allowSuggestionsAboveCursor;
606
966
  if (caretPosition && _this.suggestionsRef) {
607
- var suggestions = ReactDOM.findDOMNode(_this.suggestionsRef), highlighter = ReactDOM.findDOMNode(_this.highlighterRef);
967
+ var suggestions = ReactDOM.findDOMNode(_this.suggestionsRef), highlighter = ReactDOM.findDOMNode(_this.highlighterRef), caretOffsetParentRect = highlighter.getBoundingClientRect(), caretHeight = getComputedStyleLengthProp(highlighter, "font-size"), viewportRelative = {
968
+ left: caretOffsetParentRect.left + caretPosition.left,
969
+ top: caretOffsetParentRect.top + caretPosition.top + caretHeight
970
+ }, viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
608
971
  if (suggestions) {
609
972
  var position = {};
610
- if (_this.props.suggestionsPortalHost) {
611
- var caretOffsetParentRect = highlighter.getBoundingClientRect(), caretHeight = getComputedStyleLengthProp(highlighter, "font-size"), viewportRelative = {
612
- left: caretOffsetParentRect.left + caretPosition.left,
613
- top: caretOffsetParentRect.top + caretPosition.top + caretHeight
614
- };
973
+ if (suggestionsPortalHost) {
615
974
  position.position = "fixed";
616
- var left = viewportRelative.left;
617
- position.top = viewportRelative.top, left -= getComputedStyleLengthProp(suggestions, "margin-left"),
618
- position.top -= getComputedStyleLengthProp(suggestions, "margin-top"), left -= highlighter.scrollLeft,
619
- position.top -= highlighter.scrollTop;
975
+ var left = viewportRelative.left, top = viewportRelative.top;
976
+ left -= getComputedStyleLengthProp(suggestions, "margin-left"), top -= getComputedStyleLengthProp(suggestions, "margin-top"),
977
+ left -= highlighter.scrollLeft, top -= highlighter.scrollTop;
620
978
  var viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
621
- left + suggestions.offsetWidth > viewportWidth ? position.left = Math.max(0, viewportWidth - suggestions.offsetWidth) : position.left = left;
979
+ left + suggestions.offsetWidth > viewportWidth ? position.left = Math.max(0, viewportWidth - suggestions.offsetWidth) : position.left = left,
980
+ allowSuggestionsAboveCursor && top + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < top - caretHeight ? position.top = Math.max(0, top - suggestions.offsetHeight - caretHeight) : position.top = top;
622
981
  } else {
623
- var _left = caretPosition.left - highlighter.scrollLeft;
982
+ var _left = caretPosition.left - highlighter.scrollLeft, _top = caretPosition.top - highlighter.scrollTop;
624
983
  _left + suggestions.offsetWidth > _this.containerRef.offsetWidth ? position.right = 0 : position.left = _left,
625
- position.top = caretPosition.top - highlighter.scrollTop;
984
+ allowSuggestionsAboveCursor && viewportRelative.top - highlighter.scrollTop + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < caretOffsetParentRect.top - caretHeight - highlighter.scrollTop ? position.top = _top - suggestions.offsetHeight - caretHeight : position.top = _top;
626
985
  }
627
986
  isEqual(position, _this.state.suggestionsPosition) || _this.setState({
628
987
  suggestionsPosition: position
@@ -671,11 +1030,11 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
671
1030
  focusIndex: 0
672
1031
  });
673
1032
  }), _defineProperty(_assertThisInitialized(_this), "queryData", function(query, childIndex, querySequenceStart, querySequenceEnd, plainTextValue) {
674
- var mentionChild = React.Children.toArray(_this.props.children)[childIndex], syncResult = getDataProvider(mentionChild.props.data)(query, _this.updateSuggestions.bind(null, _this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue));
1033
+ var _this$props6 = _this.props, children = _this$props6.children, ignoreAccents = _this$props6.ignoreAccents, mentionChild = React.Children.toArray(children)[childIndex], syncResult = getDataProvider(mentionChild.props.data, ignoreAccents)(query, _this.updateSuggestions.bind(null, _this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue));
675
1034
  syncResult instanceof Array && _this.updateSuggestions(_this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, syncResult);
676
1035
  }), _defineProperty(_assertThisInitialized(_this), "updateSuggestions", function(queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, results) {
677
1036
  if (queryId === _this._queryId) {
678
- _this.suggestions = _objectSpread({}, _this.suggestions, _defineProperty({}, childIndex, {
1037
+ _this.suggestions = _objectSpread$2({}, _this.suggestions, _defineProperty({}, childIndex, {
679
1038
  queryInfo: {
680
1039
  childIndex: childIndex,
681
1040
  query: query,
@@ -761,10 +1120,10 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
761
1120
  }, {
762
1121
  key: "handlePaste",
763
1122
  value: function(event) {
764
- if (event.target === this.inputRef) {
1123
+ if (event.target === this.inputRef && this.supportsClipboardActions(event)) {
765
1124
  event.preventDefault();
766
- var _this$state3 = this.state, selectionStart = _this$state3.selectionStart, selectionEnd = _this$state3.selectionEnd, _this$props5 = this.props, value = _this$props5.value, children = _this$props5.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), newPlainTextValue = getPlainText(newValue, config), eventMock = {
767
- target: _objectSpread({}, event.target, {
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 = {
1126
+ target: _objectSpread$2({}, event.target, {
768
1127
  value: newValue
769
1128
  })
770
1129
  };
@@ -774,22 +1133,28 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
774
1133
  }, {
775
1134
  key: "saveSelectionToClipboard",
776
1135
  value: function(event) {
777
- var _this$state4 = this.state, selectionStart = _this$state4.selectionStart, selectionEnd = _this$state4.selectionEnd, _this$props6 = this.props, children = _this$props6.children, value = _this$props6.value, config = readConfigFromChildren(children), markupStartIndex = mapPlainTextIndex(value, config, selectionStart, "START"), markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, "END");
1136
+ var _this$state4 = this.state, selectionStart = _this$state4.selectionStart, selectionEnd = _this$state4.selectionEnd, _this$props8 = this.props, children = _this$props8.children, value = _this$props8.value, config = readConfigFromChildren(children), markupStartIndex = mapPlainTextIndex(value, config, selectionStart, "START"), markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, "END");
778
1137
  event.clipboardData.setData("text/plain", event.target.value.slice(selectionStart, selectionEnd)),
779
1138
  event.clipboardData.setData("text/react-mentions", value.slice(markupStartIndex, markupEndIndex));
780
1139
  }
1140
+ }, {
1141
+ key: "supportsClipboardActions",
1142
+ value: function(event) {
1143
+ return !!event.clipboardData;
1144
+ }
781
1145
  }, {
782
1146
  key: "handleCopy",
783
1147
  value: function(event) {
784
- event.target === this.inputRef && (event.preventDefault(), this.saveSelectionToClipboard(event));
1148
+ event.target === this.inputRef && this.supportsClipboardActions(event) && (event.preventDefault(),
1149
+ this.saveSelectionToClipboard(event));
785
1150
  }
786
1151
  }, {
787
1152
  key: "handleCut",
788
1153
  value: function(event) {
789
- if (event.target === this.inputRef) {
1154
+ if (event.target === this.inputRef && this.supportsClipboardActions(event)) {
790
1155
  event.preventDefault(), this.saveSelectionToClipboard(event);
791
- var _this$state5 = this.state, selectionStart = _this$state5.selectionStart, selectionEnd = _this$state5.selectionEnd, _this$props7 = this.props, children = _this$props7.children, value = _this$props7.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 = {
792
- target: _objectSpread({}, event.target, {
1156
+ var _this$state5 = this.state, selectionStart = _this$state5.selectionStart, selectionEnd = _this$state5.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 = {
1157
+ target: _objectSpread$2({}, event.target, {
793
1158
  value: newPlainTextValue
794
1159
  })
795
1160
  };
@@ -800,7 +1165,9 @@ var styled$2 = substyle.defaultStyle(function(_ref2) {
800
1165
  }(React__default.Component);
801
1166
 
802
1167
  _defineProperty(MentionsInput, "propTypes", propTypes), _defineProperty(MentionsInput, "defaultProps", {
1168
+ ignoreAccents: !1,
803
1169
  singleLine: !1,
1170
+ allowSuggestionsAboveCursor: !1,
804
1171
  onKeyDown: function() {
805
1172
  return null;
806
1173
  },
@@ -822,14 +1189,16 @@ var getComputedStyleLengthProp = function(forElement, propertyName) {
822
1189
  display: "block",
823
1190
  position: "absolute",
824
1191
  top: 0,
1192
+ left: 0,
825
1193
  boxSizing: "border-box",
826
1194
  backgroundColor: "transparent",
827
1195
  width: "inherit",
828
1196
  fontFamily: "inherit",
829
- fontSize: "inherit"
1197
+ fontSize: "inherit",
1198
+ letterSpacing: "inherit"
830
1199
  },
831
1200
  "&multiLine": {
832
- input: _objectSpread({
1201
+ input: _objectSpread$2({
833
1202
  width: "100%",
834
1203
  height: "100%",
835
1204
  bottom: 0,