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;
|
pub use identifier::IdentifierValue;
|
||||||
|
|
||||||
mod classes;
|
mod classes;
|
||||||
pub use classes::{Classes, ClassesOp};
|
pub use classes::{Classes, ClassesOp, ClassValue};
|
||||||
|
|
||||||
mod unit;
|
mod unit;
|
||||||
pub use unit::UnitValue;
|
pub use unit::UnitValue;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
use crate::concat_string;
|
use crate::concat_string;
|
||||||
|
|
||||||
|
pub type ClassValue = &'static str;
|
||||||
|
|
||||||
pub enum ClassesOp {
|
pub enum ClassesOp {
|
||||||
Add,
|
Add,
|
||||||
AddAfter(&'static str),
|
AddAfter(ClassValue),
|
||||||
AddBefore(&'static str),
|
AddBefore(ClassValue),
|
||||||
AddFirst,
|
AddFirst,
|
||||||
Replace(&'static str),
|
Remove,
|
||||||
|
Replace(ClassValue),
|
||||||
Reset,
|
Reset,
|
||||||
SetDefault,
|
SetDefault,
|
||||||
SetDefaultIfEmpty,
|
SetDefaultIfEmpty,
|
||||||
|
|
@ -59,6 +62,17 @@ impl Classes {
|
||||||
self.added = concat_string!(classes, " ", self.added).trim().to_owned()
|
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) => {
|
ClassesOp::Replace(class) => {
|
||||||
let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect();
|
let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect();
|
||||||
match v_added.iter().position(|c| c.eq(&class)) {
|
match v_added.iter().position(|c| c.eq(&class)) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue