@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
206 lines (188 loc) • 7.53 kB
JavaScript
;
function applyMapNavigatorRenames(str) {
let result = str;
result = result.replaceAll('k-navigator-up', 'k-navigator-n');
result = result.replaceAll('k-navigator-right', 'k-navigator-e');
result = result.replaceAll('k-navigator-down', 'k-navigator-s');
result = result.replaceAll('k-navigator-left', 'k-navigator-w');
return result;
}
function applySchedulerIconRenames(str) {
let result = str;
result = result.replaceAll('k-svg-i-arrow-left', 'k-i-chevron-left');
result = result.replaceAll('k-svg-i-arrow-right', 'k-i-chevron-right');
return result;
}
function applyGridColumnMenuPopupRename(str) {
return str.replaceAll('k-columnmenu-popup', 'k-grid-columnmenu-popup');
}
function applyGridLayoutJustifyRename(str) {
return str.replaceAll('k-justify-content-', 'k-justify-items-');
}
function applyContextMenuWidgetStrip(str) {
let result = str;
result = result.replace(/\.k-widget(?=\.k-context-menu)/g, '');
result = result.replace(/(?<=\.k-context-menu)\.k-widget(?=[\s{,>+~.:#[)]|$)/g, '');
return result;
}
function applyQ4ClassChanges(str) {
let result = str;
result = result.replaceAll('k-pane-pinned', 'k-pane-unpinned');
result = result.replace(/\.k-menu-expand-arrow-icon(?=\.)/g, '');
result = result.replace(/(?<=[\w-])\.k-menu-expand-arrow-icon/g, '');
result = result.replace(/\.k-tab-on-top(?=\.)/g, '');
result = result.replace(/(?<=[\w-])\.k-tab-on-top/g, '');
result = result.replace(/\.k-toolbar-toggle-button(?=\.)/g, '');
result = result.replace(/(?<=[\w-])\.k-toolbar-toggle-button/g, '');
result = result.replace(/\.k-dropdown-button(?=\.)/g, '');
result = result.replace(/(?<=[\w-])\.k-dropdown-button/g, '');
return result;
}
const SCHEDULER_NAV_CSS_MAP = [
[/\.k-nav-today(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="today"]'],
[/\.k-nav-prev(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="previous"]'],
[/\.k-nav-next(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="next"]'],
[/\.k-view-month(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="month"]'],
[/\.k-view-week(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="week"]'],
[/\.k-view-day(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="day"]'],
[/\.k-view-agenda(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="agenda"]'],
[/\.k-view-timeline(?=[\s{,>+~:.#\[)]|$)/g, '[data-selector="timeline"]'],
];
function applySchedulerNavSelectorsCss(str) {
let result = str;
for (const [re, replacement] of SCHEDULER_NAV_CSS_MAP) {
re.lastIndex = 0;
result = result.replace(re, replacement);
re.lastIndex = 0;
}
return result;
}
const SCHEDULER_NAV_JS_MAP = [
['.k-nav-today', '[data-selector="today"]'],
['.k-nav-prev', '[data-selector="previous"]'],
['.k-nav-next', '[data-selector="next"]'],
['.k-view-month', '[data-selector="month"]'],
['.k-view-week', '[data-selector="week"]'],
['.k-view-day', '[data-selector="day"]'],
['.k-view-agenda', '[data-selector="agenda"]'],
['.k-view-timeline', '[data-selector="timeline"]'],
];
function applySchedulerNavSelectorsJs(str) {
let result = str;
for (const [from, to] of SCHEDULER_NAV_JS_MAP) {
result = result.replaceAll(from, to);
}
return result;
}
function applySpreadsheetIconRenames(str) {
let result = str;
result = result.replaceAll('k-i-undo', 'k-i-reset');
result = result.replaceAll('k-i-redo', 'k-i-reload');
return result;
}
function applyQ4ExtraClassChanges(str) {
let result = str;
result = result.replaceAll('k-button-flat-primary', 'k-button-flat-base');
result = result.replaceAll('k-pivotgrid-header-total', 'k-pivotgrid-total');
result = result.replace(/\.k-widget(?=\.k-tabstrip(?!-))/g, '');
result = result.replace(/(?<=\.k-tabstrip(?!-))\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-gridlayout)/g, '');
result = result.replace(/(?<=\.k-gridlayout)\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-imageeditor)/g, '');
result = result.replace(/(?<=\.k-imageeditor)\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-map)/g, '');
result = result.replace(/(?<=\.k-map)\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.km-widget(?=\.k-map)/g, '');
result = result.replace(/(?<=\.k-map)\.km-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-menu(?!-))/g, '');
result = result.replace(/(?<=\.k-menu(?!-))\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-pdfviewer)/g, '');
result = result.replace(/(?<=\.k-pdfviewer)\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-widget(?=\.k-stack-layout)/g, '');
result = result.replace(/(?<=\.k-stack-layout)\.k-widget(?=[\s{,>+~.:#\[)]|$)/g, '');
result = result.replace(/\.k-tabstrip-item(?=\.k-item\b)/g, '');
result = result.replace(/(?<=\.k-item\b)\.k-tabstrip-item(?=[\s{,>+~.:#\[)]|$)/g, '');
return result;
}
function applyAll(str) {
let result = str;
result = applyMapNavigatorRenames(result);
result = applySchedulerIconRenames(result);
result = applyGridColumnMenuPopupRename(result);
result = applyGridLayoutJustifyRename(result);
result = applyContextMenuWidgetStrip(result);
result = applyQ4ClassChanges(result);
result = applySchedulerNavSelectorsCss(result);
result = applySpreadsheetIconRenames(result);
result = applyQ4ExtraClassChanges(result);
return result;
}
function applyAllJs(str) {
let result = str;
result = applyMapNavigatorRenames(result);
result = applySchedulerIconRenames(result);
result = applyGridColumnMenuPopupRename(result);
result = applyGridLayoutJustifyRename(result);
result = applyContextMenuWidgetStrip(result);
result = applyQ4ClassChanges(result);
result = applySchedulerNavSelectorsJs(result);
result = applySpreadsheetIconRenames(result);
result = applyQ4ExtraClassChanges(result);
return result;
}
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;
}
module.exports = {
applyMapNavigatorRenames,
applySchedulerIconRenames,
applyGridColumnMenuPopupRename,
applyGridLayoutJustifyRename,
applyContextMenuWidgetStrip,
applyQ4ClassChanges,
applySchedulerNavSelectorsCss,
applySchedulerNavSelectorsJs,
applySpreadsheetIconRenames,
applyQ4ExtraClassChanges,
applyAll,
applyAllJs,
transformStringLiterals,
transformTemplateLiterals,
};