A lookup source over a reader, the same QueryItemsReader a data source
reads through: search asks for textField contains query (no filter when
query is empty) with the pagination of the page, resolve asks for
valueField in values without pagination (and does not call the reader
for an empty list), valueOf reads valueField. The key type of the
source is the type of valueField.
Paging.Pagination is 1-based and page-based, so a page is
{ page: offset / limit + 1, itemsPerPage: limit, totalItemsCount: 0 }
(the count is unknown): offset must be a multiple of limit, as it is
when a panel always pages by its own limit; otherwise search rejects
with a RangeError, without calling the reader. hasMore
is items.length >= limit: no count reader, at the cost of one empty page
when the total is a multiple of limit. Asking for one item more than
limit would shift the next page, so it is not done.
Signal. The signal is handed to the reader as it is (a fetch cancels
the request), and the call rejects with AbortedException as soon as the
signal is aborted, whatever the reader does with it: a reader ignoring the
signal, like the in-memory one, still behaves.
A lookup source over a reader, the same
QueryItemsReadera data source reads through:searchasks fortextField contains query(no filter whenqueryis empty) with thepaginationof the page,resolveasks forvalueField in valueswithout pagination (and does not call the reader for an empty list),valueOfreadsvalueField. The key type of the source is the type ofvalueField.Paging.
Paginationis 1-based and page-based, so a page is{ page: offset / limit + 1, itemsPerPage: limit, totalItemsCount: 0 }(the count is unknown):offsetmust be a multiple oflimit, as it is when a panel always pages by its ownlimit; otherwisesearchrejects with aRangeError, without calling the reader.hasMoreisitems.length >= limit: no count reader, at the cost of one empty page when the total is a multiple oflimit. Asking for one item more thanlimitwould shift the next page, so it is not done.Signal. The signal is handed to the reader as it is (a
fetchcancels the request), and the call rejects withAbortedExceptionas soon as the signal is aborted, whatever the reader does with it: a reader ignoring the signal, like the in-memory one, still behaves.