UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

160 lines (151 loc) 5.67 kB
'use strict'; const iconClassMappings = { 'k-i-arrow-s': 'k-i-arrow-60-down', 'k-i-arrow-e': 'k-i-arrow-60-right', 'k-i-arrow-n': 'k-i-arrow-60-up', 'k-i-arrow-w': 'k-i-arrow-60-left', 'k-i-seek-n': 'k-i-arrow-seek-up', 'k-i-seek-e': 'k-i-arrow-end-right', 'k-i-seek-s': 'k-i-arrow-seek-down', 'k-i-seek-w': 'k-i-arrow-end-left', 'k-i-sarrow-n': 'k-i-arrow-60-up', 'k-i-sarrow-e': 'k-i-arrow-60-right', 'k-i-sarrow-s': 'k-i-arrow-60-down', 'k-i-sarrow-w': 'k-i-arrow-60-left', 'k-i-collapse': 'k-i-arrow-60-down', 'k-i-expand': 'k-i-arrow-60-right', 'k-i-expand-n': 'k-i-arrow-60-up', 'k-i-expand-e': 'k-i-arrow-60-right', 'k-i-expand-s': 'k-i-arrow-60-down', 'k-i-expand-w': 'k-i-arrow-60-left', 'k-i-resize-nw': 'k-i-arrow-45-up-left', 'k-i-arrowhead-n': 'k-i-arrow-chevron-up', 'k-i-arrowhead-e': 'k-i-arrow-chevron-right', 'k-i-arrowhead-s': 'k-i-arrow-chevron-down', 'k-i-arrowhead-w': 'k-i-arrow-chevron-left', 'k-i-deny': 'k-i-cancel-outline', 'k-plus': 'k-i-plus', 'k-i-splus': 'k-i-plus-sm', 'k-minus': 'k-i-minus', 'k-i-sminus': 'k-i-minus-sm', 'k-i-refresh-clear': 'k-i-non-recurrence', 'k-i-restore': 'k-i-window-restore', 'k-i-maximize': 'k-i-window-maximize', 'k-i-minimize': 'k-i-window-minimize', 'k-i-insert-image': 'k-i-image-insert', 'k-i-insert-file': 'k-i-file-add', 'k-i-pdfa': 'k-i-pdf', 'k-i-xlsa': 'k-i-xls', 'k-i-hamburger': 'k-i-menu', 'k-i-vbars': 'k-i-more-vertical', 'k-i-hbars': 'k-i-more-horizontal', 'k-i-dimension': 'k-i-arrows-dimensions', 'k-i-undo-large': 'k-i-undo', 'k-i-redo-large': 'k-i-redo', 'k-i-rotate-ccw': 'k-i-rotate-left', 'k-i-rotate-cw': 'k-i-rotate-right', 'k-i-strike-through': 'k-i-strikethrough', 'k-i-text': 'k-i-foreground-color', 'k-i-fx': 'k-i-formula-fx', 'k-i-subscript': 'k-i-sub-script', 'k-i-superscript': 'k-i-sup-script', 'k-i-increase-decimal': 'k-i-decimal-increase', 'k-i-decrease-decimal': 'k-i-decimal-decrease', 'k-i-justify-left': 'k-i-align-left', 'k-i-justify-center': 'k-i-align-center', 'k-i-justify-right': 'k-i-align-right', 'k-i-justify-full': 'k-i-align-justify', 'k-i-justify-clear': 'k-i-align-remove', 'k-i-insert-n': 'k-i-insert-up', 'k-i-insert-m': 'k-i-insert-middle', 'k-i-insert-s': 'k-i-insert-down', 'k-i-insert-unordered-list': 'k-i-list-unordered', 'k-i-insert-ordered-list': 'k-i-list-ordered', 'k-i-clearformat': 'k-i-clear-css', 'k-i-create-table': 'k-i-table-light-dialog', 'k-i-add-column-left': 'k-i-table-column-insert-left', 'k-i-add-column-right': 'k-i-table-column-insert-right', 'k-i-group-delete': 'k-i-close', 'k-i-delete-column': 'k-i-table-column-delete', 'k-i-add-row-above': 'k-i-table-row-insert-above', 'k-i-add-row-below': 'k-i-table-row-insert-below', 'k-i-delete-row': 'k-i-table-row-delete', 'k-i-merge-cells': 'k-i-cells-merge', 'k-i-normal-layout': 'k-i-table-unmerge', 'k-i-page-layout': 'k-i-layout-2-by-2', 'k-i-all-borders': 'k-i-borders-all', 'k-i-inside-borders': 'k-i-borders-inside', 'k-i-inside-horizontal-borders': 'k-i-borders-inside-horizontal', 'k-i-inside-vertical-borders': 'k-i-borders-inside-vertical', 'k-i-outside-borders': 'k-i-borders-outside', 'k-i-top-border': 'k-i-border-top', 'k-i-right-border': 'k-i-border-right', 'k-i-bottom-border': 'k-i-border-bottom', 'k-i-left-border': 'k-i-border-left', 'k-i-no-borders': 'k-i-border-no', 'k-i-merge-horizontally': 'k-i-cells-merge-horizontally', 'k-i-merge-vertically': 'k-i-cells-merge-vertically', 'k-i-freeze-col': 'k-i-column-freeze', 'k-i-freeze-row': 'k-i-row-freeze', 'k-i-freeze-panes': 'k-i-pane-freeze', 'k-i-format-number': 'k-i-custom-format', 'k-i-fullscreen-enter': 'k-i-full-screen', 'k-i-volume-low': 'k-i-volume-down', 'k-i-volume-high': 'k-i-volume-up', 'k-i-volume-mute': 'k-i-volume-off', }; const sortedOldClasses = Object.keys(iconClassMappings).sort((a, b) => b.length - a.length); function buildIconRegex() { const escaped = sortedOldClasses.map(c => c.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')); return new RegExp('(?<![\\w-])(' + escaped.join('|') + ')(?![\\w-])', 'g'); } const ICON_RE = buildIconRegex(); function applyIconClassRenames(str) { return str.replace(ICON_RE, (match) => iconClassMappings[match] || match); } 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 = { iconClassMappings, applyIconClassRenames, transformStringLiterals, transformTemplateLiterals, };