UNPKG

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