// package wlabel -- WUI метка
package wlabel

import (
	"strings"

	"gitp78su.ipnodns.ru/svi/kern/v2/wui/wctx"
	"gitp78su.ipnodns.ru/svi/kern/v2/wui/wtext"
	. "gitp78su.ipnodns.ru/svi/kern/v2/wui/wtypes"
	"gitp78su.ipnodns.ru/svi/kern/v2/wui/wwidget"
)

// WuiLabel -- WUI метка
type WuiLabel struct {
	IWuiWidget
	text IWuiText
}

// NewWuiLabel -- возвращает новую метку
func NewWuiLabel(text string) *WuiLabel {
	sf := &WuiLabel{
		IWuiWidget: wwidget.NewWuiWidget(),
		text:       wtext.NewWuiText(text),
	}
	wCtx := wctx.GetWuiCtx()
	wCtx.Set(sf.Id(), sf, "WUI-метка")
	_ = IWuiLabel(sf)
	return sf
}

// Text -- возвращает текст метки
func (sf *WuiLabel) Text() IWuiText {
	return sf.text
}

const (
	strBeg = `<div id="{.id}">{.txt}</div>`
)

// Html -- возвращает HTML-представление текста
func (sf *WuiLabel) Html() string {
	strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id())
	strRes = strings.ReplaceAll(strRes, "{.txt}", sf.text.Get())
	return strRes
}
