David Vogel
114a7d893c
- Add input field and general data binding - Rename SymbolSlot to IconSlot - Remove d3c-color-accent - Update icons page - Add input example page - Update button to support highlighting - Update navigation entry to support highlighting - Add d3c-button-only-icon to button and let sidebar use that - Use d3c-button-transparent in sidebar - Add focus indicator to buttons - Rename CSS color variables and change definition of some - Let pagination use input:Button - Add some padding to the inline code component
361 lines
16 KiB
Go
361 lines
16 KiB
Go
package main
|
|
|
|
// Code generated by vugu via vugugen. Please regenerate instead of editing or add additional code in a separate file. DO NOT EDIT.
|
|
|
|
import "fmt"
|
|
import "reflect"
|
|
import "github.com/vugu/vjson"
|
|
import "github.com/vugu/vugu"
|
|
import js "github.com/vugu/vugu/js"
|
|
|
|
import (
|
|
"git.d3nexus.de/Dadido3/D3vugu-components/components/input"
|
|
"git.d3nexus.de/Dadido3/D3vugu-components/components/layout"
|
|
"git.d3nexus.de/Dadido3/D3vugu-components/components/view"
|
|
)
|
|
|
|
func (c *PageOverlays) Build(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
|
|
vgout = &vugu.BuildOut{}
|
|
|
|
var vgiterkey interface{}
|
|
_ = vgiterkey
|
|
var vgn *vugu.VGNode
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "div", Attr: []vugu.VGAttribute(nil)}
|
|
vgout.Out = append(vgout.Out, vgn) // root for output
|
|
{
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0x4EC622AB5385FB53^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*layout.Container)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(layout.Container)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "h1", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML(vugu.HTML("Overlays"))
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "p", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "Overlays are handled by the "}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0xA86AF7B68F8AD85^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*view.CodeInline)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(view.CodeInline)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "overlay.Container"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: " component which has to be embedded into your root component."}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "p", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "Every page or component that creates overlays has to embed the "}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0xAA81EC30F5C8A301^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*view.CodeInline)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(view.CodeInline)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "overlay.OverlayContainerRef"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: " structure. Your wiring function also needs to set the reference to your "}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0x86D5B8E7A405D1BA^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*view.CodeInline)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(view.CodeInline)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "overlay.Container"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: " that you have placed in your root component."}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "h2", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML(vugu.HTML("Modals"))
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "p", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML(vugu.HTML("A simple requester modal is already contained in the overlay package. Use it with:"))
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0x231AC275ADD0C8A2^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*view.Code)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(view.Code)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
|
" c.SetModal(&overlay.ModalRequester{\n" +
|
|
" IconSlot: &icons.LInfoCircle{AttrMap: vugu.AttrMap{\"style\": \"font-size: 2em;\"}},\n" +
|
|
" Title: \"Simple requester\",\n" +
|
|
" Message: \"This is a simple modal requester, are you happy with it?\\nIt also supports multi line text!\",\n" +
|
|
" SignalColor: \"d3c-color-accent\",\n" +
|
|
" ClickAbort: input.ClickFunc(func(event input.ClickEvent) {}),\n" +
|
|
" ClickYes: input.ClickFunc(func(event input.ClickEvent) {}),\n" +
|
|
" })\n" +
|
|
"}")
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0xD96FB389C1BB7FDA^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*input.Button)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(input.Button)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.Click = input.ClickFunc(func(event input.ClickEvent) { c.handleSimpleModalButton(event) })
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "Open simple modal"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "h2", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML(vugu.HTML("Toasts"))
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "p", Attr: []vugu.VGAttribute(nil)}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML(vugu.HTML("A simple text and icon containing toast is already contained in the overlay package. Use it with:"))
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0x4C6CB0EF8A1C94A7^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*view.Code)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(view.Code)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
|
vgparent.AppendChild(vgn)
|
|
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
|
" c.AddToast(&overlay.ToastSimple{\n" +
|
|
" IconSlot: &icons.LInfoCircle{AttrMap: vugu.AttrMap{\"style\": \"font-size: 2em;\"}},\n" +
|
|
" Message: \"This is a simple toast!\\nIt supports multiple lines and has an icon slot.\\nThere also can be multiple of it at the same time, this one was opened at \" + time.Now().Format(time.TimeOnly) + \".\",\n" +
|
|
" SignalColor: \"d3c-color-accent\",\n" +
|
|
" })\n" +
|
|
"}")
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0x27E6D3B288976594^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*input.Button)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(input.Button)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.Click = input.ClickFunc(func(event input.ClickEvent) { c.handleSimpleToastButton(event) })
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "Open simple toast"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
|
vgparent.AppendChild(vgn)
|
|
{
|
|
vgcompKey := vugu.MakeCompKey(0xA065017C7F9FF6D6^vgin.CurrentPositionHash(), vgiterkey)
|
|
// ask BuildEnv for prior instance of this specific component
|
|
vgcomp, _ := vgin.BuildEnv.CachedComponent(vgcompKey).(*input.Button)
|
|
if vgcomp == nil {
|
|
// create new one if needed
|
|
vgcomp = new(input.Button)
|
|
vgin.BuildEnv.WireComponent(vgcomp)
|
|
}
|
|
vgin.BuildEnv.UseComponent(vgcompKey, vgcomp) // ensure we can use this in the cache next time around
|
|
vgcomp.Click = input.ClickFunc(func(event input.ClickEvent) { c.handleWarningToastButton(event) })
|
|
vgcomp.DefaultSlot = vugu.NewBuilderFunc(func(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|
vgn := &vugu.VGNode{Type: vugu.VGNodeType(3)}
|
|
vgout = &vugu.BuildOut{}
|
|
vgout.Out = append(vgout.Out, vgn)
|
|
vgparent := vgn
|
|
_ = vgparent
|
|
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "Open warning toast"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t"}
|
|
vgparent.AppendChild(vgn)
|
|
return
|
|
})
|
|
vgout.Components = append(vgout.Components, vgcomp)
|
|
vgn = &vugu.VGNode{Component: vgcomp}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n"}
|
|
vgparent.AppendChild(vgn)
|
|
}
|
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Data: "style", Attr: []vugu.VGAttribute(nil)}
|
|
{
|
|
vgn.AppendChild(&vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n", Attr: []vugu.VGAttribute(nil)})
|
|
}
|
|
vgout.AppendCSS(vgn)
|
|
return vgout
|
|
}
|
|
|
|
// 'fix' unused imports
|
|
var _ fmt.Stringer
|
|
var _ reflect.Type
|
|
var _ vjson.RawMessage
|
|
var _ js.Value
|