UNPKG

stylelint

Version:
61 lines (47 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = findListStyleType; var _postcssValueParser = require("postcss-value-parser"); var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); var _ = require("./"); var _keywordSets = require("../reference/keywordSets"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Get the list-style-type within a `list-style` shorthand property value. * * @param {string} value * @return {object} Collection list-style-type nodes */ function findListStyleType(value) { var listStyleTypes = []; var valueNodes = (0, _postcssValueParser2.default)(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(function (valueNode) { if (valueNode.type === "function") { return false; } if (valueNode.type !== "word") { return; } var valueLowerCase = valueNode.value.toLowerCase(); // Ignore non standard syntax if (!(0, _.isStandardSyntaxValue)(valueLowerCase)) { return; } // Ignore variables if ((0, _.isVariable)(valueLowerCase)) { return; } // Ignore keywords for other font parts if (_keywordSets.listStylePositionKeywords.has(valueLowerCase) || _keywordSets.listStyleImageKeywords.has(valueLowerCase)) { return; } listStyleTypes.push(valueNode); }); return listStyleTypes; }