diff --git a/src/css/ValidationTypes.js b/src/css/ValidationTypes.js index 33ef3eaf..54eef8d7 100644 --- a/src/css/ValidationTypes.js +++ b/src/css/ValidationTypes.js @@ -8,7 +8,10 @@ var ValidationTypes = { i, len, found = false; for (i=0,len=args.length; i < len && !found; i++){ - if (text === args[i].toLowerCase()){ + if (args[i].slice(-2) === "()"){ + found = (part.type === "function" && + part.name === args[i].slice(0, -2)); + } else if (text === args[i].toLowerCase()){ found = true; } } @@ -92,7 +95,7 @@ var ValidationTypes = { }, "": function(part){ - return part.type === "function" && part.name === "attr"; + return ValidationTypes.isLiteral(part, "attr()"); }, "": function(part){ @@ -108,7 +111,7 @@ var ValidationTypes = { }, "": function(part){ - return part.type === "function" && part.name === "content"; + return ValidationTypes.isLiteral(part, "content()"); }, "": function(part){ @@ -186,7 +189,7 @@ var ValidationTypes = { }, "": function(part){ - return part.type === "function" && (part.name === "rect" || part.name === "inset-rect"); + return ValidationTypes.isLiteral(part, "rect() | inset-rect()"); }, "": function(part){ @@ -194,9 +197,7 @@ var ValidationTypes = { // circle() = circle( []? [at ]? ) // ellipse() = ellipse( [{2}]? [at ]? ) // polygon() = polygon( [,]? [ ]# ) - return part.type === "function" && ( - part.name === "inset" || part.name === "circle" || part.name === "ellipse" || part.name === "polygon" - ); + return ValidationTypes.isLiteral(part, "inset() | circle() | ellipse() | polygon()"); }, "": function(part) { @@ -240,18 +241,11 @@ var ValidationTypes = { }, "": function(part){ - return part.type === "function" && ( - part.name === 'blur' || - part.name === 'brightness' || - part.name === 'contrast' || - part.name === 'custom' || // Not actually in formal spec. - part.name === 'drop-shadow' || - part.name === 'grayscale' || - part.name === 'hue-rotate' || - part.name === 'invert' || - part.name === 'opacity' || - part.name === 'saturate' || - part.name === 'sepia'); + // custom() isn't actually in the spec + return ValidationTypes.isLiteral( + part, "blur() | brightness() | contrast() | custom() | " + + "drop-shadow() | grayscale() | hue-rotate() | invert() | " + + "opacity() | saturate() | sepia()"); } },