1275 líneas
23 KiB
JavaScript
1275 líneas
23 KiB
JavaScript
(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;
|
|
|
|
}());
|
|
})();
|