Improve suggest menu string replacement
This commit is contained in:
4
assets/js/app.min.js
vendored
4
assets/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -38,13 +38,27 @@ KB.component('suggest-menu', function(containerElement, options) {
|
|||||||
var element = KB.find('.suggest-menu-item.active');
|
var element = KB.find('.suggest-menu-item.active');
|
||||||
var value = element.data('value');
|
var value = element.data('value');
|
||||||
var trigger = element.data('trigger');
|
var trigger = element.data('trigger');
|
||||||
var position = containerElement.value.lastIndexOf(trigger) + 1;
|
var content = containerElement.value;
|
||||||
var content = containerElement.value.substring(0, position);
|
var text = getLastWord(containerElement);
|
||||||
|
var substitute = trigger + value + ' ';
|
||||||
|
var before = content.substring(0, containerElement.selectionStart - text.length);
|
||||||
|
var after = content.substring(containerElement.selectionEnd);
|
||||||
|
var position = before.length + substitute.length;
|
||||||
|
|
||||||
|
containerElement.value = before + substitute + after;
|
||||||
|
containerElement.setSelectionRange(position, position);
|
||||||
|
|
||||||
containerElement.value = content + value;
|
|
||||||
destroy();
|
destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getLastWord(element) {
|
||||||
|
var lines = element.value.substring(0, element.selectionEnd).split("\n");
|
||||||
|
var lastLine = lines[lines.length - 1];
|
||||||
|
var words = lastLine.split(' ');
|
||||||
|
console.log(words);
|
||||||
|
return words[words.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
function getParentElement() {
|
function getParentElement() {
|
||||||
var selectors = ['.popover-form', '#popover-content', 'body'];
|
var selectors = ['.popover-form', '#popover-content', 'body'];
|
||||||
|
|
||||||
@@ -103,7 +117,7 @@ KB.component('suggest-menu', function(containerElement, options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function search(element) {
|
function search(element) {
|
||||||
var text = element.value.substring(element.value.lastIndexOf(' ') + 1, element.selectionEnd);
|
var text = getLastWord(element);
|
||||||
var trigger = getTrigger(text, options.triggers);
|
var trigger = getTrigger(text, options.triggers);
|
||||||
|
|
||||||
destroy();
|
destroy();
|
||||||
|
|||||||
Reference in New Issue
Block a user