diff options
Diffstat (limited to 'vanilla/node_modules/css-tree/lib/syntax/function')
| -rw-r--r-- | vanilla/node_modules/css-tree/lib/syntax/function/expression.js | 7 | ||||
| -rw-r--r-- | vanilla/node_modules/css-tree/lib/syntax/function/var.js | 39 |
2 files changed, 46 insertions, 0 deletions
diff --git a/vanilla/node_modules/css-tree/lib/syntax/function/expression.js b/vanilla/node_modules/css-tree/lib/syntax/function/expression.js new file mode 100644 index 0000000..040f826 --- /dev/null +++ b/vanilla/node_modules/css-tree/lib/syntax/function/expression.js @@ -0,0 +1,7 @@ +// legacy IE function +// expression( <any-value> ) +export default function() { + return this.createSingleNodeList( + this.Raw(null, false) + ); +} diff --git a/vanilla/node_modules/css-tree/lib/syntax/function/var.js b/vanilla/node_modules/css-tree/lib/syntax/function/var.js new file mode 100644 index 0000000..010dc0a --- /dev/null +++ b/vanilla/node_modules/css-tree/lib/syntax/function/var.js @@ -0,0 +1,39 @@ +import { Comma, WhiteSpace } from '../../tokenizer/index.js'; + +// var( <ident> , <value>? ) +export default function() { + const children = this.createList(); + + this.skipSC(); + + // NOTE: Don't check more than a first argument is an ident, rest checks are for lexer + children.push(this.Identifier()); + + this.skipSC(); + + if (this.tokenType === Comma) { + children.push(this.Operator()); + + const startIndex = this.tokenIndex; + const value = this.parseCustomProperty + ? this.Value(null) + : this.Raw(this.consumeUntilExclamationMarkOrSemicolon, false); + + if (value.type === 'Value' && value.children.isEmpty) { + for (let offset = startIndex - this.tokenIndex; offset <= 0; offset++) { + if (this.lookupType(offset) === WhiteSpace) { + value.children.appendData({ + type: 'WhiteSpace', + loc: null, + value: ' ' + }); + break; + } + } + } + + children.push(value); + } + + return children; +}; |
