UNPKG

4.28 kBTypeScriptView Raw
1declare module '@ember/-internals/glimmer/lib/renderer' {
2 import type { InternalOwner } from '@ember/-internals/owner';
3 import type {
4 Bounds,
5 CompileTimeCompilationContext,
6 Cursor,
7 DebugRenderTree,
8 DynamicScope as GlimmerDynamicScope,
9 ElementBuilder,
10 Environment,
11 RenderResult,
12 RuntimeContext,
13 Template,
14 TemplateFactory,
15 } from '@glimmer/interfaces';
16 import type { Nullable } from '@ember/-internals/utility-types';
17 import type { Reference } from '@glimmer/reference';
18 import type { CurriedValue } from '@glimmer/runtime';
19 import { clientBuilder } from '@glimmer/runtime';
20 import type { SimpleDocument, SimpleElement, SimpleNode } from '@simple-dom/interface';
21 import RSVP from 'rsvp';
22 import type Component from '@ember/-internals/glimmer/lib/component';
23 import { BOUNDS } from '@ember/-internals/glimmer/lib/component-managers/curly';
24 import ResolverImpl from '@ember/-internals/glimmer/lib/resolver';
25 import type { OutletState } from '@ember/-internals/glimmer/lib/utils/outlet';
26 import OutletView from '@ember/-internals/glimmer/lib/views/outlet';
27 export type IBuilder = (env: Environment, cursor: Cursor) => ElementBuilder;
28 export interface View {
29 parentView: Nullable<View>;
30 renderer: Renderer;
31 tagName: string | null;
32 elementId: string | null;
33 isDestroying: boolean;
34 isDestroyed: boolean;
35 [BOUNDS]: Bounds | null;
36 }
37 export class DynamicScope implements GlimmerDynamicScope {
38 view: View | null;
39 outletState: Reference<OutletState | undefined>;
40 constructor(view: View | null, outletState: Reference<OutletState | undefined>);
41 child(): DynamicScope;
42 get(key: 'outletState'): Reference<OutletState | undefined>;
43 set(
44 key: 'outletState',
45 value: Reference<OutletState | undefined>
46 ): Reference<OutletState | undefined>;
47 }
48 class RootState {
49 root: Component | OutletView;
50 runtime: RuntimeContext;
51 id: string;
52 result: RenderResult | undefined;
53 destroyed: boolean;
54 render: () => void;
55 constructor(
56 root: Component | OutletView,
57 runtime: RuntimeContext,
58 context: CompileTimeCompilationContext,
59 owner: InternalOwner,
60 template: Template,
61 self: Reference<unknown>,
62 parentElement: SimpleElement,
63 dynamicScope: DynamicScope,
64 builder: IBuilder
65 );
66 isFor(possibleRoot: unknown): boolean;
67 destroy(): void;
68 }
69 export function _resetRenderers(): void;
70 export function renderSettled(): RSVP.Promise<void>;
71 interface ViewRegistry {
72 [viewId: string]: unknown;
73 }
74 export class Renderer {
75 private _rootTemplate;
76 private _viewRegistry;
77 private _roots;
78 private _removedRoots;
79 private _builder;
80 private _inRenderTransaction;
81 private _owner;
82 private _context;
83 private _runtime;
84 private _lastRevision;
85 private _destroyed;
86 /** @internal */
87 _isInteractive: boolean;
88 readonly _runtimeResolver: ResolverImpl;
89 static create(props: { _viewRegistry: any }): Renderer;
90 constructor(
91 owner: InternalOwner,
92 document: SimpleDocument,
93 env: {
94 isInteractive: boolean;
95 hasDOM: boolean;
96 },
97 rootTemplate: TemplateFactory,
98 viewRegistry: ViewRegistry,
99 builder?: typeof clientBuilder
100 );
101 get debugRenderTree(): DebugRenderTree;
102 appendOutletView(view: OutletView, target: SimpleElement): void;
103 appendTo(view: Component, target: SimpleElement): void;
104 _appendDefinition(
105 root: OutletView | Component,
106 definition: CurriedValue,
107 target: SimpleElement
108 ): void;
109 rerender(): void;
110 register(view: any): void;
111 unregister(view: any): void;
112 remove(view: Component): void;
113 cleanupRootFor(view: unknown): void;
114 destroy(): void;
115 getElement(view: View): Nullable<Element>;
116 getBounds(view: View): {
117 parentElement: SimpleElement;
118 firstNode: SimpleNode;
119 lastNode: SimpleNode;
120 };
121 createElement(tagName: string): SimpleElement;
122 _renderRoot(root: RootState): void;
123 _renderRoots(): void;
124 _renderRootsTransaction(): void;
125 _clearAllRoots(): void;
126 _scheduleRevalidate(): void;
127 _isValid(): boolean;
128 _revalidate(): void;
129 }
130 export {};
131}