@emmetio/css-abbreviation
Advanced tools
Comparing version 2.1.0 to 2.1.1
@@ -205,22 +205,48 @@ 'use strict'; | ||
if (scanner.eat(35 /* Hash */)) { | ||
scanner.start = scanner.pos; | ||
scanner.eat(116 /* Transparent */) || scanner.eatWhile(isHex); | ||
const color = scanner.current(); | ||
let alpha; | ||
// a hex color can be followed by `.num` alpha value | ||
scanner.start = scanner.pos; | ||
if (scanner.eat(46 /* Dot */) && scanner.eatWhile(Scanner.isNumber)) { | ||
alpha = scanner.current(); | ||
const valueStart = scanner.pos; | ||
let color = ''; | ||
let alpha = ''; | ||
if (scanner.eatWhile(isHex)) { | ||
color = scanner.substring(valueStart, scanner.pos); | ||
alpha = colorAlpha(scanner); | ||
} | ||
const { r, g, b, a } = parseColor(color, alpha); | ||
return { | ||
type: 'ColorValue', | ||
r, g, b, a, | ||
raw: scanner.substring(start + 1, scanner.pos), | ||
start, | ||
end: scanner.pos | ||
}; | ||
else if (scanner.eat(116 /* Transparent */)) { | ||
color = '0'; | ||
alpha = colorAlpha(scanner) || '0'; | ||
} | ||
else { | ||
alpha = colorAlpha(scanner); | ||
} | ||
if (color || alpha || scanner.eof()) { | ||
const { r, g, b, a } = parseColor(color, alpha); | ||
return { | ||
type: 'ColorValue', | ||
r, g, b, a, | ||
raw: scanner.substring(start + 1, scanner.pos), | ||
start, | ||
end: scanner.pos | ||
}; | ||
} | ||
else { | ||
// Consumed # but no actual value: invalid color value, treat it as literal | ||
return createLiteral(scanner, start); | ||
} | ||
} | ||
scanner.pos = start; | ||
} | ||
/** | ||
* Consumes alpha value of color: `.1` | ||
*/ | ||
function colorAlpha(scanner) { | ||
const start = scanner.pos; | ||
if (scanner.eat(46 /* Dot */)) { | ||
scanner.start = start; | ||
if (scanner.eatWhile(Scanner.isNumber)) { | ||
return scanner.current(); | ||
} | ||
return '1'; | ||
} | ||
return ''; | ||
} | ||
/** | ||
* Consumes white space characters as string literal from given scanner | ||
@@ -227,0 +253,0 @@ */ |
@@ -198,22 +198,48 @@ import Scanner, { isNumber, isAlpha, isAlphaWord, isQuote, isSpace, isAlphaNumericWord, ScannerError } from '@emmetio/scanner'; | ||
if (scanner.eat(35 /* Hash */)) { | ||
scanner.start = scanner.pos; | ||
scanner.eat(116 /* Transparent */) || scanner.eatWhile(isHex); | ||
const color = scanner.current(); | ||
let alpha; | ||
// a hex color can be followed by `.num` alpha value | ||
scanner.start = scanner.pos; | ||
if (scanner.eat(46 /* Dot */) && scanner.eatWhile(isNumber)) { | ||
alpha = scanner.current(); | ||
const valueStart = scanner.pos; | ||
let color = ''; | ||
let alpha = ''; | ||
if (scanner.eatWhile(isHex)) { | ||
color = scanner.substring(valueStart, scanner.pos); | ||
alpha = colorAlpha(scanner); | ||
} | ||
const { r, g, b, a } = parseColor(color, alpha); | ||
return { | ||
type: 'ColorValue', | ||
r, g, b, a, | ||
raw: scanner.substring(start + 1, scanner.pos), | ||
start, | ||
end: scanner.pos | ||
}; | ||
else if (scanner.eat(116 /* Transparent */)) { | ||
color = '0'; | ||
alpha = colorAlpha(scanner) || '0'; | ||
} | ||
else { | ||
alpha = colorAlpha(scanner); | ||
} | ||
if (color || alpha || scanner.eof()) { | ||
const { r, g, b, a } = parseColor(color, alpha); | ||
return { | ||
type: 'ColorValue', | ||
r, g, b, a, | ||
raw: scanner.substring(start + 1, scanner.pos), | ||
start, | ||
end: scanner.pos | ||
}; | ||
} | ||
else { | ||
// Consumed # but no actual value: invalid color value, treat it as literal | ||
return createLiteral(scanner, start); | ||
} | ||
} | ||
scanner.pos = start; | ||
} | ||
/** | ||
* Consumes alpha value of color: `.1` | ||
*/ | ||
function colorAlpha(scanner) { | ||
const start = scanner.pos; | ||
if (scanner.eat(46 /* Dot */)) { | ||
scanner.start = start; | ||
if (scanner.eatWhile(isNumber)) { | ||
return scanner.current(); | ||
} | ||
return '1'; | ||
} | ||
return ''; | ||
} | ||
/** | ||
* Consumes white space characters as string literal from given scanner | ||
@@ -220,0 +246,0 @@ */ |
{ | ||
"name": "@emmetio/css-abbreviation", | ||
"version": "2.1.0", | ||
"version": "2.1.1", | ||
"description": "Parses Emmet CSS abbreviation into AST tree", | ||
@@ -46,3 +46,3 @@ "main": "./dist/css-abbreviation.cjs.js", | ||
}, | ||
"gitHead": "baacc1e0ec3a5b3bc4a329ddae48e1f4245dd45f" | ||
"gitHead": "82b153e96484d3b840143d3bac2e382453e3c3f7" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
44768
1365