Skip to content

Adds HTML scripts/custom elements types #496

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 23 additions & 21 deletions baselines/dom.generated.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ interface AssertionOptions {
timeoutSeconds?: number;
}

interface AssignedNodesOptions {
flatten?: boolean;
}

interface AudioBufferOptions {
length: number;
numberOfChannels?: number;
Expand Down Expand Up @@ -374,6 +378,10 @@ interface EffectTiming {
iterations?: number;
}

interface ElementDefinitionOptions {
extends?: string;
}

interface ErrorEventInit extends EventInit {
colno?: number;
error?: any;
Expand Down Expand Up @@ -2122,10 +2130,6 @@ declare var ApplicationCache: {
readonly UPDATEREADY: number;
};

interface AssignedNodesOptions {
flatten?: boolean;
}

interface Attr extends Node {
readonly name: string;
readonly ownerElement: Element | null;
Expand Down Expand Up @@ -3504,9 +3508,15 @@ declare var CryptoKeyPair: {
interface CustomElementRegistry {
define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;
get(name: string): any;
whenDefined(name: string): PromiseLike<void>;
upgrade(root: Node): void;
whenDefined(name: string): Promise<void>;
}

declare var CustomElementRegistry: {
prototype: CustomElementRegistry;
new(): CustomElementRegistry;
};

interface CustomEvent<T = any> extends Event {
readonly detail: T;
initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: T): void;
Expand Down Expand Up @@ -5155,10 +5165,6 @@ interface ElementCreationOptions {
is?: string;
}

interface ElementDefinitionOptions {
extends: string;
}

interface ElementTraversal {
readonly childElementCount: number;
readonly firstElementChild: Element | null;
Expand Down Expand Up @@ -7868,6 +7874,7 @@ interface HTMLScriptElement extends HTMLElement {
htmlFor: string;
integrity: string;
noModule: boolean;
referrerPolicy: string;
/**
* Retrieves the URL to an external file that contains the source code or data.
*/
Expand Down Expand Up @@ -7996,13 +8003,19 @@ declare var HTMLSelectElement: {

interface HTMLSlotElement extends HTMLElement {
name: string;
assignedElements(options?: AssignedNodesOptions): Element[];
assignedNodes(options?: AssignedNodesOptions): Node[];
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLSlotElement: {
prototype: HTMLSlotElement;
new(): HTMLSlotElement;
};

interface HTMLSourceElement extends HTMLElement {
/**
* Gets or sets the intended media type of the media source.
Expand Down Expand Up @@ -8064,18 +8077,6 @@ declare var HTMLStyleElement: {
new(): HTMLStyleElement;
};

interface HTMLSummaryElement extends HTMLElement {
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSummaryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSummaryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}

declare var HTMLSummaryElement: {
prototype: HTMLSummaryElement;
new(): HTMLSummaryElement;
};

interface HTMLTableCaptionElement extends HTMLElement {
/**
* Sets or retrieves the alignment of the caption or legend.
Expand Down Expand Up @@ -16731,6 +16732,7 @@ interface HTMLElementTagNameMap {
"datalist": HTMLDataListElement;
"dd": HTMLElement;
"del": HTMLModElement;
"details": HTMLDetailsElement;
"dfn": HTMLElement;
"dir": HTMLDirectoryElement;
"div": HTMLDivElement;
Expand Down
196 changes: 28 additions & 168 deletions inputfiles/addedTypes.json
Original file line number Diff line number Diff line change
Expand Up @@ -1132,49 +1132,6 @@
}
}
},
"HTMLSlotElement": {
"name": "HTMLSlotElement",
"extends": "HTMLElement",
"exposed": "Window",
"properties": {
"property": {
"name": {
"name": "name",
"override-type": "string"
}
}
},
"methods": {
"method": {
"assignedNodes": {
"name": "assignedNodes",
"override-signatures": [
"assignedNodes(options?: AssignedNodesOptions): Node[]"
]
}
}
},
"no-interface-object": "1",
"element": [
{
"name": "slot"
}
]
},
"AssignedNodesOptions": {
"name": "AssignedNodesOptions",
"exposed": "Window",
"properties": {
"property": {
"flatten": {
"name": "flatten",
"override-type": "boolean",
"required": 0
}
}
},
"no-interface-object": "1"
},
"Event": {
"name": "Event",
"properties": {
Expand All @@ -1197,19 +1154,6 @@
}
}
},
"ElementDefinitionOptions": {
"name": "ElementDefinitionOptions",
"exposed": "Window",
"properties": {
"property": {
"extends": {
"name": "extends",
"override-type": "string"
}
}
},
"no-interface-object": "1"
},
"ElementCreationOptions": {
"name": "ElementCreationOptions",
"exposed": "Window",
Expand All @@ -1224,33 +1168,6 @@
},
"no-interface-object": "1"
},
"CustomElementRegistry": {
"name": "CustomElementRegistry",
"exposed": "Window",
"methods": {
"method": {
"define": {
"name": "define",
"override-signatures": [
"define(name: string, constructor: Function, options?: ElementDefinitionOptions): void"
]
},
"get": {
"name": "get",
"override-signatures": [
"get(name: string): any"
]
},
"whenDefined": {
"name": "whenDefined",
"override-signatures": [
"whenDefined(name: string): PromiseLike<void>"
]
}
}
},
"no-interface-object": "1"
},
"PromiseRejectionEvent": {
"name": "PromiseRejectionEvent",
"extends": "Event",
Expand All @@ -1275,63 +1192,6 @@
}
}
},
"ValidityState": {
"name": "ValidityState",
"properties": {
"property": {
"tooShort": {
"name": "tooShort",
"exposed": "Window",
"read-only": 1,
"override-type": "boolean"
}
}
}
},
"HTMLDialogElement": {
"name": "HTMLDialogElement",
"extends": "HTMLElement",
"exposed": "Window",
"properties": {
"property": {
"open": {
"name": "open",
"override-type": "boolean"
},
"returnValue": {
"name": "returnValue",
"override-type": "string"
}
}
},
"methods": {
"method": {
"close": {
"name": "close",
"override-signatures": [
"close(returnValue?: string): void"
]
},
"show": {
"name": "show",
"override-signatures": [
"show(): void"
]
},
"showModal": {
"name": "showModal",
"override-signatures": [
"showModal(): void"
]
}
}
},
"constructor": {
"override-signatures": [
"new(): HTMLDialogElement"
]
}
},
"HTMLMainElement": {
"name": "HTMLMainElement",
"extends": "HTMLElement",
Expand All @@ -1342,34 +1202,6 @@
]
}
},
"HTMLDetailsElement": {
"name": "HTMLDetailsElement",
"extends": "HTMLElement",
"exposed": "Window",
"properties": {
"property": {
"open": {
"name": "open",
"override-type": "boolean"
}
}
},
"constructor": {
"override-signatures": [
"new(): HTMLDetailsElement"
]
}
},
"HTMLSummaryElement": {
"name": "HTMLSummaryElement",
"extends": "HTMLElement",
"exposed": "Window",
"constructor": {
"override-signatures": [
"new(): HTMLSummaryElement"
]
}
},
"EXT_blend_minmax": {
"name": "EXT_blend_minmax",
"exposed": "Window",
Expand Down Expand Up @@ -2043,6 +1875,13 @@
}
]
},
"HTMLDetailsElement": {
"element": [
{
"name": "details"
}
]
},
"HTMLDivElement": {
"element": [
{
Expand Down Expand Up @@ -2189,6 +2028,20 @@
}
]
},
"HTMLScriptElement": {
"element": [
{
"name": "script"
}
]
},
"HTMLSlotElement": {
"element": [
{
"name": "slot"
}
]
},
"HTMLStyleElement": {
"element": [
{
Expand Down Expand Up @@ -2260,6 +2113,13 @@
}
]
},
"HTMLTemplateElement": {
"element": [
{
"name": "template"
}
]
},
"HTMLTableRowElement": {
"element": [
{
Expand Down
3 changes: 3 additions & 0 deletions inputfiles/idl/HTML - Custom elements.commentmap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"window-customelements": "Tries to upgrade all shadow-including\ninclusive descendant elements of root, even if they are not\nconnected."
}
13 changes: 13 additions & 0 deletions inputfiles/idl/HTML - Custom elements.widl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Exposed=Window]
interface CustomElementRegistry {
[CEReactions] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options);
any get(DOMString name);
Promise<void> whenDefined(DOMString name);
[CEReactions] void upgrade(Node root);
};

callback CustomElementConstructor = any ();

dictionary ElementDefinitionOptions {
DOMString extends;
};
6 changes: 6 additions & 0 deletions inputfiles/idl/HTML - Interactive elements.commentmap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"dialog-show": "Displays the dialog element.",
"dialog-showmodal": "Displays the dialog element and makes it the top-most modal dialog.\nThis method honors the autofocus attribute.",
"dialog-close": "Closes the dialog element.\nThe argument, if provided, provides a return value.",
"dialog-returnvalue": "Returns the dialog's return value.\nCan be set, to update the return value."
}
Loading