UNPKG

trumbowyg

Version:
226 lines (217 loc) 7.05 kB
(function ($) { 'use strict'; $.extend(true, $.trumbowyg, { langs: { // jshint camelcase:false en: { lineheight: 'Line height', lineheights: { '0.9': 'Small', 'normal': 'Regular', '1.5': 'Large', '2.0': 'Extra large' } }, az: { lineheight: 'Sətir yüksəkliyi', lineheights: { '0.9': 'Kiçik', 'normal': 'Normal', '1.5': 'Böyük', '2.0': 'Daha böyük' } }, by: { lineheight: 'Міжрадковы інтэрвал', lineheights: { '0.9': 'Маленькі', 'normal': 'Звычайны', '1.5': 'Вялікі', '2.0': 'Вельмі вялікі' } }, da: { lineheight: 'Linjehøjde', lineheights: { '0.9': 'Lille', 'normal': 'Normal', '1.5': 'Stor', '2.0': 'Ekstra stor' } }, de: { lineheight: 'Zeilenhöhe', lineheights: { '0.9': 'Klein', 'normal': 'Normal', '1.5': 'Groß', '2.0': 'Sehr groß' } }, et: { lineheight: 'Reavahe', lineheights: { '0.9': 'Väike', 'normal': 'Tavaline', '1.5': 'Suur', '2.0': 'Väga suur' } }, fr: { lineheight: 'Hauteur de ligne', lineheights: { '0.9': 'Petite', 'normal': 'Normale', '1.5': 'Grande', '2.0': 'Très grande' } }, hu: { lineheight: 'Line height', lineheights: { '0.9': 'Small', 'normal': 'Regular', '1.5': 'Large', '2.0': 'Extra large' } }, it: { lineheight: 'Altezza linea', lineheights: { '0.9': 'Bassa', 'normal': 'Normale', '1.5': 'Alta', '2.0': 'Molto alta' } }, ko: { lineheight: '줄 간격', lineheights: { '0.9': '좁게', 'normal': '보통', '1.5': '넓게', '2.0': '아주 넓게' } }, nl: { lineheight: 'Regelhoogte', lineheights: { '0.9': 'Klein', 'normal': 'Normaal', '1.5': 'Groot', '2.0': 'Extra groot' } }, pt_br: { lineheight: 'Altura de linha', lineheights: { '0.9': 'Pequena', 'normal': 'Regular', '1.5': 'Grande', '2.0': 'Extra grande' } }, ru: { lineheight: 'Межстрочный интервал', lineheights: { '0.9': 'Маленький', 'normal': 'Обычный', '1.5': 'Большой', '2.0': 'Очень большой' } }, sl: { lineheight: 'Višina vrstice', lineheights: { '0.9': 'Majhna', 'normal': 'Navadna', '1.5': 'Velika', '2.0': 'Ekstra velika' } }, tr: { lineheight: 'Satır yüksekliği', lineheights: { '0.9': 'Küçük', 'normal': 'Normal', '1.5': 'Büyük', '2.0': 'Çok Büyük' } }, zh_tw: { lineheight: '文字間距', lineheights: { '0.9': '小', 'normal': '正常', '1.5': '大', '2.0': '特大' } } } }); // jshint camelcase:true var defaultOptions = { sizeList: [ '0.9', 'normal', '1.5', '2.0' ] }; // Add dropdown with font sizes $.extend(true, $.trumbowyg, { plugins: { lineheight: { init: function (trumbowyg) { trumbowyg.o.plugins.lineheight = $.extend({}, defaultOptions, trumbowyg.o.plugins.lineheight || {} ); trumbowyg.addBtnDef('lineheight', { dropdown: buildDropdown(trumbowyg) }); } } } }); // Build the dropdown function buildDropdown(trumbowyg) { var dropdown = []; $.each(trumbowyg.o.plugins.lineheight.sizeList, function (index, size) { trumbowyg.addBtnDef('lineheight_' + size, { text: trumbowyg.lang.lineheights[size] || size, hasIcon: false, fn: function () { trumbowyg.saveRange(); var text = trumbowyg.getRangeText(); if (text.replace(/\s/g, '') !== '') { try { var parent = getSelectionParentElement(); $(parent).css('lineHeight', size); } catch (e) { } } } }); dropdown.push('lineheight_' + size); }); return dropdown; } // Get the selection's parent function getSelectionParentElement() { var parentEl = null, selection; if (window.getSelection) { selection = window.getSelection(); if (selection.rangeCount) { parentEl = selection.getRangeAt(0).commonAncestorContainer; if (parentEl.nodeType !== 1) { parentEl = parentEl.parentNode; } } } else if ((selection = document.selection) && selection.type !== 'Control') { parentEl = selection.createRange().parentElement(); } return parentEl; } })(jQuery);