Skip to content

Commit 361b981

Browse files
authored
Merge pull request #324 from falsandtru/SVGElementTagNameMap
Add SVGElementTagNameMap
2 parents 9bf6e7e + 6cddee3 commit 361b981

File tree

2 files changed

+55
-48
lines changed

2 files changed

+55
-48
lines changed

TS.fsx

+9-4
Original file line numberDiff line numberDiff line change
@@ -812,22 +812,26 @@ module Emit =
812812
Pt.Printl "interface HTMLElementTagNameMap {"
813813
Pt.IncreaseIndent()
814814
for e in tagNameToEleName do
815-
if iNameToIDependList.ContainsKey e.Value && Seq.contains "HTMLElement" iNameToIDependList.[e.Value] then
815+
if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "SVGElement" iNameToIDependList.[e.Value]) then
816816
Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value
817817
Pt.DecreaseIndent()
818818
Pt.Printl "}"
819819
Pt.Printl ""
820820

821-
let EmitElementTagNameMap () =
822-
Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap {"
821+
let EmitSVGElementTagNameMap () =
822+
Pt.Printl "interface SVGElementTagNameMap {"
823823
Pt.IncreaseIndent()
824824
for e in tagNameToEleName do
825-
if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "HTMLElement" iNameToIDependList.[e.Value]) then
825+
if iNameToIDependList.ContainsKey e.Value && Seq.contains "SVGElement" iNameToIDependList.[e.Value] then
826826
Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value
827827
Pt.DecreaseIndent()
828828
Pt.Printl "}"
829829
Pt.Printl ""
830830

831+
let EmitElementTagNameMap () =
832+
Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }"
833+
Pt.Printl ""
834+
831835
let EmitElementListTagNameMap () =
832836
Pt.Printl "type ElementListTagNameMap = {"
833837
Pt.PrintWithAddedIndent "[key in keyof ElementTagNameMap]: NodeListOf<ElementTagNameMap[key]>"
@@ -1516,6 +1520,7 @@ module Emit =
15161520

15171521
if flavor <> Worker then
15181522
EmitHTMLElementTagNameMap()
1523+
EmitSVGElementTagNameMap()
15191524
EmitElementTagNameMap()
15201525
EmitElementListTagNameMap()
15211526
EmitNamedConstructors()

baselines/dom.generated.d.ts

+46-44
Original file line numberDiff line numberDiff line change
@@ -14841,28 +14841,46 @@ interface VoidFunction {
1484114841
}
1484214842
interface HTMLElementTagNameMap {
1484314843
"a": HTMLAnchorElement;
14844+
"abbr": HTMLElement;
14845+
"acronym": HTMLElement;
14846+
"address": HTMLElement;
1484414847
"applet": HTMLAppletElement;
1484514848
"area": HTMLAreaElement;
14849+
"article": HTMLElement;
14850+
"aside": HTMLElement;
1484614851
"audio": HTMLAudioElement;
14852+
"b": HTMLElement;
1484714853
"base": HTMLBaseElement;
1484814854
"basefont": HTMLBaseFontElement;
14855+
"bdo": HTMLElement;
14856+
"big": HTMLElement;
1484914857
"blockquote": HTMLQuoteElement;
1485014858
"body": HTMLBodyElement;
1485114859
"br": HTMLBRElement;
1485214860
"button": HTMLButtonElement;
1485314861
"canvas": HTMLCanvasElement;
1485414862
"caption": HTMLTableCaptionElement;
14863+
"center": HTMLElement;
14864+
"cite": HTMLElement;
14865+
"code": HTMLElement;
1485514866
"col": HTMLTableColElement;
1485614867
"colgroup": HTMLTableColElement;
1485714868
"data": HTMLDataElement;
1485814869
"datalist": HTMLDataListElement;
14870+
"dd": HTMLElement;
1485914871
"del": HTMLModElement;
14872+
"dfn": HTMLElement;
1486014873
"dir": HTMLDirectoryElement;
1486114874
"div": HTMLDivElement;
1486214875
"dl": HTMLDListElement;
14876+
"dt": HTMLElement;
14877+
"em": HTMLElement;
1486314878
"embed": HTMLEmbedElement;
1486414879
"fieldset": HTMLFieldSetElement;
14880+
"figcaption": HTMLElement;
14881+
"figure": HTMLElement;
1486514882
"font": HTMLFontElement;
14883+
"footer": HTMLElement;
1486614884
"form": HTMLFormElement;
1486714885
"frame": HTMLFrameElement;
1486814886
"frameset": HTMLFrameSetElement;
@@ -14873,24 +14891,34 @@ interface HTMLElementTagNameMap {
1487314891
"h5": HTMLHeadingElement;
1487414892
"h6": HTMLHeadingElement;
1487514893
"head": HTMLHeadElement;
14894+
"header": HTMLElement;
14895+
"hgroup": HTMLElement;
1487614896
"hr": HTMLHRElement;
1487714897
"html": HTMLHtmlElement;
14898+
"i": HTMLElement;
1487814899
"iframe": HTMLIFrameElement;
1487914900
"img": HTMLImageElement;
1488014901
"input": HTMLInputElement;
1488114902
"ins": HTMLModElement;
1488214903
"isindex": HTMLUnknownElement;
14904+
"kbd": HTMLElement;
14905+
"keygen": HTMLElement;
1488314906
"label": HTMLLabelElement;
1488414907
"legend": HTMLLegendElement;
1488514908
"li": HTMLLIElement;
1488614909
"link": HTMLLinkElement;
1488714910
"listing": HTMLPreElement;
1488814911
"map": HTMLMapElement;
14912+
"mark": HTMLElement;
1488914913
"marquee": HTMLMarqueeElement;
1489014914
"menu": HTMLMenuElement;
1489114915
"meta": HTMLMetaElement;
1489214916
"meter": HTMLMeterElement;
14917+
"nav": HTMLElement;
1489314918
"nextid": HTMLUnknownElement;
14919+
"nobr": HTMLElement;
14920+
"noframes": HTMLElement;
14921+
"noscript": HTMLElement;
1489414922
"object": HTMLObjectElement;
1489514923
"ol": HTMLOListElement;
1489614924
"optgroup": HTMLOptGroupElement;
@@ -14899,14 +14927,25 @@ interface HTMLElementTagNameMap {
1489914927
"p": HTMLParagraphElement;
1490014928
"param": HTMLParamElement;
1490114929
"picture": HTMLPictureElement;
14930+
"plaintext": HTMLElement;
1490214931
"pre": HTMLPreElement;
1490314932
"progress": HTMLProgressElement;
1490414933
"q": HTMLQuoteElement;
14934+
"rt": HTMLElement;
14935+
"ruby": HTMLElement;
14936+
"s": HTMLElement;
14937+
"samp": HTMLElement;
1490514938
"script": HTMLScriptElement;
14939+
"section": HTMLElement;
1490614940
"select": HTMLSelectElement;
14941+
"small": HTMLElement;
1490714942
"source": HTMLSourceElement;
1490814943
"span": HTMLSpanElement;
14944+
"strike": HTMLElement;
14945+
"strong": HTMLElement;
1490914946
"style": HTMLStyleElement;
14947+
"sub": HTMLElement;
14948+
"sup": HTMLElement;
1491014949
"table": HTMLTableElement;
1491114950
"tbody": HTMLTableSectionElement;
1491214951
"td": HTMLTableDataCellElement;
@@ -14919,33 +14958,22 @@ interface HTMLElementTagNameMap {
1491914958
"title": HTMLTitleElement;
1492014959
"tr": HTMLTableRowElement;
1492114960
"track": HTMLTrackElement;
14961+
"tt": HTMLElement;
14962+
"u": HTMLElement;
1492214963
"ul": HTMLUListElement;
14964+
"var": HTMLElement;
1492314965
"video": HTMLVideoElement;
14966+
"wbr": HTMLElement;
1492414967
"x-ms-webview": MSHTMLWebViewElement;
1492514968
"xmp": HTMLPreElement;
1492614969
}
1492714970

14928-
interface ElementTagNameMap extends HTMLElementTagNameMap {
14929-
"abbr": HTMLElement;
14930-
"acronym": HTMLElement;
14931-
"address": HTMLElement;
14932-
"article": HTMLElement;
14933-
"aside": HTMLElement;
14934-
"b": HTMLElement;
14935-
"bdo": HTMLElement;
14936-
"big": HTMLElement;
14937-
"center": HTMLElement;
14971+
interface SVGElementTagNameMap {
1493814972
"circle": SVGCircleElement;
14939-
"cite": HTMLElement;
1494014973
"clippath": SVGClipPathElement;
14941-
"code": HTMLElement;
14942-
"dd": HTMLElement;
1494314974
"defs": SVGDefsElement;
1494414975
"desc": SVGDescElement;
14945-
"dfn": HTMLElement;
14946-
"dt": HTMLElement;
1494714976
"ellipse": SVGEllipseElement;
14948-
"em": HTMLElement;
1494914977
"feblend": SVGFEBlendElement;
1495014978
"fecolormatrix": SVGFEColorMatrixElement;
1495114979
"fecomponenttransfer": SVGFEComponentTransferElement;
@@ -14970,60 +14998,34 @@ interface ElementTagNameMap extends HTMLElementTagNameMap {
1497014998
"fespotlight": SVGFESpotLightElement;
1497114999
"fetile": SVGFETileElement;
1497215000
"feturbulence": SVGFETurbulenceElement;
14973-
"figcaption": HTMLElement;
14974-
"figure": HTMLElement;
1497515001
"filter": SVGFilterElement;
14976-
"footer": HTMLElement;
1497715002
"foreignobject": SVGForeignObjectElement;
1497815003
"g": SVGGElement;
14979-
"header": HTMLElement;
14980-
"hgroup": HTMLElement;
14981-
"i": HTMLElement;
1498215004
"image": SVGImageElement;
14983-
"kbd": HTMLElement;
14984-
"keygen": HTMLElement;
1498515005
"line": SVGLineElement;
1498615006
"lineargradient": SVGLinearGradientElement;
14987-
"mark": HTMLElement;
1498815007
"marker": SVGMarkerElement;
1498915008
"mask": SVGMaskElement;
1499015009
"metadata": SVGMetadataElement;
14991-
"nav": HTMLElement;
14992-
"nobr": HTMLElement;
14993-
"noframes": HTMLElement;
14994-
"noscript": HTMLElement;
1499515010
"path": SVGPathElement;
1499615011
"pattern": SVGPatternElement;
14997-
"plaintext": HTMLElement;
1499815012
"polygon": SVGPolygonElement;
1499915013
"polyline": SVGPolylineElement;
1500015014
"radialgradient": SVGRadialGradientElement;
1500115015
"rect": SVGRectElement;
15002-
"rt": HTMLElement;
15003-
"ruby": HTMLElement;
15004-
"s": HTMLElement;
15005-
"samp": HTMLElement;
15006-
"section": HTMLElement;
15007-
"small": HTMLElement;
1500815016
"stop": SVGStopElement;
15009-
"strike": HTMLElement;
15010-
"strong": HTMLElement;
15011-
"sub": HTMLElement;
15012-
"sup": HTMLElement;
1501315017
"svg": SVGSVGElement;
1501415018
"switch": SVGSwitchElement;
1501515019
"symbol": SVGSymbolElement;
1501615020
"text": SVGTextElement;
1501715021
"textpath": SVGTextPathElement;
1501815022
"tspan": SVGTSpanElement;
15019-
"tt": HTMLElement;
15020-
"u": HTMLElement;
1502115023
"use": SVGUseElement;
15022-
"var": HTMLElement;
1502315024
"view": SVGViewElement;
15024-
"wbr": HTMLElement;
1502515025
}
1502615026

15027+
interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }
15028+
1502715029
type ElementListTagNameMap = {
1502815030
[key in keyof ElementTagNameMap]: NodeListOf<ElementTagNameMap[key]>
1502915031
};

0 commit comments

Comments
 (0)