string-to-unicode-variant
Version:
Javascript function to convert a string into different kind of ⓤⓝⓘⓒⓞⓓⓔ variants.
1 lines • 32.1 kB
Source Map (JSON)
{"version":3,"sources":["../toUnicodeVariant.js","../index.ts"],"sourcesContent":["/**\n * (c) David Konrad 2018-\n * MIT License\n *\n * Javascript function to convert plain text to unicode variants\n *\n * For more inspiration see http://unicode.org/charts/ \n *\n */\n\nfunction toUnicodeVariant(str, variant, combinings) {\n\n\tconst string = String.fromCodePoint\n\n\tconst offsets = {\n\t\tm: [0x1d670, 0x1d7f6],\n\t\tb: [0x1d400, 0x1d7ce],\n\t\ti: [0x1d434, 0x00030],\n\t\tbi: [0x1d468, 0x00030],\n\t\tc: [0x0001d49c, 0x00030],\n\t\tbc: [0x1d4d0, 0x00030],\n\t\tg: [0x1d504, 0x00030],\n\t\td: [0x1d538, 0x1d7d8],\n\t\tbg: [0x1d56c, 0x00030],\n\t\ts: [0x1d5a0, 0x1d7e2],\n\t\tbs: [0x1d5d4, 0x1d7ec],\n\t\tis: [0x1d608, 0x00030],\n\t\tbis: [0x1d63c, 0x00030],\n\t\to: [0x24B6, 0x245F],\n\t\ton: [0x0001f150, 0x245F],\n\t\tp: [0x1F110, 0x1d7f6],\n\t\tq: [0x1f130, 0x00030],\n\t\tqn: [0x0001F170, 0x00030],\n\t\tw: [0xff21, 0xff10],\n\t\t//\n\t\tf: [0x1F1E6, 0x1d7f6],\n\t\tnd: [0x1d670, 0x2487],\n\t\tnc: [0x1d670, 0x1F101],\n\t\tndc: [0x1d670, 0x24F4],\n\t\tr: [0x1d670, 0x24F4],\n\t}\n\n\tconst variantOffsets = {\n\t\t'monospace': 'm',\n\t\t'bold' : 'b',\n\t\t'italic' : 'i',\n\t\t'bold italic' : 'bi',\n\t\t'script': 'c',\n\t\t'bold script': 'bc',\n\t\t'gothic': 'g',\n\t\t'gothic bold': 'bg',\n\t\t'doublestruck': 'd',\n\t\t'sans': 's',\n\t\t'bold sans' : 'bs',\n\t\t'italic sans': 'is',\n\t\t'bold italic sans': 'bis',\n\t\t'parenthesis': 'p',\n\t\t'circled': 'o',\n\t\t'circled negative': 'on',\n\t\t'squared': 'q',\n\t\t'squared negative': 'qn',\n\t\t'fullwidth': 'w',\n\t\t//\n\t\t'flags': 'f',\n\t\t'numbers dot': 'nd',\n\t\t'numbers comma': 'nc',\n\t\t'numbers double circled': 'ndc',\n\t\t'roman': 'r'\n\t}\n\n\tconst special = {\n\t\tm: { \n\t\t\t' ': 0x2000, '-': 0x2013 \n\t\t},\n\t\ti: { \n\t\t\t'h': 0x210e \n\t\t},\n\t\tc: { \n\t\t\t'B': 0x212C, 'E': 0x2130, 'F': 0x2131, 'H': 0x210B, 'I': 0x2110, 'L': 0x2112, \n\t\t\t'M': 0x2133, 'R': 0x211B, 'e': 0x1D4EE, 'g': 0x1D4F0, 'o': 0x1D4F8\n\t\t},\n\t\tg: {\n\t\t\t'C': 0x212d, 'H': 0x210c, 'I': 0x2111, 'R': 0x211c, 'Z': 0x2128\n\t\t},\n\t\td: {\n\t\t\t'C': 0x2102, 'H': 0x210D, 'N': 0x2115, 'P': 0x2119, 'Q': 0x211A, 'R': 0x211D, 'Z': 0x2124\n\t\t},\n\t\to: {\n\t\t\t'0': 0x24EA,'10': 0x2469,\t'11': 0x246A, '12': 0x246B, '13': 0x246C, '14': 0x246D,\n\t\t\t'15': 0x246E, '16': 0x246F, '17': 0x2470, '18': 0x2471, '19': 0x2472, '20': 0x2473\n\t\t},\n\t\ton: {\n\t\t\t'0': 0x24FF, '11': 0x24EB, '12': 0x24EC, '13': 0x24ED, '14': 0x24EE, '15': 0x24EF,\n\t\t\t'16': 0x24F0, '17': 0x24F1, '18': 0x24F2, '19': 0x24F3, '20': 0x24F4\n\t\t},\n\t\tp: {\n\t\t\t'1': 0x2474, '2': 0x2475, '3': 0x2476, '4': 0x2477, '5': 0x2478, '6': 0x2479, \n\t\t\t'7': 0x247A, '8': 0x247B, '9': 0x247C, '10': 0x247D, '11': 0x247E, '12': 0x247F,\n\t\t\t'13': 0x2480, '14': 0x2481, '15': 0x2482, '16': 0x2483, '17': 0x2484, '18': 0x2485, \n\t\t\t'19': 0x2486, '20': 0x2487\n\t\t}, \n\t\tq: {\n\t\t\t'hv': 0x1F14A, 'mv': 0x1F14B, 'sd': 0x1F14C, 'ss': 0x1F14D, 'ppv': 0x1F14E, \n\t\t\t'wc': 0x1F14F, 'cl': 0x1F191, 'cool': 0x1F192, 'free': 0x1F193, 'id': 0x1F194, \n\t\t\t'new': 0x1F195, 'ng': 0x1F196, 'ok': 0x1F197, 'sos': 0x1F198, 'up!': 0x1F199, \n\t\t\t'vs': 0x1F19A, '3d': 0x1F19B, '2ndscr': 0x1F19C, '2k': 0x1F19D, '4k': 0x1F19E, \n\t\t\t'8k': 0x1F19F, '5.1': 0x1F1A0, '7.1': 0x1F1A1, '22.2': 0x1F1A2,\t'60p': 0x1F1A3, \n\t\t\t'120p': 0x1F1A4, 'd': 0x1F1A5, 'hc': 0x1F1A6, 'hdr': 0x1F1A7, 'hi-res': 0x1F1A8,\n\t\t\t'loss-less': 0x1F1A9, 'shv': 0x1F1AA, 'uhd': 0x1F1AB, 'vod': 0x1F1AC\n\t\t}, \n\t\tqn: {\n\t\t\t'ic' : 0x1F18B, 'pa' : 0x1F18C, 'sa' : 0x1F18D, 'ab' : 0x1F18E, 'wc' : 0x1F18F\n\t\t},\n\t\tw: {\n\t\t\t'!': 0xFF01, '\"': 0xFF02, '#': 0xFF03, '$': 0xFF04, '%': 0xFF05, '&': 0xFF06,\n\t\t\t'\\'': 0xFF07, '(': 0xFF08, ')': 0xFF09, '*': 0xFF0A, '+': 0xFF0B, ',': 0xFF0C,\n\t\t\t'-': 0xFF0D, '.': 0xFF0E, '/': 0xFF0F, ':': 0xFF1A, ';': 0xFF1B, '<': 0xFF1C, \n\t\t\t'=': 0xFF1D, '>': 0xFF1E, '?': 0xFF1F, '@': 0xFF20, '\\\\': 0xFF3C, '[': 0xFF3B,\n\t\t\t']': 0xFF3D, '^': 0xFF3E, '_': 0xFF3F,'`': 0xFF40, '{': 0xFF5B, '|': 0xFF5C,\n\t\t\t'}': 0xFF5D, '~': 0xFF5E, '⦅': 0xFF5F, '⦆': 0xFF60, '¢': 0xFFE0, '£': 0xFFE1,\n\t\t\t'¦': 0xFFE4, '¥': 0xFFE5, '₩': 0xFFE6, 'ー': 0xFF70, '。': 0xFF70, \t'、': 0xFF64, \n\t\t\t'・': 0xFF65, ' ̄': 0xFFE3, '¬': 0xFFE2\n\t\t},\n\t\tf: {},\n\t\tnd: {\n\t\t\t'0': 0x1F100, '10': 0x2491, '11': 0x2492, '12': 0x2493, '13': 0x2494, '14': 0x2495,\n\t\t\t'15': 0x2496, '16': 0x2497, '17': 0x2498, '18': 0x2499, '19': 0x249A, '20': 0x249B\n\t\t},\n\t\tndc: { \n\t\t\t'0': 0x1D7F6, '10': 0x24FE\n\t\t},\n\t\tr: {\n\t\t\t'I': 0x2160, 'II': 0x2161, 'III': 0x2162, 'IV': 0x2163, 'V': 0x2164, 'VI': 0x2165,\n\t\t\t'VII': 0x2166, 'VIII': 0x2167, 'IX': 0x2168, 'X': 0x2169, 'XI': 0x216A, 'XII': 0x216B,\n\t\t\t'L': 0x216C, 'C': 0x216D, 'D': 0x216E, 'M': 0x216F, 'i': 0x2170, 'ii': 0x2171,\n\t\t\t'iii': 0x2172, 'iv': 0x2173, 'v': 0x2174, 'vi': 0x2175, 'vii': 0x2176, 'viii': 0x2177,\n\t\t\t'ix': 0x2178, 'x': 0x2179, 'xi': 0x217A, 'xii': 0x217B, 'l': 0x217C, 'c': 0x217D,\n\t\t\t'd': 0x217E, 'm': 0x217F\n\t\t}\n\t}\n\n\t//paranthesis, support small letters\n\t//fullwidth, support small letters\n\tfor (var i = 97; i <= 122; i++) {\n\t\tspecial['p'][String.fromCharCode(i)] = 0x249C + (i-97)\n\t\tspecial['w'][String.fromCharCode(i)] = 0xFF41 + (i-97)\n\t}\n\n\t//circled negative, support small letters\n\t//squared, support small letters\n\t//squared negative, support small letters\n\t;['on', 'q', 'qn', 'f'].forEach(t => {\n\t\tfor (var i = 97; i <= 122; i++) {\n\t\t\tspecial[t][String.fromCharCode(i)] = offsets[t][0] + (i-97)\n\t\t}\n\t})\t\t\n\n\tconst diacritics = {\n\t\t'strike': { 'short': 's', 'code': 0x0336 },\n\t\t'strike-curly': { 'short': 'sc', 'code': 0x0334 },\n\t\t'underline': { 'short': 'u', 'code': 0x0332 },\n\t\t'underline-curly': { 'short': 'uc', 'code': 0x0330 },\n\t\t'underline-sm': { 'short': 'u-sm', 'code': 0x0320 },\n\t\t'underline-double': { 'short': 'ud', 'code': 0x0333 },\n\t\t'underline-double-sm': { 'short': 'ud-sm', 'code': 0x0347 },\n\t\t'overline': { 'short': 'o', 'code': 0x0305 },\n\t\t'overline-curly': { 'short': 'oc', 'code': 0x0303 },\n\t\t'overline-sm': { 'short': 'o-sm', 'code': 0x0304 },\n\t\t'overline-double' : { 'short': 'od', 'code': 0x033F },\n\t\t'slash': { 'short': 'sl', 'code': 0x0338 },\n\t\t'cross-above': { 'short': 'ca', 'code': 0x033D },\n\t\t'plus-below': { 'short': 'pb', 'code': 0x031F },\n\t\t'a-above': { 'short': 'a-a', 'code': 0x0363 },\n\t\t'c-above': { 'short': 'c-a', 'code': 0x0368 },\n\t\t'd-above': { 'short': 'd-a', 'code': 0x0369 },\n\t\t'e-above': { 'short': 'e-a', 'code': 0x0364 },\n\t\t'h-above': { 'short': 'h-a', 'code': 0x036A },\n\t\t'i-above': { 'short': 'i-a', 'code': 0x0365 },\n\t\t'm-above': { 'short': 'm-a', 'code': 0x036B },\n\t\t'o-above': { 'short': 'o-a', 'code': 0x0366 },\n\t\t'r-above': { 'short': 'r-a', 'code': 0x036C },\n\t\t'u-above': { 'short': 'u-a', 'code': 0x0367 },\n\t\t'v-above': { 'short': 'v-a', 'code': 0x036E },\n\t\t'x-above': { 'short': 'x-a', 'code': 0x036F },\n\t\t'halo-breve': { 'short': 'hb', 'code': 0x0488 },\n\t\t'halo-grave': { 'short': 'hg', 'code': 0x0489 },\n\t\t'enclose-circle': { 'short': 'en-c', 'code': 0x20DD },\n\t\t'enclose-backslash': { 'short': 'en-cb', 'code': 0x20E0 },\n\t\t'enclose-circle-backslash': { 'short': 'en-cb', 'code': 0x20E0 },\n\t\t'enclose-square': { 'short': 'en-s', 'code': 0x20DE },\n\t\t'enclose-diamond': { 'short': 'en-d', 'code': 0x20DF },\n\t\t'enclose-screen': { 'short': 'en-scr', 'code': 0x20E2 },\n\t\t'enclose-keycap': { 'short': 'en-key', 'code': 0x20E3 },\n\t\t//diacritics supporting special chars\n\t\t'diaeresis': { 'code': 0x0308 },\n\t\t'caron': { 'code': 0x030C },\n\t\t'perispomeni': { 'code': 0x0342 },\n\t\t'tilde': { 'code': 0x0303 },\n\t\t'tildesm': { 'code': 0x02DC },\n\t\t'circumflex': { 'code': 0x0302 }, \n\t\t'ringabove': { 'code': 0x030A },\n\t\t'dotabove': { 'code': 0x0307 },\n\t\t'dotbelow': { 'code': 0x0323 },\n\t\t'grave': { 'code': 0x0340 },\n\t\t'gravedouble': { 'code': 0x030F },\n\t\t'acute': { 'code': 0x0341 },\n\t\t'breve': { 'code': 0x0306 },\n\t\t'breveinverted': { 'code': 0x0311 },\n\t\t'commabelow': { 'code' : 0x0326 },\n\t\t'macron': { 'code': 0x0304 },\n\t\t'cedilla': { 'code': 0x0327 },\n\t\t'ogonek': { 'code': 0x0328 },\n\t\t'solidus': { 'code': 0x0338 },\n\t\t'solidussm': { 'code': 0x0337 },\n\t\t//spacing combinings\n\t\t'space-zero': { 'code': 0xFEFF },\n\t\t'space-hair': { 'code': 0x200A },\n\t\t'space-thin': { 'code': 0x2009 },\n\t\t'space': { 'code': 0x0020 },\n\t\t'space-en': { 'code': 0x2000 },\n\t\t'space-figure': { 'code': 0x2007 },\n\t\t'space-cjk': { 'code': 0x3000 },\n\t\t'space-em': { 'code': 0x2001 },\n\t\t'space-ogham': { 'code': 0x1680 },\n\t\t//combining grapheme joiner\n\t\t'CGJ': { 'code': 0x034F }\n\t}\n\n\tconst special_chars = {\n\t\t'ä': { 'char': 'a', 'combine': string(diacritics.diaeresis.code) },\n\t\t'â': { 'char': 'a', 'combine': string(diacritics.circumflex.code) },\n\t\t'á': { 'char': 'a', 'combine': string(diacritics.acute.code) },\n\t\t'å': { 'char': 'a', 'combine': string(diacritics.ringabove.code) },\n\t\t'ă': { 'char': 'a', 'combine': string(diacritics.breve.code) },\n\t\t'ǟ': { 'char': 'a', 'combine': string(diacritics.diaeresis.code) + string(diacritics.macron.code) },\n\t\t'ã': { 'char': 'a', 'combine': string(diacritics.tilde.code) },\n\t\t'ā': { 'char': 'a', 'combine': string(diacritics.macron.code) },\n\t\t'ȧ': { 'char': 'a', 'combine': string(diacritics.dotabove.code) },\n\t\t'ȃ': { 'char': 'a', 'combine': string(diacritics.breveinverted.code) },\n\t\t'ḅ': { 'char': 'b', 'combine': string(diacritics.dotbelow.code) },\n\t\t'č': { 'char': 'c', 'combine': string(diacritics.caron.code) },\n\t\t'ć': { 'char': 'c', 'combine': string(diacritics.acute.code) },\n\t\t'ç': { 'char': 'c', 'combine': string(diacritics.cedilla.code) },\n\t\t'ḉ': { 'char': 'c', 'combine': string(diacritics.cedilla.code) + string(diacritics.acute.code) },\n\t\t'ċ': { 'char': 'c', 'combine': string(diacritics.dotabove.code) },\n\t\t'ĉ': { 'char': 'c', 'combine': string(diacritics.circumflex.code) },\n\t\t'è': { 'char': 'e', 'combine': string(diacritics.grave.code) },\n\t\t'é': { 'char': 'e', 'combine': string(diacritics.acute.code) },\n\t\t'ē': { 'char': 'e', 'combine': string(diacritics.macron.code) }, \n\t\t'ĕ': { 'char': 'e', 'combine': string(diacritics.breve.code) }, \n\t\t'ë': { 'char': 'e', 'combine': string(diacritics.diaeresis.code) }, \n\t\t'ě': { 'char': 'e', 'combine': string(diacritics.caron.code) }, \n\t\t'ę': { 'char': 'e', 'combine': string(diacritics.ogonek.code) }, \n\t\t'ȇ': { 'char': 'e', 'combine': string(diacritics.breveinverted.code) }, \n\t\t'ȅ': { 'char': 'e', 'combine': string(diacritics.gravedouble.code) }, \n\t\t'ê': { 'char': 'e', 'combine': string(diacritics.circumflex.code) }, \n\t\t'ğ': { 'char': 'g', 'combine': string(diacritics.breve.code) }, \n\t\t'ǧ': { 'char': 'g', 'combine': string(diacritics.caron.code) }, \n\t\t'ģ': { 'char': 'g', 'combine': string(diacritics.cedilla.code) }, \n\t\t'ġ': { 'char': 'g', 'combine': string(diacritics.dotabove.code) }, \n\t\t'ḥ': { 'char': 'h', 'combine': string(diacritics.dotbelow.code) }, \n\t\t'î': { 'char': 'i', 'combine': string(diacritics.circumflex.code) }, \n\t\t'í': { 'char': 'i', 'combine': string(diacritics.acute.code) },\n\t\t'ì': { 'char': 'i', 'combine': string(diacritics.grave.code) },\n\t\t'ĩ': { 'char': 'i', 'combine': string(diacritics.tilde.code) },\n\t\t'ḱ': { 'char': 'k', 'combine': string(diacritics.acute.code) }, \n\t\t'ḳ': { 'char': 'k', 'combine': string(diacritics.dotbelow.code) }, \n\t\t'ņ': { 'char': 'n', 'combine': string(diacritics.ogonek.code) }, \n\t\t'ń': { 'char': 'n', 'combine': string(diacritics.acute.code) }, \n\t\t'õ': { 'char': 'o', 'combine': string(diacritics.tilde.code) },\n\t\t'ö': { 'char': 'o', 'combine': string(diacritics.diaeresis.code) },\n\t\t'ō': { 'char': 'o', 'combine': string(diacritics.macron.code) },\n\t\t'ô': { 'char': 'o', 'combine': string(diacritics.circumflex.code) },\n\t\t'ó': { 'char': 'o', 'combine': string(diacritics.acute.code) },\n\t\t'ò': { 'char': 'o', 'combine': string(diacritics.grave.code) },\n\t\t'ŕ': { 'char': 'r', 'combine': string(diacritics.acute.code) },\n\t\t'ş': { 'char': 's', 'combine': string(diacritics.cedilla.code) },\n\t\t'ș': { 'char': 's', 'combine': string(diacritics.commabelow.code) },\n\t\t'ṩ': { 'char': 's', 'combine': string(diacritics.dotbelow.code) + string(diacritics.dotabove.code) },\n\t\t'š': { 'char': 's', 'combine': string(diacritics.caron.code) },\n\t\t'ś': { 'char': 's', 'combine': string(diacritics.acute.code) },\n\t\t'ü': { 'char': 'u', 'combine': string(diacritics.diaeresis.code) },\n\t\t'ù': { 'char': 'u', 'combine': string(diacritics.grave.code) },\n\t\t'ú': { 'char': 'u', 'combine': string(diacritics.acute.code) },\n\t\t'û': { 'char': 'u', 'combine': string(diacritics.circumflex.code) },\n\t\t'ŭ': { 'char': 'u', 'combine': string(diacritics.breve.code) },\n\t\t'ȕ': { 'char': 'u', 'combine': string(diacritics.gravedouble.code) },\n\t\t'ȗ': { 'char': 'u', 'combine': string(diacritics.breveinverted.code) },\n\t\t'ů': { 'char': 'u', 'combine': string(diacritics.ringabove.code) },\n\t\t'ū': { 'char': 'u', 'combine': string(diacritics.macron.code) },\n\t\t'ẁ': { 'char': 'w', 'combine': string(diacritics.grave.code) },\n\t\t'ẃ': { 'char': 'w', 'combine': string(diacritics.acute.code) },\n\t\t'ø': { 'char': 'o', 'combine': string(diacritics.solidussm.code) },\n\t\t//mimicks that somehow fails\n\t\t//'c̆': { 'char': 'c', 'combine': string(diacritics.breve.code) },\n\t\t//'c̈': { 'char': 'c', 'combine': string(diacritics.diaeresis.code) },\n\t\t//'ę́': { 'char': 'e', 'combine': string(diacritics.ogonek.code) + string(diacritics.acute.code) }, \n\t\t//'m̂': { 'char': 'm', 'combine': string(diacritics.circumflex.code) }, \n\t\t//'n̂': { 'char': 'n', 'combine': string(diacritics.circumflex.code) }, \n\t\t//'ñ': { 'char': 'n', 'combine': string(diacritics.tilde.code) }, \n\t\t//'q̄': { 'char': 'q', 'combine': string(diacritics.macron.code) },\n\t\t//'r̃': { 'char': 'r', 'combine': string(diacritics.tilde.code) },\n\t\t//'s̈': { 'char': 's', 'combine': string(diacritics.diaeresis.code) },\n\t}\n\n\t//reset special chars, capital letters\n\t//in the future, some capital speciel chars can be mimicked as well\n\tfor (const char of Object.keys(special_chars)) {\n\t\tspecial_chars[char.toUpperCase()] = { 'char': char, 'combine': false }\n\t}\n\n\tconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'\n\tconst numbers = '0123456789'\n\n\tconst type = (function() {\n\t\tif (variantOffsets[variant]) return variantOffsets[variant]\n\t\tif (offsets[variant]) return variant\n\t\treturn 'm' //monospace as default\n\t})()\n\n\tconst combine_with = (function() {\n\t\tlet array = null\n\t\tif (Array.isArray(combinings)) array = combinings\n\t\tif (typeof combinings === 'string') array = combinings.split(',')\n\t\tif (!array) return false\n\t\tlet result = ''\n\t\tarray.forEach(function(diacritic) {\n\t\t\tdiacritic = diacritic.trim().toLowerCase()\n\t\t\tfor (const d in diacritics) {\n\t\t\t\tif (diacritic === d || diacritic === diacritics[d].short) {\n\t\t\t\t\tresult += string(diacritics[d].code) //+ string(diacritics.CGJ.code) seem not to have any effect\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn result\n\t})()\n\n\t//if entire sequence is supported\n\tif (typeof str === 'string' && special[type] && (special[type][str] || special[type][str.toLowerCase()])) {\n\t\treturn special[type][str] ? string(special[type][str]) : string(special[type][str.toLowerCase()])\n\t}\n\n\t//support for romanization\n\tif (['roman', 'r'].includes(type)) {\n\t\tif (typeof str === 'number') {\n\t\t\t//-- based on https://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter\n\t\t\tconst parts = {\n\t\t\t\tM: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50, XL: 40, X: 10, IX: 9,\tV: 5, IV: 4, I: 1\n\t\t\t}\n\t\t\tlet roman = ''\n\t\t\tlet num = str\n\t\t\tfor (let i in parts) {\n\t\t\t\twhile (num >= parts[i] ) {\n\t\t\t\t\tif (special[type][i]) {\n\t\t\t\t\t\troman += i\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let d of i) roman += d\n\t\t\t\t\t}\n\t\t\t\t\tnum -= parts[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\tstr = roman\n\t\t}\n\t\tlet result = str\n\t\tconst romans = ['VIII', 'viii', 'III', 'iii', 'XII', 'xii', 'VII', 'vii', 'IX', \n\t\t\t\t\t\t\t\t\t\t'ix', 'XI', 'xi', 'IV', 'iv', 'VI', 'vi', 'II', 'ii', 'I', 'i', \n\t\t\t\t\t\t\t\t\t\t'D', 'd', 'M', 'm', 'L', 'l', 'V', 'v', 'C', 'c', 'X', 'x']\n\t\tfor (number of romans) {\n\t\t\tif (result.indexOf(number.toString()) > -1) {\n\t\t\t\tresult = result.replaceAll(number, string(special[type][number]))\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\tlet result = ''\n\n\tfor (let c of str) {\n\t\tlet index\n\t\tconst combine_special = (c in special_chars) ? special_chars[c].combine : false \n\t\tc = combine_special ? special_chars[c].char : c.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n\t\tif (special[type] && special[type][c]) c = string(special[type][c])\n\t\tif (type && (index = chars.indexOf(c)) > -1) {\n\t\t\tresult += string(index + offsets[type][0]) \n\t\t} else if (type && (index = numbers.indexOf(c)) > -1) {\n\t\t\tresult += string(index + offsets[type][1]) \n\t\t} else {\n\t\t\tresult += c \n\t\t}\n\t\tif (combine_special) result += combine_special\n\t\tif (combine_with) result += combine_with \n\t}\n\n\treturn result\n}\n\nif (typeof module === 'object' && module && typeof module.exports === 'object') {\n\tmodule.exports = toUnicodeVariant\n}\n\n\n","import * as toUnicodeVariant from \"./toUnicodeVariant.js\"\nexport const string_to_unicode_variant = toUnicodeVariant.default\n"],"mappings":"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","names":["toUnicodeVariant","i","result"]}