-
Notifications
You must be signed in to change notification settings - Fork 1
/
lit-mvvm.d.ts
129 lines (103 loc) · 4.01 KB
/
lit-mvvm.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import { CSSResultGroup, CSSResultOrNative } from '@lit/reactive-element/css-tag';
export * from '@lit/reactive-element/css-tag';
export * from 'lit-html';
declare const finalized = 'finalized';
export declare type Initializer = (element: LitBaseElement) => void;
export declare class LitBaseElement extends HTMLElement {
static addInitializer(initializer: Initializer): void;
static _initializers?: Initializer[];
protected static [finalized]: boolean;
/**
* Memoized list of all element styles.
* Created lazily on user subclasses when finalizing the class.
* @nocollapse
*/
static elementStyles?: Array<CSSResultOrNative>;
/**
* Array of styles to apply to the element. The styles should be defined
* using the [[`css`]] tag function or via constructible stylesheets.
*/
static styles?: CSSResultGroup;
/**
* Returns a list of attributes whose changes are observed.
*/
static get observedAttributes(): string[];
/**
* Sets up element styling, and ensures any superclasses are also finalized. Returns true if
* the element was finalized.
*/
protected static finalize(): boolean;
/**
* Options used when calling `attachShadow`. Set this property to customize
* the options for the shadowRoot; for example, to create a closed
* shadowRoot: `{mode: 'closed'}`.
*
* Note, these options are used in `createRenderRoot`. If this method
* is customized, options should be respected if possible.
* @nocollapse
*/
static shadowRootOptions: ShadowRootInit;
/**
* Takes the styles the user supplied via the `static styles` property and
* returns the array of styles to apply to the element.
* Override this method to integrate into a style management system.
*
* Styles are deduplicated preserving the _last_ instance in the list. This
* is a performance optimization to avoid duplicated styles that can occur
* especially when composing via subclassing. The last item is kept to try
* to preserve the cascade order with the assumption that it's most important
* that last added styles override previous styles.
*/
protected static finalizeStyles(styles?: CSSResultGroup): Array<CSSResultOrNative>;
/**
* Node or ShadowRoot into which element DOM should be rendered. Defaults
* to an open shadowRoot.
*/
readonly renderRoot: HTMLElement | ShadowRoot;
constructor();
/**
* Returns the node into which the element should render and by default
* creates and returns an open shadowRoot. Implement to customize where the
* element's DOM is rendered. For example, to render into the element's
* childNodes, return `this`.
*
* @return Returns a node into which to render.
*/
protected createRenderRoot(): Element | ShadowRoot;
/**
* On first connection, creates the element's renderRoot, sets up
* element styling, and enables updating.
*/
connectedCallback(): void;
/**
* Allows for `super.disconnectedCallback()` in extensions while
* reserving the possibility of making non-breaking feature additions
* when disconnecting at some point in the future.
*/
disconnectedCallback(): void;
// this handler must be defined to trigger the necessary call to get observedAttributes() !!!
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
protected _render(): void;
protected _initialRender();
protected _finalRender();
protected shouldRender(): boolean;
protected beforeFirstRender(): void;
protected firstRendered(): void;
protected rendered(): void;
}
export declare class LitMvvmElement<Observable extends object> extends LitBaseElement {
protected _observer: Function;
model: Observable;
scheduler: any;
render(): unknown;
schedule(callback: () => void): void;
}
export declare class BatchScheduler {
constructor(interval: number);
protected _runReactions(): number;
protected readonly reactions: Set<Function>;
readonly interval: number;
readonly lastRendered: number;
add(reaction: Function): void;
delete(reaction: Function): boolean;
}