diff --git a/lib/enu/diagnosticMessages.generated.json.lcg b/lib/enu/diagnosticMessages.generated.json.lcg index 61eb41991c4..17f927a74f3 100644 --- a/lib/enu/diagnosticMessages.generated.json.lcg +++ b/lib/enu/diagnosticMessages.generated.json.lcg @@ -27,6 +27,18 @@ + + + + + + + + + + + + @@ -129,6 +141,12 @@ + + + + + + @@ -849,12 +867,6 @@ - - - - - - @@ -1005,6 +1017,12 @@ + + + + + + @@ -1329,6 +1347,12 @@ + + + + + + @@ -1487,17 +1511,35 @@ - + - + + + + + + + + + + + + + - + + + + + + + @@ -1707,6 +1749,12 @@ + + + + + + @@ -2235,12 +2283,6 @@ - - - - - - @@ -2307,6 +2349,12 @@ + + + + + + @@ -2403,6 +2451,12 @@ + + + + + + @@ -2655,6 +2709,12 @@ + + + + + + @@ -3189,12 +3249,6 @@ - - - - - - @@ -3741,12 +3795,6 @@ - - - - - - @@ -3867,6 +3915,12 @@ + + + + + + @@ -4137,12 +4191,6 @@ - - - - - - @@ -4671,6 +4719,12 @@ + + + + + + @@ -4773,6 +4827,12 @@ + + + + + + @@ -5271,9 +5331,9 @@ - + - + @@ -5511,9 +5571,9 @@ - + - + @@ -5571,6 +5631,12 @@ + + + + + + @@ -5805,6 +5871,18 @@ + + + + + + + + + + + + @@ -5823,6 +5901,18 @@ + + + + + + + + + + + + @@ -5871,9 +5961,9 @@ - + - + @@ -5907,18 +5997,6 @@ - - - - - - - - - - - - @@ -5949,12 +6027,6 @@ - - - - - - @@ -6081,6 +6153,12 @@ + + + + + + @@ -6189,6 +6267,12 @@ + + + + + + @@ -6387,6 +6471,12 @@ + + + + + + @@ -6519,6 +6609,12 @@ + + + + + + @@ -6693,6 +6789,12 @@ + + + + + + @@ -6789,6 +6891,12 @@ + + + + + + @@ -6999,6 +7107,12 @@ + + + + + + diff --git a/lib/lib.dom.d.ts b/lib/lib.dom.d.ts index 464dea83926..7817a0e4267 100644 --- a/lib/lib.dom.d.ts +++ b/lib/lib.dom.d.ts @@ -203,6 +203,10 @@ interface ClientQueryOptions { type?: ClientTypes; } +interface ClipboardEventInit extends EventInit { + clipboardData?: DataTransfer | null; +} + interface CloseEventInit extends EventInit { code?: number; reason?: string; @@ -448,6 +452,10 @@ interface EventModifierInit extends UIEventInit { shiftKey?: boolean; } +interface EventSourceInit { + withCredentials?: boolean; +} + interface ExceptionInformation { domain?: string | null; } @@ -479,12 +487,16 @@ interface FocusOptions { preventScroll?: boolean; } +interface FullscreenOptions { + navigationUI?: FullscreenNavigationUI; +} + interface GainOptions extends AudioNodeOptions { gain?: number; } interface GamepadEventInit extends EventInit { - gamepad?: Gamepad; + gamepad: Gamepad; } interface GetNotificationOptions { @@ -619,15 +631,17 @@ interface MediaEncryptedEventInit extends EventInit { } interface MediaKeyMessageEventInit extends EventInit { - message?: ArrayBuffer | null; - messageType?: MediaKeyMessageType; + message: ArrayBuffer; + messageType: MediaKeyMessageType; } interface MediaKeySystemConfiguration { audioCapabilities?: MediaKeySystemMediaCapability[]; distinctiveIdentifier?: MediaKeysRequirement; initDataTypes?: string[]; + label?: string; persistentState?: MediaKeysRequirement; + sessionTypes?: string[]; videoCapabilities?: MediaKeySystemMediaCapability[]; } @@ -744,6 +758,8 @@ interface MouseEventInit extends EventModifierInit { buttons?: number; clientX?: number; clientY?: number; + movementX?: number; + movementY?: number; relatedTarget?: EventTarget | null; screenX?: number; screenY?: number; @@ -1462,6 +1478,11 @@ interface ServiceWorkerMessageEventInit extends EventInit { source?: ServiceWorker | MessagePort | null; } +interface ShadowRootInit { + delegatesFocus?: boolean; + mode: ShadowRootMode; +} + interface StereoPannerOptions extends AudioNodeOptions { pan?: number; } @@ -1629,6 +1650,7 @@ interface EventListener { (evt: Event): void; } +/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */ interface ANGLE_instanced_arrays { drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void; drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void; @@ -1636,6 +1658,7 @@ interface ANGLE_instanced_arrays { readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum; } +/** The AbortController interface represents a controller object that allows you to abort one or more DOM requests as and when desired. */ interface AbortController { /** * Returns the AbortSignal object associated with this object. @@ -1654,16 +1677,17 @@ declare var AbortController: { }; interface AbortSignalEventMap { - "abort": ProgressEvent; + "abort": Event; } +/** The AbortSignal interface represents a signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */ interface AbortSignal extends EventTarget { /** * Returns true if this AbortSignal's AbortController has signaled to abort, and false * otherwise. */ readonly aborted: boolean; - onabort: ((this: AbortSignal, ev: ProgressEvent) => any) | null; + onabort: ((this: AbortSignal, ev: Event) => any) | null; addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -1708,6 +1732,7 @@ interface AesCmacParams extends Algorithm { length: number; } +/** The AnalyserNode interface represents a node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations. */ interface AnalyserNode extends AudioNode { fftSize: number; readonly frequencyBinCount: number; @@ -1776,6 +1801,7 @@ declare var AnimationEffect: { new(): AnimationEffect; }; +/** The AnimationEvent interface represents events providing information related to animations. */ interface AnimationEvent extends Event { readonly animationName: string; readonly elapsedTime: number; @@ -1865,6 +1891,7 @@ declare var ApplicationCache: { readonly UPDATEREADY: number; }; +/** This type represents a DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types. */ interface Attr extends Node { readonly localName: string; readonly name: string; @@ -1880,6 +1907,7 @@ declare var Attr: { new(): Attr; }; +/** Objects of these types are designed to hold small audio snippets, typically less than 45 s. For longer sounds, objects implementing the MediaElementAudioSourceNode are more suitable. The buffer contains data in the following format: non-interleaved IEEE754 32-bit linear PCM with a nominal range between -1 and +1, that is, 32bits floating point buffer, with each samples between -1.0 and 1.0. If the AudioBuffer has multiple channels, they are stored in separate buffer. */ interface AudioBuffer { readonly duration: number; readonly length: number; @@ -1895,6 +1923,7 @@ declare var AudioBuffer: { new(options: AudioBufferOptions): AudioBuffer; }; +/** The AudioBufferSourceNode interface is an AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. */ interface AudioBufferSourceNode extends AudioScheduledSourceNode { buffer: AudioBuffer | null; readonly detune: AudioParam; @@ -1914,6 +1943,7 @@ declare var AudioBufferSourceNode: { new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode; }; +/** The AudioContext interface represents an audio-processing graph built from audio modules linked together, each represented by an AudioNode. */ interface AudioContext extends BaseAudioContext { readonly baseLatency: number; readonly outputLatency: number; @@ -1935,6 +1965,7 @@ declare var AudioContext: { new(contextOptions?: AudioContextOptions): AudioContext; }; +/** AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised. */ interface AudioDestinationNode extends AudioNode { readonly maxChannelCount: number; } @@ -1944,6 +1975,7 @@ declare var AudioDestinationNode: { new(): AudioDestinationNode; }; +/** The AudioListener interface represents the position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute. */ interface AudioListener { readonly forwardX: AudioParam; readonly forwardY: AudioParam; @@ -1965,6 +1997,7 @@ declare var AudioListener: { new(): AudioListener; }; +/** The AudioNode interface is a generic interface for representing an audio processing module. Examples include: */ interface AudioNode extends EventTarget { channelCount: number; channelCountMode: ChannelCountMode; @@ -1988,6 +2021,7 @@ declare var AudioNode: { new(): AudioNode; }; +/** The Web Audio API's AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain). */ interface AudioParam { automationRate: AutomationRate; readonly defaultValue: number; @@ -2017,6 +2051,7 @@ declare var AudioParamMap: { new(): AudioParamMap; }; +/** The Web Audio API AudioProcessingEvent represents events that occur when a ScriptProcessorNode input buffer is ready to be processed. */ interface AudioProcessingEvent extends Event { readonly inputBuffer: AudioBuffer; readonly outputBuffer: AudioBuffer; @@ -2047,13 +2082,14 @@ declare var AudioScheduledSourceNode: { new(): AudioScheduledSourceNode; }; +/** The AudioTrack interface represents a single audio track from one of the HTML media elements, or . */ interface AudioTrack { enabled: boolean; readonly id: string; kind: string; readonly label: string; language: string; - readonly sourceBuffer: SourceBuffer; + readonly sourceBuffer: SourceBuffer | null; } declare var AudioTrack: { @@ -2067,6 +2103,7 @@ interface AudioTrackListEventMap { "removetrack": TrackEvent; } +/** The AudioTrackList interface is used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate AudioTrack object in the list. */ interface AudioTrackList extends EventTarget { readonly length: number; onaddtrack: ((this: AudioTrackList, ev: TrackEvent) => any) | null; @@ -2165,6 +2202,7 @@ declare var BaseAudioContext: { new(): BaseAudioContext; }; +/** The beforeunload event is fired when the window, the document and its resources are about to be unloaded. */ interface BeforeUnloadEvent extends Event { returnValue: any; } @@ -2196,6 +2234,7 @@ declare var BhxBrowser: { new(): BhxBrowser; }; +/** The BiquadFilterNode interface represents a simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers. */ interface BiquadFilterNode extends AudioNode { readonly Q: AudioParam; readonly detune: AudioParam; @@ -2210,6 +2249,7 @@ declare var BiquadFilterNode: { new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode; }; +/** A Blob object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */ interface Blob { readonly size: number; readonly type: string; @@ -2267,6 +2307,7 @@ interface BroadcastChannelEventMap { messageerror: MessageEvent; } +/** The ByteLengthQueuingStrategy interface of the the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams. */ interface ByteLengthQueuingStrategy extends QueuingStrategy { highWaterMark: number; size(chunk: ArrayBufferView): number; @@ -2277,6 +2318,7 @@ declare var ByteLengthQueuingStrategy: { new(options: { highWaterMark: number }): ByteLengthQueuingStrategy; }; +/** The CDATASection interface represents a CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section. */ interface CDATASection extends Text { } @@ -2285,12 +2327,14 @@ declare var CDATASection: { new(): CDATASection; }; +/** The CSS interface holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */ interface CSS { escape(value: string): string; supports(property: string, value?: string): boolean; } declare var CSS: CSS; +/** An object implementing the CSSConditionRule interface represents a single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule. */ interface CSSConditionRule extends CSSGroupingRule { conditionText: string; } @@ -2309,6 +2353,7 @@ declare var CSSFontFaceRule: { new(): CSSFontFaceRule; }; +/** An object implementing the CSSGroupingRule interface represents any CSS at-rule that contains other rules nested within it. */ interface CSSGroupingRule extends CSSRule { readonly cssRules: CSSRuleList; deleteRule(index: number): void; @@ -2331,6 +2376,7 @@ declare var CSSImportRule: { new(): CSSImportRule; }; +/** The CSSKeyframeRule interface describes an object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE). */ interface CSSKeyframeRule extends CSSRule { keyText: string; readonly style: CSSStyleDeclaration; @@ -2341,6 +2387,7 @@ declare var CSSKeyframeRule: { new(): CSSKeyframeRule; }; +/** The CSSKeyframesRule interface describes an object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE). */ interface CSSKeyframesRule extends CSSRule { readonly cssRules: CSSRuleList; name: string; @@ -2354,6 +2401,7 @@ declare var CSSKeyframesRule: { new(): CSSKeyframesRule; }; +/** The CSSMediaRule is an interface representing a single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE). */ interface CSSMediaRule extends CSSConditionRule { readonly media: MediaList; } @@ -2363,6 +2411,7 @@ declare var CSSMediaRule: { new(): CSSMediaRule; }; +/** The CSSNamespaceRule interface describes an object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE). */ interface CSSNamespaceRule extends CSSRule { readonly namespaceURI: string; readonly prefix: string; @@ -2373,6 +2422,7 @@ declare var CSSNamespaceRule: { new(): CSSNamespaceRule; }; +/** CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE). */ interface CSSPageRule extends CSSRule { readonly pseudoClass: string; readonly selector: string; @@ -2385,6 +2435,7 @@ declare var CSSPageRule: { new(): CSSPageRule; }; +/** The CSSRule interface represents a single CSS rule. There are several types of rules, listed in the Type constants section below. */ interface CSSRule { cssText: string; readonly parentRule: CSSRule | null; @@ -2421,6 +2472,7 @@ declare var CSSRule: { readonly VIEWPORT_RULE: number; }; +/** A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. */ interface CSSRuleList { readonly length: number; item(index: number): CSSRule | null; @@ -2432,6 +2484,7 @@ declare var CSSRuleList: { new(): CSSRuleList; }; +/** The CSSStyleDeclaration API represents an object that is a CSS declaration block, that exposes style information and various style-related methods and properties. */ interface CSSStyleDeclaration { alignContent: string | null; alignItems: string | null; @@ -2903,6 +2956,7 @@ declare var CSSStyleDeclaration: { new(): CSSStyleDeclaration; }; +/** CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE). */ interface CSSStyleRule extends CSSRule { selectorText: string; readonly style: CSSStyleDeclaration; @@ -2913,6 +2967,7 @@ declare var CSSStyleRule: { new(): CSSStyleRule; }; +/** The CSSStyleSheet interface represents a single CSS style sheet. It inherits properties and methods from its parent, StyleSheet. */ interface CSSStyleSheet extends StyleSheet { readonly cssRules: CSSRuleList; /** @deprecated */ @@ -2950,6 +3005,7 @@ declare var CSSStyleSheet: { new(): CSSStyleSheet; }; +/** The CSSSupportsRule interface describes an object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE). */ interface CSSSupportsRule extends CSSConditionRule { } @@ -2958,6 +3014,7 @@ declare var CSSSupportsRule: { new(): CSSSupportsRule; }; +/** The Cache interface provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. */ interface Cache { add(request: RequestInfo): Promise; addAll(requests: RequestInfo[]): Promise; @@ -2973,6 +3030,7 @@ declare var Cache: { new(): Cache; }; +/** The CacheStorage interface represents the storage for Cache objects. */ interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; @@ -3023,6 +3081,7 @@ interface CanvasFilters { filter: string; } +/** The CanvasGradient interface represents an opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */ interface CanvasGradient { /** * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset @@ -3074,6 +3133,7 @@ interface CanvasPathDrawingStyles { setLineDash(segments: number[]): void; } +/** The CanvasPattern interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */ interface CanvasPattern { /** * Sets the transformation matrix that will be used when rendering the pattern during a fill or @@ -3093,6 +3153,7 @@ interface CanvasRect { strokeRect(x: number, y: number, w: number, h: number): void; } +/** The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a element. It is used for drawing shapes, text, images, and other objects. */ interface CanvasRenderingContext2D extends CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath { readonly canvas: HTMLCanvasElement; } @@ -3156,6 +3217,7 @@ declare var CaretPosition: { new(): CaretPosition; }; +/** The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */ interface ChannelMergerNode extends AudioNode { } @@ -3164,6 +3226,7 @@ declare var ChannelMergerNode: { new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode; }; +/** The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */ interface ChannelSplitterNode extends AudioNode { } @@ -3172,6 +3235,7 @@ declare var ChannelSplitterNode: { new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode; }; +/** The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract. */ interface CharacterData extends Node, NonDocumentTypeChildNode, ChildNode { data: string; readonly length: number; @@ -3237,8 +3301,19 @@ declare var ClientRectList: { new(): ClientRectList; }; +interface Clipboard extends EventTarget { + readText(): Promise; + writeText(data: string): Promise; +} + +declare var Clipboard: { + prototype: Clipboard; + new(): Clipboard; +}; + +/** The ClipboardEvent interface represents events providing information related to modification of the clipboard, that is cut, copy, and paste events. */ interface ClipboardEvent extends Event { - readonly clipboardData: DataTransfer; + readonly clipboardData: DataTransfer | null; } declare var ClipboardEvent: { @@ -3246,11 +3321,7 @@ declare var ClipboardEvent: { new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent; }; -interface ClipboardEventInit extends EventInit { - data?: string; - dataType?: string; -} - +/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. */ interface CloseEvent extends Event { readonly code: number; readonly reason: string; @@ -3264,6 +3335,7 @@ declare var CloseEvent: { new(type: string, eventInitDict?: CloseEventInit): CloseEvent; }; +/** The Comment interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. Comments are represented in HTML and XML as content between ''. In XML, the character sequence '--' cannot be used within a comment. */ interface Comment extends CharacterData { } @@ -3272,6 +3344,7 @@ declare var Comment: { new(data?: string): Comment; }; +/** The DOM CompositionEvent represents events that occur due to the user indirectly entering text. */ interface CompositionEvent extends UIEvent { readonly data: string; readonly locale: string; @@ -3292,6 +3365,7 @@ interface ConcatParams extends Algorithm { publicInfo?: Uint8Array; } +/** The Console object provides access to the browser's debugging console (e.g. the Web Console in Firefox). The specifics of how it works varies from browser to browser, but there is a de facto set of features that are typically provided. */ interface Console { memory: any; assert(condition?: boolean, message?: string, ...data: any[]): void; @@ -3338,6 +3412,7 @@ declare var ConstantSourceNode: { new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode; }; +/** The ConvolverNode interface is an AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output. */ interface ConvolverNode extends AudioNode { buffer: AudioBuffer | null; normalize: boolean; @@ -3348,6 +3423,7 @@ declare var ConvolverNode: { new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode; }; +/** The Coordinates interface represents the position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated. */ interface Coordinates { readonly accuracy: number; readonly altitude: number | null; @@ -3358,6 +3434,7 @@ interface Coordinates { readonly speed: number | null; } +/** The CountQueuingStrategy interface of the the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams. */ interface CountQueuingStrategy extends QueuingStrategy { highWaterMark: number; size(chunk: any): 1; @@ -3368,6 +3445,7 @@ declare var CountQueuingStrategy: { new(options: { highWaterMark: number }): CountQueuingStrategy; }; +/** The Crypto interface represents basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */ interface Crypto { readonly subtle: SubtleCrypto; getRandomValues(array: T): T; @@ -3378,6 +3456,7 @@ declare var Crypto: { new(): Crypto; }; +/** The CryptoKey interface represents a cryptographic key derived from a specific key algorithm. */ interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; @@ -3426,6 +3505,7 @@ declare var CustomEvent: { new(typeArg: string, eventInitDict?: CustomEventInit): CustomEvent; }; +/** The DOMError interface describes an error object that contains an error name. */ interface DOMError { readonly name: string; toString(): string; @@ -3436,6 +3516,7 @@ declare var DOMError: { new(): DOMError; }; +/** The DOMException interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */ interface DOMException { readonly code: number; readonly message: string; @@ -3497,6 +3578,7 @@ declare var DOMException: { readonly WRONG_DOCUMENT_ERR: number; }; +/** The DOMImplementation interface represent an object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property. */ interface DOMImplementation { createDocument(namespaceURI: string | null, qualifiedName: string | null, doctype: DocumentType | null): Document; createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType; @@ -3599,6 +3681,8 @@ interface DOMMatrixReadOnly { rotateFromVector(x?: number, y?: number): DOMMatrix; scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; + /** @deprecated */ + scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix; skewX(sx?: number): DOMMatrix; skewY(sy?: number): DOMMatrix; toFloat32Array(): Float32Array; @@ -3616,6 +3700,7 @@ declare var DOMMatrixReadOnly: { fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly; }; +/** The DOMParser interface provides the ability to parse XML or HTML source code from a string into a DOM Document. */ interface DOMParser { parseFromString(str: string, type: SupportedType): Document; } @@ -3726,6 +3811,7 @@ declare var DOMSettableTokenList: { new(): DOMSettableTokenList; }; +/** A type returned by some APIs which contains a list of DOMString (strings). */ interface DOMStringList { /** * Returns the number of strings in strings. @@ -3748,6 +3834,7 @@ declare var DOMStringList: { new(): DOMStringList; }; +/** Used by the dataset HTML attribute to represent data for custom attributes added to elements. */ interface DOMStringMap { [name: string]: string | undefined; } @@ -3757,6 +3844,7 @@ declare var DOMStringMap: { new(): DOMStringMap; }; +/** The DOMTokenList interface represents a set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive. */ interface DOMTokenList { /** * Returns the number of tokens. @@ -3829,6 +3917,7 @@ declare var DataCue: { new(): DataCue; }; +/** The DataTransfer object is used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API. */ interface DataTransfer { dropEffect: string; effectAllowed: string; @@ -3869,6 +3958,7 @@ declare var DataTransfer: { new(): DataTransfer; }; +/** The DataTransferItem object represents one drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object. */ interface DataTransferItem { /** * Returns the drag data item kind, one of: "string", @@ -3896,6 +3986,7 @@ declare var DataTransferItem: { new(): DataTransferItem; }; +/** The DataTransferItemList object is a list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList. */ interface DataTransferItemList { /** * Returns the number of items in the drag data store. @@ -3938,6 +4029,7 @@ declare var DeferredPermissionRequest: { new(): DeferredPermissionRequest; }; +/** The DelayNode interface represents a delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output. */ interface DelayNode extends AudioNode { readonly delayTime: AudioParam; } @@ -3947,6 +4039,7 @@ declare var DelayNode: { new(context: BaseAudioContext, options?: DelayOptions): DelayNode; }; +/** A DeviceAcceleration object provides information about the amount of acceleration the device is experiencing along all three axes. */ interface DeviceAcceleration { readonly x: number | null; readonly y: number | null; @@ -3958,6 +4051,7 @@ declare var DeviceAcceleration: { new(): DeviceAcceleration; }; +/** The DeviceLightEvent provides web developers with information from photo sensors or similiar detectors about ambient light levels near the device. For example this may be useful to adjust the screen's brightness based on the current ambient light level in order to save energy or provide better readability. */ interface DeviceLightEvent extends Event { readonly value: number; } @@ -3967,6 +4061,7 @@ declare var DeviceLightEvent: { new(typeArg: string, eventInitDict?: DeviceLightEventInit): DeviceLightEvent; }; +/** The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation. */ interface DeviceMotionEvent extends Event { readonly acceleration: DeviceAcceleration | null; readonly accelerationIncludingGravity: DeviceAcceleration | null; @@ -3980,6 +4075,7 @@ declare var DeviceMotionEvent: { new(typeArg: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent; }; +/** The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. */ interface DeviceOrientationEvent extends Event { readonly absolute: boolean; readonly alpha: number | null; @@ -3993,6 +4089,7 @@ declare var DeviceOrientationEvent: { new(typeArg: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent; }; +/** A DeviceRotationRate object provides information about the rate at which the device is rotating around all three axes. */ interface DeviceRotationRate { readonly alpha: number | null; readonly beta: number | null; @@ -4026,10 +4123,13 @@ interface DhKeyGenParams extends Algorithm { interface DocumentEventMap extends GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap { "fullscreenchange": Event; "fullscreenerror": Event; + "pointerlockchange": Event; + "pointerlockerror": Event; "readystatechange": ProgressEvent; "visibilitychange": Event; } +/** The Document interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree. */ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GlobalEventHandlers, DocumentAndElementEventHandlers { /** * Sets or gets the URL for the current document. @@ -4186,6 +4286,8 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par location: Location; onfullscreenchange: ((this: Document, ev: Event) => any) | null; onfullscreenerror: ((this: Document, ev: Event) => any) | null; + onpointerlockchange: ((this: Document, ev: Event) => any) | null; + onpointerlockerror: ((this: Document, ev: Event) => any) | null; /** * Fires when the state of the object has changed. * @param ev The event @@ -4283,68 +4385,11 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par * When supplied, options's is can be used to create a customized built-in element. */ createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement; + createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K]; createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "a"): SVGAElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "circle"): SVGCircleElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "clipPath"): SVGClipPathElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "componentTransferFunction"): SVGComponentTransferFunctionElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "cursor"): SVGCursorElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "defs"): SVGDefsElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "desc"): SVGDescElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "ellipse"): SVGEllipseElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feBlend"): SVGFEBlendElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feColorMatrix"): SVGFEColorMatrixElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feComponentTransfer"): SVGFEComponentTransferElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feComposite"): SVGFECompositeElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feConvolveMatrix"): SVGFEConvolveMatrixElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feDiffuseLighting"): SVGFEDiffuseLightingElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feDisplacementMap"): SVGFEDisplacementMapElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feDistantLight"): SVGFEDistantLightElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feFlood"): SVGFEFloodElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feFuncA"): SVGFEFuncAElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feFuncB"): SVGFEFuncBElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feFuncG"): SVGFEFuncGElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feFuncR"): SVGFEFuncRElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feGaussianBlur"): SVGFEGaussianBlurElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feImage"): SVGFEImageElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feMerge"): SVGFEMergeElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feMergeNode"): SVGFEMergeNodeElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feMorphology"): SVGFEMorphologyElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feOffset"): SVGFEOffsetElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "fePointLight"): SVGFEPointLightElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feSpecularLighting"): SVGFESpecularLightingElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feSpotLight"): SVGFESpotLightElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feTile"): SVGFETileElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "feTurbulence"): SVGFETurbulenceElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "filter"): SVGFilterElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "foreignObject"): SVGForeignObjectElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "g"): SVGGElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "image"): SVGImageElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "gradient"): SVGGradientElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "line"): SVGLineElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "linearGradient"): SVGLinearGradientElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "marker"): SVGMarkerElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "mask"): SVGMaskElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "path"): SVGPathElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "metadata"): SVGMetadataElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "pattern"): SVGPatternElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "polygon"): SVGPolygonElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "polyline"): SVGPolylineElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "radialGradient"): SVGRadialGradientElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "rect"): SVGRectElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "svg"): SVGSVGElement; createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "script"): SVGScriptElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "stop"): SVGStopElement; createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "style"): SVGStyleElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "switch"): SVGSwitchElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "symbol"): SVGSymbolElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "tspan"): SVGTSpanElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "textContent"): SVGTextContentElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "text"): SVGTextElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "textPath"): SVGTextPathElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "textPositioning"): SVGTextPositioningElement; createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "title"): SVGTitleElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "use"): SVGUseElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: "view"): SVGViewElement; createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement; createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element; createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element; @@ -4483,6 +4528,7 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par * resolves promise when done. */ exitFullscreen(): Promise; + exitPointerLock(): void; getAnimations(): Animation[]; /** * Returns a reference to the first object with the specified value of the ID or NAME attribute. @@ -4515,10 +4561,19 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf; + /** + * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage. + */ + getSelection(): Selection | null; /** * Gets a value indicating whether the object currently has focus. */ hasFocus(): boolean; + /** + * Returns a copy of node. If deep is true, the copy also includes the node's descendants. + * If node is a document or a shadow root, throws a + * "NotSupportedError" DOMException. + */ importNode(importedNode: T, deep: boolean): T; /** * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method. @@ -4565,9 +4620,6 @@ interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, Par * @param content The text and HTML tags to write. */ writeln(...text: string[]): void; - /** - * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage. - */ addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -4676,6 +4728,7 @@ interface DocumentEvent { createEvent(eventInterface: string): Event; } +/** The DocumentFragment interface represents a minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */ interface DocumentFragment extends Node, NonElementParentNode, ParentNode { getElementById(elementId: string): HTMLElement | null; } @@ -4687,6 +4740,8 @@ declare var DocumentFragment: { interface DocumentOrShadowRoot { readonly activeElement: Element | null; + readonly fullscreenElement: Element | null; + readonly pointerLockElement: Element | null; /** * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document. */ @@ -4707,6 +4762,7 @@ declare var DocumentTimeline: { new(options?: DocumentTimelineOptions): DocumentTimeline; }; +/** The DocumentType interface represents a Node containing a doctype. */ interface DocumentType extends Node, ChildNode { readonly name: string; readonly publicId: string; @@ -4718,6 +4774,7 @@ declare var DocumentType: { new(): DocumentType; }; +/** The DragEvent interface is a DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way. */ interface DragEvent extends MouseEvent { /** * Returns the DataTransfer object for the event. @@ -4730,6 +4787,7 @@ declare var DragEvent: { new(type: string, eventInitDict?: DragEventInit): DragEvent; }; +/** Inherits properties from its parent, AudioNode. */ interface DynamicsCompressorNode extends AudioNode { readonly attack: AudioParam; readonly knee: AudioParam; @@ -4749,6 +4807,7 @@ interface EXT_blend_minmax { readonly MIN_EXT: GLenum; } +/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */ interface EXT_frag_depth { } @@ -4762,6 +4821,7 @@ interface EXT_sRGB { interface EXT_shader_texture_lod { } +/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */ interface EXT_texture_filter_anisotropic { readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum; readonly TEXTURE_MAX_ANISOTROPY_EXT: GLenum; @@ -4772,6 +4832,7 @@ interface ElementEventMap { "fullscreenerror": Event; } +/** Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. */ interface Element extends Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, Animatable { readonly assignedSlot: HTMLSlotElement | null; readonly attributes: NamedNodeMap; @@ -4830,7 +4891,7 @@ interface Element extends Node, ParentNode, NonDocumentTypeChildNode, ChildNode, /** * Creates a shadow root for element and returns it. */ - attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot; + attachShadow(init: ShadowRootInit): ShadowRoot; /** * Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise. */ @@ -4895,8 +4956,14 @@ interface Element extends Node, ParentNode, NonDocumentTypeChildNode, ChildNode, removeAttributeNode(attr: Attr): Attr; /** * Displays element fullscreen and resolves promise when done. + * When supplied, options's navigationUI member indicates whether showing + * navigation UI while in fullscreen is preferred or not. If set to "show", navigation + * simplicity is preferred over screen space, and if set to "hide", more screen space + * is preferred. User agents are always free to honor user preference over the application's. The + * default value "auto" indicates no application preference. */ - requestFullscreen(): Promise; + requestFullscreen(options?: FullscreenOptions): Promise; + requestPointerLock(): void; scroll(options?: ScrollToOptions): void; scroll(x: number, y: number): void; scrollBy(options?: ScrollToOptions): void; @@ -4947,6 +5014,7 @@ interface ElementCreationOptions { is?: string; } +/** The ErrorEvent interface represents events providing information related to errors in scripts or in files. */ interface ErrorEvent extends Event { readonly colno: number; readonly error: any; @@ -4960,6 +5028,7 @@ declare var ErrorEvent: { new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent; }; +/** The Event interface represents any event which takes place in the DOM; some are user-generated (such as mouse or keyboard events), while others are generated by APIs (such as events that indicate an animation has finished running, a video has been paused, and so forth). While events are usually triggered by such "external" sources, they can also be triggered programmatically, such as by calling the HTMLElement.click() method of an element, or by defining the event, then sending it to a specified target using EventTarget.dispatchEvent(). There are many types of events, some of which use other interfaces based on the main Event interface. Event itself contains the properties and methods which are common to all events. */ interface Event { /** * Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. @@ -4985,7 +5054,7 @@ interface Event { readonly isTrusted: boolean; returnValue: boolean; /** @deprecated */ - readonly srcElement: Element | null; + readonly srcElement: EventTarget | null; /** * Returns the object to which event is dispatched (its target). */ @@ -5033,28 +5102,50 @@ interface EventListenerObject { handleEvent(evt: Event): void; } +interface EventSourceEventMap { + "error": Event; + "message": MessageEvent; + "open": Event; +} + interface EventSource extends EventTarget { + onerror: ((this: EventSource, ev: Event) => any) | null; + onmessage: ((this: EventSource, ev: MessageEvent) => any) | null; + onopen: ((this: EventSource, ev: Event) => any) | null; + /** + * Returns the state of this EventSource object's connection. It can have the + * values described below. + */ + readonly readyState: number; + /** + * Returns the URL providing the event stream. + */ + readonly url: string; + /** + * Returns true if the credentials mode + * for connection requests to the URL providing the + * event stream is set to "include", and false otherwise. + */ + readonly withCredentials: boolean; + close(): void; readonly CLOSED: number; readonly CONNECTING: number; readonly OPEN: number; - onerror: (evt: MessageEvent) => any; - onmessage: (evt: MessageEvent) => any; - onopen: (evt: MessageEvent) => any; - readonly readyState: number; - readonly url: string; - readonly withCredentials: boolean; - close(): void; + addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var EventSource: { prototype: EventSource; new(url: string, eventSourceInitDict?: EventSourceInit): EventSource; + readonly CLOSED: number; + readonly CONNECTING: number; + readonly OPEN: number; }; -interface EventSourceInit { - readonly withCredentials: boolean; -} - +/** EventTarget is an interface implemented by objects that can receive events and may have listeners for them. */ interface EventTarget { /** * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. @@ -5107,6 +5198,7 @@ interface External { IsSearchProviderInstalled(): void; } +/** The File interface provides information about files and allows JavaScript in a web page to access their content. */ interface File extends Blob { readonly lastModified: number; readonly name: string; @@ -5117,6 +5209,7 @@ declare var File: { new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File; }; +/** An object of this type is returned by the files property of the HTML element; this lets you access the list of files selected with the element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */ interface FileList { readonly length: number; item(index: number): File | null; @@ -5137,6 +5230,7 @@ interface FileReaderEventMap { "progress": ProgressEvent; } +/** The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. */ interface FileReader extends EventTarget { readonly error: DOMException | null; onabort: ((this: FileReader, ev: ProgressEvent) => any) | null; @@ -5169,6 +5263,7 @@ declare var FileReader: { readonly LOADING: number; }; +/** The FocusEvent interface represents focus-related events like focus, blur, focusin, or focusout. */ interface FocusEvent extends UIEvent { readonly relatedTarget: EventTarget; initFocusEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, relatedTargetArg: EventTarget): void; @@ -5193,6 +5288,7 @@ declare var FocusNavigationEvent: { new(type: string, eventInitDict?: FocusNavigationEventInit): FocusNavigationEvent; }; +/** The FormData interface provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". */ interface FormData { append(name: string, value: string | Blob, fileName?: string): void; delete(name: string): void; @@ -5208,6 +5304,7 @@ declare var FormData: { new(form?: HTMLFormElement): FormData; }; +/** The GainNode interface represents a change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels. */ interface GainNode extends AudioNode { readonly gain: AudioParam; } @@ -5217,13 +5314,13 @@ declare var GainNode: { new(context: BaseAudioContext, options?: GainOptions): GainNode; }; +/** The Gamepad interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. */ interface Gamepad { - readonly axes: number[]; - readonly buttons: GamepadButton[]; + readonly axes: ReadonlyArray; + readonly buttons: ReadonlyArray; readonly connected: boolean; - readonly displayId: number; readonly hand: GamepadHand; - readonly hapticActuators: GamepadHapticActuator[]; + readonly hapticActuators: ReadonlyArray; readonly id: string; readonly index: number; readonly mapping: GamepadMappingType; @@ -5236,6 +5333,7 @@ declare var Gamepad: { new(): Gamepad; }; +/** The GamepadButton interface defines an individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. */ interface GamepadButton { readonly pressed: boolean; readonly touched: boolean; @@ -5247,15 +5345,17 @@ declare var GamepadButton: { new(): GamepadButton; }; +/** The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. */ interface GamepadEvent extends Event { readonly gamepad: Gamepad; } declare var GamepadEvent: { prototype: GamepadEvent; - new(typeArg: string, eventInitDict?: GamepadEventInit): GamepadEvent; + new(type: string, eventInitDict: GamepadEventInit): GamepadEvent; }; +/** The GamepadHapticActuator interface of the Gamepad API represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware. */ interface GamepadHapticActuator { readonly type: GamepadHapticActuatorType; pulse(value: number, duration: number): Promise; @@ -5266,6 +5366,7 @@ declare var GamepadHapticActuator: { new(): GamepadHapticActuator; }; +/** The GamepadPose interface of the Gamepad API represents the pose of a WebVR controller at a given timestamp (which includes orientation, position, velocity, and acceleration information.) */ interface GamepadPose { readonly angularAcceleration: Float32Array | null; readonly angularVelocity: Float32Array | null; @@ -5282,16 +5383,13 @@ declare var GamepadPose: { new(): GamepadPose; }; +/** The Geolocation interface represents an object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location. */ interface Geolocation { clearWatch(watchId: number): void; getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void; watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number; } -interface GetSVGDocument { - getSVGDocument(): Document; -} - interface GlobalEventHandlersEventMap { "abort": UIEvent; "animationcancel": AnimationEvent; @@ -5356,11 +5454,13 @@ interface GlobalEventHandlersEventMap { "ratechange": Event; "reset": Event; "resize": UIEvent; - "scroll": UIEvent; + "scroll": Event; "securitypolicyviolation": SecurityPolicyViolationEvent; "seeked": Event; "seeking": Event; - "select": UIEvent; + "select": Event; + "selectionchange": Event; + "selectstart": Event; "stalled": Event; "submit": Event; "suspend": Event; @@ -5475,7 +5575,7 @@ interface GlobalEventHandlers { * Fires when an error occurs during object loading. * @param ev The event. */ - onerror: ErrorEventHandler; + onerror: OnErrorEventHandler; /** * Fires when the object receives focus. * @param ev The event. @@ -5591,7 +5691,7 @@ interface GlobalEventHandlers { * Fires when the user repositions the scroll box in the scroll bar on the object. * @param ev The event. */ - onscroll: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; + onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null; /** * Occurs when the seek operation ends. @@ -5607,7 +5707,9 @@ interface GlobalEventHandlers { * Fires when the current selection changes. * @param ev The event. */ - onselect: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; + onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; + onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; + onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** * Occurs when the download has stopped. * @param ev The event. @@ -5675,6 +5777,7 @@ declare var HTMLAllCollection: { new(): HTMLAllCollection; }; +/** The HTMLAnchorElement interface represents hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */ interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils { /** * Sets or retrieves the character set used to encode the object. @@ -5783,6 +5886,7 @@ declare var HTMLAppletElement: { new(): HTMLAppletElement; }; +/** The HTMLAreaElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of area elements. */ interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils { /** * Sets or retrieves a text alternative to the graphic. @@ -5821,6 +5925,7 @@ declare var HTMLAreaElement: { new(): HTMLAreaElement; }; +/** The HTMLAudioElement interface provides access to the properties of elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface. */ interface HTMLAudioElement extends HTMLMediaElement { addEventListener(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -5833,6 +5938,7 @@ declare var HTMLAudioElement: { new(): HTMLAudioElement; }; +/** The HTMLBRElement interface represents a HTML line break element (). It inherits from HTMLElement. */ interface HTMLBRElement extends HTMLElement { /** * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document. @@ -5850,6 +5956,7 @@ declare var HTMLBRElement: { new(): HTMLBRElement; }; +/** The HTMLBaseElement interface contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface. */ interface HTMLBaseElement extends HTMLElement { /** * Gets or sets the baseline URL on which relative links are based. @@ -5870,6 +5977,7 @@ declare var HTMLBaseElement: { new(): HTMLBaseElement; }; +/** The HTMLBaseFontElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating elements. */ interface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty { /** * Sets or retrieves the current typeface family. @@ -5896,6 +6004,7 @@ interface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandle "orientationchange": Event; } +/** The HTMLBodyElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating body elements. */ interface HTMLBodyElement extends HTMLElement, WindowEventHandlers { /** @deprecated */ aLink: string; @@ -5925,6 +6034,7 @@ declare var HTMLBodyElement: { new(): HTMLBodyElement; }; +/** The HTMLButtonElement interface provides properties and methods (beyond the object interface it also has available to them by inheritance) for manipulating the layout and presentation of button elements. */ interface HTMLButtonElement extends HTMLElement { /** * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing. @@ -6001,6 +6111,7 @@ declare var HTMLButtonElement: { new(): HTMLButtonElement; }; +/** The HTMLCanvasElement interface provides properties and methods for manipulating the layout and presentation of elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface. */ interface HTMLCanvasElement extends HTMLElement { /** * Gets or sets the height of a canvas element on a document. @@ -6034,6 +6145,7 @@ declare var HTMLCanvasElement: { new(): HTMLCanvasElement; }; +/** The HTMLCollection interface represents a generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. */ interface HTMLCollectionBase { /** * Sets or retrieves the number of objects in a collection. @@ -6064,6 +6176,7 @@ interface HTMLCollectionOf extends HTMLCollectionBase { [index: number]: T; } +/** The HTMLDListElement interface provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list elements. */ interface HTMLDListElement extends HTMLElement { /** @deprecated */ compact: boolean; @@ -6078,6 +6191,7 @@ declare var HTMLDListElement: { new(): HTMLDListElement; }; +/** The HTMLDataElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating elements. */ interface HTMLDataElement extends HTMLElement { value: string; addEventListener(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -6091,6 +6205,7 @@ declare var HTMLDataElement: { new(): HTMLDataElement; }; +/** The HTMLDataListElement interface provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate elements and their content. */ interface HTMLDataListElement extends HTMLElement { readonly options: HTMLCollectionOf; addEventListener(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -6148,6 +6263,7 @@ declare var HTMLDirectoryElement: { new(): HTMLDirectoryElement; }; +/** The HTMLDivElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating elements. */ interface HTMLDivElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. @@ -6165,6 +6281,7 @@ declare var HTMLDivElement: { new(): HTMLDivElement; }; +/** The HTMLDocument property of Window objects is an alias that browsers expose for the Document interface object. */ interface HTMLDocument extends Document { addEventListener(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -6180,6 +6297,7 @@ declare var HTMLDocument: { interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, DocumentAndElementEventHandlersEventMap { } +/** The HTMLElement interface represents any HTML element. Some elements directly implement this interface, others implement it via an interface that inherits it. */ interface HTMLElement extends Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, HTMLOrSVGElement, ElementCSSInlineStyle { accessKey: string; readonly accessKeyLabel: string; @@ -6209,56 +6327,29 @@ declare var HTMLElement: { new(): HTMLElement; }; -interface HTMLEmbedElement extends HTMLElement, GetSVGDocument { +/** The HTMLEmbedElement interface, which provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating elements. */ +interface HTMLEmbedElement extends HTMLElement { /** @deprecated */ align: string; /** * Sets or retrieves the height of the object. */ height: string; - hidden: any; - /** - * Gets or sets whether the DLNA PlayTo device is available. - */ - msPlayToDisabled: boolean; - /** - * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server. - */ - msPlayToPreferredSourceUri: string; - /** - * Gets or sets the primary DLNA PlayTo device. - */ - msPlayToPrimary: boolean; - /** - * Gets the source associated with the media element for use by the PlayToManager. - */ - readonly msPlayToSource: any; /** * Sets or retrieves the name of the object. */ /** @deprecated */ name: string; - /** - * Retrieves the palette used for the embedded document. - */ - readonly palette: string; - /** - * Retrieves the URL of the plug-in used to view an embedded document. - */ - readonly pluginspage: string; - readonly readyState: string; /** * Sets or retrieves a URL to be loaded by the object. */ src: string; - /** - * Sets or retrieves the height and width units of the embed object. - */ - units: string; + type: string; /** * Sets or retrieves the width of the object. */ width: string; + getSVGDocument(): Document | null; addEventListener(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -6270,6 +6361,7 @@ declare var HTMLEmbedElement: { new(): HTMLEmbedElement; }; +/** The HTMLFieldSetElement interface has special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of field-set elements. */ interface HTMLFieldSetElement extends HTMLElement { disabled: boolean; readonly elements: HTMLCollection; @@ -6312,6 +6404,7 @@ declare var HTMLFieldSetElement: { new(): HTMLFieldSetElement; }; +/** Implements the document object model (DOM) representation of the font element. The HTML Font Element defines the font size, font face and color of text. */ interface HTMLFontElement extends HTMLElement { /** @deprecated */ color: string; @@ -6333,6 +6426,7 @@ declare var HTMLFontElement: { new(): HTMLFontElement; }; +/** The HTMLFormControlsCollection interface represents a collection of HTML form control elements. */ interface HTMLFormControlsCollection extends HTMLCollectionBase { /** * element = collection[name] @@ -6345,6 +6439,7 @@ declare var HTMLFormControlsCollection: { new(): HTMLFormControlsCollection; }; +/** The HTMLFormElement interface represents a element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. */ interface HTMLFormElement extends HTMLElement { /** * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form. @@ -6481,6 +6576,7 @@ declare var HTMLFrameElement: { interface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap { } +/** The HTMLFrameSetElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating elements. */ interface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers { /** * Sets or retrieves the frame widths of the object. @@ -6503,6 +6599,7 @@ declare var HTMLFrameSetElement: { new(): HTMLFrameSetElement; }; +/** The HTMLHRElement interface provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating elements. */ interface HTMLHRElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. @@ -6534,6 +6631,7 @@ declare var HTMLHRElement: { new(): HTMLHRElement; }; +/** The HTMLHeadElement interface contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface. */ interface HTMLHeadElement extends HTMLElement { addEventListener(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -6546,6 +6644,7 @@ declare var HTMLHeadElement: { new(): HTMLHeadElement; }; +/** The HTMLHeadingElement interface represents the different heading elements. It inherits methods and properties from the HTMLElement interface. */ interface HTMLHeadingElement extends HTMLElement { /** * Sets or retrieves a value that indicates the table alignment. @@ -6563,6 +6662,7 @@ declare var HTMLHeadingElement: { new(): HTMLHeadingElement; }; +/** The HTMLHtmlElement interface serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface. */ interface HTMLHtmlElement extends HTMLElement { /** * Sets or retrieves the DTD version that governs the current document. @@ -6594,12 +6694,14 @@ interface HTMLHyperlinkElementUtils { username: string; } -interface HTMLIFrameElement extends HTMLElement, GetSVGDocument { +/** The HTMLIFrameElement interface provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements. */ +interface HTMLIFrameElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. */ /** @deprecated */ align: string; + allow: string; allowFullscreen: boolean; allowPaymentRequest: boolean; /** @@ -6609,7 +6711,7 @@ interface HTMLIFrameElement extends HTMLElement, GetSVGDocument { /** * Retrieves the object of the specified. */ - readonly contentWindow: Window | null; + readonly contentWindow: WindowProxy | null; /** * Sets or retrieves whether to display a border for the frame. */ @@ -6638,7 +6740,7 @@ interface HTMLIFrameElement extends HTMLElement, GetSVGDocument { * Sets or retrieves the frame name. */ name: string; - readonly referrerPolicy: ReferrerPolicy; + referrerPolicy: ReferrerPolicy; readonly sandbox: DOMTokenList; /** * Sets or retrieves whether the frame can be scrolled. @@ -6657,6 +6759,7 @@ interface HTMLIFrameElement extends HTMLElement, GetSVGDocument { * Sets or retrieves the width of the object. */ width: string; + getSVGDocument(): Document | null; addEventListener(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -6668,6 +6771,7 @@ declare var HTMLIFrameElement: { new(): HTMLIFrameElement; }; +/** The HTMLImageElement interface provides special properties and methods for manipulating the layout and presentation of elements. */ interface HTMLImageElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. @@ -6757,6 +6861,7 @@ declare var HTMLImageElement: { new(): HTMLImageElement; }; +/** The HTMLInputElement interface provides special properties and methods for manipulating the options, layout, and presentation of elements. */ interface HTMLInputElement extends HTMLElement { /** * Sets or retrieves a comma-separated list of content types. @@ -6961,6 +7066,7 @@ declare var HTMLInputElement: { new(): HTMLInputElement; }; +/** The HTMLLIElement interface exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements. */ interface HTMLLIElement extends HTMLElement { /** @deprecated */ type: string; @@ -6979,6 +7085,7 @@ declare var HTMLLIElement: { new(): HTMLLIElement; }; +/** The HTMLLabelElement interface gives access to properties specific to elements. It inherits methods and properties from the base HTMLElement interface. */ interface HTMLLabelElement extends HTMLElement { readonly control: HTMLElement | null; /** @@ -7000,6 +7107,7 @@ declare var HTMLLabelElement: { new(): HTMLLabelElement; }; +/** The HTMLLegendElement is an interface allowing to access properties of the elements. It inherits properties and methods from the HTMLElement interface. */ interface HTMLLegendElement extends HTMLElement { /** @deprecated */ align: string; @@ -7018,6 +7126,7 @@ declare var HTMLLegendElement: { new(): HTMLLegendElement; }; +/** The HTMLLinkElement interface represents reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface. */ interface HTMLLinkElement extends HTMLElement, LinkStyle { as: string; /** @@ -7084,6 +7193,7 @@ declare var HTMLMainElement: { new(): HTMLMainElement; }; +/** The HTMLMapElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements. */ interface HTMLMapElement extends HTMLElement { /** * Retrieves a collection of the area objects defined for the given map object. @@ -7110,6 +7220,7 @@ interface HTMLMarqueeElementEventMap extends HTMLElementEventMap { "start": Event; } +/** The HTMLMarqueeElement interface provides methods to manipulate elements. */ interface HTMLMarqueeElement extends HTMLElement { /** @deprecated */ behavior: string; @@ -7157,8 +7268,10 @@ declare var HTMLMarqueeElement: { interface HTMLMediaElementEventMap extends HTMLElementEventMap { "encrypted": MediaEncryptedEvent; "msneedkey": Event; + "waitingforkey": Event; } +/** The HTMLMediaElement interface adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. */ interface HTMLMediaElement extends HTMLElement { /** * Returns an AudioTrackList object with the audio tracks for a given video element. @@ -7252,6 +7365,7 @@ interface HTMLMediaElement extends HTMLElement { onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null; /** @deprecated */ onmsneedkey: ((this: HTMLMediaElement, ev: Event) => any) | null; + onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null; /** * Gets a flag that specifies whether playback is paused. */ @@ -7364,6 +7478,7 @@ declare var HTMLMenuElement: { new(): HTMLMenuElement; }; +/** The HTMLMetaElement interface contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface. */ interface HTMLMetaElement extends HTMLElement { /** * Gets or sets meta-information to associate with httpEquiv or name. @@ -7393,6 +7508,7 @@ declare var HTMLMetaElement: { new(): HTMLMetaElement; }; +/** The HTML elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of elements. */ interface HTMLMeterElement extends HTMLElement { high: number; readonly labels: NodeListOf; @@ -7412,6 +7528,7 @@ declare var HTMLMeterElement: { new(): HTMLMeterElement; }; +/** The HTMLModElement interface provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is and . */ interface HTMLModElement extends HTMLElement { /** * Sets or retrieves reference information about the object. @@ -7432,6 +7549,7 @@ declare var HTMLModElement: { new(): HTMLModElement; }; +/** The HTMLOListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements. */ interface HTMLOListElement extends HTMLElement { /** @deprecated */ compact: boolean; @@ -7452,11 +7570,8 @@ declare var HTMLOListElement: { new(): HTMLOListElement; }; -interface HTMLObjectElement extends HTMLElement, GetSVGDocument { - /** - * Retrieves a string of the URL where the object tag can be found. This is often the href of the document that the object is in, or the value set by a base element. - */ - readonly BaseHref: string; +/** The HTMLObjectElement interface provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of element, representing external resources. */ +interface HTMLObjectElement extends HTMLElement { /** @deprecated */ align: string; /** @@ -7485,6 +7600,7 @@ interface HTMLObjectElement extends HTMLElement, GetSVGDocument { * Retrieves the document object of the page or frame. */ readonly contentDocument: Document | null; + readonly contentWindow: WindowProxy | null; /** * Sets or retrieves the URL that references the data of the object. */ @@ -7501,27 +7617,10 @@ interface HTMLObjectElement extends HTMLElement, GetSVGDocument { height: string; /** @deprecated */ hspace: number; - /** - * Gets or sets whether the DLNA PlayTo device is available. - */ - msPlayToDisabled: boolean; - /** - * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server. - */ - msPlayToPreferredSourceUri: string; - /** - * Gets or sets the primary DLNA PlayTo device. - */ - msPlayToPrimary: boolean; - /** - * Gets the source associated with the media element for use by the PlayToManager. - */ - readonly msPlayToSource: any; /** * Sets or retrieves the name of the object. */ name: string; - readonly readyState: number; /** * Sets or retrieves a message to be displayed while an object is loading. */ @@ -7531,7 +7630,7 @@ interface HTMLObjectElement extends HTMLElement, GetSVGDocument { * Sets or retrieves the MIME type of the object. */ type: string; - typemustmatch: boolean; + typeMustMatch: boolean; /** * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map. */ @@ -7558,6 +7657,7 @@ interface HTMLObjectElement extends HTMLElement, GetSVGDocument { * Returns whether a form will validate when it is submitted, without having to submit it. */ checkValidity(): boolean; + getSVGDocument(): Document | null; reportValidity(): boolean; /** * Sets a custom error message that is displayed when a form is submitted. @@ -7575,6 +7675,7 @@ declare var HTMLObjectElement: { new(): HTMLObjectElement; }; +/** The HTMLOptGroupElement interface provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of elements. */ interface HTMLOptGroupElement extends HTMLElement { disabled: boolean; /** @@ -7596,6 +7697,7 @@ declare var HTMLOptGroupElement: { new(): HTMLOptGroupElement; }; +/** The HTMLOptionElement interface represents elements and inherits all classes and methods of the HTMLElement interface. */ interface HTMLOptionElement extends HTMLElement { /** * Sets or retrieves the status of an option. @@ -7637,6 +7739,7 @@ declare var HTMLOptionElement: { new(): HTMLOptionElement; }; +/** HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the "options" property of select. */ interface HTMLOptionsCollection extends HTMLCollectionOf { /** * Returns the number of elements in the collection. @@ -7672,12 +7775,13 @@ declare var HTMLOptionsCollection: { interface HTMLOrSVGElement { readonly dataset: DOMStringMap; - nonce: string; + nonce?: string; tabIndex: number; blur(): void; focus(options?: FocusOptions): void; } +/** The HTMLOutputElement interface provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of elements. */ interface HTMLOutputElement extends HTMLElement { defaultValue: string; readonly form: HTMLFormElement | null; @@ -7703,6 +7807,7 @@ declare var HTMLOutputElement: { new(): HTMLOutputElement; }; +/** The HTMLParagraphElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating elements. */ interface HTMLParagraphElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. @@ -7720,6 +7825,7 @@ declare var HTMLParagraphElement: { new(): HTMLParagraphElement; }; +/** The HTMLParamElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating elements, representing a pair of a key and a value that acts as a parameter for an element. */ interface HTMLParamElement extends HTMLElement { /** * Sets or retrieves the name of an input parameter for an element. @@ -7750,6 +7856,7 @@ declare var HTMLParamElement: { new(): HTMLParamElement; }; +/** The HTMLPictureElement interface represents a HTML element. It doesn't implement specific properties or methods. */ interface HTMLPictureElement extends HTMLElement { addEventListener(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -7762,6 +7869,7 @@ declare var HTMLPictureElement: { new(): HTMLPictureElement; }; +/** The HTMLPreElement interface expose specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating block of preformatted text. */ interface HTMLPreElement extends HTMLElement { /** * Sets or gets a value that you can use to implement your own width functionality for the object. @@ -7779,6 +7887,7 @@ declare var HTMLPreElement: { new(): HTMLPreElement; }; +/** The HTMLProgressElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of elements. */ interface HTMLProgressElement extends HTMLElement { readonly labels: NodeListOf; /** @@ -7804,6 +7913,7 @@ declare var HTMLProgressElement: { new(): HTMLProgressElement; }; +/** The HTMLQuoteElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like and , but not the element. */ interface HTMLQuoteElement extends HTMLElement { /** * Sets or retrieves reference information about the object. @@ -7820,6 +7930,7 @@ declare var HTMLQuoteElement: { new(): HTMLQuoteElement; }; +/** HTML
elements. */ interface HTMLParagraphElement extends HTMLElement { /** * Sets or retrieves how the object is aligned with adjacent text. @@ -7720,6 +7825,7 @@ declare var HTMLParagraphElement: { new(): HTMLParagraphElement; }; +/** The HTMLParamElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating elements, representing a pair of a key and a value that acts as a parameter for an element. */ interface HTMLParamElement extends HTMLElement { /** * Sets or retrieves the name of an input parameter for an element. @@ -7750,6 +7856,7 @@ declare var HTMLParamElement: { new(): HTMLParamElement; }; +/** The HTMLPictureElement interface represents a HTML element. It doesn't implement specific properties or methods. */ interface HTMLPictureElement extends HTMLElement { addEventListener(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -7762,6 +7869,7 @@ declare var HTMLPictureElement: { new(): HTMLPictureElement; }; +/** The HTMLPreElement interface expose specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating block of preformatted text. */ interface HTMLPreElement extends HTMLElement { /** * Sets or gets a value that you can use to implement your own width functionality for the object. @@ -7779,6 +7887,7 @@ declare var HTMLPreElement: { new(): HTMLPreElement; }; +/** The HTMLProgressElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of elements. */ interface HTMLProgressElement extends HTMLElement { readonly labels: NodeListOf; /** @@ -7804,6 +7913,7 @@ declare var HTMLProgressElement: { new(): HTMLProgressElement; }; +/** The HTMLQuoteElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like and , but not the element. */ interface HTMLQuoteElement extends HTMLElement { /** * Sets or retrieves reference information about the object. @@ -7820,6 +7930,7 @@ declare var HTMLQuoteElement: { new(): HTMLQuoteElement; }; +/** HTML
and , but not the element. */ interface HTMLQuoteElement extends HTMLElement { /** * Sets or retrieves reference information about the object. @@ -7820,6 +7930,7 @@ declare var HTMLQuoteElement: { new(): HTMLQuoteElement; }; +/** HTML
, but not the element. */ interface HTMLQuoteElement extends HTMLElement { /** * Sets or retrieves reference information about the object. @@ -7820,6 +7930,7 @@ declare var HTMLQuoteElement: { new(): HTMLQuoteElement; }; +/** HTML