hx_target.go 936 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // package hx_target -- атрибут HTMX (цель замены)
  2. package hx_target
  3. import (
  4. "sync"
  5. . "gitp78su.ipnodns.ru/svi/kern/wui/wtypes"
  6. )
  7. // HxSwap -- атрибут HTMX (цель замены)
  8. type HxSwap struct {
  9. sync.RWMutex
  10. val string
  11. }
  12. // NewHxTarget -- возвращает новую цель замены
  13. func NewHxTarget() *HxSwap {
  14. sf := &HxSwap{}
  15. _ = IHxTarget(sf)
  16. return sf
  17. }
  18. // String -- возвращает строковое представление тэга
  19. func (sf *HxSwap) String() string {
  20. sf.RLock()
  21. defer sf.RUnlock()
  22. return `hx-target="` + 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. }