wui_hx.go 2.4 KB

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