hx_trigger.go 957 B

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