AlkantarClanX12
Current Path : /home/thanudqk/128shen.com/wp-content/plugins/LayerSlider/assets/static/admin/js/ |
Current File : /home/thanudqk/128shen.com/wp-content/plugins/LayerSlider/assets/static/admin/js/km-ui.js |
/* KM-UI script */ jQuery( function( $ ){ window.kmUI = { dropdown: { instance: null, options: {}, $button: $(), $target: $(), defaults: { placement: 'bottom', offsetX: 0, offsetY: 0 }, init: function() { $( document ).on('click', '[data-toggle="dropdown"]', function( event ) { event.stopPropagation(); kmUI.dropdown.show( this ); }).on('click', '[data-screen]', function( event ) { kmUI.dropdown.showScreen( $( $( this ).data('screen') ) ); }).on('click', '.ls-dropdown-screen-back', function() { kmUI.dropdown.hideScreen(); }); }, show: function( button, showProperties ) { showProperties = showProperties || {}; var self = this; var $button = $( button ), target = $button.data('target'), reference = $button.data('reference'), $target = target ? $( target ) : $button.parent().find('ls-dropdown-panel'), $refenrece = reference ? $( reference ) : $button, options = $.extend( {}, self.defaults, $button.data() ), $inner = $target.find('ls-dropdown-inner'), $screen = $inner.find('ls-dropdown-screen:first'); if( ! showProperties.forceOpen ) { if( self.$button.is( $button ) ) { self.hide(); return; } } self.hide(); self.hideScreen(); self.options = options; self.$button = $button; self.$target = $target; $target.addClass('ls-dropdown-open'); $inner.height( $screen.height() ); self.instance = Popper.createPopper( $refenrece[0], $target[0], { placement: options.placement, modifiers: [ { name: 'offset', options: { offset: [ options.offsetX, options.offsetY ] } } ] }); $( document ).on('click.ls-dropdown-panel', 'body', function( event ) { if( kmUI.dropdown.options.stopPropagation ) { var $eventTarget = $( event.target ); if( $eventTarget.is( kmUI.dropdown.$target ) || $eventTarget.closest( kmUI.dropdown.$target ).length ) { if( ! $eventTarget.hasClass('ls-dismiss-panel') && ! $eventTarget.closest('.ls-dismiss-panel').length ) { return; } } } kmUI.dropdown.hide(); }); }, hide: function() { this.hideScreen(); $( document ).off('click.ls-dropdown-panel') $('.ls-dropdown-open').removeClass('ls-dropdown-open'); this.options = {}; this.$button = $(); this.$target = $(); if( this.instance ) { this.instance.destroy(); this.instance = null; } }, showScreen: function( $screen ) { var $panel = $screen.closest('ls-dropdown-panel'), $inner = $panel.find('ls-dropdown-inner'); $panel.addClass('ls-screen-open'); $screen.addClass('ls-screen-visible'); $inner.height( $screen.height() ); }, hideScreen: function( ) { $('.ls-screen-visible').each( function() { var $this = $( this ), $panel = $this.closest('ls-dropdown-panel'), $inner = $panel.find('ls-dropdown-inner'), $screen = $panel.find('ls-dropdown-screen:first'); $inner.height( $screen.height() ); $this.removeClass('ls-screen-visible'); $('ls-dropdown-panel.ls-screen-open').removeClass('ls-screen-open'); }); } }, notify: { timeout: 0, defaults: { maxWidth: 500, spinner: false, icon: 'check', iconColor: 'inherit', iconSize: null, text: '', timeout: 0 }, show: function( settings ) { settings = settings || {}; settings = $.extend( true, {}, kmUI.notify.defaults, settings ); var $notification = $('.ls-notify-osd'), $icon = $notification.children('.icon'), $text = $notification.children('.text'); if( settings.spinner ) { $icon.show().html('<div class="spinner is-active"></div>'); } else if( settings.icon ) { $icon .show() .css('color', settings.iconColor ) .html( LS_InterfaceIcons.notifications[ settings.icon ] ); } else { $icon.hide(); } $text.html( settings.text ); if( settings.iconSize ) { // ... } $notification .css('max-width', settings.maxWidth) .addClass('ls-visible'); if( settings.timeout ) { clearTimeout( kmUI.notify.timeout ); kmUI.notify.timeout = setTimeout(function() { kmUI.notify.hide(); }, settings.timeout ); } }, hide: function() { $('.ls-notify-osd').removeClass('ls-visible'); } }, popover: { defaults: { width: 100, padding: 20, durationOpen: 500, durationClose: 400, theme: 'dark', animate: 'flip', direction: 'top', timeout: 0, distance: 0 }, init : function() { $( document ).on( 'mouseenter.kmUI', '[data-help]:not([data-help-disabled],[data-km-ui-popover-disabled],[data-km-ui-disabled])', function(event) { event.stopPropagation(); var $el = $(this), delay = parseInt( $el.data('help-delay') ) || 1000; kmUI.popover.timeout = setTimeout( function(){ kmUI.popover.close(); kmUI.popover.open( $el ); }, delay ); }); $( document ).on( 'mouseleave.kmUI', '[data-help]', function() { clearTimeout(kmUI.popover.timeout); kmUI.popover.close(); }); $( document ).on( 'click.kmUI', '[data-popover]', function() { kmUI.popover.close(); kmUI.popover.open( this, true ); }); }, destroy : function() { kmUI.popover.close(); $( document ).off( 'mouseenter.kmUI', '[data-help]:not([data-help-disabled],[data-km-ui-popover-disabled],[data-km-ui-disabled])'); $( document ).off( 'mouseleave.kmUI', '[data-help]'); }, open : function( el, po ) { if( typeof LS_editorSettings != 'undefined' && ! LS_editorSettings.showTooltips ) { return; } var $el = $(el); // Waiting for hiding previous popover var delay = 0; setTimeout( function(){ // Create popover var $popover = $('<div class="km-ui-popover"><div class="km-ui-popover-inner"></div><span></span></div>').prependTo('body'), duration = parseInt( $el.data( 'help-duration') ) || kmUI.popover.defaults.durationOpen, distance = parseInt( $el.data( 'km-ui-popover-distance') ) || kmUI.popover.defaults.distance; // Get popover $popover.data( 'tooltipCaller', $el); // Custom class if( $el.data('help-class') ) { $popover.addClass( $el.data( 'help-class' ) ); } // Custom theme if( typeof $el.data( 'km-ui-popover-theme' ) != 'undefined' ){ $popover.addClass( 'km-ui-theme-' + $el.data( 'km-ui-popover-theme' ) ); } // Set popover text if( po ){ if( typeof $el.data( 'popover' ) != 'undefined' ){ $popover.addClass( 'km-ui-' + $el.data( 'popover' ) ); } if( typeof $el.data( 'popover-dir') != 'undefined' ){ $popover.addClass( 'km-ui-popover-direction-' + $el.data( 'popover-dir' ) ); } $popover.find( '.km-ui-popover-inner' ).html( $el.siblings( '.ls-popover-data, .km-ui-popover-data' ).html() ); $( document ).one( 'click.kmUI', function(){ kmUI.popover.close(); }); }else{ $popover.find('.km-ui-popover-inner').html( $el.data('help') ); } // Get viewport dimensions var v_w = $( window ).width(), // Get element dimensions e_w = $el.outerWidth(), // Get element position e_l = $el.offset().left, e_t = $el.offset().top, // Get tooltip dimensions t_w = $popover.outerWidth(), t_h = $popover.outerHeight(), // Position popover top = $popover.hasClass( 'km-ui-direction-btm' ) ? e_t + $el.outerHeight() + 10 : e_t - t_h - 10, from = $popover.hasClass( 'km-ui-direction-btm' ) ? -10 : 30; if( $el.data( 'help-transition' ) !== false ) { TweenLite.set( $popover[0],{ opacity: 0, top: top - distance, y: -from, left: e_l - (t_w - e_w) / 2, transformPerspective: 500, transformOrigin: '50% bottom', rotationX: 30 }); TweenLite.to( $popover[0], duration/1000,{ opacity: 1, rotationX: 0, y: 0, ease: Back.easeOut }); } else { $popover.css({ top: top - from, left: e_l - (t_w - e_w) / 2 }); } // Fix right position if( $popover.offset().left + t_w > v_w ){ $popover.css({ left: 'auto', right: 10 }); $popover.find( 'span' ).css({ left: 'auto', right: v_w - $el.offset().left - $el.outerWidth() / 2 - 17, marginLeft: 'auto' }); } if( $el.data( 'km-ui-popover-autoclose' ) ){ setTimeout( function(){ kmUI.popover.close(); }, parseInt( $el.data( 'km-ui-popover-autoclose' ) ) * 1000 ); } }, delay); }, close : function() { var $item = $( '.km-ui-popover' ); if( $item.length ) { var $caller = $item.data( 'tooltipCaller' ), duration = $caller.data( 'help-duration' ) || kmUI.popover.defaults.durationClose, playOnlyOnce = $caller.data( 'km-ui-popover-once') || null; if( $caller.data( 'help-transition' ) !== false ) { $('.km-ui-popover:last').animate({ opacity : 0 }, duration / 2, function(){ $(this).remove(); }); } else { $('.km-ui-popover:last').remove(); } if( playOnlyOnce ){ $caller.attr( 'data-km-ui-popover-disabled', 'true' ); } } } } }; });