Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

svg64

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svg64 - npm Package Compare versions

Comparing version
1.2.0
to
2.0.0
+2
dist/svg64.cjs
var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=function(e){e=e.replace(/\r\n/g,"\n");for(var r=0,t="";r<e.length;r++){var n=e.charCodeAt(r);n<128?t+=String.fromCharCode(n):n>127&&n<2048?(t+=String.fromCharCode(n>>6|192),t+=String.fromCharCode(63&n|128)):(t+=String.fromCharCode(n>>12|224),t+=String.fromCharCode(n>>6&63|128),t+=String.fromCharCode(63&n|128))}return t},t=function(t){var n,o,a,i,c,f,s,d=0,u="";for(t=r(t);d<t.length;)i=(n=t.charCodeAt(d++))>>2,c=(3&n)<<4|(o=t.charCodeAt(d++))>>4,f=(15&o)<<2|(a=t.charCodeAt(d++))>>6,s=63&a,isNaN(o)?f=s=64:isNaN(a)&&(s=64),u=u+e.charAt(i)+e.charAt(c)+e.charAt(f)+e.charAt(s);return u},n=function(e){return"string"==typeof e?"string":"undefined"!=typeof SVGElement&&e instanceof SVGElement?"element":void 0},o=function(e){return"data:image/svg+xml;base64,"+t(e)},a=function(e){return o((new XMLSerializer).serializeToString(e))},i=function(e){switch(n(e)){case"string":return o(e);case"element":return a(e);default:return e}};exports.convertElement=a,exports.default=i,exports.detectInputType=n,exports.encode=t,exports.getBase64=o,exports.svg64=i,exports.utf8Encode=r;
//# sourceMappingURL=svg64.cjs.map
{"version":3,"file":"svg64.cjs","sources":["../src/svg64.ts"],"sourcesContent":["// prettier-ignore\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst PREFIX = 'data:image/svg+xml;base64,';\n\nexport const utf8Encode = (input: string): string => {\n\tinput = input.replace(/\\r\\n/g, '\\n');\n\n\tlet i = 0;\n\tlet output = '';\n\n\tfor (; i < input.length; i++) {\n\t\tconst c = input.charCodeAt(i);\n\n\t\tif (c < 128) {\n\t\t\toutput += String.fromCharCode(c);\n\t\t} else if (c > 127 && c < 2048) {\n\t\t\toutput += String.fromCharCode((c >> 6) | 192);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t} else {\n\t\t\toutput += String.fromCharCode((c >> 12) | 224);\n\t\t\toutput += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t}\n\t}\n\n\treturn output;\n};\n\nexport const encode = (input: string): string => {\n\tlet i = 0;\n\tlet chr1: number;\n\tlet chr2: number;\n\tlet chr3: number;\n\tlet enc1: number;\n\tlet enc2: number;\n\tlet enc3: number;\n\tlet enc4: number;\n\tlet output = '';\n\n\tinput = utf8Encode(input);\n\n\twhile (i < input.length) {\n\t\tchr1 = input.charCodeAt(i++);\n\t\tchr2 = input.charCodeAt(i++);\n\t\tchr3 = input.charCodeAt(i++);\n\n\t\tenc1 = chr1 >> 2;\n\t\tenc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n\t\tenc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n\t\tenc4 = chr3 & 63;\n\n\t\tif (isNaN(chr2)) {\n\t\t\tenc3 = enc4 = 64;\n\t\t} else if (isNaN(chr3)) {\n\t\t\tenc4 = 64;\n\t\t}\n\n\t\toutput = output + CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);\n\t}\n\n\treturn output;\n};\n\nexport const detectInputType = (input: string | SVGElement): 'string' | 'element' | void => {\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {\n\t\treturn 'element';\n\t}\n};\n\nexport const getBase64 = (input: string) => PREFIX + encode(input);\n\nexport const convertElement = (input: SVGElement): string => getBase64(new XMLSerializer().serializeToString(input));\n\nexport const svg64 = (input: string | SVGElement): string => {\n\tconst type = detectInputType(input);\n\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn getBase64(input as string);\n\n\t\tcase 'element':\n\t\t\treturn convertElement(input as SVGElement);\n\n\t\tdefault:\n\t\t\treturn input as string;\n\t}\n};\n\nexport default svg64;\n"],"names":["CHARS","utf8Encode","input","replace","i","output","length","c","charCodeAt","String","fromCharCode","encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","isNaN","charAt","detectInputType","SVGElement","getBase64","PREFIX","convertElement","XMLSerializer","serializeToString","svg64"],"mappings":"AACA,IAAMA,EAAQ,oEAGDC,EAAa,SAACC,GAC1BA,EAAQA,EAAMC,QAAQ,QAAS,MAK/B,IAHA,IAAIC,EAAI,EACJC,EAAS,GAEND,EAAIF,EAAMI,OAAQF,IAAK,CAC7B,IAAOG,EAAGL,EAAMM,WAAWJ,GAEvBG,EAAI,IACPF,GAAUI,OAAOC,aAAaH,GACpBA,EAAI,KAAOA,EAAI,MACzBF,GAAUI,OAAOC,aAAcH,GAAK,EAAK,KACzCF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,OAEzCF,GAAUI,OAAOC,aAAcH,GAAK,GAAM,KAC1CF,GAAUI,OAAOC,aAAeH,GAAK,EAAK,GAAM,KAChDF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,KAE1C,CAED,OAAOF,CACR,EAEaM,EAAS,SAACT,GACtB,IACgBU,EACZC,EACAC,EACYC,EACAC,EACZC,EACYC,EAPXd,EAAG,EAQJC,EAAS,GAIb,IAFAH,EAAQD,EAAWC,GAEZE,EAAIF,EAAMI,QAKhBS,GAJAH,EAAOV,EAAMM,WAAWJ,OAIT,EACfY,GAAgB,EAAPJ,IAAa,GAJtBC,EAAOX,EAAMM,WAAWJ,OAIY,EACpCa,GAAgB,GAAPJ,IAAc,GAJvBC,EAAOZ,EAAMM,WAAWJ,OAIa,EACrCc,EAAc,GAAPJ,EAEHK,MAAMN,GACTI,EAAOC,EAAO,GACJC,MAAML,KAChBI,EAAO,IAGRb,EAASA,EAASL,EAAMoB,OAAOL,GAAQf,EAAMoB,OAAOJ,GAAQhB,EAAMoB,OAAOH,GAAQjB,EAAMoB,OAAOF,GAG/F,OAAOb,CACR,EAE4BgB,EAAG,SAACnB,GAC/B,MAAqB,iBAALA,EACR,SAGkB,oBAAfoB,YAA8BpB,aAAiBoB,WAClD,eADR,CAGD,EAEsBC,EAAG,SAACrB,GAAkBsB,MAvE7B,6BAuEsCb,EAAOT,EAAM,EAErDuB,EAAiB,SAACvB,GAAiB,OAAsBqB,GAAC,IAAiBG,eAAGC,kBAAkBzB,GAAO,EAElG0B,EAAG,SAAC1B,GAGrB,OAFamB,EAAgBnB,IAG5B,IAAK,SACJ,OAAOqB,EAAUrB,GAElB,IAAK,UACJ,SAAsBA,GAEvB,QACC,OAAsBA,EAEzB"}
export declare const utf8Encode: (input: string) => string;
export declare const encode: (input: string) => string;
export declare const detectInputType: (input: string | SVGElement) => 'string' | 'element' | void;
export declare const getBase64: (input: string) => string;
export declare const convertElement: (input: SVGElement) => string;
export declare const svg64: (input: string | SVGElement) => string;
export default svg64;
const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=e=>{e=e.replace(/\r\n/g,"\n");let r=0,t="";for(;r<e.length;r++){const n=e.charCodeAt(r);n<128?t+=String.fromCharCode(n):n>127&&n<2048?(t+=String.fromCharCode(n>>6|192),t+=String.fromCharCode(63&n|128)):(t+=String.fromCharCode(n>>12|224),t+=String.fromCharCode(n>>6&63|128),t+=String.fromCharCode(63&n|128))}return t},t=t=>{let n,a,o,i,h,d,C,c=0,g="";for(t=r(t);c<t.length;)n=t.charCodeAt(c++),a=t.charCodeAt(c++),o=t.charCodeAt(c++),i=n>>2,h=(3&n)<<4|a>>4,d=(15&a)<<2|o>>6,C=63&o,isNaN(a)?d=C=64:isNaN(o)&&(C=64),g=g+e.charAt(i)+e.charAt(h)+e.charAt(d)+e.charAt(C);return g},n=e=>"string"==typeof e?"string":"undefined"!=typeof SVGElement&&e instanceof SVGElement?"element":void 0,a=e=>"data:image/svg+xml;base64,"+t(e),o=e=>a((new XMLSerializer).serializeToString(e)),i=e=>{switch(n(e)){case"string":return a(e);case"element":return o(e);default:return e}};export{o as convertElement,i as default,n as detectInputType,t as encode,a as getBase64,i as svg64,r as utf8Encode};
//# sourceMappingURL=svg64.modern.js.map
{"version":3,"file":"svg64.modern.js","sources":["../src/svg64.ts"],"sourcesContent":["// prettier-ignore\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst PREFIX = 'data:image/svg+xml;base64,';\n\nexport const utf8Encode = (input: string): string => {\n\tinput = input.replace(/\\r\\n/g, '\\n');\n\n\tlet i = 0;\n\tlet output = '';\n\n\tfor (; i < input.length; i++) {\n\t\tconst c = input.charCodeAt(i);\n\n\t\tif (c < 128) {\n\t\t\toutput += String.fromCharCode(c);\n\t\t} else if (c > 127 && c < 2048) {\n\t\t\toutput += String.fromCharCode((c >> 6) | 192);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t} else {\n\t\t\toutput += String.fromCharCode((c >> 12) | 224);\n\t\t\toutput += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t}\n\t}\n\n\treturn output;\n};\n\nexport const encode = (input: string): string => {\n\tlet i = 0;\n\tlet chr1: number;\n\tlet chr2: number;\n\tlet chr3: number;\n\tlet enc1: number;\n\tlet enc2: number;\n\tlet enc3: number;\n\tlet enc4: number;\n\tlet output = '';\n\n\tinput = utf8Encode(input);\n\n\twhile (i < input.length) {\n\t\tchr1 = input.charCodeAt(i++);\n\t\tchr2 = input.charCodeAt(i++);\n\t\tchr3 = input.charCodeAt(i++);\n\n\t\tenc1 = chr1 >> 2;\n\t\tenc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n\t\tenc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n\t\tenc4 = chr3 & 63;\n\n\t\tif (isNaN(chr2)) {\n\t\t\tenc3 = enc4 = 64;\n\t\t} else if (isNaN(chr3)) {\n\t\t\tenc4 = 64;\n\t\t}\n\n\t\toutput = output + CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);\n\t}\n\n\treturn output;\n};\n\nexport const detectInputType = (input: string | SVGElement): 'string' | 'element' | void => {\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {\n\t\treturn 'element';\n\t}\n};\n\nexport const getBase64 = (input: string) => PREFIX + encode(input);\n\nexport const convertElement = (input: SVGElement): string => getBase64(new XMLSerializer().serializeToString(input));\n\nexport const svg64 = (input: string | SVGElement): string => {\n\tconst type = detectInputType(input);\n\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn getBase64(input as string);\n\n\t\tcase 'element':\n\t\t\treturn convertElement(input as SVGElement);\n\n\t\tdefault:\n\t\t\treturn input as string;\n\t}\n};\n\nexport default svg64;\n"],"names":["CHARS","utf8Encode","input","replace","i","length","c","charCodeAt","output","String","fromCharCode","chr1","chr3","enc1","enc2","enc3","enc4","chr2","isNaN","charAt","detectInputType","SVGElement","getBase64","encode","convertElement","XMLSerializer","serializeToString","svg64"],"mappings":"AACA,MAAMA,EAAQ,oEAGDC,EAAcC,IAC1BA,EAAQA,EAAMC,QAAQ,QAAS,MAE/B,IAAIC,EAAI,IACK,GAEb,KAAOA,EAAIF,EAAMG,OAAQD,IAAK,CAC7B,MAAME,EAAIJ,EAAMK,WAAWH,GAEvBE,EAAI,IACPE,GAAUC,OAAOC,aAAaJ,GACpBA,EAAI,KAAOA,EAAI,MACzBE,GAAUC,OAAOC,aAAcJ,GAAK,EAAK,KACzCE,GAAUC,OAAOC,aAAkB,GAAJJ,EAAU,OAEzCE,GAAUC,OAAOC,aAAcJ,GAAK,GAAM,KAC1CE,GAAUC,OAAOC,aAAeJ,GAAK,EAAK,GAAM,KAChDE,GAAUC,OAAOC,aAAkB,GAAJJ,EAAU,KAE1C,CAED,OAAOE,KAGeN,IACtB,IACIS,IAEYC,EACZC,EACAC,EACYC,EACAC,EAPZZ,EAAI,EAQJI,EAAS,GAIb,IAFAN,EAAQD,EAAWC,GAEZE,EAAIF,EAAMG,QAChBM,EAAOT,EAAMK,WAAWH,KACxBa,EAAOf,EAAMK,WAAWH,KACxBQ,EAAOV,EAAMK,WAAWH,KAExBS,EAAOF,GAAQ,EACfG,GAAgB,EAAPH,IAAa,EAAMM,GAAQ,EACpCF,GAAgB,GAAPE,IAAc,EAAML,GAAQ,EACrCI,EAAc,GAAPJ,EAEHM,MAAMD,GACTF,EAAOC,EAAO,GACJE,MAAMN,KAChBI,EAAO,IAGRR,EAASA,EAASR,EAAMmB,OAAON,GAAQb,EAAMmB,OAAOL,GAAQd,EAAMmB,OAAOJ,GAAQf,EAAMmB,OAAOH,GAG/F,UAG2BI,EAAIlB,GACV,iBAALA,EACR,SAGkB,oBAALmB,YAAoBnB,wBACjC,eADR,EAKqBoB,EAAIpB,GAvEX,6BAuEsCqB,EAAOrB,GAE/CsB,EAAkBtB,GAA8BoB,GAAU,IAAIG,eAAgBC,kBAAkBxB,IAEhGyB,EAASzB,IAGrB,OAFakB,EAAgBlB,IAG5B,IAAK,SACJ,OAAgBoB,EAACpB,GAElB,IAAK,UACJ,SAAsBA,GAEvB,QACC,OAAsBA,EAAC"}
var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e=function(r){r=r.replace(/\r\n/g,"\n");for(var e=0,t="";e<r.length;e++){var n=r.charCodeAt(e);n<128?t+=String.fromCharCode(n):n>127&&n<2048?(t+=String.fromCharCode(n>>6|192),t+=String.fromCharCode(63&n|128)):(t+=String.fromCharCode(n>>12|224),t+=String.fromCharCode(n>>6&63|128),t+=String.fromCharCode(63&n|128))}return t},t=function(t){var n,a,o,i,f,c,h,u=0,d="";for(t=e(t);u<t.length;)i=(n=t.charCodeAt(u++))>>2,f=(3&n)<<4|(a=t.charCodeAt(u++))>>4,c=(15&a)<<2|(o=t.charCodeAt(u++))>>6,h=63&o,isNaN(a)?c=h=64:isNaN(o)&&(h=64),d=d+r.charAt(i)+r.charAt(f)+r.charAt(c)+r.charAt(h);return d},n=function(r){return"string"==typeof r?"string":"undefined"!=typeof SVGElement&&r instanceof SVGElement?"element":void 0},a=function(r){return"data:image/svg+xml;base64,"+t(r)},o=function(r){return a((new XMLSerializer).serializeToString(r))},i=function(r){switch(n(r)){case"string":return a(r);case"element":return o(r);default:return r}};export{o as convertElement,i as default,n as detectInputType,t as encode,a as getBase64,i as svg64,e as utf8Encode};
//# sourceMappingURL=svg64.module.js.map
{"version":3,"file":"svg64.module.js","sources":["../src/svg64.ts"],"sourcesContent":["// prettier-ignore\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst PREFIX = 'data:image/svg+xml;base64,';\n\nexport const utf8Encode = (input: string): string => {\n\tinput = input.replace(/\\r\\n/g, '\\n');\n\n\tlet i = 0;\n\tlet output = '';\n\n\tfor (; i < input.length; i++) {\n\t\tconst c = input.charCodeAt(i);\n\n\t\tif (c < 128) {\n\t\t\toutput += String.fromCharCode(c);\n\t\t} else if (c > 127 && c < 2048) {\n\t\t\toutput += String.fromCharCode((c >> 6) | 192);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t} else {\n\t\t\toutput += String.fromCharCode((c >> 12) | 224);\n\t\t\toutput += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t}\n\t}\n\n\treturn output;\n};\n\nexport const encode = (input: string): string => {\n\tlet i = 0;\n\tlet chr1: number;\n\tlet chr2: number;\n\tlet chr3: number;\n\tlet enc1: number;\n\tlet enc2: number;\n\tlet enc3: number;\n\tlet enc4: number;\n\tlet output = '';\n\n\tinput = utf8Encode(input);\n\n\twhile (i < input.length) {\n\t\tchr1 = input.charCodeAt(i++);\n\t\tchr2 = input.charCodeAt(i++);\n\t\tchr3 = input.charCodeAt(i++);\n\n\t\tenc1 = chr1 >> 2;\n\t\tenc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n\t\tenc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n\t\tenc4 = chr3 & 63;\n\n\t\tif (isNaN(chr2)) {\n\t\t\tenc3 = enc4 = 64;\n\t\t} else if (isNaN(chr3)) {\n\t\t\tenc4 = 64;\n\t\t}\n\n\t\toutput = output + CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);\n\t}\n\n\treturn output;\n};\n\nexport const detectInputType = (input: string | SVGElement): 'string' | 'element' | void => {\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {\n\t\treturn 'element';\n\t}\n};\n\nexport const getBase64 = (input: string) => PREFIX + encode(input);\n\nexport const convertElement = (input: SVGElement): string => getBase64(new XMLSerializer().serializeToString(input));\n\nexport const svg64 = (input: string | SVGElement): string => {\n\tconst type = detectInputType(input);\n\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn getBase64(input as string);\n\n\t\tcase 'element':\n\t\t\treturn convertElement(input as SVGElement);\n\n\t\tdefault:\n\t\t\treturn input as string;\n\t}\n};\n\nexport default svg64;\n"],"names":["CHARS","utf8Encode","input","replace","i","output","length","c","charCodeAt","String","fromCharCode","encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","isNaN","charAt","detectInputType","SVGElement","getBase64","PREFIX","convertElement","XMLSerializer","serializeToString","svg64"],"mappings":"AACA,IAAMA,EAAQ,oEAGDC,EAAa,SAACC,GAC1BA,EAAQA,EAAMC,QAAQ,QAAS,MAK/B,IAHA,IAAIC,EAAI,EACJC,EAAS,GAEND,EAAIF,EAAMI,OAAQF,IAAK,CAC7B,IAAOG,EAAGL,EAAMM,WAAWJ,GAEvBG,EAAI,IACPF,GAAUI,OAAOC,aAAaH,GACpBA,EAAI,KAAOA,EAAI,MACzBF,GAAUI,OAAOC,aAAcH,GAAK,EAAK,KACzCF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,OAEzCF,GAAUI,OAAOC,aAAcH,GAAK,GAAM,KAC1CF,GAAUI,OAAOC,aAAeH,GAAK,EAAK,GAAM,KAChDF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,KAE1C,CAED,OAAOF,CACR,EAEaM,EAAS,SAACT,GACtB,IACgBU,EACZC,EACAC,EACYC,EACAC,EACZC,EACYC,EAPXd,EAAG,EAQJC,EAAS,GAIb,IAFAH,EAAQD,EAAWC,GAEZE,EAAIF,EAAMI,QAKhBS,GAJAH,EAAOV,EAAMM,WAAWJ,OAIT,EACfY,GAAgB,EAAPJ,IAAa,GAJtBC,EAAOX,EAAMM,WAAWJ,OAIY,EACpCa,GAAgB,GAAPJ,IAAc,GAJvBC,EAAOZ,EAAMM,WAAWJ,OAIa,EACrCc,EAAc,GAAPJ,EAEHK,MAAMN,GACTI,EAAOC,EAAO,GACJC,MAAML,KAChBI,EAAO,IAGRb,EAASA,EAASL,EAAMoB,OAAOL,GAAQf,EAAMoB,OAAOJ,GAAQhB,EAAMoB,OAAOH,GAAQjB,EAAMoB,OAAOF,GAG/F,OAAOb,CACR,EAE4BgB,EAAG,SAACnB,GAC/B,MAAqB,iBAALA,EACR,SAGkB,oBAAfoB,YAA8BpB,aAAiBoB,WAClD,eADR,CAGD,EAEsBC,EAAG,SAACrB,GAAkBsB,MAvE7B,6BAuEsCb,EAAOT,EAAM,EAErDuB,EAAiB,SAACvB,GAAiB,OAAsBqB,GAAC,IAAiBG,eAAGC,kBAAkBzB,GAAO,EAElG0B,EAAG,SAAC1B,GAGrB,OAFamB,EAAgBnB,IAG5B,IAAK,SACJ,OAAOqB,EAAUrB,GAElB,IAAK,UACJ,SAAsBA,GAEvB,QACC,OAAsBA,EAEzB"}
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e||self).svg64={})}(this,function(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=function(e){e=e.replace(/\r\n/g,"\n");for(var t=0,n="";t<e.length;t++){var r=e.charCodeAt(t);r<128?n+=String.fromCharCode(r):r>127&&r<2048?(n+=String.fromCharCode(r>>6|192),n+=String.fromCharCode(63&r|128)):(n+=String.fromCharCode(r>>12|224),n+=String.fromCharCode(r>>6&63|128),n+=String.fromCharCode(63&r|128))}return n},r=function(e){var r,o,i,a,f,d,c,u=0,s="";for(e=n(e);u<e.length;)a=(r=e.charCodeAt(u++))>>2,f=(3&r)<<4|(o=e.charCodeAt(u++))>>4,d=(15&o)<<2|(i=e.charCodeAt(u++))>>6,c=63&i,isNaN(o)?d=c=64:isNaN(i)&&(c=64),s=s+t.charAt(a)+t.charAt(f)+t.charAt(d)+t.charAt(c);return s},o=function(e){return"string"==typeof e?"string":"undefined"!=typeof SVGElement&&e instanceof SVGElement?"element":void 0},i=function(e){return"data:image/svg+xml;base64,"+r(e)},a=function(e){return i((new XMLSerializer).serializeToString(e))},f=function(e){switch(o(e)){case"string":return i(e);case"element":return a(e);default:return e}};e.convertElement=a,e.default=f,e.detectInputType=o,e.encode=r,e.getBase64=i,e.svg64=f,e.utf8Encode=n});
//# sourceMappingURL=svg64.umd.js.map
{"version":3,"file":"svg64.umd.js","sources":["../src/svg64.ts"],"sourcesContent":["// prettier-ignore\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst PREFIX = 'data:image/svg+xml;base64,';\n\nexport const utf8Encode = (input: string): string => {\n\tinput = input.replace(/\\r\\n/g, '\\n');\n\n\tlet i = 0;\n\tlet output = '';\n\n\tfor (; i < input.length; i++) {\n\t\tconst c = input.charCodeAt(i);\n\n\t\tif (c < 128) {\n\t\t\toutput += String.fromCharCode(c);\n\t\t} else if (c > 127 && c < 2048) {\n\t\t\toutput += String.fromCharCode((c >> 6) | 192);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t} else {\n\t\t\toutput += String.fromCharCode((c >> 12) | 224);\n\t\t\toutput += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\toutput += String.fromCharCode((c & 63) | 128);\n\t\t}\n\t}\n\n\treturn output;\n};\n\nexport const encode = (input: string): string => {\n\tlet i = 0;\n\tlet chr1: number;\n\tlet chr2: number;\n\tlet chr3: number;\n\tlet enc1: number;\n\tlet enc2: number;\n\tlet enc3: number;\n\tlet enc4: number;\n\tlet output = '';\n\n\tinput = utf8Encode(input);\n\n\twhile (i < input.length) {\n\t\tchr1 = input.charCodeAt(i++);\n\t\tchr2 = input.charCodeAt(i++);\n\t\tchr3 = input.charCodeAt(i++);\n\n\t\tenc1 = chr1 >> 2;\n\t\tenc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n\t\tenc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n\t\tenc4 = chr3 & 63;\n\n\t\tif (isNaN(chr2)) {\n\t\t\tenc3 = enc4 = 64;\n\t\t} else if (isNaN(chr3)) {\n\t\t\tenc4 = 64;\n\t\t}\n\n\t\toutput = output + CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);\n\t}\n\n\treturn output;\n};\n\nexport const detectInputType = (input: string | SVGElement): 'string' | 'element' | void => {\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {\n\t\treturn 'element';\n\t}\n};\n\nexport const getBase64 = (input: string) => PREFIX + encode(input);\n\nexport const convertElement = (input: SVGElement): string => getBase64(new XMLSerializer().serializeToString(input));\n\nexport const svg64 = (input: string | SVGElement): string => {\n\tconst type = detectInputType(input);\n\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn getBase64(input as string);\n\n\t\tcase 'element':\n\t\t\treturn convertElement(input as SVGElement);\n\n\t\tdefault:\n\t\t\treturn input as string;\n\t}\n};\n\nexport default svg64;\n"],"names":["CHARS","utf8Encode","input","replace","i","output","length","c","charCodeAt","String","fromCharCode","encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","isNaN","charAt","detectInputType","SVGElement","getBase64","PREFIX","convertElement","XMLSerializer","serializeToString","svg64"],"mappings":"+NACA,IAAMA,EAAQ,oEAGDC,EAAa,SAACC,GAC1BA,EAAQA,EAAMC,QAAQ,QAAS,MAK/B,IAHA,IAAIC,EAAI,EACJC,EAAS,GAEND,EAAIF,EAAMI,OAAQF,IAAK,CAC7B,IAAOG,EAAGL,EAAMM,WAAWJ,GAEvBG,EAAI,IACPF,GAAUI,OAAOC,aAAaH,GACpBA,EAAI,KAAOA,EAAI,MACzBF,GAAUI,OAAOC,aAAcH,GAAK,EAAK,KACzCF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,OAEzCF,GAAUI,OAAOC,aAAcH,GAAK,GAAM,KAC1CF,GAAUI,OAAOC,aAAeH,GAAK,EAAK,GAAM,KAChDF,GAAUI,OAAOC,aAAkB,GAAJH,EAAU,KAE1C,CAED,OAAOF,CACR,EAEaM,EAAS,SAACT,GACtB,IACgBU,EACZC,EACAC,EACYC,EACAC,EACZC,EACYC,EAPXd,EAAG,EAQJC,EAAS,GAIb,IAFAH,EAAQD,EAAWC,GAEZE,EAAIF,EAAMI,QAKhBS,GAJAH,EAAOV,EAAMM,WAAWJ,OAIT,EACfY,GAAgB,EAAPJ,IAAa,GAJtBC,EAAOX,EAAMM,WAAWJ,OAIY,EACpCa,GAAgB,GAAPJ,IAAc,GAJvBC,EAAOZ,EAAMM,WAAWJ,OAIa,EACrCc,EAAc,GAAPJ,EAEHK,MAAMN,GACTI,EAAOC,EAAO,GACJC,MAAML,KAChBI,EAAO,IAGRb,EAASA,EAASL,EAAMoB,OAAOL,GAAQf,EAAMoB,OAAOJ,GAAQhB,EAAMoB,OAAOH,GAAQjB,EAAMoB,OAAOF,GAG/F,OAAOb,CACR,EAE4BgB,EAAG,SAACnB,GAC/B,MAAqB,iBAALA,EACR,SAGkB,oBAAfoB,YAA8BpB,aAAiBoB,WAClD,eADR,CAGD,EAEsBC,EAAG,SAACrB,GAAkBsB,MAvE7B,6BAuEsCb,EAAOT,EAAM,EAErDuB,EAAiB,SAACvB,GAAiB,OAAsBqB,GAAC,IAAiBG,eAAGC,kBAAkBzB,GAAO,EAElG0B,EAAG,SAAC1B,GAGrB,OAFamB,EAAgBnB,IAG5B,IAAK,SACJ,OAAOqB,EAAUrB,GAElB,IAAK,UACJ,SAAsBA,GAEvB,QACC,OAAsBA,EAEzB"}
// prettier-ignore
const CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
const PREFIX = 'data:image/svg+xml;base64,';
export const utf8Encode = (input: string): string => {
input = input.replace(/\r\n/g, '\n');
let i = 0;
let output = '';
for (; i < input.length; i++) {
const c = input.charCodeAt(i);
if (c < 128) {
output += String.fromCharCode(c);
} else if (c > 127 && c < 2048) {
output += String.fromCharCode((c >> 6) | 192);
output += String.fromCharCode((c & 63) | 128);
} else {
output += String.fromCharCode((c >> 12) | 224);
output += String.fromCharCode(((c >> 6) & 63) | 128);
output += String.fromCharCode((c & 63) | 128);
}
}
return output;
};
export const encode = (input: string): string => {
let i = 0;
let chr1: number;
let chr2: number;
let chr3: number;
let enc1: number;
let enc2: number;
let enc3: number;
let enc4: number;
let output = '';
input = utf8Encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output + CHARS.charAt(enc1) + CHARS.charAt(enc2) + CHARS.charAt(enc3) + CHARS.charAt(enc4);
}
return output;
};
export const detectInputType = (input: string | SVGElement): 'string' | 'element' | void => {
if (typeof input === 'string') {
return 'string';
}
if (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {
return 'element';
}
};
export const getBase64 = (input: string) => PREFIX + encode(input);
export const convertElement = (input: SVGElement): string => getBase64(new XMLSerializer().serializeToString(input));
export const svg64 = (input: string | SVGElement): string => {
const type = detectInputType(input);
switch (type) {
case 'string':
return getBase64(input as string);
case 'element':
return convertElement(input as SVGElement);
default:
return input as string;
}
};
export default svg64;
+15
-7
{
"name": "svg64",
"version": "1.2.0",
"version": "2.0.0",
"description": "Convert SVG to base64 anywhere",

@@ -18,3 +18,12 @@ "keywords": [

"funding": "https://github.com/sponsors/scriptex",
"main": "dist/svg64.js",
"type": "module",
"source": "src/svg64.ts",
"exports": {
"require": "./dist/svg64.cjs",
"default": "./dist/svg64.modern.js"
},
"main": "./dist/svg64.cjs",
"types": "./dist/svg64.d.ts",
"module": "./dist/svg64.module.js",
"unpkg": "./dist/svg64.umd.js",
"repository": {

@@ -25,12 +34,11 @@ "type": "git",

"scripts": {
"js": "mkdir dist && uglifyjs src/svg64.js -o dist/svg64.js",
"clean": "rm -rf dist && rm -rf demo/dist",
"copy": "cp -r dist demo",
"demo": "node ./demo/scripts/node.js",
"build": "yarn clean && yarn js && yarn copy"
"demo": "node ./demo/scripts/node.mjs",
"build": "microbundle && yarn copy",
"start": "microbundle watch"
},
"dependencies": {},
"devDependencies": {
"uglify-js": "3.17.2"
"microbundle": "0.15.1"
}
}

@@ -58,5 +58,7 @@ [![Travis CI](https://travis-ci.com/scriptex/svg64.svg?branch=master)](https://travis-ci.com/scriptex/svg64)

### In a browser:
### In a browser
```javascript
import svg64 from 'svg64'; // or use window.svg64.default
// This is your SVG DOM element

@@ -69,3 +71,3 @@ const svg = document.getElementById('svg');

// This is your SVG in base64 representation
const base64fromSVG = window.svg64(svg);
const base64fromSVG = svg64(svg);

@@ -76,3 +78,3 @@ // Add the base64 image as a background to your element

### In Node:
### In Node

@@ -97,3 +99,3 @@ ```javascript

Check it out [here](https://sv64.atanas.info)
Check it out [here](https://svg64.atanas.info)

@@ -100,0 +102,0 @@ There is a simple demo illustrating how to use the SVG64 module in NodeJS.

(function(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define(["svg64"],factory);else if(typeof exports==="object")exports["svg64"]=factory();else root["svg64"]=factory()})(this,function(){var Base64={characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64.utf8Encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else if(isNaN(chr3)){enc4=64}output=output+this.characters.charAt(enc1)+this.characters.charAt(enc2)+this.characters.charAt(enc3)+this.characters.charAt(enc4)}return output},utf8Encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c)}else if(c>127&&c<2048){utftext+=String.fromCharCode(c>>6|192);utftext+=String.fromCharCode(c&63|128)}else{utftext+=String.fromCharCode(c>>12|224);utftext+=String.fromCharCode(c>>6&63|128);utftext+=String.fromCharCode(c&63|128)}}return utftext}};var PREFIX="data:image/svg+xml;base64,";var detectInputType=function(input){if(typeof input==="string"){return"string"}if(typeof SVGElement!=="undefined"&&input instanceof SVGElement){return"element"}};var convertElement=function(element){var XMLS=new XMLSerializer;var svg=XMLS.serializeToString(element);return getBase64(svg)};var getBase64=function(svg){return PREFIX+Base64.encode(svg)};return function(svg){var type=detectInputType(svg);switch(type){case"string":return getBase64(svg);case"element":return convertElement(svg);default:return svg}}});
(function (root, factory) {
if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();
// @ts-ignore
else if (typeof define === 'function' && define.amd) define(['svg64'], factory);
else if (typeof exports === 'object') exports['svg64'] = factory();
else root['svg64'] = factory();
})(this, function () {
/**
* Code modified from http://www.webtoolkit.info/
**/
var Base64 = {
characters: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
encode: function (input) {
var output = '';
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = Base64.utf8Encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output =
output +
this.characters.charAt(enc1) +
this.characters.charAt(enc2) +
this.characters.charAt(enc3) +
this.characters.charAt(enc4);
}
return output;
},
utf8Encode: function (string) {
string = string.replace(/\r\n/g, '\n');
var utftext = '';
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if (c > 127 && c < 2048) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
};
var PREFIX = 'data:image/svg+xml;base64,';
/**
* Detect the type of the provided SVG
*
* @param {string | SVGElement} input
*
* @return {string | void}
*/
var detectInputType = function (input) {
if (typeof input === 'string') {
return 'string';
}
if (typeof SVGElement !== 'undefined' && input instanceof SVGElement) {
return 'element';
}
};
/**
* Convert SVGElement to base64
*
* @param {SVGElement} element
*
* @return {string}
*/
var convertElement = function (element) {
var XMLS = new XMLSerializer();
var svg = XMLS.serializeToString(element);
return getBase64(svg);
};
/**
* Get the base64 representation of an SVG string or element
*
* @param {string} svg - Serialized SVG element or SVG string
* @param {SVGElement} svg - Serialized SVG element or SVG string
*
* @return {string}
*/
var getBase64 = function (svg) {
return PREFIX + Base64.encode(svg);
};
/**
* Actually convert the provided SVG
*
* @param {string} svg
* @param {SVGElement} svg
*
* @return {string}
*/
return function (svg) {
var type = detectInputType(svg);
switch (type) {
case 'string':
return getBase64(svg);
case 'element':
return convertElement(svg);
default:
return svg;
}
};
});