1(function($) 2{ 3 $.Redactor.prototype.fontcolor = function() 4 { 5 return { 6 init: function() 7 { 8 var colors = [ 9 '#ffffff', '#000000', '#eeece1', '#1f497d', '#4f81bd', '#c0504d', '#9bbb59', '#8064a2', '#4bacc6', '#f79646', '#ffff00', 10 '#f2f2f2', '#7f7f7f', '#ddd9c3', '#c6d9f0', '#dbe5f1', '#f2dcdb', '#ebf1dd', '#e5e0ec', '#dbeef3', '#fdeada', '#fff2ca', 11 '#d8d8d8', '#595959', '#c4bd97', '#8db3e2', '#b8cce4', '#e5b9b7', '#d7e3bc', '#ccc1d9', '#b7dde8', '#fbd5b5', '#ffe694', 12 '#bfbfbf', '#3f3f3f', '#938953', '#548dd4', '#95b3d7', '#d99694', '#c3d69b', '#b2a2c7', '#b7dde8', '#fac08f', '#f2c314', 13 '#a5a5a5', '#262626', '#494429', '#17365d', '#366092', '#953734', '#76923c', '#5f497a', '#92cddc', '#e36c09', '#c09100', 14 '#7f7f7f', '#0c0c0c', '#1d1b10', '#0f243e', '#244061', '#632423', '#4f6128', '#3f3151', '#31859b', '#974806', '#7f6000' 15 ]; 16 17 18 var $button = this.button.add('fontcolor', 'Text Color'); 19 this.button.setIcon($button, '<i class="re-icon-fontcolor"></i>'); 20 21 var $dropdown = this.button.addDropdown($button); 22 $dropdown.attr('rel', 'fontcolor'); 23 $dropdown.width(242); 24 25 var $selector = $('<div style="overflow: hidden; text-align: center;">'); 26 var $selectorText = $('<span rel="text" class="re-dropdown-box-selector-font" style="background: #eee; float: left; padding: 8px 0; cursor: pointer; font-size: 12px; width: 50%;">Text</span>'); 27 var $selectorBack = $('<span rel="back" class="re-dropdown-box-selector-font" style="float: left; padding: 8px 0; cursor: pointer; font-size: 12px; width: 50%;">Highlight</span>'); 28 29 $selector.append($selectorText); 30 $selector.append($selectorBack); 31 32 $dropdown.append($selector); 33 34 this.fontcolor.buildPicker($dropdown, 'textcolor', colors); 35 this.fontcolor.buildPicker($dropdown, 'backcolor', colors); 36 37 $selectorText.on('mousedown', function(e) 38 { 39 e.preventDefault(); 40 41 $dropdown.find('.re-dropdown-box-selector-font').css('background', 'none'); 42 $dropdown.find('.re-dropdown-box-backcolor').hide(); 43 $dropdown.find('.re-dropdown-box-textcolor').show(); 44 45 $(this).css('background', '#eee'); 46 }); 47 48 $selectorBack.on('mousedown', function(e) 49 { 50 e.preventDefault(); 51 52 $dropdown.find('.re-dropdown-box-selector-font').css('background', 'none'); 53 $dropdown.find('.re-dropdown-box-textcolor').hide(); 54 $dropdown.find('.re-dropdown-box-backcolor').show(); 55 56 $(this).css('background', '#eee'); 57 }); 58 59 }, 60 buildPicker: function($dropdown, name, colors) 61 { 62 var $box = $('<div class="re-dropdown-box-' + name + '">'); 63 var rule = (name == 'backcolor') ? 'background-color' : 'color'; 64 var len = colors.length; 65 var self = this; 66 var func = function(e) 67 { 68 e.preventDefault(); 69 self.fontcolor.set($(this).data('rule'), $(this).attr('rel')); 70 }; 71 72 for (var z = 0; z < len; z++) 73 { 74 var color = colors[z]; 75 76 var $swatch = $('<a rel="' + color + '" data-rule="' + rule +'" href="#" style="float: left; box-sizing: border-box; font-size: 0; border: 2px solid #fff; padding: 0; margin: 0; width: 22px; height: 22px;"></a>'); 77 $swatch.css('background-color', color); 78 $swatch.on('mousedown', func); 79 80 $box.append($swatch); 81 } 82 83 var $elNone = $('<a href="#" style="display: block; clear: both; padding: 8px 5px; box-sizing: border-box; font-size: 12px; line-height: 1;"></a>').html(this.lang.get('none')); 84 $elNone.on('mousedown', $.proxy(function(e) 85 { 86 e.preventDefault(); 87 this.fontcolor.remove(rule); 88 89 }, this)); 90 91 $box.append($elNone); 92 $dropdown.append($box); 93 94 if (name == 'backcolor') 95 { 96 $box.hide(); 97 } 98 }, 99 set: function(rule, type) 100 { 101 this.inline.format('span', 'style', rule + ': ' + type + ';'); 102 this.dropdown.hide(); 103 }, 104 remove: function(rule) 105 { 106 this.inline.removeStyleRule(rule); 107 this.dropdown.hide(); 108 } 109 }; 110 }; 111})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.