wui_hx.go 2.5 KB

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