Changelog
All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines.
3.6.2 (2026-10-21)
Bug Fixes
- lib: autoscroll lists that grow scrollable or register mid-drag (#152) (531a9c0)
- lib: claim the server's rows when vdndVirtualFor hydrates (#153) (4e759b2)
- lib: clamp keyboard targets to the list's live item count (#149) (1b3f249)
- lib: drop a pending press once its draggable is disabled (#148) (2e18d21)
- lib: end a drag whose draggable ID changes mid-drag (#146) (d4583ed)
- lib: keep drag previews out of focus and the accessibility tree (#151) (f8f4606)
- lib: keep the server's row order when vdnd-virtual-scroll hydrates (#145) (8a8104b)
- lib: position and measure vdndVirtualFor rows after their check (#147) (470e1fb)
- lib: skip visibility-hidden droppables in pointer hit-testing (#150) (7932d58)
3.6.1 (2026-10-14)
Bug Fixes
3.6.0 (2026-10-08)
Features
3.5.0 (2026-10-07)
Features
Bug Fixes
- lib: compute scrollBy() and getScrollTop() from the element's live scrollTop (#122) (3622e11)
- lib: count wrapped rows when calculating a plain list's source index (#137) (5113cdd)
- lib: keep a list's scroll position after a drop into it at its bottom (#130) (b7964f5)
- lib: keep a mouse drag going when another button is released (#138) (fbc53c7)
- lib: keep the clone root's own placement out of the drag preview (#124) (9f04d10)
- lib: let a pointer drag start on a button draggable or inside a control (#127) (6d468b7)
- lib: open the placeholder gap and scroll a vdndVirtualFor used directly in vdndScrollable (#129) (adb78fa)
- lib: report the source list in dragEnd of a draggable destroyed mid-drag (#121) (7bb5b9e)
- lib: reveal the keyboard placeholder again after it renders at a list's end (4c7cfda), closes #116
- lib: skip hidden droppables in keyboard cross-list navigation (b8bf247), closes #113
- lib: snap a constrained drop to the list edge only once the list is scrolled there (#128) (deee3aa)
3.4.0 (2026-10-01)
Features
Performance
3.3.0 (2026-09-30)
Features
Bug Fixes
Performance
- lib: cut drag-start, per-drop and per-frame work in lists and hit-testing (#108) (afe8bc4)
- lib: find droppables through a registry instead of document queries (#88) (1e613e7)
- lib: forward sortable list outputs without template listeners (#100) (f85a49e)
- lib: make the draggable touchstart listener passive when a drag delay is set (#107) (858bf29)
- lib: move the drag preview in the pointer's animation frame (#101) (4e501d9)
- lib: render only the virtual rows whose context changed (#99) (3325a36)
- lib: stop re-rendering every vdnd-virtual-scroll row on placeholder moves (#105) (273081a)
- lib: update HeightCache offsets only as far as a lookup needs (#86) (dbb7632)
3.2.1 (2026-09-27)
Bug Fixes
- lib: account for contentOffset in vdnd-virtual-viewport drops (a46d3d3)
- lib: allow destroying draggables and droppables before their first render (b42c738)
- lib: cancel a pending drag-delay timer when a new press starts (909bbff)
- lib: cancel a pointer drag when the window loses focus (#77) (19463f2)
- lib: cancel a touch drag when the system cancels the touch (#85) (9c4f2b0)
- lib: deprecate placeholderId, which is always END_OF_LIST (#82) (84c1a8b)
- lib: don't let a second drag replace the one in progress (#76) (73d90cb)
- lib: end the scheduler frame when a participant stops the drag (2a1c5b4)
- lib: find the droppable and draggable parents at any depth (#79) (84501ef)
- lib: follow the finger that started a touch drag (#78) (bc5ec2d)
- lib: keep radio buttons checked when the preview clones their row (6b4a31f)
- lib: leave keyboard-drag keys to the item being dragged (#84) (12c37c6)
- lib: let no-drag cover the elements inside it (#75) (ac97757)
- lib: let Space reach form controls inside a draggable (d786f82)
- lib: make reorderItems ignore a missing source item (6f093bd)
- lib: read the source list untracked in moveItem (a42f34e)
- lib: render and tear down on the server without browser globals (#81) (0ef9567)
- lib: render the rows in view in vdnd-virtual-viewport with a large contentOffset (7004826)
- lib: start and stop measuring rows when dynamicItemHeight changes (#80) (4090360)
- lib: store the offset the browser applied in VirtualScrollContainer.scrollTo (ea3bc1a)
3.2.0 (2026-09-25)
3.2.0-alpha.2 (2026-09-25)
Features
3.2.0-alpha.1 (2026-09-24)
Features
Bug Fixes
- lib: end same-list keyboard navigation at the list's last slot (a5191de)
- lib: keep the placeholder in view during keyboard drag autoscroll (29c0c42)
- lib: scroll to the drop position on each keyboard move and fix the focus fallback (abd1760)
3.2.0-alpha.0 (2026-09-24)
Features
3.1.3 (2026-07-18)
Bug Fixes
- demo: remove Ionic md elevation shadow from task page headers (e22ee19)
- e2e: wait for stable demo layout (#65) (74e4242)
- gate perf by measuring base and head on the same runner (#63) (62d314f)
- lib: exclude disabled droppables from drag-time candidate sets (#51) (0efb3ec)
- lib: fall through exhausted nested containers in autoscroll (#60) (38eee56)
- lib: make autoscroll registration resilient to post-init layout changes (#61) (c71c51c)
- lib: normalize keyboard drag end index (#45) (4f54b8f)
- lib: preserve source index across rapid cross-list drags (#44) (6695753)
- lib: refresh drag hit-test candidates on mid-drag DOM changes (#58) (b9d21d7)
- lib: route keyboard cross-list count through DragIndexCalculatorService (#59) (a2bd956)
- make performance regression gate reliable (#52) (061828c)
Performance
3.1.2 (2026-07-07)
Bug Fixes
- lib: refresh viewport transforms on drag exclusion changes (2057a38)
- lib: safely resolve consumer IDs in attribute lookups (ab2ea17)
- lib: sync auto-scroll registration with signal inputs (c084a32)
3.1.1 (2026-06-24)
Performance
3.1.0 (2026-06-23)
Features
- lib: allow Angular 22 in peer dependency range (40db308)
3.0.1 (2026-03-05)
Performance
- lib: cache droppable metadata during active drag (53f9c59)
- lib: optimize hot-path services for active drag (6be81b4)
3.0.0 (2026-02-20)
⚠ BREAKING CHANGES
- lib: dragMove, dragReadyChange, dragEnter, dragLeave, dragOver, visibleRangeChange, and scrollPositionChange outputs have been removed along with their associated event types. Use DragStateService signals for equivalent reactive state, and the vdnd-drag-pending CSS class instead of dragReadyChange.
Features
- lib: remove 7 unused outputs from public API (ff680d8)
Bug Fixes
- lib: clamp constrainToContainer to scroll viewport and fix flaky E2E reorder (2ac1bd6)
2.0.0 (2026-02-17)
2.0.0-alpha.1 (2026-02-14)
Performance
- lib: split high-frequency signals from monolithic drag state (18d642f)
2.0.0-alpha.0 (2026-02-13)
⚠ BREAKING CHANGES
- lib: VirtualContentComponent template restructured — virtual
area is now wrapped in a
.vdnd-virtual-areadiv. Consumers usingcontentOffsetare unaffected (it remains as an escape hatch). - lib:
totalItemsinput removed fromVirtualViewportComponentandVirtualContentComponent. The total item count is now derived automatically from the childVirtualForDirectivevia the shared strategy.
DX improvements:
*vdndVirtualForinheritsitemHeight,dynamicItemHeight, anddroppableIdfrom parent viewport/droppable when inside one — onlytrackByremains required on the directiveVirtualSortableListComponent.groupis now optional — inherits from parentvdndGroupdirectiveFixedHeightStrategy.setItemKeys()now bumpsversionon count change, enabling strategy-derived total heightVirtualScrollStrategy.getItemCount()is now a required interface method
Migration: Remove [totalItems] bindings from vdnd-virtual-viewport and
vdnd-virtual-content. Remove redundant itemHeight, dynamicItemHeight,
and droppableId from *vdndVirtualFor when inside a viewport component.
Features
- lib: auto-measure projected header height via ContentHeaderDirective (b94b634)
- lib: eliminate data duplication in Pattern B consumer API (2745934)
Bug Fixes
- lib: unify constrained mode probe logic with capped center (9e20230)
1.3.0-alpha.6 (2026-02-13)
Bug Fixes
- lib: dynamic height drift cases (916d97e)
1.3.0-alpha.5 (2026-02-13)
Bug Fixes
- lib: harden dynamic height strategy performance and correctness (9caac28)
- lib: use direction-aware probing for dynamic drag index (b6346d1)
1.3.0-alpha.4 (2026-02-13)
Bug Fixes
- lib: allow constrained dynamic drag to reach list edges (38519b2)
1.3.0-alpha.3 (2026-02-13)
Features
- lib: warn of trackBy duplicates (087f77d)
1.3.0-alpha.2 (2026-02-13)
Features
- lib: add dynamic item height support for virtual scroll (#15) (a7479e3)
- lib: constrain drag by container (#16) (2fe954f)
Bug Fixes
- lib: don't print warnings in prod mode (d987c96)
- lib: stabilize same-list dynamic placeholder index before exclusion sync (fe6063d)
1.3.0-alpha.1 (2026-02-12)
Bug Fixes
1.3.0-alpha.0 (2026-02-11)
Features
- lib: add dynamic item height support for virtual scroll (5678c3c)
Bug Fixes
- lib: don't print warnings in prod mode (d987c96)
- lib: fix scroll with drag in dynamic height (871f9b4)
1.2.3 (2026-02-06)
Bug Fixes
- lib: teleport drag preview to body overlay to fix CSS transform offset (979c443)
1.2.2 (2026-01-24)
Performance
1.2.1 (2026-01-23)
Bug Fixes
Performance
1.2.0 (2026-01-23)
Features
1.1.2 (2026-01-14)
Performance
- lib: optimize change detection and reduce allocations during drag (1b8a579)
1.1.1 (2026-01-08)
1.1.0 (2026-01-08)
Features
- lib: add a11y support (3ebccec)