All notable changes to this project will be documented in this file.
The document follows the conventions described in “Keep a CHANGELOG”.
====
- added
'random'
option andrandomize()
method toSVG.Color
-> TODO! - added
precision()
method to round numeric element attributes -> TODO! - added specs for
SVG.FX
-> TODO!
- made transform-methods relative as default (breaking change)
- changed SVG() to use querySelector instead of getElementById (breaking change) -> TODO!
- made
parents()
method onSVG.Element
return an instance of SVG.Set (breaking change) -> TODO! - replaced static reference to
masker
inSVG.Mask
with themasker()
method (breaking change) -> TODO! - replaced static reference to
clipper
inSVG.ClipPath
with theclipper()
method (breaking change) -> TODO! - replaced static reference to
targets
inSVG.Mask
andSVG.ClipPath
with thetargets()
method (breaking change) -> TODO! - moved all regexes to
SVG.regex
(in color, element, pointarray, style, transform and viewbox) -> TODO!
- fixed a bug in clipping and masking where empty nodes persists after removal -> TODO!
- fixed a bug in IE11 with
mouseenter
andmouseleave
-> TODO!
- added a plot and array method to
SVG.TextPath
(#582) - added
clone()
method toSVG.Array/PointArray/PathArray
(#590) - added
font()
method toSVG.Tspan
- 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 anSVG.Line
- relative value for
SVG.Number
are now calculated in itsmorph
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) - 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 stringsSVG.Matrix
now accepts an array as inputSVG.Element.matrix()
now accepts also 6 valuesdx()/dy()
now accepts percentage values, too but only if the value on the element is already percentageflip()
now flips on both axis when no parameter is passed
- 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)
====
2.4.0 - 2017-01-14
- added support for basic path animations (#561)
2.3.7 - 2017-01-14
- added code coverage https://coveralls.io/github/svgdotjs/svg.js (3e614d4)
- added
npm run test:quick
which aim at being fast rather than correct - great for git hooks (981ce24)
- 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
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 toArray.prototype
(#549)
2.3.6 - 2016-10-21
- make SVG.FX.loop modify the last situation instead of the current one (#532)
- 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 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
- 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
- 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
- add error callback on image loading (#508)
- 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 specs for
SVG.ViewBox
- added
parent
parameter forclone()
- added spec for mentioned issue
- 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 typings for svg.js (#470)
- 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()
fromSVG.PathArray
which does not correctly handledS
andT
(#485)
2.3.0 - 2016-03-30
- added
SVG.Point
which serves as Wrapper to the nativeSVGPoint
(#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
- 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
svgjs:data
attribute which was not set properly in all browsers (#428) - fixed
isNumber
andnumberAndUnit
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 check for existence of node (#431)
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
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 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 null check in image onload callback (#415)
- documentation rework (#407) [thanks @snowyplover]
- fixed leading point bug in path parsing (#416)
2.2.1 - 2015-11-18
- added workaround for
SvgPathSeg
which is removed in Chrome 48 (#409) - added
gbox()
to group to get bbox with translation included (#405)
- fixed dom data which was not cleaned up properly (#398)
2.2.0 - 2015-11-06
- added
ungroup()/flatten()
(#238),toParent()
andtoDoc()
- 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
- svgjs now saves crucial data in the dom before export and restores them when element is adopted
- 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 custom context binding to event callback (default is the element the event is bound to)
2.1.0 - 2015-09-20
- added transform to pattern and gradients (#383)
- 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 zoom consideration in circle and ellipse
2.0.1 - 2015-06-21
- added possibility to remove all events from a certain namespace
- fixed bug with
doc()
which always should return root svg - fixed bug in
SVG.FX
when animating withplot()
- removed target reference from use which caused bugs in
dmove()
anduse()
with external file - removed scale consideration in
move()
duo to incompatibilities with other move-functions e.g. inSVG.PointArray
2.0.0 - 2015-06-11
- 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()
andry()
toSVG.Rect
,SVG.Circle
,SVG.Ellispe
andSVG.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 toSVG.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 inSVG.FX
- added distinction between relative and absolute matrix transformations
- implemented the
element()
method using theSVG.Bare
class to create elements that are not described by SVG.js - added
w
andh
properties as shorthand forwidth
andheight
toSVG.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
parent
reference on elements toparent()
method - using
CustomEvent
instead ofEvent
to be able to fire events with adetail
object [thanks @Fuzzyma] - renamed
SVG.TSpan
class toSVG.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 tolines()
onSVG.Text
- changed
track
reference totrack()
onSVG.Text
- changed
textPath
reference totextPath()
onSVG.Text
- changed
array
reference toarray()
method onSVG.Polyline
,SVG.Polygon
andSVG.Path
- reworked sup-pixel offset implementation to be more compact
- switched from Ruby's
rake
to Node'sgulp
for building [thanks to Alex Ewerlöf] - changed
to()
method toat()
method inSVG.FX
- renamed
SVG.SetFX
toSVG.FX.Set
- reworked
SVG.Number
to return new instances with calculations rather than itself - reworked animatable matrix rotations
- removed
SVG.Symbol
but kept thesymbol()
method using the newelement()
method
- fixed bug in
radius()
method wheny
value equals0
- fixed a bug where events are not detached properly
1.0.0-rc.9 - 2014-06-17
- added
SVG.Marker
- added
SVG.Symbol
- added
first()
andlast()
methods toSVG.Set
- added
length()
method toSVG.Text
andSVG.TSpan
to calculate total text length - added
reference()
method to get referenced elements from a given attribute value
SVG.get()
will now also fetch elements with axlink:href="#elementId"
orurl(#elementId)
value given
- fixed infinite loop in viewbox when element has a percentage width / height [thanks @shabegger]
1.0.0-rc.8 - 2014-06-12
- fixed bug in
SVG.off
- fixed offset by window scroll position in
rbox()
[thanks @bryhoyt]
1.0.0-rc.7 - 2014-06-11
- added
classes()
,hasClass()
,addClass()
,removeClass()
andtoggleClass()
[thanks @pklingem]
- binding events listeners to svg.js instance
- calling
after()
when callingstop(true)
(fulfill flag) [thanks @vird] - text element fires
rebuild
event whenever therebuild()
method is called
- 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]
1.0.0-rc.6 - 2014-03-03
- added
leading()
method toSVG.FX
- added
reverse()
method toSVG.Array
(and thereby also toSVG.PointArray
andSVG.PathArray
) - added
fulfill
option tostop()
method inSVG.FX
to finalise animations - added more output values to
bbox()
andrbox()
methods
- fine-tuned text element positioning
- calling
at()
method directly on morphable svg.js instances inSVG.FX
module - moved most
_private
methods to local named functions - moved helpers to a separate file
- fixed a bug in text
dy()
method
- removed internal representation for
style
1.0.0-rc.5 - 2014-02-14
- added
plain()
method toSVG.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
- updated
SVG.TSpan
to accept nested tspan elements, not unlike thetext()
method inSVG.Text
- removed the
relative()
method in favour ofdx()
,dy()
anddmove()
- 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 onSVG.Element
- applied Helvetica as default font
- building
SVG.FX
class withSVG.invent()
function
- removed verbose style application to tspans
1.0.0-rc.4 - 2014-02-04
- automatic pattern creation by passing an image url or instance as
fill
attribute on elements - added
loaded()
method to image tag - added
pointAt()
method toSVG.Path
, wrapping the nativegetPointAtLength()
- 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
- fix in
animate('=').to()
- fix for arcs in patharray
toString()
method [thanks @dotnetCarpenter]
v1.0rc3 - 2014-02-03
- added the
SVG.invent
function to ease invention of new elements - added second values for
animate('2s')
- added
length()
mehtod to path, wrapping the nativegetTotalLength()
- using
SVG.invent
to generate core shapes as well for leaner code
- fix for html-less documents
- fix for arcs in patharray
toString()
method
v1.0rc2 - 2014-02-01
- added
index()
method toSVG.Parent
andSVG.Set
- added
morph()
andat()
methods toSVG.Number
for unit morphing
- modified
cx()
andcy()
methods on elements with nativex
,y
,width
andheight
attributes for better performance
v1.0rc1 - 2014-01-31
- added
SVG.PathArray
for real path transformations - added
bbox()
method toSVG.Set
- added
relative()
method for moves relative to the current position - added
morph()
andat()
methods toSVG.Color
for color morphing
- enabled proportional resizing on
size()
method withnull
for eitherwidth
orheight
values - moved data module to separate file
data()
method now accepts object for for multiple key / value assignments
- removed
unbiased
system for paths
v0.38 - 2014-01-28
- added
loop()
method toSVG.FX
- switched from
setInterval
torequestAnimFrame
for animations
v0.37 - 2014-01-26
- added
get()
toSVG.Set
- moved
SVG.PointArray
to a separate file
v0.36 - 2014-01-25
- added
linkTo()
,addTo()
andputIn()
methods onSVG.Element
- provided more detailed documentation on parent elements
v0.35 - 2014-01-23
- added
SVG.A
element with thelink()
v0.34 - 2014-01-23
- added
pause()
andplay()
toSVG.FX
- storing animation values in
situation
object
v0.33 - 2014-01-22
- added
has()
method toSVG.Set
- added
width()
andheight()
as setter and getter methods on all shapes - added
replace()
method to elements - added
radius()
method toSVG.Rect
andSVG.Ellipse
- added reference to parent node in defs
- moved sub-pixel offset fix to be an optional method (e.g.
SVG('drawing').fixSubPixelOffset()
) - merged plotable.js and path.js
- added library to cdnjs