| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | module.exports = function postcssPrefixSelector(options) {  const prefix = options.prefix;  const prefixWithSpace = /\s+$/.test(prefix) ? prefix : `${prefix} `;  const ignoreFiles = options.ignoreFiles ? [].concat(options.ignoreFiles) : [];  const includeFiles = options.includeFiles    ? [].concat(options.includeFiles)    : [];  return function (root) {    if (      ignoreFiles.length &&      root.source.input.file &&      isFileInArray(root.source.input.file, ignoreFiles)    ) {      return;    }    if (      includeFiles.length &&      root.source.input.file &&      !isFileInArray(root.source.input.file, includeFiles)    ) {      return;    }    root.walkRules((rule) => {      const keyframeRules = [        'keyframes',        '-webkit-keyframes',        '-moz-keyframes',        '-o-keyframes',        '-ms-keyframes',      ];      if (rule.parent && keyframeRules.includes(rule.parent.name)) {        return;      }      rule.selectors = rule.selectors.map((selector) => {        if (options.exclude && excludeSelector(selector, options.exclude)) {          return selector;        }        if (options.transform) {          return options.transform(            prefix,            selector,            prefixWithSpace + selector,            root.source.input.file,            rule          );        }        return prefixWithSpace + selector;      });    });  };};function isFileInArray(file, arr) {  return arr.some((ruleOrString) => {    if (ruleOrString instanceof RegExp) {      return ruleOrString.test(file);    }    return file.includes(ruleOrString);  });}function excludeSelector(selector, excludeArr) {  return excludeArr.some((excludeRule) => {    if (excludeRule instanceof RegExp) {      return excludeRule.test(selector);    }    return selector === excludeRule;  });}
 |