mirror of
https://github.com/thangisme/notes.git
synced 2025-09-25 00:14:25 -04:00
Initial commit
This commit is contained in:
55
node_modules/stylelint/lib/utils/findAnimationName.js
generated
vendored
Normal file
55
node_modules/stylelint/lib/utils/findAnimationName.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
/* @flow */
|
||||
"use strict"
|
||||
|
||||
const keywordSets = require("../reference/keywordSets")
|
||||
const getUnitFromValueNode = require("./getUnitFromValueNode")
|
||||
const isStandardSyntaxValue = require("./isStandardSyntaxValue")
|
||||
const isVariable = require("./isVariable")
|
||||
const postcssValueParser = require("postcss-value-parser")
|
||||
|
||||
/**
|
||||
* Get the font-families within a `font` shorthand property value.
|
||||
*/
|
||||
module.exports = function findAnimationName(value/*: string*/)/*: Array<Object>*/ {
|
||||
const animationNames = []
|
||||
|
||||
const valueNodes = postcssValueParser(value)
|
||||
|
||||
// Handle `inherit`, `initial` and etc
|
||||
if (valueNodes.nodes.length === 1 && keywordSets.basicKeywords.has(valueNodes.nodes[0].value.toLowerCase())) {
|
||||
return [valueNodes.nodes[0]]
|
||||
}
|
||||
|
||||
valueNodes.walk(valueNode => {
|
||||
if (valueNode.type === "function") {
|
||||
return false
|
||||
}
|
||||
if (valueNode.type !== "word") {
|
||||
return
|
||||
}
|
||||
|
||||
const valueLowerCase = valueNode.value.toLowerCase()
|
||||
|
||||
// Ignore non standard syntax
|
||||
if (!isStandardSyntaxValue(valueLowerCase)) {
|
||||
return
|
||||
}
|
||||
// Ignore variables
|
||||
if (isVariable(valueLowerCase)) {
|
||||
return
|
||||
}
|
||||
// Ignore keywords for other font parts
|
||||
if (keywordSets.animationShorthandKeywords.has(valueLowerCase)) {
|
||||
return
|
||||
}
|
||||
// Ignore numbers with units
|
||||
const unit = getUnitFromValueNode(valueNode)
|
||||
if (unit || unit === "") {
|
||||
return
|
||||
}
|
||||
|
||||
animationNames.push(valueNode)
|
||||
})
|
||||
|
||||
return animationNames
|
||||
}
|
Reference in New Issue
Block a user