UNPKG

2.58 kBTypeScriptView Raw
1import { Bounds, ComponentDefinition, InternalComponentCapability, ComponentDefinitionState, ComponentInstanceState, InternalComponentManager, Dict, DynamicScope, ElementOperations, Option, ProgramSymbolTable, ScopeSlot, WithUpdateHook, ModifierInstance, ComponentInstanceWithCreate, UpdatingOpcode } from '@glimmer/interfaces';
2import { Reference } from '@glimmer/reference';
3import { UpdatingVM } from '../../vm';
4import { InternalVM } from '../../vm/append';
5/**
6 * The VM creates a new ComponentInstance data structure for every component
7 * invocation it encounters.
8 *
9 * Similar to how a ComponentDefinition contains state about all components of a
10 * particular type, a ComponentInstance contains state specific to a particular
11 * instance of a component type. It also contains a pointer back to its
12 * component type's ComponentDefinition.
13 */
14export interface InitialComponentInstance {
15 definition: ComponentDefinition;
16 manager: Option<InternalComponentManager>;
17 capabilities: Option<InternalComponentCapability>;
18 state: null;
19 handle: Option<number>;
20 table: Option<ProgramSymbolTable>;
21 lookup: Option<Dict<ScopeSlot>>;
22}
23export interface PopulatedComponentInstance {
24 definition: ComponentDefinition;
25 manager: InternalComponentManager;
26 capabilities: InternalComponentCapability;
27 state: null;
28 handle: number;
29 table: Option<ProgramSymbolTable>;
30 lookup: Option<Dict<ScopeSlot>>;
31}
32export interface PartialComponentDefinition {
33 state: Option<ComponentDefinitionState>;
34 manager: InternalComponentManager;
35}
36export declare class ComponentElementOperations implements ElementOperations {
37 private attributes;
38 private classes;
39 private modifiers;
40 setAttribute(name: string, value: Reference<unknown>, trusting: boolean, namespace: Option<string>): void;
41 setStaticAttribute(name: string, value: string, namespace: Option<string>): void;
42 addModifier(modifier: ModifierInstance): void;
43 flush(vm: InternalVM): ModifierInstance[];
44}
45export declare class UpdateComponentOpcode implements UpdatingOpcode {
46 private component;
47 private manager;
48 private dynamicScope;
49 constructor(component: ComponentInstanceState, manager: WithUpdateHook, dynamicScope: Option<DynamicScope>);
50 evaluate(_vm: UpdatingVM): void;
51}
52export declare class DidUpdateLayoutOpcode implements UpdatingOpcode {
53 private component;
54 private bounds;
55 constructor(component: ComponentInstanceWithCreate, bounds: Bounds);
56 evaluate(vm: UpdatingVM): void;
57}
58//# sourceMappingURL=component.d.ts.map
\No newline at end of file