![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/clinic.corals.io/node_modules/css-tree/lib/syntax/node/ |
var isWhiteSpace = require('../../tokenizer').isWhiteSpace; var cmpStr = require('../../tokenizer').cmpStr; var TYPE = require('../../tokenizer').TYPE; var FUNCTION = TYPE.Function; var URL = TYPE.Url; var RIGHTPARENTHESIS = TYPE.RightParenthesis; // <url-token> | <function-token> <string> ) module.exports = { name: 'Url', structure: { value: ['String', 'Raw'] }, parse: function() { var start = this.scanner.tokenStart; var value; switch (this.scanner.tokenType) { case URL: var rawStart = start + 4; var rawEnd = this.scanner.tokenEnd - 1; while (rawStart < rawEnd && isWhiteSpace(this.scanner.source.charCodeAt(rawStart))) { rawStart++; } while (rawStart < rawEnd && isWhiteSpace(this.scanner.source.charCodeAt(rawEnd - 1))) { rawEnd--; } value = { type: 'Raw', loc: this.getLocation(rawStart, rawEnd), value: this.scanner.source.substring(rawStart, rawEnd) }; this.eat(URL); break; case FUNCTION: if (!cmpStr(this.scanner.source, this.scanner.tokenStart, this.scanner.tokenEnd, 'url(')) { this.error('Function name must be `url`'); } this.eat(FUNCTION); this.scanner.skipSC(); value = this.String(); this.scanner.skipSC(); this.eat(RIGHTPARENTHESIS); break; default: this.error('Url or Function is expected'); } return { type: 'Url', loc: this.getLocation(start, this.scanner.tokenStart), value: value }; }, generate: function(node) { this.chunk('url'); this.chunk('('); this.node(node.value); this.chunk(')'); } };