first commit
This commit is contained in:
69
app_vue/node_modules/css-tree/lib/syntax/node/Url.js
generated
vendored
Normal file
69
app_vue/node_modules/css-tree/lib/syntax/node/Url.js
generated
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
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(')');
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user