aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery-patch.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/jquery-patch.js')
-rw-r--r--ui/jquery-patch.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/jquery-patch.js b/ui/jquery-patch.js
index 4d939535e..578c47a3f 100644
--- a/ui/jquery-patch.js
+++ b/ui/jquery-patch.js
@@ -36,6 +36,36 @@ if ( !$.uniqueSort ) {
$.uniqueSort = $.unique;
}
+// Support: jQuery 2.2.x or older.
+// This method has been defined in jQuery 3.0.0.
+// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js
+if ( !$.escapeSelector ) {
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
+
+ var fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+ }
+
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
+ };
+
+ $.escapeSelector = function( sel ) {
+ return ( sel + "" ).replace( rcssescape, fcssescape );
+ };
+}
+
// Support: jQuery 3.4.x or older
// These methods have been defined in jQuery 3.5.0.
if ( !$.fn.even || !$.fn.odd ) {