: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
/*! jQuery UI - v1.13.3 - 2024-04-26
* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
* Copyright jQuery Foundation and other contributors; Licensed MIT */
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define( [ "jquery" ], factory );
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>label: :data Selector
//>>description: Selects elements which have data stored under the specified key.
//>>docs: https://api.jqueryui.com/data-selector/
$.extend( $.expr.pseudos, {
data: $.expr.createPseudo ?
$.expr.createPseudo( function( dataName ) {
return function( elem ) {
return !!$.data( elem, dataName );
function( elem, i, match ) {
return !!$.data( elem, match[ 3 ] );
// Source: disable-selection.js
* jQuery UI Disable Selection 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>label: disableSelection
//>>description: Disable selection of text content within the set of matched elements.
//>>docs: https://api.jqueryui.com/disableSelection/
// This file is deprecated
disableSelection: ( function() {
var eventType = "onselectstart" in document.createElement( "div" ) ?
return this.on( eventType + ".ui-disableSelection", function( event ) {
enableSelection: function() {
return this.off( ".ui-disableSelection" );
* jQuery UI Focusable 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>label: :focusable Selector
//>>description: Selects elements which can be focused.
//>>docs: https://api.jqueryui.com/focusable-selector/
$.ui.focusable = function( element, hasTabindex ) {
var map, mapName, img, focusableIfVisible, fieldset,
nodeName = element.nodeName.toLowerCase();
if ( "area" === nodeName ) {
map = element.parentNode;
if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
img = $( "img[usemap='#" + mapName + "']" );
return img.length > 0 && img.is( ":visible" );
if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
focusableIfVisible = !element.disabled;
if ( focusableIfVisible ) {
// Form controls within a disabled fieldset are disabled.
// However, controls within the fieldset's legend do not get disabled.
// Since controls generally aren't placed inside legends, we skip
// this portion of the check.
fieldset = $( element ).closest( "fieldset" )[ 0 ];
focusableIfVisible = !fieldset.disabled;
} else if ( "a" === nodeName ) {
focusableIfVisible = element.href || hasTabindex;
focusableIfVisible = hasTabindex;
return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
// IE 8 doesn't resolve inherit to visible/hidden for computed values
function visible( element ) {
var visibility = element.css( "visibility" );
while ( visibility === "inherit" ) {
element = element.parent();
visibility = element.css( "visibility" );
return visibility === "visible";
$.extend( $.expr.pseudos, {
focusable: function( element ) {
return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
// with a string, so we need to find the proper form.
$.fn._form = function() {
return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
// Source: form-reset-mixin.js
* jQuery UI Form Reset Mixin 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>label: Form Reset Mixin
//>>description: Refresh input widgets when their form is reset
//>>docs: https://api.jqueryui.com/form-reset-mixin/
_formResetHandler: function() {
// Wait for the form reset to actually happen before refreshing
var instances = form.data( "ui-form-reset-instances" );
$.each( instances, function() {
_bindFormResetHandler: function() {
this.form = this.element._form();
if ( !this.form.length ) {
var instances = this.form.data( "ui-form-reset-instances" ) || [];
if ( !instances.length ) {
// We don't use _on() here because we use a single event handler per form
this.form.on( "reset.ui-form-reset", this._formResetHandler );
this.form.data( "ui-form-reset-instances", instances );
_unbindFormResetHandler: function() {
if ( !this.form.length ) {
var instances = this.form.data( "ui-form-reset-instances" );
instances.splice( $.inArray( this, instances ), 1 );
if ( instances.length ) {
this.form.data( "ui-form-reset-instances", instances );
.removeData( "ui-form-reset-instances" )
.off( "reset.ui-form-reset" );
// This file is deprecated
$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
// Source: jquery-patch.js
* jQuery UI Support for jQuery core 1.8.x and newer 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>label: jQuery 1.8+ Support
//>>description: Support version 1.8.x and newer of jQuery core
// Support: jQuery 1.9.x or older
// $.expr[ ":" ] is deprecated.
$.expr.pseudos = $.expr[ ":" ];
// Support: jQuery 1.11.x or older
// $.unique has been renamed to $.uniqueSort
// 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 ) {
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
// 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
$.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 ) {
return this.filter( function( i ) {
return this.filter( function( i ) {
* jQuery UI Keycode 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>description: Provide keycodes as keynames
//>>docs: https://api.jqueryui.com/jQuery.ui.keyCode/
* jQuery UI Labels 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
//>>description: Find all the labels associated with a given input
//>>docs: https://api.jqueryui.com/labels/
$.fn.labels = function() {
var ancestor, selector, id, labels, ancestors;
return this.pushStack( [] );
// Check control.labels first
if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
return this.pushStack( this[ 0 ].labels );
// Support: IE <= 11, FF <= 37, Android <= 2.3 only
// Above browsers do not support control.labels. Everything below is to support them
// as well as document fragments. control.labels does not work on document fragments
labels = this.eq( 0 ).parents( "label" );
// Look for the label based on the id
// We don't search against the document in case the element
// is disconnected from the DOM
ancestor = this.eq( 0 ).parents().last();
// Get a full set of top level ancestors
ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
// Create a selector for the label based on the id
selector = "label[for='" + $.escapeSelector( id ) + "']";
labels = labels.add( ancestors.find( selector ).addBack( selector ) );
// Return whatever we have found for labels
return this.pushStack( labels );
// $.ui.plugin is deprecated. Use $.widget() extensions instead.
add: function( module, option, set ) {
proto = $.ui[ module ].prototype;
proto.plugins[ i ] = proto.plugins[ i ] || [];
proto.plugins[ i ].push( [ option, set[ i ] ] );
call: function( instance, name, args, allowDisconnected ) {
set = instance.plugins[ name ];
if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
for ( i = 0; i < set.length; i++ ) {
if ( instance.options[ set[ i ][ 0 ] ] ) {
set[ i ][ 1 ].apply( instance.element, args );
* jQuery UI Position 1.13.3
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license.
* https://jquery.org/license
* https://api.jqueryui.com/position/
//>>description: Positions elements relative to other elements.
//>>docs: https://api.jqueryui.com/position/
//>>demos: https://jqueryui.com/position/
var cachedScrollbarWidth,
rhorizontal = /left|center|right/,
rvertical = /top|center|bottom/,
roffset = /[\+\-]\d+(\.[\d]+)?%?/,
_position = $.fn.position;
function getOffsets( offsets, width, height ) {
parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
function parseCss( element, property ) {
return parseInt( $.css( element, property ), 10 ) || 0;
function isWindow( obj ) {
return obj != null && obj === obj.window;
function getDimensions( elem ) {
if ( raw.nodeType === 9 ) {
offset: { top: 0, left: 0 }
offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
if ( raw.preventDefault ) {
offset: { top: raw.pageY, left: raw.pageX }
width: elem.outerWidth(),
height: elem.outerHeight(),
scrollbarWidth: function() {
if ( cachedScrollbarWidth !== undefined ) {