lustre_hx

Types

Event

Used by the trigger function.

A trigger can also have additional modifiers that change its behavior, represented as a List(EventModifier).

pub type Event {
  Event(event: String, modifiers: List(EventModifier))
}

Constructors

  • Event(event: String, modifiers: List(EventModifier))
pub type EventModifier {
  Once
  Changed
  Delay(Timing)
  Throttle(Timing)
  From(extended_css_selector: ExtendedCssSelector)
  Target(css_selector: String)
  Consume
  QueueEvent(Option(Queue))
}

Constructors

  • Once
  • Changed
  • Delay(Timing)
  • Throttle(Timing)
  • From(extended_css_selector: ExtendedCssSelector)
  • Target(css_selector: String)
  • Consume
  • QueueEvent(Option(Queue))
pub type ExtendedCssSelector {
  CssSelector(css_selector: String)
  Document
  Window
  Closest(css_selector: String)
  Find(css_selector: String)
  Next(css_selector: Option(String))
  Previous(css_selector: Option(String))
  This
}

Constructors

  • CssSelector(css_selector: String)
  • Document
  • Window
  • Closest(css_selector: String)
  • Find(css_selector: String)
  • Next(css_selector: Option(String))
  • Previous(css_selector: Option(String))
  • This
pub type Queue {
  First
  Last
  All
}

Constructors

  • First
  • Last
  • All
pub type Scroll {
  Top
  Bottom
}

Constructors

  • Top
  • Bottom
pub type Swap {
  InnerHTML
  OuterHTML
  After
  Afterbegin
  Beforebegin
  Beforeend
  Afterend
  Delete
  SwapNone
}

Constructors

  • InnerHTML
  • OuterHTML
  • After
  • Afterbegin
  • Beforebegin
  • Beforeend
  • Afterend
  • Delete
  • SwapNone
pub type SwapOption {
  Transition(Bool)
  Swap(Timing)
  Settle(Timing)
  IgnoreTitle(Bool)
  Scroll(Scroll)
  Show(Scroll)
  FocusScroll(Bool)
}

Constructors

  • Transition(Bool)
  • Swap(Timing)
  • Settle(Timing)
  • IgnoreTitle(Bool)
  • Scroll(Scroll)
  • Show(Scroll)
  • FocusScroll(Bool)
pub type SyncOption {
  Default(css_selector: String)
  Drop(css_selector: String)
  Abort(css_selector: String)
  Replace(css_selector: String)
  SyncQueue(css_selector: String, queue: Queue)
}

Constructors

  • Default(css_selector: String)
  • Drop(css_selector: String)
  • Abort(css_selector: String)
  • Replace(css_selector: String)
  • SyncQueue(css_selector: String, queue: Queue)
pub type Timing {
  Seconds(Int)
  Milliseconds(Int)
}

Constructors

  • Seconds(Int)
  • Milliseconds(Int)

Functions

pub fn boost(set: Bool) -> Attribute(a)
pub fn confirm(confirm_text: String) -> Attribute(a)
pub fn delete(url url: String) -> Attribute(a)

hx-delete

Issues a DELETE request to the given URL when the element is triggered. By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute, provided by lustre_hx.trigger, to specify which event will cause the request.

pub fn get(url url: String) -> Attribute(a)

hx-get

Issues a GET request to the given URL when the element is triggered. By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute, provided by lustre_hx.trigger, to specify which event will cause the request.

pub fn hyper_script(script: String) -> Attribute(a)
pub fn indicator(
  css_selector_or_closest css_selector_or_closest: String,
) -> Attribute(a)
pub fn patch(url url: String) -> Attribute(a)

hx-patch

Issues a PATCH request to the given URL when the element is triggered. By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute, provided by lustre_hx.trigger, to specify which event will cause the request.

pub fn post(url url: String) -> Attribute(a)

hx-post

Issues a POST request to the given URL when the element is triggered. By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute, provided by lustre_hx.trigger, to specify which event will cause the request.

pub fn push_url(bool: Bool) -> Attribute(a)
pub fn put(url url: String) -> Attribute(a)

hx-put

Issues a PUT request to the given URL when the element is triggered. By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute, provided by lustre_hx.trigger, to specify which event will cause the request.

pub fn select(css_selector: String) -> Attribute(a)
pub fn swap(
  swap swap: Swap,
  with_option option: Option(SwapOption),
) -> Attribute(a)
pub fn sync(syncronize_on: List(SyncOption)) -> Attribute(a)
pub fn target(
  extended_css_selector extended_css_selector: ExtendedCssSelector,
) -> Attribute(a)
pub fn trigger(events: List(Event)) -> Attribute(a)

hx-trigger

By default, AJAX requests are triggered by the “natural” event of an element:

  • input, textarea & select are triggered on the change event
  • form is triggered on the submit event
  • everything else is triggered by the click event

If you want different behavior you can use the hx-trigger attribute to specify which event will cause the request.

pub fn trigger_load_polling(
  timing_declaration timing: Timing,
  filters filters: String,
) -> Attribute(a)
pub fn trigger_polling(
  timing_declaration timing: Timing,
  filters filters: Option(String),
) -> Attribute(a)
Search Document