rowNodeCache.d.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { RowNode } from "../../entities/rowNode";
  2. import { BeanStub } from "../../context/beanStub";
  3. import { Logger } from "../../logger";
  4. import { RowNodeBlockLoader } from "./rowNodeBlockLoader";
  5. import { AgEvent } from "../../events";
  6. import { NumberSequence } from "../../utils";
  7. import { IRowNodeBlock } from "../../interfaces/iRowNodeBlock";
  8. import { RowRenderer } from "../../rendering/rowRenderer";
  9. export interface RowNodeCacheParams {
  10. initialRowCount: number;
  11. blockSize?: number;
  12. overflowSize: number;
  13. sortModel: any;
  14. filterModel: any;
  15. maxBlocksInCache?: number;
  16. rowHeight: number;
  17. lastAccessedSequence: NumberSequence;
  18. maxConcurrentRequests?: number;
  19. rowNodeBlockLoader?: RowNodeBlockLoader;
  20. dynamicRowHeight: boolean;
  21. }
  22. export interface CacheUpdatedEvent extends AgEvent {
  23. }
  24. export declare abstract class RowNodeCache<T extends IRowNodeBlock, P extends RowNodeCacheParams> extends BeanStub {
  25. static EVENT_CACHE_UPDATED: string;
  26. private static MAX_EMPTY_BLOCKS_TO_KEEP;
  27. private virtualRowCount;
  28. private maxRowFound;
  29. protected rowRenderer: RowRenderer;
  30. protected cacheParams: P;
  31. private active;
  32. blocks: {
  33. [blockNumber: string]: T;
  34. };
  35. private blockCount;
  36. protected logger: Logger;
  37. abstract getRow(rowIndex: number): RowNode | null;
  38. protected constructor(cacheParams: P);
  39. private destroyAllBlocks;
  40. protected init(): void;
  41. isActive(): boolean;
  42. getVirtualRowCount(): number;
  43. hack_setVirtualRowCount(virtualRowCount: number): void;
  44. isMaxRowFound(): boolean;
  45. protected onPageLoaded(event: any): void;
  46. private purgeBlocksIfNeeded;
  47. private isBlockCurrentlyDisplayed;
  48. protected postCreateBlock(newBlock: T): void;
  49. protected removeBlockFromCache(blockToRemove: T): void;
  50. protected checkBlockToLoad(): void;
  51. protected checkVirtualRowCount(block: T, lastRow: any): void;
  52. setVirtualRowCount(rowCount: number, maxRowFound?: boolean): void;
  53. forEachNodeDeep(callback: (rowNode: RowNode, index: number) => void, sequence?: NumberSequence): void;
  54. forEachBlockInOrder(callback: (block: T, id: number) => void): void;
  55. protected forEachBlockInReverseOrder(callback: (block: T, id: number) => void): void;
  56. private forEachBlockId;
  57. protected getBlockIdsSorted(): number[];
  58. protected getBlock(blockId: string | number): T;
  59. protected setBlock(id: number, block: T): void;
  60. protected destroyBlock(block: T): void;
  61. protected onCacheUpdated(): void;
  62. private destroyAllBlocksPastVirtualRowCount;
  63. purgeCache(): void;
  64. getRowNodesInRange(firstInRange: RowNode, lastInRange: RowNode): RowNode[];
  65. }