From a7981f2146914d3522101bf8c454fa2de80da016 Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Thu, 5 Feb 2015 10:07:20 +0100 Subject: [PATCH 1/6] Added event callbacks to CellView --- jointjs/jointjs.d.ts | 110 ++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 49 deletions(-) diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index 9e6a2f0cc3..e52c13f3cd 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -17,33 +17,33 @@ declare module joint { class Graph extends Backbone.Model { initialize(); - fromJSON(json: any); + fromJSON(json:any); clear(); - addCell(cell: Cell); - addCells(cells: Cell[]); - getConnectedLinks(cell: Cell, opt?: any): Link[]; - disconnectLinks(cell: Cell); - removeLinks(cell: Cell); + addCell(cell:Cell); + addCells(cells:Cell[]); + getConnectedLinks(cell:Cell, opt?:any):Link[]; + disconnectLinks(cell:Cell); + removeLinks(cell:Cell); findModelsFromPoint(point:{x : number; y: number}):Element[]; } class Cell extends Backbone.Model { toJSON(); - remove(options?: any); + remove(options?:any); toFront(); toBack(); - embed(cell: Cell); - unembed(cell: Cell); - getEmbeddedCells(): Cell[]; - clone(opt?: any): Backbone.Model; // @todo: return can either be Cell or Cell[]. - attr(attrs: any): Cell; + embed(cell:Cell); + unembed(cell:Cell); + getEmbeddedCells():Cell[]; + clone(opt?:any):Backbone.Model; // @todo: return can either be Cell or Cell[]. + attr(attrs:any):Cell; } class Element extends Cell { - position(x: number, y: number): Element; - translate(tx: number, ty?: number): Element; - resize(width: number, height: number): Element; - rotate(angle: number, absolute): Element; + position(x:number, y:number):Element; + translate(tx:number, ty?:number):Element; + resize(width:number, height:number):Element; + rotate(angle:number, absolute):Element; } interface IDefaults { @@ -51,9 +51,9 @@ declare module joint { } class Link extends Cell { - defaults(): IDefaults; - disconnect(): Link; - label(idx?: number, value?: any): any; // @todo: returns either a label under idx or Link if both idx and value were passed + defaults():IDefaults; + disconnect():Link; + label(idx?:number, value?:any):any; // @todo: returns either a label under idx or Link if both idx and value were passed } interface IOptions { @@ -66,34 +66,41 @@ declare module joint { } class Paper extends Backbone.View { - options: IOptions; - setDimensions(width: number, height: number); - scale(sx: number, sy?: number, ox?: number, oy?: number): Paper; - rotate(deg: number, ox?: number, oy?: number): Paper; // @todo not released yet though it's in the source code already - findView(el: any): CellView; - findViewByModel(modelOrId: any): CellView; - findViewsFromPoint(p: { x: number; y: number; }): CellView[]; - findViewsInArea(r: { x: number; y: number; width: number; height: number; }): CellView[]; - snapToGrid(p): { x: number; y: number; }; + options:IOptions; + + setDimensions(width:number, height:number); + scale(sx:number, sy?:number, ox?:number, oy?:number):Paper; + rotate(deg:number, ox?:number, oy?:number):Paper; // @todo not released yet though it's in the source code already + findView(el:any):CellView; + findViewByModel(modelOrId:any):CellView; + findViewsFromPoint(p:{ x: number; y: number; }):CellView[]; + findViewsInArea(r:{ x: number; y: number; width: number; height: number; }):CellView[]; + snapToGrid(p):{ x: number; y: number; }; } - class ElementView extends CellView { - scale(sx: number, sy: number); + class ElementView extends CellView { + scale(sx:number, sy:number); } class CellView extends Backbone.View { - getBBox(): { x: number; y: number; width: number; height: number; }; - highlight(el?: any); - unhighlight(el?: any); - findMagnet(el: any); - getSelector(el: any); + getBBox():{ x: number; y: number; width: number; height: number; }; + highlight(el?:any); + unhighlight(el?:any); + findMagnet(el:any); + getSelector(el:any); + + pointerdblclick(evt:any, x:number, y:number):void; + pointerclick(evt:any, x:number, y:number):void; + pointerdown(evt:any, x:number, y:number):void; + pointermove(evt:any, x:number, y:number):void; + pointerup(evt:any, x:number, y:number):void; } class LinkView extends CellView { - getConnectionLength(): number; - getPointAtLength(length: number): { x: number; y: number; }; + getConnectionLength():number; + getPointAtLength(length:number):{ x: number; y: number; }; } - + } module ui { @@ -127,21 +134,26 @@ declare module joint { module shapes { module basic { - class Generic extends joint.dia.Element { } - class Rect extends Generic { } - class Text extends Generic { } - class Circle extends Generic { } - class Image extends Generic { } + class Generic extends joint.dia.Element { + } + class Rect extends Generic { + } + class Text extends Generic { + } + class Circle extends Generic { + } + class Image extends Generic { + } } } module util { - function uuid(): string; - function guid(obj: any): string; - function mixin(objects: any[]): any; - function supplement(objects: any[]): any; - function deepMixin(objects: any[]): any; - function deepSupplement(objects: any[], defaultIndicator?: any): any; + function uuid():string; + function guid(obj:any):string; + function mixin(objects:any[]):any; + function supplement(objects:any[]):any; + function deepMixin(objects:any[]):any; + function deepSupplement(objects:any[], defaultIndicator?:any):any; } } From a0f9e136c004ef9894833bb09a98bdb60a25bb1f Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Fri, 6 Feb 2015 09:48:57 +0100 Subject: [PATCH 2/6] Separated jointjs and rappid definitions. --- jointjs/jointjs.d.ts | 34 ++++------------------------------ rappid/README.md | 1 + rappid/rappid.d.ts | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 rappid/README.md create mode 100644 rappid/rappid.d.ts diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index e52c13f3cd..483523d679 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -1,6 +1,7 @@ -// Type definitions for Joint JS 0.6 +// Type definitions for Joint JS 0.9.3 // Project: http://www.jointjs.com/ -// Definitions by: Aidan Reel , David Durman +// Definitions by: Aidan Reel , +// David Durman , Ewout Van Gossum // Definitions: https://github.com/borisyankov/DefinitelyTyped /// @@ -103,34 +104,7 @@ declare module joint { } - module ui { - interface Handle { - name : string; - position : string; - icon: string; - } - - class SelectionView extends Backbone.Model { - paper:joint.dia.Paper; - graph:joint.dia.Graph; - model:Backbone.Collection; - - constructor(opt:{ - paper : joint.dia.Paper; - graph : joint.dia.Graph; - model : Backbone.Collection - }); - - createSelectionBox(cellView:joint.dia.CellView); - destroySelectionBox(cellView:joint.dia.CellView); - startSelecting(evt:any); - cancelSelection(); - - addHandle(handle:Handle); - removeHandle(name:string); - changeHandle(name:string, handle:Handle); - } - } + module ui {} module shapes { module basic { diff --git a/rappid/README.md b/rappid/README.md new file mode 100644 index 0000000000..1119a7e6b8 --- /dev/null +++ b/rappid/README.md @@ -0,0 +1 @@ +These definitions are far from complete. \ No newline at end of file diff --git a/rappid/rappid.d.ts b/rappid/rappid.d.ts new file mode 100644 index 0000000000..2b3aaf4e25 --- /dev/null +++ b/rappid/rappid.d.ts @@ -0,0 +1,38 @@ +// Type definitions for Rappid 1.5 +// Project: http://jointjs.com/about-rappid +// Definitions by: Ewout Van Gossum +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module joint{ + module ui{ + interface Handle { + name : string; + position : string; + icon: string; + } + + class SelectionView extends Backbone.Model { + paper:joint.dia.Paper; + graph:joint.dia.Graph; + model:Backbone.Collection; + + constructor(opt:{ + paper : joint.dia.Paper; + graph : joint.dia.Graph; + model : Backbone.Collection + }); + + createSelectionBox(cellView:joint.dia.CellView); + destroySelectionBox(cellView:joint.dia.CellView); + startSelecting(evt:any); + cancelSelection(); + + addHandle(handle:Handle); + removeHandle(name:string); + changeHandle(name:string, handle:Handle); + } + } +} \ No newline at end of file From 42c7718ad5ad711eae79c2f8d2c10e8fd7c491a7 Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Tue, 10 Feb 2015 08:55:17 +0100 Subject: [PATCH 3/6] Added return types where necessary. --- jointjs/jointjs.d.ts | 39 ++++++++++++++++++++------------------- rappid/rappid.d.ts | 14 +++++++------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index 483523d679..5d2257ffde 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -17,24 +17,25 @@ declare module joint { } class Graph extends Backbone.Model { - initialize(); - fromJSON(json:any); - clear(); - addCell(cell:Cell); - addCells(cells:Cell[]); + addCell(cell:Cell) : void; + addCells(cells:Cell[]) : void; + initialize() : void; + fromJSON(json:any) : void; + toJSON() : Object; + clear() : void; getConnectedLinks(cell:Cell, opt?:any):Link[]; - disconnectLinks(cell:Cell); - removeLinks(cell:Cell); + disconnectLinks(cell:Cell) : void; + removeLinks(cell:Cell) : void; findModelsFromPoint(point:{x : number; y: number}):Element[]; } class Cell extends Backbone.Model { - toJSON(); - remove(options?:any); - toFront(); - toBack(); - embed(cell:Cell); - unembed(cell:Cell); + toJSON() : Object; + remove(options?:any) : void; + toFront() : void; + toBack() : void; + embed(cell:Cell) : void; + unembed(cell:Cell) : void; getEmbeddedCells():Cell[]; clone(opt?:any):Backbone.Model; // @todo: return can either be Cell or Cell[]. attr(attrs:any):Cell; @@ -69,7 +70,7 @@ declare module joint { class Paper extends Backbone.View { options:IOptions; - setDimensions(width:number, height:number); + setDimensions(width:number, height:number) : void; scale(sx:number, sy?:number, ox?:number, oy?:number):Paper; rotate(deg:number, ox?:number, oy?:number):Paper; // @todo not released yet though it's in the source code already findView(el:any):CellView; @@ -80,15 +81,15 @@ declare module joint { } class ElementView extends CellView { - scale(sx:number, sy:number); + scale(sx:number, sy:number) : void; } class CellView extends Backbone.View { getBBox():{ x: number; y: number; width: number; height: number; }; - highlight(el?:any); - unhighlight(el?:any); - findMagnet(el:any); - getSelector(el:any); + highlight(el?:any): void; + unhighlight(el?:any): void; + findMagnet(el:any): void; + getSelector(el:any): void; pointerdblclick(evt:any, x:number, y:number):void; pointerclick(evt:any, x:number, y:number):void; diff --git a/rappid/rappid.d.ts b/rappid/rappid.d.ts index 2b3aaf4e25..9cc438884f 100644 --- a/rappid/rappid.d.ts +++ b/rappid/rappid.d.ts @@ -25,14 +25,14 @@ declare module joint{ model : Backbone.Collection }); - createSelectionBox(cellView:joint.dia.CellView); - destroySelectionBox(cellView:joint.dia.CellView); - startSelecting(evt:any); - cancelSelection(); + createSelectionBox(cellView:joint.dia.CellView) : void; + destroySelectionBox(cellView:joint.dia.CellView) : void; + startSelecting(evt:any) : void; + cancelSelection() : void; - addHandle(handle:Handle); - removeHandle(name:string); - changeHandle(name:string, handle:Handle); + addHandle(handle:Handle) : void; + removeHandle(name:string) : void; + changeHandle(name:string, handle:Handle) : void; } } } \ No newline at end of file From 24ef5a1d8aaa61548a42e54891f86023d06c3f5a Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Tue, 10 Feb 2015 09:04:47 +0100 Subject: [PATCH 4/6] Fixed Element rotate (and also updated to current jointjs api) --- jointjs/jointjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index 5d2257ffde..5917f1811c 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -45,7 +45,7 @@ declare module joint { position(x:number, y:number):Element; translate(tx:number, ty?:number):Element; resize(width:number, height:number):Element; - rotate(angle:number, absolute):Element; + rotate(angle:number, options : {absolute : boolean; origin: {x:number;y:number}}):Element; } interface IDefaults { From 7aa6024ba2db7b2e5b8ccee44168c6d362ddb37b Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Tue, 10 Feb 2015 09:08:35 +0100 Subject: [PATCH 5/6] Removed snapToGrid as it doesn't seem to be part of the public JointJS API. --- jointjs/jointjs.d.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index 5917f1811c..cf5efdc5bd 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -1,7 +1,6 @@ // Type definitions for Joint JS 0.9.3 // Project: http://www.jointjs.com/ -// Definitions by: Aidan Reel , -// David Durman , Ewout Van Gossum +// Definitions by: Aidan Reel , David Durman , Ewout Van Gossum // Definitions: https://github.com/borisyankov/DefinitelyTyped /// @@ -77,7 +76,6 @@ declare module joint { findViewByModel(modelOrId:any):CellView; findViewsFromPoint(p:{ x: number; y: number; }):CellView[]; findViewsInArea(r:{ x: number; y: number; width: number; height: number; }):CellView[]; - snapToGrid(p):{ x: number; y: number; }; } class ElementView extends CellView { From 3504f92e2f9cb5174f94010305d90cdde9adff8c Mon Sep 17 00:00:00 2001 From: "EWOUT-QMINO\\Ewout" Date: Thu, 12 Feb 2015 17:03:25 +0100 Subject: [PATCH 6/6] Added remove(): void to Cell and Link. See: http://jointjs.com/api#joint.dia.Element:remove http://jointjs.com/api#joint.dia.Link:remove --- jointjs/jointjs.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index cf5efdc5bd..19e2394458 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -45,6 +45,7 @@ declare module joint { translate(tx:number, ty?:number):Element; resize(width:number, height:number):Element; rotate(angle:number, options : {absolute : boolean; origin: {x:number;y:number}}):Element; + remove(): void; } interface IDefaults { @@ -55,6 +56,7 @@ declare module joint { defaults():IDefaults; disconnect():Link; label(idx?:number, value?:any):any; // @todo: returns either a label under idx or Link if both idx and value were passed + remove(): void; } interface IOptions {