This commit introduces a hook named "useVirtual" which allows to filter a given list of objects and return only those that are visible in the current viewport. This effectively allows to use virtualization in lists. The hook will trim down the list of objects it received to those that fit in the current viewport (with a fixed margin above and under to allow smoother transitions on scroll). The following requirements must be met to use this feature: - the scrollable area has a fixed height - along with the list of items, a "getItemHeight" getter must be provided to determine the actual height of each individual item; - the items are rendered with a proper offset inside the scrollable area. This can be achieved e.g. with a css grid or an absolute positioning. Part-of: odoo/odoo#110819 Co-authored-by: Bruno Boi <boi@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>