format: prettify entire project
This commit is contained in:
109
node_modules/clean-css/lib/optimizer/level-2/is-mergeable.js
generated
vendored
109
node_modules/clean-css/lib/optimizer/level-2/is-mergeable.js
generated
vendored
@ -11,7 +11,7 @@ var PSEUDO_CLASSES_WITH_ARGUMENTS = [
|
||||
':nth-child',
|
||||
':nth-last-child',
|
||||
':nth-last-of-type',
|
||||
':nth-of-type'
|
||||
':nth-of-type',
|
||||
];
|
||||
var RELATION_PATTERN = /[>\+~]/;
|
||||
var UNMIXABLE_PSEUDO_CLASSES = [
|
||||
@ -19,22 +19,27 @@ var UNMIXABLE_PSEUDO_CLASSES = [
|
||||
':before',
|
||||
':first-letter',
|
||||
':first-line',
|
||||
':lang'
|
||||
':lang',
|
||||
];
|
||||
var UNMIXABLE_PSEUDO_ELEMENTS = [
|
||||
'::after',
|
||||
'::before',
|
||||
'::first-letter',
|
||||
'::first-line'
|
||||
'::first-line',
|
||||
];
|
||||
|
||||
var Level = {
|
||||
DOUBLE_QUOTE: 'double-quote',
|
||||
SINGLE_QUOTE: 'single-quote',
|
||||
ROOT: 'root'
|
||||
ROOT: 'root',
|
||||
};
|
||||
|
||||
function isMergeable(selector, mergeablePseudoClasses, mergeablePseudoElements, multiplePseudoMerging) {
|
||||
function isMergeable(
|
||||
selector,
|
||||
mergeablePseudoClasses,
|
||||
mergeablePseudoElements,
|
||||
multiplePseudoMerging
|
||||
) {
|
||||
var singleSelectors = split(selector, Marker.COMMA);
|
||||
var singleSelector;
|
||||
var i, l;
|
||||
@ -42,9 +47,18 @@ function isMergeable(selector, mergeablePseudoClasses, mergeablePseudoElements,
|
||||
for (i = 0, l = singleSelectors.length; i < l; i++) {
|
||||
singleSelector = singleSelectors[i];
|
||||
|
||||
if (singleSelector.length === 0 ||
|
||||
isDeepSelector(singleSelector) ||
|
||||
(singleSelector.indexOf(Marker.COLON) > -1 && !areMergeable(singleSelector, extractPseudoFrom(singleSelector), mergeablePseudoClasses, mergeablePseudoElements, multiplePseudoMerging))) {
|
||||
if (
|
||||
singleSelector.length === 0 ||
|
||||
isDeepSelector(singleSelector) ||
|
||||
(singleSelector.indexOf(Marker.COLON) > -1 &&
|
||||
!areMergeable(
|
||||
singleSelector,
|
||||
extractPseudoFrom(singleSelector),
|
||||
mergeablePseudoClasses,
|
||||
mergeablePseudoElements,
|
||||
multiplePseudoMerging
|
||||
))
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -81,13 +95,19 @@ function extractPseudoFrom(selector) {
|
||||
} else if (character == Marker.DOUBLE_QUOTE && level == Level.ROOT) {
|
||||
buffer.push(character);
|
||||
level = Level.DOUBLE_QUOTE;
|
||||
} else if (character == Marker.DOUBLE_QUOTE && level == Level.DOUBLE_QUOTE) {
|
||||
} else if (
|
||||
character == Marker.DOUBLE_QUOTE &&
|
||||
level == Level.DOUBLE_QUOTE
|
||||
) {
|
||||
buffer.push(character);
|
||||
level = Level.ROOT;
|
||||
} else if (character == Marker.SINGLE_QUOTE && level == Level.ROOT) {
|
||||
buffer.push(character);
|
||||
level = Level.SINGLE_QUOTE;
|
||||
} else if (character == Marker.SINGLE_QUOTE && level == Level.SINGLE_QUOTE) {
|
||||
} else if (
|
||||
character == Marker.SINGLE_QUOTE &&
|
||||
level == Level.SINGLE_QUOTE
|
||||
) {
|
||||
buffer.push(character);
|
||||
level = Level.ROOT;
|
||||
} else if (isQuoted) {
|
||||
@ -95,7 +115,11 @@ function extractPseudoFrom(selector) {
|
||||
} else if (character == Marker.OPEN_ROUND_BRACKET) {
|
||||
buffer.push(character);
|
||||
roundBracketLevel++;
|
||||
} else if (character == Marker.CLOSE_ROUND_BRACKET && roundBracketLevel == 1 && isPseudo) {
|
||||
} else if (
|
||||
character == Marker.CLOSE_ROUND_BRACKET &&
|
||||
roundBracketLevel == 1 &&
|
||||
isPseudo
|
||||
) {
|
||||
buffer.push(character);
|
||||
list.push(buffer.join(''));
|
||||
roundBracketLevel--;
|
||||
@ -104,15 +128,28 @@ function extractPseudoFrom(selector) {
|
||||
} else if (character == Marker.CLOSE_ROUND_BRACKET) {
|
||||
buffer.push(character);
|
||||
roundBracketLevel--;
|
||||
} else if (character == Marker.COLON && roundBracketLevel === 0 && isPseudo && !wasColon) {
|
||||
} else if (
|
||||
character == Marker.COLON &&
|
||||
roundBracketLevel === 0 &&
|
||||
isPseudo &&
|
||||
!wasColon
|
||||
) {
|
||||
list.push(buffer.join(''));
|
||||
buffer = [];
|
||||
buffer.push(character);
|
||||
} else if (character == Marker.COLON && roundBracketLevel === 0 && !wasColon) {
|
||||
} else if (
|
||||
character == Marker.COLON &&
|
||||
roundBracketLevel === 0 &&
|
||||
!wasColon
|
||||
) {
|
||||
buffer = [];
|
||||
buffer.push(character);
|
||||
isPseudo = true;
|
||||
} else if (character == Marker.SPACE && roundBracketLevel === 0 && isPseudo) {
|
||||
} else if (
|
||||
character == Marker.SPACE &&
|
||||
roundBracketLevel === 0 &&
|
||||
isPseudo
|
||||
) {
|
||||
list.push(buffer.join(''));
|
||||
buffer = [];
|
||||
isPseudo = false;
|
||||
@ -135,11 +172,19 @@ function extractPseudoFrom(selector) {
|
||||
return list;
|
||||
}
|
||||
|
||||
function areMergeable(selector, matches, mergeablePseudoClasses, mergeablePseudoElements, multiplePseudoMerging) {
|
||||
return areAllowed(matches, mergeablePseudoClasses, mergeablePseudoElements) &&
|
||||
function areMergeable(
|
||||
selector,
|
||||
matches,
|
||||
mergeablePseudoClasses,
|
||||
mergeablePseudoElements,
|
||||
multiplePseudoMerging
|
||||
) {
|
||||
return (
|
||||
areAllowed(matches, mergeablePseudoClasses, mergeablePseudoElements) &&
|
||||
needArguments(matches) &&
|
||||
(matches.length < 2 || !someIncorrectlyChained(selector, matches)) &&
|
||||
(matches.length < 2 || multiplePseudoMerging && allMixable(matches));
|
||||
(matches.length < 2 || (multiplePseudoMerging && allMixable(matches)))
|
||||
);
|
||||
}
|
||||
|
||||
function areAllowed(matches, mergeablePseudoClasses, mergeablePseudoElements) {
|
||||
@ -149,11 +194,15 @@ function areAllowed(matches, mergeablePseudoClasses, mergeablePseudoElements) {
|
||||
|
||||
for (i = 0, l = matches.length; i < l; i++) {
|
||||
match = matches[i];
|
||||
name = match.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
match.substring(0, match.indexOf(Marker.OPEN_ROUND_BRACKET)) :
|
||||
match;
|
||||
name =
|
||||
match.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
match.substring(0, match.indexOf(Marker.OPEN_ROUND_BRACKET))
|
||||
: match;
|
||||
|
||||
if (mergeablePseudoClasses.indexOf(name) === -1 && mergeablePseudoElements.indexOf(name) === -1) {
|
||||
if (
|
||||
mergeablePseudoClasses.indexOf(name) === -1 &&
|
||||
mergeablePseudoElements.indexOf(name) === -1
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -173,9 +222,7 @@ function needArguments(matches) {
|
||||
|
||||
bracketOpensAt = match.indexOf(Marker.OPEN_ROUND_BRACKET);
|
||||
hasArguments = bracketOpensAt > -1;
|
||||
name = hasArguments ?
|
||||
match.substring(0, bracketOpensAt) :
|
||||
match;
|
||||
name = hasArguments ? match.substring(0, bracketOpensAt) : match;
|
||||
|
||||
if (hasArguments && PSEUDO_CLASSES_WITH_ARGUMENTS.indexOf(name) == -1) {
|
||||
return false;
|
||||
@ -214,12 +261,14 @@ function someIncorrectlyChained(selector, matches) {
|
||||
areChained = matchAt + match.length == nextMatchAt;
|
||||
|
||||
if (areChained) {
|
||||
name = match.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
match.substring(0, match.indexOf(Marker.OPEN_ROUND_BRACKET)) :
|
||||
match;
|
||||
nextName = nextMatch.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
nextMatch.substring(0, nextMatch.indexOf(Marker.OPEN_ROUND_BRACKET)) :
|
||||
nextMatch;
|
||||
name =
|
||||
match.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
match.substring(0, match.indexOf(Marker.OPEN_ROUND_BRACKET))
|
||||
: match;
|
||||
nextName =
|
||||
nextMatch.indexOf(Marker.OPEN_ROUND_BRACKET) > -1 ?
|
||||
nextMatch.substring(0, nextMatch.indexOf(Marker.OPEN_ROUND_BRACKET))
|
||||
: nextMatch;
|
||||
|
||||
if (name != NOT_PSEUDO || nextName != NOT_PSEUDO) {
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user