Since 7.1
Контрол Texthighlight - это однострочное или многострочное поле ввода с ярлыком и возможностью подсвечивать текст. Вы также можете использовать его в сочетании с саджестами.
function highlightCountries(text){
return text.replace( /[#]\S*/g, function(x){
return "<span style='background:#1ca1c1;color:pink;border-radius:7px;'>"+x+"</span>";
});
}
var texthighlight = webix.ui({
view:"texthighlight",
label:"Basic",
highlight:highlightCountries,
value:"Countries I want to visit: #Albania #Bhutan #Colombia",
suggest:{
view:"mentionsuggest", data:countries, symbol:"#"
}
});
Основные свойства:
Related sample: TextHighlight: Basic
По умолчанию текст не подсвечен. Чтобы подсветить определенное слово, задайте функцию и передайте ее свойству highlight. Функция получает весь текст инпута и возвращает строку.
// код функции для подсвечивания
function highlight(code){
code = webix.template.escape(code);
code = code.replace(/var|const|let/g, "<span class='variable'>$&</span>");
code = code.replace(/function/g, "<span class='function'>$&</span>");
// ... ваш код
return code;
}
webix.ui({
view:"texthighlight",
type:"textarea",
highlight:highlight
});
Где variable
и function
- это имена классов CSS.
Related sample: Texthighlight: Code Coloring
Не используйте правила CSS для установки размеров и позиционирования (например, padding, margin, font-size, font-weight), потому что это нарушит позиционирование текста внутри поля.
Чтобы расширить функциональность контрола Texthighlight выпадающим списком, передайте объект с его конфигурацией параметру suggest. Самый распространенный тип саджеста для Texthighlight - это mentionsuggest:
{
view:"texthighlight",
label:"Basic",
highlight:highlightCountries,
value:"Countries I want to visit: #Albania #Bhutan #Colombia",
suggest:{
view:"mentionsuggest", data:countries, symbol:"#"
}
}
Вы также можете использовать другие типы выпадающих списков, используемых для контрола Text.
Контрол TextHighlight также можно использовать в компоненте Comments для подсвечивания имен упомянутых пользователей. Функциональность работает по умолчанию, вы можете отключать ее или настраивать с помощью свойства highlight из Comments API.
webix.ui({
view:"comments",
mentions:"users", // по умолчанию true
currentUser:4,
data: "/server/comments_data",
users: "/server/comments_users"
});