hx_swap.go 972 B

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