whx.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // package whx -- HTMX-атрибуты WUI-объекта.
  2. package whx
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_swap"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_swap_oob"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_target"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_trigger"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_url"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/hx_vals"
  10. . "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
  11. )
  12. // WuiHx -- HTMX-атрибуты WUI-объекта.
  13. type WuiHx struct {
  14. url IHxUrl
  15. trigger IHxTrigger
  16. target IHxTarget
  17. swap IHxSwap
  18. oob IHxSwapOob
  19. vals IHxVals
  20. }
  21. // NewWuiHx -- возвращает новые атрибуты HTMX для WUI-объекта.
  22. func NewWuiHx(path string) *WuiHx {
  23. sf := &WuiHx{
  24. url: hx_url.NewHxUrl(path),
  25. trigger: hx_trigger.NewHxTrigger(),
  26. target: hx_target.NewHxTarget(),
  27. swap: hx_swap.NewHxSwap(),
  28. oob: hx_swap_oob.NewHxSwapOob(),
  29. vals: hx_vals.NewHxVals(),
  30. }
  31. _ = IWuiHx(sf)
  32. return sf
  33. }
  34. // String -- возвращает строку тэгов.
  35. func (sf *WuiHx) String() string {
  36. strOut := sf.url.String() + " " // Не может быть пустым
  37. trig := sf.trigger.Get()
  38. if trig != "" {
  39. strOut += sf.trigger.String() + " "
  40. }
  41. target := sf.target.Get()
  42. if target != "" {
  43. strOut += sf.target.String() + " "
  44. }
  45. swap := sf.swap.Get()
  46. if swap != "" {
  47. strOut += sf.swap.String() + " "
  48. }
  49. oob := sf.oob.Get()
  50. if oob != "" {
  51. strOut += sf.oob.String() + " "
  52. }
  53. valsLen := sf.vals.Len()
  54. if valsLen != 0 {
  55. strOut += sf.vals.String()
  56. }
  57. return strOut
  58. }
  59. // Vals -- возвращает тэг переменных запроса.
  60. func (sf *WuiHx) Vals() IHxVals {
  61. return sf.vals
  62. }
  63. // Url -- возвращает тэг URL.
  64. func (sf *WuiHx) Url() IHxUrl {
  65. return sf.url
  66. }
  67. // Trigger -- возвращает тэг триггера запроса.
  68. func (sf *WuiHx) Trigger() IHxTrigger {
  69. return sf.trigger
  70. }
  71. // Target -- возвращает объект цели замены.
  72. func (sf *WuiHx) Target() IHxTarget {
  73. return sf.target
  74. }
  75. // Oob -- возвращает тэг внеполосной замены.
  76. func (sf *WuiHx) Oob() IHxSwapOob {
  77. return sf.oob
  78. }
  79. // Swap -- возвращает тэг замены.
  80. func (sf *WuiHx) Swap() IHxSwap {
  81. return sf.swap
  82. }