- SVG.Box for everything
- bbox, rbox and viewbox as methods
- boxes can be created with string, array, object, list...
- added helper to simplify boxes code
- removed `SVG.Array.split()` function (#604)
- removed workaround for browser bug with stroke-width (#560)
- removed polyfills
- removed `ungroup()` in favour of `flatten()`
- gradients now have their corresponding nodename as type and not only radial/linear (#606)
- `SVG.Path.pointAt()` correctly returns an `SVG.Point` now (#607)
- 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 (all three #563)
### 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”](http://keepachangelog.com) (#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)
added SVG.Box, added transform method to boxes, fix rbox (#626)
added SVG.Box, added transform method to boxes, fix rbox
Also:
- workaround for screenCTM with nested svg (FF bug)
- remove unneeded workaround in toParent()
- rbox accepts additional parameter to transform the box
Rémi Tétreault [Mon, 6 Mar 2017 01:55:09 +0000 (20:55 -0500)]
Make the method dequeue stop the current animation
There was a bug in the dequeue method of the FX module. It was not stopping
the current animation as it was supposed too. This bug is now fixed. Also,
I rewritten the test that @fuzzyma left commented. I changed its
implementation to not use the once callback since there seem to be some issues
when combining once and dequeue. The method stop was also modified, it now
call start only when it's revelant.
Rémi Tétreault [Sat, 25 Feb 2017 18:23:23 +0000 (13:23 -0500)]
Add tests for the method atEnd of the FX module
List of changes:
* Add tests for atEnd for the case the animation is in a infinite loop
* Fix a bug in atEnd that was uncovered by the new tests
* Fix the indentation of the methods atStart and atEnd
* Improve the comments of some of the others tests of atEnd
Rémi Tétreault [Fri, 17 Feb 2017 01:35:05 +0000 (20:35 -0500)]
Sort out leftovers from the old fx module
This commit is mostly to clean up the implementation of the initAnimation
method of the Fx Module (issue #547). It also fixes these issues: #552, #582
and #584.
Here is a list of the changes and fixes that are made:
* Add a plot and array method to SVG.TextPath (issue #582)
* Make the method plot a getter when no parameter is passed for SVG.Polyline,
SVG.Polygon, SVG.Line, SVG.Path (this idea come from issue #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 to separate points
(something like this is now accepted: '1, 2, 3, 4')
* Allow plot to be called with 4 parameters when animating an SVG.Line
* Fix a bug in the plain morphing part of SVG.MorphObj that is in the FX module
* Relative value for SVG.Number are now calculated in its morph method (idea
from issue #547)
* Clean up the implementation of the initAnimation method of the FX module
(issues #547, #552, #584)
From "change from SVG() to use querySelector instead of getElementById (breaking change) -> __TODO!__" to "change SVG() to use querySelector instead of getElementById (breaking change) -> __TODO!__"
Rémi Tétreault [Wed, 21 Dec 2016 02:33:18 +0000 (21:33 -0500)]
Implement a more basic morph method for SVG.PathArray
The method expect the paths to use the exact same commands. It will not
attempt to modify them if they do not. Any more complex algorithm shall be
provided as a plugin instead in order to keep the size of the library down.