From d4bd8e4d9ba649fe350d50ebfd4beea2ebe4d321 Mon Sep 17 00:00:00 2001 From: Lars Klein Date: Sat, 22 Nov 2014 19:00:17 +0100 Subject: [PATCH 01/19] added definitions for adobes snap svg --- snap-svg/snapsvg.d.ts | 280 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 snap-svg/snapsvg.d.ts diff --git a/snap-svg/snapsvg.d.ts b/snap-svg/snapsvg.d.ts new file mode 100644 index 0000000000..934b1452ca --- /dev/null +++ b/snap-svg/snapsvg.d.ts @@ -0,0 +1,280 @@ +declare function mina(a:number, A:number, b:number, B:number, get:Function, set:Function, easing?:Function):Object; +declare module mina { + + export function backin(n:number):number; + export function backout(n:number):number; + export function bounce(n:number):number; + export function easein(n:number):number; + export function easeinout(n:number):number; + export function easeout(n:number):number; + export function elastic(n:number):number; + export function getById(id:string):Object; + export function linear(n:number):number; + export function time():number; +} + +declare function Snap(width:number,height:number):Snap.Paper; +declare function Snap(query:string):Snap.Paper; +declare function Snap(DOM:SVGElement):Snap.Paper; + +declare module Snap { + + export var filter:Filter; + export var path:Path; + + export function Matrix(a:number,b:number,c:number,d:number,e:number,f:number):Matrix; + export function Matrix(svgMatrix:SVGMatrix):Matrix; + + export function ajax(url:string,postData:string,callback:Function,scope?:Object):XMLHttpRequest; + export function ajax(url:string,postData:Object,callback:Function,scope?:Object):XMLHttpRequest; + export function ajax(url:string,callback:Function,scope?:Object):XMLHttpRequest; + export function format(token:string,json:Object):string; + export function fragment(varargs:any):Fragment; + export function getElementByPoint(x:number,y:number):Object; + export function is(o:any,type:string):boolean; + export function load(url:string,callback:Function,scope?:Object):XMLHttpRequest; + export function plugin(f:Function):void; + export function select(query:string):Snap.Element; + export function selectAll(query:string):any; + export function snapTo(values:Array,value:number,tolerance?:number):number; + + export function animate(from:number,to:number,setter:Function,duration:number,easing:Function,callback:Function):Mina; + export function animate(from:Array,to:number,setter:Function,duration:number,easing:Function,callback:Function):Mina; + export function animate(from:number,to:Array,setter:Function,duration:number,easing:Function,callback:Function):Mina; + export function animate(from:Array,to:Array,setter:Function,duration:number,easing:Function,callback:Function):Mina; + export function animation(attr:Object,duration:number,easing?:Function,callback?:Function):Object; + + export function color(clr:string):Object;export function getRGB(color:string):Object; + export function hsb(h:number,s:number,b:number):HSB; + export function hsl(h:number,s:number,l:number):HSL; + export function rgb(r:number,g:number,b:number):RGB; + export function hsb2rgb(h:number,s:number,v:number):RGB; + export function hsl2rgb(h:number,s:number,l:number):RGB; + export function rgb2hsb(r:number,g:number,b:number):HSB; + export function rgb2hsl(r:number,g:number,b:number):HSL; + + export function angle(x1:number,y1:number,x2:number,y2:number,x3?:number,y3?:number):number; + export function rad(deg:number):number; + export function deg(rad:number):number; + + export function parse(svg:string):Fragment; + export function parsePathString(pathString:string):Array; + export function parsePathString(pathString:Array):Array; + export function parseTransformString(TString:string):Array; + export function parseTransformString(TString:Array):Array; + + export interface Mina{ + id:string; + duration:Function; + easing:Function; + speed:Function; + status:Function; + stop:Function; + } + + export interface RGB{ + r:number; + g:number; + b:number; + hex:string; + } + + export interface HSB{ + h:number; + s:number; + b:number; + } + export interface HSL{ + h:number; + s:number; + l:number; + } + + export interface BBox{ + cx:number; + cy:number; + h:number; + height:number; + path:number; + r0:number; + r1:number; + r2:number; + vb:string; + w:number; + width:number; + x2:number; + x:number; + y2:number; + y:number; + } + + export interface Element { + constructor(); + + add():void; + addClass(value:string):Snap.Element; + after(el:Snap.Element):Snap.Element; + animate(attrs:Object,duration:number,easing?:Function,callback?:Function):Snap.Element; + animate(animation:any):Snap.Element; + append(el:Snap.Element):Snap.Element; + appendTo(el:Snap.Element):Snap.Element; + asPX(attr:string,value?:string):Snap.Element; + attr(params:Object):Snap.Element; + attr(param:string):string; + before(el:Snap.Element):Snap.Element; + clone():Snap.Element; + data(key:string,value?:any):any; + getBBox():BBox; + getPointAtLength(length:number):Object; + getSubpath(from:number,to:number):string; + getTotalLength():number; + hasClass(value:string):boolean; + inAnim():Object; + innerSVG():string; + insertAfter(el:Snap.Element):Snap.Element; + insertBefore(el:Snap.Element):Snap.Element; + marker(x:number,y:number,width:number,height:number,refX:number,refY:number):Snap.Element; + node:Element; + outerSVG():string; + parent():Snap.Element; + pattern(x:any,y:any,width:any,height:any):Snap.Element; + prepend(el:Snap.Element):Snap.Element; + prependTo(el:Snap.Element):Snap.Element; + remove():Snap.Element; + removeClass(value:string):Snap.Element; + removeData(key?:string):Snap.Element; + select(query:string):Snap.Element; + selectAll(query:string):any; + stop():Snap.Element; + toDefs():Snap.Element; + toPattern(x:number,y:number,width:number,height:number):Object; + toPattern(x:string,y:string,width:string,height:string):Object; + toString():string; + toggleClass(value:string,flag:boolean):Snap.Element; + transform(tstr:string):any; + type:string; + use():Object; + + click(handler:Function):Snap.Element; + unclick(handler:Function):Snap.Element; + dblclick(handler:Function):Snap.Element; + undblclick(handler:Function):Snap.Element; + mousedown(handler:Function):Snap.Element; + unmousedown(handler:Function):Snap.Element; + mousemove(handler:Function):Snap.Element; + unmousemove(handler:Function):Snap.Element; + mouseout(handler:Function):Snap.Element; + unmouseout(handler:Function):Snap.Element; + mouseover(handler:Function):Snap.Element; + unmouseover(handler:Function):Snap.Element; + mouseup(handler:Function):Snap.Element; + unmouseup(handler:Function):Snap.Element; + touchstart(handler:Function):Snap.Element; + untouchstart(handler:Function):Snap.Element; + touchmove(handler:Function):Snap.Element; + untouchmove(handler:Function):Snap.Element; + touchend(handler:Function):Snap.Element; + untouchend(handler:Function):Snap.Element; + touchcancel(handler:Function):Snap.Element; + untouchcancel(handler:Function):Snap.Element; + hover(f_in:Function,f_out:Function,icontext?:Object,ocontext?:Object):Snap.Element; + unhover(f_in:Function,f_out:Function):Snap.Element; + drag(onmove:Function,onstart:Function,onend:Function,mcontext?:Object,scontext?:Object,econtext?:Object):Snap.Element; + undrag():Snap.Element; + } + + export interface Fragment { + select():Snap.Element; + selectAll():Snap.Element; + } + + export interface Matrix { + add(a:number,b:number,c:number,d:number,e:number,f:number):void; + add(matrix:Matrix):void; + clone():Matrix; + determinant():number; + invert():Matrix; + rotate(a:number,x:number,y:number):void; + scale(x:number,y?:number,cx?:number,cy?:number):void; + split():Object; + toTransformString():string; + translate(x:number,y:number):void; + x(x:number,y:number):number; + y(x:number,y:number):number; + + } + + interface Paper extends Snap.Element { + + clear():void; + el(name:string, attr:Object):Snap.Element; + gradient(gradient:string):any; + g(varargs:any):Object; + group(varargs:any):Object; + mask(varargs:any):Object; + ptrn(x:number,y:number,width:number,height:number,vbx:number,vby:number,vbw:number,vbh:number):Object; + svg(x:number,y:number,width:number,height:number,vbx:number,vby:number,vbw:number,vbh:number):Object; + toString():string; + use(id?:string):Object; + use(id?:Snap.Element):Object; + + circle(x:number,y:number,r:number):Snap.Element; + ellipse(x:number,y:number,rx:number,ry:number):Snap.Element; + image(src:string,x:number,y:number,width:number,height:number):Snap.Element; + line(x1:number,y1:number,x2:number,y2:number):Snap.Element; + path(pathString?:string):Object; + polygon(varargs:any[]):Snap.Element; + polyline(varargs:any[]):Snap.Element; + rect(x:number,y:number,width:number,height:number,rx?:number,ry?:number):Snap.Element; + text(x:number,y:number,text:string):Snap.Element; + text(x:number,y:number,text:Array):Snap.Element; + } + + export interface Set { + animate(attrs:Object,duration:number,easing?:Function,callback?:Function):Snap.Element; + bind(attr:string,callback:Function):Snap.Set; + bind(attr:string,element:Snap.Element):Snap.Set; + bind(attr:string,element:Snap.Element,eattr:string):Snap.Set; + clear(); + exclude(element:Snap.Element):boolean; + forEach(callback:Function,thisArg:Object):Snap.Set; + pop():Snap.Element; + push(el:Snap.Element):Snap.Element; + push(els:Snap.Element[]):Snap.Element; + splice(index:number,count:number,insertion?:Object[]):Snap.Element[]; + } + + interface Filter { + blur(x:number,y?:number):string; + brightness(amount:number):string; + contrast(amount:number):string; + grayscale(amount:number):string; + hueRotate(angle:number):string; + invert(amount:number):string; + saturate(amount:number):string; + sepia(amount:number):string; + shadow(dx:number,dy:number,blur?:number,color?:string,opacity?:number):string; + } + + interface Path { + bezierBBox(...args:number[]):Object; + bezierBBox(bez:Array):Object; + findDotsAtSegment(p1x:number,p1y:number,c1x:number, + c1y:number,c2x:number,c2y:number, + p2x:number,p2y:number,t:number):Object; + getBBox(path:string):Object; + getPointAtLength(path:string,length:number):Object; + getSubpath(path:string,from:number,to:number):string; + getTotalLength(path:string):number; + intersection(path1:string,path2:string):Array; + isBBoxIntersect(bbox1:string,bbox2:string):boolean + isPointInside(path:string,x:number,y:number):boolean; + isPointInsideBBox(bbox:string,x:string,y:string):boolean; + map(path:string,matrix:Snap.Matrix):string; + map(path:string,matrix:Object):string; + toAbsolute(path:string):Array; + toCubic(pathString:string):Array; + toCubic(pathString:Array):Array; + toRelative(path:string):Array; + } +} \ No newline at end of file From f6304ac4b2bca1547bd4616c0813aedc802e8626 Mon Sep 17 00:00:00 2001 From: Lars Klein Date: Sat, 22 Nov 2014 19:15:21 +0100 Subject: [PATCH 02/19] removed some errors --- snap-svg/snapsvg.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/snap-svg/snapsvg.d.ts b/snap-svg/snapsvg.d.ts index 934b1452ca..ab37efbc05 100644 --- a/snap-svg/snapsvg.d.ts +++ b/snap-svg/snapsvg.d.ts @@ -210,7 +210,7 @@ declare module Snap { el(name:string, attr:Object):Snap.Element; gradient(gradient:string):any; g(varargs:any):Object; - group(varargs:any):Object; + group(el:any,...els:any[]):any; mask(varargs:any):Object; ptrn(x:number,y:number,width:number,height:number,vbx:number,vby:number,vbw:number,vbh:number):Object; svg(x:number,y:number,width:number,height:number,vbx:number,vby:number,vbw:number,vbh:number):Object; @@ -222,7 +222,7 @@ declare module Snap { ellipse(x:number,y:number,rx:number,ry:number):Snap.Element; image(src:string,x:number,y:number,width:number,height:number):Snap.Element; line(x1:number,y1:number,x2:number,y2:number):Snap.Element; - path(pathString?:string):Object; + path(pathString?:string):Snap.Element; polygon(varargs:any[]):Snap.Element; polyline(varargs:any[]):Snap.Element; rect(x:number,y:number,width:number,height:number,rx?:number,ry?:number):Snap.Element; @@ -277,4 +277,4 @@ declare module Snap { toCubic(pathString:Array):Array; toRelative(path:string):Array; } -} \ No newline at end of file +} From f5bf85926e81701abd30832b880a436f59378a07 Mon Sep 17 00:00:00 2001 From: lhk Date: Mon, 24 Nov 2014 20:26:27 +0100 Subject: [PATCH 03/19] Update snapsvg.d.ts --- snap-svg/snapsvg.d.ts | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/snap-svg/snapsvg.d.ts b/snap-svg/snapsvg.d.ts index ab37efbc05..e96a53afa1 100644 --- a/snap-svg/snapsvg.d.ts +++ b/snap-svg/snapsvg.d.ts @@ -1,5 +1,13 @@ declare function mina(a:number, A:number, b:number, B:number, get:Function, set:Function, easing?:Function):Object; declare module mina { + export interface Mina { + id: string; + duration: Function; + easing: Function; + speed: Function; + status: Function; + stop: Function; + } export function backin(n:number):number; export function backout(n:number):number; @@ -32,16 +40,16 @@ declare module Snap { export function fragment(varargs:any):Fragment; export function getElementByPoint(x:number,y:number):Object; export function is(o:any,type:string):boolean; - export function load(url:string,callback:Function,scope?:Object):XMLHttpRequest; + export function load(url:string,callback:Function,scope?:Object):void; export function plugin(f:Function):void; export function select(query:string):Snap.Element; export function selectAll(query:string):any; export function snapTo(values:Array,value:number,tolerance?:number):number; - export function animate(from:number,to:number,setter:Function,duration:number,easing:Function,callback:Function):Mina; - export function animate(from:Array,to:number,setter:Function,duration:number,easing:Function,callback:Function):Mina; - export function animate(from:number,to:Array,setter:Function,duration:number,easing:Function,callback:Function):Mina; - export function animate(from:Array,to:Array,setter:Function,duration:number,easing:Function,callback:Function):Mina; + export function animate(from:number,to:number,setter:Function,duration:number,easing:Function,callback:Function):mina.Mina; + export function animate(from:Array,to:number,setter:Function,duration:number,easing:Function,callback:Function):mina.Mina; + export function animate(from:number,to:Array,setter:Function,duration:number,easing:Function,callback:Function):mina.Mina; + export function animate(from:Array,to:Array,setter:Function,duration:number,easing:Function,callback:Function):mina.Mina; export function animation(attr:Object,duration:number,easing?:Function,callback?:Function):Object; export function color(clr:string):Object;export function getRGB(color:string):Object; @@ -63,15 +71,6 @@ declare module Snap { export function parseTransformString(TString:string):Array; export function parseTransformString(TString:Array):Array; - export interface Mina{ - id:string; - duration:Function; - easing:Function; - speed:Function; - status:Function; - stop:Function; - } - export interface RGB{ r:number; g:number; @@ -109,8 +108,6 @@ declare module Snap { } export interface Element { - constructor(); - add():void; addClass(value:string):Snap.Element; after(el:Snap.Element):Snap.Element; @@ -178,14 +175,15 @@ declare module Snap { touchcancel(handler:Function):Snap.Element; untouchcancel(handler:Function):Snap.Element; hover(f_in:Function,f_out:Function,icontext?:Object,ocontext?:Object):Snap.Element; - unhover(f_in:Function,f_out:Function):Snap.Element; + unhover(f_in: Function, f_out: Function): Snap.Element; + drag(): void; drag(onmove:Function,onstart:Function,onend:Function,mcontext?:Object,scontext?:Object,econtext?:Object):Snap.Element; undrag():Snap.Element; } export interface Fragment { - select():Snap.Element; - selectAll():Snap.Element; + select(query:string):Snap.Element; + selectAll():Snap.Set; } export interface Matrix { @@ -235,9 +233,9 @@ declare module Snap { bind(attr:string,callback:Function):Snap.Set; bind(attr:string,element:Snap.Element):Snap.Set; bind(attr:string,element:Snap.Element,eattr:string):Snap.Set; - clear(); + clear():Snap.Set; exclude(element:Snap.Element):boolean; - forEach(callback:Function,thisArg:Object):Snap.Set; + forEach(callback:Function,thisArg?:Object):Snap.Set; pop():Snap.Element; push(el:Snap.Element):Snap.Element; push(els:Snap.Element[]):Snap.Element; From 1b301c1b36663bed9ca0cc10a09a53d1a8478319 Mon Sep 17 00:00:00 2001 From: lhk Date: Mon, 24 Nov 2014 20:32:06 +0100 Subject: [PATCH 04/19] Update snapsvg.d.ts --- snap-svg/snapsvg.d.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/snap-svg/snapsvg.d.ts b/snap-svg/snapsvg.d.ts index e96a53afa1..3e622b9f92 100644 --- a/snap-svg/snapsvg.d.ts +++ b/snap-svg/snapsvg.d.ts @@ -1,3 +1,8 @@ +// Type definitions for Snap-SVG 0.3 +// Project: https://github.com/adobe-webplatform/Snap.svg +// Definitions by: Lars Klein +// Definitions: https://github.com/borisyankov/DefinitelyTyped + declare function mina(a:number, A:number, b:number, B:number, get:Function, set:Function, easing?:Function):Object; declare module mina { export interface Mina { From af5ac00d4089af073174b630b013ecf43fa72134 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 17:41:11 +0100 Subject: [PATCH 05/19] Rename snapsvg.d.ts to snap-svg.d.ts --- snap-svg/{snapsvg.d.ts => snap-svg.d.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename snap-svg/{snapsvg.d.ts => snap-svg.d.ts} (100%) diff --git a/snap-svg/snapsvg.d.ts b/snap-svg/snap-svg.d.ts similarity index 100% rename from snap-svg/snapsvg.d.ts rename to snap-svg/snap-svg.d.ts From dd9a68281a3826edf72fd5673f86442a540ddbf5 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 17:41:59 +0100 Subject: [PATCH 06/19] Create snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 83 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 snap-svg/snap-svg-tests.ts diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts new file mode 100644 index 0000000000..3dfb449bb1 --- /dev/null +++ b/snap-svg/snap-svg-tests.ts @@ -0,0 +1,83 @@ + + +/// +// First lets create our drawing surface out of existing SVG element +// If you want to create new surface just provide dimensions +// like s = Snap(800, 600); +var s = Snap("#svg"); +// Lets create big circle in the middle: +var bigCircle = s.circle(150, 150, 100); +// By default its black, lets change its attributes +bigCircle.attr({ + fill: "#bada55", + stroke: "#000", + strokeWidth: 5 +}); +// Now lets create another small circle: +var smallCircle = s.circle(100, 150, 70); +// Lets put this small circle and another one into a group: +var discs = s.group(smallCircle, s.circle(200, 150, 70)); +// Now we can change attributes for the whole group +discs.attr({ + fill: "#fff" +}); +// Now more interesting stuff +// Lets assign this group as a mask for our big circle +bigCircle.attr({ + mask: discs +}); +// Despite our small circle now is a part of a group +// and a part of a mask we could still access it: +smallCircle.animate({ r: 50 }, 1000); +// We don’t have reference for second small circle, +// but we could easily grab it with CSS selectors: +discs.select("circle:nth-child(2)").animate({ r: 50 }, 1000); +// Now lets create pattern +var p = s.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({ + fill: "none", + stroke: "#bada55", + strokeWidth: 5 +}); +// To create pattern, +// just specify dimensions in pattern method: +p = p.pattern(0, 0, 10, 10); +// Then use it as a fill on big circle +bigCircle.attr({ + fill: p +}); +// We could also grab pattern from SVG +// already embedded into our page +discs.attr({ + fill: Snap("#pattern") +}); +// Lets change fill of circles to gradient +// This string means relative radial gradient +// from white to black +discs.attr({ fill: "r()#fff-#000" }); +// Note that you have two gradients for each circle +// If we want them to share one gradient, +// we need to use absolute gradient with capital R +discs.attr({ fill: "R(150, 150, 100)#fff-#000" }); +// Of course we could animate color as well +p.select("path").animate({ stroke: "#f00" }, 1000); +// Now lets load external SVG file: +Snap.load("mascot.svg", function (f) { + // Note that we traversre and change attr before SVG + // is even added to the page + f.selectAll("polygon[fill='#09B39C']").attr({ fill: "#bada55" }); + var g = f.select("g"); + s.append(g); + // Making croc draggable. Go ahead drag it around! + g.drag(); + // Obviously drag could take event handlers too + // That’s better! selectAll for the rescue. +}); +// Writing text as simple as: +s.text(200, 100, "Snap.svg"); +// Provide an array of strings (or arrays), to generate tspans +var t = s.text(200, 120, ["Snap", ".", "svg"]); +t.selectAll("tspan:nth-child(3)").attr({ + fill: "#900", + "font-size": "20px" +}); + From ec7b41afc15085f3d7c2d72c948dfddada5c3b61 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 17:44:27 +0100 Subject: [PATCH 07/19] Update snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts index 3dfb449bb1..309ae07d30 100644 --- a/snap-svg/snap-svg-tests.ts +++ b/snap-svg/snap-svg-tests.ts @@ -1,4 +1,4 @@ - +//Copied from the snap homepage /// // First lets create our drawing surface out of existing SVG element From e52dbf94a51436ca8abf9d4f843f82ecbf2feb69 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:12:29 +0100 Subject: [PATCH 08/19] Update snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts index 309ae07d30..12a7cd5be2 100644 --- a/snap-svg/snap-svg-tests.ts +++ b/snap-svg/snap-svg-tests.ts @@ -1,6 +1,6 @@ //Copied from the snap homepage -/// +/// // First lets create our drawing surface out of existing SVG element // If you want to create new surface just provide dimensions // like s = Snap(800, 600); From 78ecf54c90ba576d38a393d529ed4358d6cb18c1 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:15:32 +0100 Subject: [PATCH 09/19] Update snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts index 12a7cd5be2..62294bd5f9 100644 --- a/snap-svg/snap-svg-tests.ts +++ b/snap-svg/snap-svg-tests.ts @@ -61,7 +61,7 @@ discs.attr({ fill: "R(150, 150, 100)#fff-#000" }); // Of course we could animate color as well p.select("path").animate({ stroke: "#f00" }, 1000); // Now lets load external SVG file: -Snap.load("mascot.svg", function (f) { +Snap.load("mascot.svg", function (f:Snap.Element) { // Note that we traversre and change attr before SVG // is even added to the page f.selectAll("polygon[fill='#09B39C']").attr({ fill: "#bada55" }); From 7ea9394dd474aa5b0c26bae95614161d633b1843 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:22:02 +0100 Subject: [PATCH 10/19] Update snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts index 62294bd5f9..a7d6f7fde9 100644 --- a/snap-svg/snap-svg-tests.ts +++ b/snap-svg/snap-svg-tests.ts @@ -61,7 +61,7 @@ discs.attr({ fill: "R(150, 150, 100)#fff-#000" }); // Of course we could animate color as well p.select("path").animate({ stroke: "#f00" }, 1000); // Now lets load external SVG file: -Snap.load("mascot.svg", function (f:Snap.Element) { +Snap.load("mascot.svg", function (f:Snap.Fragment) { // Note that we traversre and change attr before SVG // is even added to the page f.selectAll("polygon[fill='#09B39C']").attr({ fill: "#bada55" }); From 0e54668113da311375fc070f854de77493ce5bd0 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:24:31 +0100 Subject: [PATCH 11/19] Update snap-svg-tests.ts --- snap-svg/snap-svg-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap-svg/snap-svg-tests.ts b/snap-svg/snap-svg-tests.ts index a7d6f7fde9..eb03043162 100644 --- a/snap-svg/snap-svg-tests.ts +++ b/snap-svg/snap-svg-tests.ts @@ -1,4 +1,4 @@ -//Copied from the snap homepage +//Copied from the snap homepage http://snapsvg.io/ /// // First lets create our drawing surface out of existing SVG element From fcb3fc4ba6edadfb28c2512532113810b9a5ac69 Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:30:16 +0100 Subject: [PATCH 12/19] Update snap-svg.d.ts --- snap-svg/snap-svg.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/snap-svg/snap-svg.d.ts b/snap-svg/snap-svg.d.ts index 3e622b9f92..f7899a2b85 100644 --- a/snap-svg/snap-svg.d.ts +++ b/snap-svg/snap-svg.d.ts @@ -188,6 +188,7 @@ declare module Snap { export interface Fragment { select(query:string):Snap.Element; + selectAll(query:string):Snap.Set; selectAll():Snap.Set; } From 6836c0b1ec1f881599f550bc56fca76d036a6abd Mon Sep 17 00:00:00 2001 From: lhk Date: Tue, 25 Nov 2014 18:46:58 +0100 Subject: [PATCH 13/19] Update snap-svg.d.ts --- snap-svg/snap-svg.d.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/snap-svg/snap-svg.d.ts b/snap-svg/snap-svg.d.ts index f7899a2b85..e3ac349afd 100644 --- a/snap-svg/snap-svg.d.ts +++ b/snap-svg/snap-svg.d.ts @@ -187,9 +187,11 @@ declare module Snap { } export interface Fragment { + //TODO: The documentation says that selectAll returns a set, but the getting started guide + // uses .attr on the returned object. That's not supported by a set select(query:string):Snap.Element; - selectAll(query:string):Snap.Set; - selectAll():Snap.Set; + selectAll(query:string):any; + selectAll():any; } export interface Matrix { From 326e9e1d519f503f39adbcc4a2e38e94b55e682c Mon Sep 17 00:00:00 2001 From: Lars Klein Date: Wed, 26 Nov 2014 21:11:44 +0100 Subject: [PATCH 14/19] renaming --- {snap-svg => snapsvg}/snap-svg-tests.ts | 0 {snap-svg => snapsvg}/snap-svg.d.ts | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {snap-svg => snapsvg}/snap-svg-tests.ts (100%) rename {snap-svg => snapsvg}/snap-svg.d.ts (100%) diff --git a/snap-svg/snap-svg-tests.ts b/snapsvg/snap-svg-tests.ts similarity index 100% rename from snap-svg/snap-svg-tests.ts rename to snapsvg/snap-svg-tests.ts diff --git a/snap-svg/snap-svg.d.ts b/snapsvg/snap-svg.d.ts similarity index 100% rename from snap-svg/snap-svg.d.ts rename to snapsvg/snap-svg.d.ts From d92079400a57859be3450901fcef8d20549738d6 Mon Sep 17 00:00:00 2001 From: Lars Klein Date: Wed, 26 Nov 2014 21:12:18 +0100 Subject: [PATCH 15/19] renaming --- snapsvg/{snap-svg.d.ts => snapsvg.d.ts} | 0 snapsvg/{snap-svg-tests.ts => snapsvgtests.d.ts} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename snapsvg/{snap-svg.d.ts => snapsvg.d.ts} (100%) rename snapsvg/{snap-svg-tests.ts => snapsvgtests.d.ts} (100%) diff --git a/snapsvg/snap-svg.d.ts b/snapsvg/snapsvg.d.ts similarity index 100% rename from snapsvg/snap-svg.d.ts rename to snapsvg/snapsvg.d.ts diff --git a/snapsvg/snap-svg-tests.ts b/snapsvg/snapsvgtests.d.ts similarity index 100% rename from snapsvg/snap-svg-tests.ts rename to snapsvg/snapsvgtests.d.ts From c778516c0deb1106e19e44001bce6ca22b954eee Mon Sep 17 00:00:00 2001 From: lhk Date: Wed, 26 Nov 2014 21:31:59 +0100 Subject: [PATCH 16/19] Update snapsvgtests.d.ts --- snapsvg/snapsvgtests.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snapsvg/snapsvgtests.d.ts b/snapsvg/snapsvgtests.d.ts index eb03043162..b07bc20079 100644 --- a/snapsvg/snapsvgtests.d.ts +++ b/snapsvg/snapsvgtests.d.ts @@ -1,6 +1,6 @@ //Copied from the snap homepage http://snapsvg.io/ -/// +/// // First lets create our drawing surface out of existing SVG element // If you want to create new surface just provide dimensions // like s = Snap(800, 600); From fd80bfdf4ba43c3dcc6933eb0775d15a62d2f76b Mon Sep 17 00:00:00 2001 From: lhk Date: Wed, 26 Nov 2014 21:35:31 +0100 Subject: [PATCH 17/19] Rename snapsvgtests.d.ts to snapsvgtests.ts --- snapsvg/{snapsvgtests.d.ts => snapsvgtests.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename snapsvg/{snapsvgtests.d.ts => snapsvgtests.ts} (100%) diff --git a/snapsvg/snapsvgtests.d.ts b/snapsvg/snapsvgtests.ts similarity index 100% rename from snapsvg/snapsvgtests.d.ts rename to snapsvg/snapsvgtests.ts From 0f5ced7dda3729409d0368989532bb0b3e5f2272 Mon Sep 17 00:00:00 2001 From: lhk Date: Wed, 26 Nov 2014 21:59:57 +0100 Subject: [PATCH 18/19] Update snapsvg.d.ts I tested the snap code, apparently a set supports the attr method. --- snapsvg/snapsvg.d.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/snapsvg/snapsvg.d.ts b/snapsvg/snapsvg.d.ts index e3ac349afd..821f27de0d 100644 --- a/snapsvg/snapsvg.d.ts +++ b/snapsvg/snapsvg.d.ts @@ -146,7 +146,8 @@ declare module Snap { removeClass(value:string):Snap.Element; removeData(key?:string):Snap.Element; select(query:string):Snap.Element; - selectAll(query:string):any; + selectAll(query: string): Snap.Set; + selectAll(): Snap.Set; stop():Snap.Element; toDefs():Snap.Element; toPattern(x:number,y:number,width:number,height:number):Object; @@ -190,8 +191,8 @@ declare module Snap { //TODO: The documentation says that selectAll returns a set, but the getting started guide // uses .attr on the returned object. That's not supported by a set select(query:string):Snap.Element; - selectAll(query:string):any; - selectAll():any; + selectAll(query:string):Snap.Set; + selectAll():Snap.Set; } export interface Matrix { @@ -238,7 +239,9 @@ declare module Snap { export interface Set { animate(attrs:Object,duration:number,easing?:Function,callback?:Function):Snap.Element; - bind(attr:string,callback:Function):Snap.Set; + attr(params: Object): Snap.Element; + attr(param: string): string; + bind(attr: string, callback: Function): Snap.Set; bind(attr:string,element:Snap.Element):Snap.Set; bind(attr:string,element:Snap.Element,eattr:string):Snap.Set; clear():Snap.Set; From 03a144cd530cf8f2e5285edf49170841d4679631 Mon Sep 17 00:00:00 2001 From: lhk Date: Wed, 26 Nov 2014 22:03:06 +0100 Subject: [PATCH 19/19] Rename snapsvgtests.ts to snapsvg-tests.ts --- snapsvg/{snapsvgtests.ts => snapsvg-tests.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename snapsvg/{snapsvgtests.ts => snapsvg-tests.ts} (100%) diff --git a/snapsvg/snapsvgtests.ts b/snapsvg/snapsvg-tests.ts similarity index 100% rename from snapsvg/snapsvgtests.ts rename to snapsvg/snapsvg-tests.ts