Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/fourtyone11/origin-hugo-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js')
-rw-r--r--assets/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js136
1 files changed, 0 insertions, 136 deletions
diff --git a/assets/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js b/assets/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js
deleted file mode 100644
index 1fd2069..0000000
--- a/assets/node_modules/stylelint/lib/rules/no-duplicate-selectors/index.js
+++ /dev/null
@@ -1,136 +0,0 @@
-'use strict';
-
-const _ = require('lodash');
-const findAtRuleContext = require('../../utils/findAtRuleContext');
-const isKeyframeRule = require('../../utils/isKeyframeRule');
-const nodeContextLookup = require('../../utils/nodeContextLookup');
-const normalizeSelector = require('normalize-selector');
-const report = require('../../utils/report');
-const resolvedNestedSelector = require('postcss-resolve-nested-selector');
-const ruleMessages = require('../../utils/ruleMessages');
-const validateOptions = require('../../utils/validateOptions');
-
-const ruleName = 'no-duplicate-selectors';
-
-const messages = ruleMessages(ruleName, {
- rejected: (selector, firstDuplicateLine) =>
- `Unexpected duplicate selector "${selector}", first used at line ${firstDuplicateLine}`,
-});
-
-function rule(actual, options) {
- return (root, result) => {
- const validOptions = validateOptions(
- result,
- ruleName,
- { actual },
- {
- actual: options,
- possible: {
- disallowInList: _.isBoolean,
- },
- optional: true,
- },
- );
-
- if (!validOptions) {
- return;
- }
-
- // The top level of this map will be rule sources.
- // Each source maps to another map, which maps rule parents to a set of selectors.
- // This ensures that selectors are only checked against selectors
- // from other rules that share the same parent and the same source.
- const selectorContextLookup = nodeContextLookup();
-
- root.walkRules((rule) => {
- if (isKeyframeRule(rule)) {
- return;
- }
-
- const contextSelectorSet = selectorContextLookup.getContext(rule, findAtRuleContext(rule));
- const resolvedSelectors = rule.selectors.reduce((result, selector) => {
- return _.union(result, resolvedNestedSelector(selector, rule));
- }, []);
-
- const normalizedSelectorList = resolvedSelectors.map(normalizeSelector);
- const selectorLine = rule.source.start.line;
-
- // Complain if the same selector list occurs twice
-
- // Sort the selectors list so that the order of the constituents
- // doesn't matter
- const sortedSelectorList = normalizedSelectorList
- .slice()
- .sort()
- .join(',');
-
- const checkPreviousDuplicationPosition = (
- selectorList,
- { shouldDisallowDuplicateInList },
- ) => {
- let duplicationPosition = null;
-
- if (shouldDisallowDuplicateInList) {
- // iterate throw Map for checking, was used this selector in a group selector
- contextSelectorSet.forEach((selectorLine, selector) => {
- if (selector.includes(selectorList)) {
- duplicationPosition = selectorLine;
- }
- });
- } else {
- duplicationPosition = contextSelectorSet.get(selectorList);
- }
-
- return duplicationPosition;
- };
-
- const previousDuplicatePosition = checkPreviousDuplicationPosition(sortedSelectorList, {
- shouldDisallowDuplicateInList: _.get(options, 'disallowInList'),
- });
-
- if (previousDuplicatePosition) {
- // If the selector isn't nested we can use its raw value; otherwise,
- // we have to approximate something for the message -- which is close enough
- const isNestedSelector = resolvedSelectors.join(',') !== rule.selectors.join(',');
- const selectorForMessage = isNestedSelector ? resolvedSelectors.join(', ') : rule.selector;
-
- return report({
- result,
- ruleName,
- node: rule,
- message: messages.rejected(selectorForMessage, previousDuplicatePosition),
- });
- }
-
- const presentedSelectors = new Set();
- const reportedSelectors = new Set();
-
- // Or complain if one selector list contains the same selector more than one
- rule.selectors.forEach((selector) => {
- const normalized = normalizeSelector(selector);
-
- if (presentedSelectors.has(normalized)) {
- if (reportedSelectors.has(normalized)) {
- return;
- }
-
- report({
- result,
- ruleName,
- node: rule,
- message: messages.rejected(selector, selectorLine),
- });
- reportedSelectors.add(normalized);
- } else {
- presentedSelectors.add(normalized);
- }
- });
-
- contextSelectorSet.set(sortedSelectorList, selectorLine);
- });
- };
-}
-
-rule.ruleName = ruleName;
-rule.messages = messages;
-module.exports = rule;