♻️ (html): API para id's en Props y componentes

This commit is contained in:
Manuel Cillero 2026-06-20 15:02:23 +02:00
parent 8d0103c257
commit 62219584b0
31 changed files with 541 additions and 405 deletions

View file

@ -6,7 +6,7 @@ use super::FnActionWithComponent;
pub struct AfterRender<C: Component> {
f: FnActionWithComponent<C>,
referer_type_id: Option<UniqueId>,
referer_id: AttrId,
referer_id: Option<String>,
weight: Weight,
}
@ -19,7 +19,7 @@ impl<C: Component> ActionDispatcher for AfterRender<C> {
/// Devuelve el identificador del componente.
fn referer_id(&self) -> Option<String> {
self.referer_id.get()
self.referer_id.clone()
}
/// Devuelve el peso para definir el orden de ejecución.
@ -34,7 +34,7 @@ impl<C: Component> AfterRender<C> {
AfterRender {
f,
referer_type_id: Some(UniqueId::of::<C>()),
referer_id: AttrId::default(),
referer_id: None,
weight: 0,
}
}
@ -42,7 +42,8 @@ impl<C: Component> AfterRender<C> {
/// Afina el registro para ejecutar la acción [`FnActionWithComponent`] sólo para el componente
/// `C` con identificador `id`.
pub fn filter_by_referer_id(mut self, id: impl AsRef<str>) -> Self {
self.referer_id.alter_id(id);
let id = id.as_ref().trim().to_ascii_lowercase().replace(' ', "_");
self.referer_id = if id.is_empty() { None } else { Some(id) };
self
}

View file

@ -6,7 +6,7 @@ use super::FnActionWithComponent;
pub struct BeforeRender<C: Component> {
f: FnActionWithComponent<C>,
referer_type_id: Option<UniqueId>,
referer_id: AttrId,
referer_id: Option<String>,
weight: Weight,
}
@ -19,7 +19,7 @@ impl<C: Component> ActionDispatcher for BeforeRender<C> {
/// Devuelve el identificador del componente.
fn referer_id(&self) -> Option<String> {
self.referer_id.get()
self.referer_id.clone()
}
/// Devuelve el peso para definir el orden de ejecución.
@ -34,7 +34,7 @@ impl<C: Component> BeforeRender<C> {
BeforeRender {
f,
referer_type_id: Some(UniqueId::of::<C>()),
referer_id: AttrId::default(),
referer_id: None,
weight: 0,
}
}
@ -42,7 +42,8 @@ impl<C: Component> BeforeRender<C> {
/// Afina el registro para ejecutar la acción [`FnActionWithComponent`] sólo para el componente
/// `C` con identificador `id`.
pub fn filter_by_referer_id(mut self, id: impl AsRef<str>) -> Self {
self.referer_id.alter_id(id);
let id = id.as_ref().trim().to_ascii_lowercase().replace(' ', "_");
self.referer_id = if id.is_empty() { None } else { Some(id) };
self
}

View file

@ -6,7 +6,7 @@ use super::FnActionTransformMarkup;
pub struct TransformMarkup<C: Component> {
f: FnActionTransformMarkup<C>,
referer_type_id: Option<UniqueId>,
referer_id: AttrId,
referer_id: Option<String>,
weight: Weight,
}
@ -19,7 +19,7 @@ impl<C: Component> ActionDispatcher for TransformMarkup<C> {
/// Devuelve el identificador del componente.
fn referer_id(&self) -> Option<String> {
self.referer_id.get()
self.referer_id.clone()
}
/// Devuelve el peso para definir el orden de ejecución.
@ -34,7 +34,7 @@ impl<C: Component> TransformMarkup<C> {
TransformMarkup {
f,
referer_type_id: Some(UniqueId::of::<C>()),
referer_id: AttrId::default(),
referer_id: None,
weight: 0,
}
}
@ -42,7 +42,8 @@ impl<C: Component> TransformMarkup<C> {
/// Afina el registro para ejecutar la acción [`FnActionTransformMarkup`] sólo para el
/// componente `C` con identificador `id`.
pub fn filter_by_referer_id(mut self, id: impl AsRef<str>) -> Self {
self.referer_id.alter_id(id);
let id = id.as_ref().trim().to_ascii_lowercase().replace(' ', "_");
self.referer_id = if id.is_empty() { None } else { Some(id) };
self
}