Subversion Repositories oidplus

Rev

Rev 1422 | View as "text/javascript" | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /**
  2.  * Copyright (c) Tiny Technologies, Inc. All rights reserved.
  3.  * Licensed under the LGPL or a commercial license.
  4.  * For LGPL see License.txt in the project root for license information.
  5.  * For commercial licenses see https://www.tiny.cloud/
  6.  *
  7.  * Version: 5.10.9 (2023-11-15)
  8.  */
  9. (function () {
  10.     'use strict';
  11.  
  12.     var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');
  13.  
  14.     var fireInsertCustomChar = function (editor, chr) {
  15.       return editor.fire('insertCustomChar', { chr: chr });
  16.     };
  17.  
  18.     var insertChar = function (editor, chr) {
  19.       var evtChr = fireInsertCustomChar(editor, chr).chr;
  20.       editor.execCommand('mceInsertContent', false, evtChr);
  21.     };
  22.  
  23.     var typeOf = function (x) {
  24.       var t = typeof x;
  25.       if (x === null) {
  26.         return 'null';
  27.       } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
  28.         return 'array';
  29.       } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
  30.         return 'string';
  31.       } else {
  32.         return t;
  33.       }
  34.     };
  35.     var isType = function (type) {
  36.       return function (value) {
  37.         return typeOf(value) === type;
  38.       };
  39.     };
  40.     var eq = function (t) {
  41.       return function (a) {
  42.         return t === a;
  43.       };
  44.     };
  45.     var isArray$1 = isType('array');
  46.     var isNull = eq(null);
  47.  
  48.     var noop = function () {
  49.     };
  50.     var constant = function (value) {
  51.       return function () {
  52.         return value;
  53.       };
  54.     };
  55.     var identity = function (x) {
  56.       return x;
  57.     };
  58.     var never = constant(false);
  59.     var always = constant(true);
  60.  
  61.     var none = function () {
  62.       return NONE;
  63.     };
  64.     var NONE = function () {
  65.       var call = function (thunk) {
  66.         return thunk();
  67.       };
  68.       var id = identity;
  69.       var me = {
  70.         fold: function (n, _s) {
  71.           return n();
  72.         },
  73.         isSome: never,
  74.         isNone: always,
  75.         getOr: id,
  76.         getOrThunk: call,
  77.         getOrDie: function (msg) {
  78.           throw new Error(msg || 'error: getOrDie called on none.');
  79.         },
  80.         getOrNull: constant(null),
  81.         getOrUndefined: constant(undefined),
  82.         or: id,
  83.         orThunk: call,
  84.         map: none,
  85.         each: noop,
  86.         bind: none,
  87.         exists: never,
  88.         forall: always,
  89.         filter: function () {
  90.           return none();
  91.         },
  92.         toArray: function () {
  93.           return [];
  94.         },
  95.         toString: constant('none()')
  96.       };
  97.       return me;
  98.     }();
  99.     var some = function (a) {
  100.       var constant_a = constant(a);
  101.       var self = function () {
  102.         return me;
  103.       };
  104.       var bind = function (f) {
  105.         return f(a);
  106.       };
  107.       var me = {
  108.         fold: function (n, s) {
  109.           return s(a);
  110.         },
  111.         isSome: always,
  112.         isNone: never,
  113.         getOr: constant_a,
  114.         getOrThunk: constant_a,
  115.         getOrDie: constant_a,
  116.         getOrNull: constant_a,
  117.         getOrUndefined: constant_a,
  118.         or: self,
  119.         orThunk: self,
  120.         map: function (f) {
  121.           return some(f(a));
  122.         },
  123.         each: function (f) {
  124.           f(a);
  125.         },
  126.         bind: bind,
  127.         exists: bind,
  128.         forall: bind,
  129.         filter: function (f) {
  130.           return f(a) ? me : NONE;
  131.         },
  132.         toArray: function () {
  133.           return [a];
  134.         },
  135.         toString: function () {
  136.           return 'some(' + a + ')';
  137.         }
  138.       };
  139.       return me;
  140.     };
  141.     var from = function (value) {
  142.       return value === null || value === undefined ? NONE : some(value);
  143.     };
  144.     var Optional = {
  145.       some: some,
  146.       none: none,
  147.       from: from
  148.     };
  149.  
  150.     var nativePush = Array.prototype.push;
  151.     var map = function (xs, f) {
  152.       var len = xs.length;
  153.       var r = new Array(len);
  154.       for (var i = 0; i < len; i++) {
  155.         var x = xs[i];
  156.         r[i] = f(x, i);
  157.       }
  158.       return r;
  159.     };
  160.     var each = function (xs, f) {
  161.       for (var i = 0, len = xs.length; i < len; i++) {
  162.         var x = xs[i];
  163.         f(x, i);
  164.       }
  165.     };
  166.     var findUntil = function (xs, pred, until) {
  167.       for (var i = 0, len = xs.length; i < len; i++) {
  168.         var x = xs[i];
  169.         if (pred(x, i)) {
  170.           return Optional.some(x);
  171.         } else if (until(x, i)) {
  172.           break;
  173.         }
  174.       }
  175.       return Optional.none();
  176.     };
  177.     var find = function (xs, pred) {
  178.       return findUntil(xs, pred, never);
  179.     };
  180.     var flatten = function (xs) {
  181.       var r = [];
  182.       for (var i = 0, len = xs.length; i < len; ++i) {
  183.         if (!isArray$1(xs[i])) {
  184.           throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
  185.         }
  186.         nativePush.apply(r, xs[i]);
  187.       }
  188.       return r;
  189.     };
  190.     var bind = function (xs, f) {
  191.       return flatten(map(xs, f));
  192.     };
  193.  
  194.     var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
  195.  
  196.     var getCharMap$1 = function (editor) {
  197.       return editor.getParam('charmap');
  198.     };
  199.     var getCharMapAppend = function (editor) {
  200.       return editor.getParam('charmap_append');
  201.     };
  202.  
  203.     var isArray = global$1.isArray;
  204.     var UserDefined = 'User Defined';
  205.     var getDefaultCharMap = function () {
  206.       return [
  207.         {
  208.           name: 'Currency',
  209.           characters: [
  210.             [
  211.               36,
  212.               'dollar sign'
  213.             ],
  214.             [
  215.               162,
  216.               'cent sign'
  217.             ],
  218.             [
  219.               8364,
  220.               'euro sign'
  221.             ],
  222.             [
  223.               163,
  224.               'pound sign'
  225.             ],
  226.             [
  227.               165,
  228.               'yen sign'
  229.             ],
  230.             [
  231.               164,
  232.               'currency sign'
  233.             ],
  234.             [
  235.               8352,
  236.               'euro-currency sign'
  237.             ],
  238.             [
  239.               8353,
  240.               'colon sign'
  241.             ],
  242.             [
  243.               8354,
  244.               'cruzeiro sign'
  245.             ],
  246.             [
  247.               8355,
  248.               'french franc sign'
  249.             ],
  250.             [
  251.               8356,
  252.               'lira sign'
  253.             ],
  254.             [
  255.               8357,
  256.               'mill sign'
  257.             ],
  258.             [
  259.               8358,
  260.               'naira sign'
  261.             ],
  262.             [
  263.               8359,
  264.               'peseta sign'
  265.             ],
  266.             [
  267.               8360,
  268.               'rupee sign'
  269.             ],
  270.             [
  271.               8361,
  272.               'won sign'
  273.             ],
  274.             [
  275.               8362,
  276.               'new sheqel sign'
  277.             ],
  278.             [
  279.               8363,
  280.               'dong sign'
  281.             ],
  282.             [
  283.               8365,
  284.               'kip sign'
  285.             ],
  286.             [
  287.               8366,
  288.               'tugrik sign'
  289.             ],
  290.             [
  291.               8367,
  292.               'drachma sign'
  293.             ],
  294.             [
  295.               8368,
  296.               'german penny symbol'
  297.             ],
  298.             [
  299.               8369,
  300.               'peso sign'
  301.             ],
  302.             [
  303.               8370,
  304.               'guarani sign'
  305.             ],
  306.             [
  307.               8371,
  308.               'austral sign'
  309.             ],
  310.             [
  311.               8372,
  312.               'hryvnia sign'
  313.             ],
  314.             [
  315.               8373,
  316.               'cedi sign'
  317.             ],
  318.             [
  319.               8374,
  320.               'livre tournois sign'
  321.             ],
  322.             [
  323.               8375,
  324.               'spesmilo sign'
  325.             ],
  326.             [
  327.               8376,
  328.               'tenge sign'
  329.             ],
  330.             [
  331.               8377,
  332.               'indian rupee sign'
  333.             ],
  334.             [
  335.               8378,
  336.               'turkish lira sign'
  337.             ],
  338.             [
  339.               8379,
  340.               'nordic mark sign'
  341.             ],
  342.             [
  343.               8380,
  344.               'manat sign'
  345.             ],
  346.             [
  347.               8381,
  348.               'ruble sign'
  349.             ],
  350.             [
  351.               20870,
  352.               'yen character'
  353.             ],
  354.             [
  355.               20803,
  356.               'yuan character'
  357.             ],
  358.             [
  359.               22291,
  360.               'yuan character, in hong kong and taiwan'
  361.             ],
  362.             [
  363.               22278,
  364.               'yen/yuan character variant one'
  365.             ]
  366.           ]
  367.         },
  368.         {
  369.           name: 'Text',
  370.           characters: [
  371.             [
  372.               169,
  373.               'copyright sign'
  374.             ],
  375.             [
  376.               174,
  377.               'registered sign'
  378.             ],
  379.             [
  380.               8482,
  381.               'trade mark sign'
  382.             ],
  383.             [
  384.               8240,
  385.               'per mille sign'
  386.             ],
  387.             [
  388.               181,
  389.               'micro sign'
  390.             ],
  391.             [
  392.               183,
  393.               'middle dot'
  394.             ],
  395.             [
  396.               8226,
  397.               'bullet'
  398.             ],
  399.             [
  400.               8230,
  401.               'three dot leader'
  402.             ],
  403.             [
  404.               8242,
  405.               'minutes / feet'
  406.             ],
  407.             [
  408.               8243,
  409.               'seconds / inches'
  410.             ],
  411.             [
  412.               167,
  413.               'section sign'
  414.             ],
  415.             [
  416.               182,
  417.               'paragraph sign'
  418.             ],
  419.             [
  420.               223,
  421.               'sharp s / ess-zed'
  422.             ]
  423.           ]
  424.         },
  425.         {
  426.           name: 'Quotations',
  427.           characters: [
  428.             [
  429.               8249,
  430.               'single left-pointing angle quotation mark'
  431.             ],
  432.             [
  433.               8250,
  434.               'single right-pointing angle quotation mark'
  435.             ],
  436.             [
  437.               171,
  438.               'left pointing guillemet'
  439.             ],
  440.             [
  441.               187,
  442.               'right pointing guillemet'
  443.             ],
  444.             [
  445.               8216,
  446.               'left single quotation mark'
  447.             ],
  448.             [
  449.               8217,
  450.               'right single quotation mark'
  451.             ],
  452.             [
  453.               8220,
  454.               'left double quotation mark'
  455.             ],
  456.             [
  457.               8221,
  458.               'right double quotation mark'
  459.             ],
  460.             [
  461.               8218,
  462.               'single low-9 quotation mark'
  463.             ],
  464.             [
  465.               8222,
  466.               'double low-9 quotation mark'
  467.             ],
  468.             [
  469.               60,
  470.               'less-than sign'
  471.             ],
  472.             [
  473.               62,
  474.               'greater-than sign'
  475.             ],
  476.             [
  477.               8804,
  478.               'less-than or equal to'
  479.             ],
  480.             [
  481.               8805,
  482.               'greater-than or equal to'
  483.             ],
  484.             [
  485.               8211,
  486.               'en dash'
  487.             ],
  488.             [
  489.               8212,
  490.               'em dash'
  491.             ],
  492.             [
  493.               175,
  494.               'macron'
  495.             ],
  496.             [
  497.               8254,
  498.               'overline'
  499.             ],
  500.             [
  501.               164,
  502.               'currency sign'
  503.             ],
  504.             [
  505.               166,
  506.               'broken bar'
  507.             ],
  508.             [
  509.               168,
  510.               'diaeresis'
  511.             ],
  512.             [
  513.               161,
  514.               'inverted exclamation mark'
  515.             ],
  516.             [
  517.               191,
  518.               'turned question mark'
  519.             ],
  520.             [
  521.               710,
  522.               'circumflex accent'
  523.             ],
  524.             [
  525.               732,
  526.               'small tilde'
  527.             ],
  528.             [
  529.               176,
  530.               'degree sign'
  531.             ],
  532.             [
  533.               8722,
  534.               'minus sign'
  535.             ],
  536.             [
  537.               177,
  538.               'plus-minus sign'
  539.             ],
  540.             [
  541.               247,
  542.               'division sign'
  543.             ],
  544.             [
  545.               8260,
  546.               'fraction slash'
  547.             ],
  548.             [
  549.               215,
  550.               'multiplication sign'
  551.             ],
  552.             [
  553.               185,
  554.               'superscript one'
  555.             ],
  556.             [
  557.               178,
  558.               'superscript two'
  559.             ],
  560.             [
  561.               179,
  562.               'superscript three'
  563.             ],
  564.             [
  565.               188,
  566.               'fraction one quarter'
  567.             ],
  568.             [
  569.               189,
  570.               'fraction one half'
  571.             ],
  572.             [
  573.               190,
  574.               'fraction three quarters'
  575.             ]
  576.           ]
  577.         },
  578.         {
  579.           name: 'Mathematical',
  580.           characters: [
  581.             [
  582.               402,
  583.               'function / florin'
  584.             ],
  585.             [
  586.               8747,
  587.               'integral'
  588.             ],
  589.             [
  590.               8721,
  591.               'n-ary sumation'
  592.             ],
  593.             [
  594.               8734,
  595.               'infinity'
  596.             ],
  597.             [
  598.               8730,
  599.               'square root'
  600.             ],
  601.             [
  602.               8764,
  603.               'similar to'
  604.             ],
  605.             [
  606.               8773,
  607.               'approximately equal to'
  608.             ],
  609.             [
  610.               8776,
  611.               'almost equal to'
  612.             ],
  613.             [
  614.               8800,
  615.               'not equal to'
  616.             ],
  617.             [
  618.               8801,
  619.               'identical to'
  620.             ],
  621.             [
  622.               8712,
  623.               'element of'
  624.             ],
  625.             [
  626.               8713,
  627.               'not an element of'
  628.             ],
  629.             [
  630.               8715,
  631.               'contains as member'
  632.             ],
  633.             [
  634.               8719,
  635.               'n-ary product'
  636.             ],
  637.             [
  638.               8743,
  639.               'logical and'
  640.             ],
  641.             [
  642.               8744,
  643.               'logical or'
  644.             ],
  645.             [
  646.               172,
  647.               'not sign'
  648.             ],
  649.             [
  650.               8745,
  651.               'intersection'
  652.             ],
  653.             [
  654.               8746,
  655.               'union'
  656.             ],
  657.             [
  658.               8706,
  659.               'partial differential'
  660.             ],
  661.             [
  662.               8704,
  663.               'for all'
  664.             ],
  665.             [
  666.               8707,
  667.               'there exists'
  668.             ],
  669.             [
  670.               8709,
  671.               'diameter'
  672.             ],
  673.             [
  674.               8711,
  675.               'backward difference'
  676.             ],
  677.             [
  678.               8727,
  679.               'asterisk operator'
  680.             ],
  681.             [
  682.               8733,
  683.               'proportional to'
  684.             ],
  685.             [
  686.               8736,
  687.               'angle'
  688.             ]
  689.           ]
  690.         },
  691.         {
  692.           name: 'Extended Latin',
  693.           characters: [
  694.             [
  695.               192,
  696.               'A - grave'
  697.             ],
  698.             [
  699.               193,
  700.               'A - acute'
  701.             ],
  702.             [
  703.               194,
  704.               'A - circumflex'
  705.             ],
  706.             [
  707.               195,
  708.               'A - tilde'
  709.             ],
  710.             [
  711.               196,
  712.               'A - diaeresis'
  713.             ],
  714.             [
  715.               197,
  716.               'A - ring above'
  717.             ],
  718.             [
  719.               256,
  720.               'A - macron'
  721.             ],
  722.             [
  723.               198,
  724.               'ligature AE'
  725.             ],
  726.             [
  727.               199,
  728.               'C - cedilla'
  729.             ],
  730.             [
  731.               200,
  732.               'E - grave'
  733.             ],
  734.             [
  735.               201,
  736.               'E - acute'
  737.             ],
  738.             [
  739.               202,
  740.               'E - circumflex'
  741.             ],
  742.             [
  743.               203,
  744.               'E - diaeresis'
  745.             ],
  746.             [
  747.               274,
  748.               'E - macron'
  749.             ],
  750.             [
  751.               204,
  752.               'I - grave'
  753.             ],
  754.             [
  755.               205,
  756.               'I - acute'
  757.             ],
  758.             [
  759.               206,
  760.               'I - circumflex'
  761.             ],
  762.             [
  763.               207,
  764.               'I - diaeresis'
  765.             ],
  766.             [
  767.               298,
  768.               'I - macron'
  769.             ],
  770.             [
  771.               208,
  772.               'ETH'
  773.             ],
  774.             [
  775.               209,
  776.               'N - tilde'
  777.             ],
  778.             [
  779.               210,
  780.               'O - grave'
  781.             ],
  782.             [
  783.               211,
  784.               'O - acute'
  785.             ],
  786.             [
  787.               212,
  788.               'O - circumflex'
  789.             ],
  790.             [
  791.               213,
  792.               'O - tilde'
  793.             ],
  794.             [
  795.               214,
  796.               'O - diaeresis'
  797.             ],
  798.             [
  799.               216,
  800.               'O - slash'
  801.             ],
  802.             [
  803.               332,
  804.               'O - macron'
  805.             ],
  806.             [
  807.               338,
  808.               'ligature OE'
  809.             ],
  810.             [
  811.               352,
  812.               'S - caron'
  813.             ],
  814.             [
  815.               217,
  816.               'U - grave'
  817.             ],
  818.             [
  819.               218,
  820.               'U - acute'
  821.             ],
  822.             [
  823.               219,
  824.               'U - circumflex'
  825.             ],
  826.             [
  827.               220,
  828.               'U - diaeresis'
  829.             ],
  830.             [
  831.               362,
  832.               'U - macron'
  833.             ],
  834.             [
  835.               221,
  836.               'Y - acute'
  837.             ],
  838.             [
  839.               376,
  840.               'Y - diaeresis'
  841.             ],
  842.             [
  843.               562,
  844.               'Y - macron'
  845.             ],
  846.             [
  847.               222,
  848.               'THORN'
  849.             ],
  850.             [
  851.               224,
  852.               'a - grave'
  853.             ],
  854.             [
  855.               225,
  856.               'a - acute'
  857.             ],
  858.             [
  859.               226,
  860.               'a - circumflex'
  861.             ],
  862.             [
  863.               227,
  864.               'a - tilde'
  865.             ],
  866.             [
  867.               228,
  868.               'a - diaeresis'
  869.             ],
  870.             [
  871.               229,
  872.               'a - ring above'
  873.             ],
  874.             [
  875.               257,
  876.               'a - macron'
  877.             ],
  878.             [
  879.               230,
  880.               'ligature ae'
  881.             ],
  882.             [
  883.               231,
  884.               'c - cedilla'
  885.             ],
  886.             [
  887.               232,
  888.               'e - grave'
  889.             ],
  890.             [
  891.               233,
  892.               'e - acute'
  893.             ],
  894.             [
  895.               234,
  896.               'e - circumflex'
  897.             ],
  898.             [
  899.               235,
  900.               'e - diaeresis'
  901.             ],
  902.             [
  903.               275,
  904.               'e - macron'
  905.             ],
  906.             [
  907.               236,
  908.               'i - grave'
  909.             ],
  910.             [
  911.               237,
  912.               'i - acute'
  913.             ],
  914.             [
  915.               238,
  916.               'i - circumflex'
  917.             ],
  918.             [
  919.               239,
  920.               'i - diaeresis'
  921.             ],
  922.             [
  923.               299,
  924.               'i - macron'
  925.             ],
  926.             [
  927.               240,
  928.               'eth'
  929.             ],
  930.             [
  931.               241,
  932.               'n - tilde'
  933.             ],
  934.             [
  935.               242,
  936.               'o - grave'
  937.             ],
  938.             [
  939.               243,
  940.               'o - acute'
  941.             ],
  942.             [
  943.               244,
  944.               'o - circumflex'
  945.             ],
  946.             [
  947.               245,
  948.               'o - tilde'
  949.             ],
  950.             [
  951.               246,
  952.               'o - diaeresis'
  953.             ],
  954.             [
  955.               248,
  956.               'o slash'
  957.             ],
  958.             [
  959.               333,
  960.               'o macron'
  961.             ],
  962.             [
  963.               339,
  964.               'ligature oe'
  965.             ],
  966.             [
  967.               353,
  968.               's - caron'
  969.             ],
  970.             [
  971.               249,
  972.               'u - grave'
  973.             ],
  974.             [
  975.               250,
  976.               'u - acute'
  977.             ],
  978.             [
  979.               251,
  980.               'u - circumflex'
  981.             ],
  982.             [
  983.               252,
  984.               'u - diaeresis'
  985.             ],
  986.             [
  987.               363,
  988.               'u - macron'
  989.             ],
  990.             [
  991.               253,
  992.               'y - acute'
  993.             ],
  994.             [
  995.               254,
  996.               'thorn'
  997.             ],
  998.             [
  999.               255,
  1000.               'y - diaeresis'
  1001.             ],
  1002.             [
  1003.               563,
  1004.               'y - macron'
  1005.             ],
  1006.             [
  1007.               913,
  1008.               'Alpha'
  1009.             ],
  1010.             [
  1011.               914,
  1012.               'Beta'
  1013.             ],
  1014.             [
  1015.               915,
  1016.               'Gamma'
  1017.             ],
  1018.             [
  1019.               916,
  1020.               'Delta'
  1021.             ],
  1022.             [
  1023.               917,
  1024.               'Epsilon'
  1025.             ],
  1026.             [
  1027.               918,
  1028.               'Zeta'
  1029.             ],
  1030.             [
  1031.               919,
  1032.               'Eta'
  1033.             ],
  1034.             [
  1035.               920,
  1036.               'Theta'
  1037.             ],
  1038.             [
  1039.               921,
  1040.               'Iota'
  1041.             ],
  1042.             [
  1043.               922,
  1044.               'Kappa'
  1045.             ],
  1046.             [
  1047.               923,
  1048.               'Lambda'
  1049.             ],
  1050.             [
  1051.               924,
  1052.               'Mu'
  1053.             ],
  1054.             [
  1055.               925,
  1056.               'Nu'
  1057.             ],
  1058.             [
  1059.               926,
  1060.               'Xi'
  1061.             ],
  1062.             [
  1063.               927,
  1064.               'Omicron'
  1065.             ],
  1066.             [
  1067.               928,
  1068.               'Pi'
  1069.             ],
  1070.             [
  1071.               929,
  1072.               'Rho'
  1073.             ],
  1074.             [
  1075.               931,
  1076.               'Sigma'
  1077.             ],
  1078.             [
  1079.               932,
  1080.               'Tau'
  1081.             ],
  1082.             [
  1083.               933,
  1084.               'Upsilon'
  1085.             ],
  1086.             [
  1087.               934,
  1088.               'Phi'
  1089.             ],
  1090.             [
  1091.               935,
  1092.               'Chi'
  1093.             ],
  1094.             [
  1095.               936,
  1096.               'Psi'
  1097.             ],
  1098.             [
  1099.               937,
  1100.               'Omega'
  1101.             ],
  1102.             [
  1103.               945,
  1104.               'alpha'
  1105.             ],
  1106.             [
  1107.               946,
  1108.               'beta'
  1109.             ],
  1110.             [
  1111.               947,
  1112.               'gamma'
  1113.             ],
  1114.             [
  1115.               948,
  1116.               'delta'
  1117.             ],
  1118.             [
  1119.               949,
  1120.               'epsilon'
  1121.             ],
  1122.             [
  1123.               950,
  1124.               'zeta'
  1125.             ],
  1126.             [
  1127.               951,
  1128.               'eta'
  1129.             ],
  1130.             [
  1131.               952,
  1132.               'theta'
  1133.             ],
  1134.             [
  1135.               953,
  1136.               'iota'
  1137.             ],
  1138.             [
  1139.               954,
  1140.               'kappa'
  1141.             ],
  1142.             [
  1143.               955,
  1144.               'lambda'
  1145.             ],
  1146.             [
  1147.               956,
  1148.               'mu'
  1149.             ],
  1150.             [
  1151.               957,
  1152.               'nu'
  1153.             ],
  1154.             [
  1155.               958,
  1156.               'xi'
  1157.             ],
  1158.             [
  1159.               959,
  1160.               'omicron'
  1161.             ],
  1162.             [
  1163.               960,
  1164.               'pi'
  1165.             ],
  1166.             [
  1167.               961,
  1168.               'rho'
  1169.             ],
  1170.             [
  1171.               962,
  1172.               'final sigma'
  1173.             ],
  1174.             [
  1175.               963,
  1176.               'sigma'
  1177.             ],
  1178.             [
  1179.               964,
  1180.               'tau'
  1181.             ],
  1182.             [
  1183.               965,
  1184.               'upsilon'
  1185.             ],
  1186.             [
  1187.               966,
  1188.               'phi'
  1189.             ],
  1190.             [
  1191.               967,
  1192.               'chi'
  1193.             ],
  1194.             [
  1195.               968,
  1196.               'psi'
  1197.             ],
  1198.             [
  1199.               969,
  1200.               'omega'
  1201.             ]
  1202.           ]
  1203.         },
  1204.         {
  1205.           name: 'Symbols',
  1206.           characters: [
  1207.             [
  1208.               8501,
  1209.               'alef symbol'
  1210.             ],
  1211.             [
  1212.               982,
  1213.               'pi symbol'
  1214.             ],
  1215.             [
  1216.               8476,
  1217.               'real part symbol'
  1218.             ],
  1219.             [
  1220.               978,
  1221.               'upsilon - hook symbol'
  1222.             ],
  1223.             [
  1224.               8472,
  1225.               'Weierstrass p'
  1226.             ],
  1227.             [
  1228.               8465,
  1229.               'imaginary part'
  1230.             ]
  1231.           ]
  1232.         },
  1233.         {
  1234.           name: 'Arrows',
  1235.           characters: [
  1236.             [
  1237.               8592,
  1238.               'leftwards arrow'
  1239.             ],
  1240.             [
  1241.               8593,
  1242.               'upwards arrow'
  1243.             ],
  1244.             [
  1245.               8594,
  1246.               'rightwards arrow'
  1247.             ],
  1248.             [
  1249.               8595,
  1250.               'downwards arrow'
  1251.             ],
  1252.             [
  1253.               8596,
  1254.               'left right arrow'
  1255.             ],
  1256.             [
  1257.               8629,
  1258.               'carriage return'
  1259.             ],
  1260.             [
  1261.               8656,
  1262.               'leftwards double arrow'
  1263.             ],
  1264.             [
  1265.               8657,
  1266.               'upwards double arrow'
  1267.             ],
  1268.             [
  1269.               8658,
  1270.               'rightwards double arrow'
  1271.             ],
  1272.             [
  1273.               8659,
  1274.               'downwards double arrow'
  1275.             ],
  1276.             [
  1277.               8660,
  1278.               'left right double arrow'
  1279.             ],
  1280.             [
  1281.               8756,
  1282.               'therefore'
  1283.             ],
  1284.             [
  1285.               8834,
  1286.               'subset of'
  1287.             ],
  1288.             [
  1289.               8835,
  1290.               'superset of'
  1291.             ],
  1292.             [
  1293.               8836,
  1294.               'not a subset of'
  1295.             ],
  1296.             [
  1297.               8838,
  1298.               'subset of or equal to'
  1299.             ],
  1300.             [
  1301.               8839,
  1302.               'superset of or equal to'
  1303.             ],
  1304.             [
  1305.               8853,
  1306.               'circled plus'
  1307.             ],
  1308.             [
  1309.               8855,
  1310.               'circled times'
  1311.             ],
  1312.             [
  1313.               8869,
  1314.               'perpendicular'
  1315.             ],
  1316.             [
  1317.               8901,
  1318.               'dot operator'
  1319.             ],
  1320.             [
  1321.               8968,
  1322.               'left ceiling'
  1323.             ],
  1324.             [
  1325.               8969,
  1326.               'right ceiling'
  1327.             ],
  1328.             [
  1329.               8970,
  1330.               'left floor'
  1331.             ],
  1332.             [
  1333.               8971,
  1334.               'right floor'
  1335.             ],
  1336.             [
  1337.               9001,
  1338.               'left-pointing angle bracket'
  1339.             ],
  1340.             [
  1341.               9002,
  1342.               'right-pointing angle bracket'
  1343.             ],
  1344.             [
  1345.               9674,
  1346.               'lozenge'
  1347.             ],
  1348.             [
  1349.               9824,
  1350.               'black spade suit'
  1351.             ],
  1352.             [
  1353.               9827,
  1354.               'black club suit'
  1355.             ],
  1356.             [
  1357.               9829,
  1358.               'black heart suit'
  1359.             ],
  1360.             [
  1361.               9830,
  1362.               'black diamond suit'
  1363.             ],
  1364.             [
  1365.               8194,
  1366.               'en space'
  1367.             ],
  1368.             [
  1369.               8195,
  1370.               'em space'
  1371.             ],
  1372.             [
  1373.               8201,
  1374.               'thin space'
  1375.             ],
  1376.             [
  1377.               8204,
  1378.               'zero width non-joiner'
  1379.             ],
  1380.             [
  1381.               8205,
  1382.               'zero width joiner'
  1383.             ],
  1384.             [
  1385.               8206,
  1386.               'left-to-right mark'
  1387.             ],
  1388.             [
  1389.               8207,
  1390.               'right-to-left mark'
  1391.             ]
  1392.           ]
  1393.         }
  1394.       ];
  1395.     };
  1396.     var charmapFilter = function (charmap) {
  1397.       return global$1.grep(charmap, function (item) {
  1398.         return isArray(item) && item.length === 2;
  1399.       });
  1400.     };
  1401.     var getCharsFromSetting = function (settingValue) {
  1402.       if (isArray(settingValue)) {
  1403.         return charmapFilter(settingValue);
  1404.       }
  1405.       if (typeof settingValue === 'function') {
  1406.         return settingValue();
  1407.       }
  1408.       return [];
  1409.     };
  1410.     var extendCharMap = function (editor, charmap) {
  1411.       var userCharMap = getCharMap$1(editor);
  1412.       if (userCharMap) {
  1413.         charmap = [{
  1414.             name: UserDefined,
  1415.             characters: getCharsFromSetting(userCharMap)
  1416.           }];
  1417.       }
  1418.       var userCharMapAppend = getCharMapAppend(editor);
  1419.       if (userCharMapAppend) {
  1420.         var userDefinedGroup = global$1.grep(charmap, function (cg) {
  1421.           return cg.name === UserDefined;
  1422.         });
  1423.         if (userDefinedGroup.length) {
  1424.           userDefinedGroup[0].characters = [].concat(userDefinedGroup[0].characters).concat(getCharsFromSetting(userCharMapAppend));
  1425.           return charmap;
  1426.         }
  1427.         return charmap.concat({
  1428.           name: UserDefined,
  1429.           characters: getCharsFromSetting(userCharMapAppend)
  1430.         });
  1431.       }
  1432.       return charmap;
  1433.     };
  1434.     var getCharMap = function (editor) {
  1435.       var groups = extendCharMap(editor, getDefaultCharMap());
  1436.       return groups.length > 1 ? [{
  1437.           name: 'All',
  1438.           characters: bind(groups, function (g) {
  1439.             return g.characters;
  1440.           })
  1441.         }].concat(groups) : groups;
  1442.     };
  1443.  
  1444.     var get = function (editor) {
  1445.       var getCharMap$1 = function () {
  1446.         return getCharMap(editor);
  1447.       };
  1448.       var insertChar$1 = function (chr) {
  1449.         insertChar(editor, chr);
  1450.       };
  1451.       return {
  1452.         getCharMap: getCharMap$1,
  1453.         insertChar: insertChar$1
  1454.       };
  1455.     };
  1456.  
  1457.     var Cell = function (initial) {
  1458.       var value = initial;
  1459.       var get = function () {
  1460.         return value;
  1461.       };
  1462.       var set = function (v) {
  1463.         value = v;
  1464.       };
  1465.       return {
  1466.         get: get,
  1467.         set: set
  1468.       };
  1469.     };
  1470.  
  1471.     var last = function (fn, rate) {
  1472.       var timer = null;
  1473.       var cancel = function () {
  1474.         if (!isNull(timer)) {
  1475.           clearTimeout(timer);
  1476.           timer = null;
  1477.         }
  1478.       };
  1479.       var throttle = function () {
  1480.         var args = [];
  1481.         for (var _i = 0; _i < arguments.length; _i++) {
  1482.           args[_i] = arguments[_i];
  1483.         }
  1484.         cancel();
  1485.         timer = setTimeout(function () {
  1486.           timer = null;
  1487.           fn.apply(null, args);
  1488.         }, rate);
  1489.       };
  1490.       return {
  1491.         cancel: cancel,
  1492.         throttle: throttle
  1493.       };
  1494.     };
  1495.  
  1496.     var nativeFromCodePoint = String.fromCodePoint;
  1497.     var contains = function (str, substr) {
  1498.       return str.indexOf(substr) !== -1;
  1499.     };
  1500.     var fromCodePoint = function () {
  1501.       var codePoints = [];
  1502.       for (var _i = 0; _i < arguments.length; _i++) {
  1503.         codePoints[_i] = arguments[_i];
  1504.       }
  1505.       if (nativeFromCodePoint) {
  1506.         return nativeFromCodePoint.apply(void 0, codePoints);
  1507.       } else {
  1508.         var codeUnits = [];
  1509.         var codeLen = 0;
  1510.         var result = '';
  1511.         for (var index = 0, len = codePoints.length; index !== len; ++index) {
  1512.           var codePoint = +codePoints[index];
  1513.           if (!(codePoint < 1114111 && codePoint >>> 0 === codePoint)) {
  1514.             throw RangeError('Invalid code point: ' + codePoint);
  1515.           }
  1516.           if (codePoint <= 65535) {
  1517.             codeLen = codeUnits.push(codePoint);
  1518.           } else {
  1519.             codePoint -= 65536;
  1520.             codeLen = codeUnits.push((codePoint >> 10) + 55296, codePoint % 1024 + 56320);
  1521.           }
  1522.           if (codeLen >= 16383) {
  1523.             result += String.fromCharCode.apply(null, codeUnits);
  1524.             codeUnits.length = 0;
  1525.           }
  1526.         }
  1527.         return result + String.fromCharCode.apply(null, codeUnits);
  1528.       }
  1529.     };
  1530.  
  1531.     var charMatches = function (charCode, name, lowerCasePattern) {
  1532.       if (contains(fromCodePoint(charCode).toLowerCase(), lowerCasePattern)) {
  1533.         return true;
  1534.       } else {
  1535.         return contains(name.toLowerCase(), lowerCasePattern) || contains(name.toLowerCase().replace(/\s+/g, ''), lowerCasePattern);
  1536.       }
  1537.     };
  1538.     var scan = function (group, pattern) {
  1539.       var matches = [];
  1540.       var lowerCasePattern = pattern.toLowerCase();
  1541.       each(group.characters, function (g) {
  1542.         if (charMatches(g[0], g[1], lowerCasePattern)) {
  1543.           matches.push(g);
  1544.         }
  1545.       });
  1546.       return map(matches, function (m) {
  1547.         return {
  1548.           text: m[1],
  1549.           value: fromCodePoint(m[0]),
  1550.           icon: fromCodePoint(m[0])
  1551.         };
  1552.       });
  1553.     };
  1554.  
  1555.     var patternName = 'pattern';
  1556.     var open = function (editor, charMap) {
  1557.       var makeGroupItems = function () {
  1558.         return [
  1559.           {
  1560.             label: 'Search',
  1561.             type: 'input',
  1562.             name: patternName
  1563.           },
  1564.           {
  1565.             type: 'collection',
  1566.             name: 'results'
  1567.           }
  1568.         ];
  1569.       };
  1570.       var makeTabs = function () {
  1571.         return map(charMap, function (charGroup) {
  1572.           return {
  1573.             title: charGroup.name,
  1574.             name: charGroup.name,
  1575.             items: makeGroupItems()
  1576.           };
  1577.         });
  1578.       };
  1579.       var makePanel = function () {
  1580.         return {
  1581.           type: 'panel',
  1582.           items: makeGroupItems()
  1583.         };
  1584.       };
  1585.       var makeTabPanel = function () {
  1586.         return {
  1587.           type: 'tabpanel',
  1588.           tabs: makeTabs()
  1589.         };
  1590.       };
  1591.       var currentTab = charMap.length === 1 ? Cell(UserDefined) : Cell('All');
  1592.       var scanAndSet = function (dialogApi, pattern) {
  1593.         find(charMap, function (group) {
  1594.           return group.name === currentTab.get();
  1595.         }).each(function (f) {
  1596.           var items = scan(f, pattern);
  1597.           dialogApi.setData({ results: items });
  1598.         });
  1599.       };
  1600.       var SEARCH_DELAY = 40;
  1601.       var updateFilter = last(function (dialogApi) {
  1602.         var pattern = dialogApi.getData().pattern;
  1603.         scanAndSet(dialogApi, pattern);
  1604.       }, SEARCH_DELAY);
  1605.       var body = charMap.length === 1 ? makePanel() : makeTabPanel();
  1606.       var initialData = {
  1607.         pattern: '',
  1608.         results: scan(charMap[0], '')
  1609.       };
  1610.       var bridgeSpec = {
  1611.         title: 'Special Character',
  1612.         size: 'normal',
  1613.         body: body,
  1614.         buttons: [{
  1615.             type: 'cancel',
  1616.             name: 'close',
  1617.             text: 'Close',
  1618.             primary: true
  1619.           }],
  1620.         initialData: initialData,
  1621.         onAction: function (api, details) {
  1622.           if (details.name === 'results') {
  1623.             insertChar(editor, details.value);
  1624.             api.close();
  1625.           }
  1626.         },
  1627.         onTabChange: function (dialogApi, details) {
  1628.           currentTab.set(details.newTabName);
  1629.           updateFilter.throttle(dialogApi);
  1630.         },
  1631.         onChange: function (dialogApi, changeData) {
  1632.           if (changeData.name === patternName) {
  1633.             updateFilter.throttle(dialogApi);
  1634.           }
  1635.         }
  1636.       };
  1637.       var dialogApi = editor.windowManager.open(bridgeSpec);
  1638.       dialogApi.focus(patternName);
  1639.     };
  1640.  
  1641.     var register$1 = function (editor, charMap) {
  1642.       editor.addCommand('mceShowCharmap', function () {
  1643.         open(editor, charMap);
  1644.       });
  1645.     };
  1646.  
  1647.     var global = tinymce.util.Tools.resolve('tinymce.util.Promise');
  1648.  
  1649.     var init = function (editor, all) {
  1650.       editor.ui.registry.addAutocompleter('charmap', {
  1651.         ch: ':',
  1652.         columns: 'auto',
  1653.         minChars: 2,
  1654.         fetch: function (pattern, _maxResults) {
  1655.           return new global(function (resolve, _reject) {
  1656.             resolve(scan(all, pattern));
  1657.           });
  1658.         },
  1659.         onAction: function (autocompleteApi, rng, value) {
  1660.           editor.selection.setRng(rng);
  1661.           editor.insertContent(value);
  1662.           autocompleteApi.hide();
  1663.         }
  1664.       });
  1665.     };
  1666.  
  1667.     var register = function (editor) {
  1668.       editor.ui.registry.addButton('charmap', {
  1669.         icon: 'insert-character',
  1670.         tooltip: 'Special character',
  1671.         onAction: function () {
  1672.           return editor.execCommand('mceShowCharmap');
  1673.         }
  1674.       });
  1675.       editor.ui.registry.addMenuItem('charmap', {
  1676.         icon: 'insert-character',
  1677.         text: 'Special character...',
  1678.         onAction: function () {
  1679.           return editor.execCommand('mceShowCharmap');
  1680.         }
  1681.       });
  1682.     };
  1683.  
  1684.     function Plugin () {
  1685.       global$2.add('charmap', function (editor) {
  1686.         var charMap = getCharMap(editor);
  1687.         register$1(editor, charMap);
  1688.         register(editor);
  1689.         init(editor, charMap[0]);
  1690.         return get(editor);
  1691.       });
  1692.     }
  1693.  
  1694.     Plugin();
  1695.  
  1696. }());
  1697.