@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
79 lines (72 loc) • 2.73 kB
JavaScript
;
function applyTreeViewCheckboxWrapperRename(str) {
return str.replaceAll('k-checkbox-wrapper', 'k-checkbox-wrap');
}
function transformStringLiterals(root, j, fn) {
let changed = false;
const visit = path => {
if (typeof path.node.value !== 'string') {
return;
}
const updated = fn(path.node.value);
if (updated === path.node.value) {
return;
}
path.node.value = updated;
if (path.node.extra) {
path.node.extra.rawValue = updated;
if (path.node.extra.raw) {
path.node.extra.raw = fn(path.node.extra.raw);
}
}
changed = true;
};
root.find(j.StringLiteral).forEach(visit);
root.find(j.Literal, n => typeof n.value === 'string').forEach(visit);
return changed;
}
function transformTemplateLiterals(root, j, fn) {
let changed = false;
root.find(j.TemplateLiteral).forEach(path => {
path.node.quasis.forEach(quasi => {
const updatedRaw = fn(quasi.value.raw);
const updatedCooked = quasi.value.cooked != null ? fn(quasi.value.cooked) : null;
if (updatedRaw !== quasi.value.raw || updatedCooked !== quasi.value.cooked) {
quasi.value.raw = updatedRaw;
if (quasi.value.cooked != null) {
quasi.value.cooked = updatedCooked;
}
changed = true;
}
});
});
return changed;
}
function applyTreeViewClassStrips(str) {
let result = str;
result = result.replace(/\.k-group(?=\.k-treeview-group)/g, '');
result = result.replace(/\.k-treeview-group\.k-group(?=[\s{,>+~:.#\[)]|$)/g, '.k-treeview-group');
result = result.replace(/\.k-first(?=\.k-treeview-item)/g, '');
result = result.replace(/\.k-treeview-item\.k-first(?=[\s{,>+~:.#\[)]|$)/g, '.k-treeview-item');
result = result.replace(/\.k-last(?=\.k-treeview-item)/g, '');
result = result.replace(/\.k-treeview-item\.k-last(?=[\s{,>+~:.#\[)]|$)/g, '.k-treeview-item');
result = result.replace(/\.k-item(?=\.k-treeview-item)/g, '');
result = result.replace(/\.k-treeview-item\.k-item(?=[\s{,>+~:.#\[)]|$)/g, '.k-treeview-item');
result = result.replace(/\.k-in(?=\.k-treeview-leaf)/g, '');
result = result.replace(/\.k-treeview-leaf\.k-in(?=[\s{,>+~:.#\[)]|$)/g, '.k-treeview-leaf');
result = result.replace(/\.k-treeview-toggle\.k-toggle-icon/g, '.k-treeview-toggle');
result = result.replace(/\.k-toggle-icon\.k-treeview-toggle/g, '.k-treeview-toggle');
return result;
}
function applyAll(str) {
let result = applyTreeViewCheckboxWrapperRename(str);
result = applyTreeViewClassStrips(result);
return result;
}
module.exports = {
applyTreeViewCheckboxWrapperRename,
applyTreeViewClassStrips,
applyAll,
transformStringLiterals,
transformTemplateLiterals,
};