Socket
Socket
Sign inDemoInstall

svg-crowbar

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svg-crowbar - npm Package Compare versions

Comparing version 0.0.3 to 0.1.0

2

dist/main.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc