You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
54 KiB
2 lines
54 KiB
5 years ago
|
!function(a,b){"use strict";"object"==typeof exports&&void 0!==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):(window.RongIMLib=window.RongIMLib||{},window.RongIMLib.RongIMEmoji=b())}(window,function(){function t(a,b){var c,d;for(c in k)if(d=k[c],d[a]===b)return d}function u(a,b){var c,d;for(c in k)if(d=k[c],d.tag===a)return v(d,b);return!1}function v(a,b){var e,f,g,c=b||l.size,d=w(a.position,c);return j&&(d=a.position,c=l.size),e={size:c,position:d,background:a.background||l.url,name:a[l.lang],tag:a.tag},f="width: {{size}}px; height: {{size}}px; line-height: {{size}}px; background-image: url({{background}}); background-position: {{position}}; background-size: auto {{size}}px; overflow: hidden; vertical-align: middle; font-size: 0 !important;",g="<span class='rong-emoji-content' name='[{{name}}]' style='{{style}}'></span>",g=m.render(g,{style:f}),m.render(g,e)}function w(a,b){var f,g,h,c=b||l.size,d=j?24:25,e=c/d;return a=a.split(" "),f=a[0],g=a[1],f=f?f.split("px")[0]:0,g=g?g.split("px")[0]:0,h="{{x}}px {{y}}px",m.render(h,{x:parseInt(f)*e,y:parseInt(g)*e})}function x(a,b){return b=b||l.reg,a.replace(b,function(a){return y(a)})}function y(a){var b=escape(a).split("%u");return b=m.filter(b,function(a){return""!==a}),b=m.map(b,function(a){var b=0===m.indexOf(a,"f")||0===m.indexOf(a,"F"),c="FE0F"===a||"fe0f"===a;return b&&!c?"0x1"+a:"0x"+a}),String.RongFromCodePoint(b)}function z(a){var b,c,d,e;if(n.check(["object|undefined"],"init",arguments),a){b=a.dataSource,c=a.url||l.url;for(d in b)e=b[d],k[d]=e,k[d].background=c}}function A(){var a,b,c,d,e,f;i.length=0;for(a in k)b=k[a],b.tag&&(c=l.lang,d=u(b.tag),e=m.getDom(d),f=b[c],i.push({unicode:a,symbol:"["+f+"]",emoji:b.tag,node:e}))}function B(){var b,c,a=[];for(b in k)c=k[b],a.push(c.tag);a=a.join("|"),h=new RegExp(a,"g")}function C(){var a=function(a){var b=document.location.protocol,c="file:"===b;return c?"http:"+a:a},b=a(e),c=a(f);return j?b:c}function D(){var d,e,f,g,h,a=function(a,b){var c,d,e,f,g,h,i;try{for(c=document.createElement("canvas"),c.width=20,c.height=20,d=c.getContext("2d"),d.textBaseline="top",d.font="20px sans-serif",d.fillStyle=b,d.fillText(a,0,0),e=d.getImageData(0,0,20,20).data,f=[],g=0;g<e.length;g++)f[g]=e[g];for(h=0,g=0;g<f.length;g++)h+=f[g];return i=h>0,i?f.toString():!1}catch(j){return!1}},b="😁",c=a(b,"#000");return c?(d="😨",e=a(b,"#FFF"),f=a(d,"#000"),g=c&&c===e,h=c&&c!==f,g||h):!1}function E(){var c,a=".rong-emoji-content { display: inline-block; overflow: hidden; font-size: 20px !important; text-align: center; vertical-align: middle; overflow: hidden;}",b=document.createElement("style");b.setAttribute("type","text/css"),c=document.getElementsByTagName("head")[0],c.appendChild(b),b.styleSheet?b.styleSheet.cssText=a:(c=document.createTextNode(a),b.appendChild(c))}function F(){a.emojis=m.map(i,function(a){var h,i,j,l,b=a.unicode,c=k[b],d=c.zh,f=c.en,g=c.position;return f=f.replace(" ","_").toLowerCase(),h="height: 24px; width: 24px; display: inline-block; font-size: 20px !important; text-align: center; vertical-align: middle;overflow: hidden; line-height: 24px;",i="<b style='width: 24px; height: 24px; display: inline-block; background-image: url({{url}}); background-position: {{position}}'></b>",i=m.render(i,{url:e,position:g}),j="<span name='[{{zh}}]' class='RongIMExpression_{{en}}' style='{{style}}'>{{b}}</span>",j=m.render(j,{zh:d,en:f,b:i,style:h}),l="<span>"+j+"</span>",m.getDom(l)}),a.name=function(){var b,c,e,f,g,a=[];for(b in k){for(c=k[b],e={},f=0;f<d.length;f++)g=d[f],e[g]=c[g];a.push(e)}return a}(),a.data=m.map(i,function(a){var b,c,d;for(c in k)d=k[c],d.tag===a.emoji&&(b=d,d.html=a.node);return b})}var h,a={},b=24,c="zh",d=["zh","en"],e="//cdn.ronghub.com/emojis-normal.png",f="//cdn.ronghub.com/emojis-hd.png",g=/\uf469\u200d\u2764\ufe0f\u200d\uf48b\u200d\uf468|\uf468\u200d\u2764\ufe0f\u200d\uf48b\u200d\uf468|\uf469\u200d\u2764\ufe0f\u200d\uf48b\u200d\uf469|\uf468\u200d\uf469\u200d\uf467\u200d\uf466|\uf468\u200d\uf469\u200d\uf466\u200d\uf466|\uf468\u200d\uf469\u200d\uf467\u200d\uf467|\uf468\u200
|
||
|
if(0!==arguments.length){for(a=arguments[0],b=1,c=arguments.length;c>b;b++){d=arguments[b];for(e in d)a[e]=d[e]}return a}},filter:function(a,b){var d,e,c=[];for(d=0;d<a.length;d++)e=a[d],b(e)&&c.push(e);return c},cutString:function(a,b,c){var e,d=[];for(e=b;b+c>e;e++)d.push(a.charAt(e));return d.join("")},map:function(a,b){var d,e,c=a.concat([]);for(d=0;d<c.length;d++)e=c[d],b&&"function"==typeof b&&(c[d]=b(e));return c},indexOf:function(a,b){var c,e;if("string"==typeof a){for(c=0;c<=a.length-b.length;c++)if(m.cutString(a,c,b.length),a.charAt(c)==b.charAt(0)&&m.cutString(a,c,b.length)==b)return c}else if("[object Array]"===Object.prototype.toString.call(a))for(c=0;c<a.length;c++)if(e=a[c],e==b)return c;return-1},getDom:function(a){var b=document.createElement("div");return b.innerHTML=a,b.childNodes[0]},render:function(a,b){return a.replace(/\\?\{\{([^}]+)\}\}/g,function(a,c){return void 0!=b[c]?b[c]:a})}},n={getType:function(a){if(void 0===a)return"undefined";if(null===a)return"null";var b=Object.prototype.toString.call(a).toLowerCase();return b.slice(8,b.length-1)},check:function(a,b,c){var d,e,f,g,h,i;for(c=c||[],d=a.length,c.length>d&&(c.length=d),e=0;e<a.length;e++)f=this.getType(c[e]),g=a[e],new RegExp(f).test(g)||(h="第{{index}}个参数错误, 传入参数类型为: {{errType}}, 应传参数类型为: {{sucType}}, 错误所在位置为: {{funcName}}",i=m.render(h,{index:e+1,errType:f,sucType:g,funcName:b}),console.error(i))}},o=function(a){E(),a=a||{},l=m.extend(l,a),z(a.extension),B(),A(),F()},p=function(a,b,c){return n.check(["string","regexp|null|undefined"],"emojiToSymbol",arguments),a=x(a,b),a.replace(h,function(a){var b=l.lang,d=t("tag",a);return symbol=d?"["+d[b]+"]":a,c?c(symbol):symbol})},q=function(a,b){n.check(["string"],"symbolToEmoji",arguments),a=x(a);var c=a.replace(/\[([^\[\]]+?)\]/g,function(a){var b,c;return a=a.substr(1,a.length-2),b=l.lang,c=t(b,a),c?c.tag:"["+a+"]"});return c.replace(h,function(a){return b?b(a):a})},r=function(a,b,c,d){n.check(["string","number|null|undefined","regexp|null|undefined"],"emojiToHTML",arguments),a=x(a,c);var e=a.replace(h,function(a){var c=u(a,b);return c||a});return e.replace(h,function(a){return d?d(a):a})},s=function(a,b,c,d){n.check(["string","number|null|undefined","regexp|null|undefined"],"symbolToHTML",arguments);var e=a.replace(/\[([^\[\]]+?)\]/g,function(a){var d=q(a);return r(d,b,c)});return e.replace(h,function(a){return d?d(a):a})};return function(){var a=function(){var a,b,c;try{a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b=String.fromCharCode,c=Math.floor,d=function(a){var f,g,j,k,d=16384,e=[],h=-1,i=a.length||[];if(!i)return"";for(j="";++h<i;){if(k=Number(a[h]),!isFinite(k)||0>k||k>1114111||c(k)!=k)throw RangeError("Invalid code point: "+k);65535>=k?e.push(k):(k-=65536,f=(k>>10)+55296,g=k%1024+56320,e.push(f,g)),(h+1==i||e.length>d)&&(j+=b.apply(null,e),e.length=0)}return j};a?a(String,"RongFromCodePoint",{value:d,configurable:!0,writable:!0}):String.RongFromCodePoint=d}(),m.extend(a,{isSupportEmoji:D,init:o,list:i,emojiToSymbol:p,symbolToEmoji:q,emojiToHTML:r,symbolToHTML:s})});
|