diff options
Diffstat (limited to 'node_modules/postcss-merge-longhand/src/lib/parseWsc.js')
| -rw-r--r-- | node_modules/postcss-merge-longhand/src/lib/parseWsc.js | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/node_modules/postcss-merge-longhand/src/lib/parseWsc.js b/node_modules/postcss-merge-longhand/src/lib/parseWsc.js deleted file mode 100644 index a0bc16c1..00000000 --- a/node_modules/postcss-merge-longhand/src/lib/parseWsc.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict'; -const { list } = require('postcss'); -const { isWidth, isStyle, isColor } = require('./validateWsc.js'); - -const none = /^\s*(none|medium)(\s+none(\s+(none|currentcolor))?)?\s*$/i; - -/* Approximate https://drafts.csswg.org/css-values-4/#typedef-dashed-ident */ -// eslint-disable-next-line no-control-regex -const varRE = /--(\w|-|[^\x00-\x7F])+/g; -/** @type {(v: string) => string} */ -const toLower = (v) => { - let match; - let lastIndex = 0; - let result = ''; - varRE.lastIndex = 0; - while ((match = varRE.exec(v)) !== null) { - if (match.index > lastIndex) { - result += v.substring(lastIndex, match.index).toLowerCase(); - } - result += match[0]; - lastIndex = match.index + match[0].length; - } - if (lastIndex < v.length) { - result += v.substring(lastIndex).toLowerCase(); - } - if (result === '') { - return v; - } - return result; -}; - -/** - * @param {string} value - * @return {[string, string, string]} - */ -module.exports = function parseWsc(value) { - if (none.test(value)) { - return ['medium', 'none', 'currentcolor']; - } - - let width, style, color; - - const values = list.space(value); - if ( - values.length > 1 && - isStyle(values[1]) && - values[0].toLowerCase() === 'none' - ) { - values.unshift(); - width = '0'; - } - - /** @type {string[]} */ - const unknown = []; - - values.forEach((v) => { - if (isStyle(v)) { - style = toLower(v); - } else if (isWidth(v)) { - width = toLower(v); - } else if (isColor(v)) { - color = toLower(v); - } else { - unknown.push(v); - } - }); - - if (unknown.length) { - if (!width && style && color) { - width = unknown.pop(); - } - - if (width && !style && color) { - style = unknown.pop(); - } - - if (width && style && !color) { - color = unknown.pop(); - } - } - - return /** @type {[string, string, string]} */ ([width, style, color]); -}; |
