// package wlabel -- WUI метка. package wlabel import ( "fmt" "strings" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes" . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wctx" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtext" . "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wwidget" ) // WuiLabel -- WUI метка. type WuiLabel struct { IWuiWidget text IWuiText } // NewWuiLabel -- возвращает новую метку. func NewWuiLabel(text string) IResult[*WuiLabel] { sf := &WuiLabel{ IWuiWidget: wwidget.NewWuiWidget(), text: wtext.NewWuiText(text), } resWuiCtx := wctx.GetWuiCtx() if resWuiCtx.IsErr() { err := fmt.Errorf("NewWuiLabel(): text=%q, err=\n\t%w", text, resWuiCtx.Err()) return NewErr[*WuiLabel](err) } wCtx := resWuiCtx.Val() resSet := wCtx.Set(sf.Id(), sf, "WUI-метка") if resSet.IsErr() { err := fmt.Errorf("NewWuiLabel(): text=%q, in set label to wui xtx, err=\n\t%w", text, resSet.Err()) return NewErr[*WuiLabel](err) } _ = IWuiLabel(sf) return NewRes(sf) } // Text -- возвращает текст метки. func (sf *WuiLabel) Text() IWuiText { return sf.text } const ( strBeg = `
{.txt}
` ) // Html -- возвращает HTML-представление текста. func (sf *WuiLabel) Html() string { strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id()) strRes = strings.ReplaceAll(strRes, "{.txt}", sf.text.Get()) return strRes }