Releases: clientIO/joint
Releases · clientIO/joint
Release 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:optionsevent signature with the rest of events (breaking change) - dia.LinkView - fix perpendicular links outside the paper 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
Release v0.9.10
Release v0.9.9
JointJS
- Added
envnamespace withenv.test(name)andenv.addTest(name, fn)methods - Added
highlightersnamespace 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()
alignoption for rank nodes alignment.
- Added layout()
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.
Release v0.9.6
CHANGELOG
- dia.Graph introduces new functions for traversing graphs:
dfs(),bfs(),search(),isSuccessor(),isPredecessor(),getPredecessors(),getSuccessors(),isNeighbor(),isSource(),isSink(),getSources(),getSinks(),getSubgraph(),getFirstCell(),getLastCell()andgetCells() - new functions for cloning cells
dia.Graph.cloneCells(),dia.Graph.cloneSubgraph() - dia.Element
resize()function has been extended withdirectionoption allowing for resizing to any side - new convenient methods for getting source/target elements added to dia.Link:
getSourceElement()andgetTargetElement() - dia.Paper has a new option
multiLinksthat when set tofalse, prevents from creating multiple links between the same elements - dia.Paper has a new option function
guardthat allows for preventing the paper from handling UI events - dia.Paper
findViewsInArea()has been extended withstrictoption 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.Link has a new method
hasLoop()for checking whether the link is a loop-link - dia.LinkView enables for setting a custom markup for its secondary tools (enabled via the
doubleLinkToolsoption) - dia.Graph
getNeighbors()function extended withinboundandoutboundoptions - dia.Graph has a new
translate()method for translating all elements in the graph - routers.manhattan introduces new options
startDirections,endDirectionsto control what direction a link can start/end andexcludeTypesto ignore certain element types as obstacles - routers and connectors can now be defined directly on links as functions
- 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
Release v0.9.5
CHANGELOG
- layout.DirectedGraph upgrades Dagre to v0.7.1
- layout.DirectedGraph introduces new option
resizeClustersto 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
oneSidethat always routes links to/from a certain side specified - new
jumpoverconnector type - Vectorizer adds
sample()method for interpolating any SVG path with discrete equidistant points - Vectorizer adds
convertToPath(),convertToPathData()andfindIntersection()functions - Vectorizer adds
findAnnotationsAtIndex(),findAnnotationsBetweenIndexes()andshiftAnnotations()helper functions manipulating text annotations (seeVectorizer:text()) - Vectorizer now sets
v-lineclass to all text lines rendered withtext()andv-empty-linefor 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()andrect: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:contextmenuandblank:contextmenu - new
maxWidthandmaxHeightoptions in joint.dia.PaperfitToContent()method - joint.dia.Paper adds
labelMoveoption to theinteractiveobject for enabling moving labels via UI - joint.dia.Paper
findViewByModel()significantly improved performance - fixes in joint.dia.Paper async rendering
- new
restrictTranslateoption in joint.dia.Paper for restricting movement of elements - joint.dia.Paper introduces new
cellViewNamespaceoption for declaring custom namespace for views (defaults to joint.shapes) - joint.dia.Paper
elementViewandlinkViewoptions can be now functions - joint.dia.Paper introduces new
defaultRouteranddefaultConnectoroptions - joint.dia.Paper introduces new
linkPinningoption 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()andpreventDefault()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
cellNamespaceoption for declaring custom namespace for models (defaults tojoint.shapes) - joint.dia.Graph adds new method
getCells() - joint.dia.Graph
getNeighbors()method improved and extended withdeepoption 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.util.filter.outlineandjoint.util.filter.highlight - special JointJS attributes
ref-x,ref-y,ref-widthandref-heightcan 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