Sha256: 4624148dcdf2a81f06393c979674aab7726060329f22cbdec359ee0e0afa429b
Contents?: true
Size: 1.35 KB
Versions: 24
Compression:
Stored size: 1.35 KB
Contents
'use strict'; const isStandardSyntaxValue = require('./isStandardSyntaxValue'); const isVariable = require('./isVariable'); const keywordSets = require('../reference/keywordSets'); const postcssValueParser = require('postcss-value-parser'); /** * Get the list-style-type within a `list-style` shorthand property value. * * @param {string} value */ module.exports = function findListStyleType(value) { /** @type {Array<import('postcss-value-parser').WordNode>} */ const listStyleTypes = []; const valueNodes = postcssValueParser(value); // Handle `inherit`, `initial` and etc if ( valueNodes.nodes.length === 1 && keywordSets.listStyleTypeKeywords.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.listStylePositionKeywords.has(valueLowerCase) || keywordSets.listStyleImageKeywords.has(valueLowerCase) ) { return; } listStyleTypes.push(valueNode); }); return listStyleTypes; };
Version data entries
24 entries across 24 versions & 1 rubygems