pagure-new/pagure/static/emoji/emojione-2.2.6.js

510 lines
264 KiB
JavaScript
Raw Normal View History

2016-09-21 23:21:07 +00:00
/* jshint maxerr: 10000 */
/* jslint unused: true */
/* jshint shadow: true */
/* jshint -W075 */
(function(ns){
// this list must be ordered from largest length of the value array, index 0, to the shortest
ns.emojioneList = {":kiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"isCanonical": true},":couplekiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"isCanonical": false},":kiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"isCanonical": true},":couplekiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"isCanonical": false},":family_mmbb:":{"unicode":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],"isCanonical": true},":family_mmgb:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],"isCanonical": true},":family_mmgg:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],"isCanonical": true},":family_mwbb:":{"unicode":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],"isCanonical": true},":family_mwgb:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],"isCanonical": true},":family_mwgg:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],"isCanonical": true},":family_wwbb:":{"unicode":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],"isCanonical": true},":family_wwgb:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],"isCanonical": true},":family_wwgg:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],"isCanonical": true},":couple_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"isCanonical": true},":couple_with_heart_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"isCanonical": false},":couple_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"isCanonical": true},":couple_with_heart_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"isCanonical": false},":family_mmb:":{"unicode":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],"isCanonical": true},":family_mmg:":{"unicode":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],"isCanonical": true},":family_mwg:":{"unicode":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],"isCanonical": true},":family_wwb:":{"unicode":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],"isCanonical": true},":family_wwg:":{"unicode":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],"isCanonical": true},":eye_in_speech_bubble:":{"unicode":["1f441-200d-1f5e8","1f441-1f5e8"],"isCanonical": true},":hash:":{"unicode":["0023-fe0f-20e3","0023-20e3"],"isCanonical": true},":zero:":{"unicode":["0030-fe0f-20e3","0030-20e3"],"isCanonical": true},":one:":{"unicode":["0031-fe0f-20e3","0031-20e3"],"isCanonical": true},":two:":{"unicode":["0032-fe0f-20e3","0032-20e3"],"isCanonical": true},":three:":{"unicode":["0033-fe0f-20e3","0033-20e3"],"isCanonical": true},":four:":{"unicode":["0034-fe0f-20e3","0034-20e3"],"isCanonical": true},":five:":{"unicode":["0035-fe0f-20e3","0035-20e3"],"isCanonical": true},":six:":{"unicode":["0036-fe0f-20e3","0036-20e3"],"isCanonical": true},":seven:":{"unicode":["0037-fe0f-20e3","0037-20e3"],"isCanonical": true},":eight:":{"unicode":["0038-fe0f-20e3","0038-20e3"],"isCanonical": true},":nine:":{"unicode":["0039-fe0f-20e3","0039-20e3"],"isCanonical": true},":asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"isCanonical": true},":keycap_asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"isCanonical": false},":handball_tone5:":{"unicode":["1f93e-1f3ff"],"isCanonical": true},":handball_tone4:":{"unicode":["1f93e-1f3fe"],"isCanonical": true},":handball_tone3:":{"unicode":["1f93e-1f3fd"],"isCanonical": true},":handball_tone2:":{"unicode":["1f93e-1f3fc"],"isCanonical": true},":handball_tone1:":{"unicode":["1f93e-1f3fb"],"isCanonical": true},":water_polo_tone5:":{"unicode":["1f93d-1f3ff"],"isCanonical": true},":water_polo_tone4:":{"unicode":["1f93d-1f3fe"],"isCanonical": true},":water_polo_tone3:":{"unicode":["1f93d-1f3fd"],"isCanonical": true},":water_polo_tone2:":{"unicode":
// ns.shortnames = Object.keys(ns.emojioneList).map(function(emoji) {
// return emoji.replace(/[+]/g, "\\$&");
// }).join('|');
var tmpShortNames = [],
emoji;
for (emoji in ns.emojioneList) {
if (!ns.emojioneList.hasOwnProperty(emoji)) continue;
tmpShortNames.push(emoji.replace(/[+]/g, "\\$&"));
}
ns.shortnames = tmpShortNames.join('|');
ns.asciiList = {
'<3':'2764',
'</3':'1f494',
':\')':'1f602',
':\'-)':'1f602',
':D':'1f603',
':-D':'1f603',
'=D':'1f603',
':)':'1f642',
':-)':'1f642',
'=]':'1f642',
'=)':'1f642',
':]':'1f642',
'\':)':'1f605',
'\':-)':'1f605',
'\'=)':'1f605',
'\':D':'1f605',
'\':-D':'1f605',
'\'=D':'1f605',
'>:)':'1f606',
'>;)':'1f606',
'>:-)':'1f606',
'>=)':'1f606',
';)':'1f609',
';-)':'1f609',
'*-)':'1f609',
'*)':'1f609',
';-]':'1f609',
';]':'1f609',
';D':'1f609',
';^)':'1f609',
'\':(':'1f613',
'\':-(':'1f613',
'\'=(':'1f613',
':*':'1f618',
':-*':'1f618',
'=*':'1f618',
':^*':'1f618',
'>:P':'1f61c',
'X-P':'1f61c',
'x-p':'1f61c',
'>:[':'1f61e',
':-(':'1f61e',
':(':'1f61e',
':-[':'1f61e',
':[':'1f61e',
'=(':'1f61e',
'>:(':'1f620',
'>:-(':'1f620',
':@':'1f620',
':\'(':'1f622',
':\'-(':'1f622',
';(':'1f622',
';-(':'1f622',
'>.<':'1f623',
'D:':'1f628',
':$':'1f633',
'=$':'1f633',
'#-)':'1f635',
'#)':'1f635',
'%-)':'1f635',
'%)':'1f635',
'X)':'1f635',
'X-)':'1f635',
'*\\0/*':'1f646',
'\\0/':'1f646',
'*\\O/*':'1f646',
'\\O/':'1f646',
'O:-)':'1f607',
'0:-3':'1f607',
'0:3':'1f607',
'0:-)':'1f607',
'0:)':'1f607',
'0;^)':'1f607',
'O:)':'1f607',
'O;-)':'1f607',
'O=)':'1f607',
'0;-)':'1f607',
'O:-3':'1f607',
'O:3':'1f607',
'B-)':'1f60e',
'B)':'1f60e',
'8)':'1f60e',
'8-)':'1f60e',
'B-D':'1f60e',
'8-D':'1f60e',
'-_-':'1f611',
'-__-':'1f611',
'-___-':'1f611',
'>:\\':'1f615',
'>:/':'1f615',
':-/':'1f615',
':-.':'1f615',
':/':'1f615',
':\\':'1f615',
'=/':'1f615',
'=\\':'1f615',
':L':'1f615',
'=L':'1f615',
':P':'1f61b',
':-P':'1f61b',
'=P':'1f61b',
':-p':'1f61b',
':p':'1f61b',
'=p':'1f61b',
':-Þ':'1f61b',
':Þ':'1f61b',
':þ':'1f61b',
':-þ':'1f61b',
':-b':'1f61b',
':b':'1f61b',
'd:':'1f61b',
':-O':'1f62e',
':O':'1f62e',
':-o':'1f62e',
':o':'1f62e',
'O_O':'1f62e',
'>:O':'1f62e',
':-X':'1f636',
':X':'1f636',
':-#':'1f636',
':#':'1f636',
'=X':'1f636',
'=x':'1f636',
':x':'1f636',
':-x':'1f636',
'=#':'1f636'
};
ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
// javascript escapes here must be ordered from largest length to shortest
ns.unicodeRegexp = '(\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\
ns.jsEscapeMap = {"\uD83D\uDC69\u2764\uD83D\uDC8B\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u2764\uD83D\uDC8B\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u2764\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u2764\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67":"1f469-1f469-1f467","\uD83D\uDC41\uD83D\uDDE8":"1f441-1f5e8","#\u20E3":"0023-20e3","0\u20E3":"0030-20e3","1\u20E3":"0031-20e3","2\u20E3":"0032-20e3","3\u20E3":"0033-20e3","4\u20E3":"0034-20e3","5\u20E3":"0035-20e3","6\u20E3":"0036-20e3","7\u20E3":"0037-20e3","8\u20E3":"0038-20e3","9\u20E3":"0039-20e3","*\u20E3":"002a-20e3","\uD83E\uDD3E\uD83C\uDFFF":"1f93e-1f3ff","\uD83E\uDD3E\uD83C\uDFFE":"1f93e-1f3fe","\uD83E\uDD3E\uD83C\uDFFD":"1f93e-1f3fd","\uD83E\uDD3E\uD83C\uDFFC":"1f93e-1f3fc","\uD83E\uDD3E\uD83C\uDFFB":"1f93e-1f3fb","\uD83E\uDD3D\uD83C\uDFFF":"1f93d-1f3ff","\uD83E\uDD3D\uD83C\uDFFE":"1f93d-1f3fe","\uD83E\uDD3D\uD83C\uDFFD":"1f93d-1f3fd","\uD83E\uDD3D\uD83C\uDFFC":"1f93d-1f3fc","\uD83E\uDD3D\uD83C\uDFFB":"1f93d-1f3fb","\uD83E\uDD3C\uD83C\uDFFF":"1f93c-1f3ff","\uD83E\uDD3C\uD83C\uDFFE":"1f93c-1f3fe","\uD83E\uDD3C\uD83C\uDFFD":"1f93c-1f3fd","\uD83E\uDD3C\uD83C\uDFFC":"1f93c-1f3fc","\uD83E\uDD3C\uD83C\uDFFB":"1f93c-1f3fb","\uD83E\uDD39\uD83C\uDFFF":"1f939-1f3ff","\uD83E\uDD39\uD83C\uDFFE":"1f939-1f3fe","\uD83E\uDD39\uD83C\uDFFD":"1f939-1f3fd","\uD83E\uDD39\uD83C\uDFFC":"1f939-1f3fc","\uD83E\uDD39\uD83C\uDFFB":"1f939-1f3fb","\uD83E\uDD38\uD83C\uDFFF":"1f938-1f3ff","\uD83E\uDD38\uD83C\uDFFE":"1f938-1f3fe","\uD83E\uDD38\uD83C\uDFFD":"1f938-1f3fd","\uD83E\uDD38\uD83C\uDFFC":"1f938-1f3fc","\uD83E\uDD38\uD83C\uDFFB":"1f938-1f3fb","\uD83E\uDD37\uD83C\uDFFF":"1f937-1f3ff","\uD83E\uDD37\uD83C\uDFFE":"1f937-1f3fe","\uD83E\uDD37\uD83C\uDFFD":"1f937-1f3fd","\uD83E\uDD37\uD83C\uDFFC":"1f937-1f3fc","\uD83E\uDD37\uD83C\uDFFB":"1f937-1f3fb","\uD83E\uDD36\uD83C\uDFFF":"1f936-1f3ff","\uD83E\uDD36\uD83C\uDFFE":"1f936-1f3fe","\uD83E\uDD36\uD83C\uDFFD":"1f936-1f3fd","\uD83E\uDD36\uD83C\uDFFC":"1f936-1f3fc","\uD83E\uDD36\uD83C\uDFFB":"1f936-1f3fb","\uD83E\uDD35\uD83C\uDFFF":"1f935-1f3ff","\uD83E\uDD35\uD83C\uDFFE":"1f935-1f3fe","\uD83E\uDD35\uD83C\uDFFD":"1f935-1f3fd","\uD83E\uDD35\uD83C\uDFFC":"1f935-1f3fc","\uD83E\uDD35\uD83C\uDFFB":"1f935-1f3fb","\uD83E\uDD34\uD83C\uDFFF":"1f934-1f3ff","\uD83E\uDD34\uD83C\uDFFE":"1f934-1f3fe","\uD83E\uDD34\uD83C\uDFFD":"1f934-1f3fd","\uD83E\uDD34\uD83C\uDFFC":"1f934-1f3fc","\uD83E\uDD34\uD83C\uDFFB":"1f934-1f3fb","\uD83E\uDD33\uD83C\uDFFF":"1f933-1f3ff","\uD83E\uDD33\uD83C\uDFFE":"1f933-1f3fe","\uD83E\uDD33\uD83C\uDFFD":"1f933-1f3fd","\uD83E\uDD33\uD83C\uDFFC":"1f933-1f3fc","\uD83E\uDD33\uD83C\uDFFB":"1f933-1f3fb","\uD83E\uDD30\uD83C\uDFFF":"1f930-1f3ff","\uD83E\uDD30\uD83C\uDFFE":"1f930-1f3fe","\uD83E\uDD30\uD83C\uDFFD":"1f930-1f3fd","\uD83E\uDD30\uD83C\uDFFC":"1f930-1f3fc","\uD83E\uDD30\uD83C\uDFFB":"1f930-1f3fb","\uD83E\uDD26\uD83C\uDFFF":"1f926-1f3ff","\uD83E\uDD26\uD83C\uDFFE":"1f926-1f3fe","\uD83E\uDD26\uD83C\uDFFD":"1f926-1f3fd","\uD83E\uDD26\uD83C\uDFFC":"1f926-1f3fc","\uD83E\uDD26\uD83C\uDFFB":"1f926-1f3fb","\uD83E\uDD1E\uD83C\uDFFF":"1f91e-1f3ff","\uD83E\uDD1E\uD83C\uDFFE":"1f91e-1
ns.imagePathPNG = '//cdn.jsdelivr.net/emojione/assets/png/';
ns.imagePathSVG = '//cdn.jsdelivr.net/emojione/assets/svg/';
ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
ns.imageType = 'png'; // or svg
ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
ns.ascii = false; // change to true to convert ascii smileys
ns.cacheBustParam = '?v=2.2.6'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
ns.regShortNames = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")", "gi");
ns.regAscii = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))", "g");
ns.regUnicode = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi");
ns.toImage = function(str) {
str = ns.unicodeToImage(str);
str = ns.shortnameToImage(str);
return str;
};
// Uses toShort to transform all unicode into a standard shortname
// then transforms the shortname into unicode
// This is done for standardization when converting several unicode types
ns.unifyUnicode = function(str) {
str = ns.toShort(str);
str = ns.shortnameToUnicode(str);
return str;
};
// Replace shortnames (:wink:) with Ascii equivalents ( ;^) )
// Useful for systems that dont support unicode nor images
ns.shortnameToAscii = function(str) {
var unicode,
// something to keep in mind here is that array flip will destroy
// half of the ascii text "emojis" because the unicode numbers are duplicated
// this is ok for what it's being used for
unicodeToAscii = ns.objectFlip(ns.asciiList);
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
else {
unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
if(typeof unicodeToAscii[unicode] !== 'undefined') {
return unicodeToAscii[unicode];
} else {
return shortname;
}
}
});
return str;
};
// will output unicode from shortname
// useful for sending emojis back to mobile devices
ns.shortnameToUnicode = function(str) {
// replace regular shortnames first
var unicode;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
unicode = ns.emojioneList[shortname].unicode[0].toUpperCase();
return ns.convert(unicode);
});
// if ascii smileys are turned on, then we'll replace them!
if (ns.ascii) {
str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
// if the shortname doesnt exist just return the entire match
return entire;
}
m3 = ns.unescapeHTML(m3);
unicode = ns.asciiList[m3].toUpperCase();
return m2+ns.convert(unicode);
});
}
return str;
};
ns.shortnameToImage = function(str) {
// replace regular shortnames first
var replaceWith,unicode,alt;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
else {
unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : shortname;
if(ns.imageType === 'png') {
if(ns.sprites) {
replaceWith = '<span class="emojione emojione-'+unicode+'" title="'+shortname+'">'+alt+'</span>';
}
else {
replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
// svg
if(ns.sprites) {
replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
}
else {
replaceWith = '<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
}
}
return replaceWith;
}
});
// if ascii smileys are turned on, then we'll replace them!
if (ns.ascii) {
str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
// if the shortname doesnt exist just return the entire match
return entire;
}
m3 = ns.unescapeHTML(m3);
unicode = ns.asciiList[m3];
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : ns.escapeHTML(m3);
if(ns.imageType === 'png') {
if(ns.sprites) {
replaceWith = m2+'<span class="emojione emojione-'+unicode+'" title="'+ns.escapeHTML(m3)+'">'+alt+'</span>';
}
else {
replaceWith = m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
// svg
if(ns.sprites) {
replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
}
else {
replaceWith = m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
}
}
return replaceWith;
});
}
return str;
};
ns.unicodeToImage = function(str) {
var replaceWith,unicode,alt;
if((!ns.unicodeAlt) || (ns.sprites)) {
// if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
var mappedUnicode = ns.mapUnicodeToShort();
}
str = str.replace(ns.regUnicode, function(unicodeChar) {
if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsEscapeMap)) ) {
// if the unicodeChar doesnt exist just return the entire match
return unicodeChar;
}
else {
// get the unicode codepoint from the actual char
unicode = ns.jsEscapeMap[unicodeChar];
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : mappedUnicode[unicode];
if(ns.imageType === 'png') {
if(ns.sprites) {
replaceWith = '<span class="emojione emojione-'+unicode+'" title="'+mappedUnicode[unicode]+'">'+alt+'</span>';
}
else {
replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
// svg
if(ns.sprites) {
replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
}
else {
replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'"/>';
}
}
return replaceWith;
}
});
return str;
};
// this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
ns.toShort = function(str) {
var find = ns.getUnicodeReplacementRegEx(),
replacementList = ns.mapUnicodeCharactersToShort();
return ns.replaceAll(str, find,replacementList);
};
// for converting unicode code points and code pairs to their respective characters
ns.convert = function(unicode) {
if(unicode.indexOf("-") > -1) {
var parts = [];
var s = unicode.split('-');
for(var i = 0; i < s.length; i++) {
var part = parseInt(s[i], 16);
if (part >= 0x10000 && part <= 0x10FFFF) {
var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
var lo = ((part - 0x10000) % 0x400) + 0xDC00;
part = (String.fromCharCode(hi) + String.fromCharCode(lo));
}
else {
part = String.fromCharCode(part);
}
parts.push(part);
}
return parts.join('');
}
else {
var s = parseInt(unicode, 16);
if (s >= 0x10000 && s <= 0x10FFFF) {
var hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
var lo = ((s - 0x10000) % 0x400) + 0xDC00;
return (String.fromCharCode(hi) + String.fromCharCode(lo));
}
else {
return String.fromCharCode(s);
}
}
};
ns.escapeHTML = function (string) {
var escaped = {
'&' : '&amp;',
'<' : '&lt;',
'>' : '&gt;',
'"' : '&quot;',
'\'': '&#039;'
};
return string.replace(/[&<>"']/g, function (match) {
return escaped[match];
});
};
ns.unescapeHTML = function (string) {
var unescaped = {
'&amp;' : '&',
'&#38;' : '&',
'&#x26;' : '&',
'&lt;' : '<',
'&#60;' : '<',
'&#x3C;' : '<',
'&gt;' : '>',
'&#62;' : '>',
'&#x3E;' : '>',
'&quot;' : '"',
'&#34;' : '"',
'&#x22;' : '"',
'&apos;' : '\'',
'&#39;' : '\'',
'&#x27;' : '\''
};
return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/ig, function (match) {
return unescaped[match];
});
};
ns.mapEmojioneList = function (addToMapStorage) {
for (var shortname in ns.emojioneList) {
if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
for (var i = 0, len = ns.emojioneList[shortname].unicode.length; i < len; i++) {
var unicode = ns.emojioneList[shortname].unicode[i];
addToMapStorage(unicode, shortname);
}
}
};
ns.mapUnicodeToShort = function() {
if (!ns.memMapShortToUnicode) {
ns.memMapShortToUnicode = {};
ns.mapEmojioneList(function (unicode, shortname) {
ns.memMapShortToUnicode[unicode] = shortname;
});
}
return ns.memMapShortToUnicode;
};
ns.memoizeReplacement = function() {
if (!ns.unicodeReplacementRegEx || !ns.memMapShortToUnicodeCharacters) {
var unicodeList = [];
ns.memMapShortToUnicodeCharacters = {};
ns.mapEmojioneList(function (unicode, shortname) {
var emojiCharacter = ns.convert(unicode);
if(ns.emojioneList[shortname].isCanonical) {
ns.memMapShortToUnicodeCharacters[emojiCharacter] = shortname;
}
unicodeList.push(emojiCharacter);
});
ns.unicodeReplacementRegEx = unicodeList.join('|');
}
};
ns.mapUnicodeCharactersToShort = function() {
ns.memoizeReplacement();
return ns.memMapShortToUnicodeCharacters;
};
ns.getUnicodeReplacementRegEx = function() {
ns.memoizeReplacement();
return ns.unicodeReplacementRegEx;
};
//reverse an object
ns.objectFlip = function (obj) {
var key, tmp_obj = {};
for (key in obj) {
if (obj.hasOwnProperty(key)) {
tmp_obj[obj[key]] = key;
}
}
return tmp_obj;
};
ns.escapeRegExp = function(string) {
return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g, "\\$&");
};
ns.replaceAll = function(string, find, replacementList) {
var escapedFind = ns.escapeRegExp(find);
var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")", "gi");
// callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
var replace = function(entire, m1) {
return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replacementList[m1];
};
return string.replace(search,replace);
};
}(this.emojione = this.emojione || {}));
if(typeof module === "object") module.exports = this.emojione;