You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Change Log

All notable changes to this project will be documented in this file.

The document follows the conventions described in “Keep a CHANGELOG”.

====

3.2.0

Fixed

  • improve performance of point() by not creating intermediate objects (#1251)
  • fixed references by using single quotes instead of double quotes which lead to errors (#1277)
  • fixed a few spelling errors in comments (#1277)
  • fix several typings (#1253, #1280, #1300)

Added

  • added second parameter assignNewId to clone() to allow cloning with the same id (#1161)

3.1.2

Fixed

  • fixed several type issues (#1249, #1233, #1231, #1223, #1215)
  • fixed css() returning camelCased properties even though they were specified in kebap-case
  • fixed ObjectBag loosing information when calling valueOf() (Numbers lost its unit)
  • fixed parents() (#1235)
  • fixed nodeOrNew() to work in object tags as well (#1219)

3.1.1

Fixed

  • fixed typings for tcs 4.2.4 (#1204, #1206, #1203)

3.1.0

Fixed

  • fixed zoom() method of runner which was passed a wrong parameter
  • fixed positioning methods of TSpan to position them by its bounding box
  • fixed flip() method which flips correctly by center by default now and accepts correct arguments
  • fixed a case in rbox() where not always all values of the box were updated
  • fixed getOrigin() function used by transform() so that all origin popssibilities specified in the docs are working (#1085)
  • fixed positioning of text by its baseline when using amove()
  • fixed tons of typings in the svg.d.ts file and relaxed type requirements for put() and parent()
  • fixed adopter when adopting an svg/html string. It had still its wrapper as parentNode attached
  • fixed put() which correctly creates an svgjs object from the passed element now before returning
  • fixed parent() which correctly returns a Dom instance when parent is the document or document-fragment
  • fixed add() which correctly removes namespaces of non-root svg elements now when added to another svg element (#1086)
  • fixed isRoot() which correctly returns false, if the element is in a document-fragment
  • fixed replace() which works without a parent now, too
  • fixed defs() which correctly returns null when called on a detached node that is not a root node
  • fixed reference() which correctly returns null instead of throwing when specifying an attribute which holds a number
  • fixed flatten() which correctly flattens now but doesn’t accept parameters anymore (makes no sense)
  • fixed ungroup() which now inserts the elements at the correct position in the correct order and has position as second argument now
  • fixed position for transform() to also allow a position of 0
  • fixed bbox() of PathArray and PointArray which returns an instance of Box now
  • fixed bug in creation of PointArray which had still references to source arrays in it
  • fixed PID controller and makeSetterGetter function
  • fixed Queue.push which didnt let you push queue items
  • fixed Timeline.reverse() which did exactly the opposite of what you would expect when passing true/false
  • fixed cancelAnimationFrame-mock for tests
  • fixed animate when=after to be really “now” when no runner is on the timeline
  • fixed animate attr which is also retargetable now
  • fixed internals of ObjectBag which can hold other Morphable values now
  • fixed animate transform which didnt change its origin on retarget for declarative animations
  • fixed path parsing (#1145)
  • fixed clone() to return the correct instance (#1154)

Added

  • added second Parameter to SVG(el, isHTML) which allows to explicitely create elements in the HTML namespace (#1058)
  • added unlink() and linker() to hyperlinked elements to remove or access the underling <a> element
  • added wrap() method to Dom which lets you wrap an element by another one
  • added orient() method to Marker
  • added options parameter to dispatch() and fire() to allow for more special needs
  • added newLine() constructor to Text to create a tspan marked as new line (#1088)
  • added Fragment as a wrapper for document-fragment
  • added position argument for toParent()
  • added position argument for toRoot()
  • added attr syntax for data() method
  • added index and array parameter when passing a function to List.each() so that it mostly behaves like map
  • added possibility to pass a transform object to PointArray.transform() similar to Point
  • added with-last as when to animate and schedule to let an animation start with the start of the last one in the timeline
  • added lots of tests in es6 format
  • added geometry and positioning methods to A (#1110)

Deleted

  • deleted undocumented Matrix.compose() method which did the same as new Matrix() or Matrix.transform()
  • deleted undocumented Path.morph() and Path.at() which was replaced with Morphables in v3

3.0.16 - 2019-11-12

Fixed

  • fixed build of polyfills which was broken because of core-js update

3.0.15 - 2019-11-08

Fixed

  • allow object input of when and delay to animate()

Added

  • added missing dmove function to runner

3.0.14 - 2019-10-31

Fixed

  • hide parser from screen readers (#1023)

Added

  • added transpiled esm bundle for webpack und co and faster import

3.0.13 - 2019-06-12

Fixed

  • fixed a bug in Timeline.finish() (#964)
  • fixed registration of classes with custom bundler
  • fixed transform getter (e.g. el.transform('scale'))
  • fixed typings (#1004)

3.0.12 - 2019-02-19

Fixed

  • fixed package.json which points to correct file for webpack now (browser keyword)
  • fixed typescript types

Added

  • added ForeignObject to the core

3.0.11 - 2019-01-22

Fixed

  • fixed move commands (x, y, move) of text so that it moves text always by the upper left edge.
  • fixed center commands (cx, cy, center) of text so that it moves text always by the center.

3.0.10 - 2019-01-14

Fixed

  • fixed textPath(), path().text() and text().path()
  • fixed root() method
  • fixed default values returned by attr. Can be missleading if present.

Added

  • added findOne() for better performance

3.0.9 - 2019-01-14

Fixed

  • renamed unit() to convert() due to name collision

3.0.8 - 2019-01-13

Fixed

  • added back to() as unit() of SVG.Number which was removed accidentally

3.0.7 - 2019-01-13

Fixed

  • fixed a bug in isNulledBox() and domContains()
  • performance changes:
    • replace getElementsByTagName with querySelector
    • make Color check in attr more restrictive to prevent expensive toString

3.0.6 - 2019-01-12

Fixed

  • fixed group move and size commands
  • default font size is not set anymore because it mostly goes against what the user wants
  • fix bug in font() which set wrong values

Added

  • PointArray.transform() (#945)

3.0.5 - 2018-12-12

Fixed

  • fixed parser which didnt have all required css rules and not focusable=false
  • group x(), y(), width(), height(), dx(), dy() now correctly change the bbox of the group by moving/resizing all children
  • fixed timeline which fired finished too early
  • fixed Animator.frame(). The passed callback gets the current time now (same as RAF)
  • allow loop(true) which is the same as loop()

3.0.4 - 2018-12-07

Fixed

  • fixed zoom which was added correctly and is animatable now
  • fixed Runner which merges transformations on the correct frame and in the correct way now
  • fixed condition on which transforms get deleted from an element when animating
  • fixed Timeline which executes Runner in the correct order now
  • fixed Svg which correctly deletes the defs reference on clear()

3.0.3 - 2018-12-05

Fixed

  • fixed Runner which correctly retains transformations when it is still on a timeline
  • fixed plot() method of Runner
  • fixed timeline() so that one can set the timeline of an element now
  • fixed G and added missing width/height

3.0.2 - 2018-12-03

Fixed

  • fixed List which still didn’t have all method names it should have
  • fixed Runner which correctly handle retargeted controlled animations now
  • fixed Runner so that it is able to be persisted correctly
  • fixed Color which correctly handles empty strings now
  • fixed attr which correctly handles Objects of other kind now
  • fixed Morphable which correctly calculates the done flag now

3.0.1 - 2018-12-03

Fixed

  • fixed insertBefore, insertAfter and flip correctly returning this
  • fixed List which didn’t have all method names it should have

3.0.0 - 2018-12-01

Added

  • added text() method to SVG.Path to create a textPath from this path (#705)
  • added SVG.HTMLNode which is the object wrapped around html nodes to put something in them
  • added dispatch() method on SVG.Element which returns the dispatched event for event cancelation (#550)
  • added isRoot() on SVG.Doc (#809)
  • added a linter during the npm build process
  • added beziere() and steps() to generate easing functions
  • added insertAfter() and insertBefore
  • added SVG.Style which can be created with style() or fontface() (#517)
  • added EventTarget which is a baseclass to get event abilities (#641)
  • added Dom which is a baseclass to get dom abilities
  • added round() which lets you round attribues from a node
  • added ax(), ay(), amove() to change texts x and y values directly (#787)
  • added possibility to pass attributes into a constructor like: new SVG.Rect({width:100})
  • added possibility to pass in additional attribues to element creators e.g. canvas.rect({x:100}) or canvas.rect(100, 100, {x:100}) (#796)
  • added SVG.List (#645)
  • added words() and element() to Dom because of (#935)
  • added lab, lch, hsl and cmyk color spaces (#790)
  • added random() method on SVG.Color to create random colors of different kinds (#939)

Removed

  • removed SVG.Array.split() function
  • removed workaround for browser bug with stroke-width
  • removed polyfills
  • removed SVG.Set in favour of SVG.List
  • removed feature to set style with css string (e.g. “fill:none;display:block;”)
  • removed loaded() and error() method on SVG.Image (#706)
  • removed sub-pixel offset fix
  • removed SVG.Nested (#809)
  • removed show() from SVG.A to avoid name clash (#802)
  • removed size() from SVG.Text to avoid name clash (#799)
  • removed native() function
  • removed Bare in favour of Dom (#935)
  • removed bower support because it is deprecated

Changed

  • gradients now have there corresponding node as type and not only radial/linear
  • SVG.Path.pointAt() correctly returns an SVG.Point now
  • replaced static reference to masker in SVG.Mask with the masker() method
  • replaced static reference to clipper in SVG.ClipPath with the clipper() method
  • replaced static reference to targets in SVG.Mask and SVG.ClipPath with the targets() method
  • moved all regexes to SVG.regex
  • new constructor signature for SVG.Image and load(): container.image(src, callback) / image.load(src, callback) (#706)
  • changed style() to css(). Now accepts array as input and returns object when no argument given (#517)
  • ids are not generated upon creation anymore. Instead they are generated when requested (#559)
  • SVG.extend() now expects exactly one module or an array of modules
  • SVG.Text.path() now returns an instance of SVG.TextPath (#705)
  • SVG.Text.path() does not move all contents to the textPath (#705)
  • SVG.TextPath now inherits from SVG.Text and can be manipulated the same way (#705)
  • SVG.Text.textPath() returns the first textPaths in the text element (#705)
  • renamed SVG.Stop constructor at() on SVG.Gradient to stop() (#707)
  • renamed fill() method on SVG.Gradient and SVG.Pattern to url() (#708)
  • renamed previous() method to prev()
  • changed childNodes to children (same for firstChild, lastChild, …) (#710) - changed it back because of performance drop
  • moved defs() method from SVG.Parent to SVG.Element
  • SVG() can be called with css selector, node or svg string, now. Without an argument it creates a new SVG.Doc() (#646)
  • add(), put(), addTo(), putIn() now excepts all arguments accepted by SVG()
  • all SVG.* objects now can have a node as parameter when constructing
  • SVG() does not set a default size anymore
  • default constructor now has an optional node argument which is used to consruct the object e.g. new SVG.Rect(rectNode)
  • SVG.Elements constructor now tries to import svgjs:data from the node
  • SVG.on() calls the listener in the context of the passed object. el.on always uses the svg.js object as context
  • SVG.on()/off() and el.on()/off() now accepts multiple comma or space separated events e.g. “mousedown, foo bar” (#727)
  • Matrices now apply transformations like scale, translate, etc… by left multiplying them to simplify transformations
  • The way transform() works is now completely different. See the docs for more as soon as they are updated
  • merged SVG.Doc and SVG.Nested, added isRoot() on SVG.Doc() (#809)
  • The fx module was completely reworked to be faster and less error prone. For more information on how to use it refer to the docs
  • The whole lib is now splitted into es6 modules (#875)
  • Element.svg() now can can replace the current node, can export the children of a node and can take an export modifier to change/replace the exported nodes
  • ungroup() now breaks off one container and not more
  • clone() does not add the clone to the dom anymore
  • attr() excepts array now to get multiple values at once
  • SVG.Text.rebuild() now takes every font-size into account (#512)
  • fill() and stroke() return the fill and stroke attribute when called as getter (#789)
  • parents() now gives back all parents until the passed one or document
  • Image callback passes normal load event instead of custom object (#931)
  • renamed Doc to Svg and doc() to root (and toDoc()/toRoot()) (#932)

2.7.1 - 2018-11-30

Fixed

  • CustomEvent-polyfill was not used (needed in IE) (#938)

2.7.0 - 2018-11-13

Fixed

  • fixed calling parent() on documentFragments children (#927)
  • parser is not focusable anymore (#908)
  • SVG.Element.click(null) correctly unbinds the event (#878)
  • fix memory leak (#905)

Added

  • SVG.Set now accepts another Set as input (#893)
  • on()/off() accepts multiple event names as input (backport from 3.0)

2.6.6 - 2018-08-30

Added

  • added global reference to support ‘window’ in bundlers (#767)

2.6.5 - 2018-05-26

Fixed

  • fixed element.parent() which sometimes failed when used on detached documents (#759)
  • fixed SVG.Text.y() which didnt work correctly with SVG.Number (#778)
  • fixed SVG.Doc.clone() which throwed an error (#782)
  • fixed SVG.Mask.clone() which throwed an error (#782)
  • fixed SVG.PointArray having a reference to outside array in some cases (#803)
  • fixed reference() which failed when trying to use a reference which does not exist in the attribuets (#840)
  • fixed animate().attr() method which doenst work for d attribute of paths (#847)
  • fixed problems with CustomEvent polyfill in IE11 (#852)

Added

  • added possibility to pass an array of point objects to SVG.PointArray (#803)

2.6.4 - 2018-02-07

Fixed

  • fixed memory leak when creating images (#805)

2.6.3 - 2017-07-21

Fixed

  • fixed error in parent method when hitting document node (#720)

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.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

  • component.json (#652)

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

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

1.0.0-rc.9 - 2014-06-17

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]

1.0.0-rc.8 - 2014-06-12

Fixed

  • fixed bug in SVG.off
  • fixed offset by window scroll position in rbox() [thanks @bryhoyt]

1.0.0-rc.7 - 2014-06-11

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]

1.0.0-rc.6 - 2014-03-03

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

1.0.0-rc.5 - 2014-02-14

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

1.0.0-rc.4 - 2014-02-04

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]

v1.0rc3 - 2014-02-03

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

v1.0rc2 - 2014-02-01

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

v1.0rc1 - 2014-01-31

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

  • added get() to SVG.Set

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

v0.32

Added