Skip to content

Commit ce8b5dc

Browse files
committed
feat: add nesting addon
1 parent ad64849 commit ce8b5dc

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

addon/nesting.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
'use strict';
2+
3+
module.addon = function (renderer) {
4+
renderer.selector = function (parentSelectors, selector) {
5+
var parents = parentSelectors.split(',');
6+
var result = [];
7+
var selectors = selector.split(',');
8+
var len1 = parents.length;
9+
var len2 = selectors.length;
10+
var i, j, part1, part2, sel, pos, parent, replacedSelector;
11+
12+
for (i = 0; i < len2; i++) {
13+
sel = selectors[i];
14+
pos = sel.indexOf('&');
15+
16+
if (pos > -1) {
17+
part1 = sel.substr(0, pos);
18+
part2 = sel.substr(pos + 1);
19+
20+
for (j = 0; j < len1; j++) {
21+
parent = parents[j];
22+
replacedSelector = part1 + parent + part2;
23+
24+
result.push(replacedSelector);
25+
}
26+
} else {
27+
for (j = 0; j < len1; j++) {
28+
parent = parents[j];
29+
30+
if (parent) {
31+
result.push(parent + ' ' + sel);
32+
} else {
33+
result.push(sel);
34+
}
35+
}
36+
}
37+
}
38+
39+
return result.join(',');
40+
};
41+
};

0 commit comments

Comments
 (0)