Añade la opción de borrar clases de componentes
This commit is contained in:
parent
4ff9cfec0f
commit
4b3fc94574
2 changed files with 18 additions and 4 deletions
|
|
@ -15,7 +15,7 @@ mod identifier;
|
|||
pub use identifier::IdentifierValue;
|
||||
|
||||
mod classes;
|
||||
pub use classes::{Classes, ClassesOp};
|
||||
pub use classes::{Classes, ClassesOp, ClassValue};
|
||||
|
||||
mod unit;
|
||||
pub use unit::UnitValue;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
use crate::concat_string;
|
||||
|
||||
pub type ClassValue = &'static str;
|
||||
|
||||
pub enum ClassesOp {
|
||||
Add,
|
||||
AddAfter(&'static str),
|
||||
AddBefore(&'static str),
|
||||
AddAfter(ClassValue),
|
||||
AddBefore(ClassValue),
|
||||
AddFirst,
|
||||
Replace(&'static str),
|
||||
Remove,
|
||||
Replace(ClassValue),
|
||||
Reset,
|
||||
SetDefault,
|
||||
SetDefaultIfEmpty,
|
||||
|
|
@ -59,6 +62,17 @@ impl Classes {
|
|||
self.added = concat_string!(classes, " ", self.added).trim().to_owned()
|
||||
},
|
||||
|
||||
ClassesOp::Remove => {
|
||||
let v_list: Vec<&str> = classes.split_ascii_whitespace().collect();
|
||||
let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect();
|
||||
for class in v_list {
|
||||
if let Some(pos) = v_added.iter().position(|c| c.eq(&class)) {
|
||||
v_added.remove(pos);
|
||||
}
|
||||
}
|
||||
self.added = v_added.join(" ");
|
||||
},
|
||||
|
||||
ClassesOp::Replace(class) => {
|
||||
let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect();
|
||||
match v_added.iter().position(|c| c.eq(&class)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue