From 6a71e80d7b94b9fb807e71441d25a3b5becf24a2 Mon Sep 17 00:00:00 2001 From: Inkeliz Date: Tue, 6 Nov 2018 09:28:09 -0200 Subject: [PATCH 1/4] Add HTMLTemplateElement https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement --- dom.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dom.go b/dom.go index f84d139..932d3ee 100644 --- a/dom.go +++ b/dom.go @@ -404,6 +404,8 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLUnknownElement{BasicHTMLElement: el} case js.Global.Get("HTMLVideoElement"): return &HTMLVideoElement{HTMLMediaElement: &HTMLMediaElement{BasicHTMLElement: el}} + case js.Global.Get("HTMLTemplateElement"): + return &HTMLTemplateElement{el} case js.Global.Get("HTMLElement"): return el default: @@ -3026,6 +3028,12 @@ type HTMLUnknownElement struct{ *BasicHTMLElement } type HTMLVideoElement struct{ *HTMLMediaElement } +type HTMLTemplateElement struct{ *BasicHTMLElement } + +func (e *HTMLTemplateElement) Content() DocumentFragment { + return wrapDocumentFragment(e.Get("content")) +} + type ValidityState struct { *js.Object CustomError bool `js:"customError"` From 52bf9bb2ac47f74e7f4d663f62f60f1057bd6a3d Mon Sep 17 00:00:00 2001 From: Inkeliz Date: Fri, 16 Nov 2018 01:10:56 -0200 Subject: [PATCH 2/4] Reorder --- dom.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dom.go b/dom.go index 932d3ee..d915919 100644 --- a/dom.go +++ b/dom.go @@ -390,6 +390,8 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLTableRowElement{BasicHTMLElement: el} case js.Global.Get("HTMLTableSectionElement"): return &HTMLTableSectionElement{BasicHTMLElement: el} + case js.Global.Get("HTMLTemplateElement"): + return &HTMLTemplateElement{BasicHTMLElement: el} case js.Global.Get("HTMLTextAreaElement"): return &HTMLTextAreaElement{BasicHTMLElement: el} case js.Global.Get("HTMLTimeElement"): @@ -404,8 +406,6 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLUnknownElement{BasicHTMLElement: el} case js.Global.Get("HTMLVideoElement"): return &HTMLVideoElement{HTMLMediaElement: &HTMLMediaElement{BasicHTMLElement: el}} - case js.Global.Get("HTMLTemplateElement"): - return &HTMLTemplateElement{el} case js.Global.Get("HTMLElement"): return el default: @@ -2938,6 +2938,12 @@ func (e *HTMLTableSectionElement) InsertRow(index int) *HTMLTableRowElement { return wrapHTMLElement(e.Call("insertRow", index)).(*HTMLTableRowElement) } +type HTMLTemplateElement struct{ *BasicHTMLElement } + +func (e *HTMLTemplateElement) Content() DocumentFragment { + return wrapDocumentFragment(e.Get("content")) +} + type HTMLTextAreaElement struct { *BasicHTMLElement Autocomplete string `js:"autocomplete"` @@ -3028,12 +3034,6 @@ type HTMLUnknownElement struct{ *BasicHTMLElement } type HTMLVideoElement struct{ *HTMLMediaElement } -type HTMLTemplateElement struct{ *BasicHTMLElement } - -func (e *HTMLTemplateElement) Content() DocumentFragment { - return wrapDocumentFragment(e.Get("content")) -} - type ValidityState struct { *js.Object CustomError bool `js:"customError"` From 2979c346528bc2ce54c6000b6fd36b91b1ffeb76 Mon Sep 17 00:00:00 2001 From: Inkeliz Date: Fri, 21 Dec 2018 23:59:18 -0200 Subject: [PATCH 3/4] HTML{Dialog, Picture, Slot}Element --- dom.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/dom.go b/dom.go index d915919..cc6f96d 100644 --- a/dom.go +++ b/dom.go @@ -290,6 +290,8 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLDataElement{BasicHTMLElement: el} case js.Global.Get("HTMLDataListElement"): return &HTMLDataListElement{BasicHTMLElement: el} + case js.Global.Get("HTMLDialogElement"): + return &HTMLDialogElement{BasicHTMLElement: el} case js.Global.Get("HTMLDirectoryElement"): return &HTMLDirectoryElement{BasicHTMLElement: el} case js.Global.Get("HTMLDivElement"): @@ -358,6 +360,8 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLParagraphElement{BasicHTMLElement: el} case js.Global.Get("HTMLParamElement"): return &HTMLParamElement{BasicHTMLElement: el} + case js.Global.Get("HTMLPictureElement"): + return &HTMLPictureElement{BasicHTMLElement: el} case js.Global.Get("HTMLPreElement"): return &HTMLPreElement{BasicHTMLElement: el} case js.Global.Get("HTMLProgressElement"): @@ -368,6 +372,8 @@ func wrapHTMLElement(o *js.Object) HTMLElement { return &HTMLScriptElement{BasicHTMLElement: el} case js.Global.Get("HTMLSelectElement"): return &HTMLSelectElement{BasicHTMLElement: el} + case js.Global.Get("HTMLSlotElement"): + return &HTMLSlotElement{BasicHTMLElement: el} case js.Global.Get("HTMLSourceElement"): return &HTMLSourceElement{BasicHTMLElement: el} case js.Global.Get("HTMLSpanElement"): @@ -2296,6 +2302,24 @@ func (e *HTMLDataListElement) Options() []*HTMLOptionElement { return getOptions(e.Object, "options") } +type HTMLDialogElement struct { + *BasicHTMLElement + Open bool `js:"open"` + ReturnValue string `js:"returnValue"` +} + +func (e *HTMLDialogElement) Close(returnValue string) { + e.Call("close", returnValue) +} + +func (e *HTMLDialogElement) Show() { + e.Call("show") +} + +func (e *HTMLDialogElement) ShowModal() { + e.Call("showModal") +} + type HTMLDirectoryElement struct{ *BasicHTMLElement } type HTMLDivElement struct{ *BasicHTMLElement } @@ -2768,6 +2792,7 @@ type HTMLParamElement struct { Value string `js:"value"` } +type HTMLPictureElement struct{ *BasicHTMLElement } type HTMLPreElement struct{ *BasicHTMLElement } type HTMLProgressElement struct { @@ -2861,6 +2886,15 @@ func (e *HTMLSelectElement) SetCustomValidity(s string) { e.Call("setCustomValidity", s) } +type HTMLSlotElement struct { + *BasicHTMLElement + Name string `js:"name"` +} + +func (e *HTMLSlotElement) AssignedNodes() []Element { + return nodeListToElements(e.Call("assignedNodes")) +} + type HTMLSourceElement struct { *BasicHTMLElement Media string `js:"media"` From ec897f4be07ce67d5859e738781d491e596510b1 Mon Sep 17 00:00:00 2001 From: Inkeliz Date: Sun, 23 Dec 2018 21:00:30 -0200 Subject: [PATCH 4/4] Add Element.Closest and Element.Matches --- dom.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dom.go b/dom.go index cc6f96d..3eeb055 100644 --- a/dom.go +++ b/dom.go @@ -1524,6 +1524,7 @@ type Element interface { Attributes() map[string]string Class() *TokenList + Closest(string) Element ID() string SetID(string) TagName() string @@ -1535,6 +1536,7 @@ type Element interface { GetElementsByTagNameNS(ns string, name string) []Element HasAttribute(string) bool HasAttributeNS(ns string, name string) bool + Matches(string) bool QuerySelector(string) Element QuerySelectorAll(string) []Element RemoveAttribute(string) @@ -1727,6 +1729,10 @@ func (e *BasicElement) SetClass(s string) { e.Set("className", s) } +func (e *BasicElement) Closest(s string) Element { + return wrapElement(e.Call("closest", s)) +} + func (e *BasicElement) ID() string { return e.Get("id").String() } @@ -1767,6 +1773,10 @@ func (e *BasicElement) HasAttributeNS(ns string, name string) bool { return e.Call("hasAttributeNS", ns, name).Bool() } +func (e *BasicElement) Matches(s string) bool { + return e.Call("matches", s).Bool() +} + func (e *BasicElement) QuerySelector(s string) Element { return wrapElement(e.Call("querySelector", s)) }