/** * @class Ext.data.virtual.PageMap * @extend Ext.Base * * This class manages a sparse collection of `Page` objects keyed by their page number. * Pages are lazily created on request by the `getPage` method. * * When pages are locked, they are scheduled to be loaded. The loading is prioritized by * the type of lock held on the page. Pages with "active" locks are loaded first while * those with "prefetch" locks are loaded only when no "active" locked pages are in the * queue. * * The value of the `concurrentLoading` config controls the maximum number of simultaneously * pending, page load requests. * * @private * @since 6.5.0 */ /** * @cfg {Number} [cacheSize=10] * The number of pages to retain in the `cache`. * @accessor */ /** * @cfg {Number} [concurrentLoading=1] * The maximum number of simultaneous load requests that should be made to the * server for pages. * @accessor */ /** * @cfg pageCount * The number of pages in the data set. * @accessor */ /** * @property {Object} byId * A map of records by their `idProperty`. */ /** * @property {Object} byInternalId * A map of records by their `internalId`. */ /** * @property {Ext.data.virtual.Page[]} cache * The array of unlocked pages with the oldest at the front and the newest (most * recently unlocked) page at the end. * @readonly */ /** * @property {Object} indexMap * A map of record indices by their `internalId`. */ /** * @property {Object} pages * The sparse collection of `Page` objects keyed by their page number. * @readonly */ /** * @property {Ext.data.virtual.Page[]} loading * The array of currently loading pages. */ /** * @property {Object} loadQueues * A collection of loading queues keyed by the lock state. * @property {Ext.data.virtual.Page[]} loadQueues.active The queue of pages to * load that have an "active" lock state. * @property {Ext.data.virtual.Page[]} loadQueues.prefetch The queue of pages to * load that have a "prefetch" lock state. */