mirror of
https://github.com/thangisme/notes.git
synced 2025-09-24 01:44:05 -04:00
Initial commit
This commit is contained in:
25
node_modules/postcss-resolve-nested-selector/index.js
generated
vendored
Normal file
25
node_modules/postcss-resolve-nested-selector/index.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
module.exports = function resolveNestedSelector(selector, node) {
|
||||
var parent = node.parent;
|
||||
var parentIsNestAtRule = parent.type === 'atrule' && parent.name === 'nest';
|
||||
|
||||
if (parent.type === 'root') return [selector];
|
||||
if (parent.type !== 'rule' && !parentIsNestAtRule) return resolveNestedSelector(selector, parent);
|
||||
|
||||
var parentSelectors = (parentIsNestAtRule)
|
||||
? parent.params.split(',').map(function(s) { return s.trim(); })
|
||||
: parent.selectors;
|
||||
|
||||
var resolvedSelectors = parentSelectors.reduce(function(result, parentSelector) {
|
||||
if (selector.indexOf('&') !== -1) {
|
||||
var newlyResolvedSelectors = resolveNestedSelector(parentSelector, parent).map(function(resolvedParentSelector) {
|
||||
return selector.replace(/&/g, resolvedParentSelector);
|
||||
});
|
||||
return result.concat(newlyResolvedSelectors);
|
||||
}
|
||||
|
||||
var combinedSelector = [ parentSelector, selector ].join(' ');
|
||||
return result.concat(resolveNestedSelector(combinedSelector, parent));
|
||||
}, []);
|
||||
|
||||
return resolvedSelectors;
|
||||
}
|
Reference in New Issue
Block a user