v16.0.0
What's Changed
- feat:
scrollViewport
directive can be a descent child, not necessarily a direct child of<ng-scrollbar externalViewport>
. - feat: Add
start
,end
,right
,bottom
andcenter
options toscrollToElement
(supports RTL), closes #637. - feat: Add
syncSpacer
directive that is applied on<ng-scrollbar externalViewport>
component to sync spacer element with content dimension changes. - fix:
ResizeObserver
loop completed with undelivered notifications, closes #650. - enhance: Improve scrollbar rendering speed that uses
externalViewport
such as integrating with 3rd party library. - enhance: Use the shared resize observer from the CDK to do the necessary calculation.
- enhance:
asyncDetection
Use the content observer service from the CDK to detect viewport and content wrapper elements. - enhance: use
--scrollbar-thumb-hover-color
not only when hovered but also when active. - enhance:
track
andthumb
controls uses more accurate measures usinggetBoundingClientRect
instead of direct size properties. - refactor: Switch to
InputSignal
instead of standards inputs across components. - refactor: Use effects instead of
ngOnInit
to initialize the scrollbar component. - refactor: Remove
scrollViewport
directive fromng-scrollbar
hostDirectives because it's redundant. - refactor: the
TrackAdapter
now uses viewport & content dimension signals to update the track size instead ofResizeObserver
events.
Breaking changes
- Minimum compatibility is Angular v17.3.0
- The directive
cdkVirtualScrollViewport
no longer acceptsauto
value, instead usesyncSpacer
- Before
<ng-scrollbar externalViewport cdkVirtualScrollViewport="auto">
- After
<ng-scrollbar externalViewport cdkVirtualScrollViewport syncSpacer>
- Before
Full Changelog: v15.1.3...v16.0.0