]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/query-sizzle.js
2 Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3 Available via Academic Free License >= 2.1 OR the modified BSD license.
4 see: http://dojotoolkit.org/license for details
8 if(!dojo
._hasResource
["dojo._base.query"]){
9 dojo
._hasResource
["dojo._base.query"]=true;
10 if(typeof dojo
!="undefined"){
11 dojo
.provide("dojo._base.query");
12 dojo
.require("dojo._base.NodeList");
13 dojo
.query=function(_1
,_2
,_3
){
18 if(_1
.constructor==_3
){
21 if(!dojo
.isString(_1
)){
24 if(dojo
.isString(_2
)){
30 return dojo
.Sizzle(_1
,_2
,new _3());
32 dojo
._filterQueryResult=function(_4
,_5
){
33 return dojo
.Sizzle
.filter(_5
,_4
);
37 var _6
=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,_7
=0,_8
=Object
.prototype.toString
;
38 var _9=function(_a
,_b
,_c
,_d
){
41 if(_b
.nodeType
!==1&&_b
.nodeType
!==9){
44 if(!_a
||typeof _a
!=="string"){
47 var _e
=[],m
,_f
,_10
,_11
,_12
,_13
,_14
=true;
49 while((m
=_6
.exec(_a
))!==null){
52 _13
=RegExp
.rightContext
;
56 if(_e
.length
>1&&_15
.match
.POS
.exec(_a
)){
57 if(_e
.length
===2&&_15
.relative
[_e
[0]]){
59 while((_17
=_15
.match
.POS
.exec(_a
))){
61 _a
=_a
.replace(_15
.match
.POS
,"");
63 _f
=_9
.filter(_16
,_9(_a
,_b
));
65 _f
=_15
.relative
[_e
[0]]?[_b
]:_9(_e
.shift(),_b
);
72 for(var i
=0,l
=_f
.length
;i
<l
;i
++){
79 var ret
=_d
?{expr
:_e
.pop(),set:_19(_d
)}:_9
.find(_e
.pop(),_e
.length
===1&&_b
.parentNode
?_b
.parentNode
:_b
);
80 _f
=_9
.filter(ret
.expr
,ret
.set);
87 var cur
=_e
.pop(),pop
=cur
;
88 if(!_15
.relative
[cur
]){
96 _15
.relative
[cur
](_10
,pop
);
103 throw "Syntax error, unrecognized expression: "+(cur
||_a
);
105 if(_8
.call(_10
)==="[object Array]"){
107 _c
.push
.apply(_c
,_10
);
110 for(var i
=0;_10
[i
]!=null;i
++){
111 if(_10
[i
]&&(_10
[i
]===true||_10
[i
].nodeType
===1&&_1a(_b
,_10
[i
]))){
116 for(var i
=0;_10
[i
]!=null;i
++){
117 if(_10
[i
]&&_10
[i
].nodeType
===1){
131 _9
.matches=function(_1b
,set){
132 return _9(_1b
,null,null,set);
134 _9
.find=function(_1c
,_1d
){
139 for(var i
=0,l
=_15
.order
.length
;i
<l
;i
++){
140 var _1f
=_15
.order
[i
],_1e
;
141 if((_1e
=_15
.match
[_1f
].exec(_1c
))){
142 var _20
=RegExp
.leftContext
;
143 if(_20
.substr(_20
.length
-1)!=="\\"){
144 _1e
[1]=(_1e
[1]||"").replace(/\\/g
,"");
145 set=_15
.find
[_1f
](_1e
,_1d
);
147 _1c
=_1c
.replace(_15
.match
[_1f
],"");
154 set=_1d
.getElementsByTagName("*");
156 return {set:set,expr
:_1c
};
158 _9
.filter=function(_21
,set,_22
,not
){
159 var old
=_21
,_23
=[],_24
=set,_25
,_26
;
160 while(_21
&&set.length
){
161 for(var _27
in _15
.filter
){
162 if((_25
=_15
.match
[_27
].exec(_21
))!=null){
163 var _28
=_15
.filter
[_27
],_29
=null,_2a
=0,_2b
,_2c
;
168 if(_15
.preFilter
[_27
]){
169 _25
=_15
.preFilter
[_27
](_25
,_24
,_22
,_23
,not
);
176 for(var i
=0;(_2e
=_24
[i
])!==undefined;i
++){
186 for(var i
=0;(_2c
=_24
[i
])!==undefined;i
++){
188 if(_29
&&_2c
!=_29
[_2a
]){
191 _2b
=_28(_2c
,_25
,_2a
,_29
);
212 _21
=_21
.replace(_15
.match
[_27
],"");
220 _21
=_21
.replace(/\s*,\s*/,"");
223 throw "Syntax error, unrecognized expression: "+_21
;
232 var _15
=_9
.selectors
={order
:["ID","NAME","TAG"],match
:{ID
:/#((?:[\w\u0128-\uFFFF_-]|\\.)+)/,CLASS
:/\.((?:[\w\u0128-\uFFFF_-]|\\.)+)/,NAME
:/\[name=['"]*((?:[\w\u0128-\uFFFF_-]|\\.)+)['"]*\]/,ATTR
:/\[((?:[\w\u0128-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\]/,TAG
:/^((?:[\w\u0128-\uFFFF\*_-]|\\.)+)/,CHILD
:/:(only|nth|last|first)-child\(?(even|odd|[\dn+-]*)\)?/,POS
:/:(nth|eq|gt|lt|first|last|even|odd)\(?(\d*)\)?(?:[^-]|$)/,PSEUDO
:/:((?:[\w\u0128-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap
:{"class":"className","for":"htmlFor"},relative
:{"+":function(_30
,_31
){
233 for(var i
=0,l
=_30
.length
;i
<l
;i
++){
236 var cur
=_32
.previousSibling
;
237 while(cur
&&cur
.nodeType
!==1){
238 cur
=cur
.previousSibling
;
240 _30
[i
]=typeof _31
==="string"?cur
||false:cur
===_31
;
243 if(typeof _31
==="string"){
244 _9
.filter(_31
,_30
,true);
246 },">":function(_33
,_34
){
247 if(typeof _34
==="string"&&!/\W/.test(_34
)){
248 _34
=_34
.toUpperCase();
249 for(var i
=0,l
=_33
.length
;i
<l
;i
++){
252 var _36
=_35
.parentNode
;
253 _33
[i
]=_36
.nodeName
===_34
?_36
:false;
257 for(var i
=0,l
=_33
.length
;i
<l
;i
++){
260 _33
[i
]=typeof _34
==="string"?_35
.parentNode
:_35
.parentNode
===_34
;
263 if(typeof _34
==="string"){
264 _9
.filter(_34
,_33
,true);
267 },"":function(_37
,_38
){
268 var _39
="done"+(_7
++),_3a
=_3b
;
269 if(!_38
.match(/\W/)){
270 var _3c
=_38
=_38
.toUpperCase();
273 _3a("parentNode",_38
,_39
,_37
,_3c
);
274 },"~":function(_3e
,_3f
){
275 var _40
="done"+(_7
++),_41
=_3b
;
276 if(typeof _3f
==="string"&&!_3f
.match(/\W/)){
277 var _42
=_3f
=_3f
.toUpperCase();
280 _41("previousSibling",_3f
,_40
,_3e
,_42
);
281 }},find
:{ID:function(_43
,_44
){
282 if(_44
.getElementById
){
283 var m
=_44
.getElementById(_43
[1]);
286 },NAME:function(_45
,_46
){
287 return _46
.getElementsByName
?_46
.getElementsByName(_45
[1]):null;
288 },TAG:function(_47
,_48
){
289 return _48
.getElementsByTagName(_47
[1]);
290 }},preFilter
:{CLASS:function(_49
,_4a
,_4b
,_4c
,not
){
291 _49
=" "+_49
[1].replace(/\\/g
,"")+" ";
292 for(var i
=0;_4a
[i
];i
++){
293 if(not
^(" "+_4a
[i
].className
+" ").indexOf(_49
)>=0){
307 return _4e
[1].toUpperCase();
308 },CHILD:function(_4f
){
310 var _50
=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(_4f
[2]=="even"&&"2n"||_4f
[2]=="odd"&&"2n+1"||!/\D/.test(_4f
[2])&&"0n+"+_4f
[2]||_4f
[2]);
311 _4f
[2]=(_50
[1]+(_50
[2]||1))-0;
314 _4f
[0]="done"+(_7
++);
316 },ATTR:function(_51
){
318 if(_15
.attrMap
[_52
]){
319 _51
[1]=_15
.attrMap
[_52
];
322 _51
[4]=" "+_51
[4]+" ";
325 },PSEUDO:function(_53
,_54
,_55
,_56
,not
){
327 if(_53
[3].match(_6
).length
>1){
328 _53
[3]=_9(_53
[3],null,null,_54
);
330 var ret
=_9
.filter(_53
[3],_54
,_55
,true^not
);
332 _56
.push
.apply(_56
,ret
);
341 }},filters
:{enabled:function(_58
){
342 return _58
.disabled
===false&&_58
.type
!=="hidden";
343 },disabled:function(_59
){
344 return _59
.disabled
===true;
345 },checked:function(_5a
){
346 return _5a
.checked
===true;
347 },selected:function(_5b
){
348 _5b
.parentNode
.selectedIndex
;
349 return _5b
.selected
===true;
350 },parent:function(_5c
){
351 return !!_5c
.firstChild
;
352 },empty:function(_5d
){
353 return !_5d
.firstChild
;
354 },has:function(_5e
,i
,_5f
){
355 return !!_9(_5f
[3],_5e
).length
;
356 },header:function(_60
){
357 return /h\d/i.test(_60
.nodeName
);
358 },text:function(_61
){
359 return "text"===_61
.type
;
360 },radio:function(_62
){
361 return "radio"===_62
.type
;
362 },checkbox:function(_63
){
363 return "checkbox"===_63
.type
;
364 },file:function(_64
){
365 return "file"===_64
.type
;
366 },password:function(_65
){
367 return "password"===_65
.type
;
368 },submit:function(_66
){
369 return "submit"===_66
.type
;
370 },image:function(_67
){
371 return "image"===_67
.type
;
372 },reset:function(_68
){
373 return "reset"===_68
.type
;
374 },button:function(_69
){
375 return "button"===_69
.type
||_69
.nodeName
.toUpperCase()==="BUTTON";
376 },input:function(_6a
){
377 return /input|select|textarea|button/i.test(_6a
.nodeName
);
378 }},setFilters
:{first:function(_6b
,i
){
380 },last:function(_6c
,i
,_6d
,_6e
){
381 return i
===_6e
.length
-1;
382 },even:function(_6f
,i
){
384 },odd:function(_70
,i
){
386 },lt:function(_71
,i
,_72
){
388 },gt:function(_73
,i
,_74
){
390 },nth:function(_75
,i
,_76
){
392 },eq:function(_77
,i
,_78
){
394 }},filter
:{CHILD:function(_79
,_7a
){
395 var _7b
=_7a
[1],_7c
=_79
.parentNode
;
399 for(var _7f
=_7c
.firstChild
;_7f
;_7f
=_7f
.nextSibling
){
407 return _79
.nodeIndex
==1;
410 return _79
.nodeIndex
==_7c
[_7d
];
416 var add
=false,_80
=_7a
[2],_81
=_7a
[3];
421 if(_79
.nodeIndex
==_81
){
425 if((_79
.nodeIndex
-_81
)%_80
==0&&(_79
.nodeIndex
-_81
)/_80
>=0){
434 },PSEUDO:function(_82
,_83
,i
,_84
){
435 var _85
=_83
[1],_86
=_15
.filters
[_85
];
437 return _86(_82
,i
,_83
,_84
);
439 if(_85
==="contains"){
440 return (_82
.textContent
||_82
.innerText
||"").indexOf(_83
[3])>=0;
444 for(var i
=0,l
=not
.length
;i
<l
;i
++){
453 },ID:function(_87
,_88
){
454 return _87
.nodeType
===1&&_87
.getAttribute("id")===_88
;
455 },TAG:function(_89
,_8a
){
456 return (_8a
==="*"&&_89
.nodeType
===1)||_89
.nodeName
===_8a
;
457 },CLASS:function(_8b
,_8c
){
458 return _8c
.test(_8b
.className
);
459 },ATTR:function(_8d
,_8e
){
460 var _8f
=_8d
[_8e
[1]]||_8d
.getAttribute(_8e
[1]),_90
=_8f
+"",_91
=_8e
[2],_92
=_8e
[4];
461 return _8f
==null?false:_91
==="="?_90
===_92
:_91
==="*="?_90
.indexOf(_92
)>=0:_91
==="~="?(" "+_90
+" ").indexOf(_92
)>=0:!_8e
[4]?_8f
:_91
==="!="?_90
!=_92
:_91
==="^="?_90
.indexOf(_92
)===0:_91
==="$="?_90
.substr(_90
.length
-_92
.length
)===_92
:_91
==="|="?_90
===_92
||_90
.substr(0,_92
.length
+1)===_92
+"-":false;
462 },POS:function(_93
,_94
,i
,_95
){
463 var _96
=_94
[2],_97
=_15
.setFilters
[_96
];
465 return _97(_93
,i
,_94
,_95
);
468 for(var _98
in _15
.match
){
469 _15
.match
[_98
]=RegExp(_15
.match
[_98
].source
+/(?![^\[]*\])(?![^\(]*\))/.source
);
471 var _19=function(_99
,_9a
){
472 _99
=Array
.prototype.slice
.call(_99
);
474 _9a
.push
.apply(_9a
,_99
);
480 Array
.prototype.slice
.call(document
.documentElement
.childNodes
);
483 _19=function(_9b
,_9c
){
485 if(_8
.call(_9b
)==="[object Array]"){
486 Array
.prototype.push
.apply(ret
,_9b
);
488 if(typeof _9b
.length
==="number"){
489 for(var i
=0,l
=_9b
.length
;i
<l
;i
++){
493 for(var i
=0;_9b
[i
];i
++){
502 var _9d
=document
.createElement("form"),id
="script"+(new Date
).getTime();
503 _9d
.innerHTML
="<input name='"+id
+"'/>";
504 var _9e
=document
.documentElement
;
505 _9e
.insertBefore(_9d
,_9e
.firstChild
);
506 if(!!document
.getElementById(id
)){
507 _15
.find
.ID=function(_9f
,_a0
){
508 if(_a0
.getElementById
){
509 var m
=_a0
.getElementById(_9f
[1]);
510 return m
?m
.id
===_9f
[1]||m
.getAttributeNode
&&m
.getAttributeNode("id").nodeValue
===_9f
[1]?[m
]:undefined:[];
513 _15
.filter
.ID=function(_a1
,_a2
){
514 var _a3
=_a1
.getAttributeNode
&&_a1
.getAttributeNode("id");
515 return _a1
.nodeType
===1&&_a3
&&_a3
.nodeValue
===_a2
;
518 _9e
.removeChild(_9d
);
521 var div
=document
.createElement("div");
522 div
.appendChild(document
.createComment(""));
523 if(div
.getElementsByTagName("*").length
>0){
524 _15
.find
.TAG=function(_a4
,_a5
){
525 var _a6
=_a5
.getElementsByTagName(_a4
[1]);
528 for(var i
=0;_a6
[i
];i
++){
529 if(_a6
[i
].nodeType
===1){
539 if(document
.querySelectorAll
){
542 _9=function(_a8
,_a9
,_aa
,_ab
){
544 if(!_ab
&&_a9
.nodeType
===9){
546 return _19(_a9
.querySelectorAll(_a8
),_aa
);
551 return _a7(_a8
,_a9
,_aa
,_ab
);
554 _9
.filter
=_a7
.filter
;
555 _9
.selectors
=_a7
.selectors
;
556 _9
.matches
=_a7
.matches
;
559 if(document
.documentElement
.getElementsByClassName
){
560 _15
.order
.splice(1,0,"CLASS");
561 _15
.find
.CLASS=function(_ac
,_ad
){
562 return _ad
.getElementsByClassName(_ac
[1]);
565 function _3d(dir
,cur
,_ae
,_af
,_b0
){
566 for(var i
=0,l
=_af
.length
;i
<l
;i
++){
571 while(_b1
&&_b1
.nodeType
){
577 if(_b1
.nodeType
===1){
580 if(_b1
.nodeName
===cur
){
590 function _3b(dir
,cur
,_b4
,_b5
,_b6
){
591 for(var i
=0,l
=_b5
.length
;i
<l
;i
++){
596 while(_b7
&&_b7
.nodeType
){
601 if(_b7
.nodeType
===1){
603 if(typeof cur
!=="string"){
609 if(_9
.filter(cur
,[_b7
]).length
>0){
621 var _1a
=document
.compareDocumentPosition
?function(a
,b
){
622 return a
.compareDocumentPosition(b
)&16;
624 return a
!==b
&&(a
.contains
?a
.contains(b
):true);
626 (ns
||window
).Sizzle
=_9
;
627 })(typeof dojo
=="undefined"?null:dojo
);