forked from wc-catalogue/blaze-elements
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglobal.d.ts
124 lines (96 loc) · 2.79 KB
/
global.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
declare module '*.scss';
declare module '*.css';
declare module '*.json';
// Skate
declare module 'skatejs-web-components';
declare module 'core-js';
// Custom Elements
declare const customElements: CustomElementRegistry;
interface CustomElementRegistry {
define(
name: string, constructor: Function,
options?: ElementDefinitionOptions): void;
get(name: string): any;
whenDefined(name: string): Promise<void>;
}
interface ElementDefinitionOptions {
extends: string;
}
interface ElementCreationOptions {
is: string;
}
interface Window {
customElements: CustomElementRegistry;
}
interface Document {
createElement(name: string, options: ElementCreationOptions): HTMLElement;
}
interface HTMLElement extends OnConnectedCallback, OnDisconnectedCallback, OnAdoptedCallback, OnAttributeChangedCallback {
// // shadow DOM API
// shadowRoot: HTMLElement,
// attachShadow( { mode:string } ): HTMLElement,
// assignedNodes( { flatten }?:{flatten?: boolean} ): NodeList,
// assignedSlot: string|void,
}
interface HasAttributes {
readonly observedAttributes: string[]|void;
}
interface OnConnectedCallback {
connectedCallback(): void;
}
interface OnDisconnectedCallback {
disconnectedCallback(): void;
}
interface OnAdoptedCallback {
adoptedCallback(oldDocument: any, newDocument: any): void;
}
interface OnAttributeChangedCallback {
attributeChangedCallback(name: string, oldValue: any, newValue: any): void;
}
// ShadowDom
interface DocumentOrShadowRoot {
getSelection(): Selection;
elementFromPoint(x: number, y: number): Element | null;
elementsFromPoint(x: number, y: number): Element[];
caretPositionFromPoint(x: number, y: number): CaretPosition | null;
readonly activeElement: Element | null;
readonly styleSheets: StyleSheetList | null;
}
interface Document extends DocumentOrShadowRoot {}
interface ShadowRoot extends DocumentOrShadowRoot {}
interface CaretPosition {}
interface ShadowRoot extends DocumentFragment {
readonly host: Element;
innerHTML: string;
}
interface Element {
attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot;
readonly assignedSlot: HTMLSlotElement | null;
slot: string;
readonly shadowRoot: ShadowRoot | null;
}
interface ShadowRootInit {
mode: ShadowRootMode;
delegatesFocus?: boolean; // default false
}
type ShadowRootMode = "open" | "closed";
interface Text {
readonly assignedSlot: HTMLSlotElement | null;
}
interface HTMLSlotElement extends HTMLElement {
name: string;
assignedNodes(options?: AssignedNodesOptions): Node[];
}
interface AssignedNodesOptions {
flatten?: boolean; // default false
}
interface EventInit {
scoped?: boolean; // default false
}
interface Event {
deepPath(): EventTarget[];
readonly scoped: boolean;
}
interface Document {
createElement(tagName: "slot"): HTMLSlotElement;
}