forked from clientIO/joint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
243 lines (230 loc) · 16.9 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
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