svg-crowbar
Advanced tools
Comparing version 0.0.3 to 0.1.0
@@ -1,1 +0,1 @@ | ||
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);const o='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',r={xmlns:"http://www.w3.org/2000/xmlns/",xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"};var i=function(t){const e=function(){let t=window.document.createElementNS(r.svg,"svg");document.body.appendChild(t);const e=getComputedStyle(t);return t=null,e}();t.setAttribute("version","1.1"),t.removeAttribute("xmlns"),t.removeAttribute("xlink"),t.hasAttributeNS(r.xmlns,"xmlns")||t.setAttributeNS(r.xmlns,"xmlns",r.svg),t.hasAttributeNS(r.xmlns,"xmlns:xlink")||t.setAttributeNS(r.xmlns,"xmlns:xlink",r.xlink),function(t,e){function n(t){const n=getComputedStyle(t);let o,r,i="";for(let t=0,l=n.length;t<l;t++)o=n[t],(r=n.getPropertyValue(o))!==e.getPropertyValue(o)&&(i+=`${o}:${r};`);t.setAttribute("style",i)}const o=function(t){const e=[];return e.push(t),function t(n){if(n&&n.hasChildNodes()){let o=n.firstChild;for(;o;)1===o.nodeType&&"SCRIPT"!==o.nodeName&&(e.push(o),t(o)),o=o.nextSibling}}(t),e}(t);let r=o.length;for(;r--;)n(o[r])}(t,e);const n=(new XMLSerializer).serializeToString(t),i=t.getBoundingClientRect();return{top:i.top,left:i.left,width:i.width,height:i.height,class:t.getAttribute("class"),id:t.getAttribute("id"),name:t.getAttribute("name"),childElementCount:t.childElementCount,source:[o+n]}};function l(t){let e="untitled";return t.id?e=t.id:t.class?e=t.class:window.document.title&&(e=window.document.title.replace(/[^a-z0-9]/gi,"-").toLowerCase()),e}const u=10;var s=function(t){const e=l(t),n=window.URL.createObjectURL(new Blob(t.source,{type:"text/xml"})),o=document.createElement("a");document.body.appendChild(o),o.setAttribute("class","svg-crowbar"),o.setAttribute("download",`${e}.svg`),o.setAttribute("href",n),o.style.display="none",o.click(),setTimeout(()=>{window.URL.revokeObjectURL(n),document.body.removeChild(o)},u)};var d=function(t){const e=l(t),n=document.createElement("canvas");document.body.appendChild(n),n.setAttribute("id","svg-image"),n.setAttribute("width",t.width),n.setAttribute("height",t.height),n.style.display="none";const o=n.getContext("2d"),r=`data:image/svg+xml;base64,${btoa(t.source)}`,i=new Image;i.src=r,i.onload=function(){o.drawImage(i,0,0);const t=n.toDataURL("image/png"),r=document.createElement("a");r.download=`${e}.png`,r.href=t,document.body.appendChild(r),r.click(),setTimeout(()=>{document.body.removeChild(r)},u)}};n.d(e,"downloadPng",function(){return c});e.default=(t=>s(i(t)));const c=t=>d(i(t))}])}); | ||
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);const o='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',r={xmlns:"http://www.w3.org/2000/xmlns/",xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"};var i=function(t){const e=function(){let t=window.document.createElementNS(r.svg,"svg");document.body.appendChild(t),t.style.all="initial";const e=getComputedStyle(t);return document.body.removeChild(t),t=null,e}();t.setAttribute("version","1.1"),t.removeAttribute("xmlns"),t.removeAttribute("xlink"),t.hasAttributeNS(r.xmlns,"xmlns")||t.setAttributeNS(r.xmlns,"xmlns",r.svg),t.hasAttributeNS(r.xmlns,"xmlns:xlink")||t.setAttributeNS(r.xmlns,"xmlns:xlink",r.xlink),function(t,e){function n(t){const n=getComputedStyle(t);let o,r,i="";for(let t=0,l=n.length;t<l;t++)o=n[t],(r=n.getPropertyValue(o))!==e.getPropertyValue(o)&&(i+=`${o}:${r};`);t.setAttribute("style",i)}const o=function(t){const e=[];return e.push(t),function t(n){if(n&&n.hasChildNodes()){let o=n.firstChild;for(;o;)1===o.nodeType&&"SCRIPT"!==o.nodeName&&(e.push(o),t(o)),o=o.nextSibling}}(t),e}(t);let r=o.length;for(;r--;)n(o[r])}(t,e);const n=(new XMLSerializer).serializeToString(t),i=t.getBoundingClientRect();return{top:i.top,left:i.left,width:i.width,height:i.height,class:t.getAttribute("class"),id:t.getAttribute("id"),name:t.getAttribute("name"),childElementCount:t.childElementCount,source:[o+n]}};function l(t){let e="untitled";return t.id?e=t.id:t.class?e=t.class:window.document.title&&(e=window.document.title.replace(/[^a-z0-9]/gi,"-").toLowerCase()),e}const u=10;var s=function(t){const e=l(t),n=window.URL.createObjectURL(new Blob(t.source,{type:"text/xml"})),o=document.createElement("a");document.body.appendChild(o),o.setAttribute("class","svg-crowbar"),o.setAttribute("download",`${e}.svg`),o.setAttribute("href",n),o.style.display="none",o.click(),setTimeout(()=>{window.URL.revokeObjectURL(n),document.body.removeChild(o)},u)};var d=function(t){const e=l(t),n=document.createElement("canvas");document.body.appendChild(n),n.setAttribute("id","svg-image"),n.setAttribute("width",t.width),n.setAttribute("height",t.height),n.style.display="none";const o=n.getContext("2d"),r=`data:image/svg+xml;base64,${btoa(t.source)}`,i=new Image;i.src=r,i.onload=function(){o.drawImage(i,0,0);const t=n.toDataURL("image/png"),r=document.createElement("a");r.download=`${e}.png`,r.href=t,document.body.appendChild(r),r.click(),setTimeout(()=>{document.body.removeChild(r)},u)}};n.d(e,"downloadPng",function(){return c});e.default=(t=>s(i(t)));const c=t=>d(i(t))}])}); |
{ | ||
"name": "svg-crowbar", | ||
"version": "0.0.3", | ||
"version": "0.1.0", | ||
"description": "A library based on a Chrome-specific bookmarklet that extracts SVG nodes and accompanying styles from an HTML document and downloads them as an SVG file", | ||
@@ -20,3 +20,3 @@ "main": "./dist/main.js", | ||
"author": "Igor Shevchenko <cyberskunk@gmail.com>", | ||
"license": "ISC", | ||
"license": "MIT", | ||
"bugs": { | ||
@@ -23,0 +23,0 @@ "url": "https://github.com/cy6erskunk/svg-crowbar/issues" |
@@ -1,7 +0,12 @@ | ||
# SVG Crowbar Lib | ||
[![NPM version](https://img.shields.io/npm/v/svg-crowbar.svg)](https://www.npmjs.com/package/nsp-reporter-teamcity) | ||
# SVG Crowbar Library | ||
[![NPM version](https://img.shields.io/npm/v/svg-crowbar.svg)](https://www.npmjs.com/package/svg-crowbar) | ||
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) | ||
A library based on Chrome-specific [bookmarklet](https://nytimes.github.io/svg-crowbar/) | ||
A standalone 3.5Kb JS client library based on Chrome [bookmarklet](https://nytimes.github.io/svg-crowbar/). | ||
The library provides functionality to trigger a download of a given SVG file having alle the styles inlined, | ||
to make it look the same when opened independently from the original HTML page. | ||
It is also possible to use this library to convert an SVG to a PNG before downloading. | ||
## Usage | ||
@@ -18,2 +23,2 @@ ```javascript | ||
downloadPng(document.querySelector('svg')); | ||
``` | ||
``` |
@@ -12,3 +12,5 @@ const doctype = | ||
document.body.appendChild(emptySvg) | ||
emptySvg.style.all = 'initial' | ||
const emptySvgDeclarationComputed = getComputedStyle(emptySvg) | ||
document.body.removeChild(emptySvg) | ||
emptySvg = null | ||
@@ -15,0 +17,0 @@ return emptySvgDeclarationComputed |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
11917
0
152
24