LayoutContext.d.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import type { FragmentResultFactory } from './FragmentResult';
  2. import type { LayoutChildrenFactory } from './LayoutChildren';
  3. import type { LayoutFragmentFactory } from './LayoutFragment';
  4. import type { LayoutWorkTask } from './LayoutWorkTask';
  5. import type { ContextId, LayoutTaskType } from './types';
  6. export interface LayoutContextFactory {
  7. (options: {
  8. mode: LayoutTaskType;
  9. }): LayoutContext;
  10. }
  11. export interface LayoutContextOptions {
  12. mode: LayoutTaskType;
  13. layoutChildrenFactory: LayoutChildrenFactory;
  14. fragmentResultFactory: FragmentResultFactory;
  15. layoutFragmentFactory: LayoutFragmentFactory;
  16. }
  17. /**
  18. * 每次layout 有单独的 context
  19. */
  20. export declare class LayoutContext {
  21. protected readonly options: LayoutContextOptions;
  22. contextId: ContextId;
  23. workQueue: LayoutWorkTask[];
  24. mode: LayoutTaskType;
  25. layoutChildrenFactory: LayoutChildrenFactory;
  26. fragmentResultFactory: FragmentResultFactory;
  27. layoutFragmentFactory: LayoutFragmentFactory;
  28. constructor(options: LayoutContextOptions);
  29. appendWorkTask(work: LayoutWorkTask): void;
  30. clearWorkQueue(): void;
  31. }
  32. //# sourceMappingURL=LayoutContext.d.ts.map