1- /*! jQuery UI - v1.13.2 - 2023-02-27
2- * http ://jqueryui.com
1+ /*! jQuery UI - v1.14.1 - 2025-01-13
2+ * https ://jqueryui.com
33* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
4- * Copyright jQuery Foundation and other contributors; Licensed MIT */
4+ * Copyright OpenJS Foundation and other contributors; Licensed MIT */
55
66( function ( factory ) {
77 "use strict" ;
8-
8+
99 if ( typeof define === "function" && define . amd ) {
1010
1111 // AMD. Register as an anonymous module.
2020
2121$ . ui = $ . ui || { } ;
2222
23- var version = $ . ui . version = "1.13.2 " ;
23+ var version = $ . ui . version = "1.14.1 " ;
2424
2525
2626/*!
27- * jQuery UI Widget 1.13.2
28- * http ://jqueryui.com
27+ * jQuery UI Widget 1.14.1
28+ * https ://jqueryui.com
2929 *
30- * Copyright jQuery Foundation and other contributors
30+ * Copyright OpenJS Foundation and other contributors
3131 * Released under the MIT license.
32- * http ://jquery.org/license
32+ * https ://jquery.org/license
3333 */
3434
3535//>>label: Widget
3636//>>group: Core
3737//>>description: Provides a factory for creating stateful widgets with a common API.
38- //>>docs: http ://api.jqueryui.com/jQuery.widget/
39- //>>demos: http ://jqueryui.com/widget/
38+ //>>docs: https ://api.jqueryui.com/jQuery.widget/
39+ //>>demos: https ://jqueryui.com/widget/
4040
4141
4242var widgetUuid = 0 ;
@@ -67,6 +67,9 @@ $.widget = function( name, base, prototype ) {
6767
6868 var namespace = name . split ( "." ) [ 0 ] ;
6969 name = name . split ( "." ) [ 1 ] ;
70+ if ( name === "__proto__" || name === "constructor" ) {
71+ return $ . error ( "Invalid widget name: " + name ) ;
72+ }
7073 var fullName = namespace + "-" + name ;
7174
7275 if ( ! prototype ) {
@@ -766,21 +769,21 @@ var widget = $.widget;
766769
767770
768771/*!
769- * jQuery UI Position 1.13.2
770- * http ://jqueryui.com
772+ * jQuery UI Position 1.14.1
773+ * https ://jqueryui.com
771774 *
772- * Copyright jQuery Foundation and other contributors
775+ * Copyright OpenJS Foundation and other contributors
773776 * Released under the MIT license.
774- * http ://jquery.org/license
777+ * https ://jquery.org/license
775778 *
776- * http ://api.jqueryui.com/position/
779+ * https ://api.jqueryui.com/position/
777780 */
778781
779782//>>label: Position
780783//>>group: Core
781784//>>description: Positions elements relative to other elements.
782- //>>docs: http ://api.jqueryui.com/position/
783- //>>demos: http ://jqueryui.com/position/
785+ //>>docs: https ://api.jqueryui.com/position/
786+ //>>demos: https ://jqueryui.com/position/
784787
785788
786789( function ( ) {
@@ -1263,18 +1266,18 @@ var position = $.ui.position;
12631266
12641267
12651268/*!
1266- * jQuery UI Keycode 1.13.2
1267- * http ://jqueryui.com
1269+ * jQuery UI Keycode 1.14.1
1270+ * https ://jqueryui.com
12681271 *
1269- * Copyright jQuery Foundation and other contributors
1272+ * Copyright OpenJS Foundation and other contributors
12701273 * Released under the MIT license.
1271- * http ://jquery.org/license
1274+ * https ://jquery.org/license
12721275 */
12731276
12741277//>>label: Keycode
12751278//>>group: Core
12761279//>>description: Provide keycodes as keynames
1277- //>>docs: http ://api.jqueryui.com/jQuery.ui.keyCode/
1280+ //>>docs: https ://api.jqueryui.com/jQuery.ui.keyCode/
12781281
12791282
12801283var keycode = $ . ui . keyCode = {
@@ -1298,18 +1301,18 @@ var keycode = $.ui.keyCode = {
12981301
12991302
13001303/*!
1301- * jQuery UI Unique ID 1.13.2
1302- * http ://jqueryui.com
1304+ * jQuery UI Unique ID 1.14.1
1305+ * https ://jqueryui.com
13031306 *
1304- * Copyright jQuery Foundation and other contributors
1307+ * Copyright OpenJS Foundation and other contributors
13051308 * Released under the MIT license.
1306- * http ://jquery.org/license
1309+ * https ://jquery.org/license
13071310 */
13081311
13091312//>>label: uniqueId
13101313//>>group: Core
13111314//>>description: Functions to generate and remove uniqueId's
1312- //>>docs: http ://api.jqueryui.com/uniqueId/
1315+ //>>docs: https ://api.jqueryui.com/uniqueId/
13131316
13141317
13151318var uniqueId = $ . fn . extend ( {
@@ -1335,57 +1338,27 @@ var uniqueId = $.fn.extend( {
13351338} ) ;
13361339
13371340
1338-
1339- var safeActiveElement = $ . ui . safeActiveElement = function ( document ) {
1340- var activeElement ;
1341-
1342- // Support: IE 9 only
1343- // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
1344- try {
1345- activeElement = document . activeElement ;
1346- } catch ( error ) {
1347- activeElement = document . body ;
1348- }
1349-
1350- // Support: IE 9 - 11 only
1351- // IE may return null instead of an element
1352- // Interestingly, this only seems to occur when NOT in an iframe
1353- if ( ! activeElement ) {
1354- activeElement = document . body ;
1355- }
1356-
1357- // Support: IE 11 only
1358- // IE11 returns a seemingly empty object in some cases when accessing
1359- // document.activeElement from an <iframe>
1360- if ( ! activeElement . nodeName ) {
1361- activeElement = document . body ;
1362- }
1363-
1364- return activeElement ;
1365- } ;
1366-
1367-
13681341/*!
1369- * jQuery UI Menu 1.13.2
1370- * http ://jqueryui.com
1342+ * jQuery UI Menu 1.14.1
1343+ * https ://jqueryui.com
13711344 *
1372- * Copyright jQuery Foundation and other contributors
1345+ * Copyright OpenJS Foundation and other contributors
13731346 * Released under the MIT license.
1374- * http ://jquery.org/license
1347+ * https ://jquery.org/license
13751348 */
13761349
13771350//>>label: Menu
13781351//>>group: Widgets
13791352//>>description: Creates nestable menus.
1380- //>>docs: http ://api.jqueryui.com/menu/
1381- //>>demos: http ://jqueryui.com/menu/
1353+ //>>docs: https ://api.jqueryui.com/menu/
1354+ //>>demos: https ://jqueryui.com/menu/
13821355//>>css.structure: ../../themes/base/core.css
13831356//>>css.structure: ../../themes/base/menu.css
13841357//>>css.theme: ../../themes/base/theme.css
13851358
13861359
13871360var widgetsMenu = $ . widget ( "ui.menu" , {
1388- version : "1.13.2 " ,
1361+ version : "1.14.1 " ,
13891362 defaultElement : "<ul>" ,
13901363 delay : 300 ,
13911364 options : {
@@ -1432,7 +1405,7 @@ var widgetsMenu = $.widget( "ui.menu", {
14321405 } ,
14331406 "click .ui-menu-item" : function ( event ) {
14341407 var target = $ ( event . target ) ;
1435- var active = $ ( $ . ui . safeActiveElement ( this . document [ 0 ] ) ) ;
1408+ var active = $ ( this . document [ 0 ] . activeElement ) ;
14361409 if ( ! this . mouseHandled && target . not ( ".ui-state-disabled" ) . length ) {
14371410 this . select ( event ) ;
14381411
@@ -1476,7 +1449,7 @@ var widgetsMenu = $.widget( "ui.menu", {
14761449 this . _delay ( function ( ) {
14771450 var notContained = ! $ . contains (
14781451 this . element [ 0 ] ,
1479- $ . ui . safeActiveElement ( this . document [ 0 ] )
1452+ this . document [ 0 ] . activeElement
14801453 ) ;
14811454 if ( notContained ) {
14821455 this . collapseAll ( event ) ;
@@ -2057,26 +2030,26 @@ var widgetsMenu = $.widget( "ui.menu", {
20572030
20582031
20592032/*!
2060- * jQuery UI Autocomplete 1.13.2
2061- * http ://jqueryui.com
2033+ * jQuery UI Autocomplete 1.14.1
2034+ * https ://jqueryui.com
20622035 *
2063- * Copyright jQuery Foundation and other contributors
2036+ * Copyright OpenJS Foundation and other contributors
20642037 * Released under the MIT license.
2065- * http ://jquery.org/license
2038+ * https ://jquery.org/license
20662039 */
20672040
20682041//>>label: Autocomplete
20692042//>>group: Widgets
20702043//>>description: Lists suggested words as the user is typing.
2071- //>>docs: http ://api.jqueryui.com/autocomplete/
2072- //>>demos: http ://jqueryui.com/autocomplete/
2044+ //>>docs: https ://api.jqueryui.com/autocomplete/
2045+ //>>demos: https ://jqueryui.com/autocomplete/
20732046//>>css.structure: ../../themes/base/core.css
20742047//>>css.structure: ../../themes/base/autocomplete.css
20752048//>>css.theme: ../../themes/base/theme.css
20762049
20772050
20782051$ . widget ( "ui.autocomplete" , {
2079- version : "1.13.2 " ,
2052+ version : "1.14.1 " ,
20802053 defaultElement : "<input>" ,
20812054 options : {
20822055 appendTo : null ,
@@ -2120,9 +2093,9 @@ $.widget( "ui.autocomplete", {
21202093
21212094 // Textareas are always multi-line
21222095 // Inputs are always single-line, even if inside a contentEditable element
2123- // IE also treats inputs as contentEditable
2124- // All other element types are determined by whether or not they're contentEditable
2125- this . isMultiLine = isTextarea || ! isInput && this . _isContentEditable ( this . element ) ;
2096+ // All other element types are determined by whether they're contentEditable
2097+ this . isMultiLine = isTextarea ||
2098+ ! isInput && this . element . prop ( "contentEditable" ) === "true" ;
21262099
21272100 this . valueMethod = this . element [ isTextarea || isInput ? "val" : "text" ] ;
21282101 this . isNewMenu = true ;
@@ -2186,7 +2159,6 @@ $.widget( "ui.autocomplete", {
21862159
21872160 // Different browsers have different default behavior for escape
21882161 // Single press can mean undo or clear
2189- // Double press in IE means clear the whole form
21902162 event . preventDefault ( ) ;
21912163 }
21922164 break ;
@@ -2255,16 +2227,6 @@ $.widget( "ui.autocomplete", {
22552227 role : null
22562228 } )
22572229 . hide ( )
2258-
2259- // Support: IE 11 only, Edge <= 14
2260- // For other browsers, we preventDefault() on the mousedown event
2261- // to keep the dropdown from taking focus from the input. This doesn't
2262- // work for IE/Edge, causing problems with selection and scrolling (#9638)
2263- // Happily, IE and Edge support an "unselectable" attribute that
2264- // prevents an element from receiving focus, exactly what we want here.
2265- . attr ( {
2266- "unselectable" : "on"
2267- } )
22682230 . menu ( "instance" ) ;
22692231
22702232 this . _addClass ( this . menu . element , "ui-autocomplete" , "ui-front" ) ;
@@ -2277,7 +2239,7 @@ $.widget( "ui.autocomplete", {
22772239 menufocus : function ( event , ui ) {
22782240 var label , item ;
22792241
2280- // support : Firefox
2242+ // Support : Firefox
22812243 // Prevent accidental activation of menu items in Firefox (#7024 #9118)
22822244 if ( this . isNewMenu ) {
22832245 this . isNewMenu = false ;
@@ -2315,17 +2277,9 @@ $.widget( "ui.autocomplete", {
23152277 previous = this . previous ;
23162278
23172279 // Only trigger when focus was lost (click on menu)
2318- if ( this . element [ 0 ] !== $ . ui . safeActiveElement ( this . document [ 0 ] ) ) {
2280+ if ( this . element [ 0 ] !== this . document [ 0 ] . activeElement ) {
23192281 this . element . trigger ( "focus" ) ;
23202282 this . previous = previous ;
2321-
2322- // #6109 - IE triggers two focus events and the second
2323- // is asynchronous, so we need to reset the previous
2324- // term synchronously and asynchronously :-(
2325- this . _delay ( function ( ) {
2326- this . previous = previous ;
2327- this . selectedItem = item ;
2328- } ) ;
23292283 }
23302284
23312285 if ( false !== this . _trigger ( "select" , event , { item : item } ) ) {
@@ -2644,24 +2598,6 @@ $.widget( "ui.autocomplete", {
26442598 // Prevents moving cursor to beginning/end of the text field in some browsers
26452599 event . preventDefault ( ) ;
26462600 }
2647- } ,
2648-
2649- // Support: Chrome <=50
2650- // We should be able to just use this.element.prop( "isContentEditable" )
2651- // but hidden elements always report false in Chrome.
2652- // https://code.google.com/p/chromium/issues/detail?id=313082
2653- _isContentEditable : function ( element ) {
2654- if ( ! element . length ) {
2655- return false ;
2656- }
2657-
2658- var editable = element . prop ( "contentEditable" ) ;
2659-
2660- if ( editable === "inherit" ) {
2661- return this . _isContentEditable ( element . parent ( ) ) ;
2662- }
2663-
2664- return editable === "true" ;
26652601 }
26662602} ) ;
26672603
0 commit comments