File tree Expand file tree Collapse file tree 2 files changed +32
-1
lines changed
Expand file tree Collapse file tree 2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -72,4 +72,35 @@ class NodeBuilder {
7272
7373 NodeBuilder removeAttribute (String name) =>
7474 changeAttributesMapped ((map) => map..remove (name));
75+
76+ NodeBuilder setId (String id) => setAttribute ('id' , id);
77+
78+ NodeBuilder setClassName (String className) =>
79+ setAttribute ('class' , className);
80+
81+ NodeBuilder setClasses (Iterable <String > classes) =>
82+ setClassName (classes.join (' ' ));
83+
84+ NodeBuilder setClassesMapped (Iterable <String > Function (List <String >) f) {
85+ var clazz = attributes['class' ];
86+ var classes = < String > [];
87+
88+ if (clazz is String )
89+ classes.addAll (clazz.split (' ' ));
90+ else if (clazz is Iterable ) classes.addAll (clazz.map ((s) => s.toString ()));
91+
92+ return setClasses (f (classes));
93+ }
94+
95+ NodeBuilder addClass (String className) => setClassesMapped (
96+ (classes) => classes.contains (className) ? classes : classes
97+ ..add (className));
98+
99+ NodeBuilder removeClass (String className) =>
100+ setClassesMapped ((classes) => classes..remove (className));
101+
102+ NodeBuilder toggleClass (String className) =>
103+ setClassesMapped ((classes) => classes.contains (className)
104+ ? (classes..remove (className))
105+ : (classes..add (className)));
75106}
Original file line number Diff line number Diff line change 11name : html_builder
22description : Build HTML AST's and render them to HTML. This can be used as an internal DSL, i.e. for a templating engine.
3- version : 1.0.4
3+ version : 1.0.5
44author : Tobe O <thosakwe@gmail.com>
55homepage : https://github.com/thosakwe/html_builder
66environment :
You can’t perform that action at this time.
0 commit comments