1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package vuetifyx
- import (
- "context"
- "fmt"
- "github.com/qor5/web"
- h "github.com/theplant/htmlgo"
- )
- type VXSelectManyBuilder struct {
- tag *h.HTMLTagBuilder
- selectedItems interface{}
- items interface{}
- searchItemsFunc string
- }
- func VXSelectMany(children ...h.HTMLComponent) (r *VXSelectManyBuilder) {
- r = &VXSelectManyBuilder{
- tag: h.Tag("vx-selectmany").Children(children...),
- }
- return
- }
- func (b *VXSelectManyBuilder) Items(v interface{}) (r *VXSelectManyBuilder) {
- b.items = v
- return b
- }
- func (b *VXSelectManyBuilder) SelectedItems(v interface{}) (r *VXSelectManyBuilder) {
- b.selectedItems = v
- return b
- }
- func (b *VXSelectManyBuilder) SearchItemsFunc(v string) (r *VXSelectManyBuilder) {
- b.searchItemsFunc = v
- return b
- }
- func (b *VXSelectManyBuilder) ItemText(v string) (r *VXSelectManyBuilder) {
- b.tag.Attr("item-text", v)
- return b
- }
- func (b *VXSelectManyBuilder) ItemValue(v string) (r *VXSelectManyBuilder) {
- b.tag.Attr("item-value", v)
- return b
- }
- func (b *VXSelectManyBuilder) Label(v string) (r *VXSelectManyBuilder) {
- b.tag.Attr("label", v)
- return b
- }
- func (b *VXSelectManyBuilder) AddItemLabel(v string) (r *VXSelectManyBuilder) {
- b.tag.Attr("add-item-label", v)
- return b
- }
- func (b *VXSelectManyBuilder) FieldName(v string) (r *VXSelectManyBuilder) {
- b.tag.Attr(web.VFieldName(v)...)
- return b
- }
- func (b *VXSelectManyBuilder) MarshalHTML(ctx context.Context) (r []byte, err error) {
- if b.searchItemsFunc != "" {
- b.tag.Attr(":search-items-func", fmt.Sprintf(`function(val){return $plaid().eventFunc("%s").query("keyword", val).go()}`, b.searchItemsFunc))
- } else {
- b.tag.Attr(":items", b.items)
- }
- b.tag.Attr(":selected-items", b.selectedItems)
- return b.tag.MarshalHTML(ctx)
- }
|