Files
roi-theme/wp-content/plugins/ajax-search-pro/backend/settings/assets/wpd-modal/wpd-modal.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

216 lines
8.9 KiB
JavaScript
Executable File

(function ($) {
var defaultOptions = {
'type' : 'warning', // warning, info
'header' : '',
'headerIcons': true,
'content': 'This is a modal!',
'wrapContent': true,
'leaveContent': false,
'buttons': {
'okay': {
'text': 'Okay!',
'type': 'okay',
'click': function(e, button){}
},
'cancel': {
'text': 'Cancel',
'type': 'cancel',
'click': function(e, button){}
}
},
'layout': {
'max-width': '480px'
}
};
var icons = {
'warning': [
'M213.333 0C95.573 0 0 95.573 0 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333S331.093 0 213.333 0zm21.334 320H192v-42.667h42.667V320zm0-85.333H192v-128h42.667v128z',
'0 0 426.667 426.667'
],
'info': [
'M11.812 0C5.29 0 0 5.29 0 11.812s5.29 11.813 11.812 11.813 11.813-5.29 11.813-11.813S18.335 0 11.812 0zm2.46 18.307c-.61.24-1.093.422-1.456.548-.362.126-.783.19-1.262.19-.736 0-1.31-.18-1.717-.54s-.61-.814-.61-1.367c0-.215.014-.435.044-.66.032-.223.08-.475.148-.758l.76-2.688c.068-.258.126-.503.172-.73.046-.23.068-.442.068-.634 0-.342-.07-.582-.212-.717-.143-.134-.412-.2-.813-.2-.196 0-.398.03-.605.09-.205.063-.383.12-.53.176l.202-.828c.498-.203.975-.377 1.43-.52.455-.147.885-.22 1.29-.22.73 0 1.295.18 1.692.53.395.354.594.813.594 1.377 0 .117-.014.323-.04.617-.028.295-.08.564-.153.81l-.757 2.68c-.062.216-.117.462-.167.737-.05.274-.074.484-.074.625 0 .356.08.6.24.728.157.13.434.194.826.194.185 0 .392-.033.626-.097.232-.064.4-.12.506-.17l-.203.827zM14.136 7.43c-.353.327-.778.49-1.275.49-.496 0-.924-.163-1.28-.49-.354-.33-.533-.728-.533-1.194 0-.465.18-.865.532-1.196.356-.332.784-.497 1.28-.497.497 0 .923.165 1.275.497.353.33.53.73.53 1.196 0 .467-.177.865-.53 1.193z',
'0 0 23.625 23.625'
]
};
var $this;
var methods = {
init: function (options, elem) {
$this = this;
$this.firstInit = true;
$this.o = $.extend({}, defaultOptions, options);
$this.n = {};
$this.initSequence();
return this;
},
initSequence: function() {
$this.initElements();
$this.initEvents();
$this.firstInit = false;
},
initElements: function() {
if ( $('#wpd_modal').length < 1 ) {
$('body').append('<div id="wpd_modal" class="wdo wpd-modal-type-'+$this.o.type+'"><div id="wpd_modal_head"></div><div id="wpd_modal_inner"></div><div id="wpd_modal_buttons"></div></div>');
} else {
$('#wpd_modal').removeClass();
$('#wpd_modal').addClass('wpd-modal-type-'+$this.o.type);
}
if ( $('#wpd_modal_bg').length < 1 ) {
$('body').append('<div id="wpd_modal_bg"></div>');
}
var buttons = '';
if ( typeof($this.o.buttons) != 'undefined' ) {
$.each($this.o.buttons, function(k, b){
var btn = $.extend({}, defaultOptions.buttons.okay, b);
buttons += '<div id="wpd_modal_btn_'+k+'" class="wpd-btn wpd-btn-'+b.type+'">'+b.text+'</div>';
});
}
// Replace the contents, so previous handlers detach as well
var headerContent = '<h3>' + $this.o.header + '</h3>';
if ( $this.o.headerIcons ) {
var $svgIcon = $('<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512"><path fill="#FFF"></path></svg>');
if ( typeof(icons[$this.o.type]) != 'undefined' ) {
$svgIcon.children('path').attr('d', icons[$this.o.type][0]);
$svgIcon.attr('viewBox', icons[$this.o.type][1]);
} else {
$svgIcon.children('path').attr('d', icons['info'][0]);
$svgIcon.attr('viewBox', icons['info'][1]);
}
headerContent = $svgIcon.get(0).outerHTML + headerContent;
}
if ( $this.o.header != '' ) {
$('#wpd_modal_head').html(headerContent);
$('#wpd_modal_head').css('display', '');
} else {
$('#wpd_modal_head').css('display', 'none');
}
if ( !$this.o.leaveContent ) {
if (
typeof $this.o.content != 'string' &&
typeof $this.o.content.appendTo == 'function'
) {
$('#wpd_modal_inner').html('');
$this.o.content.appendTo('#wpd_modal_inner');
} else {
if ($this.o.wrapContent)
$('#wpd_modal_inner').html('<p>' + $this.o.content + '</p>');
else
$('#wpd_modal_inner').html($this.o.content);
}
}
$('#wpd_modal_buttons').html(buttons);
},
initEvents: function() {
// Events for first single init go here
if ( $this.firstInit ) {
/*$('#wpd_modal_bg').off('click').on('click', function () {
$this.hide();
});*/
}
if ( typeof($this.o.buttons) != 'undefined' ) {
$.each($this.o.buttons, function (k, b) {
$('#wpd_modal_btn_'+k).on('click', function(e){
b.click(e, this);
$this.hide();
});
});
}
},
addButton: function(caption, type, handler) {
if ( typeof(type) == 'undefined' || type == '' )
type = 'error';
if ( typeof(handler) == 'undefined' || type == '' )
handler = function(e){};
if ( $this.o.buttons === defaultOptions.buttons ) {
$this.o.buttons = {};
}
$this.o.buttons[hashCode(type + caption)] = {
'type': type,
'text': caption,
'click': handler
};
$this.initSequence();
},
options: function(options) {
if ( typeof(options) != 'undefined' ) {
$this.o = $.extend({}, defaultOptions, options);
$this.initSequence();
}
},
layout: function(layout) {
$('#wpd_modal').css(layout);
},
show: function(options) {
if ( typeof(options) != 'undefined' ) {
$this.o = $.extend({}, defaultOptions, options);
$this.initSequence();
}
$('#wpd_modal_bg, #wpd_modal').css({
'display': 'block',
'visibility': 'visible'
});
$('#wpd_modal').css({
'marginLeft': -($('#wpd_modal').outerWidth() / 2),
'marginTop': -($('#wpd_modal').outerHeight() / 2)
});
setTimeout(function() {
$('#wpd_modal_bg').addClass('wpd-md-opacity-one');
$('#wpd_modal').addClass('wpd-md-opacity-one');
}, 20);
},
hide: function() {
$('#wpd_modal_bg').removeClass('wpd-md-opacity-one');
$('#wpd_modal').removeClass('wpd-md-opacity-one');
setTimeout(function(){
$('#wpd_modal_bg, #wpd_modal').css({
'display': 'none',
'visibility': 'hidden'
});
}, 150);
}
};
// Create a plugin based on a defined object
$.plugin = function (name, object) {
$.fn[name] = function (options) {
if ( typeof(options) != 'undefined' && object[options] ) {
return object[options].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else {
return this.each(function () {
if (!$.data(this, name)) {
$.data(this, name, Object.create(object).init(
options, this));
}
});
}
};
};
$.plugin('WPD_Modal', methods);
function hashCode(s){
return s.split("").reduce(function(a,b){a=((a<<5)-a)+b.charCodeAt(0);return a&a},0);
}
window.WPD_Modal = $('body').WPD_Modal();
window.WPD_Modal.options = function(o) {
window.WPD_Modal.WPD_Modal('options', o);
};
window.WPD_Modal.show = function(o) {
window.WPD_Modal.WPD_Modal('show', o);
};
window.WPD_Modal.hide = function() {
window.WPD_Modal.WPD_Modal('hide');
};
window.WPD_Modal.layout= function(o) {
window.WPD_Modal.WPD_Modal('layout', o);
};
window.WPD_Modal.addButton = function(caption, type, handler) {
window.WPD_Modal.WPD_Modal('addButton', caption, type, handler);
};
})(jQuery);