feat(picklist): support lazy loading and virtual scroll on source/target lists - #1412
Open
rene-schakmann wants to merge 2 commits into
Open
feat(picklist): support lazy loading and virtual scroll on source/target lists#1412rene-schakmann wants to merge 2 commits into
rene-schakmann wants to merge 2 commits into
Conversation
added 2 commits
July 27, 2026 21:23
…get lists Adds sourceLazy/targetLazy, sourceVirtualScroll/targetVirtualScroll (+ item size and options) inputs and onSourceLazyLoad/onTargetLazyLoad outputs, wired through to the existing Listbox/Scroller lazy-load machinery so huge datasets can be fetched in chunks instead of all at once. Closes openng-org#940
…zy demo sourceStyle/targetStyle need object bindings, not plain string attributes, and virtual-scroll placeholder rows must be objects (not undefined) so Listbox's option.optionGroup access doesn't throw before data arrives.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #940.
Adds lazy-loading / virtual-scroll support to
PickList, mirroring the patternListboxalready uses via itsScrollerintegration, so huge source (and optionally target) datasets can be fetched in chunks on scroll instead of all at once.sourceLazy/targetLazy— enable lazy interaction mode per list.sourceVirtualScroll/targetVirtualScroll(+...VirtualScrollItemSize,...VirtualScrollOptions) — render either list through the existingScroller.onSourceLazyLoad/onTargetLazyLoad— emitted with{ first, last }so the consumer can fetch and patch in the next chunk.apps/docs/doc/picklist/lazy-doc.ts) simulating a backend fetch for a 10k-item source list.Test plan
ng test optimus-ui --include='**/picklist/**'— 79/79 passing, including 6 new tests covering the lazy/virtualScroll wiring (default values, per-list forwarding to the innerListbox, source/target independence, andonSourceLazyLoad/onTargetLazyLoademission).Co-authored by Claude (Anthropic) — implementation, tests, and docs demo were written by Claude Code under human review.