/* 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('
'); } 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 = $('