Skip to content

Commit 1ae123b

Browse files
authored
Merge pull request #496 from saschanaz/interactive
Adds HTML scripts/custom elements types
2 parents 60070c2 + 982ecc0 commit 1ae123b

11 files changed

+141
-189
lines changed

baselines/dom.generated.d.ts

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ interface AssertionOptions {
7171
timeoutSeconds?: number;
7272
}
7373

74+
interface AssignedNodesOptions {
75+
flatten?: boolean;
76+
}
77+
7478
interface AudioBufferOptions {
7579
length: number;
7680
numberOfChannels?: number;
@@ -374,6 +378,10 @@ interface EffectTiming {
374378
iterations?: number;
375379
}
376380

381+
interface ElementDefinitionOptions {
382+
extends?: string;
383+
}
384+
377385
interface ErrorEventInit extends EventInit {
378386
colno?: number;
379387
error?: any;
@@ -2122,10 +2130,6 @@ declare var ApplicationCache: {
21222130
readonly UPDATEREADY: number;
21232131
};
21242132

2125-
interface AssignedNodesOptions {
2126-
flatten?: boolean;
2127-
}
2128-
21292133
interface Attr extends Node {
21302134
readonly name: string;
21312135
readonly ownerElement: Element | null;
@@ -3504,9 +3508,15 @@ declare var CryptoKeyPair: {
35043508
interface CustomElementRegistry {
35053509
define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;
35063510
get(name: string): any;
3507-
whenDefined(name: string): PromiseLike<void>;
3511+
upgrade(root: Node): void;
3512+
whenDefined(name: string): Promise<void>;
35083513
}
35093514

3515+
declare var CustomElementRegistry: {
3516+
prototype: CustomElementRegistry;
3517+
new(): CustomElementRegistry;
3518+
};
3519+
35103520
interface CustomEvent<T = any> extends Event {
35113521
readonly detail: T;
35123522
initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: T): void;
@@ -5155,10 +5165,6 @@ interface ElementCreationOptions {
51555165
is?: string;
51565166
}
51575167

5158-
interface ElementDefinitionOptions {
5159-
extends: string;
5160-
}
5161-
51625168
interface ElementTraversal {
51635169
readonly childElementCount: number;
51645170
readonly firstElementChild: Element | null;
@@ -7868,6 +7874,7 @@ interface HTMLScriptElement extends HTMLElement {
78687874
htmlFor: string;
78697875
integrity: string;
78707876
noModule: boolean;
7877+
referrerPolicy: string;
78717878
/**
78727879
* Retrieves the URL to an external file that contains the source code or data.
78737880
*/
@@ -7996,13 +8003,19 @@ declare var HTMLSelectElement: {
79968003

79978004
interface HTMLSlotElement extends HTMLElement {
79988005
name: string;
8006+
assignedElements(options?: AssignedNodesOptions): Element[];
79998007
assignedNodes(options?: AssignedNodesOptions): Node[];
80008008
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
80018009
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
80028010
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
80038011
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
80048012
}
80058013

8014+
declare var HTMLSlotElement: {
8015+
prototype: HTMLSlotElement;
8016+
new(): HTMLSlotElement;
8017+
};
8018+
80068019
interface HTMLSourceElement extends HTMLElement {
80078020
/**
80088021
* Gets or sets the intended media type of the media source.
@@ -8064,18 +8077,6 @@ declare var HTMLStyleElement: {
80648077
new(): HTMLStyleElement;
80658078
};
80668079

8067-
interface HTMLSummaryElement extends HTMLElement {
8068-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSummaryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
8069-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
8070-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSummaryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
8071-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
8072-
}
8073-
8074-
declare var HTMLSummaryElement: {
8075-
prototype: HTMLSummaryElement;
8076-
new(): HTMLSummaryElement;
8077-
};
8078-
80798080
interface HTMLTableCaptionElement extends HTMLElement {
80808081
/**
80818082
* Sets or retrieves the alignment of the caption or legend.
@@ -16731,6 +16732,7 @@ interface HTMLElementTagNameMap {
1673116732
"datalist": HTMLDataListElement;
1673216733
"dd": HTMLElement;
1673316734
"del": HTMLModElement;
16735+
"details": HTMLDetailsElement;
1673416736
"dfn": HTMLElement;
1673516737
"dir": HTMLDirectoryElement;
1673616738
"div": HTMLDivElement;

inputfiles/addedTypes.json

Lines changed: 28 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,49 +1132,6 @@
11321132
}
11331133
}
11341134
},
1135-
"HTMLSlotElement": {
1136-
"name": "HTMLSlotElement",
1137-
"extends": "HTMLElement",
1138-
"exposed": "Window",
1139-
"properties": {
1140-
"property": {
1141-
"name": {
1142-
"name": "name",
1143-
"override-type": "string"
1144-
}
1145-
}
1146-
},
1147-
"methods": {
1148-
"method": {
1149-
"assignedNodes": {
1150-
"name": "assignedNodes",
1151-
"override-signatures": [
1152-
"assignedNodes(options?: AssignedNodesOptions): Node[]"
1153-
]
1154-
}
1155-
}
1156-
},
1157-
"no-interface-object": "1",
1158-
"element": [
1159-
{
1160-
"name": "slot"
1161-
}
1162-
]
1163-
},
1164-
"AssignedNodesOptions": {
1165-
"name": "AssignedNodesOptions",
1166-
"exposed": "Window",
1167-
"properties": {
1168-
"property": {
1169-
"flatten": {
1170-
"name": "flatten",
1171-
"override-type": "boolean",
1172-
"required": 0
1173-
}
1174-
}
1175-
},
1176-
"no-interface-object": "1"
1177-
},
11781135
"Event": {
11791136
"name": "Event",
11801137
"properties": {
@@ -1197,19 +1154,6 @@
11971154
}
11981155
}
11991156
},
1200-
"ElementDefinitionOptions": {
1201-
"name": "ElementDefinitionOptions",
1202-
"exposed": "Window",
1203-
"properties": {
1204-
"property": {
1205-
"extends": {
1206-
"name": "extends",
1207-
"override-type": "string"
1208-
}
1209-
}
1210-
},
1211-
"no-interface-object": "1"
1212-
},
12131157
"ElementCreationOptions": {
12141158
"name": "ElementCreationOptions",
12151159
"exposed": "Window",
@@ -1224,33 +1168,6 @@
12241168
},
12251169
"no-interface-object": "1"
12261170
},
1227-
"CustomElementRegistry": {
1228-
"name": "CustomElementRegistry",
1229-
"exposed": "Window",
1230-
"methods": {
1231-
"method": {
1232-
"define": {
1233-
"name": "define",
1234-
"override-signatures": [
1235-
"define(name: string, constructor: Function, options?: ElementDefinitionOptions): void"
1236-
]
1237-
},
1238-
"get": {
1239-
"name": "get",
1240-
"override-signatures": [
1241-
"get(name: string): any"
1242-
]
1243-
},
1244-
"whenDefined": {
1245-
"name": "whenDefined",
1246-
"override-signatures": [
1247-
"whenDefined(name: string): PromiseLike<void>"
1248-
]
1249-
}
1250-
}
1251-
},
1252-
"no-interface-object": "1"
1253-
},
12541171
"PromiseRejectionEvent": {
12551172
"name": "PromiseRejectionEvent",
12561173
"extends": "Event",
@@ -1275,63 +1192,6 @@
12751192
}
12761193
}
12771194
},
1278-
"ValidityState": {
1279-
"name": "ValidityState",
1280-
"properties": {
1281-
"property": {
1282-
"tooShort": {
1283-
"name": "tooShort",
1284-
"exposed": "Window",
1285-
"read-only": 1,
1286-
"override-type": "boolean"
1287-
}
1288-
}
1289-
}
1290-
},
1291-
"HTMLDialogElement": {
1292-
"name": "HTMLDialogElement",
1293-
"extends": "HTMLElement",
1294-
"exposed": "Window",
1295-
"properties": {
1296-
"property": {
1297-
"open": {
1298-
"name": "open",
1299-
"override-type": "boolean"
1300-
},
1301-
"returnValue": {
1302-
"name": "returnValue",
1303-
"override-type": "string"
1304-
}
1305-
}
1306-
},
1307-
"methods": {
1308-
"method": {
1309-
"close": {
1310-
"name": "close",
1311-
"override-signatures": [
1312-
"close(returnValue?: string): void"
1313-
]
1314-
},
1315-
"show": {
1316-
"name": "show",
1317-
"override-signatures": [
1318-
"show(): void"
1319-
]
1320-
},
1321-
"showModal": {
1322-
"name": "showModal",
1323-
"override-signatures": [
1324-
"showModal(): void"
1325-
]
1326-
}
1327-
}
1328-
},
1329-
"constructor": {
1330-
"override-signatures": [
1331-
"new(): HTMLDialogElement"
1332-
]
1333-
}
1334-
},
13351195
"HTMLMainElement": {
13361196
"name": "HTMLMainElement",
13371197
"extends": "HTMLElement",
@@ -1342,34 +1202,6 @@
13421202
]
13431203
}
13441204
},
1345-
"HTMLDetailsElement": {
1346-
"name": "HTMLDetailsElement",
1347-
"extends": "HTMLElement",
1348-
"exposed": "Window",
1349-
"properties": {
1350-
"property": {
1351-
"open": {
1352-
"name": "open",
1353-
"override-type": "boolean"
1354-
}
1355-
}
1356-
},
1357-
"constructor": {
1358-
"override-signatures": [
1359-
"new(): HTMLDetailsElement"
1360-
]
1361-
}
1362-
},
1363-
"HTMLSummaryElement": {
1364-
"name": "HTMLSummaryElement",
1365-
"extends": "HTMLElement",
1366-
"exposed": "Window",
1367-
"constructor": {
1368-
"override-signatures": [
1369-
"new(): HTMLSummaryElement"
1370-
]
1371-
}
1372-
},
13731205
"EXT_blend_minmax": {
13741206
"name": "EXT_blend_minmax",
13751207
"exposed": "Window",
@@ -2043,6 +1875,13 @@
20431875
}
20441876
]
20451877
},
1878+
"HTMLDetailsElement": {
1879+
"element": [
1880+
{
1881+
"name": "details"
1882+
}
1883+
]
1884+
},
20461885
"HTMLDivElement": {
20471886
"element": [
20481887
{
@@ -2189,6 +2028,20 @@
21892028
}
21902029
]
21912030
},
2031+
"HTMLScriptElement": {
2032+
"element": [
2033+
{
2034+
"name": "script"
2035+
}
2036+
]
2037+
},
2038+
"HTMLSlotElement": {
2039+
"element": [
2040+
{
2041+
"name": "slot"
2042+
}
2043+
]
2044+
},
21922045
"HTMLStyleElement": {
21932046
"element": [
21942047
{
@@ -2260,6 +2113,13 @@
22602113
}
22612114
]
22622115
},
2116+
"HTMLTemplateElement": {
2117+
"element": [
2118+
{
2119+
"name": "template"
2120+
}
2121+
]
2122+
},
22632123
"HTMLTableRowElement": {
22642124
"element": [
22652125
{
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"window-customelements": "Tries to upgrade all shadow-including\ninclusive descendant elements of root, even if they are not\nconnected."
3+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Exposed=Window]
2+
interface CustomElementRegistry {
3+
[CEReactions] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options);
4+
any get(DOMString name);
5+
Promise<void> whenDefined(DOMString name);
6+
[CEReactions] void upgrade(Node root);
7+
};
8+
9+
callback CustomElementConstructor = any ();
10+
11+
dictionary ElementDefinitionOptions {
12+
DOMString extends;
13+
};
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"dialog-show": "Displays the dialog element.",
3+
"dialog-showmodal": "Displays the dialog element and makes it the top-most modal dialog.\nThis method honors the autofocus attribute.",
4+
"dialog-close": "Closes the dialog element.\nThe argument, if provided, provides a return value.",
5+
"dialog-returnvalue": "Returns the dialog's return value.\nCan be set, to update the return value."
6+
}

0 commit comments

Comments
 (0)