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.

CHANGELOG.md 39KB

3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
2 years ago
3 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
7 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084
  1. # Change Log
  2. All notable changes to this project will be documented in this file.
  3. The document follows the conventions described in [“Keep a CHANGELOG”](http://keepachangelog.com).
  4. ====
  5. ## [3.2.0]
  6. ### Fixed
  7. - improve performance of `point()` by not creating intermediate objects (#1251)
  8. - fixed references by using single quotes instead of double quotes which lead to errors (#1277)
  9. - fixed a few spelling errors in comments (#1277)
  10. - fix several typings (#1253, #1280, #1300)
  11. ### Added
  12. - added second parameter `assignNewId` to `clone()` to allow cloning with the same id (#1161)
  13. ## [3.1.2]
  14. ### Fixed
  15. - fixed several type issues (#1249, #1233, #1231, #1223, #1215)
  16. - fixed `css()` returning camelCased properties even though they were specified in kebap-case
  17. - fixed `ObjectBag` loosing information when calling `valueOf()` (Numbers lost its unit)
  18. - fixed `parents()` (#1235)
  19. - fixed `nodeOrNew()` to work in object tags as well (#1219)
  20. ## [3.1.1]
  21. ### Fixed
  22. - fixed typings for tcs 4.2.4 (#1204, #1206, #1203)
  23. ## [3.1.0]
  24. ### Fixed
  25. - fixed `zoom()` method of runner which was passed a wrong parameter
  26. - fixed positioning methods of `TSpan` to position them by its bounding box
  27. - fixed `flip()` method which flips correctly by center by default now and accepts correct arguments
  28. - fixed a case in `rbox()` where not always all values of the box were updated
  29. - fixed `getOrigin()` function used by `transform()` so that all origin popssibilities specified in the docs are working (#1085)
  30. - fixed positioning of text by its baseline when using `amove()`
  31. - fixed tons of typings in the svg.d.ts file and relaxed type requirements for `put()` and `parent()`
  32. - fixed adopter when adopting an svg/html string. It had still its wrapper as parentNode attached
  33. - fixed `put()` which correctly creates an svgjs object from the passed element now before returning
  34. - fixed `parent()` which correctly returns a Dom instance when parent is the document or document-fragment
  35. - fixed `add()` which correctly removes namespaces of non-root svg elements now when added to another svg element (#1086)
  36. - fixed `isRoot()` which correctly returns false, if the element is in a document-fragment
  37. - fixed `replace()` which works without a parent now, too
  38. - fixed `defs()` which correctly returns `null` when called on a detached node that is not a root node
  39. - fixed `reference()` which correctly returns `null` instead of throwing when specifying an attribute which holds a number
  40. - fixed `flatten()` which correctly flattens now but doesn't accept parameters anymore (makes no sense)
  41. - fixed `ungroup()` which now inserts the elements at the correct position in the correct order and has position as second argument now
  42. - fixed `position` for `transform()` to also allow a position of 0
  43. - fixed `bbox()` of `PathArray` and `PointArray` which returns an instance of `Box` now
  44. - fixed bug in creation of PointArray which had still references to source arrays in it
  45. - fixed `PID` controller and makeSetterGetter function
  46. - fixed `Queue.push` which didnt let you push queue items
  47. - fixed `Timeline.reverse()` which did exactly the opposite of what you would expect when passing `true/false`
  48. - fixed cancelAnimationFrame-mock for tests
  49. - fixed animate when=after to be really "now" when no runner is on the timeline
  50. - fixed animate attr which is also retargetable now
  51. - fixed internals of ObjectBag which can hold other Morphable values now
  52. - fixed animate transform which didnt change its origin on retarget for declarative animations
  53. - fixed path parsing (#1145)
  54. - fixed `clone()` to return the correct instance (#1154)
  55. ### Added
  56. - added second Parameter to `SVG(el, isHTML)` which allows to explicitely create elements in the HTML namespace (#1058)
  57. - added `unlink()` and `linker()` to hyperlinked elements to remove or access the underling `<a>` element
  58. - added `wrap()` method to `Dom` which lets you wrap an element by another one
  59. - added `orient()` method to `Marker`
  60. - added `options` parameter to `dispatch()` and `fire()` to allow for more special needs
  61. - added `newLine()` constructor to `Text` to create a tspan marked as new line (#1088)
  62. - added `Fragment` as a wrapper for document-fragment
  63. - added position argument for `toParent()`
  64. - added position argument for `toRoot()`
  65. - added attr syntax for `data()` method
  66. - added index and array parameter when passing a function to `List.each()` so that it mostly behaves like map
  67. - added possibility to pass a transform object to `PointArray.transform()` similar to Point
  68. - added `with-last` as `when` to `animate` and `schedule` to let an animation start with the start of the last one in the timeline
  69. - added lots of tests in es6 format
  70. - added geometry and positioning methods to `A` (#1110)
  71. ### Deleted
  72. - deleted undocumented `Matrix.compose()` method which did the same as `new Matrix()` or `Matrix.transform()`
  73. - deleted undocumented `Path.morph()` and `Path.at()` which was replaced with Morphables in v3
  74. ## [3.0.16] - 2019-11-12
  75. ### Fixed
  76. - fixed build of polyfills which was broken because of core-js update
  77. ## [3.0.15] - 2019-11-08
  78. ### Fixed
  79. - allow object input of `when` and `delay` to `animate()`
  80. ### Added
  81. - added missing dmove function to runner
  82. ## [3.0.14] - 2019-10-31
  83. ### Fixed
  84. - hide parser from screen readers (#1023)
  85. ### Added
  86. - added transpiled esm bundle for webpack und co and faster import
  87. ## [3.0.13] - 2019-06-12
  88. ### Fixed
  89. - fixed a bug in Timeline.finish() (#964)
  90. - fixed registration of classes with custom bundler
  91. - fixed transform getter (e.g. `el.transform('scale')`)
  92. - fixed typings (#1004)
  93. ## [3.0.12] - 2019-02-19
  94. ### Fixed
  95. - fixed package.json which points to correct file for webpack now (browser keyword)
  96. - fixed typescript types
  97. ### Added
  98. - added `ForeignObject` to the core
  99. ## [3.0.11] - 2019-01-22
  100. ### Fixed
  101. - fixed move commands (x, y, move) of text so that it moves text always by the upper left edge.
  102. - fixed center commands (cx, cy, center) of text so that it moves text always by the center.
  103. ## [3.0.10] - 2019-01-14
  104. ### Fixed
  105. - fixed `textPath()`, `path().text()` and `text().path()`
  106. - fixed `root()` method
  107. - fixed default values returned by `attr`. Can be missleading if present.
  108. ### Added
  109. - added `findOne()` for better performance
  110. ## [3.0.9] - 2019-01-14
  111. ### Fixed
  112. - renamed `unit()` to `convert()` due to name collision
  113. ## [3.0.8] - 2019-01-13
  114. ### Fixed
  115. - added back `to()` as `unit()` of `SVG.Number` which was removed accidentally
  116. ## [3.0.7] - 2019-01-13
  117. ### Fixed
  118. - fixed a bug in `isNulledBox()` and `domContains()`
  119. - performance changes:
  120. - replace `getElementsByTagName` with `querySelector`
  121. - make Color check in `attr` more restrictive to prevent expensive `toString`
  122. ## [3.0.6] - 2019-01-12
  123. ### Fixed
  124. - fixed group move and size commands
  125. - default font size is not set anymore because it mostly goes against what the user wants
  126. - fix bug in `font()` which set wrong values
  127. ### Added
  128. - `PointArray.transform()` (#945)
  129. ## [3.0.5] - 2018-12-12
  130. ### Fixed
  131. - fixed `parser` which didnt have all required css rules and not focusable=false
  132. - group `x(), y(), width(), height(), dx(), dy()` now correctly change the bbox of the group by moving/resizing all children
  133. - fixed timeline which fired `finished` too early
  134. - fixed `Animator.frame()`. The passed callback gets the current time now (same as RAF)
  135. - allow `loop(true)` which is the same as `loop()`
  136. ## [3.0.4] - 2018-12-07
  137. ### Fixed
  138. - fixed `zoom` which was added correctly and is animatable now
  139. - fixed `Runner` which merges transformations on the correct frame and in the correct way now
  140. - fixed condition on which transforms get deleted from an element when animating
  141. - fixed `Timeline` which executes Runner in the correct order now
  142. - fixed `Svg` which correctly deletes the defs reference on `clear()`
  143. ## [3.0.3] - 2018-12-05
  144. ### Fixed
  145. - fixed `Runner` which correctly retains transformations when it is still on a timeline
  146. - fixed `plot()` method of Runner
  147. - fixed `timeline()` so that one can set the timeline of an element now
  148. - fixed `G` and added missing `width/height`
  149. ## [3.0.2] - 2018-12-03
  150. ### Fixed
  151. - fixed `List` which still didn't have all method names it should have
  152. - fixed `Runner` which correctly handle retargeted controlled animations now
  153. - fixed `Runner` so that it is able to be persisted correctly
  154. - fixed `Color` which correctly handles empty strings now
  155. - fixed `attr` which correctly handles Objects of other kind now
  156. - fixed `Morphable` which correctly calculates the done flag now
  157. ## [3.0.1] - 2018-12-03
  158. ### Fixed
  159. - fixed `insertBefore`, `insertAfter` and `flip` correctly returning `this`
  160. - fixed `List` which didn't have all method names it should have
  161. ## [3.0.0] - 2018-12-01
  162. ### Added
  163. - added `text()` method to `SVG.Path` to create a textPath from this path (#705)
  164. - added `SVG.HTMLNode` which is the object wrapped around html nodes to put something in them
  165. - added `dispatch()` method on `SVG.Element` which returns the dispatched event for event cancelation (#550)
  166. - added `isRoot()` on `SVG.Doc` (#809)
  167. - added a linter during the npm build process
  168. - added `beziere()` and `steps()` to generate easing functions
  169. - added `insertAfter()` and `insertBefore`
  170. - added `SVG.Style` which can be created with `style()` or `fontface()` (#517)
  171. - added `EventTarget` which is a baseclass to get event abilities (#641)
  172. - added `Dom` which is a baseclass to get dom abilities
  173. - added `round()` which lets you round attribues from a node
  174. - added `ax(), ay(), amove()` to change texts x and y values directly (#787)
  175. - added possibility to pass attributes into a constructor like: `new SVG.Rect({width:100})`
  176. - added possibility to pass in additional attribues to element creators e.g. `canvas.rect({x:100})` or `canvas.rect(100, 100, {x:100})` (#796)
  177. - added `SVG.List` (#645)
  178. - added `words()` and `element()` to `Dom` because of (#935)
  179. - added lab, lch, hsl and cmyk color spaces (#790)
  180. - added `random()` method on `SVG.Color` to create random colors of different kinds (#939)
  181. ### Removed
  182. - removed `SVG.Array.split()` function
  183. - removed workaround for browser bug with stroke-width
  184. - removed polyfills
  185. - removed `SVG.Set` in favour of `SVG.List`
  186. - removed feature to set style with css string (e.g. "fill:none;display:block;")
  187. - removed `loaded()` and `error()` method on `SVG.Image` (#706)
  188. - removed sub-pixel offset fix
  189. - removed `SVG.Nested` (#809)
  190. - removed `show()` from `SVG.A` to avoid name clash (#802)
  191. - removed `size()` from `SVG.Text` to avoid name clash (#799)
  192. - removed `native()` function
  193. - removed `Bare` in favour of `Dom` (#935)
  194. - removed `bower` support because it is deprecated
  195. ### Changed
  196. - gradients now have there corresponding node as type and not only radial/linear
  197. - `SVG.Path.pointAt()` correctly returns an `SVG.Point` now
  198. - replaced static reference to `masker` in `SVG.Mask` with the `masker()` method
  199. - replaced static reference to `clipper` in `SVG.ClipPath` with the `clipper()` method
  200. - replaced static reference to `targets` in `SVG.Mask` and `SVG.ClipPath` with the `targets()` method
  201. - moved all regexes to `SVG.regex`
  202. - new constructor signature for `SVG.Image` and `load()`: `container.image(src, callback) / image.load(src, callback)` (#706)
  203. - changed `style()` to `css()`. Now accepts array as input and returns object when no argument given (#517)
  204. - ids are not generated upon creation anymore. Instead they are generated when requested (#559)
  205. - `SVG.extend()` now expects exactly one module or an array of modules
  206. - `SVG.Text.path()` now returns an instance of SVG.TextPath (#705)
  207. - `SVG.Text.path()` does not move all contents to the textPath (#705)
  208. - `SVG.TextPath` now inherits from `SVG.Text` and can be manipulated the same way (#705)
  209. - `SVG.Text.textPath()` returns the first textPaths in the text element (#705)
  210. - renamed `SVG.Stop` constructor `at()` on `SVG.Gradient` to `stop()` (#707)
  211. - renamed `fill()` method on `SVG.Gradient` and `SVG.Pattern` to `url()` (#708)
  212. - renamed `previous()` method to `prev()`
  213. - changed `childNodes` to `children` (same for `firstChild`, `lastChild`, ...) (#710) - changed it back because of performance drop
  214. - moved `defs()` method from `SVG.Parent` to `SVG.Element`
  215. - `SVG()` can be called with css selector, node or svg string, now. Without an argument it creates a new `SVG.Doc()` (#646)
  216. - `add()`, `put()`, `addTo()`, `putIn()` now excepts all arguments accepted by `SVG()`
  217. - all `SVG.*` objects now can have a node as parameter when constructing
  218. - `SVG()` does not set a default size anymore
  219. - default constructor now has an optional `node` argument which is used to consruct the object e.g. `new SVG.Rect(rectNode)`
  220. - SVG.Elements constructor now tries to import svgjs:data from the node
  221. - `SVG.on()` calls the listener in the context of the passed object. el.on always uses the svg.js object as context
  222. - `SVG.on()/off()` and `el.on()/off()` now accepts multiple comma or space separated events e.g. "mousedown, foo bar" (#727)
  223. - Matrices now apply transformations like `scale`, `translate`, etc... by left multiplying them to simplify transformations
  224. - The way `transform()` works is now completely different. See the docs for more as soon as they are updated
  225. - merged `SVG.Doc` and `SVG.Nested`, added `isRoot()` on `SVG.Doc()` (#809)
  226. - 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
  227. - The whole lib is now splitted into es6 modules (#875)
  228. - `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
  229. - `ungroup()` now breaks off one container and not more
  230. - `clone()` does not add the clone to the dom anymore
  231. - `attr()` excepts array now to get multiple values at once
  232. - `SVG.Text.rebuild()` now takes every font-size into account (#512)
  233. - `fill()` and `stroke()` return the fill and stroke attribute when called as getter (#789)
  234. - `parents()` now gives back all parents until the passed one or document
  235. - `Image` callback passes normal `load` event instead of custom object (#931)
  236. - renamed `Doc` to `Svg` and `doc()` to `root` (and `toDoc()/toRoot()`) (#932)
  237. ## [2.7.1] - 2018-11-30
  238. ### Fixed
  239. - CustomEvent-polyfill was not used (needed in IE) (#938)
  240. ## [2.7.0] - 2018-11-13
  241. ### Fixed
  242. - fixed calling `parent()` on `documentFragment`s children (#927)
  243. - parser is not focusable anymore (#908)
  244. - `SVG.Element.click(null)` correctly unbinds the event (#878)
  245. - fix memory leak (#905)
  246. ### Added
  247. - `SVG.Set` now accepts another Set as input (#893)
  248. - `on()/off()` accepts multiple event names as input (backport from 3.0)
  249. ## [2.6.6] - 2018-08-30
  250. ### Added
  251. - added global reference to support 'window' in bundlers (#767)
  252. ## [2.6.5] - 2018-05-26
  253. ### Fixed
  254. - fixed `element.parent()` which sometimes failed when used on detached documents (#759)
  255. - fixed `SVG.Text.y()` which didnt work correctly with `SVG.Number` (#778)
  256. - fixed `SVG.Doc.clone()` which throwed an error (#782)
  257. - fixed `SVG.Mask.clone()` which throwed an error (#782)
  258. - fixed `SVG.PointArray` having a reference to outside array in some cases (#803)
  259. - fixed `reference()` which failed when trying to use a reference which does not exist in the attribuets (#840)
  260. - fixed `animate().attr()` method which doenst work for `d` attribute of paths (#847)
  261. - fixed problems with `CustomEvent` polyfill in IE11 (#852)
  262. ### Added
  263. - added possibility to pass an array of point objects to SVG.PointArray (#803)
  264. ## [2.6.4] - 2018-02-07
  265. ### Fixed
  266. - fixed memory leak when creating images (#805)
  267. ## [2.6.3] - 2017-07-21
  268. ### Fixed
  269. - fixed error in parent method when hitting document node (#720)
  270. ## [2.6.2] - 2017-06-05
  271. ### Added
  272. - added `width()` and `height()` methods to `SVG.FX`
  273. - added the intended functionality to call animate functions with multiple parameter (#671)
  274. ### Changed
  275. - updated Jasmine from 2.5.2 to 2.6.0
  276. - removed the typeof check in the initialisation of SVG.Matrix
  277. ### Fixed
  278. - fixed `SVG.FX.once` so that it add its callback on the last situation instead of the current one
  279. - fixed `SVG.FX.step` so that the animation doesn't stop if an afterAll callback call animate (#677)
  280. ## [2.6.1] - 2017-04-25
  281. ### Fixed
  282. - fixed a bug in path parser which made it stop parsing when hitting z command (#665)
  283. ## [2.6.1] - 2017-04-25
  284. ### Fixed
  285. - fixed a bug in path parser which made it stop parsing when hitting z command (#665)
  286. ## [2.6.0] - 2017-04-21
  287. ### Added
  288. - added `options` object to `SVG.on()` and `el.on()` (#661)
  289. ### Changed
  290. - back to sloppy mode because of problems with plugins (#660)
  291. ## [2.5.3] - 2017-04-15
  292. ### Added
  293. - added gitter badge in readme
  294. ### Fixed
  295. - fixed svg.js.d.ts (#644 #648)
  296. - fixed bug in `el.flip()` which causes an error when calling flip without any argument
  297. ### Removed
  298. - component.json (#652)
  299. ## [2.5.2] - 2017-04-11
  300. ### Changed
  301. - SVG.js is now running in strict mode
  302. ### Fixed
  303. - `clear()` does not remove the parser in svg documents anymore
  304. - `len` not declared in FX module, making it a global variable (9737e8a)
  305. - `bbox` not declared in SVG.Box.transform in the Box module (131df0f)
  306. - `namespace` not declared in the Event module (e89c97e)
  307. ## [2.5.1] - 2017-03-27
  308. ### Changed
  309. - make svgjs ready to be used on the server
  310. ### Fixed
  311. - fixed `SVG.PathArray.parse` that did not correctly parsed flat arrays
  312. - prevented unnecessary parsing of point or path strings
  313. ## [2.5.0] - 2017-03-10
  314. ### Added
  315. - added a plot and array method to `SVG.TextPath` (#582)
  316. - added `clone()` method to `SVG.Array/PointArray/PathArray` (#590)
  317. - added `font()` method to `SVG.Tspan`
  318. - added `SVG.Box()`
  319. - added `transform()` method to boxes
  320. - added `event()` to `SVG.Element` to retrieve the event that was fired last on the element (#550)
  321. ### Changed
  322. - changed CHANGELOG to follow the conventions described in [“Keep a CHANGELOG”](http://keepachangelog.com) (#578)
  323. - make the method plot a getter when no parameter is passed for `SVG.Polyline`,`SVG.Polygon`, `SVG.Line`, `SVG.Path` (related #547)
  324. - allow `SVG.PointArray` to be passed flat array
  325. - change the regexp `SVG.PointArray` use to parse string to allow more flexibility in the way spaces and commas can be used
  326. - allow `plot` to be called with 4 parameters when animating an `SVG.Line`
  327. - relative value for `SVG.Number` are now calculated in its `morph` method (related #547)
  328. - clean up the implementation of the `initAnimation` method of the FX module (#547, #552, #584)
  329. - deprecated `.tbox()`. `.tbox()` now map to `.rbox()`. If you are using `.tbox()`, you can substitute it with `.rbox()` (#594, #602)
  330. - all boxes now accept 4 values or an object on creation
  331. - `el.rbox()` now always returns the right boxes in screen coordinates and has an additional paramater to transform the box into other coordinate systems
  332. - `font()` method can now be used like `attr()` method (#620)
  333. - events are now cancelable by default (#550)
  334. ### Fixed
  335. - fixed a bug in the plain morphing part of `SVG.MorphObj` that is in the FX module
  336. - fixed bug which produces an error when removing an event from a node which was formerly removed with a global `off()` (#518)
  337. - fixed a bug in `size()` for poly elements when their height/width is zero (#505)
  338. - viewbox now also accepts strings and arrays as constructor arguments
  339. - `SVG.Array` now accepts a comma seperated string and returns array of numbers instead of strings
  340. - `SVG.Matrix` now accepts an array as input
  341. - `SVG.Element.matrix()` now accepts also 6 values
  342. - `dx()/dy()` now accepts percentage values, too but only if the value on the element is already percentage
  343. - `flip()` now flips on both axis when no parameter is passed
  344. - fixed bug with `documentElement.contains()` in IE
  345. - fixed offset produced by svg parser (#553)
  346. - fixed a bug with clone which didnt copy over dom data (#621)
  347. ## [2.4.0] - 2017-01-14
  348. ### Added
  349. - added support for basic path animations (#561)
  350. ## [2.3.7] - 2017-01-14
  351. ### Added
  352. - added code coverage https://coveralls.io/github/svgdotjs/svg.js (3e614d4)
  353. - added `npm run test:quick` which aim at being fast rather than correct - great for git hooks (981ce24)
  354. ### Changed
  355. - moved project to [svgdotjs](https://github.com/svgdotjs)
  356. - made matrixify work with transformation chain separated by commas (#543)
  357. - updated dev dependencies; request and gulp-chmod - `npm run build` now requires nodejs 4.x+
  358. ### Fixed
  359. - fixed `SVG.Matrix.skew()` (#545)
  360. - fixed broken animations, if using polyfills for es6/7 proposals (#504)
  361. - fixed and improved `SVG.FX.dequeue()` (#546)
  362. - fixed an error in `SVG.FX.step`, if custom properties is added to `Array.prototype` (#549)
  363. ## [2.3.6] - 2016-10-21
  364. ### Changed
  365. - make SVG.FX.loop modify the last situation instead of the current one (#532)
  366. ### Fixed
  367. - fixed leading and trailing space in SVG.PointArray would return NaN for some points (695f26a) (#529)
  368. - fixed test of `SVG.FX.afterAll` (#534)
  369. - fixed `SVG.FX.speed()` (#536)
  370. ## [2.3.5] - 2016-10-13
  371. ### Added
  372. - added automated unit tests via [Travis](https://travis-ci.org/svgdotjs/svg.js) (#527)
  373. - added `npm run build` to build a new version of SVG.js without requiring gulp to be globally installed
  374. ### Changed
  375. - calling `fill()`, `stroke()` without an argument is now a nop
  376. - Polygon now accepts comma less points to achieve parity with Adobe Illustrator (#529)
  377. - updated dependencies
  378. ## [2.3.4] - 2016-08-04
  379. ### Changed
  380. - reworked parent module for speed improvemenents
  381. - reworked `filterSVGElements` utility to use a for loop instead of the native filter function
  382. ## [2.3.3] - 2016-08-02
  383. ### Added
  384. - add error callback on image loading (#508)
  385. ### Fixed
  386. - fixed bug when getting bbox of text elements which are not in the dom (#514)
  387. - fixed bug when getting bbox of element which is hidden with css (#516)
  388. ## [2.3.2] - 2016-06-21
  389. ### Added
  390. - added specs for `SVG.ViewBox`
  391. - added `parent` parameter for `clone()`
  392. - added spec for mentioned issue
  393. ### Fixed
  394. - fixed string parsing in viewbox (#483)
  395. - fixed bbox when element is not in the dom (#480)
  396. - fixed line constructor which doesn't work with Array as input (#487)
  397. - fixed problem in IE with `document.contains` (#490) related to (#480)
  398. - fixed `undo` when undoing transformations (#494)
  399. ## [2.3.1] - 2016-05-05
  400. ### Added
  401. - added typings for svg.js (#470)
  402. ### Fixed
  403. - fixed `SVG.morph()` (#473)
  404. - fixed parser error (#471)
  405. - fixed bug in `SVG.Color` with new fx
  406. - fixed `radius()` for circles when animating and other related code (#477)
  407. - fixed bug where `stop(true)` throws an error when element is not animated (#475)
  408. - fixed bug in `add()` when altering svgs with whitespaces
  409. - fixed bug in `SVG.Doc().create` where size was set to 100% even if size was already specified
  410. - fixed bug in `parse()` from `SVG.PathArray` which does not correctly handled `S` and `T` (#485)
  411. ## [2.3.0] - 2016-03-30
  412. ### Added
  413. - added `SVG.Point` which serves as Wrapper to the native `SVGPoint` (#437)
  414. - added `element.point(x,y)` which transforms a point from screen coordinates to the elements space (#403)
  415. - added `element.is()` which helps to check for the object instance faster (instanceof check)
  416. - added more fx specs
  417. ### Changed
  418. - textpath now is a parent element, the lines method of text will return the tspans inside the textpath (#450)
  419. - fx module rewritten to support animation chaining and several other stuff (see docs)
  420. ### Fixed
  421. - fixed `svgjs:data` attribute which was not set properly in all browsers (#428)
  422. - fixed `isNumber` and `numberAndUnit` regex (#405)
  423. - fixed error where a parent node is not found when loading an image but the canvas was cleared (#447)
  424. - fixed absolute transformation animations (not perfect but better)
  425. - fixed event listeners which didnt work correctly when identic funtions used
  426. ## [2.2.5] - 2015-12-29
  427. ### Added
  428. - added check for existence of node (#431)
  429. ### Changed
  430. - `group.move()` now allows string numbers as input (#433)
  431. - `matrixify()` will not apply the calculated matrix to the node anymore
  432. ## [2.2.4] - 2015-12-12
  433. ### Fixed
  434. - fixed `transform()` which returns the matrix values (a-f) now, too (#423)
  435. - double newlines (\n\n) are correctly handled as blank line from `text()`
  436. - fixed use of scrollX vs pageXOffset in `rbox()` (#425)
  437. - fixed target array in mask and clip which was removed instead of reinitialized (#429)
  438. ## [2.2.3] - 2015-11-30
  439. ### Fixed
  440. - fixed null check in image (see 2.2.2)
  441. - fixed bug related to the new path parser (see 2.2.2)
  442. - fixed amd loader (#412)
  443. ## [2.2.2] - 2015-11-28
  444. ### Added
  445. - added null check in image onload callback (#415)
  446. ### Changed
  447. - documentation rework (#407) [thanks @snowyplover]
  448. ### Fixed
  449. - fixed leading point bug in path parsing (#416)
  450. ## [2.2.1] - 2015-11-18
  451. ### Added
  452. - added workaround for `SvgPathSeg` which is removed in Chrome 48 (#409)
  453. - added `gbox()` to group to get bbox with translation included (#405)
  454. ### Fixed
  455. - fixed dom data which was not cleaned up properly (#398)
  456. ## [2.2.0] - 2015-11-06
  457. ### Added
  458. - added `ungroup()/flatten()` (#238), `toParent()` and `toDoc()`
  459. - added UMD-Wrapper with possibility to pass custom window object (#352)
  460. - added `morph()` method for paths via plugin [svg.pathmorphing.js](https://github.com/Fuzzyma/svg.pathmorphing.js)
  461. - added support for css selectors within the `parent()` method
  462. - added `parents()` method to get an array of all parenting elements
  463. ### Changed
  464. - svgjs now saves crucial data in the dom before export and restores them when element is adopted
  465. ### Fixed
  466. - fixed pattern and gradient animation (#385)
  467. - fixed mask animation in Firefox (#287)
  468. - fixed return value of `text()` after import/clone (#393)
  469. ## [2.1.1] - 2015-10-03
  470. ### Added
  471. - added custom context binding to event callback (default is the element the event is bound to)
  472. ## [2.1.0] - 2015-09-20
  473. ### Added
  474. - added transform to pattern and gradients (#383)
  475. ### Fixed
  476. - fixed clone of textnodes (#369)
  477. - fixed transformlists in IE (#372)
  478. - fixed typo that leads to broken gradients (#370)
  479. - fixed animate radius for circles (#367)
  480. ## [2.0.2] - 2015-06-22
  481. ### Fixed
  482. - Fixed zoom consideration in circle and ellipse
  483. ## [2.0.1] - 2015-06-21
  484. ### Added
  485. - added possibility to remove all events from a certain namespace
  486. ### Fixed
  487. - fixed bug with `doc()` which always should return root svg
  488. - fixed bug in `SVG.FX` when animating with `plot()`
  489. ### Removed
  490. - removed target reference from use which caused bugs in `dmove()` and `use()` with external file
  491. - removed scale consideration in `move()` duo to incompatibilities with other move-functions e.g. in `SVG.PointArray`
  492. ## [2.0.0] - 2015-06-11
  493. ### Added
  494. - implemented an SVG adoption system to be able to manipulate existing SVG's not created with svg.js
  495. - added polyfill for IE9 and IE10 custom events [thanks @Fuzzyma]
  496. - added DOM query selector with the `select()` method globally or on parent elements
  497. - added the intentionally neglected `SVG.Circle` element
  498. - added `rx()` and `ry()` to `SVG.Rect`, `SVG.Circle`, `SVG.Ellispe` and `SVG.FX`
  499. - added support to clone manually built text elements
  500. - added `svg.wiml.js` plugin to plugins list
  501. - added `ctm()` method to for matrix-centric transformations
  502. - added `morph()` method to `SVG.Matrix`
  503. - added support for new matrix system to `SVG.FX`
  504. - added `native()` method to elements and matrix to get to the native api
  505. - added `untransform()` method to remove all transformations
  506. - added raw svg import functionality with the `svg()` method
  507. - added coding style description to README
  508. - added reverse functionality for animations
  509. - documented the `situation` object in `SVG.FX`
  510. - added distinction between relative and absolute matrix transformations
  511. - implemented the `element()` method using the `SVG.Bare` class to create elements that are not described by SVG.js
  512. - added `w` and `h` properties as shorthand for `width` and `height` to `SVG.BBox`
  513. - added `SVG.TBox` to get a bounding box that is affected by transformation values
  514. - added event-based or complete detaching of event listeners in `off()` method
  515. ### Changed
  516. - changed `parent` reference on elements to `parent()` method
  517. - using `CustomEvent` instead of `Event` to be able to fire events with a `detail` object [thanks @Fuzzyma]
  518. - renamed `SVG.TSpan` class to `SVG.Tspan` to play nice with the adoption system
  519. - completely reworked `clone()` method to use the adoption system
  520. - completely reworked transformations to be chainable and more true to their nature
  521. - changed `lines` reference to `lines()` on `SVG.Text`
  522. - changed `track` reference to `track()` on `SVG.Text`
  523. - changed `textPath` reference to `textPath()` on `SVG.Text`
  524. - changed `array` reference to `array()` method on `SVG.Polyline`, `SVG.Polygon` and `SVG.Path`
  525. - reworked sup-pixel offset implementation to be more compact
  526. - switched from Ruby's `rake` to Node's `gulp` for building [thanks to Alex Ewerlöf]
  527. - changed `to()` method to `at()` method in `SVG.FX`
  528. - renamed `SVG.SetFX` to `SVG.FX.Set`
  529. - reworked `SVG.Number` to return new instances with calculations rather than itself
  530. - reworked animatable matrix rotations
  531. - removed `SVG.Symbol` but kept the `symbol()` method using the new `element()` method
  532. ### Fixed
  533. - fixed bug in `radius()` method when `y` value equals `0`
  534. - fixed a bug where events are not detached properly
  535. ## [1.0.0-rc.9] - 2014-06-17
  536. ### Added
  537. - added `SVG.Marker`
  538. - added `SVG.Symbol`
  539. - added `first()` and `last()` methods to `SVG.Set`
  540. - added `length()` method to `SVG.Text` and `SVG.TSpan` to calculate total text length
  541. - added `reference()` method to get referenced elements from a given attribute value
  542. ### Changed
  543. - `SVG.get()` will now also fetch elements with a `xlink:href="#elementId"` or `url(#elementId)` value given
  544. ### Fixed
  545. - fixed infinite loop in viewbox when element has a percentage width / height [thanks @shabegger]
  546. ## [1.0.0-rc.8] - 2014-06-12
  547. ### Fixed
  548. - fixed bug in `SVG.off`
  549. - fixed offset by window scroll position in `rbox()` [thanks @bryhoyt]
  550. ## [1.0.0-rc.7] - 2014-06-11
  551. ### Added
  552. - added `classes()`, `hasClass()`, `addClass()`, `removeClass()` and `toggleClass()` [thanks @pklingem]
  553. ### Changed
  554. - binding events listeners to svg.js instance
  555. - calling `after()` when calling `stop(true)` (fulfill flag) [thanks @vird]
  556. - text element fires `rebuild` event whenever the `rebuild()` method is called
  557. ### Fixed
  558. - fixed a bug where `Element#style()` would not save empty values in IE11 [thanks @Shtong]
  559. - fixed `SVG is not defined error` [thanks @anvaka]
  560. - fixed a bug in `move()`on text elements with a string based value
  561. - fix for `text()` method on text element when acting as getter [thanks @Lochemage]
  562. - fix in `style()` method with a css string [thanks @TobiasHeckel]
  563. ## [1.0.0-rc.6] - 2014-03-03
  564. ### Added
  565. - added `leading()` method to `SVG.FX`
  566. - added `reverse()` method to `SVG.Array` (and thereby also to `SVG.PointArray` and `SVG.PathArray`)
  567. - added `fulfill` option to `stop()` method in `SVG.FX` to finalise animations
  568. - added more output values to `bbox()` and `rbox()` methods
  569. ### Changed
  570. - fine-tuned text element positioning
  571. - calling `at()` method directly on morphable svg.js instances in `SVG.FX` module
  572. - moved most `_private` methods to local named functions
  573. - moved helpers to a separate file
  574. ### Fixed
  575. - fixed a bug in text `dy()` method
  576. ### Removed
  577. - removed internal representation for `style`
  578. ## [1.0.0-rc.5] - 2014-02-14
  579. ### Added
  580. - added `plain()` method to `SVG.Text` element to add plain text content, without tspans
  581. - added `plain()` method to parent elements to create a text element without tspans
  582. - added `build()` to enable/disable build mode
  583. ### Changed
  584. - updated `SVG.TSpan` to accept nested tspan elements, not unlike the `text()` method in `SVG.Text`
  585. - removed the `relative()` method in favour of `dx()`, `dy()` and `dmove()`
  586. - 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)
  587. - refined docs on element-specific methods and `SVG.PathArray` structure
  588. - reworked `leading()` implementation to be more font-size "aware"
  589. - refactored the `attr` method on `SVG.Element`
  590. - applied Helvetica as default font
  591. - building `SVG.FX` class with `SVG.invent()` function
  592. ### Removed
  593. - removed verbose style application to tspans
  594. ## [1.0.0-rc.4] - 2014-02-04
  595. ### Added
  596. - automatic pattern creation by passing an image url or instance as `fill` attribute on elements
  597. - added `loaded()` method to image tag
  598. - added `pointAt()` method to `SVG.Path`, wrapping the native `getPointAtLength()`
  599. ### Changed
  600. - switched to `MAJOR`.`MINOR`.`PATCH` versioning format to play nice with package managers
  601. - made svg.pattern.js part of the core library
  602. - moved `length()` method to sugar module
  603. ### Fixed
  604. - fix in `animate('=').to()`
  605. - fix for arcs in patharray `toString()` method [thanks @dotnetCarpenter]
  606. ## [v1.0rc3] - 2014-02-03
  607. ### Added
  608. - added the `SVG.invent` function to ease invention of new elements
  609. - added second values for `animate('2s')`
  610. - added `length()` mehtod to path, wrapping the native `getTotalLength()`
  611. ### Changed
  612. - using `SVG.invent` to generate core shapes as well for leaner code
  613. ### Fixed
  614. - fix for html-less documents
  615. - fix for arcs in patharray `toString()` method
  616. ## [v1.0rc2] - 2014-02-01
  617. ### Added
  618. - added `index()` method to `SVG.Parent` and `SVG.Set`
  619. - added `morph()` and `at()` methods to `SVG.Number` for unit morphing
  620. ### Changed
  621. - modified `cx()` and `cy()` methods on elements with native `x`, `y`, `width` and `height` attributes for better performance
  622. ## [v1.0rc1] - 2014-01-31
  623. ### Added
  624. - added `SVG.PathArray` for real path transformations
  625. - added `bbox()` method to `SVG.Set`
  626. - added `relative()` method for moves relative to the current position
  627. - added `morph()` and `at()` methods to `SVG.Color` for color morphing
  628. ### Changed
  629. - enabled proportional resizing on `size()` method with `null` for either `width` or `height` values
  630. - moved data module to separate file
  631. - `data()` method now accepts object for for multiple key / value assignments
  632. ### Removed
  633. - removed `unbiased` system for paths
  634. ## [v0.38] - 2014-01-28
  635. ### Added
  636. - added `loop()` method to `SVG.FX`
  637. ### Changed
  638. - switched from `setInterval` to `requestAnimFrame` for animations
  639. ## [v0.37] - 2014-01-26
  640. ### Added
  641. - added `get()` to `SVG.Set`
  642. ### Changed
  643. - moved `SVG.PointArray` to a separate file
  644. ## [v0.36] - 2014-01-25
  645. ### Added
  646. - added `linkTo()`, `addTo()` and `putIn()` methods on `SVG.Element`
  647. ### Changed
  648. - provided more detailed documentation on parent elements
  649. ### Fixed
  650. ## [v0.35] - 2014-01-23
  651. ### Added
  652. - added `SVG.A` element with the `link()`
  653. ## [v0.34] - 2014-01-23
  654. ### Added
  655. - added `pause()` and `play()` to `SVG.FX`
  656. ### Changed
  657. - storing animation values in `situation` object
  658. ## [v0.33] - 2014-01-22
  659. ### Added
  660. - added `has()` method to `SVG.Set`
  661. - added `width()` and `height()` as setter and getter methods on all shapes
  662. - added `replace()` method to elements
  663. - added `radius()` method to `SVG.Rect` and `SVG.Ellipse`
  664. - added reference to parent node in defs
  665. ### Changed
  666. - moved sub-pixel offset fix to be an optional method (e.g. `SVG('drawing').fixSubPixelOffset()`)
  667. - merged plotable.js and path.js
  668. ## [v0.32]
  669. ### Added
  670. - added library to [cdnjs](http://cdnjs.com)
  671. <!-- Headings above link to the releases listed here -->
  672. [3.2.0]: https://github.com/svgdotjs/svg.js/releases/tag/3.2.0
  673. [3.1.2]: https://github.com/svgdotjs/svg.js/releases/tag/3.1.2
  674. [3.1.1]: https://github.com/svgdotjs/svg.js/releases/tag/3.1.1
  675. [3.1.0]: https://github.com/svgdotjs/svg.js/releases/tag/3.1.0
  676. [3.0.16]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.16
  677. [3.0.15]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.15
  678. [3.0.14]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.14
  679. [3.0.13]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.13
  680. [3.0.12]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.12
  681. [3.0.11]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.11
  682. [3.0.10]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.10
  683. [3.0.9]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.9
  684. [3.0.8]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.8
  685. [3.0.7]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.7
  686. [3.0.6]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.6
  687. [3.0.5]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.5
  688. [3.0.4]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.4
  689. [3.0.3]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.3
  690. [3.0.2]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.2
  691. [3.0.1]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.1
  692. [3.0.0]: https://github.com/svgdotjs/svg.js/releases/tag/3.0.0
  693. [2.7.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.7.1
  694. [2.7.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.7.0
  695. [2.6.6]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.6
  696. [2.6.5]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.5
  697. [2.6.4]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.4
  698. [2.6.3]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.3
  699. [2.6.2]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.2
  700. [2.6.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.1
  701. [2.6.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.6.0
  702. [2.5.3]: https://github.com/svgdotjs/svg.js/releases/tag/2.5.3
  703. [2.5.2]: https://github.com/svgdotjs/svg.js/releases/tag/2.5.2
  704. [2.5.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.5.1
  705. [2.5.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.5.0
  706. [2.4.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.4.0
  707. [2.3.7]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.7
  708. [2.3.6]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.6
  709. [2.3.5]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.5
  710. [2.3.4]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.4
  711. [2.3.3]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.3
  712. [2.3.2]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.2
  713. [2.3.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.1
  714. [2.3.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.3.0
  715. [2.2.5]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.5
  716. [2.2.4]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.4
  717. [2.2.3]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.3
  718. [2.2.2]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.2
  719. [2.2.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.1
  720. [2.2.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.2.0
  721. [2.1.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.1.1
  722. [2.1.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.1.0
  723. [2.0.2]: https://github.com/svgdotjs/svg.js/releases/tag/2.0.2
  724. [2.0.1]: https://github.com/svgdotjs/svg.js/releases/tag/2.0.1
  725. [2.0.0]: https://github.com/svgdotjs/svg.js/releases/tag/2.0.0
  726. [1.0.0-rc.9]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.9
  727. [1.0.0-rc.8]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.8
  728. [1.0.0-rc.7]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.7
  729. [1.0.0-rc.6]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.6
  730. [1.0.0-rc.5]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.5
  731. [1.0.0-rc.4]: https://github.com/svgdotjs/svg.js/releases/tag/1.0.0-rc.4
  732. [v1.0rc3]: https://github.com/svgdotjs/svg.js/releases/tag/1.0rc3
  733. [v1.0rc2]: https://github.com/svgdotjs/svg.js/releases/tag/1.0rc2
  734. [v1.0rc1]: https://github.com/svgdotjs/svg.js/releases/tag/1.0rc1
  735. [v0.38]: https://github.com/svgdotjs/svg.js/releases/tag/0.38
  736. [v0.37]: https://github.com/svgdotjs/svg.js/releases/tag/0.37
  737. [v0.36]: https://github.com/svgdotjs/svg.js/releases/tag/0.36
  738. [v0.35]: https://github.com/svgdotjs/svg.js/releases/tag/0.35
  739. [v0.34]: https://github.com/svgdotjs/svg.js/releases/tag/0.34
  740. [v0.33]: https://github.com/svgdotjs/svg.js/releases/tag/0.33
  741. [v0.32]: https://github.com/svgdotjs/svg.js/releases/tag/0.32