Spaces:
Sleeping
Sleeping
(function () { | |
var charmap = (function () { | |
'use strict'; | |
var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); | |
var fireInsertCustomChar = function (editor, chr) { | |
return editor.fire('insertCustomChar', { chr: chr }); | |
}; | |
var Events = { fireInsertCustomChar: fireInsertCustomChar }; | |
var insertChar = function (editor, chr) { | |
var evtChr = Events.fireInsertCustomChar(editor, chr).chr; | |
editor.execCommand('mceInsertContent', false, evtChr); | |
}; | |
var Actions = { insertChar: insertChar }; | |
var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); | |
var getCharMap = function (editor) { | |
return editor.settings.charmap; | |
}; | |
var getCharMapAppend = function (editor) { | |
return editor.settings.charmap_append; | |
}; | |
var Settings = { | |
getCharMap: getCharMap, | |
getCharMapAppend: getCharMapAppend | |
}; | |
var isArray = global$1.isArray; | |
var getDefaultCharMap = function () { | |
return [ | |
[ | |
'160', | |
'no-break space' | |
], | |
[ | |
'173', | |
'soft hyphen' | |
], | |
[ | |
'34', | |
'quotation mark' | |
], | |
[ | |
'162', | |
'cent sign' | |
], | |
[ | |
'8364', | |
'euro sign' | |
], | |
[ | |
'163', | |
'pound sign' | |
], | |
[ | |
'165', | |
'yen sign' | |
], | |
[ | |
'169', | |
'copyright sign' | |
], | |
[ | |
'174', | |
'registered sign' | |
], | |
[ | |
'8482', | |
'trade mark sign' | |
], | |
[ | |
'8240', | |
'per mille sign' | |
], | |
[ | |
'181', | |
'micro sign' | |
], | |
[ | |
'183', | |
'middle dot' | |
], | |
[ | |
'8226', | |
'bullet' | |
], | |
[ | |
'8230', | |
'three dot leader' | |
], | |
[ | |
'8242', | |
'minutes / feet' | |
], | |
[ | |
'8243', | |
'seconds / inches' | |
], | |
[ | |
'167', | |
'section sign' | |
], | |
[ | |
'182', | |
'paragraph sign' | |
], | |
[ | |
'223', | |
'sharp s / ess-zed' | |
], | |
[ | |
'8249', | |
'single left-pointing angle quotation mark' | |
], | |
[ | |
'8250', | |
'single right-pointing angle quotation mark' | |
], | |
[ | |
'171', | |
'left pointing guillemet' | |
], | |
[ | |
'187', | |
'right pointing guillemet' | |
], | |
[ | |
'8216', | |
'left single quotation mark' | |
], | |
[ | |
'8217', | |
'right single quotation mark' | |
], | |
[ | |
'8220', | |
'left double quotation mark' | |
], | |
[ | |
'8221', | |
'right double quotation mark' | |
], | |
[ | |
'8218', | |
'single low-9 quotation mark' | |
], | |
[ | |
'8222', | |
'double low-9 quotation mark' | |
], | |
[ | |
'60', | |
'less-than sign' | |
], | |
[ | |
'62', | |
'greater-than sign' | |
], | |
[ | |
'8804', | |
'less-than or equal to' | |
], | |
[ | |
'8805', | |
'greater-than or equal to' | |
], | |
[ | |
'8211', | |
'en dash' | |
], | |
[ | |
'8212', | |
'em dash' | |
], | |
[ | |
'175', | |
'macron' | |
], | |
[ | |
'8254', | |
'overline' | |
], | |
[ | |
'164', | |
'currency sign' | |
], | |
[ | |
'166', | |
'broken bar' | |
], | |
[ | |
'168', | |
'diaeresis' | |
], | |
[ | |
'161', | |
'inverted exclamation mark' | |
], | |
[ | |
'191', | |
'turned question mark' | |
], | |
[ | |
'710', | |
'circumflex accent' | |
], | |
[ | |
'732', | |
'small tilde' | |
], | |
[ | |
'176', | |
'degree sign' | |
], | |
[ | |
'8722', | |
'minus sign' | |
], | |
[ | |
'177', | |
'plus-minus sign' | |
], | |
[ | |
'247', | |
'division sign' | |
], | |
[ | |
'8260', | |
'fraction slash' | |
], | |
[ | |
'215', | |
'multiplication sign' | |
], | |
[ | |
'185', | |
'superscript one' | |
], | |
[ | |
'178', | |
'superscript two' | |
], | |
[ | |
'179', | |
'superscript three' | |
], | |
[ | |
'188', | |
'fraction one quarter' | |
], | |
[ | |
'189', | |
'fraction one half' | |
], | |
[ | |
'190', | |
'fraction three quarters' | |
], | |
[ | |
'402', | |
'function / florin' | |
], | |
[ | |
'8747', | |
'integral' | |
], | |
[ | |
'8721', | |
'n-ary sumation' | |
], | |
[ | |
'8734', | |
'infinity' | |
], | |
[ | |
'8730', | |
'square root' | |
], | |
[ | |
'8764', | |
'similar to' | |
], | |
[ | |
'8773', | |
'approximately equal to' | |
], | |
[ | |
'8776', | |
'almost equal to' | |
], | |
[ | |
'8800', | |
'not equal to' | |
], | |
[ | |
'8801', | |
'identical to' | |
], | |
[ | |
'8712', | |
'element of' | |
], | |
[ | |
'8713', | |
'not an element of' | |
], | |
[ | |
'8715', | |
'contains as member' | |
], | |
[ | |
'8719', | |
'n-ary product' | |
], | |
[ | |
'8743', | |
'logical and' | |
], | |
[ | |
'8744', | |
'logical or' | |
], | |
[ | |
'172', | |
'not sign' | |
], | |
[ | |
'8745', | |
'intersection' | |
], | |
[ | |
'8746', | |
'union' | |
], | |
[ | |
'8706', | |
'partial differential' | |
], | |
[ | |
'8704', | |
'for all' | |
], | |
[ | |
'8707', | |
'there exists' | |
], | |
[ | |
'8709', | |
'diameter' | |
], | |
[ | |
'8711', | |
'backward difference' | |
], | |
[ | |
'8727', | |
'asterisk operator' | |
], | |
[ | |
'8733', | |
'proportional to' | |
], | |
[ | |
'8736', | |
'angle' | |
], | |
[ | |
'180', | |
'acute accent' | |
], | |
[ | |
'184', | |
'cedilla' | |
], | |
[ | |
'170', | |
'feminine ordinal indicator' | |
], | |
[ | |
'186', | |
'masculine ordinal indicator' | |
], | |
[ | |
'8224', | |
'dagger' | |
], | |
[ | |
'8225', | |
'double dagger' | |
], | |
[ | |
'192', | |
'A - grave' | |
], | |
[ | |
'193', | |
'A - acute' | |
], | |
[ | |
'194', | |
'A - circumflex' | |
], | |
[ | |
'195', | |
'A - tilde' | |
], | |
[ | |
'196', | |
'A - diaeresis' | |
], | |
[ | |
'197', | |
'A - ring above' | |
], | |
[ | |
'256', | |
'A - macron' | |
], | |
[ | |
'198', | |
'ligature AE' | |
], | |
[ | |
'199', | |
'C - cedilla' | |
], | |
[ | |
'200', | |
'E - grave' | |
], | |
[ | |
'201', | |
'E - acute' | |
], | |
[ | |
'202', | |
'E - circumflex' | |
], | |
[ | |
'203', | |
'E - diaeresis' | |
], | |
[ | |
'274', | |
'E - macron' | |
], | |
[ | |
'204', | |
'I - grave' | |
], | |
[ | |
'205', | |
'I - acute' | |
], | |
[ | |
'206', | |
'I - circumflex' | |
], | |
[ | |
'207', | |
'I - diaeresis' | |
], | |
[ | |
'298', | |
'I - macron' | |
], | |
[ | |
'208', | |
'ETH' | |
], | |
[ | |
'209', | |
'N - tilde' | |
], | |
[ | |
'210', | |
'O - grave' | |
], | |
[ | |
'211', | |
'O - acute' | |
], | |
[ | |
'212', | |
'O - circumflex' | |
], | |
[ | |
'213', | |
'O - tilde' | |
], | |
[ | |
'214', | |
'O - diaeresis' | |
], | |
[ | |
'216', | |
'O - slash' | |
], | |
[ | |
'332', | |
'O - macron' | |
], | |
[ | |
'338', | |
'ligature OE' | |
], | |
[ | |
'352', | |
'S - caron' | |
], | |
[ | |
'217', | |
'U - grave' | |
], | |
[ | |
'218', | |
'U - acute' | |
], | |
[ | |
'219', | |
'U - circumflex' | |
], | |
[ | |
'220', | |
'U - diaeresis' | |
], | |
[ | |
'362', | |
'U - macron' | |
], | |
[ | |
'221', | |
'Y - acute' | |
], | |
[ | |
'376', | |
'Y - diaeresis' | |
], | |
[ | |
'562', | |
'Y - macron' | |
], | |
[ | |
'222', | |
'THORN' | |
], | |
[ | |
'224', | |
'a - grave' | |
], | |
[ | |
'225', | |
'a - acute' | |
], | |
[ | |
'226', | |
'a - circumflex' | |
], | |
[ | |
'227', | |
'a - tilde' | |
], | |
[ | |
'228', | |
'a - diaeresis' | |
], | |
[ | |
'229', | |
'a - ring above' | |
], | |
[ | |
'257', | |
'a - macron' | |
], | |
[ | |
'230', | |
'ligature ae' | |
], | |
[ | |
'231', | |
'c - cedilla' | |
], | |
[ | |
'232', | |
'e - grave' | |
], | |
[ | |
'233', | |
'e - acute' | |
], | |
[ | |
'234', | |
'e - circumflex' | |
], | |
[ | |
'235', | |
'e - diaeresis' | |
], | |
[ | |
'275', | |
'e - macron' | |
], | |
[ | |
'236', | |
'i - grave' | |
], | |
[ | |
'237', | |
'i - acute' | |
], | |
[ | |
'238', | |
'i - circumflex' | |
], | |
[ | |
'239', | |
'i - diaeresis' | |
], | |
[ | |
'299', | |
'i - macron' | |
], | |
[ | |
'240', | |
'eth' | |
], | |
[ | |
'241', | |
'n - tilde' | |
], | |
[ | |
'242', | |
'o - grave' | |
], | |
[ | |
'243', | |
'o - acute' | |
], | |
[ | |
'244', | |
'o - circumflex' | |
], | |
[ | |
'245', | |
'o - tilde' | |
], | |
[ | |
'246', | |
'o - diaeresis' | |
], | |
[ | |
'248', | |
'o slash' | |
], | |
[ | |
'333', | |
'o macron' | |
], | |
[ | |
'339', | |
'ligature oe' | |
], | |
[ | |
'353', | |
's - caron' | |
], | |
[ | |
'249', | |
'u - grave' | |
], | |
[ | |
'250', | |
'u - acute' | |
], | |
[ | |
'251', | |
'u - circumflex' | |
], | |
[ | |
'252', | |
'u - diaeresis' | |
], | |
[ | |
'363', | |
'u - macron' | |
], | |
[ | |
'253', | |
'y - acute' | |
], | |
[ | |
'254', | |
'thorn' | |
], | |
[ | |
'255', | |
'y - diaeresis' | |
], | |
[ | |
'563', | |
'y - macron' | |
], | |
[ | |
'913', | |
'Alpha' | |
], | |
[ | |
'914', | |
'Beta' | |
], | |
[ | |
'915', | |
'Gamma' | |
], | |
[ | |
'916', | |
'Delta' | |
], | |
[ | |
'917', | |
'Epsilon' | |
], | |
[ | |
'918', | |
'Zeta' | |
], | |
[ | |
'919', | |
'Eta' | |
], | |
[ | |
'920', | |
'Theta' | |
], | |
[ | |
'921', | |
'Iota' | |
], | |
[ | |
'922', | |
'Kappa' | |
], | |
[ | |
'923', | |
'Lambda' | |
], | |
[ | |
'924', | |
'Mu' | |
], | |
[ | |
'925', | |
'Nu' | |
], | |
[ | |
'926', | |
'Xi' | |
], | |
[ | |
'927', | |
'Omicron' | |
], | |
[ | |
'928', | |
'Pi' | |
], | |
[ | |
'929', | |
'Rho' | |
], | |
[ | |
'931', | |
'Sigma' | |
], | |
[ | |
'932', | |
'Tau' | |
], | |
[ | |
'933', | |
'Upsilon' | |
], | |
[ | |
'934', | |
'Phi' | |
], | |
[ | |
'935', | |
'Chi' | |
], | |
[ | |
'936', | |
'Psi' | |
], | |
[ | |
'937', | |
'Omega' | |
], | |
[ | |
'945', | |
'alpha' | |
], | |
[ | |
'946', | |
'beta' | |
], | |
[ | |
'947', | |
'gamma' | |
], | |
[ | |
'948', | |
'delta' | |
], | |
[ | |
'949', | |
'epsilon' | |
], | |
[ | |
'950', | |
'zeta' | |
], | |
[ | |
'951', | |
'eta' | |
], | |
[ | |
'952', | |
'theta' | |
], | |
[ | |
'953', | |
'iota' | |
], | |
[ | |
'954', | |
'kappa' | |
], | |
[ | |
'955', | |
'lambda' | |
], | |
[ | |
'956', | |
'mu' | |
], | |
[ | |
'957', | |
'nu' | |
], | |
[ | |
'958', | |
'xi' | |
], | |
[ | |
'959', | |
'omicron' | |
], | |
[ | |
'960', | |
'pi' | |
], | |
[ | |
'961', | |
'rho' | |
], | |
[ | |
'962', | |
'final sigma' | |
], | |
[ | |
'963', | |
'sigma' | |
], | |
[ | |
'964', | |
'tau' | |
], | |
[ | |
'965', | |
'upsilon' | |
], | |
[ | |
'966', | |
'phi' | |
], | |
[ | |
'967', | |
'chi' | |
], | |
[ | |
'968', | |
'psi' | |
], | |
[ | |
'969', | |
'omega' | |
], | |
[ | |
'8501', | |
'alef symbol' | |
], | |
[ | |
'982', | |
'pi symbol' | |
], | |
[ | |
'8476', | |
'real part symbol' | |
], | |
[ | |
'978', | |
'upsilon - hook symbol' | |
], | |
[ | |
'8472', | |
'Weierstrass p' | |
], | |
[ | |
'8465', | |
'imaginary part' | |
], | |
[ | |
'8592', | |
'leftwards arrow' | |
], | |
[ | |
'8593', | |
'upwards arrow' | |
], | |
[ | |
'8594', | |
'rightwards arrow' | |
], | |
[ | |
'8595', | |
'downwards arrow' | |
], | |
[ | |
'8596', | |
'left right arrow' | |
], | |
[ | |
'8629', | |
'carriage return' | |
], | |
[ | |
'8656', | |
'leftwards double arrow' | |
], | |
[ | |
'8657', | |
'upwards double arrow' | |
], | |
[ | |
'8658', | |
'rightwards double arrow' | |
], | |
[ | |
'8659', | |
'downwards double arrow' | |
], | |
[ | |
'8660', | |
'left right double arrow' | |
], | |
[ | |
'8756', | |
'therefore' | |
], | |
[ | |
'8834', | |
'subset of' | |
], | |
[ | |
'8835', | |
'superset of' | |
], | |
[ | |
'8836', | |
'not a subset of' | |
], | |
[ | |
'8838', | |
'subset of or equal to' | |
], | |
[ | |
'8839', | |
'superset of or equal to' | |
], | |
[ | |
'8853', | |
'circled plus' | |
], | |
[ | |
'8855', | |
'circled times' | |
], | |
[ | |
'8869', | |
'perpendicular' | |
], | |
[ | |
'8901', | |
'dot operator' | |
], | |
[ | |
'8968', | |
'left ceiling' | |
], | |
[ | |
'8969', | |
'right ceiling' | |
], | |
[ | |
'8970', | |
'left floor' | |
], | |
[ | |
'8971', | |
'right floor' | |
], | |
[ | |
'9001', | |
'left-pointing angle bracket' | |
], | |
[ | |
'9002', | |
'right-pointing angle bracket' | |
], | |
[ | |
'9674', | |
'lozenge' | |
], | |
[ | |
'9824', | |
'black spade suit' | |
], | |
[ | |
'9827', | |
'black club suit' | |
], | |
[ | |
'9829', | |
'black heart suit' | |
], | |
[ | |
'9830', | |
'black diamond suit' | |
], | |
[ | |
'8194', | |
'en space' | |
], | |
[ | |
'8195', | |
'em space' | |
], | |
[ | |
'8201', | |
'thin space' | |
], | |
[ | |
'8204', | |
'zero width non-joiner' | |
], | |
[ | |
'8205', | |
'zero width joiner' | |
], | |
[ | |
'8206', | |
'left-to-right mark' | |
], | |
[ | |
'8207', | |
'right-to-left mark' | |
] | |
]; | |
}; | |
var charmapFilter = function (charmap) { | |
return global$1.grep(charmap, function (item) { | |
return isArray(item) && item.length === 2; | |
}); | |
}; | |
var getCharsFromSetting = function (settingValue) { | |
if (isArray(settingValue)) { | |
return [].concat(charmapFilter(settingValue)); | |
} | |
if (typeof settingValue === 'function') { | |
return settingValue(); | |
} | |
return []; | |
}; | |
var extendCharMap = function (editor, charmap) { | |
var userCharMap = Settings.getCharMap(editor); | |
if (userCharMap) { | |
charmap = getCharsFromSetting(userCharMap); | |
} | |
var userCharMapAppend = Settings.getCharMapAppend(editor); | |
if (userCharMapAppend) { | |
return [].concat(charmap).concat(getCharsFromSetting(userCharMapAppend)); | |
} | |
return charmap; | |
}; | |
var getCharMap$1 = function (editor) { | |
return extendCharMap(editor, getDefaultCharMap()); | |
}; | |
var CharMap = { getCharMap: getCharMap$1 }; | |
var get = function (editor) { | |
var getCharMap = function () { | |
return CharMap.getCharMap(editor); | |
}; | |
var insertChar = function (chr) { | |
Actions.insertChar(editor, chr); | |
}; | |
return { | |
getCharMap: getCharMap, | |
insertChar: insertChar | |
}; | |
}; | |
var Api = { get: get }; | |
var getHtml = function (charmap) { | |
var gridHtml, x, y; | |
var width = Math.min(charmap.length, 25); | |
var height = Math.ceil(charmap.length / width); | |
gridHtml = '<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>'; | |
for (y = 0; y < height; y++) { | |
gridHtml += '<tr>'; | |
for (x = 0; x < width; x++) { | |
var index = y * width + x; | |
if (index < charmap.length) { | |
var chr = charmap[index]; | |
var charCode = parseInt(chr[0], 10); | |
var chrText = chr ? String.fromCharCode(charCode) : ' '; | |
gridHtml += '<td title="' + chr[1] + '">' + '<div tabindex="-1" title="' + chr[1] + '" role="button" data-chr="' + charCode + '">' + chrText + '</div>' + '</td>'; | |
} else { | |
gridHtml += '<td />'; | |
} | |
} | |
gridHtml += '</tr>'; | |
} | |
gridHtml += '</tbody></table>'; | |
return gridHtml; | |
}; | |
var GridHtml = { getHtml: getHtml }; | |
var getParentTd = function (elm) { | |
while (elm) { | |
if (elm.nodeName === 'TD') { | |
return elm; | |
} | |
elm = elm.parentNode; | |
} | |
}; | |
var open = function (editor) { | |
var win; | |
var charMapPanel = { | |
type: 'container', | |
html: GridHtml.getHtml(CharMap.getCharMap(editor)), | |
onclick: function (e) { | |
var target = e.target; | |
if (/^(TD|DIV)$/.test(target.nodeName)) { | |
var charDiv = getParentTd(target).firstChild; | |
if (charDiv && charDiv.hasAttribute('data-chr')) { | |
var charCodeString = charDiv.getAttribute('data-chr'); | |
var charCode = parseInt(charCodeString, 10); | |
if (!isNaN(charCode)) { | |
Actions.insertChar(editor, String.fromCharCode(charCode)); | |
} | |
if (!e.ctrlKey) { | |
win.close(); | |
} | |
} | |
} | |
}, | |
onmouseover: function (e) { | |
var td = getParentTd(e.target); | |
if (td && td.firstChild) { | |
win.find('#preview').text(td.firstChild.firstChild.data); | |
win.find('#previewTitle').text(td.title); | |
} else { | |
win.find('#preview').text(' '); | |
win.find('#previewTitle').text(' '); | |
} | |
} | |
}; | |
win = editor.windowManager.open({ | |
title: 'Special character', | |
spacing: 10, | |
padding: 10, | |
items: [ | |
charMapPanel, | |
{ | |
type: 'container', | |
layout: 'flex', | |
direction: 'column', | |
align: 'center', | |
spacing: 5, | |
minWidth: 160, | |
minHeight: 160, | |
items: [ | |
{ | |
type: 'label', | |
name: 'preview', | |
text: ' ', | |
style: 'font-size: 40px; text-align: center', | |
border: 1, | |
minWidth: 140, | |
minHeight: 80 | |
}, | |
{ | |
type: 'spacer', | |
minHeight: 20 | |
}, | |
{ | |
type: 'label', | |
name: 'previewTitle', | |
text: ' ', | |
style: 'white-space: pre-wrap;', | |
border: 1, | |
minWidth: 140 | |
} | |
] | |
} | |
], | |
buttons: [{ | |
text: 'Close', | |
onclick: function () { | |
win.close(); | |
} | |
}] | |
}); | |
}; | |
var Dialog = { open: open }; | |
var register = function (editor) { | |
editor.addCommand('mceShowCharmap', function () { | |
Dialog.open(editor); | |
}); | |
}; | |
var Commands = { register: register }; | |
var register$1 = function (editor) { | |
editor.addButton('charmap', { | |
icon: 'charmap', | |
tooltip: 'Special character', | |
cmd: 'mceShowCharmap' | |
}); | |
editor.addMenuItem('charmap', { | |
icon: 'charmap', | |
text: 'Special character', | |
cmd: 'mceShowCharmap', | |
context: 'insert' | |
}); | |
}; | |
var Buttons = { register: register$1 }; | |
global.add('charmap', function (editor) { | |
Commands.register(editor); | |
Buttons.register(editor); | |
return Api.get(editor); | |
}); | |
function Plugin () { | |
} | |
return Plugin; | |
}()); | |
})(); | |