var e2pdf = {
//e2pdf.helper
helper: {
//e2pdf.helper.color
color: {
close: function (el) {
var color_panel = jQuery(el).parent();
color_panel.find('.wp-color-result').click();
}
},
//e2pdf.helper.image
image: {
//e2pdf.helper.image.load
load: function (el) {
el.addClass('e2pdf-loader');
var value = e2pdf.properties.getValue(el, 'value');
var image = new Image();
if (typeof value === 'string' && !value.trim().startsWith("https://") && !value.trim().startsWith("http://")) {
value = e2pdf.url.pluginsUrl() + '/img/upload.png';
}
image.src = value;
var children = e2pdf.element.children(el);
image.onload = function ()
{
el.removeClass('e2pdf-loader');
if (value === e2pdf.url.pluginsUrl() + '/img/upload.png') {
children.attr('src', e2pdf.url.pluginsUrl() + '/img/upload.png').addClass('e2pdf-image-blank');
if (el.data('data-type') === 'e2pdf-image' && (e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.WIDTH || e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.HEIGHT)) {
el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
} else {
el.resizable("option", "aspectRatio", false).data('uiResizable')._aspectRatio = false;
}
} else {
el.find('.e2pdf-image').attr('src', value);
if (el.data('data-type') === 'e2pdf-image' && e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.WIDTH) {
var o_width = this.width;
var o_height = this.height;
var dimension = parseFloat(children.css('width')) / o_width;
var height = o_height * dimension;
var add_height = parseFloat(el.css('height')) - parseFloat(children.css('height'));
el.css('height', height + add_height);
el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
} else if (el.data('data-type') === 'e2pdf-image' && e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.HEIGHT) {
var o_width = this.width;
var o_height = this.height;
var dimension = parseFloat(children.css('height')) / o_height;
var width = o_width * dimension;
var add_width = parseFloat(el.css('width')) - parseFloat(children.css('width'));
el.css('width', width + add_width);
el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
} else {
el.resizable("option", "aspectRatio", false).data('uiResizable')._aspectRatio = false;
}
children.removeClass('e2pdf-image-blank');
}
};
image.onerror = function ()
{
el.removeClass('e2pdf-loader');
children.attr('src', e2pdf.url.pluginsUrl() + '/img/upload.png').addClass('e2pdf-image-blank');
if (el.data('data-type') === 'e2pdf-image' && (e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.WIDTH || e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.HEIGHT)) {
el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
} else {
el.resizable("option", "aspectRatio", false).data('uiResizable')._aspectRatio = false;
}
};
}
},
//e2pdf.helper.pxToFloat
pxToFloat: function (value) {
return parseFloat(value.replace('px', ''));
},
//e2pdf.helper.sizeToFloat
sizeToFloat: function (value, width) {
if (typeof value === 'string' && value.search("%") > 0) {
return parseFloat(width) * (parseFloat(value.replace('%', '')) / 100);
} else {
return parseFloat(value);
}
},
//e2pdf.helper.ajaxurl
ajaxurl: function (action) {
if (action) {
var url = ajaxurl + '?action=' + action + '&e2pdf_check=true&_nonce=' + e2pdfParams['nonce'];
} else {
var url = ajaxurl + '?e2pdf_check=true&_nonce=' + e2pdfParams['nonce'];
}
return url;
}
},
//e2pdf.url
url: {
//e2pdf.url.change
change: function (page, path) {
if (window.history && window.history.pushState) {
var url = window.location.pathname;
if (page) {
url += '?page=' + page;
}
if (path) {
url += '&' + path;
}
history.pushState({urlPath: url}, "", url);
}
},
//e2pdf.url.build
build: function (page, path, nonce) {
var url = window.location.pathname;
if (page) {
url += '?page=' + page;
}
if (path) {
url += '&' + path;
}
if (nonce) {
url += '&e2pdf_check=true&_nonce=' + e2pdfParams['nonce']
}
return url;
},
//e2pdf.url.get
get: function (name, url) {
if (!url)
url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)"), results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, " "));
},
pluginsUrl: function () {
return e2pdfParams['plugins_url'];
},
uploadUrl: function () {
return e2pdfParams['upload_url'];
}
},
//e2pdf.shortcode
shortcode: {
//e2pdf.shortcode.get
get: function (template_id, dataset_id) {
if (template_id && dataset_id) {
var shortcode = '[e2pdf-download id="' + template_id + '" dataset="' + dataset_id + '"]';
} else if (template_id) {
var shortcode = '[e2pdf-download id="' + template_id + '"]';
} else {
var shortcode = false;
}
return shortcode;
}
},
//e2pdf.guide
guide: {
//e2pdf.guide.calc
calc: function (el, pos, w, h, g) {
if (el != null) {
if (g) {
w = parseFloat(jQuery(el).css('width')) * e2pdf.zoom.zoom;
h = parseFloat(jQuery(el).css('height')) * e2pdf.zoom.zoom;
pos = jQuery(el).offset();
if (jQuery(el).hasClass('e2pdf-page')) {
pos = {
left: pos.left + 1,
top: pos.top + 1
};
}
} else {
w = parseFloat(jQuery(el).css('width'));
h = parseFloat(jQuery(el).css('height'));
if (jQuery(el).hasClass('e2pdf-page')) {
pos = {
left: 0,
top: 0
};
} else {
pos = {
left: parseFloat(e2pdf.properties.getValue(jQuery(el), 'left')),
top: parseFloat(e2pdf.properties.getValue(jQuery(el), 'top'))
};
}
}
}
return [
{type: "h", left: pos.left, top: pos.top},
{type: "h", left: pos.left, top: pos.top + h},
{type: "v", left: pos.left, top: pos.top},
{type: "v", left: pos.left + w, top: pos.top},
{type: "h", left: pos.left, top: pos.top + h / 2},
{type: "v", left: pos.left + w / 2, top: pos.top}
];
}
},
//e2pdf.pdf
pdf: {
//e2pdf.pdf.settings
settings: {
options: [],
//e2pdf.pdf.settings.change
change: function (key, value) {
if (key == 'activated') {
jQuery('.e2pdf-post-activated').remove();
var activation_link = jQuery('#e2pdf-post-activation > .e2pdf-link');
if (value == '1') {
if (e2pdf.pdf.settings.get('activated') == '0') {
e2pdf.pdf.settings.change('templates_limit', parseInt(e2pdf.pdf.settings.get('templates_limit')) - 1);
}
if (activation_link.attr('disabled')) {
activation_link.html(e2pdfLang['Activated']);
} else if (activation_link.hasClass('e2pdf-activate-template')) {
activation_link.after(
jQuery('', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-post-activated', 'disabled': 'disabled'}).text(' (' + e2pdfLang['Activated'] + ')')
);
}
} else {
if (e2pdf.pdf.settings.get('activated') == '1') {
e2pdf.pdf.settings.change('templates_limit', parseInt(e2pdf.pdf.settings.get('templates_limit')) + 1);
}
if (activation_link.attr('disabled')) {
activation_link.html(e2pdfLang['Not Activated']);
} else if (activation_link.hasClass('e2pdf-deactivate-template')) {
activation_link.after(
jQuery('', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-post-activated', 'disabled': 'disabled'}).text(' (' + e2pdfLang['Not Activated'] + ')')
);
}
}
}
e2pdf.pdf.settings.options[key] = value;
if (jQuery('.e2pdf-form-builder > input[name="' + key + '"]').length > 0) {
jQuery('.e2pdf-form-builder > input[name="' + key + '"]').val(value);
} else {
var input = jQuery('',
{
'type': 'hidden',
'name': key,
'value': value,
});
jQuery('.e2pdf-form-builder').append(input);
}
if (key == 'extension') {
e2pdf.request.submitRequest('e2pdf_get_styles', jQuery('.e2pdf-submit-form'), value);
}
},
//e2pdf.pdf.settings.set
set: function (key, value) {
e2pdf.pdf.settings.options[key] = value;
},
//e2pdf.pdf.settings.get
get: function (key) {
if (typeof e2pdf.pdf.settings.options[key] === 'undefined') {
return null;
} else {
return e2pdf.pdf.settings.options[key];
}
}
}
},
//e2pdf.static
static: {
//e2pdf.static.unsaved
unsaved: false,
//e2pdf.static.mediaUploader
mediaUploader: false,
//e2pdf.static.autoloadExport
autoloadExport: false,
//e2pdf.static.selectionRange
selectionRange: null,
//e2pdf.static.guide
guide: {
//e2pdf.static.guide.guides
guides: [],
//e2pdf.static.guide.distance
distance: 5,
x: 0,
y: 0
},
//e2pdf.static.drag
drag: {
//e2pdf.static.drag.min_top
min_top: 0,
//e2pdf.static.drag.max_top
max_top: 0,
//e2pdf.static.drag.min_left
min_left: 0,
//e2pdf.static.drag.max_left
max_left: 0,
//e2pdf.static.drag.page
page: null,
},
//e2pdf.static.const
const: {
'WIDTH_HEIGHT': '0',
'WIDTH': '1',
'HEIGHT': '2'
}
},
//e2pdf.event
event: {
//e2pdf.event.fire
fire: function (event, action, el) {
if (event === 'after.pages.deletePage'
|| event === 'after.createPdf'
|| event === 'after.pages.createPage.newpage'
|| event === 'after.element.create'
|| event === 'after.element.delete'
|| event === 'after.settings.style.change'
|| event === 'after.settings.template.change'
|| event === 'after.wysiwyg.apply'
|| event === 'after.request.submitLocal'
|| event === 'after.mediaUploader.select'
|| event === 'after.element.moved'
|| event === 'after.pages.movePage'
) {
e2pdf.static.unsaved = true;
}
if (event === 'before.request.submitForm') {
e2pdf.static.unsaved = false;
}
if (event === 'after.dialog.create' || event === 'after.actions.change') {
jQuery('.e2pdf-color-picker-load').each(function () {
jQuery(this).wpColorPicker(
{
defaultColor: function () {
if (jQuery(this).attr('data-default')) {
return jQuery(this).attr('data-default');
} else {
return;
}
},
change: function (event, ui) {
jQuery(this).val(ui.color.toString()).change();
}
}
).removeClass('e2pdf-color-picker-load');
});
}
if (event === 'after.dialog.create') {
e2pdf.element.unselect();
}
if (event === 'after.pages.deletePage'
|| event === 'after.pages.createPage.newpage') {
jQuery('#e2pdf-zoom').trigger('change');
}
if (event === 'before.request.submitRequest') {
el.attr('disabled', 'disabled');
if (action === 'e2pdf_auto') {
el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', 'disabled');
}
if (action === 'e2pdf_extension') {
el.closest('form').find('.e2pdf-create-pdf, #e2pdf-item').attr('disabled', 'disabled');
}
if (action === 'e2pdf_templates') {
el.closest('form').find('#e2pdf-export-form-submit, #e2pdf-export-dataset').attr('disabled', 'disabled');
el.closest('form').find('#e2pdf-template-link, #e2pdf-item-link, #e2pdf-delete-item, #e2pdf-delete-items').attr('href', 'javascript:void(0);').attr('disabled', 'disabled');
}
if (action === 'e2pdf_dataset') {
el.closest('form').find('#e2pdf-export-form-submit').attr('disabled', 'disabled');
el.closest('form').find('#e2pdf-item-link, #e2pdf-delete-item').attr('href', 'javascript:void(0);').attr('disabled', 'disabled');
}
}
if (event === 'after.request.submitRequest.error' || event === 'after.request.submitRequest.success') {
el.attr('disabled', false);
if (action === 'e2pdf_auto') {
el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', false);
}
if (action === 'e2pdf_extension') {
el.closest('form').find('#e2pdf-item').find('option').remove();
el.closest('form').find('.e2pdf-create-pdf, #e2pdf-item').attr('disabled', false);
}
if (action === 'e2pdf_get_styles') {
jQuery('link[id^="e2pdf-dynamic-style-"]').remove();
jQuery('script[id^="e2pdf-dynamic-script-"]').remove();
}
}
if (event === 'before.request.upload') {
el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item, #auto_form_label').attr('disabled', 'disabled');
}
if (event === 'after.request.upload.error' || event === 'after.request.upload.success') {
el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item, #auto_form_label').attr('disabled', false);
el.closest('form').find('#e2pdf-upload-pdf').replaceWith(
jQuery('', {'id': 'e2pdf-upload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-upload-pdf e2pdf-hide'})
);
el.closest('form').find('#e2pdf-reupload-pdf').replaceWith(
jQuery('', {'id': 'e2pdf-reupload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-reupload-pdf e2pdf-hide'})
);
}
}
},
//e2pdf.form
form: {
//e2pdf.form.serializeObject
serializeObject: function (form) {
var o = {};
var a = form.serializeArray();
jQuery.each(a, function () {
if (this.name.endsWith('[]')) {
var name = this.name;
name = name.substring(0, this.name.length - 2);
if (!(name in o)) {
o[name] = [];
}
o[name].push(this.value);
} else if (this.name.endsWith(']')) {
var name = this.name;
var path = name.split(/[\[\]]+/);
var curItem = o;
for (var j = 0; j < path.length - 2; j++)
{
if (!(path[j] in curItem))
{
curItem[path[j]] = {};
}
curItem = curItem[path[j]];
}
curItem[path[j]] = this.value || '';
} else {
o[this.name] = this.value || '';
}
});
return o;
},
//e2pdf.form.serializeElements
serializeElements: function () {
var o = {};
jQuery('.e2pdf-element').each(
function (index) {
var el = {};
el.type = jQuery(this).data('data-type');
el.properties = e2pdf.properties.get(jQuery(this), true);
el.actions = e2pdf.actions.get(jQuery(this));
el.top = jQuery(this).css('top');
el.left = jQuery(this).css('left');
el.width = jQuery(this).css('width');
el.height = jQuery(this).css('height');
if (jQuery(this).data('data-type') == 'e2pdf-html') {
el.value = jQuery(this).find('.e2pdf-html').html();
} else if (jQuery(this).data('data-type') == 'e2pdf-input') {
el.value = jQuery(this).find('.e2pdf-input').val();
} else if (jQuery(this).data('data-type') == 'e2pdf-textarea') {
el.value = jQuery(this).find('.e2pdf-textarea').val();
} else if (jQuery(this).data('data-type') == 'e2pdf-checkbox') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else if (jQuery(this).data('data-type') == 'e2pdf-radio') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else if (jQuery(this).data('data-type') == 'e2pdf-select') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else if (jQuery(this).data('data-type') == 'e2pdf-image') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else if (jQuery(this).data('data-type') == 'e2pdf-link') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else if (jQuery(this).data('data-type') == 'e2pdf-signature') {
el.value = e2pdf.properties.getValue(jQuery(this), 'value');
} else {
el.value = jQuery(this).html();
}
el.name = e2pdf.properties.getValue(jQuery(this), 'name');
el.page_id = jQuery(this).closest('.e2pdf-page').attr('data-page_id');
el.element_id = jQuery(this).attr('data-element_id');
o[index] = el;
});
return o;
}
},
//e2pdf.font
font: {
//e2pdf.font.load
load: function (el) {
if (el.is('select')) {
var name = el.val();
var value = el.find('option:selected').attr('path');
} else if (el.is('div')) {
var name = el.attr('name');
var value = el.attr('path');
}
if (jQuery("head").find('style[name="' + name + '"]').length === 0) {
jQuery("head").append("");
}
},
//e2pdf.font.apply
apply: function (el, font) {
var font_name = font.find('option:selected').html();
if (font_name) {
el.css('font-family', font_name);
} else {
el.css('font-family', '');
}
},
//e2pdf.font.size
size: function (el, size) {
var font_size = size.find('option:selected').html();
el.css({'font-size': font_size});
},
//e2pdf.font.line
line: function (el, height) {
var line_height = height.find('option:selected').html();
el.css({'line-height': line_height});
},
//e2pdf.font.color
fontcolor: function (el, color) {
var font_color = color.val();
el.css({'color': font_color});
},
//e2pdf.font.delete
delete: function (el) {
var font = el.attr('data-font');
e2pdf.request.submitRequest('e2pdf_delete_font', el, font);
}
},
//e2pdf.request
request: {
//e2pdf.request.upload
upload: function (action, el) {
if (el.attr('disabled')) {
return;
}
var data = new FormData(el.closest('form')[0]);
e2pdf.event.fire('before.request.upload', action, el);
var loader = el.closest('form').find('.e2pdf-form-loader .spinner');
loader.css('visibility', 'visible').fadeIn();
jQuery.ajax({
url: e2pdf.helper.ajaxurl(action),
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
success: function (response) {
loader.css('visibility', 'hidden').fadeOut();
e2pdf.event.fire('after.request.upload.success', action, el);
if (response.redirect !== undefined) {
// recheck if redirect fires in other cases when not upload pdf
e2pdf.static.unsaved = false;
location.href = response.redirect;
} else if (response.error !== undefined) {
alert(response.error);
} else if (response.content) {
e2pdf.request.callBack(action, response.content);
}
},
error: function (response) {
loader.css('visibility', 'hidden').fadeOut();
e2pdf.event.fire('after.request.upload.success', action, el);
}
});
},
//e2pdf.request.submitForm
submitForm: function (el) {
if (el.attr('disabled')) {
return;
}
el.attr('disabled', 'disabled');
var loader = el.closest('form').find('.e2pdf-form-loader .spinner');
loader.css('visibility', 'visible').fadeIn();
e2pdf.event.fire('before.request.submitForm');
var form_id = el.attr('form-id');
var form = jQuery(document.getElementById(form_id));
var data = e2pdf.form.serializeObject(form);
if (form_id === 'e2pdf-build-form') {
var elements = e2pdf.form.serializeElements();
data.pages = {};
jQuery('.e2pdf-page').each(function () {
var page_id = jQuery(this).attr('data-page_id');
data.pages[page_id] = {};
var properties = {};
var page_elements = [];
properties['width'] = jQuery(this).attr('data-width');
properties['height'] = jQuery(this).attr('data-height');
data.pages[page_id]['properties'] = properties;
data.pages[page_id]['actions'] = e2pdf.actions.get(jQuery(this));
data.pages[page_id]['elements'] = page_elements;
});
for (var key in elements) {
data.pages[elements[key].page_id]['elements'].push(elements[key]);
}
data = JSON.stringify(data);
}
if (form_id === 'e2pdf-email') {
jQuery('.e2pdf-email-lock .e2pdf-form-loader').removeClass('e2pdf-hidden-loader');
data = {};
data['email'] = form.find('input[name="email"]').val();
if (form.find('input[name="email_code"]').length > 0) {
data['email_code'] = form.find('input[name="email_code"]').val();
}
}
var action = el.attr('action');
el.parent().find('.spinner').css('visibility', 'visible').fadeIn();
if (el.attr('target') === '_blank') {
var post_form = jQuery('