svg.js v3.1.0 Release Notes

  • 🛠 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 doesnt 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 declaritive 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