File: /var/www/vabsp.kaunokolegija.lt/wp-content/plugins/wpforms/assets/js/jquery.jquery-confirm.min.js
/*!
* jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/)
* Author: Boniface Pereira
* Website: www.craftpip.com
* Contact: hey@craftpip.com
*
* Copyright 2013-2017 jquery-confirm
* Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE)
*/
if ( typeof jQuery === 'undefined' ) {
throw new Error( 'jquery-confirm requires jQuery' );
}
var jconfirm, Jconfirm;
( function( $, window ) {
$.fn.confirm = function( options, option2 ) {
if ( typeof options === 'undefined' ) {
options = {};
}
if ( typeof options === 'string' ) {
options = { content: options, title: ( option2 ) ? option2 : false };
}
$( this ).each( function() {
var $this = $( this );
if ( $this.attr( 'jc-attached' ) ) {
console.warn( 'jConfirm has already been attached to this element ', $this[ 0 ] );
return;
}
$this.on( 'click', function( e ) {
e.preventDefault();
var jcOption = $.extend( {}, options );
if ( $this.attr( 'data-title' ) ) {
jcOption.title = $this.attr( 'data-title' );
}
if ( $this.attr( 'data-content' ) ) {
jcOption.content = $this.attr( 'data-content' );
}
if ( typeof jcOption.buttons == 'undefined' ) {
jcOption.buttons = {};
}
jcOption[ '$target' ] = $this;
if ( $this.attr( 'href' ) && Object.keys( jcOption.buttons ).length == 0 ) {
var buttons = $.extend( true, {}, jconfirm.pluginDefaults.defaultButtons, ( jconfirm.defaults || {} ).defaultButtons || {} );
var firstBtn = Object.keys( buttons )[ 0 ];
jcOption.buttons = buttons;
jcOption.buttons[ firstBtn ].action = function() {
location.href = $this.attr( 'href' );
};
}
jcOption.closeIcon = false;
var instance = $.confirm( jcOption );
} );
$this.attr( 'jc-attached', true );
} );
return $( this );
};
$.confirm = function( options, option2 ) {
if ( typeof options === 'undefined' ) {
options = {};
}
if ( typeof options === 'string' ) {
options = { content: options, title: ( option2 ) ? option2 : false };
}
var putDefaultButtons = !( options.buttons == false );
if ( typeof options.buttons != 'object' ) {
options.buttons = {};
}
if ( Object.keys( options.buttons ).length == 0 && putDefaultButtons ) {
var buttons = $.extend( true, {}, jconfirm.pluginDefaults.defaultButtons, ( jconfirm.defaults || {} ).defaultButtons || {} );
options.buttons = buttons;
}
return jconfirm( options );
};
$.alert = function( options, option2 ) {
if ( typeof options === 'undefined' ) {
options = {};
}
if ( typeof options === 'string' ) {
options = { content: options, title: ( option2 ) ? option2 : false };
}
var putDefaultButtons = !( options.buttons == false );
if ( typeof options.buttons != 'object' ) {
options.buttons = {};
}
if ( Object.keys( options.buttons ).length == 0 && putDefaultButtons ) {
var buttons = $.extend( true, {}, jconfirm.pluginDefaults.defaultButtons, ( jconfirm.defaults || {} ).defaultButtons || {} );
var firstBtn = Object.keys( buttons )[ 0 ];
options.buttons[ firstBtn ] = buttons[ firstBtn ];
}
return jconfirm( options );
};
$.dialog = function( options, option2 ) {
if ( typeof options === 'undefined' ) {
options = {};
}
if ( typeof options === 'string' ) {
options = {
content: options, title: ( option2 ) ? option2 : false, closeIcon: function() {
},
};
}
options.buttons = {};
if ( typeof options.closeIcon == 'undefined' ) {
options.closeIcon = function() {
};
}
options.confirmKeys = [ 13 ];
return jconfirm( options );
};
jconfirm = function( options ) {
if ( typeof options === 'undefined' ) {
options = {};
}
var pluginOptions = $.extend( true, {}, jconfirm.pluginDefaults );
if ( jconfirm.defaults ) {
pluginOptions = $.extend( true, pluginOptions, jconfirm.defaults );
}
pluginOptions = $.extend( true, {}, pluginOptions, options );
var instance = new Jconfirm( pluginOptions );
jconfirm.instances.push( instance );
return instance;
};
Jconfirm = function( options ) {
$.extend( this, options );
this._init();
};
Jconfirm.prototype = {
_init: function() {
var that = this;
if ( !jconfirm.instances.length ) {
jconfirm.lastFocused = $( 'body' ).find( ':focus' );
}
this._id = Math.round( Math.random() * 99999 );
this.contentParsed = $( document.createElement( 'div' ) );
if ( !this.lazyOpen ) {
setTimeout( function() {
that.open();
}, 0 );
}
}, _buildHTML: function() {
var that = this;
this._parseAnimation( this.animation, 'o' );
this._parseAnimation( this.closeAnimation, 'c' );
this._parseBgDismissAnimation( this.backgroundDismissAnimation );
this._parseColumnClass( this.columnClass );
this._parseTheme( this.theme );
this._parseType( this.type );
var template = $( this.template );
template.find( '.jconfirm-box' ).addClass( this.animationParsed ).addClass( this.backgroundDismissAnimationParsed ).addClass( this.typeParsed );
if ( this.typeAnimated ) {
template.find( '.jconfirm-box' ).addClass( 'jconfirm-type-animated' );
}
if ( this.useBootstrap ) {
template.find( '.jc-bs3-row' ).addClass( this.bootstrapClasses.row );
template.find( '.jc-bs3-row' )
.addClass( 'justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center' );
template.find( '.jconfirm-box-container' ).addClass( this.columnClassParsed );
if ( this.containerFluid ) {
template.find( '.jc-bs3-container' ).addClass( this.bootstrapClasses.containerFluid );
}
else {
template.find( '.jc-bs3-container' ).addClass( this.bootstrapClasses.container );
}
}
else {
template.find( '.jconfirm-box' ).css( 'width', this.boxWidth );
}
if ( this.titleClass ) {
template.find( '.jconfirm-title-c' ).addClass( this.titleClass );
}
template.addClass( this.themeParsed );
var ariaLabel = 'jconfirm-box' + this._id;
template.find( '.jconfirm-box' ).attr( 'aria-labelledby', ariaLabel ).attr( 'tabindex', - 1 );
template.find( '.jconfirm-content' ).attr( 'id', ariaLabel );
if ( this.bgOpacity !== null ) {
template.find( '.jconfirm-bg' ).css( 'opacity', this.bgOpacity );
}
if ( this.rtl ) {
template.addClass( 'jconfirm-rtl' );
}
this.$el = template.appendTo( this.container );
this.$jconfirmBoxContainer = this.$el.find( '.jconfirm-box-container' );
this.$jconfirmBox = this.$body = this.$el.find( '.jconfirm-box' );
this.$jconfirmBg = this.$el.find( '.jconfirm-bg' );
this.$title = this.$el.find( '.jconfirm-title' );
this.$titleContainer = this.$el.find( '.jconfirm-title-c' );
this.$content = this.$el.find( 'div.jconfirm-content' );
this.$contentPane = this.$el.find( '.jconfirm-content-pane' );
this.$icon = this.$el.find( '.jconfirm-icon-c' );
this.$closeIcon = this.$el.find( '.jconfirm-closeIcon' );
this.$holder = this.$el.find( '.jconfirm-holder' );
this.$btnc = this.$el.find( '.jconfirm-buttons' );
this.$scrollPane = this.$el.find( '.jconfirm-scrollpane' );
that.setStartingPoint();
this._contentReady = $.Deferred();
this._modalReady = $.Deferred();
this.$holder.css( { 'padding-top': this.offsetTop, 'padding-bottom': this.offsetBottom } );
this.setTitle();
this.setIcon();
this._setButtons();
this._parseContent();
this.initDraggable();
if ( this.isAjax ) {
this.showLoading( false );
}
$.when( this._contentReady, this._modalReady ).then( function() {
if ( that.isAjaxLoading ) {
setTimeout( function() {
that.isAjaxLoading = false;
that.setContent();
that.setTitle();
that.setIcon();
setTimeout( function() {
that.hideLoading( false );
that._updateContentMaxHeight();
}, 100 );
if ( typeof that.onContentReady === 'function' ) {
that.onContentReady();
}
}, 50 );
}
else {
that._updateContentMaxHeight();
that.setTitle();
that.setIcon();
if ( typeof that.onContentReady === 'function' ) {
that.onContentReady();
}
}
if ( that.autoClose ) {
that._startCountDown();
}
} );
this._watchContent();
if ( this.animation === 'none' ) {
this.animationSpeed = 1;
this.animationBounce = 1;
}
this.$body.css( this._getCSS( this.animationSpeed, this.animationBounce ) );
this.$contentPane.css( this._getCSS( this.animationSpeed, 1 ) );
this.$jconfirmBg.css( this._getCSS( this.animationSpeed, 1 ) );
this.$jconfirmBoxContainer.css( this._getCSS( this.animationSpeed, 1 ) );
}, _typePrefix: 'jconfirm-type-', typeParsed: '', _parseType: function( type ) {
this.typeParsed = this._typePrefix + type;
}, setType: function( type ) {
var oldClass = this.typeParsed;
this._parseType( type );
this.$jconfirmBox.removeClass( oldClass ).addClass( this.typeParsed );
}, themeParsed: '', _themePrefix: 'jconfirm-', setTheme: function( theme ) {
var previous = this.theme;
this.theme = theme || this.theme;
this._parseTheme( this.theme );
if ( previous ) {
this.$el.removeClass( previous );
}
this.$el.addClass( this.themeParsed );
this.theme = theme;
}, _parseTheme: function( theme ) {
var that = this;
theme = theme.split( ',' );
$.each( theme, function( k, a ) {
if ( a.indexOf( that._themePrefix ) === - 1 ) {
theme[ k ] = that._themePrefix + $.trim( a );
}
} );
this.themeParsed = theme.join( ' ' ).toLowerCase();
}, backgroundDismissAnimationParsed: '', _bgDismissPrefix: 'jconfirm-hilight-', _parseBgDismissAnimation: function( bgDismissAnimation ) {
var animation = bgDismissAnimation.split( ',' );
var that = this;
$.each( animation, function( k, a ) {
if ( a.indexOf( that._bgDismissPrefix ) === - 1 ) {
animation[ k ] = that._bgDismissPrefix + $.trim( a );
}
} );
this.backgroundDismissAnimationParsed = animation.join( ' ' ).toLowerCase();
}, animationParsed: '', closeAnimationParsed: '', _animationPrefix: 'jconfirm-animation-', setAnimation: function( animation ) {
this.animation = animation || this.animation;
this._parseAnimation( this.animation, 'o' );
}, _parseAnimation: function( animation, which ) {
which = which || 'o';
var animations = animation.split( ',' );
var that = this;
$.each( animations, function( k, a ) {
if ( a.indexOf( that._animationPrefix ) === - 1 ) {
animations[ k ] = that._animationPrefix + $.trim( a );
}
} );
var a_string = animations.join( ' ' ).toLowerCase();
if ( which === 'o' ) {
this.animationParsed = a_string;
}
else {
this.closeAnimationParsed = a_string;
}
return a_string;
}, setCloseAnimation: function( closeAnimation ) {
this.closeAnimation = closeAnimation || this.closeAnimation;
this._parseAnimation( this.closeAnimation, 'c' );
}, setAnimationSpeed: function( speed ) {
this.animationSpeed = speed || this.animationSpeed;
}, columnClassParsed: '', setColumnClass: function( colClass ) {
if ( !this.useBootstrap ) {
console.warn( 'cannot set columnClass, useBootstrap is set to false' );
return;
}
this.columnClass = colClass || this.columnClass;
this._parseColumnClass( this.columnClass );
this.$jconfirmBoxContainer.addClass( this.columnClassParsed );
}, _updateContentMaxHeight: function() {
var height = $( window ).height() - ( this.$jconfirmBox.outerHeight() - this.$contentPane.outerHeight() ) - ( this.offsetTop + this.offsetBottom );
this.$contentPane.css( { 'max-height': height + 'px' } );
}, setBoxWidth: function( width ) {
if ( this.useBootstrap ) {
console.warn( 'cannot set boxWidth, useBootstrap is set to true' );
return;
}
this.boxWidth = width;
this.$jconfirmBox.css( 'width', width );
}, _parseColumnClass: function( colClass ) {
colClass = colClass.toLowerCase();
var p;
switch ( colClass ) {
case'xl':
case'xlarge':
p = 'col-md-12';
break;
case'l':
case'large':
p = 'col-md-8 col-md-offset-2';
break;
case'm':
case'medium':
p = 'col-md-6 col-md-offset-3';
break;
case's':
case'small':
p = 'col-md-4 col-md-offset-4';
break;
case'xs':
case'xsmall':
p = 'col-md-2 col-md-offset-5';
break;
default:
p = colClass;
}
this.columnClassParsed = p;
}, initDraggable: function() {
var that = this;
var $t = this.$titleContainer;
this.resetDrag();
if ( this.draggable ) {
$t.on( 'mousedown', function( e ) {
$t.addClass( 'jconfirm-hand' );
that.mouseX = e.clientX;
that.mouseY = e.clientY;
that.isDrag = true;
} );
$( window ).on( 'mousemove.' + this._id, function( e ) {
if ( that.isDrag ) {
that.movingX = e.clientX - that.mouseX + that.initialX;
that.movingY = e.clientY - that.mouseY + that.initialY;
that.setDrag();
}
} );
$( window ).on( 'mouseup.' + this._id, function() {
$t.removeClass( 'jconfirm-hand' );
if ( that.isDrag ) {
that.isDrag = false;
that.initialX = that.movingX;
that.initialY = that.movingY;
}
} );
}
}, resetDrag: function() {
this.isDrag = false;
this.initialX = 0;
this.initialY = 0;
this.movingX = 0;
this.movingY = 0;
this.mouseX = 0;
this.mouseY = 0;
this.$jconfirmBoxContainer.css( 'transform', 'translate(' + 0 + 'px, ' + 0 + 'px)' );
}, setDrag: function() {
if ( !this.draggable ) {
return;
}
this.alignMiddle = false;
var boxWidth = this.$jconfirmBox.outerWidth();
var boxHeight = this.$jconfirmBox.outerHeight();
var windowWidth = $( window ).width();
var windowHeight = $( window ).height();
var that = this;
var dragUpdate = 1;
if ( that.movingX % dragUpdate === 0 || that.movingY % dragUpdate === 0 ) {
if ( that.dragWindowBorder ) {
var leftDistance = ( windowWidth / 2 ) - boxWidth / 2;
var topDistance = ( windowHeight / 2 ) - boxHeight / 2;
topDistance -= that.dragWindowGap;
leftDistance -= that.dragWindowGap;
if ( leftDistance + that.movingX < 0 ) {
that.movingX = - leftDistance;
}
else {
if ( leftDistance - that.movingX < 0 ) {
that.movingX = leftDistance;
}
}
if ( topDistance + that.movingY < 0 ) {
that.movingY = - topDistance;
}
else {
if ( topDistance - that.movingY < 0 ) {
that.movingY = topDistance;
}
}
}
that.$jconfirmBoxContainer.css( 'transform', 'translate(' + that.movingX + 'px, ' + that.movingY + 'px)' );
}
}, _scrollTop: function() {
if ( typeof pageYOffset !== 'undefined' ) {
return pageYOffset;
}
else {
var B = document.body;
var D = document.documentElement;
D = ( D.clientHeight ) ? D : B;
return D.scrollTop;
}
}, _watchContent: function() {
var that = this;
if ( this._timer ) {
clearInterval( this._timer );
}
var prevContentHeight = 0;
this._timer = setInterval( function() {
if ( that.smoothContent ) {
var contentHeight = that.$content.outerHeight() || 0;
if ( contentHeight !== prevContentHeight ) {
that.$contentPane.css( { height: contentHeight } ).scrollTop( 0 );
prevContentHeight = contentHeight;
}
var wh = $( window ).height();
var total = that.offsetTop + that.offsetBottom + that.$jconfirmBox.height() - that.$contentPane.height() + that.$content.height();
if ( total < wh ) {
that.$contentPane.addClass( 'no-scroll' );
}
else {
that.$contentPane.removeClass( 'no-scroll' );
}
}
}, this.watchInterval );
}, _overflowClass: 'jconfirm-overflow', _hilightAnimating: false, highlight: function() {
this.hiLightModal();
}, hiLightModal: function() {
var that = this;
if ( this._hilightAnimating ) {
return;
}
that.$body.addClass( 'hilight' );
var duration = parseFloat( that.$body.css( 'animation-duration' ) ) || 2;
this._hilightAnimating = true;
setTimeout( function() {
that._hilightAnimating = false;
that.$body.removeClass( 'hilight' );
}, duration * 1000 );
}, _bindEvents: function() {
var that = this;
this.boxClicked = false;
this.$scrollPane.click( function( e ) {
if ( !that.boxClicked ) {
var buttonName = false;
var shouldClose = false;
var str;
if ( typeof that.backgroundDismiss == 'function' ) {
str = that.backgroundDismiss();
}
else {
str = that.backgroundDismiss;
}
if ( typeof str == 'string' && typeof that.buttons[ str ] != 'undefined' ) {
buttonName = str;
shouldClose = false;
}
else {
if ( typeof str == 'undefined' || !!( str ) == true ) {
shouldClose = true;
}
else {
shouldClose = false;
}
}
if ( buttonName ) {
var btnResponse = that.buttons[ buttonName ].action.apply( that );
shouldClose = ( typeof btnResponse == 'undefined' ) || !!( btnResponse );
}
if ( shouldClose ) {
that.close();
}
else {
that.hiLightModal();
}
}
that.boxClicked = false;
} );
this.$jconfirmBox.click( function( e ) {
that.boxClicked = true;
} );
var isKeyDown = false;
$( window ).on( 'jcKeyDown.' + that._id, function( e ) {
if ( !isKeyDown ) {
isKeyDown = true;
}
} );
$( window ).on( 'keyup.' + that._id, function( e ) {
if ( isKeyDown ) {
that.reactOnKey( e );
isKeyDown = false;
}
} );
$( window ).on( 'resize.' + this._id, function() {
that._updateContentMaxHeight();
setTimeout( function() {
that.resetDrag();
}, 100 );
} );
}, _cubic_bezier: '0.36, 0.55, 0.19', _getCSS: function( speed, bounce ) {
return {
'-webkit-transition-duration': speed / 1000 + 's',
'transition-duration': speed / 1000 + 's',
'-webkit-transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')',
'transition-timing-function': 'cubic-bezier(' + this._cubic_bezier + ', ' + bounce + ')',
};
}, _setButtons: function() {
var that = this;
var total_buttons = 0;
if ( typeof this.buttons !== 'object' ) {
this.buttons = {};
}
$.each( this.buttons, function( key, button ) {
total_buttons += 1;
if ( typeof button === 'function' ) {
that.buttons[ key ] = button = { action: button };
}
that.buttons[ key ].text = button.text || key;
that.buttons[ key ].btnClass = button.btnClass || 'btn-default';
that.buttons[ key ].action = button.action || function() {
};
that.buttons[ key ].keys = button.keys || [];
that.buttons[ key ].isHidden = button.isHidden || false;
that.buttons[ key ].isDisabled = button.isDisabled || false;
$.each( that.buttons[ key ].keys, function( i, a ) {
that.buttons[ key ].keys[ i ] = a.toLowerCase();
} );
var button_element = $( '<button type="button" class="btn"></button>' ).html( that.buttons[ key ].text )
.addClass( that.buttons[ key ].btnClass )
.prop( 'disabled', that.buttons[ key ].isDisabled )
.css( 'display', that.buttons[ key ].isHidden ? 'none' : '' )
.click( function( e ) {
e.preventDefault();
var res = that.buttons[ key ].action.apply( that, [ that.buttons[ key ] ] );
that.onAction.apply( that, [ key,
that.buttons[ key ] ] );
that._stopCountDown();
if ( typeof res === 'undefined' || res ) {
that.close();
}
} );
that.buttons[ key ].el = button_element;
that.buttons[ key ].setText = function( text ) {
button_element.html( text );
};
that.buttons[ key ].addClass = function( className ) {
button_element.addClass( className );
};
that.buttons[ key ].removeClass = function( className ) {
button_element.removeClass( className );
};
that.buttons[ key ].disable = function() {
that.buttons[ key ].isDisabled = true;
button_element.prop( 'disabled', true );
};
that.buttons[ key ].enable = function() {
that.buttons[ key ].isDisabled = false;
button_element.prop( 'disabled', false );
};
that.buttons[ key ].show = function() {
that.buttons[ key ].isHidden = false;
button_element.css( 'display', '' );
};
that.buttons[ key ].hide = function() {
that.buttons[ key ].isHidden = true;
button_element.css( 'display', 'none' );
};
that[ '$_' + key ] = that[ '$$' + key ] = button_element;
that.$btnc.append( button_element );
} );
if ( total_buttons === 0 ) {
this.$btnc.hide();
}
if ( this.closeIcon === null && total_buttons === 0 ) {
this.closeIcon = true;
}
if ( this.closeIcon ) {
if ( this.closeIconClass ) {
var closeHtml = '<i class="' + this.closeIconClass + '"></i>';
this.$closeIcon.html( closeHtml );
}
this.$closeIcon.click( function( e ) {
e.preventDefault();
var buttonName = false;
var shouldClose = false;
var str;
if ( typeof that.closeIcon == 'function' ) {
str = that.closeIcon();
}
else {
str = that.closeIcon;
}
if ( typeof str == 'string' && typeof that.buttons[ str ] != 'undefined' ) {
buttonName = str;
shouldClose = false;
}
else {
if ( typeof str == 'undefined' || !!( str ) == true ) {
shouldClose = true;
}
else {
shouldClose = false;
}
}
if ( buttonName ) {
var btnResponse = that.buttons[ buttonName ].action.apply( that );
shouldClose = ( typeof btnResponse == 'undefined' ) || !!( btnResponse );
}
if ( shouldClose ) {
that.close();
}
} );
this.$closeIcon.show();
}
else {
this.$closeIcon.hide();
}
}, setTitle: function( string, force ) {
force = force || false;
if ( typeof string !== 'undefined' ) {
if ( typeof string == 'string' ) {
this.title = string;
}
else {
if ( typeof string == 'function' ) {
if ( typeof string.promise == 'function' ) {
console.error( 'Promise was returned from title function, this is not supported.' );
}
var response = string();
if ( typeof response == 'string' ) {
this.title = response;
}
else {
this.title = false;
}
}
else {
this.title = false;
}
}
}
if ( this.isAjaxLoading && !force ) {
return;
}
this.$title.html( this.title || '' );
this.updateTitleContainer();
}, setIcon: function( iconClass, force ) {
force = force || false;
if ( typeof iconClass !== 'undefined' ) {
if ( typeof iconClass == 'string' ) {
this.icon = iconClass;
}
else {
if ( typeof iconClass === 'function' ) {
var response = iconClass();
if ( typeof response == 'string' ) {
this.icon = response;
}
else {
this.icon = false;
}
}
else {
this.icon = false;
}
}
}
if ( this.isAjaxLoading && !force ) {
return;
}
this.$icon.html( this.icon ? '<i class="' + this.icon + '"></i>' : '' );
this.updateTitleContainer();
}, updateTitleContainer: function() {
if ( !this.title && !this.icon ) {
this.$titleContainer.hide();
}
else {
this.$titleContainer.show();
}
}, setContentPrepend: function( content, force ) {
if ( !content ) {
return;
}
this.contentParsed.prepend( content );
}, setContentAppend: function( content ) {
if ( !content ) {
return;
}
this.contentParsed.append( content );
}, setContent: function( content, force ) {
force = !!force;
var that = this;
if ( content ) {
this.contentParsed.html( '' ).append( content );
}
if ( this.isAjaxLoading && !force ) {
return;
}
this.$content.html( '' );
this.$content.append( this.contentParsed );
setTimeout( function() {
that.$body.find( 'input[autofocus]:visible:first' ).focus();
}, 100 );
}, loadingSpinner: false, showLoading: function( disableButtons ) {
this.loadingSpinner = true;
this.$jconfirmBox.addClass( 'loading' );
if ( disableButtons ) {
this.$btnc.find( 'button' ).prop( 'disabled', true );
}
}, hideLoading: function( enableButtons ) {
this.loadingSpinner = false;
this.$jconfirmBox.removeClass( 'loading' );
if ( enableButtons ) {
this.$btnc.find( 'button' ).prop( 'disabled', false );
}
}, ajaxResponse: false, contentParsed: '', isAjax: false, isAjaxLoading: false, _parseContent: function() {
var that = this;
var e = ' ';
if ( typeof this.content == 'function' ) {
var res = this.content.apply( this );
if ( typeof res == 'string' ) {
this.content = res;
}
else {
if ( typeof res == 'object' && typeof res.always == 'function' ) {
this.isAjax = true;
this.isAjaxLoading = true;
res.always( function( data, status, xhr ) {
that.ajaxResponse = { data: data, status: status, xhr: xhr };
that._contentReady.resolve( data, status, xhr );
if ( typeof that.contentLoaded == 'function' ) {
that.contentLoaded( data, status, xhr );
}
} );
this.content = e;
}
else {
this.content = e;
}
}
}
if ( typeof this.content == 'string' && this.content.substr( 0, 4 ).toLowerCase() === 'url:' ) {
this.isAjax = true;
this.isAjaxLoading = true;
var u = this.content.substring( 4, this.content.length );
$.get( u ).done( function( html ) {
that.contentParsed.html( html );
} ).always( function( data, status, xhr ) {
that.ajaxResponse = { data: data, status: status, xhr: xhr };
that._contentReady.resolve( data, status, xhr );
if ( typeof that.contentLoaded == 'function' ) {
that.contentLoaded( data, status, xhr );
}
} );
}
if ( !this.content ) {
this.content = e;
}
if ( !this.isAjax ) {
this.contentParsed.html( this.content );
this.setContent();
that._contentReady.resolve();
}
}, _stopCountDown: function() {
clearInterval( this.autoCloseInterval );
if ( this.$cd ) {
this.$cd.remove();
}
}, _startCountDown: function() {
var that = this;
var opt = this.autoClose.split( '|' );
if ( opt.length !== 2 ) {
console.error( 'Invalid option for autoClose. example \'close|10000\'' );
return false;
}
var button_key = opt[ 0 ];
var time = parseInt( opt[ 1 ] );
if ( typeof this.buttons[ button_key ] === 'undefined' ) {
console.error( 'Invalid button key \'' + button_key + '\' for autoClose' );
return false;
}
var seconds = Math.ceil( time / 1000 );
this.$cd = $( '<span class="countdown"> (' + seconds + ')</span>' ).appendTo( this[ '$_' + button_key ] );
this.autoCloseInterval = setInterval( function() {
that.$cd.html( ' (' + ( seconds -= 1 ) + ') ' );
if ( seconds <= 0 ) {
that[ '$$' + button_key ].trigger( 'click' );
that._stopCountDown();
}
}, 1000 );
}, _getKey: function( key ) {
switch ( key ) {
case 192:
return 'tilde';
case 13:
return 'enter';
case 16:
return 'shift';
case 9:
return 'tab';
case 20:
return 'capslock';
case 17:
return 'ctrl';
case 91:
return 'win';
case 18:
return 'alt';
case 27:
return 'esc';
case 32:
return 'space';
}
var initial = String.fromCharCode( key );
if ( /^[A-z0-9]+$/.test( initial ) ) {
return initial.toLowerCase();
}
else {
return false;
}
}, reactOnKey: function( e ) {
var that = this;
var a = $( '.jconfirm' );
if ( a.eq( a.length - 1 )[ 0 ] !== this.$el[ 0 ] ) {
return false;
}
var key = e.which;
if ( this.$content.find( ':input' ).is( ':focus' ) && /13|32/.test( key ) ) {
return false;
}
var keyChar = this._getKey( key );
if ( keyChar === 'esc' && this.escapeKey ) {
if ( this.escapeKey === true ) {
this.$scrollPane.trigger( 'click' );
}
else {
if ( typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function' ) {
var buttonKey;
if ( typeof this.escapeKey === 'function' ) {
buttonKey = this.escapeKey();
}
else {
buttonKey = this.escapeKey;
}
if ( buttonKey ) {
if ( typeof this.buttons[ buttonKey ] === 'undefined' ) {
console.warn( 'Invalid escapeKey, no buttons found with key ' + buttonKey );
}
else {
this[ '$_' + buttonKey ].trigger( 'click' );
}
}
}
}
}
$.each( this.buttons, function( key, button ) {
if ( button.keys.indexOf( keyChar ) != - 1 ) {
that[ '$_' + key ].trigger( 'click' );
}
} );
}, setDialogCenter: function() {
console.info( 'setDialogCenter is deprecated, dialogs are centered with CSS3 tables' );
}, _unwatchContent: function() {
clearInterval( this._timer );
}, close: function( onClosePayload ) {
var that = this;
if ( typeof this.onClose === 'function' ) {
this.onClose( onClosePayload );
}
this._unwatchContent();
$( window ).unbind( 'resize.' + this._id );
$( window ).unbind( 'keyup.' + this._id );
$( window ).unbind( 'jcKeyDown.' + this._id );
if ( this.draggable ) {
$( window ).unbind( 'mousemove.' + this._id );
$( window ).unbind( 'mouseup.' + this._id );
this.$titleContainer.unbind( 'mousedown' );
}
that.$el.removeClass( that.loadedClass );
$( 'body' ).removeClass( 'jconfirm-no-scroll-' + that._id );
that.$jconfirmBoxContainer.removeClass( 'jconfirm-no-transition' );
setTimeout( function() {
that.$body.addClass( that.closeAnimationParsed );
that.$jconfirmBg.addClass( 'jconfirm-bg-h' );
var closeTimer = ( that.closeAnimation === 'none' ) ? 1 : that.animationSpeed;
setTimeout( function() {
that.$el.remove();
var l = jconfirm.instances;
var i = jconfirm.instances.length - 1;
for ( i; i >= 0; i -- ) {
if ( jconfirm.instances[ i ]._id === that._id ) {
jconfirm.instances.splice( i, 1 );
}
}
if ( !jconfirm.instances.length ) {
if ( that.scrollToPreviousElement && jconfirm.lastFocused && jconfirm.lastFocused.length && $.contains( document, jconfirm.lastFocused[ 0 ] ) ) {
var $lf = jconfirm.lastFocused;
if ( that.scrollToPreviousElementAnimate ) {
var st = $( window ).scrollTop();
var ot = jconfirm.lastFocused.offset().top;
var wh = $( window ).height();
if ( !( ot > st && ot < ( st + wh ) ) ) {
var scrollTo = ( ot - Math.round( ( wh / 3 ) ) );
$( 'html, body' ).animate( { scrollTop: scrollTo }, that.animationSpeed, 'swing', function() {
$lf.focus();
} );
}
else {
$lf.focus();
}
}
else {
$lf.focus();
}
jconfirm.lastFocused = false;
}
}
if ( typeof that.onDestroy === 'function' ) {
that.onDestroy();
}
}, closeTimer * 0.4 );
}, 50 );
return true;
}, open: function() {
if ( this.isOpen() ) {
return false;
}
this._buildHTML();
this._bindEvents();
this._open();
return true;
}, setStartingPoint: function() {
var el = false;
if ( this.animateFromElement !== true && this.animateFromElement ) {
el = this.animateFromElement;
jconfirm.lastClicked = false;
}
else {
if ( jconfirm.lastClicked && this.animateFromElement === true ) {
el = jconfirm.lastClicked;
jconfirm.lastClicked = false;
}
else {
return false;
}
}
if ( !el ) {
return false;
}
var offset = el.offset();
var iTop = el.outerHeight() / 2;
var iLeft = el.outerWidth() / 2;
iTop -= this.$jconfirmBox.outerHeight() / 2;
iLeft -= this.$jconfirmBox.outerWidth() / 2;
var sourceTop = offset.top + iTop;
sourceTop = sourceTop - this._scrollTop();
var sourceLeft = offset.left + iLeft;
var wh = $( window ).height() / 2;
var ww = $( window ).width() / 2;
var targetH = wh - this.$jconfirmBox.outerHeight() / 2;
var targetW = ww - this.$jconfirmBox.outerWidth() / 2;
sourceTop -= targetH;
sourceLeft -= targetW;
if ( Math.abs( sourceTop ) > wh || Math.abs( sourceLeft ) > ww ) {
return false;
}
this.$jconfirmBoxContainer.css( 'transform', 'translate(' + sourceLeft + 'px, ' + sourceTop + 'px)' );
}, _open: function() {
var that = this;
if ( typeof that.onOpenBefore === 'function' ) {
that.onOpenBefore();
}
this.$body.removeClass( this.animationParsed );
this.$jconfirmBg.removeClass( 'jconfirm-bg-h' );
this.$body.focus();
that.$jconfirmBoxContainer.css( 'transform', 'translate(' + 0 + 'px, ' + 0 + 'px)' );
setTimeout( function() {
that.$body.css( that._getCSS( that.animationSpeed, 1 ) );
that.$body.css( { 'transition-property': that.$body.css( 'transition-property' ) + ', margin' } );
that.$jconfirmBoxContainer.addClass( 'jconfirm-no-transition' );
that._modalReady.resolve();
if ( typeof that.onOpen === 'function' ) {
that.onOpen();
}
that.$el.addClass( that.loadedClass );
}, this.animationSpeed );
}, loadedClass: 'jconfirm-open', isClosed: function() {
return !this.$el || this.$el.css( 'display' ) === '';
}, isOpen: function() {
return !this.isClosed();
}, toggle: function() {
if ( !this.isOpen() ) {
this.open();
}
else {
this.close();
}
},
};
jconfirm.instances = [];
jconfirm.lastFocused = false;
jconfirm.pluginDefaults = {
template: '<div class="jconfirm"><div class="jconfirm-bg jconfirm-bg-h"></div><div class="jconfirm-scrollpane"><div class="jconfirm-row"><div class="jconfirm-cell"><div class="jconfirm-holder"><div class="jc-bs3-container"><div class="jc-bs3-row"><div class="jconfirm-box-container jconfirm-animated"><div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1"><div class="jconfirm-closeIcon">×</div><div class="jconfirm-title-c"><span class="jconfirm-icon-c"></span><span class="jconfirm-title"></span></div><div class="jconfirm-content-pane"><div class="jconfirm-content"></div></div><div class="jconfirm-buttons"></div><div class="jconfirm-clear"></div></div></div></div></div></div></div></div></div></div>',
title: 'Hello',
titleClass: '',
type: 'default',
typeAnimated: true,
draggable: true,
dragWindowGap: 15,
dragWindowBorder: true,
animateFromElement: true,
alignMiddle: true,
smoothContent: true,
content: 'Are you sure to continue?',
buttons: {},
defaultButtons: {
ok: {
action: function() {
},
}, close: {
action: function() {
},
},
},
contentLoaded: function() {
},
icon: '',
lazyOpen: false,
bgOpacity: null,
theme: 'light',
animation: 'scale',
closeAnimation: 'scale',
animationSpeed: 400,
animationBounce: 1,
escapeKey: true,
rtl: false,
container: 'body',
containerFluid: false,
backgroundDismiss: false,
backgroundDismissAnimation: 'shake',
autoClose: false,
closeIcon: null,
closeIconClass: false,
watchInterval: 100,
columnClass: 'col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1',
boxWidth: '50%',
scrollToPreviousElement: true,
scrollToPreviousElementAnimate: true,
useBootstrap: true,
offsetTop: 40,
offsetBottom: 40,
bootstrapClasses: { container: 'container', containerFluid: 'container-fluid', row: 'row' },
onContentReady: function() {
},
onOpenBefore: function() {
},
onOpen: function() {
},
onClose: function() {
},
onDestroy: function() {
},
onAction: function() {
},
};
var keyDown = false;
$( window ).on( 'keydown', function( e ) {
if ( !keyDown ) {
var $target = $( e.target );
var pass = false;
if ( $target.closest( '.jconfirm-box' ).length ) {
pass = true;
}
if ( pass ) {
$( window ).trigger( 'jcKeyDown' );
}
keyDown = true;
}
} );
$( window ).on( 'keyup', function() {
keyDown = false;
} );
jconfirm.lastClicked = false;
$( document ).on( 'mousedown', 'button, a', function() {
jconfirm.lastClicked = $( this );
} );
} )( jQuery, window );