Code Duplication    Length = 56-56 lines in 2 locations

public/js/tinymce/themes/inlite/theme.js 1 location

@@ 9049-9104 (lines=56) @@
9046
        }
9047
        return self;
9048
      },
9049
      renderHtml: function () {
9050
        var self = this;
9051
        var id = self._id;
9052
        var settings = self.settings;
9053
        var prefix = self.classPrefix;
9054
        var text = self.state.get('text');
9055
        var icon = self.settings.icon, image = '', shortcut = settings.shortcut;
9056
        var url = self.encode(settings.url), iconHtml = '';
9057
        function convertShortcut(shortcut) {
9058
          var i, value, replace = {};
9059
          if (global$1.mac) {
9060
            replace = {
9061
              alt: '⌥',
9062
              ctrl: '⌘',
9063
              shift: '⇧',
9064
              meta: '⌘'
9065
            };
9066
          } else {
9067
            replace = { meta: 'Ctrl' };
9068
          }
9069
          shortcut = shortcut.split('+');
9070
          for (i = 0; i < shortcut.length; i++) {
9071
            value = replace[shortcut[i].toLowerCase()];
9072
            if (value) {
9073
              shortcut[i] = value;
9074
            }
9075
          }
9076
          return shortcut.join('+');
9077
        }
9078
        function escapeRegExp(str) {
9079
          return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
9080
        }
9081
        function markMatches(text) {
9082
          var match = settings.match || '';
9083
          return match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) {
9084
            return '!mce~match[' + match + ']mce~match!';
9085
          }) : text;
9086
        }
9087
        function boldMatches(text) {
9088
          return text.replace(new RegExp(escapeRegExp('!mce~match['), 'g'), '<b>').replace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '</b>');
9089
        }
9090
        if (icon) {
9091
          self.parent().classes.add('menu-has-icons');
9092
        }
9093
        if (settings.image) {
9094
          image = ' style="background-image: url(\'' + settings.image + '\')"';
9095
        }
9096
        if (shortcut) {
9097
          shortcut = convertShortcut(shortcut);
9098
        }
9099
        icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none');
9100
        iconHtml = text !== '-' ? '<i class="' + icon + '"' + image + '></i>\xA0' : '';
9101
        text = boldMatches(self.encode(markMatches(text)));
9102
        url = boldMatches(self.encode(markMatches(url)));
9103
        return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1">' + iconHtml + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + (url ? '<div class="' + prefix + 'menu-item-link">' + url + '</div>' : '') + '</div>';
9104
      },
9105
      postRender: function () {
9106
        var self = this, settings = self.settings;
9107
        var textStyle = settings.textStyle;

public/js/tinymce/themes/modern/theme.js 1 location

@@ 8857-8912 (lines=56) @@
8854
        }
8855
        return self;
8856
      },
8857
      renderHtml: function () {
8858
        var self = this;
8859
        var id = self._id;
8860
        var settings = self.settings;
8861
        var prefix = self.classPrefix;
8862
        var text = self.state.get('text');
8863
        var icon = self.settings.icon, image = '', shortcut = settings.shortcut;
8864
        var url = self.encode(settings.url), iconHtml = '';
8865
        function convertShortcut(shortcut) {
8866
          var i, value, replace = {};
8867
          if (global$8.mac) {
8868
            replace = {
8869
              alt: '&#x2325;',
8870
              ctrl: '&#x2318;',
8871
              shift: '&#x21E7;',
8872
              meta: '&#x2318;'
8873
            };
8874
          } else {
8875
            replace = { meta: 'Ctrl' };
8876
          }
8877
          shortcut = shortcut.split('+');
8878
          for (i = 0; i < shortcut.length; i++) {
8879
            value = replace[shortcut[i].toLowerCase()];
8880
            if (value) {
8881
              shortcut[i] = value;
8882
            }
8883
          }
8884
          return shortcut.join('+');
8885
        }
8886
        function escapeRegExp(str) {
8887
          return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
8888
        }
8889
        function markMatches(text) {
8890
          var match = settings.match || '';
8891
          return match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) {
8892
            return '!mce~match[' + match + ']mce~match!';
8893
          }) : text;
8894
        }
8895
        function boldMatches(text) {
8896
          return text.replace(new RegExp(escapeRegExp('!mce~match['), 'g'), '<b>').replace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '</b>');
8897
        }
8898
        if (icon) {
8899
          self.parent().classes.add('menu-has-icons');
8900
        }
8901
        if (settings.image) {
8902
          image = ' style="background-image: url(\'' + settings.image + '\')"';
8903
        }
8904
        if (shortcut) {
8905
          shortcut = convertShortcut(shortcut);
8906
        }
8907
        icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none');
8908
        iconHtml = text !== '-' ? '<i class="' + icon + '"' + image + '></i>\xA0' : '';
8909
        text = boldMatches(self.encode(markMatches(text)));
8910
        url = boldMatches(self.encode(markMatches(url)));
8911
        return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1">' + iconHtml + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + (url ? '<div class="' + prefix + 'menu-item-link">' + url + '</div>' : '') + '</div>';
8912
      },
8913
      postRender: function () {
8914
        var self = this, settings = self.settings;
8915
        var textStyle = settings.textStyle;