1
0
mirror of https://github.com/flarum/core.git synced 2025-08-08 09:26:34 +02:00

Update dependencies

This commit is contained in:
Toby Zerner
2017-07-08 21:49:55 +09:30
parent c4f91cc462
commit c43a940dd8

View File

@@ -201,116 +201,114 @@ System.register('flarum/emoji/addComposerAutocomplete', ['flarum/extend', 'flaru
dropdown.active = false; dropdown.active = false;
if (emojiStart) { if (emojiStart) {
(function () { typed = value.substring(emojiStart, cursor).toLowerCase();
typed = value.substring(emojiStart, cursor).toLowerCase();
var makeSuggestion = function makeSuggestion(key) { var makeSuggestion = function makeSuggestion(key) {
var code = ':' + key + ':'; var code = ':' + key + ':';
var imageName = emojiMap[key]; var imageName = emojiMap[key];
return m( return m(
'button', 'button',
{ {
key: key, key: key,
onclick: function onclick() { onclick: function onclick() {
return applySuggestion(code); return applySuggestion(code);
}, },
onmouseenter: function onmouseenter() { onmouseenter: function onmouseenter() {
dropdown.setIndex($(this).parent().index()); dropdown.setIndex($(this).parent().index());
} }, } },
m('img', { alt: code, 'class': 'emoji', draggable: 'false', src: '//cdn.jsdelivr.net/emojione/assets/png/' + imageName + '.png' }), m('img', { alt: code, 'class': 'emoji', draggable: 'false', src: '//cdn.jsdelivr.net/emojione/assets/png/' + imageName + '.png' }),
key key
); );
};
var buildSuggestions = function buildSuggestions() {
var suggestions = [];
var similarEmoji = [];
// Build a regular expression to do a fuzzy match of the given input string
var fuzzyRegexp = function fuzzyRegexp(str) {
var reEscape = new RegExp('\\(([' + '+.*?[]{}()^$|\\'.replace(/(.)/g, '\\$1') + '])\\)', 'g');
return new RegExp('(.*)' + str.toLowerCase().replace(/(.)/g, '($1)(.*?)').replace(reEscape, '(\\$1)') + '$', 'i');
};
var regTyped = fuzzyRegexp(typed);
var maxSuggestions = 7;
var findMatchingEmojis = function findMatchingEmojis(matcher) {
for (var _i = 0; _i < emojiKeys.length && maxSuggestions > 0; _i++) {
var curEmoji = emojiKeys[_i];
if (matcher(curEmoji) && similarEmoji.indexOf(curEmoji) === -1) {
--maxSuggestions;
similarEmoji.push(emojiKeys[_i]);
}
}
}; };
var buildSuggestions = function buildSuggestions() { // First, try to find all emojis starting with the given string
var suggestions = []; findMatchingEmojis(function (emoji) {
var similarEmoji = []; return emoji.indexOf(typed) === 0;
});
// Build a regular expression to do a fuzzy match of the given input string // If there are still suggestions left, try for some fuzzy matches
var fuzzyRegexp = function fuzzyRegexp(str) { findMatchingEmojis(function (emoji) {
var reEscape = new RegExp('\\(([' + '+.*?[]{}()^$|\\'.replace(/(.)/g, '\\$1') + '])\\)', 'g'); return regTyped.test(emoji);
return new RegExp('(.*)' + str.toLowerCase().replace(/(.)/g, '($1)(.*?)').replace(reEscape, '(\\$1)') + '$', 'i'); });
};
var regTyped = fuzzyRegexp(typed);
var maxSuggestions = 7; similarEmoji = similarEmoji.sort(function (a, b) {
return a.length - b.length;
});
var findMatchingEmojis = function findMatchingEmojis(matcher) { var _iteratorNormalCompletion = true;
for (var _i = 0; _i < emojiKeys.length && maxSuggestions > 0; _i++) { var _didIteratorError = false;
var curEmoji = emojiKeys[_i]; var _iteratorError = undefined;
if (matcher(curEmoji) && similarEmoji.indexOf(curEmoji) === -1) {
--maxSuggestions;
similarEmoji.push(emojiKeys[_i]);
}
}
};
// First, try to find all emojis starting with the given string try {
findMatchingEmojis(function (emoji) { for (var _iterator = similarEmoji[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
return emoji.indexOf(typed) === 0; var key = _step.value;
});
// If there are still suggestions left, try for some fuzzy matches
findMatchingEmojis(function (emoji) {
return regTyped.test(emoji);
});
similarEmoji = similarEmoji.sort(function (a, b) {
return a.length - b.length;
});
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
suggestions.push(makeSuggestion(key));
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try { try {
for (var _iterator = similarEmoji[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { if (!_iteratorNormalCompletion && _iterator.return) {
var key = _step.value; _iterator.return();
suggestions.push(makeSuggestion(key));
} }
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally { } finally {
try { if (_didIteratorError) {
if (!_iteratorNormalCompletion && _iterator.return) { throw _iteratorError;
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
} }
} }
}
if (suggestions.length) { if (suggestions.length) {
dropdown.props.items = suggestions; dropdown.props.items = suggestions;
m.render($container[0], dropdown.render()); m.render($container[0], dropdown.render());
dropdown.show(); dropdown.show();
var coordinates = getCaretCoordinates(_this, emojiStart); var coordinates = getCaretCoordinates(_this, emojiStart);
var width = dropdown.$().outerWidth(); var width = dropdown.$().outerWidth();
var height = dropdown.$().outerHeight(); var height = dropdown.$().outerHeight();
var parent = dropdown.$().offsetParent(); var parent = dropdown.$().offsetParent();
var left = coordinates.left; var left = coordinates.left;
var top = coordinates.top + 15; var top = coordinates.top + 15;
if (top + height > parent.height()) { if (top + height > parent.height()) {
top = coordinates.top - height - 15; top = coordinates.top - height - 15;
}
if (left + width > parent.width()) {
left = parent.width() - width;
}
dropdown.show(left, top);
} }
}; if (left + width > parent.width()) {
left = parent.width() - width;
}
dropdown.show(left, top);
}
};
buildSuggestions(); buildSuggestions();
dropdown.setIndex(0); dropdown.setIndex(0);
dropdown.$().scrollTop(0); dropdown.$().scrollTop(0);
dropdown.active = true; dropdown.active = true;
})();
} }
}); });
}); });