@@ -8,7 +8,10 @@ var ValidationTypes = {
88 i , len , found = false ;
99
1010 for ( i = 0 , len = args . length ; i < len && ! found ; i ++ ) {
11- if ( text === args [ i ] . toLowerCase ( ) ) {
11+ if ( args [ i ] . slice ( - 2 ) === "()" ) {
12+ found = ( part . type === "function" &&
13+ part . name === args [ i ] . slice ( 0 , - 2 ) ) ;
14+ } else if ( text === args [ i ] . toLowerCase ( ) ) {
1215 found = true ;
1316 }
1417 }
@@ -92,7 +95,7 @@ var ValidationTypes = {
9295 } ,
9396
9497 "<attr>" : function ( part ) {
95- return part . type === "function" && part . name === "attr" ;
98+ return ValidationTypes . isLiteral ( part , "attr()" ) ;
9699 } ,
97100
98101 "<bg-image>" : function ( part ) {
@@ -108,7 +111,7 @@ var ValidationTypes = {
108111 } ,
109112
110113 "<content>" : function ( part ) {
111- return part . type === "function" && part . name === "content" ;
114+ return ValidationTypes . isLiteral ( part , "content()" ) ;
112115 } ,
113116
114117 "<relative-size>" : function ( part ) {
@@ -186,17 +189,15 @@ var ValidationTypes = {
186189 } ,
187190
188191 "<shape>" : function ( part ) {
189- return part . type === "function" && ( part . name === "rect" || part . name === " inset-rect") ;
192+ return ValidationTypes . isLiteral ( part , "rect() | inset-rect() " ) ;
190193 } ,
191194
192195 "<basic-shape>" : function ( part ) {
193196 // inset() = inset( <shape-arg>{1,4} [round <border-radius>]? )
194197 // circle() = circle( [<shape-radius>]? [at <position>]? )
195198 // ellipse() = ellipse( [<shape-radius>{2}]? [at <position>]? )
196199 // polygon() = polygon( [<fill-rule>,]? [<shape-arg> <shape-arg>]# )
197- return part . type === "function" && (
198- part . name === "inset" || part . name === "circle" || part . name === "ellipse" || part . name === "polygon"
199- ) ;
200+ return ValidationTypes . isLiteral ( part , "inset() | circle() | ellipse() | polygon()" ) ;
200201 } ,
201202
202203 "<shape-box>" : function ( part ) {
@@ -240,18 +241,8 @@ var ValidationTypes = {
240241 } ,
241242
242243 "<filter-function>" : function ( part ) {
243- return part . type === "function" && (
244- part . name === 'blur' ||
245- part . name === 'brightness' ||
246- part . name === 'contrast' ||
247- part . name === 'custom' || // Not actually in formal spec.
248- part . name === 'drop-shadow' ||
249- part . name === 'grayscale' ||
250- part . name === 'hue-rotate' ||
251- part . name === 'invert' ||
252- part . name === 'opacity' ||
253- part . name === 'saturate' ||
254- part . name === 'sepia' ) ;
244+ // custom() isn't actually in the spec
245+ return ValidationTypes . isLiteral ( part , "blur() | brightness() | contrast() | custom() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia()" ) ;
255246 }
256247 } ,
257248
0 commit comments