package components import ( "fmt" "html/template" "github.com/GoAdminGroup/go-admin/template/types" ) type BoxAttribute struct { Name string Header template.HTML Body template.HTML Footer template.HTML Title template.HTML Theme string HeadBorder string Attr template.HTMLAttr HeadColor string Class string SecondHeaderClass string SecondHeader template.HTML SecondHeadBorder string SecondHeadColor string Style template.HTMLAttr Padding string types.Attribute } func (compo *BoxAttribute) SetTheme(value string) types.BoxAttribute { compo.Theme = value return compo } func (compo *BoxAttribute) SetClass(value string) types.BoxAttribute { compo.Class = value return compo } func (compo *BoxAttribute) SetHeader(value template.HTML) types.BoxAttribute { compo.Header = value return compo } func (compo *BoxAttribute) SetBody(value template.HTML) types.BoxAttribute { compo.Body = value return compo } func (compo *BoxAttribute) SetStyle(value template.HTMLAttr) types.BoxAttribute { compo.Style = value return compo } func (compo *BoxAttribute) SetAttr(attr template.HTMLAttr) types.BoxAttribute { compo.Attr = attr return compo } func (compo *BoxAttribute) SetIframeStyle(iframe bool) types.BoxAttribute { if iframe { compo.Attr = `style="border-radius: 0px;box-shadow:none;border-top:none;margin-bottom: 0px;"` } return compo } func (compo *BoxAttribute) SetFooter(value template.HTML) types.BoxAttribute { compo.Footer = value return compo } func (compo *BoxAttribute) SetTitle(value template.HTML) types.BoxAttribute { compo.Title = value return compo } func (compo *BoxAttribute) SetHeadColor(value string) types.BoxAttribute { compo.HeadColor = value return compo } func (compo *BoxAttribute) WithHeadBorder() types.BoxAttribute { compo.HeadBorder = "with-border" return compo } func (compo *BoxAttribute) SetSecondHeader(value template.HTML) types.BoxAttribute { compo.SecondHeader = value return compo } func (compo *BoxAttribute) SetSecondHeadColor(value string) types.BoxAttribute { compo.SecondHeadColor = value return compo } func (compo *BoxAttribute) SetSecondHeaderClass(value string) types.BoxAttribute { compo.SecondHeaderClass = value return compo } func (compo *BoxAttribute) SetNoPadding() types.BoxAttribute { compo.Padding = "padding:0;" return compo } func (compo *BoxAttribute) WithSecondHeadBorder() types.BoxAttribute { compo.SecondHeadBorder = "with-border" return compo } func (compo *BoxAttribute) GetContent() template.HTML { if compo.Style == "" { compo.Style = template.HTMLAttr(fmt.Sprintf(`style="%s"`, compo.Padding)) } else { compo.Style = template.HTMLAttr(fmt.Sprintf(`style="%s"`, string(compo.Style)+compo.Padding)) } return ComposeHtml(compo.TemplateList, compo.Separation, *compo, "box") }