diff --git a/TS.fsx b/TS.fsx index c9c99019b..1e87f1873 100644 --- a/TS.fsx +++ b/TS.fsx @@ -812,22 +812,26 @@ module Emit = Pt.Printl "interface HTMLElementTagNameMap {" Pt.IncreaseIndent() for e in tagNameToEleName do - if iNameToIDependList.ContainsKey e.Value && Seq.contains "HTMLElement" iNameToIDependList.[e.Value] then + if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "SVGElement" iNameToIDependList.[e.Value]) then Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value Pt.DecreaseIndent() Pt.Printl "}" Pt.Printl "" - let EmitElementTagNameMap () = - Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap {" + let EmitSVGElementTagNameMap () = + Pt.Printl "interface SVGElementTagNameMap {" Pt.IncreaseIndent() for e in tagNameToEleName do - if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "HTMLElement" iNameToIDependList.[e.Value]) then + if iNameToIDependList.ContainsKey e.Value && Seq.contains "SVGElement" iNameToIDependList.[e.Value] then Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value Pt.DecreaseIndent() Pt.Printl "}" Pt.Printl "" + let EmitElementTagNameMap () = + Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }" + Pt.Printl "" + let EmitElementListTagNameMap () = Pt.Printl "type ElementListTagNameMap = {" Pt.PrintWithAddedIndent "[key in keyof ElementTagNameMap]: NodeListOf" @@ -1516,6 +1520,7 @@ module Emit = if flavor <> Worker then EmitHTMLElementTagNameMap() + EmitSVGElementTagNameMap() EmitElementTagNameMap() EmitElementListTagNameMap() EmitNamedConstructors() diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index ec9bc6834..cb98799a1 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -14838,28 +14838,46 @@ interface VoidFunction { } interface HTMLElementTagNameMap { "a": HTMLAnchorElement; + "abbr": HTMLElement; + "acronym": HTMLElement; + "address": HTMLElement; "applet": HTMLAppletElement; "area": HTMLAreaElement; + "article": HTMLElement; + "aside": HTMLElement; "audio": HTMLAudioElement; + "b": HTMLElement; "base": HTMLBaseElement; "basefont": HTMLBaseFontElement; + "bdo": HTMLElement; + "big": HTMLElement; "blockquote": HTMLQuoteElement; "body": HTMLBodyElement; "br": HTMLBRElement; "button": HTMLButtonElement; "canvas": HTMLCanvasElement; "caption": HTMLTableCaptionElement; + "center": HTMLElement; + "cite": HTMLElement; + "code": HTMLElement; "col": HTMLTableColElement; "colgroup": HTMLTableColElement; "data": HTMLDataElement; "datalist": HTMLDataListElement; + "dd": HTMLElement; "del": HTMLModElement; + "dfn": HTMLElement; "dir": HTMLDirectoryElement; "div": HTMLDivElement; "dl": HTMLDListElement; + "dt": HTMLElement; + "em": HTMLElement; "embed": HTMLEmbedElement; "fieldset": HTMLFieldSetElement; + "figcaption": HTMLElement; + "figure": HTMLElement; "font": HTMLFontElement; + "footer": HTMLElement; "form": HTMLFormElement; "frame": HTMLFrameElement; "frameset": HTMLFrameSetElement; @@ -14870,24 +14888,34 @@ interface HTMLElementTagNameMap { "h5": HTMLHeadingElement; "h6": HTMLHeadingElement; "head": HTMLHeadElement; + "header": HTMLElement; + "hgroup": HTMLElement; "hr": HTMLHRElement; "html": HTMLHtmlElement; + "i": HTMLElement; "iframe": HTMLIFrameElement; "img": HTMLImageElement; "input": HTMLInputElement; "ins": HTMLModElement; "isindex": HTMLUnknownElement; + "kbd": HTMLElement; + "keygen": HTMLElement; "label": HTMLLabelElement; "legend": HTMLLegendElement; "li": HTMLLIElement; "link": HTMLLinkElement; "listing": HTMLPreElement; "map": HTMLMapElement; + "mark": HTMLElement; "marquee": HTMLMarqueeElement; "menu": HTMLMenuElement; "meta": HTMLMetaElement; "meter": HTMLMeterElement; + "nav": HTMLElement; "nextid": HTMLUnknownElement; + "nobr": HTMLElement; + "noframes": HTMLElement; + "noscript": HTMLElement; "object": HTMLObjectElement; "ol": HTMLOListElement; "optgroup": HTMLOptGroupElement; @@ -14896,14 +14924,25 @@ interface HTMLElementTagNameMap { "p": HTMLParagraphElement; "param": HTMLParamElement; "picture": HTMLPictureElement; + "plaintext": HTMLElement; "pre": HTMLPreElement; "progress": HTMLProgressElement; "q": HTMLQuoteElement; + "rt": HTMLElement; + "ruby": HTMLElement; + "s": HTMLElement; + "samp": HTMLElement; "script": HTMLScriptElement; + "section": HTMLElement; "select": HTMLSelectElement; + "small": HTMLElement; "source": HTMLSourceElement; "span": HTMLSpanElement; + "strike": HTMLElement; + "strong": HTMLElement; "style": HTMLStyleElement; + "sub": HTMLElement; + "sup": HTMLElement; "table": HTMLTableElement; "tbody": HTMLTableSectionElement; "td": HTMLTableDataCellElement; @@ -14916,33 +14955,22 @@ interface HTMLElementTagNameMap { "title": HTMLTitleElement; "tr": HTMLTableRowElement; "track": HTMLTrackElement; + "tt": HTMLElement; + "u": HTMLElement; "ul": HTMLUListElement; + "var": HTMLElement; "video": HTMLVideoElement; + "wbr": HTMLElement; "x-ms-webview": MSHTMLWebViewElement; "xmp": HTMLPreElement; } -interface ElementTagNameMap extends HTMLElementTagNameMap { - "abbr": HTMLElement; - "acronym": HTMLElement; - "address": HTMLElement; - "article": HTMLElement; - "aside": HTMLElement; - "b": HTMLElement; - "bdo": HTMLElement; - "big": HTMLElement; - "center": HTMLElement; +interface SVGElementTagNameMap { "circle": SVGCircleElement; - "cite": HTMLElement; "clippath": SVGClipPathElement; - "code": HTMLElement; - "dd": HTMLElement; "defs": SVGDefsElement; "desc": SVGDescElement; - "dfn": HTMLElement; - "dt": HTMLElement; "ellipse": SVGEllipseElement; - "em": HTMLElement; "feblend": SVGFEBlendElement; "fecolormatrix": SVGFEColorMatrixElement; "fecomponenttransfer": SVGFEComponentTransferElement; @@ -14967,60 +14995,34 @@ interface ElementTagNameMap extends HTMLElementTagNameMap { "fespotlight": SVGFESpotLightElement; "fetile": SVGFETileElement; "feturbulence": SVGFETurbulenceElement; - "figcaption": HTMLElement; - "figure": HTMLElement; "filter": SVGFilterElement; - "footer": HTMLElement; "foreignobject": SVGForeignObjectElement; "g": SVGGElement; - "header": HTMLElement; - "hgroup": HTMLElement; - "i": HTMLElement; "image": SVGImageElement; - "kbd": HTMLElement; - "keygen": HTMLElement; "line": SVGLineElement; "lineargradient": SVGLinearGradientElement; - "mark": HTMLElement; "marker": SVGMarkerElement; "mask": SVGMaskElement; "metadata": SVGMetadataElement; - "nav": HTMLElement; - "nobr": HTMLElement; - "noframes": HTMLElement; - "noscript": HTMLElement; "path": SVGPathElement; "pattern": SVGPatternElement; - "plaintext": HTMLElement; "polygon": SVGPolygonElement; "polyline": SVGPolylineElement; "radialgradient": SVGRadialGradientElement; "rect": SVGRectElement; - "rt": HTMLElement; - "ruby": HTMLElement; - "s": HTMLElement; - "samp": HTMLElement; - "section": HTMLElement; - "small": HTMLElement; "stop": SVGStopElement; - "strike": HTMLElement; - "strong": HTMLElement; - "sub": HTMLElement; - "sup": HTMLElement; "svg": SVGSVGElement; "switch": SVGSwitchElement; "symbol": SVGSymbolElement; "text": SVGTextElement; "textpath": SVGTextPathElement; "tspan": SVGTSpanElement; - "tt": HTMLElement; - "u": HTMLElement; "use": SVGUseElement; - "var": HTMLElement; "view": SVGViewElement; - "wbr": HTMLElement; } +interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { } + type ElementListTagNameMap = { [key in keyof ElementTagNameMap]: NodeListOf };