forked from clientIO/joint
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
387 lines (366 loc) · 26.3 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
1-8-2018 (v2.1.4)
* reconfigure eslint
* add .editorconfig
* dia.Element - fix hasPorts() when no items defined
* dia.LinkView - stop preventing propagation for legacy link tools events
29-6-2018 (v2.1.3)
* dia.CellView - fix ambigious magnet selector
* dia.LinkView - trigger missing link:pointerdown event on label pointerdown
* dia.LinkView - fix connection update for loop links
* dia.Link - improve reparenting (loop link embeds into the connected element, link connected to ancestor and its decendant embeds into the ancestor)
* dia.Graph - getConnectedLinks() does not contain enclosed links (not necessary embedded links), add includeEnclosed option to get all connected links.
* dia.Paper - fix cell:contextmenu event
* dia.Paper - fix missing magnet reference for validateConnection()
* dia.LinkView - fix backwards compatibility for linkConnectionPoint option signature
* dia.attributes - fix textWrap attribute
* Geometry - improve polyline parsing
* improve advanced tutorials
8-5-2018 (v2.1.2)
* dia.CellView - fix magnet lookup based on the port property
* docs - fix broken links
7-5-2018 (v2.1.1)
* layout.PortLabel - fix manual position
* anchors - prevent exception when reference node not in the DOM
27-4-2018 (v2.1.0)
* update Tutorials
* shapes.Standard - add new set of high-performance elements and links
* dia.LinkView - new flexible definitions based on geometric representation
* dia.LinkView - refactor event handlers
* dia.LinkView - introduce anchors, connectionPoints and connectionStrategy
* dia.LinkView - add getConnection(), getSerializedConnection(), getConnectionSubdivisions(), getPointAtRatio(), getTangentAtLength(), getTangentAtRatio() getClosestPoint() and getClosestPointLength()
* dia.LinkView - add getVertexIndex(), getLabelCoordinates()
* dia.Link - add vertex API
* dia.Link - add label API and allow define a default label
* dia.Link - add source(), target(), router(), connector()
* anchors - ready-to-use anchors (center, top, bottom, left, right, topLeft, topRight, bottomLeft, bottomRight, perpendicular, midSide)
* connectionPoints - ready-to-use connection points (anchor, bbox, rectangle, boundary),
* connectionStrategies - predefined connection strategies (defaulAnchor, pinAbsolute, pinRelative)
* dia.ElementView - allow element's rotation without rotatable group
* dia.ElementView - refactor event handlers
* dia.ElementView - apply vector-effect: non-scaling-stroke to nodes inside ths scalable group only
* dia.Element - add angle()
* dia.CellView - render markup from JSON (link, element, ports and labels)
* dia.Cell - avoid unnecessary z-index changes during toFront or toBack
* dia.ToolsView - set of tools for a link
* dia.ToolView - base class for a single link tool
* linkTools - ready-to-use tools (vertices, segments, anchor, arrowhead, boundary, remove button)
* dia.Paper - complete set of events
* dia.Paper - add allowLink option to revert/remove invalid links
* dia.Paper - add getContentArea()
* dia.Paper - findParentBy option can be defined as a function
* dia.Paper - consequitive pointerdown, pointermove and pointerup can share event data
* dia.Paper - fire pointerup event on touchcancel
* dia.Paper - improve preventing image dragging in FireFox
* dia.attributes - sourceMarker, targetMarker and vertextMarker receive default stroke, fill and opacity values from its context
* dia.attributes - add refRInscribed, refRCircumscribed, refD, refPoints, title, textVerticalAnchor attributes
* dia.attributes - add connection, atConnectionLength, atConnectionRatio
* routers.Manhattan - adaptive grid for pathfinding
* routers - supports anchors (don't necessary start and end in the center of the magnet)
* layout.DirectedGraph - prevent undesired input cells sorting
* Vectorizer - add toGeometryShape(), normalizePathData(), tagName() and id to prototype
* Vectorizer - add transformLine() and transformPolyline()
* Vectorizer - text() accepts textVerticalAnchor option
* Vectorizer - improve Kappa value
* Geometry - add Path and Curves
* Geometry - add Polyline bbox(), scale(), translate(), clone() and serialize()
* Geometry - implement intersections of line with various shapes
* Geometry - add Point lerp() for linear interpolation
* shapes.basic.TextBlock - sanitize text
* util - normalizeSides() validates input and accepts horizontal and vertical attributes
* util - add parseDOMJSON(), dataUriToBlob(), downloadBlob(), downloadDataUri() and isPercentage()
15-11-2017 (v2.0.1)
* toggleFullscreen() - fix canceling fullscreen in an iframe
* dia.Link - fix default label font color (IE)
* dia.Cell - fix removeProp() on arrays
* dia.Graph - fromJSON() does not ignore dry option anymore
23-10-2017 (v2.0.0)
* Typescript definitions refactored (breaking change of the release)
* JointJS now compatible with Lodash v4 (see `demo/lodash4` for instructions)
* Geometry - add Polyline with pointAtLength(), length(), closestPointLength(), closestPoint() and convexHull()
* Geometry - add cross(), dot(), squaredDistance(), closestPoint(), closestPointNormalizedLength(), vector(), vectorAngle(), angleBetween() to Point
* Vectorizer - add children() and getBBox()
* Vectorizer - fix parseTransformString() and matrixToTransformString()
* Vectorizer - make the text `y` coordinate based on the first line `line-height` in text()
* Vectorizer - add option to define the end-of-line character for text()
* layout.DirectedLayout - add ability to position labels
* layout.DirectedLayout - fix bug when the elements passed do not include their parents
* dia.Paper - add `clickThreshold`, `moveThreshold` and `preventDefaultBlankAction` options
* dia.Paper - add cancelRenderViews() for async mode
* dia.CellView - do not reset node's transform attribute if no transform applied update()
* dia.Element - position() can be called with { deep: true } option to set position of the embeds
* dia.attributes - `text` attribute takes `x` into account
* dia.attributes - add `event` for easier events handling on CellViews and `resetOffset` for paths to start at 0,0
* dia.LinkView - stop triggering link:connect/link:disconnnect when connection not allowed
* dia.LinkView - can sendToken() backwards
* highlighters.Stroke - fix for magnets inside scalable group and with zero width or height
31-03-2017 (v1.1.0)
* add TypeScript definitions
* update jQuery v3.1.1
* Geometry - improve Point/Rect prototype.round(precision) - fix coordinates being converted to a string after round() with a precision called, allow negative precision
* Geometry - add Rect inflate(), bottomLine(), topLine(), leftLine() and rightLine()
* Geometry - Point offset() and difference() accept both a point and x,y coordinates
* Geometry - add Line equals()
* Geometry - Line intersection() renamed to intersect() and calculates intersection points with another line or rectangle
* Vectorizer - stop accessing deprecated `nodeName` and `nodeValue` attribute properties
* Vectorizer - add prototype.contains() method
* Vectorizer - add matrixToTransformString() method as opposed to transformStringToMatrix()
* Vectorizer - add ensureId() method
* Vectorizer - add appendTo() method
* Vectorizer - V(node); does not set automatically id on the node anymore
* Vectorizer - text() with content doesn't set invalid display: null on node anymore
* Vectorizer - fix convertRectToPathData() for rounded rectangles
* dia.attributes - add namespace for defining custom attributes, allow camelCase attribute style
* dia.attributes - new attributes `sourceMarker`, `targetMarker`, `vertexMarker`, `textWrap`, `refRx`, `refRy`, `refCx`, `refCy`, `refX2`, `refY2`
* dia.attributes - improve `text` attribute performance on cellView update
* dia.attributes - fix mixing various attributes (e.g. `transform`, `refX` and `refDx` now add up)
* dia.Paper - add defineGradient(), defineFilter(), defineMarker() and isDefined() methods
* dia.Paper - fix async rendering when cell was previously member of different graph.
* dia.Paper - improve grid precision, added new grid patterns, update drawGrid() options definition.
* dia.Paper - `blank:pointerup` event is fired only after a preceeding `blank:pointerdown` event
* dia.Paper - add paperToLocalPoint(), clientToLocalPoint(), pageToLocalPoint(), localToPaperPoint(), localToPagePoint() and localToClientPoint().
* dia.Paper - add paperToLocalRect(), clientToLocalRect(), pageToLocalRect(), localToPaperRect(), localToClientRect() and localToPageRect()
* dia.Paper - add clientOffset() and pageOffset()
* dia.Cell - make cell.attr() work as getter
* dia.Cell - prop(), removeProp() accept also path defined as an array
* dia.Element - add size(), getPortPositions() methods
* dia.Element - rotate() doesn't translate embeddeded cells anymore
* dia.Link - allow arbitrary shapes for labels
* dia.LinkView - fix link translating when embedded and has no marker
* dia.LinkView - set correct port and selector on the link
* mvc.View - prevent extend() from modifying prototype propertires
* ports events `ports:add` and `ports:remove` triggered when port is added to element/removed from element
* utils - fix toggleFullScreen() in IE
* utils - breakText() takes the lineHeight style into account
* util - change cells() wrapper also accept a single cell
* highlighter.Stroke - allow multiple strokes to be applied to a single cellView magnet, prevent memory leaks
* connectors.jumpover - fix on graph `reset`
18-11-2016 (v1.0.3)
* make compatibility changes towards jQuery 3.1
* shapes.TextBlock - fix `SVGForeignObject` detection
* dia.Graph - fix graph references stored on cells (when a cell added to another graph)
* layout.DirectedGraph - fix cell's graph references overriden by the layout
* Vectorizer - remove deprecated attributes' `nodeValue` and `nodeName` calls
27-10-2016 (v1.0.2)
* Vectorizer - fix `convertToPathData()` for polyline.
* add yarn.lock
* improve documentation
20-09-2016 (v1.0.1)
* All joint views now use the `joint-` class name prefix for their class names.
* dia.Element - make it easy to add ports to an arbitrary element, introduced API for ports manipulation
* shapes.devs.Model - uses new port API internally. shapes.basic.PortsViewInterface, shapes.basic.PortsInterface are marked as `deprecated`
* layout.Port - various layouts for positioning ports
* layout.PortLabel - various layouts for positioning labels relatively to ports
* joint.util.deepSupplement, joint.util.supplement, joint.util.mixin, joint.util.deepMixin marked as `deprecated`. Use lodash _.defaultsDeep, _.defaults, _.assign, _.mixin instead
* layout.DirectedGraph - layout() returns a bbox
* dia.LinkView - unify `link:options` event signature with the rest of events (breaking change)
* dia.LinkView - fix perpendicular links outside the pahper area
* dia.ElementView - fix resizing without scalable group, re-render element when markup change
* dia.ElementView - improve x-alignment and y-alignment for text
* other bug fixes and improvements
13-06-2016 (v0.9.10)
* Fixes for webpack, browserify
31-05-2016 (v0.9.9)
* JointJS:
* Added env namespace with env.test(name) and env.addTest(name, fn) methods
* Added highlighters namespace with two highlighters (stroke and opacity). Highlighting now done automatically when: embedding an element, connecting a link to a port or element.
* dia.Paper:
* Added paper.drawGrid(opt) - draws grid lines on the paper's DOM element.
* Added paper.setGridSize(gridSize) - changes the grid size of the paper.
* Added paper.setInteractivity() for changing interactivity.
* Added blank:mousewheel and cell:mousewheel events to paper
* Added link:connect, link:disconnect paper events for easier link source/target change detection
* Changed the link tool event signature (e.g. `link:options`) to be the same as the rest of the cell events.
* dia.Cell:
* Added isElement() and isLink() methods
* dia.Element:
* Added scale() for transforming element by providing a scale ratio and origin.
* dia.Link:
* Added scale() for transforming link by providing a scale ratio and origin.
* dia.Graph:
* Added resize(), resizeCells() for a group resizing
* Added getCellsBBox() for getting a group bounding box
* Added removeCells()
* Can now use addCells(), removeCells(), and resetCells() with the same method signature. For example: addCells(cell, cell) addCells(cell, cell, opt) addCells([cell, cell]) addCells([cell, cell], opt) are all valid usage.
* layout.DirectedGraph:
* Added layout() `align` option for rank nodes alignment.
* Vectorizer:
* Added transform() method to apply SVG matrix to SVG element
* Added empty(), before() method
* prepend() method now accepts single or multiple nodes
* createSVGTransform() now accepts optionally an SVG matrix
* Geometry:
* Added point.scale(), rect.scale() - scale point/rect with given origin.
* Added point.toJSON(), rect.toJSON() - converts point/rect into JSON object.
* Added leftMiddle(), rightMiddle(), topMiddle(), bottomMiddle() for finding middle points of rect sides.
* Added ellipse.fromRect(), rect.fromEllipse() for rect-ellipse interchangeability.
19-12-2015 (v0.9.6/v0.9.7)
* dia.Graph introduces new functions for traversing graphs: dfs(), bfs(), search(), isSuccessor(), isPredecessor(), getPredecessors(), getSuccessors(), isNeighbor(), isSource(), isSink(), getSources(), getSinks(), getSubgraph(), getFirstCell(), getLastCell() and getCells()
* new functions for cloning cells dia.Graph.cloneCells(), dia.Graph.cloneSubgraph()
* dia.Element.resize() function has been extended with 'direction' option allowing for resizing to any side
* new convenient methods for getting source/target elements added to dia.Link: getSourceElement() and getTargetElement()
* dia.Paper has a new option 'multiLinks' that when set to false, prevents from creating multiple links between the same elements
* dia.Paper has a new option function 'guard' that allows for preventing the paper from handling UI events
* dia.Paper.findViewsInArea() has been extended with 'strict' option that when set, returns only views that are contained within the area passed in the argument
* Vectorizer adds a new method 'transformPoint()' for a convenient way transform points via SVG transformation matrices
* Geometry adds a new function rect.union()
* another new utility function added: joint.util.setAttributesBySelector() for setting attributes on DOM elements referenced by a selector
* dia.Element and dia.Link has a new function getAncestors() that returs an array of ancestor cells
* dia.LinkView enables for setting a custom markup for its secondary tools (enabled via the 'doubleLinkTools' option)
* dia.Graph getNeighbors() function extended with 'inbound' and 'outbound' options
* dia.Graph has a new translate() method for translating all elements in the graph
* routers.manhattan introduces new options 'startDirections', 'endDirections' to control what direction a link can start/end; and 'excludeTypes' to ignore certain element types as obstacles
* links are now much faster when used with manhattan router
* fixed a critical bug in upcoming Google Chrome which removed the native getTransformToElement() method on SVG elements
* other bug fixes and improvements
08-09-2015 (v0.9.5)
* layout.DirectedGraph upgrades Dagre to v0.7.1
* layout.DirectedGraph introduces new option 'resizeClusters' to reposition and resize cluster elements (parents of other elements) so that they embody their children
* cells get removeProp() method for removing - possibly nested - properties
* cells get new addTo() method as a syntactic sugar for adding them to joint.dia.Graph
* prop() methods on cells now accepts 'undefined' as a value (instead of behaving like a getter)
* remove() method now correctly propagates the options object to all listeners
* routers.Manhattan router was improved to cope with hierarchical diagrams with embedded elements and does not consider ancestors of elements as obstacles
* routers.Manhattan router got smarter, finding better paths between source and target of a link
* new router for links 'oneSide' that always routes links to/from a certain side specified
* new 'jumpover' connector type
* Vectorizer adds sample() method for interpolating any SVG path with discrete equidistant points
* Vectorizer adds convertToPath(), convertToPathData() and findIntersection() functions
* Vectorizer adds findAnnotationsAtIndex(), findAnnotationsBetweenIndexes() and shiftAnnotations() helper functions manipulating text annotations (see Vectorizer:text())
* Vectorizer now sets 'v-line' class to all text lines rendered with text() and 'v-empty-line' for lines that are empty
* Vectorizer find() now returns an array of vectorizer elements, not the DOM NodeList
* Vectorizer V() function now throws an error if invalid markup is given to it making wrong shape definitons visible to the programmer
* Vectorizer bbox() now does not round values making calculations more precise
* Geometry adds rect:equals(), rect:snapToGrid() and rect:intersect() functions
* Geometry adds clone() method to all objects
* new events in joint.dia.Paper link:pointerdown, link:pointerdown, link:pointermove, link:pointerup, element:pointerdown, element:pointermove, element:pointerup
* new events in joint.dia.Paper cell:contextmenu and blank:contextmenu
* new maxWidth and maxHeight options in joint.dia.Paper fitToContent() method
* joint.dia.Paper adds labelMove option to the 'interactive' object for enabling moving labels via UI
* joint.dia.Paper findViewByModel() significantly improved performance
* fixes in joint.dia.Paper async rendering
* new 'restrictTranslate' option in joint.dia.Paper for restricting movement of elements
* joint.dia.Paper introduces new 'cellViewNamespace' option for declaring custom namespace for views (defaults to 'joint.shapes')
* joint.dia.Paper 'elementView' and 'linkView' options can be now functions
* joint.dia.Paper introduces new 'defaultRouter' and 'defaultConnector' options
* joint.dia.Paper introduces new 'linkPinning' option to disable creating links without source/target
* joint.dia.Paper now ignores mouse events that are not relevant (events that do not target the internal SVG document or a cell)
* joint.dia.Paper remove() make a proper cleanup of all views
* fixed using multiple joint.dia.Paper objects on the same page so that they don't share any options
* fixed normalization of touch events that now expose stopPropagation() and preventDefault() as all other events do
* new method findModelsUnderElement() in joint.dia.Graph for finding elements below another element
* joint.dia.Graph fixes the fetch() method
* joint.dia.Graph introduces new 'cellNamespace' option for declaring custom namespace for models (defaults to 'joint.shapes')
* joint.dia.Graph adds new method getCells()
* joint.dia.Graph getNeighbors() method improved and extended with 'deep' option to better support hierarchical diagrams containing embedded elements
* joint.dia.Link adds offset property on labels and implements dragging labels off the links
* joint.dia.Element adds fitEmbeds() method for resizing the element so that it fits all the embedded elements inside it
* joint.dia.ElementView getBBox() now returns the rect object of Geometry library that directly exposes various math functions for rectangles
* new joint.util.getElementBBox() function for getting a bounding box of both HTML and SVG elements
* new joint.util.normalizSides() function
* new joint.util.sortElements() function for sorting DOM elements
* add an optional context parameter to joint.util.nextFrame()
* new filters joint.filter.outline and joint.filter.highlight
* special JointJS attributes ref-x, ref-y, ref-width and ref-height can be specified in percentages
* joint.dia.Link routers and connector can be now specified as functions
* source code passed through JSCS checker, fixed coding style and indentation
* Lodash upgraded to the latest version v3.10.1
* Backbone upgraded to v1.2.1
* make JointJS compatible with Browserify, Webpack and RequireJS
* other fixes and improvements
03-02-2015 (v0.9.3)
* add cell:highlight and cell:unhilight events to dia.Paper for custom highlithing
* add isEmbeddedIn() method to dia.Element and dia.Link
* introduce "deep" option in toFront() and toBack() methods on cells
* introduce validateEmbedding() optional function on dia.Paper
* add getCommonAncestor() method to dia.Graph
* add reparent() method to dia.Link
* add getEmbeddedCells() with "deep", "breadthFirst" options to dia.Element
* extend getConnectedLink() method on dia.Graph with "deep" option
* add joint.util.breakText() function for auto-breaking text into lines
* add getBBox() method to dia.Graph for finding the compound bounding box of more elements
* add cell:mouseover and cell:mouseout events to dia.Paper
* add isLink() method to cells for a quick check if cell is a link or an element
* add new special attributes "ref-width" and "ref-height"
* add support for text along paths to Vectorizer and also via cell attrs
* add new options parameter to dia.Element:translate()
* add new "fitToContent" options "minWidth" and "minHeight" in dia.Paper
* expose "defs", "viewport" and "svg" properties on dia.Paper
* many other improvements and bug fixes
16-09-2014 (v0.9.2)
* add joint.version property with the JointJS version currently in use
* extend interactive option in dia.Paper for finer control over the interactivity of links
* add getBBox(elements) method to dia.Graph for returning bounding box of all the elements in the parameter
* allow embedding links to elements in order to translate their vertices if the parent moves
* introduce translate() method on links for translating all vertices (and source/target if they are points)
* add extra parameter in dia.Element rotate() method for rotating around custom origin
* introduce linkConnectionPoint() function in dia.Paper options for custom definition of link sticky points
* introduce findView() method on cells for easier lookup of paper views
* introduce addTo() method on cells for quicker adding cells to the graph
* introduce scaleContentToFit() method on dia.Paper
* implement sendToken() method on the link view for sending animated tokens along links
* add prop() method to elements and links for easier setting of custom data, potentially nested
* upgrade Backbone to v1.1.2
* allow external function for setting positions and vertices in layout.DirectedGraph plugin
* introduce markAvailable option on dia.Paper for highlighting available elements/ports while reconnecting
* introduce origin option and setOrigin() on dia.Paper
* add basic.Rhombus shape
* add new geometry functions: point.bearing, point.reflection, line.bearing, line.pointAt, rect.containsRect, rect.normalize, rect.bbox
* other bug fixes and improvements
13-05-2014 (v0.9.0)
* add g.scale.linear(domain, range, value) function to the Geometry library
* add joint.util.format.number() for formatting numbers via the Python Format specification mini-language
* improve joint.shapes.basic.TextBlock
* add ref-width and ref-height JointJS special attributes
* add joint.util.breakText() for breaking text to lines based on a desired area
* add joint.util.unsetByPath() for deleting nested properties of any object
* add joint.dia.Cell.prototype.removeAttr() for deleting presentational attributes from cells
* make Geometry and Vectorizer libraries completely standalone
* implement pluggable link routing
* add manhattan, orthogonal, rounded and metro smart link routing avoiding elements
* adjustments to DirectedGraph plugin
* add V.rectToPath method to Vectorizer
* fix special attributes for multiple selected elements in joint.dia.Element
* set a CSS class to links based on their type
* drop jquery.sortElements.js plugin
* remove elements in batch in joint.dia.Graph.prototype.clear() method
* add support for click events to the joint.dia.Paper
* other bug fixes and improvements
21-01-2014 (v0.8.0)
* add support for SVG filters
* add support for SVG gradients
* implement better handling of ports
* add validateConnection() as a function to paper options
* add defaultLink model to paper otions
* improve support for touch devices
* add joint.shapes.basic.TextBlock that handles text wrapping via foreignObject
* speed up link rendering and updates
* other bug fixes and improvements
03-12-2013 (v0.7.1)
* upgrade to jQuery v2.0.3
* take into accont minLen property in links in DirectedGraph plugin
* return width/height of the layouted graph in DirectedGraph plugin
* add centerContent() method to the joint.dia.Paper
* emit cell:pointerdblclick and blank:pointerdblclick events when a cell/blank paper is double clicked
04-11-2013 (v0.7.0)
* make JointJS models compatible with NodeJS (npm install jointjs)
* add animations (transition(), getTransitions(), stopTransition() in cells)
* implement transitions timing functions (linear, quad, cubic, inout, exponential, bounce, reverse, reflect, back, elastic)
* implement transitions interpolating functions (number, object, hexColor, unit)
* fix graph.toJSON()
* fix listening on model events in views
* other bug fixes and improvements
15-10-2013 (v0.6.4)
* integrated Dagre v0.3.0 into DirectedGraph plugin
* bug fixes and improvements in all the shape plugins
* manhattan link routing (set manhattan: true option in the joint.dia.Link constructor)
* fix joint.dia.CellView highlight/unhighlight methods
* new joint.util.setByPath(), joint.util.getByPath() and joint.util.flattenObject() helper functions
* joint.dia.Cell.prototype.attr() can now optionally take a string defining a path separated by `/` character
* new joint.dia.Paper.prototype.fitToContent() method to auto-set the paper dimensions in order to fit the content
* cubic bezier is drawn even on a link with no vertices when `smooth: true` flag is set
* add tool-options markup to the link-tool by default (by default hidden in joint.css)
* add (a naive but handy) joint.dia.CellView.prototype.getStrokeBBox() method
* add g.normalizeAngle() method to the geometry library
* snap elements to grid when they get translated (now real grid snapping - not old relative snapping)
* add getBBox() method to the element model
* other bug fixes and improvements