Releases: haltu/muuri
v0.9.5
v0.9.4
v0.9.3
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
v0.9.1
v0.9.0
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 toblock
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 itsdisplay
property is still set tonone
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 whylayout.rounding
is now by default disabled. The previouslayout.rounding
rounded layout's width and height as well as all the item dimensions withMath.round()
. The newlayout.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 from100
to150
.dragStartPredicate.handle
removed and replaced with a newdragHandle
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 defineddragStartPredicate.handle
. However, withdragHandle
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 fromnull
to"xy"
. This actually should not break anything, but more of a "heads up" thing.dragReleaseDuration
->dragRelease.duration
.dragReleaseEasing
->dragRelease.easing
.dragPlaceholder.easing
anddragPlaceholder.duration
removed. Placeholder now uses thelayoutEasing
andlayoutDuration
options' values always, which covers probably most of the use cases.grid.refreshItems()
andgrid.refreshSortData()
now requires the first optional argument to be an array ofMuuri.Item
instances.grid.remove()
,grid.show()
andgrid.hide()
requires the first argument to be an array ofMuuri.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
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:
- Hammer.js deprecated in favor of built-in touch/pointer/mouse event delegation system: https://github.com/haltu/muuri#dragcssprops-
- Drag sort heuristics: https://github.com/haltu/muuri#dragsortheuristics-
- Drag placeholder: https://github.com/haltu/muuri#dragplaceholder-
Breaking changes:
dragHammerSettings
->dragCssProps
dragSortInterval
->dragSortHeuristics.sortInterval
v0.7.1
Fixes incorrect UMD pattern: #204 (comment)