Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / postcss-resolve-nested-selector / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-resolve-nested-selector/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-resolve-nested-selector/index.js
new file mode 100644 (file)
index 0000000..8659841
--- /dev/null
@@ -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;
+}