@@ -45,7 +45,7 @@ jQuery.urlencode = encodeURIComponent;
45
45
* it will always return arrays of strings for the value parts.
46
46
*/
47
47
jQuery . getQueryParameters = function ( s ) {
48
- if ( typeof s == 'undefined' )
48
+ if ( typeof s === 'undefined' )
49
49
s = document . location . search ;
50
50
var parts = s . substr ( s . indexOf ( '?' ) + 1 ) . split ( '&' ) ;
51
51
var result = { } ;
@@ -66,29 +66,53 @@ jQuery.getQueryParameters = function(s) {
66
66
* span elements with the given class name.
67
67
*/
68
68
jQuery . fn . highlightText = function ( text , className ) {
69
- function highlight ( node ) {
70
- if ( node . nodeType == 3 ) {
69
+ function highlight ( node , addItems ) {
70
+ if ( node . nodeType === 3 ) {
71
71
var val = node . nodeValue ;
72
72
var pos = val . toLowerCase ( ) . indexOf ( text ) ;
73
73
if ( pos >= 0 && ! jQuery ( node . parentNode ) . hasClass ( className ) ) {
74
- var span = document . createElement ( "span" ) ;
75
- span . className = className ;
74
+ var span ;
75
+ var isInSVG = jQuery ( node ) . closest ( "body, svg, foreignObject" ) . is ( "svg" ) ;
76
+ if ( isInSVG ) {
77
+ span = document . createElementNS ( "http://www.w3.org/2000/svg" , "tspan" ) ;
78
+ } else {
79
+ span = document . createElement ( "span" ) ;
80
+ span . className = className ;
81
+ }
76
82
span . appendChild ( document . createTextNode ( val . substr ( pos , text . length ) ) ) ;
77
83
node . parentNode . insertBefore ( span , node . parentNode . insertBefore (
78
84
document . createTextNode ( val . substr ( pos + text . length ) ) ,
79
85
node . nextSibling ) ) ;
80
86
node . nodeValue = val . substr ( 0 , pos ) ;
87
+ if ( isInSVG ) {
88
+ var bbox = span . getBBox ( ) ;
89
+ var rect = document . createElementNS ( "http://www.w3.org/2000/svg" , "rect" ) ;
90
+ rect . x . baseVal . value = bbox . x ;
91
+ rect . y . baseVal . value = bbox . y ;
92
+ rect . width . baseVal . value = bbox . width ;
93
+ rect . height . baseVal . value = bbox . height ;
94
+ rect . setAttribute ( 'class' , className ) ;
95
+ var parentOfText = node . parentNode . parentNode ;
96
+ addItems . push ( {
97
+ "parent" : node . parentNode ,
98
+ "target" : rect } ) ;
99
+ }
81
100
}
82
101
}
83
102
else if ( ! jQuery ( node ) . is ( "button, select, textarea" ) ) {
84
103
jQuery . each ( node . childNodes , function ( ) {
85
- highlight ( this ) ;
104
+ highlight ( this , addItems ) ;
86
105
} ) ;
87
106
}
88
107
}
89
- return this . each ( function ( ) {
90
- highlight ( this ) ;
108
+ var addItems = [ ] ;
109
+ var result = this . each ( function ( ) {
110
+ highlight ( this , addItems ) ;
91
111
} ) ;
112
+ for ( var i = 0 ; i < addItems . length ; ++ i ) {
113
+ jQuery ( addItems [ i ] . parent ) . before ( addItems [ i ] . target ) ;
114
+ }
115
+ return result ;
92
116
} ;
93
117
94
118
/*
@@ -131,21 +155,21 @@ var Documentation = {
131
155
* i18n support
132
156
*/
133
157
TRANSLATIONS : { } ,
134
- PLURAL_EXPR : function ( n ) { return n == 1 ? 0 : 1 ; } ,
158
+ PLURAL_EXPR : function ( n ) { return n === 1 ? 0 : 1 ; } ,
135
159
LOCALE : 'unknown' ,
136
160
137
161
// gettext and ngettext don't access this so that the functions
138
162
// can safely bound to a different name (_ = Documentation.gettext)
139
163
gettext : function ( string ) {
140
164
var translated = Documentation . TRANSLATIONS [ string ] ;
141
- if ( typeof translated == 'undefined' )
165
+ if ( typeof translated === 'undefined' )
142
166
return string ;
143
- return ( typeof translated == 'string' ) ? translated : translated [ 0 ] ;
167
+ return ( typeof translated === 'string' ) ? translated : translated [ 0 ] ;
144
168
} ,
145
169
146
170
ngettext : function ( singular , plural , n ) {
147
171
var translated = Documentation . TRANSLATIONS [ singular ] ;
148
- if ( typeof translated == 'undefined' )
172
+ if ( typeof translated === 'undefined' )
149
173
return ( n == 1 ) ? singular : plural ;
150
174
return translated [ Documentation . PLURALEXPR ( n ) ] ;
151
175
} ,
@@ -216,7 +240,7 @@ var Documentation = {
216
240
var src = $ ( this ) . attr ( 'src' ) ;
217
241
var idnum = $ ( this ) . attr ( 'id' ) . substr ( 7 ) ;
218
242
$ ( 'tr.cg-' + idnum ) . toggle ( ) ;
219
- if ( src . substr ( - 9 ) == 'minus.png' )
243
+ if ( src . substr ( - 9 ) === 'minus.png' )
220
244
$ ( this ) . attr ( 'src' , src . substr ( 0 , src . length - 9 ) + 'plus.png' ) ;
221
245
else
222
246
$ ( this ) . attr ( 'src' , src . substr ( 0 , src . length - 8 ) + 'minus.png' ) ;
@@ -248,7 +272,7 @@ var Documentation = {
248
272
var path = document . location . pathname ;
249
2
10000
73
var parts = path . split ( / \/ / ) ;
250
274
$ . each ( DOCUMENTATION_OPTIONS . URL_ROOT . split ( / \/ / ) , function ( ) {
251
- if ( this == '..' )
275
+ if ( this === '..' )
252
276
parts . pop ( ) ;
253
277
} ) ;
254
278
var url = parts . join ( '/' ) ;
0 commit comments