// package wui_label -- WUI метка. package wui_label import ( "fmt" "strings" mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_ctx" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_text" mWt "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_widget" ) // WuiLabel -- WUI метка. type WuiLabel struct { mWt.IWuiWidget text mWt.IWuiText } // NewWuiLabel -- возвращает новую метку. func NewWuiLabel(text string) *mL0.Result[*WuiLabel] { sf := &WuiLabel{ IWuiWidget: wui_widget.NewWuiWidget(), text: wui_text.NewWuiText(text), } resWuiCtx := wui_ctx.GetWuiCtx() if resWuiCtx.IsErr() { err := fmt.Errorf("NewWuiLabel(): text=%q, err=\n\t%w", text, resWuiCtx.Err()) return mL0.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 mL0.NewErr[*WuiLabel](err) } _ = mWt.IWuiLabel(sf) return mL0.NewRes(sf) } // Text -- возвращает текст метки. func (sf *WuiLabel) Text() mWt.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 }