hx_trigger.go 1.0 KB

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