Skip to content

Releases: haltu/muuri

v0.9.5

09 Jul 19:11
1911552
Compare
Choose a tag to compare

Release PR with details: #487

v0.9.4

11 May 19:21
Compare
Choose a tag to compare

Fix #467

v0.9.3

14 Aug 14:42
Compare
Choose a tag to compare

Fixed a bug where layoutEnd event was not emitted in some cases (e.g. when an item was being dragged while the layout happened). This bug was introduced in v0.9.0 when the layout system was fully refactored to accept async layout process too.

v0.9.2

12 Aug 20:42
Compare
Choose a tag to compare

Fixes #406 , #402 , #403 and some layout issues where items would be overlapping.

v0.9.1

02 Jul 16:55
Compare
Choose a tag to compare

Fix #397

v0.9.0

14 Jun 21:01
Compare
Choose a tag to compare

The milestone: https://github.com/haltu/muuri/milestone/7

A huge step forward for Muuri. There are so many breaking changes that you really should consider this as a new major version (Muuri still needs to get to 1.0.0 version to start bumping the major versions).

In a quick summary:

  • A lot of bug fixes all around the place 🐞
  • Quite significant performance optimizations ⚡
  • Autoscrolling while dragging ↕️
  • Asynchronous layout calculations 🧵
  • Typescript typings 👕

Unfortunately, there are also some breaking changes 😢 :

  • The item element display style is no longer set to block by Muuri automatically when item is shown. This means that you can use whatever display style in your CSS for the item elements. When item is hidden its display property is still set to none by Muuri.
  • There was a critical bug in the default layout algorithm, which was essentially a rounding issue. After fixing it there should be no need to use layout.rounding anymore (at least in most cases). This is why layout.rounding is now by default disabled. The previous layout.rounding rounded layout's width and height as well as all the item dimensions with Math.round(). The new layout.rounding only rounds item dimensions and does it with a bit more involved algorithm: Math.floor(Math.round(widthOrHeight * 1000) / 10) / 100.
  • layout.onResize option's default value changed from 100 to 150.
  • dragStartPredicate.handle removed and replaced with a new dragHandle option, which works a bit differently (but in a good way). Previously there was no way to set the drag related event listeners to another element, even if you defined dragStartPredicate.handle. However, with dragHandle the drag related event listeners are now bound to the drag handle element so it gets much easier to to e.g . disable drag by hiding the handle via CSS.
  • dragAxis option default value changed from null to "xy". This actually should not break anything, but more of a "heads up" thing.
  • dragReleaseDuration -> dragRelease.duration.
  • dragReleaseEasing -> dragRelease.easing.
  • dragPlaceholder.easing and dragPlaceholder.duration removed. Placeholder now uses the layoutEasing and layoutDuration options' values always, which covers probably most of the use cases.
  • grid.refreshItems() and grid.refreshSortData() now requires the first optional argument to be an array of Muuri.Item instances.
  • grid.remove(), grid.show() and grid.hide() requires the first argument to be an array of Muuri.Item instances.
  • As Muuri now supports asynchronous layouts we utilize the new feature by spinning up two web workers for layout calculations by default. Building support for async layouts required some heavy-handed internal refactoring, but surprisingly few public API changes. The first thing you have to keep in mind from now on is that the layout might or might not be computed asynchronously, so when upgrading to this version make sure to review any code that assumes the layout to happen synchronously. Related to this change there were breaking changes in layout function API.

v0.8.0

15 Jul 09:44
Compare
Choose a tag to compare

The milestone: https://github.com/haltu/muuri/milestone/2?closed=1

This version is a major refactoring as Hammer.js is fully deprecated and replaced with an internal drag system. The internal system was based heavily on Hammer.js API so it's not that far off functionality-wise and migration from previous version should be pretty easy.

This version also contains a few new features including drag placeholder and improved drag sort heuristics which make the drag sorting a much more nicer experience.

Additionally a lot of minor refactoring and performance/memory optimizations were carried out without any effects to the public API.

New features:

Breaking changes:

v0.7.1

29 Sep 21:23
Compare
Choose a tag to compare

Fixes incorrect UMD pattern: #204 (comment)

v0.7.0

20 Sep 19:32
Compare
Choose a tag to compare

Fixes:

  • #207
  • #204
  • Muuri Emitter had an issue with the queue not always being reset correctly, which is fixed now

v0.6.3

07 Aug 08:56
Compare
Choose a tag to compare
  • Fixes #198
  • Minor performance optimizations