mirror of
https://github.com/flarum/core.git
synced 2025-08-08 09:26:34 +02:00
Update dependencies
This commit is contained in:
182
extensions/emoji/js/forum/dist/extension.js
vendored
182
extensions/emoji/js/forum/dist/extension.js
vendored
@@ -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;
|
||||||
})();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user