Change Log
All notable changes to this project will be documented in this file.
The document follows the conventions described in “Keep a CHANGELOG”.
====
UNRELEASED 3.0.0
Added
- added
'random'
option and randomize()
method to SVG.Color
-> TODO!
- added
precision()
method to round numeric element attributes -> TODO!
- added specs for
SVG.FX
-> TODO!
Changed
- made transform-methods relative as default (breaking change)
- changed SVG() to use querySelector instead of getElementById (breaking change) -> TODO!
- made
parents()
method on SVG.Element
return an instance of SVG.Set (breaking change) -> TODO!
- replaced static reference to
masker
in SVG.Mask
with the masker()
method (breaking change) -> TODO!
- replaced static reference to
clipper
in SVG.ClipPath
with the clipper()
method (breaking change) -> TODO!
- replaced static reference to
targets
in SVG.Mask
and SVG.ClipPath
with the targets()
method (breaking change) -> TODO!
- moved all regexes to
SVG.regex
(in color, element, pointarray, style, transform and viewbox) -> TODO!
Fixed
- fixed a bug in clipping and masking where empty nodes persists after removal -> TODO!
- fixed a bug in IE11 with
mouseenter
and mouseleave
-> TODO!
2.6.2 - 2017-06-05
Added
- added
width()
and height()
methods to SVG.FX
- added the intended functionality to call animate functions with multiple parameter (#671)
Changed
- updated Jasmine from 2.5.2 to 2.6.0
- removed the typeof check in the initialisation of SVG.Matrix
Fixed
- fixed
SVG.FX.once
so that it add its callback on the last situation instead of the current one
- fixed
SVG.FX.step
so that the animation doesn't stop if an afterAll callback call animate (#677)
2.6.1 - 2017-04-25
Fixed
- fixed a bug in path parser which made it stop parsing when hitting z command (#665)
2.6.0 - 2017-04-21
Added
- added
options
object to SVG.on()
and el.on()
(#661)
Changed
- back to sloppy mode because of problems with plugins (#660)
2.5.3 - 2017-04-15
Added
- added gitter badge in readme
Fixed
- fixed svg.js.d.ts (#644 #648)
- fixed bug in
el.flip()
which causes an error when calling flip without any argument
Removed
2.5.2 - 2017-04-11
Changed
- SVG.js is now running in strict mode
Fixed
clear()
does not remove the parser in svg documents anymore
len
not declared in FX module, making it a global variable (9737e8a)
bbox
not declared in SVG.Box.transform in the Box module (131df0f)
namespace
not declared in the Event module (e89c97e)
2.5.1 - 2017-03-27
Changed
- make svgjs ready to be used on the server
Fixed
- fixed
SVG.PathArray.parse
that did not correctly parsed flat arrays
- prevented unnecessary parsing of point or path strings
2.5.0 - 2017-03-10
Added
- added a plot and array method to
SVG.TextPath
(#582)
- added
clone()
method to SVG.Array/PointArray/PathArray
(#590)
- added
font()
method to SVG.Tspan
- added
SVG.Box()
- added
transform()
method to boxes
- added
event()
to SVG.Element
to retrieve the event that was fired last on the element (#550)
Changed
- changed CHANGELOG to follow the conventions described in “Keep a CHANGELOG” (#578)
- make the method plot a getter when no parameter is passed for
SVG.Polyline
,SVG.Polygon
, SVG.Line
, SVG.Path
(related #547)
- allow
SVG.PointArray
to be passed flat array
- change the regexp
SVG.PointArray
use to parse string to allow more flexibility in the way spaces and commas can be used
- allow
plot
to be called with 4 parameters when animating an SVG.Line
- relative value for
SVG.Number
are now calculated in its morph
method (related #547)
- clean up the implementation of the
initAnimation
method of the FX module (#547, #552, #584)
- deprecated
.tbox()
. .tbox()
now map to .rbox()
. If you are using .tbox()
, you can substitute it with .rbox()
(#594, #602)
- all boxes now accept 4 values or an object on creation
el.rbox()
now always returns the right boxes in screen coordinates and has an additional paramater to transform the box into other coordinate systems
font()
method can now be used like attr()
method (#620)
- events are now cancelable by default (#550)
Fixed
- fixed a bug in the plain morphing part of
SVG.MorphObj
that is in the FX module
- fixed bug which produces an error when removing an event from a node which was formerly removed with a global
off()
(#518)
- fixed a bug in
size()
for poly elements when their height/width is zero (#505)
- viewbox now also accepts strings and arrays as constructor arguments
SVG.Array
now accepts a comma seperated string and returns array of numbers instead of strings
SVG.Matrix
now accepts an array as input
SVG.Element.matrix()
now accepts also 6 values
dx()/dy()
now accepts percentage values, too but only if the value on the element is already percentage
flip()
now flips on both axis when no parameter is passed
- fixed bug with
documentElement.contains()
in IE
- fixed offset produced by svg parser (#553)
- fixed a bug with clone which didnt copy over dom data (#621)
2.4.0 - 2017-01-14
Added
- added support for basic path animations (#561)
2.3.7 - 2017-01-14
Added
Changed
- moved project to svgdotjs
- made matrixify work with transformation chain separated by commas (#543)
- updated dev dependencies; request and gulp-chmod -
npm run build
now requires nodejs 4.x+
Fixed
- fixed
SVG.Matrix.skew()
(#545)
- fixed broken animations, if using polyfills for es6/7 proposals (#504)
- fixed and improved
SVG.FX.dequeue()
(#546)
- fixed an error in
SVG.FX.step
, if custom properties is added to Array.prototype
(#549)
2.3.6 - 2016-10-21
Changed
- make SVG.FX.loop modify the last situation instead of the current one (#532)
Fixed
- fixed leading and trailing space in SVG.PointArray would return NaN for some points (695f26a) (#529)
- fixed test of
SVG.FX.afterAll
(#534)
- fixed
SVG.FX.speed()
(#536)
2.3.5 - 2016-10-13
Added
- added automated unit tests via Travis (#527)
- added
npm run build
to build a new version of SVG.js without requiring gulp to be globally installed
Changed
- calling
fill()
, stroke()
without an argument is now a nop
- Polygon now accepts comma less points to achieve parity with Adobe Illustrator (#529)
- updated dependencies
2.3.4 - 2016-08-04
Changed
- reworked parent module for speed improvemenents
- reworked
filterSVGElements
utility to use a for loop instead of the native filter function
2.3.3 - 2016-08-02
Added
- add error callback on image loading (#508)
Fixed
- fixed bug when getting bbox of text elements which are not in the dom (#514)
- fixed bug when getting bbox of element which is hidden with css (#516)
2.3.2 - 2016-06-21
Added
- added specs for
SVG.ViewBox
- added
parent
parameter for clone()
- added spec for mentioned issue
Fixed
- fixed string parsing in viewbox (#483)
- fixed bbox when element is not in the dom (#480)
- fixed line constructor which doesn't work with Array as input (#487)
- fixed problem in IE with
document.contains
(#490) related to (#480)
- fixed
undo
when undoing transformations (#494)
2.3.1 - 2016-05-05
Added
- added typings for svg.js (#470)
Fixed
- fixed
SVG.morph()
(#473)
- fixed parser error (#471)
- fixed bug in
SVG.Color
with new fx
- fixed
radius()
for circles when animating and other related code (#477)
- fixed bug where
stop(true)
throws an error when element is not animated (#475)
- fixed bug in
add()
when altering svgs with whitespaces
- fixed bug in
SVG.Doc().create
where size was set to 100% even if size was already specified
- fixed bug in
parse()
from SVG.PathArray
which does not correctly handled S
and T
(#485)
2.3.0 - 2016-03-30
Added
- added
SVG.Point
which serves as Wrapper to the native SVGPoint
(#437)
- added
element.point(x,y)
which transforms a point from screen coordinates to the elements space (#403)
- added
element.is()
which helps to check for the object instance faster (instanceof check)
- added more fx specs
Changed
- textpath now is a parent element, the lines method of text will return the tspans inside the textpath (#450)
- fx module rewritten to support animation chaining and several other stuff (see docs)
Fixed
- fixed
svgjs:data
attribute which was not set properly in all browsers (#428)
- fixed
isNumber
and numberAndUnit
regex (#405)
- fixed error where a parent node is not found when loading an image but the canvas was cleared (#447)
- fixed absolute transformation animations (not perfect but better)
- fixed event listeners which didnt work correctly when identic funtions used
2.2.5 - 2015-12-29
Added
- added check for existence of node (#431)
Changed
group.move()
now allows string numbers as input (#433)
matrixify()
will not apply the calculated matrix to the node anymore
2.2.4 - 2015-12-12
Fixed
- fixed
transform()
which returns the matrix values (a-f) now, too (#423)
- double newlines (\n\n) are correctly handled as blank line from
text()
- fixed use of scrollX vs pageXOffset in
rbox()
(#425)
- fixed target array in mask and clip which was removed instead of reinitialized (#429)
2.2.3 - 2015-11-30
Fixed
- fixed null check in image (see 2.2.2)
- fixed bug related to the new path parser (see 2.2.2)
- fixed amd loader (#412)
2.2.2 - 2015-11-28
Added
- added null check in image onload callback (#415)
Changed
- documentation rework (#407) [thanks @snowyplover]
Fixed
- fixed leading point bug in path parsing (#416)
2.2.1 - 2015-11-18
Added
- added workaround for
SvgPathSeg
which is removed in Chrome 48 (#409)
- added
gbox()
to group to get bbox with translation included (#405)
Fixed
- fixed dom data which was not cleaned up properly (#398)
2.2.0 - 2015-11-06
Added
- added
ungroup()/flatten()
(#238), toParent()
and toDoc()
- added UMD-Wrapper with possibility to pass custom window object (#352)
- added
morph()
method for paths via plugin svg.pathmorphing.js
- added support for css selectors within the
parent()
method
- added
parents()
method to get an array of all parenting elements
Changed
- svgjs now saves crucial data in the dom before export and restores them when element is adopted
Fixed
- fixed pattern and gradient animation (#385)
- fixed mask animation in Firefox (#287)
- fixed return value of
text()
after import/clone (#393)
2.1.1 - 2015-10-03
Added
- added custom context binding to event callback (default is the element the event is bound to)
2.1.0 - 2015-09-20
Added
- added transform to pattern and gradients (#383)
Fixed
- fixed clone of textnodes (#369)
- fixed transformlists in IE (#372)
- fixed typo that leads to broken gradients (#370)
- fixed animate radius for circles (#367)
2.0.2 - 2015-06-22
Fixed
- Fixed zoom consideration in circle and ellipse
2.0.1 - 2015-06-21
Added
- added possibility to remove all events from a certain namespace
Fixed
- fixed bug with
doc()
which always should return root svg
- fixed bug in
SVG.FX
when animating with plot()
Removed
- removed target reference from use which caused bugs in
dmove()
and use()
with external file
- removed scale consideration in
move()
duo to incompatibilities with other move-functions e.g. in SVG.PointArray
2.0.0 - 2015-06-11
Added
- implemented an SVG adoption system to be able to manipulate existing SVG's not created with svg.js
- added polyfill for IE9 and IE10 custom events [thanks @Fuzzyma]
- added DOM query selector with the
select()
method globally or on parent elements
- added the intentionally neglected
SVG.Circle
element
- added
rx()
and ry()
to SVG.Rect
, SVG.Circle
, SVG.Ellispe
and SVG.FX
- added support to clone manually built text elements
- added
svg.wiml.js
plugin to plugins list
- added
ctm()
method to for matrix-centric transformations
- added
morph()
method to SVG.Matrix
- added support for new matrix system to
SVG.FX
- added
native()
method to elements and matrix to get to the native api
- added
untransform()
method to remove all transformations
- added raw svg import functionality with the
svg()
method
- added coding style description to README
- added reverse functionality for animations
- documented the
situation
object in SVG.FX
- added distinction between relative and absolute matrix transformations
- implemented the
element()
method using the SVG.Bare
class to create elements that are not described by SVG.js
- added
w
and h
properties as shorthand for width
and height
to SVG.BBox
- added
SVG.TBox
to get a bounding box that is affected by transformation values
- added event-based or complete detaching of event listeners in
off()
method
Changed
- changed
parent
reference on elements to parent()
method
- using
CustomEvent
instead of Event
to be able to fire events with a detail
object [thanks @Fuzzyma]
- renamed
SVG.TSpan
class to SVG.Tspan
to play nice with the adoption system
- completely reworked
clone()
method to use the adoption system
- completely reworked transformations to be chainable and more true to their nature
- changed
lines
reference to lines()
on SVG.Text
- changed
track
reference to track()
on SVG.Text
- changed
textPath
reference to textPath()
on SVG.Text
- changed
array
reference to array()
method on SVG.Polyline
, SVG.Polygon
and SVG.Path
- reworked sup-pixel offset implementation to be more compact
- switched from Ruby's
rake
to Node's gulp
for building [thanks to Alex Ewerlöf]
- changed
to()
method to at()
method in SVG.FX
- renamed
SVG.SetFX
to SVG.FX.Set
- reworked
SVG.Number
to return new instances with calculations rather than itself
- reworked animatable matrix rotations
- removed
SVG.Symbol
but kept the symbol()
method using the new element()
method
Fixed
- fixed bug in
radius()
method when y
value equals 0
- fixed a bug where events are not detached properly
Added
- added
SVG.Marker
- added
SVG.Symbol
- added
first()
and last()
methods to SVG.Set
- added
length()
method to SVG.Text
and SVG.TSpan
to calculate total text length
- added
reference()
method to get referenced elements from a given attribute value
Changed
SVG.get()
will now also fetch elements with a xlink:href="#elementId"
or url(#elementId)
value given
Fixed
- fixed infinite loop in viewbox when element has a percentage width / height [thanks @shabegger]
Fixed
- fixed bug in
SVG.off
- fixed offset by window scroll position in
rbox()
[thanks @bryhoyt]
Added
- added
classes()
, hasClass()
, addClass()
, removeClass()
and toggleClass()
[thanks @pklingem]
Changed
- binding events listeners to svg.js instance
- calling
after()
when calling stop(true)
(fulfill flag) [thanks @vird]
- text element fires
rebuild
event whenever the rebuild()
method is called
Fixed
- fixed a bug where
Element#style()
would not save empty values in IE11 [thanks @Shtong]
- fixed
SVG is not defined error
[thanks @anvaka]
- fixed a bug in
move()
on text elements with a string based value
- fix for
text()
method on text element when acting as getter [thanks @Lochemage]
- fix in
style()
method with a css string [thanks @TobiasHeckel]
Added
- added
leading()
method to SVG.FX
- added
reverse()
method to SVG.Array
(and thereby also to SVG.PointArray
and SVG.PathArray
)
- added
fulfill
option to stop()
method in SVG.FX
to finalise animations
- added more output values to
bbox()
and rbox()
methods
Changed
- fine-tuned text element positioning
- calling
at()
method directly on morphable svg.js instances in SVG.FX
module
- moved most
_private
methods to local named functions
- moved helpers to a separate file
Fixed
- fixed a bug in text
dy()
method
Removed
- removed internal representation for
style
Added
- added
plain()
method to SVG.Text
element to add plain text content, without tspans
- added
plain()
method to parent elements to create a text element without tspans
- added
build()
to enable/disable build mode
Changed
- updated
SVG.TSpan
to accept nested tspan elements, not unlike the text()
method in SVG.Text
- removed the
relative()
method in favour of dx()
, dy()
and dmove()
- switched form objects to arrays in
SVG.PathArray
for compatibility with other libraries and better performance on parsing and rendering (up-to 48% faster than 1.0.0-rc.4)
- refined docs on element-specific methods and
SVG.PathArray
structure
- reworked
leading()
implementation to be more font-size "aware"
- refactored the
attr
method on SVG.Element
- applied Helvetica as default font
- building
SVG.FX
class with SVG.invent()
function
Removed
- removed verbose style application to tspans
Added
- automatic pattern creation by passing an image url or instance as
fill
attribute on elements
- added
loaded()
method to image tag
- added
pointAt()
method to SVG.Path
, wrapping the native getPointAtLength()
Changed
- switched to
MAJOR
.MINOR
.PATCH
versioning format to play nice with package managers
- made svg.pattern.js part of the core library
- moved
length()
method to sugar module
Fixed
- fix in
animate('=').to()
- fix for arcs in patharray
toString()
method [thanks @dotnetCarpenter]
Added
- added the
SVG.invent
function to ease invention of new elements
- added second values for
animate('2s')
- added
length()
mehtod to path, wrapping the native getTotalLength()
Changed
- using
SVG.invent
to generate core shapes as well for leaner code
Fixed
- fix for html-less documents
- fix for arcs in patharray
toString()
method
Added
- added
index()
method to SVG.Parent
and SVG.Set
- added
morph()
and at()
methods to SVG.Number
for unit morphing
Changed
- modified
cx()
and cy()
methods on elements with native x
, y
, width
and height
attributes for better performance
Added
- added
SVG.PathArray
for real path transformations
- added
bbox()
method to SVG.Set
- added
relative()
method for moves relative to the current position
- added
morph()
and at()
methods to SVG.Color
for color morphing
Changed
- enabled proportional resizing on
size()
method with null
for either width
or height
values
- moved data module to separate file
data()
method now accepts object for for multiple key / value assignments
Removed
- removed
unbiased
system for paths
v0.38 - 2014-01-28
Added
- added
loop()
method to SVG.FX
Changed
- switched from
setInterval
to requestAnimFrame
for animations
v0.37 - 2014-01-26
Added
Changed
- moved
SVG.PointArray
to a separate file
v0.36 - 2014-01-25
Added
- added
linkTo()
, addTo()
and putIn()
methods on SVG.Element
Changed
- provided more detailed documentation on parent elements
Fixed
v0.35 - 2014-01-23
Added
- added
SVG.A
element with the link()
v0.34 - 2014-01-23
Added
- added
pause()
and play()
to SVG.FX
Changed
- storing animation values in
situation
object
v0.33 - 2014-01-22
Added
- added
has()
method to SVG.Set
- added
width()
and height()
as setter and getter methods on all shapes
- added
replace()
method to elements
- added
radius()
method to SVG.Rect
and SVG.Ellipse
- added reference to parent node in defs
Changed
- moved sub-pixel offset fix to be an optional method (e.g.
SVG('drawing').fixSubPixelOffset()
)
- merged plotable.js and path.js
Added