Added svg wrapper

This commit is contained in:
Luis Leiva 2019-09-03 22:50:11 +03:00
parent bfd9d69e59
commit 07604c05ca
4 changed files with 13 additions and 5 deletions

View File

@ -8,6 +8,7 @@ module.exports = function(grunt) {
full: { full: {
src: [ src: [
'src/jsketch.js', 'src/jsketch.js',
'src/jsketch.svg.js',
'src/sketchable.utils.js', 'src/sketchable.utils.js',
'src/sketchable.js', 'src/sketchable.js',
'src/sketchable.memento.js', 'src/sketchable.memento.js',
@ -20,6 +21,7 @@ module.exports = function(grunt) {
jqFull: { jqFull: {
src: [ src: [
'src/jsketch.js', 'src/jsketch.js',
'src/jsketch.svg.js',
'src/jquery.sketchable.js', 'src/jquery.sketchable.js',
'src/jquery.sketchable.memento.js', 'src/jquery.sketchable.memento.js',
'src/jquery.sketchable.animate.js', 'src/jquery.sketchable.animate.js',
@ -36,6 +38,11 @@ module.exports = function(grunt) {
'dist/jsketch.min.js': [ 'src/jsketch.js' ] 'dist/jsketch.min.js': [ 'src/jsketch.js' ]
} }
}, },
jsketchSvg: {
files: {
'dist/jsketch.svg.min.js': [ 'src/jsketch.svg.js' ]
}
},
sketchable: { sketchable: {
files: { files: {
'dist/sketchable.min.js': [ 'src/sketchable.js' ] 'dist/sketchable.min.js': [ 'src/sketchable.js' ]
@ -122,7 +129,7 @@ module.exports = function(grunt) {
grunt.registerTask('memento', [ 'uglify:memento', 'uglify:jqMemento', 'clean' ]); grunt.registerTask('memento', [ 'uglify:memento', 'uglify:jqMemento', 'clean' ]);
grunt.registerTask('animate', [ 'uglify:animate', 'uglify:jqAnimate', 'clean' ]); grunt.registerTask('animate', [ 'uglify:animate', 'uglify:jqAnimate', 'clean' ]);
grunt.registerTask('serializer', [ 'uglify:serializer', 'uglify:jqSerializer', 'clean' ]); grunt.registerTask('serializer', [ 'uglify:serializer', 'uglify:jqSerializer', 'clean' ]);
grunt.registerTask('svg', [ 'uglify:svg', 'uglify:jqSvg', 'clean' ]); grunt.registerTask('svg', [ 'uglify:jsketchSvg', 'uglify:svg', 'uglify:jqSvg', 'clean' ]);
grunt.registerTask('default', [ 'full', 'jsketch', 'sketchable', 'memento', 'animate', 'serializer', 'svg' ]); grunt.registerTask('default', [ 'full', 'jsketch', 'sketchable', 'memento', 'animate', 'serializer', 'svg' ]);
}; };

File diff suppressed because one or more lines are too long

1
dist/jsketch.svg.min.js vendored Normal file
View File

@ -0,0 +1 @@
!function(a){a.jSketch.prototype.toSVG=function(a){function b(){var a='<?xml version="1.0" encoding="utf-8" standalone="no" ?>';return a+='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',a+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+e.stageWidth+'" height="'+e.stageHeight+'" viewBox="0 0 '+e.stageWidth+" "+e.stageHeight+'">',a+="<desc>Generated with jSketch: https://luis.leiva.name/jsketch/</desc>",a+="<defs></defs>",a+="<g>",a+=c(),a+="</g>",a+="</svg>",a.replace(/\s+/g," ")}function c(){for(var a="",b=0;b<e.callStack.length;b++){var c=e.callStack[b];if(c.property&&"object"!=typeof c.value)h[c.property]=c.value;else if(c.method){if(!i[c.method]){console.warn("Method not implemented:",c.method);continue}a+=i[c.method].apply(null,c.args)}else console.warn("Unknown call:",c)}return a}function d(){if(0>=g){clearInterval(j);var c=b();a(c)}else console.info("Waiting for %s async operations to be finished ...",g)}if("function"!=typeof a)throw new Error("You must supply a callback in toSVG() method.");var e=this,f=[],g=0,h={},i={addAsync:function(){return g++,""},removeAsync:function(){return g--,""},drawImage:function(a,b,c){return'<image preserveAspectRatio="none" width="'+a.width+'" height="'+a.height+'" transform="translate('+b+", "+c+')" xlink:href="'+a.src+'"></image>'},fillRect:function(a,b,c,d){return'<rect stroke="none" width="'+c+'" height="'+d+'" x="'+a+'" y="'+b+'" fill="'+h.fillStyle+'"></rect>'},strokeRect:function(a,b,c,d){return'<rect fill="none" width="'+c+'" height="'+d+'" x="'+a+'" y="'+b+'" stroke="'+h.strokeStyle+'" stroke-width="'+h.lineWidth+'" stroke-linecap="'+h.lineCap+'" stroke-linejoin="'+h.lineJoin+'" stroke-miterlimit="'+h.miterLimit+'"></rect>'},strokeCircle:function(a,b,c){return'<circle fill="none" cx="'+a+'" cy="'+b+'" r="'+c+'" stroke="'+h.strokeStyle+'" stroke-width="'+h.lineWidth+'" />'},fillCircle:function(a,b,c){return'<circle stroke="none" cx="'+a+'" cy="'+b+'" r="'+c+'" fill="'+h.fillStyle+'" />'},beginPath:function(){return f=[],""},closePath:function(){var a="";return f.length>0&&(a='<path fill="none" stroke="'+h.strokeStyle+'" stroke-width="'+h.lineWidth+'" stroke-linecap="'+h.lineCap+'" stroke-linejoin="'+h.lineJoin+'" stroke-miterlimit="'+h.miterLimit+'" d="'+f.join(" ")+'" />',f=[]),a},moveTo:function(a,b){return f.push("M "+a+" "+b),""},lineTo:function(a,b){return f.push("L "+a+" "+b),""},quadraticCurveTo:function(a,b,c,d){return f.push("Q "+a+" "+b+" "+c+" "+d),""}},j=setInterval(d,150);return this}}(this);

File diff suppressed because one or more lines are too long