|
Server : LiteSpeed System : Linux server104.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : saleoqej ( 6848) PHP Version : 8.0.30 Disable Function : NONE Directory : /home/saleoqej/chijamzacademy.com/wp-content/plugins/sfwd-lms/assets/js/ |
/*
* jQuery Dropdown: A simple dropdown plugin
*
* Contribute: https://github.com/claviska/jquery-dropdown
*
* @license: MIT license: http://opensource.org/licenses/MIT
*
* Customized by Yudhistira Mauris (http://www.yudhistiramauris.com/)
*
*/
if ( jQuery ) {
( function( $ ) {
$.extend( $.fn, {
jqDropdown: function( method, data ) {
switch ( method ) {
case 'show':
show( null, $( this ) );
return $( this );
case 'hide':
hide();
return $( this );
case 'attach':
return $( this ).attr( 'data-jq-dropdown', data );
case 'detach':
hide();
return $( this ).removeAttr( 'data-jq-dropdown' );
case 'disable':
return $( this ).addClass( 'jq-dropdown-disabled' );
case 'enable':
hide();
return $( this ).removeClass( 'jq-dropdown-disabled' );
}
},
} );
function show( event, object ) {
var trigger = event ? $( this ) : object,
jqDropdown = $( trigger.attr( 'data-jq-dropdown' ) ),
isOpen = trigger.hasClass( 'jq-dropdown-open' );
// In some cases we don't want to show it
if ( event ) {
if ( $( event.target ).hasClass( 'jq-dropdown-ignore' ) ) {
return;
}
event.preventDefault();
event.stopPropagation();
} else if ( trigger !== object.target && $( object.target ).hasClass( 'jq-dropdown-ignore' ) ) {
return;
}
hide();
if ( isOpen || trigger.hasClass( 'jq-dropdown-disabled' ) ) {
return;
}
// Show it
trigger.addClass( 'jq-dropdown-open' );
jqDropdown
.data( 'jq-dropdown-trigger', trigger )
.show();
// Position it
position();
// Trigger the show callback
jqDropdown
.trigger( 'show', {
jqDropdown: jqDropdown,
trigger: trigger,
} );
}
function hide( event ) {
// In some cases we don't hide them
var targetGroup = event ? $( event.target ).parents().addBack() : null;
// Are we clicking anywhere in a jq-dropdown?
if ( targetGroup && targetGroup.is( '.jq-dropdown' ) ) {
// Is it a jq-dropdown menu?
if ( targetGroup.is( '.jq-dropdown-menu' ) ) {
// Did we click on an option? If so close it.
if ( ! targetGroup.is( 'A' ) ) {
return;
}
} else {
// Nope, it's a panel. Leave it open.
return;
}
}
// Hide any jq-dropdown that may be showing
$( document ).find( '.jq-dropdown:visible' ).each( function() {
var jqDropdown = $( this );
jqDropdown
.hide()
.removeData( 'jq-dropdown-trigger' )
.trigger( 'hide', { jqDropdown: jqDropdown } );
} );
// Remove all jq-dropdown-open classes
$( document ).find( '.jq-dropdown-open' ).removeClass( 'jq-dropdown-open' );
}
function position() {
var jqDropdown = $( '.jq-dropdown:visible' ).eq( 0 ),
trigger = jqDropdown.data( 'jq-dropdown-trigger' ),
hOffset = trigger ? parseInt( trigger.attr( 'data-horizontal-offset' ) || 0, 10 ) : null,
vOffset = trigger ? parseInt( trigger.attr( 'data-vertical-offset' ) || 0, 10 ) : null;
if ( jqDropdown.length === 0 || ! trigger ) {
return;
}
if ( $( '#wpadminbar' ).length === 0 ) {
// Position the jq-dropdown relative-to-parent...
if ( jqDropdown.hasClass( 'jq-dropdown-relative' ) ) {
jqDropdown.css( {
left: jqDropdown.hasClass( 'jq-dropdown-anchor-right' )
? trigger.position().left - ( jqDropdown.outerWidth( true ) - trigger.outerWidth( true ) ) - parseInt( trigger.css( 'margin-right' ), 10 ) + hOffset
: trigger.position().left + parseInt( trigger.css( 'margin-left' ), 10 ) + hOffset,
top: trigger.position().top + trigger.outerHeight( true ) - parseInt( trigger.css( 'margin-top' ), 10 ) + vOffset,
} );
} else {
// ...or relative to document
jqDropdown.css( {
left: jqDropdown.hasClass( 'jq-dropdown-anchor-right' )
? trigger.offset().left - ( jqDropdown.outerWidth() - trigger.outerWidth() ) + hOffset : trigger.offset().left + hOffset,
top: trigger.offset().top + trigger.outerHeight() + vOffset,
} );
}
} else {
var bar_height = $( '#wpadminbar' ).css( 'height' );
bar_height = parseInt( bar_height.replace( 'px', '' ) );
// Position the jq-dropdown relative-to-parent...
if ( jqDropdown.hasClass( 'jq-dropdown-relative' ) ) {
jqDropdown.css( {
left: jqDropdown.hasClass( 'jq-dropdown-anchor-right' )
? trigger.position().left - ( jqDropdown.outerWidth( true ) - trigger.outerWidth( true ) ) - parseInt( trigger.css( 'margin-right' ), 10 ) + hOffset
: trigger.position().left + parseInt( trigger.css( 'margin-left' ), 10 ) + hOffset,
top: trigger.position().top + trigger.outerHeight( true ) - parseInt( trigger.css( 'margin-top' ), 10 ) + vOffset,
} );
} else {
// ...or relative to document
jqDropdown.css( {
left: jqDropdown.hasClass( 'jq-dropdown-anchor-right' )
? trigger.offset().left - ( jqDropdown.outerWidth() - trigger.outerWidth() ) + hOffset : trigger.offset().left + hOffset,
top: trigger.offset().top + trigger.outerHeight() + vOffset - bar_height,
} );
}
}
}
$( document ).on( 'click.jq-dropdown', '[data-jq-dropdown]', show );
$( document ).on( 'click.jq-dropdown', hide );
$( window ).on( 'resize', position );
}( jQuery ) );
}