90 lines
1.8 KiB
Rust
90 lines
1.8 KiB
Rust
use crate::prelude::*;
|
|
|
|
pub_handle!(COMPONENT_HIDDEN);
|
|
|
|
#[rustfmt::skip]
|
|
#[derive(Default)]
|
|
pub struct Hidden {
|
|
weight: isize,
|
|
name : IdentifierValue,
|
|
value : AttributeValue,
|
|
}
|
|
|
|
impl ComponentTrait for Hidden {
|
|
fn new() -> Self {
|
|
Hidden::default()
|
|
}
|
|
|
|
fn handle(&self) -> Handle {
|
|
COMPONENT_HIDDEN
|
|
}
|
|
|
|
fn weight(&self) -> isize {
|
|
self.weight
|
|
}
|
|
|
|
fn default_render(&self, _: &mut PageContext) -> Markup {
|
|
let id = self.name().get().map(|name| concat_string!("value-", name));
|
|
html! {
|
|
input type="hidden" id=[id] name=[self.name().get()] value=[self.value().get()];
|
|
}
|
|
}
|
|
|
|
fn as_ref_any(&self) -> &dyn AnyComponent {
|
|
self
|
|
}
|
|
|
|
fn as_mut_any(&mut self) -> &mut dyn AnyComponent {
|
|
self
|
|
}
|
|
}
|
|
|
|
impl Hidden {
|
|
pub fn set(name: &str, value: &str) -> Self {
|
|
Hidden::new().with_name(name).with_value(value)
|
|
}
|
|
|
|
// Hidden BUILDER.
|
|
|
|
pub fn with_weight(mut self, weight: isize) -> Self {
|
|
self.alter_weight(weight);
|
|
self
|
|
}
|
|
|
|
pub fn with_name(mut self, name: &str) -> Self {
|
|
self.alter_name(name);
|
|
self
|
|
}
|
|
|
|
pub fn with_value(mut self, value: &str) -> Self {
|
|
self.alter_value(value);
|
|
self
|
|
}
|
|
|
|
// Hidden ALTER.
|
|
|
|
pub fn alter_weight(&mut self, weight: isize) -> &mut Self {
|
|
self.weight = weight;
|
|
self
|
|
}
|
|
|
|
pub fn alter_name(&mut self, name: &str) -> &mut Self {
|
|
self.name.alter_value(name);
|
|
self
|
|
}
|
|
|
|
pub fn alter_value(&mut self, value: &str) -> &mut Self {
|
|
self.value.alter_value(value);
|
|
self
|
|
}
|
|
|
|
// Hidden GETTERS.
|
|
|
|
pub fn name(&self) -> &IdentifierValue {
|
|
&self.name
|
|
}
|
|
|
|
pub fn value(&self) -> &AttributeValue {
|
|
&self.value
|
|
}
|
|
}
|