hx_swap.go 881 B

123456789101112131415161718192021222324252627282930313233343536
  1. // package hx_swap -- атрибут HTMX (политика замены).
  2. package hx_swap
  3. import (
  4. "sync"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
  6. mWt "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types"
  7. )
  8. // HxSwap -- атрибут HTMX (политика замены).
  9. type HxSwap struct {
  10. sync.RWMutex
  11. swap *lev0.MTxt
  12. }
  13. // NewHxSwap -- возвращает новую политику замены.
  14. func NewHxSwap() *HxSwap {
  15. sf := &HxSwap{}
  16. _ = mWt.IHxSwap(sf)
  17. return sf
  18. }
  19. // String -- возвращает строковое представление тэга.
  20. func (sf *HxSwap) String() string {
  21. sf.RLock()
  22. defer sf.RUnlock()
  23. return `hx-swap="` + sf.swap.String() + `"`
  24. }
  25. // Swap -- возвращает хранимое значение политики замена.
  26. func (sf *HxSwap) Swap() *lev0.MTxt {
  27. sf.RLock()
  28. defer sf.RUnlock()
  29. return sf.swap
  30. }