hx_trigger.go 946 B

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