version 4.13.0
This commit is contained in:
18
epanel/js/checkbox.js
Normal file
18
epanel/js/checkbox.js
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* jQuery custom checkboxes
|
||||
*
|
||||
* Copyright (c) 2008 Khavilo Dmitry (http://widowmaker.kiev.ua/checkbox/)
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* @version 1.3.0 Beta 1
|
||||
* @author Khavilo Dmitry
|
||||
* @mailto wm.morgun@gmail.com
|
||||
*
|
||||
* Modified to adapt the latest jQuery version (v3 above) included on WordPress 5.6:
|
||||
* - (2020-12-15) - jQuery hover method is deprecated.
|
||||
* - (2021-02-02) - jQuery :eq() selector is deprecated.
|
||||
* - (2021-02-03) - jQuery bind method is deprecated.
|
||||
* - (2021-02-04) - jQuery click event shorthand is deprecated.
|
||||
**/
|
||||
(function($){var i=function(e){if(!e)var e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation()};$.fn.checkbox=function(f){try{document.execCommand('BackgroundImageCache',false,true)}catch(e){}var g={cls:'jquery-checkbox',empty:clearpath};g=$.extend(g,f||{});var h=function(a){var b=a.checked;var c=a.disabled;var d=$(a);if(a.stateInterval)clearInterval(a.stateInterval);a.stateInterval=setInterval(function(){if(a.disabled!=c)d.trigger((c=!!a.disabled)?'disable':'enable');if(a.checked!=b)d.trigger((b=!!a.checked)?'check':'uncheck')},10);return d};return this.each(function(){var a=this;var b=h(a);if(a.wrapper)a.wrapper.remove();a.wrapper=$('<span class="'+g.cls+'"><span class="mark"><img src="'+g.empty+'" /></span></span>');a.wrapperInner=a.wrapper.children('span').eq(0);a.wrapper.on("mouseenter",function(e){a.wrapperInner.addClass(g.cls+'-hover');i(e)}).on("mouseleave",function(e){a.wrapperInner.removeClass(g.cls+'-hover');i(e)});b.css({position:'absolute',zIndex:-1,visibility:'hidden'}).after(a.wrapper);var c=false;if(b.attr('id')){c=$('label[for='+b.attr('id')+']');if(!c.length)c=false}if(!c){c=b.closest?b.closest('label'):b.parents('label').eq(0);if(!c.length)c=false}if(c){c.on("mouseenter",function(e){a.wrapper.trigger('mouseover',[e])}).on("mouseleave",function(e){a.wrapper.trigger('mouseout',[e])});c.on('click',function(e){b.trigger('click',[e]);i(e);return false})}a.wrapper.on('click',function(e){b.trigger('click',[e]);i(e);return false});b.on('click',function(e){i(e)});b.on('disable',function(){a.wrapperInner.addClass(g.cls+'-disabled')}).on('enable',function(){a.wrapperInner.removeClass(g.cls+'-disabled')});b.on('check',function(){a.wrapper.addClass(g.cls+'-checked')}).on('uncheck',function(){a.wrapper.removeClass(g.cls+'-checked')});$('img',a.wrapper).on('dragstart',function(){return false}).on('mousedown',function(){return false});if(window.getSelection)a.wrapper.css('MozUserSelect','none');if(a.checked)a.wrapper.addClass(g.cls+'-checked');if(a.disabled)a.wrapperInner.addClass(g.cls+'-disabled')})}})(jQuery);
|
489
epanel/js/colorpicker.js
Normal file
489
epanel/js/colorpicker.js
Normal file
@ -0,0 +1,489 @@
|
||||
/**
|
||||
*
|
||||
* Color picker
|
||||
* Author: Stefan Petre www.eyecon.ro
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses
|
||||
*
|
||||
* Modified to adapt the latest jQuery version (v3 above) included on WordPress 5.6:
|
||||
* - (2021-02-05) - Number type value passed to css method is deprecated.
|
||||
* - (2021-02-05) - jQuery bind method is deprecated.
|
||||
* - (2021-02-05) - jQuery unbind method is deprecated.
|
||||
* - (2021-02-05) - jQuery focus method is deprecated.
|
||||
*/
|
||||
(function ($) {
|
||||
var ColorPicker = function () {
|
||||
var
|
||||
ids = {},
|
||||
inAction,
|
||||
charMin = 65,
|
||||
visible,
|
||||
tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
|
||||
defaults = {
|
||||
eventName: 'click',
|
||||
onShow: function () {},
|
||||
onBeforeShow: function(){},
|
||||
onHide: function () {},
|
||||
onChange: function () {},
|
||||
onSubmit: function () {},
|
||||
color: 'ff0000',
|
||||
livePreview: true,
|
||||
flat: false
|
||||
},
|
||||
fillRGBFields = function (hsb, cal) {
|
||||
var rgb = HSBToRGB(hsb);
|
||||
$(cal).data('colorpicker').fields
|
||||
.eq(1).val(rgb.r).end()
|
||||
.eq(2).val(rgb.g).end()
|
||||
.eq(3).val(rgb.b).end();
|
||||
},
|
||||
fillHSBFields = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').fields
|
||||
.eq(4).val(hsb.h).end()
|
||||
.eq(5).val(hsb.s).end()
|
||||
.eq(6).val(hsb.b).end();
|
||||
},
|
||||
fillHexFields = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').fields
|
||||
.eq(0).val(HSBToHex(hsb)).end();
|
||||
},
|
||||
setSelector = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
|
||||
$(cal).data('colorpicker').selectorIndic.css({
|
||||
left: parseInt(150 * hsb.s/100, 10) + 'px',
|
||||
top: parseInt(150 * (100-hsb.b)/100, 10) + 'px',
|
||||
});
|
||||
},
|
||||
setHue = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10) + 'px');
|
||||
},
|
||||
setCurrentColor = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
|
||||
},
|
||||
setNewColor = function (hsb, cal) {
|
||||
$(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
|
||||
},
|
||||
keyDown = function (ev) {
|
||||
var pressedKey = ev.charCode || ev.keyCode || -1;
|
||||
if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
|
||||
return false;
|
||||
}
|
||||
var cal = $(this).parent().parent();
|
||||
if (cal.data('colorpicker').livePreview === true) {
|
||||
change.apply(this);
|
||||
}
|
||||
},
|
||||
change = function (ev) {
|
||||
var cal = $(this).parent().parent(), col;
|
||||
if (this.parentNode.className.indexOf('_hex') > 0) {
|
||||
cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
|
||||
} else if (this.parentNode.className.indexOf('_hsb') > 0) {
|
||||
cal.data('colorpicker').color = col = fixHSB({
|
||||
h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
|
||||
s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
|
||||
b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
|
||||
});
|
||||
} else {
|
||||
cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
|
||||
r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
|
||||
g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
|
||||
b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
|
||||
}));
|
||||
}
|
||||
if (ev) {
|
||||
fillRGBFields(col, cal.get(0));
|
||||
fillHexFields(col, cal.get(0));
|
||||
fillHSBFields(col, cal.get(0));
|
||||
}
|
||||
setSelector(col, cal.get(0));
|
||||
setHue(col, cal.get(0));
|
||||
setNewColor(col, cal.get(0));
|
||||
cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
|
||||
},
|
||||
blur = function (ev) {
|
||||
var cal = $(this).parent().parent();
|
||||
cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
|
||||
},
|
||||
focus = function () {
|
||||
charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
|
||||
$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
|
||||
$(this).parent().addClass('colorpicker_focus');
|
||||
},
|
||||
downIncrement = function (ev) {
|
||||
var field = $(this).parent().find('input').trigger('focus');
|
||||
var current = {
|
||||
el: $(this).parent().addClass('colorpicker_slider'),
|
||||
max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
|
||||
y: ev.pageY,
|
||||
field: field,
|
||||
val: parseInt(field.val(), 10),
|
||||
preview: $(this).parent().parent().data('colorpicker').livePreview
|
||||
};
|
||||
$(document).on('mouseup', current, upIncrement);
|
||||
$(document).on('mousemove', current, moveIncrement);
|
||||
},
|
||||
moveIncrement = function (ev) {
|
||||
ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
|
||||
if (ev.data.preview) {
|
||||
change.apply(ev.data.field.get(0), [true]);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
upIncrement = function (ev) {
|
||||
change.apply(ev.data.field.get(0), [true]);
|
||||
ev.data.el.removeClass('colorpicker_slider').find('input').trigger('focus');
|
||||
$(document).off('mouseup', upIncrement);
|
||||
$(document).off('mousemove', moveIncrement);
|
||||
return false;
|
||||
},
|
||||
downHue = function (ev) {
|
||||
var current = {
|
||||
cal: $(this).parent(),
|
||||
y: $(this).offset().top
|
||||
};
|
||||
current.preview = current.cal.data('colorpicker').livePreview;
|
||||
$(document).on('mouseup', current, upHue);
|
||||
$(document).on('mousemove', current, moveHue);
|
||||
},
|
||||
moveHue = function (ev) {
|
||||
change.apply(
|
||||
ev.data.cal.data('colorpicker')
|
||||
.fields
|
||||
.eq(4)
|
||||
.val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
|
||||
.get(0),
|
||||
[ev.data.preview]
|
||||
);
|
||||
return false;
|
||||
},
|
||||
upHue = function (ev) {
|
||||
fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
||||
fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
||||
$(document).off('mouseup', upHue);
|
||||
$(document).off('mousemove', moveHue);
|
||||
return false;
|
||||
},
|
||||
downSelector = function (ev) {
|
||||
var current = {
|
||||
cal: $(this).parent(),
|
||||
pos: $(this).offset()
|
||||
};
|
||||
current.preview = current.cal.data('colorpicker').livePreview;
|
||||
$(document).on('mouseup', current, upSelector);
|
||||
$(document).on('mousemove', current, moveSelector);
|
||||
},
|
||||
moveSelector = function (ev) {
|
||||
change.apply(
|
||||
ev.data.cal.data('colorpicker')
|
||||
.fields
|
||||
.eq(6)
|
||||
.val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
|
||||
.end()
|
||||
.eq(5)
|
||||
.val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
|
||||
.get(0),
|
||||
[ev.data.preview]
|
||||
);
|
||||
return false;
|
||||
},
|
||||
upSelector = function (ev) {
|
||||
fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
||||
fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
||||
$(document).off('mouseup', upSelector);
|
||||
$(document).off('mousemove', moveSelector);
|
||||
return false;
|
||||
},
|
||||
enterSubmit = function (ev) {
|
||||
$(this).addClass('colorpicker_focus');
|
||||
},
|
||||
leaveSubmit = function (ev) {
|
||||
$(this).removeClass('colorpicker_focus');
|
||||
},
|
||||
clickSubmit = function (ev) {
|
||||
var cal = $(this).parent();
|
||||
var col = cal.data('colorpicker').color;
|
||||
cal.data('colorpicker').origColor = col;
|
||||
setCurrentColor(col, cal.get(0));
|
||||
cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
|
||||
},
|
||||
show = function (ev) {
|
||||
var cal = $('#' + $(this).data('colorpickerId'));
|
||||
cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
|
||||
var pos = $(this).offset();
|
||||
var viewPort = getViewport();
|
||||
var top = pos.top + this.offsetHeight;
|
||||
var left = pos.left;
|
||||
if (top + 176 > viewPort.t + viewPort.h) {
|
||||
top -= this.offsetHeight + 176;
|
||||
}
|
||||
if (left + 356 > viewPort.l + viewPort.w) {
|
||||
left -= 356;
|
||||
}
|
||||
cal.css({left: left + 'px', top: top + 'px'});
|
||||
if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
|
||||
cal.show();
|
||||
}
|
||||
$(document).on('mousedown', {cal: cal}, hide);
|
||||
return false;
|
||||
},
|
||||
hide = function (ev) {
|
||||
if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
|
||||
if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
|
||||
ev.data.cal.hide();
|
||||
}
|
||||
$(document).off('mousedown', hide);
|
||||
}
|
||||
},
|
||||
isChildOf = function(parentEl, el, container) {
|
||||
if (parentEl == el) {
|
||||
return true;
|
||||
}
|
||||
if (parentEl.contains) {
|
||||
return parentEl.contains(el);
|
||||
}
|
||||
if ( parentEl.compareDocumentPosition ) {
|
||||
return !!(parentEl.compareDocumentPosition(el) & 16);
|
||||
}
|
||||
var prEl = el.parentNode;
|
||||
while(prEl && prEl != container) {
|
||||
if (prEl == parentEl)
|
||||
return true;
|
||||
prEl = prEl.parentNode;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
getViewport = function () {
|
||||
var m = document.compatMode == 'CSS1Compat';
|
||||
return {
|
||||
l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
|
||||
t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
|
||||
w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
|
||||
h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
|
||||
};
|
||||
},
|
||||
fixHSB = function (hsb) {
|
||||
return {
|
||||
h: Math.min(360, Math.max(0, hsb.h)),
|
||||
s: Math.min(100, Math.max(0, hsb.s)),
|
||||
b: Math.min(100, Math.max(0, hsb.b))
|
||||
};
|
||||
},
|
||||
fixRGB = function (rgb) {
|
||||
return {
|
||||
r: Math.min(255, Math.max(0, rgb.r)),
|
||||
g: Math.min(255, Math.max(0, rgb.g)),
|
||||
b: Math.min(255, Math.max(0, rgb.b))
|
||||
};
|
||||
},
|
||||
fixHex = function (hex) {
|
||||
var len = 6 - hex.length;
|
||||
if (len > 0) {
|
||||
var o = [];
|
||||
for (var i=0; i<len; i++) {
|
||||
o.push('0');
|
||||
}
|
||||
o.push(hex);
|
||||
hex = o.join('');
|
||||
}
|
||||
return hex;
|
||||
},
|
||||
HexToRGB = function (hex) {
|
||||
var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
|
||||
return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
|
||||
},
|
||||
HexToHSB = function (hex) {
|
||||
return RGBToHSB(HexToRGB(hex));
|
||||
},
|
||||
RGBToHSB = function (rgb) {
|
||||
var hsb = {
|
||||
h: 0,
|
||||
s: 0,
|
||||
b: 0
|
||||
};
|
||||
var min = Math.min(rgb.r, rgb.g, rgb.b);
|
||||
var max = Math.max(rgb.r, rgb.g, rgb.b);
|
||||
var delta = max - min;
|
||||
hsb.b = max;
|
||||
if (max != 0) {
|
||||
|
||||
}
|
||||
hsb.s = max != 0 ? 255 * delta / max : 0;
|
||||
if (hsb.s != 0) {
|
||||
if (rgb.r == max) {
|
||||
hsb.h = (rgb.g - rgb.b) / delta;
|
||||
} else if (rgb.g == max) {
|
||||
hsb.h = 2 + (rgb.b - rgb.r) / delta;
|
||||
} else {
|
||||
hsb.h = 4 + (rgb.r - rgb.g) / delta;
|
||||
}
|
||||
} else {
|
||||
hsb.h = -1;
|
||||
}
|
||||
hsb.h *= 60;
|
||||
if (hsb.h < 0) {
|
||||
hsb.h += 360;
|
||||
}
|
||||
hsb.s *= 100/255;
|
||||
hsb.b *= 100/255;
|
||||
return hsb;
|
||||
},
|
||||
HSBToRGB = function (hsb) {
|
||||
var rgb = {};
|
||||
var h = Math.round(hsb.h);
|
||||
var s = Math.round(hsb.s*255/100);
|
||||
var v = Math.round(hsb.b*255/100);
|
||||
if(s == 0) {
|
||||
rgb.r = rgb.g = rgb.b = v;
|
||||
} else {
|
||||
var t1 = v;
|
||||
var t2 = (255-s)*v/255;
|
||||
var t3 = (t1-t2)*(h%60)/60;
|
||||
if(h==360) h = 0;
|
||||
if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
|
||||
else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
|
||||
else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
|
||||
else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
|
||||
else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
|
||||
else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
|
||||
else {rgb.r=0; rgb.g=0; rgb.b=0}
|
||||
}
|
||||
return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
|
||||
},
|
||||
RGBToHex = function (rgb) {
|
||||
var hex = [
|
||||
rgb.r.toString(16),
|
||||
rgb.g.toString(16),
|
||||
rgb.b.toString(16)
|
||||
];
|
||||
$.each(hex, function (nr, val) {
|
||||
if (val.length == 1) {
|
||||
hex[nr] = '0' + val;
|
||||
}
|
||||
});
|
||||
return hex.join('');
|
||||
},
|
||||
HSBToHex = function (hsb) {
|
||||
return RGBToHex(HSBToRGB(hsb));
|
||||
},
|
||||
restoreOriginal = function () {
|
||||
var cal = $(this).parent();
|
||||
var col = cal.data('colorpicker').origColor;
|
||||
cal.data('colorpicker').color = col;
|
||||
fillRGBFields(col, cal.get(0));
|
||||
fillHexFields(col, cal.get(0));
|
||||
fillHSBFields(col, cal.get(0));
|
||||
setSelector(col, cal.get(0));
|
||||
setHue(col, cal.get(0));
|
||||
setNewColor(col, cal.get(0));
|
||||
};
|
||||
return {
|
||||
init: function (opt) {
|
||||
opt = $.extend({}, defaults, opt||{});
|
||||
if (typeof opt.color == 'string') {
|
||||
opt.color = HexToHSB(opt.color);
|
||||
} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
|
||||
opt.color = RGBToHSB(opt.color);
|
||||
} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
|
||||
opt.color = fixHSB(opt.color);
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
return this.each(function () {
|
||||
if (!$(this).data('colorpickerId')) {
|
||||
var options = $.extend({}, opt);
|
||||
options.origColor = opt.color;
|
||||
var id = 'collorpicker_' + parseInt(Math.random() * 1000);
|
||||
$(this).data('colorpickerId', id);
|
||||
var cal = $(tpl).attr('id', id);
|
||||
if (options.flat) {
|
||||
cal.appendTo(this).show();
|
||||
} else {
|
||||
cal.appendTo(document.body);
|
||||
}
|
||||
options.fields = cal
|
||||
.find('input')
|
||||
.on('keyup', keyDown)
|
||||
.on('change', change)
|
||||
.on('blur', blur)
|
||||
.on('focus', focus);
|
||||
cal
|
||||
.find('span').on('mousedown', downIncrement).end()
|
||||
.find('>div.colorpicker_current_color').on('click', restoreOriginal);
|
||||
options.selector = cal.find('div.colorpicker_color').on('mousedown', downSelector);
|
||||
options.selectorIndic = options.selector.find('div div');
|
||||
options.el = this;
|
||||
options.hue = cal.find('div.colorpicker_hue div');
|
||||
cal.find('div.colorpicker_hue').on('mousedown', downHue);
|
||||
options.newColor = cal.find('div.colorpicker_new_color');
|
||||
options.currentColor = cal.find('div.colorpicker_current_color');
|
||||
cal.data('colorpicker', options);
|
||||
cal.find('div.colorpicker_submit')
|
||||
.on('mouseenter', enterSubmit)
|
||||
.on('mouseleave', leaveSubmit)
|
||||
.on('click', clickSubmit);
|
||||
fillRGBFields(options.color, cal.get(0));
|
||||
fillHSBFields(options.color, cal.get(0));
|
||||
fillHexFields(options.color, cal.get(0));
|
||||
setHue(options.color, cal.get(0));
|
||||
setSelector(options.color, cal.get(0));
|
||||
setCurrentColor(options.color, cal.get(0));
|
||||
setNewColor(options.color, cal.get(0));
|
||||
if (options.flat) {
|
||||
cal.css({
|
||||
position: 'relative',
|
||||
display: 'block'
|
||||
});
|
||||
} else {
|
||||
$(this).on(options.eventName, show);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
showPicker: function() {
|
||||
return this.each( function () {
|
||||
if ($(this).data('colorpickerId')) {
|
||||
show.apply(this);
|
||||
}
|
||||
});
|
||||
},
|
||||
hidePicker: function() {
|
||||
return this.each( function () {
|
||||
if ($(this).data('colorpickerId')) {
|
||||
$('#' + $(this).data('colorpickerId')).hide();
|
||||
}
|
||||
});
|
||||
},
|
||||
setColor: function(col) {
|
||||
if (typeof col == 'string') {
|
||||
col = HexToHSB(col);
|
||||
} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
|
||||
col = RGBToHSB(col);
|
||||
} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
|
||||
col = fixHSB(col);
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
return this.each(function(){
|
||||
if ($(this).data('colorpickerId')) {
|
||||
var cal = $('#' + $(this).data('colorpickerId'));
|
||||
cal.data('colorpicker').color = col;
|
||||
cal.data('colorpicker').origColor = col;
|
||||
fillRGBFields(col, cal.get(0));
|
||||
fillHSBFields(col, cal.get(0));
|
||||
fillHexFields(col, cal.get(0));
|
||||
setHue(col, cal.get(0));
|
||||
setSelector(col, cal.get(0));
|
||||
setCurrentColor(col, cal.get(0));
|
||||
setNewColor(col, cal.get(0));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}();
|
||||
$.fn.extend({
|
||||
ColorPicker: ColorPicker.init,
|
||||
ColorPickerHide: ColorPicker.hidePicker,
|
||||
ColorPickerShow: ColorPicker.showPicker,
|
||||
ColorPickerSetColor: ColorPicker.setColor
|
||||
});
|
||||
})(jQuery)
|
37
epanel/js/custom_uploader.js
Normal file
37
epanel/js/custom_uploader.js
Normal file
@ -0,0 +1,37 @@
|
||||
jQuery(function() {
|
||||
var et_file_frame;
|
||||
|
||||
jQuery('.et-upload-image-button').on('click', function(event) {
|
||||
var this_el = jQuery( this ),
|
||||
use_for = this_el.parents( '.et-epanel-box' ).find( '.et-box-title > h3' ).text(),
|
||||
button_text = this_el.data( 'button_text' ),
|
||||
window_title = epanel_uploader.media_window_title,
|
||||
fileInput = this_el.parent().prev('input.et-upload-field');
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
et_file_frame = wp.media.frames.et_file_frame = wp.media({
|
||||
title: window_title,
|
||||
library: {
|
||||
type: 'image'
|
||||
},
|
||||
button: {
|
||||
text: button_text,
|
||||
},
|
||||
multiple: false
|
||||
});
|
||||
|
||||
et_file_frame.on( 'select', function() {
|
||||
var attachment = et_file_frame.state().get( 'selection' ).first().toJSON();
|
||||
fileInput.val( attachment.url );
|
||||
});
|
||||
|
||||
et_file_frame.open();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery('.et-upload-image-reset').on('click', function() {
|
||||
jQuery(this).parent().prev( 'input.et-upload-field' ).val( '' );
|
||||
});
|
||||
});
|
51
epanel/js/eye.js
Normal file
51
epanel/js/eye.js
Normal file
@ -0,0 +1,51 @@
|
||||
/**
|
||||
*
|
||||
* Zoomimage
|
||||
* Author: Stefan Petre www.eyecon.ro
|
||||
*
|
||||
*/
|
||||
(function($){
|
||||
var EYE = window.EYE = function() {
|
||||
var _registered = {
|
||||
init: []
|
||||
};
|
||||
return {
|
||||
init: function() {
|
||||
$.each(_registered.init, function(nr, fn){
|
||||
fn.call();
|
||||
});
|
||||
},
|
||||
extend: function(prop) {
|
||||
for (var i in prop) {
|
||||
if (prop[i] != undefined) {
|
||||
this[i] = prop[i];
|
||||
}
|
||||
}
|
||||
},
|
||||
register: function(fn, type) {
|
||||
if (!_registered[type]) {
|
||||
_registered[type] = [];
|
||||
}
|
||||
_registered[type].push(fn);
|
||||
}
|
||||
};
|
||||
}();
|
||||
$(EYE.init);
|
||||
})(jQuery);
|
||||
|
||||
(function($){
|
||||
var initLayout = function() {
|
||||
$('#colorpickerHolder').ColorPicker({flat: true});
|
||||
$('.colorpopup').ColorPicker({
|
||||
onSubmit: function(hsb, hex, rgb, el) {
|
||||
$(el).val(hex);
|
||||
$(el).ColorPickerHide();
|
||||
},
|
||||
onBeforeShow: function () {
|
||||
$(this).ColorPickerSetColor(this.value);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
EYE.register(initLayout, 'init');
|
||||
})(jQuery);
|
389
epanel/js/functions-init.js
Normal file
389
epanel/js/functions-init.js
Normal file
@ -0,0 +1,389 @@
|
||||
/* <![CDATA[ */
|
||||
var clearpath = ePanelSettings.clearpath;
|
||||
|
||||
jQuery(function($){
|
||||
var editors = [];
|
||||
|
||||
function addEditorInstance(codeEditor, $element, config) {
|
||||
if (!$element || $element.length === 0) {
|
||||
return;
|
||||
}
|
||||
var instance = codeEditor.initialize( $element , {
|
||||
codemirror: config,
|
||||
} );
|
||||
if (instance && instance.codemirror) {
|
||||
editors.push(instance.codemirror);
|
||||
}
|
||||
}
|
||||
|
||||
// Use WP 4.9 CodeMirror Editor for Custom CSS
|
||||
var codeEditor = window.wp && window.wp.codeEditor;
|
||||
if (codeEditor && codeEditor.initialize && codeEditor.defaultSettings && codeEditor.defaultSettings.codemirror) {
|
||||
|
||||
// User ET CodeMirror theme
|
||||
var configCSS = $.extend({}, codeEditor.defaultSettings.codemirror, {
|
||||
theme: 'et',
|
||||
});
|
||||
var configHTML = $.extend({}, configCSS, {
|
||||
mode: 'htmlmixed',
|
||||
});
|
||||
|
||||
if ($('#divi_custom_css').length > 0) {
|
||||
// Divi Theme
|
||||
addEditorInstance(codeEditor, $('#divi_custom_css'), configCSS);
|
||||
addEditorInstance(codeEditor, $('#divi_integration_head'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#divi_integration_body'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#divi_integration_single_top'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#divi_integration_single_bottom'), configHTML);
|
||||
} else if ($('#extra_custom_css').length > 0) {
|
||||
// Extra Theme
|
||||
addEditorInstance(codeEditor, $('#extra_custom_css'), configCSS);
|
||||
addEditorInstance(codeEditor, $('#extra_integration_head'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#extra_integration_body'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#extra_integration_single_top'), configHTML);
|
||||
addEditorInstance(codeEditor, $('#extra_integration_single_bottom'), configHTML);
|
||||
}
|
||||
}
|
||||
|
||||
var $palette_inputs = $( '.et_color_palette_main_input' );
|
||||
|
||||
$('#epanel-content,#epanel-content > div').tabs({
|
||||
fx: {
|
||||
opacity: 'toggle',
|
||||
duration:'fast'
|
||||
},
|
||||
selected: 0,
|
||||
activate: function( event, ui ) {
|
||||
$epanel = $('#epanel');
|
||||
|
||||
if ( $epanel.hasClass('onload') ) {
|
||||
$epanel.removeClass('onload');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('.et-box-description').on('click', function() {
|
||||
var descheading = $(this).parent('.et-epanel-box').find(".et-box-title h3").html();
|
||||
var desctext = $(this).parent('.et-epanel-box').find(".et-box-title .et-box-descr").html();
|
||||
|
||||
$('body').append("<div id='custom-lbox'><div class='et-box-desc'><div class='et-box-desc-top'>"+ ePanelSettings.help_label +"</div><div class='et-box-desc-content'><h3>"+descheading+"</h3>"+desctext+"<div class='et-lightbox-close'></div> </div> <div class='et-box-desc-bottom'></div> </div></div>");
|
||||
|
||||
et_pb_center_modal( $( '.et-box-desc' ) );
|
||||
|
||||
$('.et-lightbox-close').on('click', function() {
|
||||
et_pb_close_modal($('#custom-lbox'));
|
||||
});
|
||||
});
|
||||
|
||||
$('.et-defaults-button.epanel-reset').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
$(".reset-popup-overlay, .defaults-hover").addClass('active');
|
||||
|
||||
et_pb_center_modal( $( '.defaults-hover' ) );
|
||||
});
|
||||
|
||||
$('.no').on('click', function() {
|
||||
et_pb_close_modal( $( '.reset-popup-overlay' ), 'no_remove' );
|
||||
|
||||
//clean the modal classes when animation complete
|
||||
setTimeout( function() {
|
||||
$( '.reset-popup-overlay, .defaults-hover' ).removeClass( 'active et_pb_modal_closing' );
|
||||
}, 600 );
|
||||
});
|
||||
|
||||
// ":not([safari])" is desirable but not necessary selector
|
||||
// ":not([safari])" is desirable but not necessary selector
|
||||
$('#epanel input:checkbox:not([safari]):not(.yes_no_button)').checkbox();
|
||||
$('#epanel input[safari]:checkbox:not(.yes_no_button)').checkbox({cls:'jquery-safari-checkbox'});
|
||||
$('#epanel input:radio:not(.yes_no_button)').checkbox();
|
||||
|
||||
// Yes - No button UI
|
||||
$('.yes_no_button').each(function() {
|
||||
var $checkbox = $(this);
|
||||
var value = $checkbox.is(':checked');
|
||||
var state = value ? 'et_pb_on_state' : 'et_pb_off_state';
|
||||
var $template = $($('#epanel-yes-no-button-template').html()).find('.et_pb_yes_no_button').addClass(state);
|
||||
|
||||
$checkbox.hide().after($template);
|
||||
|
||||
if ( 'et_pb_static_css_file' === $checkbox.attr( 'id' ) ) {
|
||||
$checkbox
|
||||
.parent()
|
||||
.addClass( state )
|
||||
.next()
|
||||
.addClass( 'et_pb_clear_static_css' )
|
||||
.on( 'click', function() {
|
||||
epanel_clear_static_css( false, true );
|
||||
});
|
||||
|
||||
if ( ! value ) {
|
||||
$checkbox.parents('.et-epanel-box').next().hide();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_dynamic_css' === $checkbox.attr( 'id' ) || 'extra_dynamic_css' === $checkbox.attr( 'id' ) ) {
|
||||
if ( ! value ) {
|
||||
$checkbox.parents('.et-epanel-box').next().hide();
|
||||
$checkbox.parents('.et-epanel-box').next().next().hide();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_enable_jquery_body' === $checkbox.attr( 'id' ) || 'extra_enable_jquery_body' === $checkbox.attr( 'id' ) ) {
|
||||
if ( ! value ) {
|
||||
$checkbox.parents('.et-epanel-box').next().hide();
|
||||
$checkbox.parents('.et-epanel-box').next().next().hide();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_google_fonts_inline' === $checkbox.attr( 'id' ) || 'extra_google_fonts_inline' === $checkbox.attr( 'id' ) ) {
|
||||
if ( ! value ) {
|
||||
$checkbox.parents('.et-epanel-box').next().hide();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_critical_css' === $checkbox.attr( 'id' ) || 'extra_critical_css' === $checkbox.attr( 'id' ) ) {
|
||||
if ( ! value ) {
|
||||
$checkbox.parents('.et-epanel-box').next().hide();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('.et-box-content').on( 'click', '.et_pb_yes_no_button', function(e){
|
||||
e.preventDefault();
|
||||
// Fix for nested .et-box-content triggering checkboxes multiple times.
|
||||
e.stopPropagation();
|
||||
|
||||
var $click_area = $(this),
|
||||
$box_content = $click_area.closest('.et-box-content'),
|
||||
$checkbox = $box_content.find('input[type="checkbox"]'),
|
||||
$state = $box_content.find('.et_pb_yes_no_button');
|
||||
|
||||
if ( $state.parent().next().hasClass( 'et_pb_clear_static_css' ) ) {
|
||||
$state = $state.add( $state.parent() );
|
||||
|
||||
if ( $checkbox.is( ':checked' ) ) {
|
||||
$box_content.parent().next().hide();
|
||||
} else {
|
||||
$box_content.parent().next().show();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_dynamic_css' === $checkbox.attr( 'id' ) || 'extra_dynamic_css' === $checkbox.attr( 'id' ) ) {
|
||||
if ( $checkbox.is( ':checked' ) ) {
|
||||
$box_content.parent().next().hide();
|
||||
$box_content.parent().next().next().hide();
|
||||
} else {
|
||||
$box_content.parent().next().show();
|
||||
$box_content.parent().next().next().show();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_enable_jquery_body' === $checkbox.attr( 'id' ) || 'extra_enable_jquery_body' === $checkbox.attr( 'id' ) ) {
|
||||
if ( $checkbox.is( ':checked' ) ) {
|
||||
$box_content.parent().next().hide();
|
||||
$box_content.parent().next().next().hide();
|
||||
} else {
|
||||
$box_content.parent().next().show();
|
||||
$box_content.parent().next().next().show();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_google_fonts_inline' === $checkbox.attr( 'id' ) || 'divi_google_fonts_inline' === $checkbox.attr( 'id' ) ) {
|
||||
if ( $checkbox.is( ':checked' ) ) {
|
||||
$box_content.parent().next().hide();
|
||||
} else {
|
||||
$box_content.parent().next().show();
|
||||
}
|
||||
}
|
||||
|
||||
if ( 'divi_critical_css' === $checkbox.attr( 'id' ) || 'extra_critical_css' === $checkbox.attr( 'id' ) ) {
|
||||
if ( $checkbox.is( ':checked' ) ) {
|
||||
$box_content.parent().next().hide();
|
||||
} else {
|
||||
$box_content.parent().next().show();
|
||||
}
|
||||
}
|
||||
|
||||
$state.toggleClass('et_pb_on_state et_pb_off_state');
|
||||
|
||||
if ( $checkbox.is(':checked' ) ) {
|
||||
$checkbox.prop('checked', false);
|
||||
} else {
|
||||
$checkbox.prop('checked', true);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var $save_message = $("#epanel-ajax-saving");
|
||||
|
||||
$('#epanel-save-top').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
$('#epanel-save').trigger('click');
|
||||
})
|
||||
|
||||
$('#epanel-save').on('click', function() {
|
||||
epanel_save( false, true );
|
||||
return false;
|
||||
});
|
||||
|
||||
function epanel_save( callback, message ) {
|
||||
|
||||
// If CodeMirror is used
|
||||
if (editors.length > 0) {
|
||||
$.each(editors, function(i, editor) {
|
||||
if (editor.save) {
|
||||
// Make sure we store changes into original textarea
|
||||
editor.save();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var options_fromform = $('#main_options_form').formSerialize(),
|
||||
add_nonce = '&_ajax_nonce='+ePanelSettings.epanel_nonce;
|
||||
|
||||
options_fromform += add_nonce;
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ajaxurl,
|
||||
data: options_fromform,
|
||||
beforeSend: function ( xhr ){
|
||||
if ( message ) {
|
||||
$save_message.removeAttr('class').fadeIn('fast');
|
||||
}
|
||||
},
|
||||
success: function(response){
|
||||
if ( message ) {
|
||||
$save_message.addClass('success-animation');
|
||||
|
||||
setTimeout(function(){
|
||||
$save_message.fadeOut();
|
||||
},500);
|
||||
}
|
||||
|
||||
if ( 'function' === typeof callback ) {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function epanel_clear_static_css( callback, message ) {
|
||||
var data = {
|
||||
action: 'et_core_page_resource_clear',
|
||||
et_owner: 'all',
|
||||
et_post_id: 'all',
|
||||
clear_page_resources_nonce: ePanelSettings.et_core_nonces.clear_page_resources_nonce,
|
||||
};
|
||||
|
||||
$.ajax( {
|
||||
type: "POST",
|
||||
url: ajaxurl,
|
||||
data: data,
|
||||
beforeSend: function ( xhr ) {
|
||||
if ( message ) {
|
||||
$save_message.removeAttr( 'class' ).fadeIn( 'fast' );
|
||||
}
|
||||
},
|
||||
success: function ( response ) {
|
||||
if ( message ) {
|
||||
$save_message.addClass( 'success-animation' );
|
||||
|
||||
setTimeout( function () {
|
||||
$save_message.fadeOut();
|
||||
}, 500 );
|
||||
}
|
||||
|
||||
if ( 'function' === typeof callback ) {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
function et_pb_close_modal( $overlay, no_overlay_remove ) {
|
||||
var $modal_container = $overlay;
|
||||
|
||||
// add class to apply the closing animation to modal
|
||||
$modal_container.addClass( 'et_pb_modal_closing' );
|
||||
|
||||
//remove the modal with overlay when animation complete
|
||||
setTimeout( function() {
|
||||
if ( 'no_remove' !== no_overlay_remove ) {
|
||||
$modal_container.remove();
|
||||
}
|
||||
}, 600 );
|
||||
}
|
||||
|
||||
if ( $palette_inputs.length ) {
|
||||
$palette_inputs.each( function() {
|
||||
var $this_input = $( this ),
|
||||
$palette_wrapper = $this_input.closest( '.et-box-content' ),
|
||||
$colorpalette_colorpickers = $palette_wrapper.find( '.input-colorpalette-colorpicker' ),
|
||||
colorpalette_colorpicker_index = 0,
|
||||
saved_palette = $this_input.val().split('|');
|
||||
|
||||
$colorpalette_colorpickers.each( function(){
|
||||
var $colorpalette_colorpicker = $(this),
|
||||
colorpalette_colorpicker_color = saved_palette[ colorpalette_colorpicker_index ];
|
||||
|
||||
$colorpalette_colorpicker.val( colorpalette_colorpicker_color ).wpColorPicker({
|
||||
hide : false,
|
||||
default : $(this).data( 'default-color' ),
|
||||
width: 313,
|
||||
palettes : false,
|
||||
change : function( event, ui ) {
|
||||
var $input = $(this);
|
||||
var data_index = $input.attr('data-index');
|
||||
var $preview = $palette_wrapper.find('.colorpalette-item-' + data_index + ' .color');
|
||||
var color = ui.color.toString();
|
||||
|
||||
$input.val( color );
|
||||
$preview.css({ 'backgroundColor' : color });
|
||||
saved_palette[ data_index - 1 ] = color;
|
||||
$this_input.val( saved_palette.join( '|' ) );
|
||||
}
|
||||
});
|
||||
|
||||
$colorpalette_colorpicker.trigger( 'change' );
|
||||
|
||||
colorpalette_colorpicker_index++;
|
||||
} );
|
||||
|
||||
$palette_wrapper.on( 'click', '.colorpalette-item', function(e){
|
||||
e.preventDefault();
|
||||
|
||||
var $colorpalette_item = $(this),
|
||||
data_index = $colorpalette_item.attr('data-index');
|
||||
|
||||
// Hide other colorpalette colorpicker
|
||||
$palette_wrapper.find( '.colorpalette-colorpicker' ).removeClass( 'active' );
|
||||
|
||||
// Display selected colorpalette colorpicker
|
||||
$palette_wrapper.find( '.colorpalette-colorpicker[data-index="' + data_index + '"]' ).addClass( 'active' );
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if ( typeof etCore !== 'undefined' && typeof etCore.portability !== 'undefined' ) {
|
||||
// Portability integration.
|
||||
etCore.portability.save = function( callback ) {
|
||||
epanel_save( callback, false );
|
||||
}
|
||||
}
|
||||
|
||||
function et_pb_center_modal( $modal ) {
|
||||
var modal_height = $modal.outerHeight();
|
||||
var modal_height_adjustment = (0 - (modal_height / 2)) + 'px';
|
||||
|
||||
$modal.css({
|
||||
top : '50%',
|
||||
bottom : 'auto',
|
||||
marginTop : modal_height_adjustment
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
/* ]]> */
|
37
epanel/js/layout.js
Normal file
37
epanel/js/layout.js
Normal file
@ -0,0 +1,37 @@
|
||||
(function($){
|
||||
var initLayout = function() {
|
||||
var hash = window.location.hash.replace('#', '');
|
||||
var currentTab = $('ul.navigationTabs a')
|
||||
.on('click', showTab)
|
||||
.filter('a[rel=' + hash + ']');
|
||||
if (0 === currentTab.length) {
|
||||
currentTab = $('ul.navigationTabs a').first();
|
||||
}
|
||||
showTab.apply(currentTab.get(0));
|
||||
$('#colorpickerHolder').ColorPicker({flat: true});
|
||||
$('.colorpopup').ColorPicker({
|
||||
onSubmit: function(hsb, hex, rgb, el) {
|
||||
$(el).val(hex);
|
||||
$(el).ColorPickerHide();
|
||||
},
|
||||
onBeforeShow: function () {
|
||||
$(this).ColorPickerSetColor(this.value);
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
var showTab = function(e) {
|
||||
var tabIndex = $('ul.navigationTabs a')
|
||||
.removeClass('active')
|
||||
.index(this);
|
||||
$(this)
|
||||
.addClass('active')
|
||||
.trigger('blur');
|
||||
$('div.tab')
|
||||
.hide()
|
||||
.eq(tabIndex)
|
||||
.show();
|
||||
};
|
||||
|
||||
EYE.register(initLayout, 'init');
|
||||
})(jQuery)
|
4
epanel/js/wp-color-picker-alpha.min.js
vendored
Normal file
4
epanel/js/wp-color-picker-alpha.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user