UNPKG

jdenticon

Version:

Javascript identicon generator

4 lines (3 loc) 9.37 kB
// Jdenticon 3.3.0 | jdenticon.com | MIT licensed | (c) 2014-2024 Daniel Mester Pirttijärvi !function(t,n){var e=function(t){"use strict";function n(t,n,e){return parseInt(t.substr(n,e),16)}function e(t){return(t|=0)<0?"00":t<16?"0"+t.toString(16):t<256?t.toString(16):"ff"}function i(t,n,i){return e(255*((i=i<0?i+6:i>6?i-6:i)<1?t+(n-t)*i:i<3?n:i<4?t+(n-t)*(4-i):t))}function r(t){if(/^#[0-9a-f]{3,8}$/i.test(t)){var n,e=t.length;if(e<6){var i=t[1],r=t[2],o=t[3],u=t[4]||"";n="#"+i+i+r+r+o+o+u+u}return(7==e||e>8)&&(n=t),n}}function o(t){var e,i=n(t,7,2);isNaN(i)?e=t:e="rgba("+n(t,1,2)+","+n(t,3,2)+","+n(t,5,2)+","+(i/255).toFixed(2)+")";return e}function u(t,n,r){var o;if(0==n){var u=e(255*r);o=u+u+u}else{var f=r<=.5?r*(n+1):r+n-r*n,a=2*r-f;o=i(a,f,6*t+2)+i(a,f,6*t)+i(a,f,6*t-2)}return"#"+o}function f(t,n,e){var i=[.55,.5,.5,.46,.6,.55,.55][6*t+.5|0];return u(t,n,e=e<.5?e*i*2:i+(e-.5)*(1-i)*2)}var a=t,s={G:"jdenticon_config",n:"config"},h={};function c(t){h=t}function v(t){return arguments.length&&(h[s.n]=t),h[s.n]}function d(t,n){var e="object"==typeof t&&t||h[s.n]||a[s.G]||{},i=e.lightness||{},o=e.saturation||{},u="color"in o?o.color:o,f=o.grayscale,c=e.backColor,v=e.padding;function d(t,n){var e=i[t];return e&&e.length>1||(e=n),function(t){return(t=e[0]+t*(e[1]-e[0]))<0?0:t>1?1:t}}function l(t){var n,i=e.hues;return i&&i.length>0&&(n=i[0|.999*t*i.length]),"number"==typeof n?(n/360%1+1)%1:t}return{X:l,p:"number"==typeof u?u:.5,H:"number"==typeof f?f:0,q:d("color",[.4,.8]),I:d("grayscale",[.3,.9]),J:r(c),Y:"number"==typeof t?t:"number"==typeof v?v:n}}var l=1,g=2,p={t:"data-jdenticon-hash",o:"data-jdenticon-value"},y="jdenticonRendered",m="["+p.t+"],["+p.o+"]",w="undefined"!=typeof document&&document.querySelectorAll.bind(document);function b(t){if(t){var n=t.tagName;if(/^svg$/i.test(n))return l;if(/^canvas$/i.test(n)&&"getContext"in t)return g}}function x(t){function n(){document.removeEventListener("DOMContentLoaded",n),window.removeEventListener("load",n),setTimeout(t,0)}"undefined"!=typeof document&&"undefined"!=typeof window&&"undefined"!=typeof setTimeout&&("loading"===document.readyState?(document.addEventListener("DOMContentLoaded",n),window.addEventListener("load",n)):setTimeout(t,0))}function A(t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(n){for(var e=0;e<n.length;e++){for(var i=n[e],r=i.addedNodes,o=0;r&&o<r.length;o++){var u=r[o];if(1==u.nodeType)if(b(u))t(u);else for(var f=u.querySelectorAll(m),a=0;a<f.length;a++)t(f[a])}"attributes"==i.type&&b(i.target)&&t(i.target)}})).observe(document.body,{childList:!0,attributes:!0,attributeFilter:[p.o,p.t,"width","height"],subtree:!0})}function S(t,n){this.x=t,this.y=n}function j(t,n,e,i){this.u=t,this.v=n,this.K=e,this.Z=i}j.prototype.L=function(t,n,e,i){var r=this.u+this.K,o=this.v+this.K,u=this.Z;return 1===u?new S(r-n-(i||0),this.v+t):2===u?new S(r-t-(e||0),o-n-(i||0)):3===u?new S(this.u+n,o-t-(e||0)):new S(this.u+t,this.v+n)};var C=new j(0,0,0,0);function M(t){this.M=t,this.A=C}var L=M.prototype;function N(t,n,e,i){var r,o,u,f,a,s;(t%=14)?1==t?(u=0|.5*e,f=0|.8*e,n.j(e-u,0,u,f,2)):2==t?(u=0|e/3,n.i(u,u,e-u,e-u)):3==t?(s=e<6?1:e<8?2:0|.25*e,a=(a=.1*e)>1?0|a:a>.5?1:a,n.i(s,s,e-a-s,e-a-s)):4==t?(o=0|.15*e,u=0|.5*e,n.h(e-u-o,e-u-o,u)):5==t?((s=4*(a=.1*e))>3&&(s|=0),n.i(0,0,e,e),n.g([s,s,e-a,s,s+(e-s-a)/2,e-a],!0)):6==t?n.g([0,0,e,0,e,.7*e,.4*e,.4*e,.7*e,e,0,e]):7==t?n.j(e/2,e/2,e/2,e/2,3):8==t?(n.i(0,0,e,e/2),n.i(0,e/2,e/2,e/2),n.j(e/2,e/2,e/2,e/2,1)):9==t?(a=.14*e,s=e<4?1:e<6?2:0|.35*e,a=e<8?a:0|a,n.i(0,0,e,e),n.i(s,s,e-s-a,e-s-a,!0)):10==t?(s=3*(a=.12*e),n.i(0,0,e,e),n.h(s,s,e-a-s,!0)):11==t?n.j(e/2,e/2,e/2,e/2,3):12==t?(o=.25*e,n.i(0,0,e,e),n.N(o,o,e-o,e-o,!0)):!i&&(o=.4*e,u=1.2*e,n.h(o,o,u)):(r=.42*e,n.g([0,0,e,0,e,e-2*r,e-r,e,0,e]))}function O(t,n,e){var i;(t%=4)?1==t?n.j(0,e/2,e,e/2,0):2==t?n.N(0,0,e,e):(i=e/6,n.h(i,i,e-2*i)):n.j(0,0,e,e,0)}function T(t,n){return[f(t=n.X(t),n.H,n.I(0)),f(t,n.p,n.q(.5)),f(t,n.H,n.I(1)),f(t,n.p,n.q(1)),f(t,n.p,n.q(0))]}function k(t,e,i){var r=d(i,.08);r.J&&t.m(r.J);var o=t.k,u=.5+o*r.Y|0;o-=2*u;var f=new M(t),a=0|o/4,s=0|u+o/2-2*a,h=0|u+o/2-2*a;function c(i,r,o,u,c){var v=n(e,o,1),d=u?n(e,u,1):0;t.O(l[g[i]]);for(var p=0;p<c.length;p++)f.A=new j(s+c[p][0]*a,h+c[p][1]*a,a,d++%4),r(v,f,a,p);t.P()}var v,l=T(n(e,-7)/268435455,r),g=[];function p(t){if(t.indexOf(v)>=0)for(var n=0;n<t.length;n++)if(g.indexOf(t[n])>=0)return!0}for(var y=0;y<3;y++)v=n(e,8+y,1)%l.length,(p([0,4])||p([2,3]))&&(v=1),g.push(v);c(0,O,2,3,[[1,0],[2,0],[2,3],[1,3],[0,1],[3,1],[3,2],[0,2]]),c(1,O,4,5,[[0,0],[3,0],[3,3],[0,3]]),c(2,N,1,null,[[1,1],[2,1],[2,2],[1,2]]),t.finish()}function I(t){var n,e=40,i=16,r=0,o=0,u=encodeURI(t)+"%80",f=[],a=[],s=1732584193,h=4023233417,c=~s,v=~h,d=3285377520,l=[s,h,c,v,d],g=0,p="";function y(t,n){return t<<n|t>>>32-n}for(;r<u.length;o++)f[o>>2]=f[o>>2]|("%"==u[r]?parseInt(u.substring(r+1,r+=3),16):u.charCodeAt(r++))<<8*(3-(3&o));for(f[(n=(1+(o+7>>6))*i)-1]=8*o-8;g<n;g+=i){for(r=0;r<80;r++)o=y(s,5)+d+(r<20?1518500249+(h&c^~h&v):r<40?1859775393+(h^c^v):r<60?2400959708+(h&c^h&v^c&v):3395469782+(h^c^v))+(a[r]=r<i?0|f[g+r]:y(a[r-3]^a[r-8]^a[r-14]^a[r-16],1)),d=v,v=c,c=y(h,30),h=s,s=o;l[0]=s=l[0]+s|0,l[1]=h=l[1]+h|0,l[2]=c=l[2]+c|0,l[3]=v=l[3]+v|0,l[4]=d=l[4]+d|0}for(r=0;r<e;r++)p+=(l[r>>3]>>>4*(7-(7&r))&15).toString(16);return p}function P(t){return/^[0-9a-f]{11,}$/i.test(t)&&t}function R(t){return I(null==t?"":""+t)}function F(t,n){var e=t.canvas,i=e.width,r=e.height;t.save(),n||(n=Math.min(i,r),t.translate((i-n)/2|0,(r-n)/2|0)),this.l=t,this.k=n,t.clearRect(0,0,n,n)}L.g=function(t,n){for(var e=this,i=n?-2:2,r=[],o=n?t.length-2:0;o<t.length&&o>=0;o+=i)r.push(e.A.L(t[o],t[o+1]));this.M.g(r)},L.h=function(t,n,e,i){var r=this.A.L(t,n,e,e);this.M.h(r,e,i)},L.i=function(t,n,e,i,r){this.g([t,n,t+e,n,t+e,n+i,t,n+i],r)},L.j=function(t,n,e,i,r,o){var u=[t+e,n,t+e,n+i,t,n+i,t,n];u.splice((r||0)%4*2,2),this.g(u,o)},L.N=function(t,n,e,i,r){this.g([t+e/2,n,t+e,n+i/2,t+e/2,n+i,t,n+i/2],r)};var q=F.prototype;function B(t,n,e,i){if(!t)throw new Error("No canvas specified.");k(new F(t,e),P(n)||R(n),i);var r=t.canvas;r&&(r[y]=!0)}function D(t){return(10*t+.5|0)/10}function E(){this.B=""}q.m=function(t){var n=this.l,e=this.k;n.fillStyle=o(t),n.fillRect(0,0,e,e)},q.O=function(t){var n=this.l;n.fillStyle=o(t),n.beginPath()},q.P=function(){this.l.fill()},q.g=function(t){var n=this.l;n.moveTo(t[0].x,t[0].y);for(var e=1;e<t.length;e++)n.lineTo(t[e].x,t[e].y);n.closePath()},q.h=function(t,n,e){var i=this.l,r=n/2;i.moveTo(t.x+r,t.y+r),i.arc(t.x+r,t.y+r,r,0,2*Math.PI,e),i.closePath()},q.finish=function(){this.l.restore()};var U=E.prototype;function $(t){this.C,this.D={},this.R=t,this.k=t.k}U.g=function(t){for(var n="",e=0;e<t.length;e++)n+=(e?"L":"M")+D(t[e].x)+" "+D(t[e].y);this.B+=n+"Z"},U.h=function(t,n,e){var i=e?0:1,r=D(n/2),o=D(n),u="a"+r+","+r+" 0 1,"+i+" ";this.B+="M"+D(t.x)+" "+D(t.y+n/2)+u+o+",0"+u+-o+",0"};var G=$.prototype;G.m=function(t){var e=/^(#......)(..)?/.exec(t),i=e[2]?n(e[2],0)/255:1;this.R.m(e[1],i)},G.O=function(t){this.C=this.D[t]||(this.D[t]=new E)},G.P=function(){},G.g=function(t){this.C.g(t)},G.h=function(t,n,e){this.C.h(t,n,e)},G.finish=function(){var t=this,n=this.D;for(var e in n)n.hasOwnProperty(e)&&t.R.S(e,n[e].B)};var H={T:"http://www.w3.org/2000/svg",U:"width",V:"height"};function J(t){this.k=t,this.F='<svg xmlns="'+H.T+'" width="'+t+'" height="'+t+'" viewBox="0 0 '+t+" "+t+'">'}var K=J.prototype;function V(t,n,e){var i=new J(n);return k(new $(i),P(t)||R(t),e),i.toString()}function W(t,n){for(var e=[],i=arguments.length-2;i-- >0;)e[i]=arguments[i+2];for(var r=document.createElementNS(H.T,n),o=0;o+1<e.length;o+=2)r.setAttribute(e[o],e[o+1]);t.appendChild(r)}function Y(t){var n=this.k=Math.min(Number(t.getAttribute(H.U))||100,Number(t.getAttribute(H.V))||100);for(this.W=t;t.firstChild;)t.removeChild(t.firstChild);t.setAttribute("viewBox","0 0 "+n+" "+n),t.setAttribute("preserveAspectRatio","xMidYMid meet")}K.m=function(t,n){n&&(this.F+='<rect width="100%" height="100%" fill="'+t+'" opacity="'+n.toFixed(2)+'"/>')},K.S=function(t,n){this.F+='<path fill="'+t+'" d="'+n+'"/>'},K.toString=function(){return this.F+"</svg>"};var Z=Y.prototype;function X(){w&&_(m)}function Q(){if(w)for(var t=w(m),n=0;n<t.length;n++){var e=t[n];e[y]||_(e)}}function _(t,n,e){z(t,n,e,(function(t,n){if(n)return n==l?new $(new Y(t)):new F(t.getContext("2d"))}))}function z(t,n,e,i){if("string"!=typeof t){var r=P(n)||null!=n&&R(n)||P(t.getAttribute(p.t))||t.hasAttribute(p.o)&&R(t.getAttribute(p.o));if(r){var o=i(t,b(t));o&&(k(o,r,e),t[y]=!0)}}else if(w)for(var u=w(t),f=0;f<u.length;f++)z(u[f],n,e,i)}function tt(t,n){return this.each((function(e,i){_(i,t,n)})),this}Z.m=function(t,n){n&&W(this.W,"rect",H.U,"100%",H.V,"100%","fill",t,"opacity",n)},Z.S=function(t,n){W(this.W,"path","fill",t,"d",n)};var nt=X;c(nt),nt.configure=v,nt.drawIcon=B,nt.toSvg=V,nt.update=_,nt.updateCanvas=_,nt.updateSvg=_,nt.version="3.3.0",nt.bundle="browser-umd";var et=a.jQuery;et&&(et.fn.jdenticon=tt);function it(){var t=(nt[s.n]||a[s.G]||{}).replaceMode;"never"!=t&&(Q(),"observe"==t&&A(_))}return x(it),nt}(t);"undefined"!=typeof module&&"exports"in module?module.exports=e:"function"==typeof define&&define.amd?define([],(function(){return e})):t.jdenticon=e}("undefined"!=typeof self?self:this); //# sourceMappingURL=jdenticon.min.js.map