1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPLv3.0
var Convert = (function() {
function convert(format, str) {
return str.split("").map(function(c) {
var code = c.charCodeAt(0);
var big = String.fromCharCode(format.big[0], format.big[1] - 65 + code);
var small = String.fromCharCode(format.small[0], format.small[1] - 97 + code);
if (code >= 65 && code <= 90) {
return big;
} else if (code >= 97 && code <= 122) {
return small;
}
return c;
}).join(format.spaceCharacters ? format.spaceCharacters : "");
}
function partial(fn, args) {
return function() {
var mergedArgs = args.concat(Array.prototype.slice.apply(arguments));
return fn.apply(this, mergedArgs);
}
}
var formats = [
{
format: {
big: [0xD835, 0xDD6C],
small: [0xD835, 0xDD86]
},
key: "Fraktur"
},
{
format: {
big: [0xD835, 0xDCD0],
small: [0xD835, 0xDCEA]
},
key: "Script"
},
{
format: {
big: [0xD835, 0xDD38],
small: [0xD835, 0xDD52]
},
key: "Double Struck"
},
{
format: {
big: [0x0000, 0xFF21],
small: [0x0000, 0xFF41],
},
key: "Full width"
},
{
format: {
big: [0xD835, 0xDE70],
small: [0xD835, 0xDE8A]
},
key: "Monospace"
},
{
format: {
big: [0xD835, 0xDC00],
small: [0xD835, 0xDC1A]
},
key: "Bold"
},
{
format: {
big: [0xD83C, 0xDD10],
small: [0xD83C, 0xDD10]
},
key: "Parenthesized"
},
{
format: {
big: [0xD83C, 0xDD30],
small: [0xD83C, 0xDD30]
},
key: "Squared"
},
{
format: {
big: [0xD83C, 0xDD50],
small: [0xD83C, 0xDD50]
},
key: "Negative Circled"
},
{
format: {
big: [0xD83C, 0xDD70],
small: [0xD83C, 0xDD70]
},
key: "Negative Squared"
},
{
format: {
big: [0xD83C, 0xDDE6],
small: [0xD83C, 0xDDE6],
spaceCharacters: " "
},
key: "Regional Indicator"
},
{
format: {
big: [0xD83C, 0xDDE6],
small: [0xD83C, 0xDDE6],
spaceCharacters: "\u200b"
},
key: "Regional Indicator (zero space)"
}
];
var fromatsWithFn = formats.map(function(obj) {
obj.fn = partial(convert, [obj.format]);
return obj;
});
return {
formats: fromatsWithFn
}
})();