use crate::components::form::form_node::{FormNode, ToFormNode};
use crate::components::form::props::InputProps;
use crate::{ComponentResult, RUMWebTemplate, RUMWebTemplateSafe};
#[derive(RUMWebTemplate, Debug, Clone)]
#[template(
source = "
<{{element}} {{props|safe}} class='{{css_class}}'>{{data}}</{{element}}>
",
ext = "html"
)]
pub struct InputElement<'a> {
element: &'a str,
data: &'a str,
props: &'a str,
css_class: &'a str,
}
impl RUMWebTemplateSafe for InputElement<'_> {}
impl ToFormNode<InputElement<'_>> for InputElement<'_> {}
pub fn input_element(element: &str, data: &str, props: InputProps, css_class: &str) -> ComponentResult<FormNode> {
Ok(InputElement {
element,
data,
props: &props.to_string().replace("\\\\", "\\"),
css_class
}.to_form_node())
}