', {'class': 'e2pdf-guide e2pdf-guide-v'}),
);
}
page.data('data-type', 'e2pdf-page');
e2pdf.properties.apply(page, properties);
e2pdf.actions.apply(page, actions);
page.droppable({
over: function (ev, ui) {
e2pdf.static.drag.page = jQuery(this);
e2pdf.static.guide.guides = [];
if (ui.draggable.hasClass('e2pdf-clone')) {
jQuery(this).find(".e2pdf-element").each(function () {
e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(jQuery(this), null, null, null, true));
});
e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(e2pdf.static.drag.page, null, null, null, true));
} else {
e2pdf.static.guide.guides = jQuery.map(jQuery(this).find(".e2pdf-element").not('.e2pdf-selected'), e2pdf.guide.calc);
e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(e2pdf.static.drag.page, null, null, null, false));
}
},
out: function (ev) {
e2pdf.static.drag.page = null;
e2pdf.static.guide.guides = [];
},
deactivate: function (ev) {
e2pdf.static.drag.page = null;
e2pdf.static.guide.guides = [];
},
drop: function (ev, ui) {
if (ui.draggable.hasClass('e2pdf-clone')) {
var type = jQuery(ui.draggable).attr('data-type');
var page = jQuery(this).closest('.e2pdf-page');
var pos = {
top: Math.max(0, (jQuery(ui.helper).offset().top - jQuery(this).offset().top) / e2pdf.zoom.zoom - 1),
left: Math.max(0, (jQuery(ui.helper).offset().left - jQuery(this).offset().left) / e2pdf.zoom.zoom - 1),
right: Math.min(0, ((parseFloat(jQuery(ui.helper).css('width')) + jQuery(ui.helper).offset().left - 2) - (jQuery(this).offset().left + parseFloat(jQuery(this).css('width')))) / e2pdf.zoom.zoom),
};
if (pos.left < 0 || pos.right > 0 || pos.top < 0) {
return false;
}
var properties = {};
properties['width'] = jQuery(ui.helper).css('width');
properties['height'] = jQuery(ui.helper).css('height');
properties['top'] = pos.top;
properties['left'] = pos.left;
properties['value'] = jQuery(ui.draggable).attr('data-value');
//changed
var el = e2pdf.element.create(type, page, properties, false, true);
jQuery(this).append(el);
e2pdf.properties.render(el);
}
e2pdf.static.drag.page = null;
}
});
page.contextmenu(function (e) {
if (jQuery(e.target).hasClass('e2pdf-page')) {
e2pdf.contextMenu(e, page);
e.preventDefault();
}
});
page.selectable(
{
filter: '.e2pdf-element',
cancel: 'a,.e2pdf-element',
distance: 10,
selecting: function (event, ui) {
jQuery(ui.selecting).addClass('e2pdf-selected');
},
unselecting: function (event, ui) {
jQuery(ui.unselecting).removeClass('e2pdf-selected');
},
selected: function (event, ui) {
e2pdf.element.select(jQuery(ui.selected));
},
unselected: function (event, ui) {
e2pdf.element.unselect(jQuery(ui.unselected));
}
});
if (newpage) {
jQuery('.e2pdf-tpl .e2pdf-tpl-inner').append(page);
e2pdf.pages.rebuildPages();
e2pdf.event.fire('after.pages.createPage.newpage');
return true;
} else {
return false;
}
},
//e2pdf.pages.movePage
movePage: function (el, direction) {
if (e2pdf.pdf.settings.get('pdf')) {
return false;
}
if (direction === 'up') {
el.closest('.e2pdf-page').insertBefore(el.closest('.e2pdf-page').prev('.e2pdf-page'));
} else if (direction === 'down') {
el.closest('.e2pdf-page').insertAfter(el.closest('.e2pdf-page').next('.e2pdf-page'));
}
e2pdf.event.fire('after.pages.movePage');
e2pdf.pages.rebuildPages();
},
//e2pdf.pages.deletePage
deletePage: function (el) {
el.closest('.e2pdf-page').remove();
e2pdf.event.fire('after.pages.deletePage');
e2pdf.pages.rebuildPages();
},
//e2pdf.pages.changeTplSize
changeTplSize: function (width, height) {
jQuery('.e2pdf-tpl').attr('data-width', width).attr('data-height', height);
},
changePageSize: function (el, width, height) {
var set_width = true;
var set_height = true;
var prev_width = parseFloat(el.css('width'));
var prev_height = parseFloat(el.css('height'));
var width_diff = width / prev_width;
var height_diff = height / prev_height;
el.find(".e2pdf-element").each(function () {
jQuery(this).css('left', parseFloat(jQuery(this).css('left')) * width_diff);
jQuery(this).css('top', parseFloat(jQuery(this).css('top')) * height_diff);
if (jQuery(this).data('data-type') === 'e2pdf-image') {
var scale = e2pdf.properties.getValue(jQuery(this), 'scale');
if (scale === e2pdf.static.const.WIDTH) {
jQuery(this).css('height', parseFloat(jQuery(this).css('height')) * width_diff);
set_height = false;
} else if (scale === e2pdf.static.const.HEIGHT) {
jQuery(this).css('width', parseFloat(jQuery(this).css('height')) * height_diff);
set_width = false;
}
}
if (set_width) {
jQuery(this).css('width', parseFloat(jQuery(this).css('width')) * width_diff);
}
if (set_height) {
jQuery(this).css('height', parseFloat(jQuery(this).css('height')) * height_diff);
}
});
el.css('width', width);
el.css('height', height);
}
},
//e2pdf.contextMenu
contextMenu: function (e, el) {
e2pdf.delete('.e2pdf-context');
var menu = jQuery('
', {'class': 'e2pdf-context'});
if (el.hasClass('e2pdf-page')) {
var parent = el;
menu.append(jQuery('
', {'class': 'e2pdf-context-menu'}).append(
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-paste e2pdf-link', 'disabled': 'disabled'}).html(e2pdfLang['Paste'])
),
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-pasteinplace e2pdf-link', 'disabled': 'disabled'}).html(e2pdfLang['Paste in Place'])
)
));
if (Object.keys(e2pdf.element.buffered).length > 0) {
menu.find('a').attr('disabled', false);
}
} else {
if (!el.hasClass('e2pdf-selected')) {
e2pdf.element.unselect();
e2pdf.element.select(el);
}
var parent = el.closest('.e2pdf-page');
menu.append(jQuery('
', {'class': 'e2pdf-context-menu'}).append(
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': el.hasClass('e2pdf-hide') ? 'e2pdf-unhidden' : 'e2pdf-hidden'}).html(el.hasClass('e2pdf-hide') ? e2pdfLang['Show'] : e2pdfLang['Hide'])
),
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-copy'}).html(e2pdfLang['Copy'])
),
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-cut'}).html(e2pdfLang['Cut'])
),
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-delete', }).html(e2pdfLang['Delete'])
),
));
if (Object.keys(e2pdf.element.selected).length == 1) {
menu.find('ul').append(
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-properties e2pdf-modal', 'data-modal': 'properties'}).html(e2pdfLang['Properties'])
));
if (el.data('data-type') === 'e2pdf-image' || (el.data('data-type') === 'e2pdf-signature' && !e2pdf.properties.getValue(el, 'esig'))) {
menu.find('ul').prepend(
jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-upload'}).html(e2pdfLang['Choose Image'])
));
}
if (el.data('data-type') !== 'e2pdf-rectangle') {
menu.find('ul').prepend(jQuery('
').append(
jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-visual'}).html(e2pdfLang['Map Field'])
));
}
}
}
var pos_x = (e.pageX - parent.offset().left) / e2pdf.zoom.zoom;
var pos_y = (e.pageY - parent.offset().top) / e2pdf.zoom.zoom;
menu.css({top: pos_y + "px", left: pos_x + "px"});
menu.appendTo(parent);
},
//e2pdf.delete
delete: function (el) {
jQuery(el).remove();
},
//e2pdf.element
element: {
//e2pdf.element.buffered
buffered: [],
//e2pdf.element.selected
selected: [],
//e2pdf.element.init
init: function (el) {
if (el.data('data-type') === 'e2pdf-html') {
e2pdf.properties.set(el, 'value', el.find('.e2pdf-html').html());
} else if (el.data('data-type') === 'e2pdf-input') {
e2pdf.properties.set(el, 'value', el.find('.e2pdf-input').val());
} else if (el.data('data-type') === 'e2pdf-textarea') {
e2pdf.properties.set(el, 'value', el.find('.e2pdf-textarea').val());
}
},
//e2pdf.element.create
create: function (type, page, properties, actions, default_properties, onload, element_id) {
var aspect = false;
var min_height = 10;
if (!properties) {
var properties = {};
}
if (!actions) {
var actions = {};
}
if (!properties['value']) {
properties['value'] = '';
}
// Switch element types
if (type === 'e2pdf-html') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '22';
}
var element =
jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'contenteditable': true, 'class': 'content e2pdf-html'}).html(properties['value']),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-input') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '22';
}
var element =
jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'type': 'text', 'class': 'e2pdf-input'}).val(properties['value']),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-textarea') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '100';
}
var element = jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'type': 'text', 'class': 'e2pdf-textarea'}).html(properties['value']),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-checkbox') {
if (!properties['width']) {
properties['width'] = '16';
}
if (!properties['height']) {
properties['height'] = '16';
}
var element = jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'type': 'checkbox', 'class': 'e2pdf-checkbox'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-radio') {
if (!properties['width']) {
properties['width'] = '16';
}
if (!properties['height']) {
properties['height'] = '16';
}
var element = jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'type': 'radio', 'class': 'e2pdf-radio'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
var aspect = false;
} else if (type === 'e2pdf-select') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '22';
}
var element = jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'class': 'e2pdf-select'}).append(
),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-image') {
var element = jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-loader e2pdf-resizable', 'width': '100px', height: '100px'}).append(
jQuery('
![]()
', {'class': 'e2pdf-image'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-rectangle') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '5';
}
var min_height = 1;
var element =
jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'class': 'content e2pdf-rectangle'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-link') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '22';
}
var min_height = 1;
var element =
jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'class': 'content e2pdf-link'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
} else if (type === 'e2pdf-signature') {
if (!properties['width']) {
properties['width'] = '200';
}
if (!properties['height']) {
properties['height'] = '22';
}
if (!properties['dimension']) {
if (default_properties) {
properties['dimension'] = '1';
}
}
var min_height = 1;
var element =
jQuery('
', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
jQuery('
', {'class': 'content e2pdf-signature'}),
jQuery('
', {'class': 'e2pdf-drag dashicons dashicons-move'})
);
}
// If element exists
if (typeof element !== "undefined") {
element.contextmenu(function (e) {
e2pdf.contextMenu(e, element);
e.preventDefault();
});
if (!element_id) {
var last_id = 0;
jQuery('#e2pdf-tpl .e2pdf-element').each(function () {
var num_id = parseInt(jQuery(this).attr("data-element_id"));
if (num_id > last_id) {
last_id = num_id;
}
});
element_id = parseInt(last_id + 1);
}
element.addClass('e2pdf-element');
element.attr('data-element_id', element_id);
if (type === 'e2pdf-select') {
if (!properties['options']) {
if (default_properties) {
properties['options'] = '';
}
}
}
if (!properties['z_index']) {
properties['z_index'] = 0;
}
if (type === 'e2pdf-input'
|| type === 'e2pdf-textarea'
|| type === 'e2pdf-select'
|| type === 'e2pdf-radio'
|| type === 'e2pdf-checkbox'
) {
if (!properties['border']) {
if (default_properties) {
properties['border'] = 1;
}
}
}
if (type === 'e2pdf-image'
|| type === 'e2pdf-signature') {
if (!properties['scale']) {
properties['scale'] = e2pdf.static.const.WIDTH_HEIGHT;
}
if (!properties['horizontal']) {
properties['horizontal'] = 'left';
}
if (!properties['vertical']) {
properties['vertical'] = 'bottom';
}
}
if (type === 'e2pdf-html'
|| type === 'e2pdf-image'
|| type === 'e2pdf-signature'
) {
if (!properties['border_top']) {
properties['border_top'] = 0;
}
if (!properties['border_left']) {
properties['border_left'] = 0;
}
if (!properties['border_right']) {
properties['border_right'] = 0;
}
if (!properties['border_bottom']) {
properties['border_bottom'] = 0;
}
if (!properties['padding_top']) {
properties['padding_top'] = 0;
}
if (!properties['padding_left']) {
properties['padding_left'] = 0;
}
if (!properties['padding_right']) {
properties['padding_right'] = 0;
}
if (!properties['padding_bottom']) {
properties['padding_bottom'] = 0;
}
}
if (type === 'e2pdf-input' || type === 'e2pdf-textarea') {
if (!properties['length']) {
properties['length'] = 0;
}
}
if (type !== 'e2pdf-rectangle') {
if (!properties['border_color']) {
properties['border_color'] = '';
if (default_properties && (type === 'e2pdf-input'
|| type === 'e2pdf-textarea'
|| type === 'e2pdf-select'
|| type === 'e2pdf-radio'
|| type === 'e2pdf-checkbox'
)
) {
properties['border_color'] = '#000000';
}
}
}
if (type !== 'e2pdf-image') {
if (!properties['text_color']) {
properties['text_color'] = '';
}
if (!properties['text_font']) {
properties['text_font'] = '';
}
if (!properties['text_font_size']) {
properties['text_font_size'] = '';
}
if (!properties['text_line_height']) {
properties['text_line_height'] = '';
}
}
if (type === 'e2pdf-radio' || type === 'e2pdf-checkbox') {
if (!properties['option']) {
if (default_properties) {
properties['option'] = "option" + element_id;
}
}
if (!properties['text_type']) {
if (default_properties) {
if (type === 'e2pdf-radio') {
properties['text_type'] = 'circle';
} else if (type === 'e2pdf-checkbox') {
properties['text_type'] = 'check';
}
}
}
}
if (type === 'e2pdf-input' || type === 'e2pdf-textarea' || type === 'e2pdf-html') {
if (!properties['text_align']) {
if (default_properties) {
properties['text_align'] = 'left';
}
}
}
if (type === 'e2pdf-radio') {
if (!properties['group']) {
if (default_properties) {
properties['group'] = "group";
}
}
}
element.data('data-type', type);
if (properties['width']) {
element.css({"width": properties['width']});
}
if (properties['height']) {
element.css({"height": properties['height']});
}
if (type === 'e2pdf-rectangle') {
if (!properties['background']) {
if (default_properties) {
properties['background'] = '#000000';
}
}
}
if (properties['top'] && properties['left']) {
element.css({"top": properties['top'], "left": properties['left']});
}
element.css({"position": "absolute"});
e2pdf.properties.apply(element, properties);
e2pdf.actions.apply(element, actions);
// If element draggable
element.draggable({
cancel: '.no-drag',
handle: ".e2pdf-drag",
containment: jQuery(page),
stop: function (ev, ui) {
var page = jQuery(this).closest('.e2pdf-page');
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (selected.hasClass('e2pdf-width-auto')) {
selected.css({'width': 'auto'});
}
if (selected.hasClass('e2pdf-height-auto')) {
selected.css({'height': 'auto'});
}
e2pdf.properties.set(selected, 'top', Math.max(0, e2pdf.helper.convertPxToFloat(selected.css('top'))));
e2pdf.properties.set(selected, 'left', Math.max(0, e2pdf.helper.convertPxToFloat(selected.css('left'))));
}
jQuery('.page-options-icons').css('z-index', '');
e2pdf.event.fire('after.element.moved');
e2pdf.element.unselect();
jQuery(".e2pdf-guide-v, .e2pdf-guide-h").hide();
},
drag: function (ev, ui) {
var left = (ev.clientX - e2pdf.zoom.click.x + ui.originalPosition.left) / e2pdf.zoom.zoom;
var top = (ev.clientY - e2pdf.zoom.click.y + ui.originalPosition.top) / e2pdf.zoom.zoom;
left = Math.min(left, e2pdf.static.drag.max_left);
top = Math.min(top, e2pdf.static.drag.max_top);
ui.position = {
left: Math.max(e2pdf.static.drag.min_left, left),
top: Math.max(e2pdf.static.drag.min_top, top)
};
var diff_top = ui.position.top - parseFloat(e2pdf.properties.getValue(jQuery(this), 'top'));
var diff_left = ui.position.left - parseFloat(e2pdf.properties.getValue(jQuery(this), 'left'));
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (!selected.is(jQuery(this))) {
selected.finish().animate({
left: parseFloat(e2pdf.properties.getValue(selected, 'left')) + diff_left,
top: parseFloat(e2pdf.properties.getValue(selected, 'top')) + diff_top,
}, 0);
}
}
var guides = {top: {dist: e2pdf.static.guide.distance + 1}, left: {dist: e2pdf.static.guide.distance + 1}};
var w = parseFloat(jQuery(this).css('width'));
var h = parseFloat(jQuery(this).css('height'));
var el_guides = e2pdf.guide.calc(null, ui.position, w, h);
jQuery.each(e2pdf.static.guide.guides, function (i, guide) {
jQuery.each(el_guides, function (i, elemGuide) {
if (guide.type == elemGuide.type) {
var prop = guide.type == "h" ? "top" : "left";
var d = Math.abs(elemGuide[prop] - guide[prop]);
if (d < guides[prop].dist) {
guides[prop].dist = d;
guides[prop].offset = elemGuide[prop] - ui.position[prop];
guides[prop].guide = guide;
}
}
});
});
if (guides.top.dist <= e2pdf.static.guide.distance) {
jQuery(this).closest('.e2pdf-page').find(".e2pdf-guide-h").css("top", guides.top.guide.top).show();
var snap_top = guides.top.guide.top - guides.top.offset;
if (e2pdf.static.drag.max_top >= snap_top && snap_top >= e2pdf.static.drag.min_top) {
ui.position.top = snap_top;
var guide_diff_top = ui.position.top - parseFloat(e2pdf.properties.getValue(jQuery(this), 'top'));
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (!selected.is(jQuery(this))) {
selected.finish().animate({
top: parseFloat(e2pdf.properties.getValue(selected, 'top')) + guide_diff_top,
}, 0);
}
}
}
} else {
jQuery(".e2pdf-guide-h").hide();
}
if (guides.left.dist <= e2pdf.static.guide.distance) {
jQuery(this).closest('.e2pdf-page').find(".e2pdf-guide-v").css("left", guides.left.guide.left).show();
var snap_left = guides.left.guide.left - guides.left.offset;
if (e2pdf.static.drag.max_left >= snap_left && snap_left >= e2pdf.static.drag.min_left) {
ui.position.left = snap_left;
var guide_diff_left = ui.position.left - parseFloat(e2pdf.properties.getValue(jQuery(this), 'left'));
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (!selected.is(jQuery(this))) {
selected.finish().animate({
left: parseFloat(e2pdf.properties.getValue(selected, 'left')) + guide_diff_left,
}, 0);
}
}
}
} else {
jQuery(".e2pdf-guide-v").hide();
}
},
start: function (ev, ui) {
e2pdf.element.select(jQuery(this));
e2pdf.static.drag.min_left = 0;
e2pdf.static.drag.max_left = jQuery(this).closest('.e2pdf-page').width();
e2pdf.static.drag.min_top = 0;
e2pdf.static.drag.max_top = jQuery(this).closest('.e2pdf-page').height();
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (selected.hasClass('e2pdf-width-auto')) {
selected.css({"width": "auto"});
}
if (selected.hasClass('e2pdf-height-auto')) {
selected.css({"height": "auto"});
}
var padding_top = e2pdf.helper.convertPxToFloat(selected.css('padding-top'));
var padding_left = e2pdf.helper.convertPxToFloat(selected.css('padding-left'));
var padding_right = e2pdf.helper.convertPxToFloat(selected.css('padding-right'));
var padding_bottom = e2pdf.helper.convertPxToFloat(selected.css('padding-bottom'));
var border_top = e2pdf.helper.convertPxToFloat(selected.css('border-top-width'));
var border_left = e2pdf.helper.convertPxToFloat(selected.css('border-left-width'));
var border_right = e2pdf.helper.convertPxToFloat(selected.css('border-right-width'));
var border_bottom = e2pdf.helper.convertPxToFloat(selected.css('border-bottom-width'));
e2pdf.static.drag.min_left = Math.max(parseFloat(e2pdf.properties.getValue(jQuery(this), 'left')) - e2pdf.properties.getValue(selected, 'left'), e2pdf.static.drag.min_left);
e2pdf.static.drag.min_top = Math.max(parseFloat(e2pdf.properties.getValue(jQuery(this), 'top')) - e2pdf.properties.getValue(selected, 'top'), e2pdf.static.drag.min_top);
e2pdf.static.drag.max_left = Math.min(selected.closest('.e2pdf-page').width() - selected.width() - padding_left - padding_right - border_left - border_right + (parseFloat(e2pdf.properties.getValue(jQuery(this), 'left')) - parseFloat(e2pdf.properties.getValue(selected, 'left'))), e2pdf.static.drag.max_left);
e2pdf.static.drag.max_top = Math.min(selected.closest('.e2pdf-page').height() - selected.height() - padding_top - padding_bottom - border_top - border_bottom + (parseFloat(e2pdf.properties.getValue(jQuery(this), 'top')) - parseFloat(e2pdf.properties.getValue(selected, 'top'))), e2pdf.static.drag.max_top);
}
e2pdf.zoom.click.x = ev.clientX;
e2pdf.zoom.click.y = ev.clientY;
jQuery('.page-options-icons').css('z-index', -1);
}
});
// If element resizable
if (element.hasClass('e2pdf-resizable')) {
element.resizable({
aspectRatio: aspect,
minHeight: min_height,
start: function (ev, ui) {
var left = parseFloat(jQuery(this).css('left'));
var top = parseFloat(jQuery(this).css('top'));
var page_width = parseFloat(jQuery(this).closest('.e2pdf-page').css('width'));
var page_height = parseFloat(jQuery(this).closest('.e2pdf-page').css('height'));
jQuery(this).resizable("option", "maxWidth", page_width - left);
jQuery(this).resizable("option", "maxHeight", page_height - top);
var padding_top = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-top'));
var padding_left = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-left'));
var padding_right = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-right'));
var padding_bottom = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-bottom'));
var border_top = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-top-width'));
var border_left = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-left-width'));
var border_right = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-right-width'));
var border_bottom = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-bottom-width'));
ui.originalSize.width = ui.originalSize.width + padding_left + padding_right + border_left + border_right;
ui.originalSize.height = ui.originalSize.height + padding_top + padding_bottom + border_top + border_bottom;
e2pdf.zoom.click.x = ev.clientX;
e2pdf.zoom.click.y = ev.clientY;
},
resize: function (ev, ui) {
},
stop: function (event, ui) {
e2pdf.properties.set(jQuery(this), 'width', ui.size.width);
e2pdf.properties.set(jQuery(this), 'height', ui.size.height);
}
});
} else if (element.hasClass('e2pdf-resizable-horizontal')) {
element.resizable({
handles: 'e, w, se',
resize: function (e, ui) {
jQuery(this).css('height', 'auto');
},
start: function (e, ui) {
var left = parseFloat(jQuery(this).css('left'));
var page_width = parseFloat(jQuery(this).closest('.e2pdf-page').css('width'));
jQuery(this).resizable("option", "maxWidth", page_width - left);
},
stop: function (event, ui) {
e2pdf.properties.set(jQuery(this), 'width', ui.size.width);
e2pdf.properties.set(jQuery(this), 'height', ui.size.height);
}
}
);
}
if (!onload) {
e2pdf.event.fire('after.element.create');
}
return element;
} else {
return false;
}
},
//e2pdf.element.children
children: function (el) {
var children = false;
if (el.data('data-type') === 'e2pdf-html') {
children = el.find('.e2pdf-html');
} else if (el.data('data-type') === 'e2pdf-input') {
children = el.find('.e2pdf-input');
} else if (el.data('data-type') === 'e2pdf-textarea') {
children = el.find('.e2pdf-textarea');
} else if (el.data('data-type') === 'e2pdf-select') {
children = el.find('.e2pdf-select');
} else if (el.data('data-type') === 'e2pdf-radio') {
children = el.find('.e2pdf-radio');
} else if (el.data('data-type') === 'e2pdf-checkbox') {
children = el.find('.e2pdf-checkbox');
} else if (el.data('data-type') === 'e2pdf-image') {
children = el.find('.e2pdf-image');
}
return children;
},
//e2pdf.element.copy
copy: function (el) {
e2pdf.element.init(el);
e2pdf.element.buffer(el.clone(true));
},
//e2pdf.element.cut
cut: function (el) {
e2pdf.element.init(el);
e2pdf.element.buffer(el.clone(true));
e2pdf.element.delete(el);
},
//e2pdf.element.select
select: function (el) {
var selected = false;
for (var key in e2pdf.element.selected) {
if (e2pdf.element.selected[key].is(el)) {
selected = true;
}
}
if (!selected) {
el.addClass('e2pdf-selected');
e2pdf.element.selected.push(el);
}
},
//e2pdf.element.unselect
unselect: function (el) {
if (!el) {
jQuery('.e2pdf-selected').removeClass('e2pdf-selected');
e2pdf.element.selected = [];
} else {
for (var key in e2pdf.element.selected) {
if (e2pdf.element.selected[key].is(el)) {
el.removeClass('e2pdf-selected');
delete e2pdf.element.selected[key];
}
}
}
},
//e2pdf.element.buffer
buffer: function (el) {
var buffered = false;
for (var key in e2pdf.element.buffered) {
if (e2pdf.element.buffered[key].is(el)) {
buffered = true;
}
}
if (!buffered) {
e2pdf.element.buffered.push(el);
}
},
//e2pdf.element.unbuffer
unbuffer: function (el) {
if (!el) {
e2pdf.element.buffered = [];
} else {
for (var key in e2pdf.element.buffered) {
if (e2pdf.element.buffered[key].is(el)) {
delete e2pdf.element.buffered[key];
}
}
}
},
//e2pdf.element.hide
hide: function (el) {
el.addClass('e2pdf-hide');
},
//e2pdf.element.show
show: function (el) {
el.removeClass('e2pdf-hide');
},
//e2pdf.element.paste
paste: function (keep_position) {
e2pdf.element.unselect();
var min_top = 99999999;
var min_left = 9999999;
var left_correction = 0;
var top_correction = 0;
if (!keep_position) {
for (var key in e2pdf.element.buffered) {
var buffered = e2pdf.element.buffered[key];
min_top = Math.min(e2pdf.properties.getValue(buffered, 'top'), min_top);
min_left = Math.min(e2pdf.properties.getValue(buffered, 'left'), min_left);
}
for (var key in e2pdf.element.buffered) {
var buffered = e2pdf.element.buffered[key];
var context = jQuery('.e2pdf-context');
var properties = e2pdf.properties.get(buffered);
var width = parseFloat(properties['width']);
var height = parseFloat(properties['height']);
var page = context.closest('.e2pdf-page');
var top = parseFloat(e2pdf.helper.convertPxToFloat(context.css('top')) + (parseFloat(properties['top'] - min_top)));
var left = parseFloat(e2pdf.helper.convertPxToFloat(context.css('left')) + (parseFloat(properties['left']) - min_left));
if ((left + width) > parseFloat(page.css('width'))) {
var correction = left - (parseFloat(page.css('width')) - width);
left_correction = Math.max(correction, left_correction);
}
if ((top + height) > parseFloat(page.css('height'))) {
var correction = top - (parseFloat(page.css('height')) - height);
top_correction = Math.max(correction, top_correction);
}
}
}
for (var key in e2pdf.element.buffered) {
var buffered = e2pdf.element.buffered[key];
var context = jQuery('.e2pdf-context');
var properties = e2pdf.properties.get(buffered);
var actions = e2pdf.actions.get(buffered);
var width = parseFloat(properties['width']);
var height = parseFloat(properties['height']);
var page = context.closest('.e2pdf-page');
var type = buffered.data('data-type');
if (!keep_position) {
var top = parseFloat(e2pdf.helper.convertPxToFloat(context.css('top')) + (parseFloat(properties['top'] - min_top)) - top_correction);
var left = parseFloat(e2pdf.helper.convertPxToFloat(context.css('left')) + (parseFloat(properties['left']) - min_left) - left_correction);
properties['top'] = top;
properties['left'] = left;
}
//changed
var el = e2pdf.element.create(type, page, properties, actions);
page.append(el);
e2pdf.properties.render(el);
e2pdf.element.select(el);
}
e2pdf.event.fire('after.element.paste');
},
//e2pdf.element.delete
delete: function (el) {
el.remove();
e2pdf.event.fire('after.element.delete');
}
},
//e2pdf.wysiwyg
wysiwyg: {
//e2pdf.wysiwyg.apply
apply: function (el) {
var command = el.attr('data-command');
if (command === 'H1') {
var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
if (node.is("h1") && document.getSelection().toString() === node.text()) {
e2pdf.wysiwyg.clear('h1');
} else {
var html = jQuery('
').html(e2pdf.wysiwyg.helper.getSelectionHtml()).prop('outerHTML');
document.execCommand('insertHTML', false, html);
}
} else if (command === 'H2') {
var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
if (node.is("h2") && document.getSelection().toString() === node.text()) {
e2pdf.wysiwyg.clear('h2');
} else {
var html = jQuery('
').html(e2pdf.wysiwyg.helper.getSelectionHtml()).prop('outerHTML');
document.execCommand('insertHTML', false, html);
}
} else if (command === 'createlink') {
url = prompt(e2pdfLang['Enter link here'] + ': ', 'http:\/\/');
document.execCommand(command, false, url);
} else if (command === 'font-size') {
var font_size = el.find('option:selected').html();
var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
if (node.is("span") && document.getSelection().toString() === node.text()) {
var html = node.css('font-size', font_size).prop('outerHTML');
} else {
var html = jQuery('
').html(e2pdf.wysiwyg.helper.getSelectionHtml()).css('font-size', font_size).prop('outerHTML');
}
document.execCommand('insertHTML', false, html);
el.val('');
} else if (command === 'font') {
e2pdf.font.load(el);
var font = el.find('option:selected').html();
var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
if (node.is("span") && document.getSelection().toString() === node.text()) {
var html = node.css('font-family', '"' + font + '"').prop('outerHTML');
} else {
var html = jQuery('
').html(e2pdf.wysiwyg.helper.getSelectionHtml()).css('font-family', '"' + font + '"').prop('outerHTML');
}
document.execCommand('insertHTML', false, html);
el.val('');
} else if (command === 'color') {
e2pdf.wysiwyg.helper.restoreSelection(e2pdf.static.selectionRange);
var color = el.val();
document.execCommand('foreColor', false, color);
e2pdf.static.selectionRange = e2pdf.wysiwyg.helper.saveSelection();
} else if (command === 'clear') {
document.execCommand("removeformat", false, "");
e2pdf.wysiwyg.clear();
} else {
document.execCommand(command, false, null);
}
e2pdf.event.fire('after.wysiwyg.apply');
},
clear: function (tags) {
if (!tags) {
var tags = "h1,h2";
}
var array = tags.toLowerCase().split(",");
e2pdf.wysiwyg.helper.getSelectedNodes().forEach(function (node) {
if (node.nodeType === 1 &&
array.indexOf(node.tagName.toLowerCase()) > -1) {
e2pdf.wysiwyg.helper.replaceWithOwnChildren(node);
}
});
},
helper: {
getSelectedNodes: function () {
var nodes = [];
if (window.getSelection) {
var sel = window.getSelection();
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
nodes.push.apply(nodes, e2pdf.wysiwyg.helper.getRangeSelectedNodes(sel.getRangeAt(i), true));
}
}
return nodes;
},
replaceWithOwnChildren: function (el) {
var parent = el.parentNode;
while (el.hasChildNodes()) {
parent.insertBefore(el.firstChild, el);
}
parent.removeChild(el);
},
getRangeSelectedNodes: function (range, includePartiallySelectedContainers) {
var node = range.startContainer;
var endNode = range.endContainer;
var rangeNodes = [];
if (node === endNode) {
rangeNodes = [node];
} else {
while (node && node !== endNode) {
rangeNodes.push(node = e2pdf.wysiwyg.helper.nextNode(node));
}
node = range.startContainer;
while (node && node !== range.commonAncestorContainer) {
rangeNodes.unshift(node);
node = node.parentNode;
}
}
if (includePartiallySelectedContainers) {
node = range.commonAncestorContainer;
while (node) {
rangeNodes.push(node);
node = node.parentNode;
}
}
return rangeNodes;
},
getSelectedNode: function () {
var node, selection;
if (window.getSelection) {
selection = getSelection();
node = selection.anchorNode;
}
if (!node && document.selection) {
selection = document.selection
var range = selection.getRangeAt ? selection.getRangeAt(0) : selection.createRange();
node = range.commonAncestorContainer ? range.commonAncestorContainer :
range.parentElement ? range.parentElement() : range.item(0);
}
if (node) {
return (node.nodeName === "#text" ? node.parentNode : node);
}
},
nextNode: function (node) {
if (node.hasChildNodes()) {
return node.firstChild;
} else {
while (node && !node.nextSibling) {
node = node.parentNode;
}
if (!node) {
return null;
}
return node.nextSibling;
}
},
getSelectionHtml: function () {
var html = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var container = document.createElement("div");
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
} else if (typeof document.selection != "undefined") {
if (document.selection.type === "Text") {
html = document.selection.createRange().htmlText;
}
}
return html;
},
saveSelection: function () {
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
return sel.getRangeAt(0);
}
} else if (document.selection && document.selection.createRange) {
return document.selection.createRange();
}
return null;
},
restoreSelection: function (range) {
if (range) {
if (window.getSelection) {
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (document.selection && range.select) {
range.select();
}
}
}
}
},
//e2pdf.visual
visual: {
//e2pdf.visual.mapper
mapper: {
selected: null,
//e2pdf.visual.mapper.init
init: function (el) {
e2pdf.visual.mapper.selected = el;
var modal = jQuery('
', {'data-modal': 'visual-mapper'});
e2pdf.dialog.create(modal);
},
//e2pdf.visual.mapper.markup
markup: function () {
e2pdf.dialog.rebuild();
},
//e2pdf.visual.mapper.rebuild
rebuild: function () {
if (jQuery('#e2pdf-vm-content').length > 0) {
var vc_content = jQuery('#e2pdf-vm-content');
var vc_wrapper = jQuery('
', {'class': 'e2pdf-vm-wrapper'});
vc_content.find('input[type="text"], input[type="radio"], input[type="checkbox"], input[type="password"], input[type="url"], input[type="number"], input[type="tel"], input[type="phone"], input[type="credit_card_cvc"], input[type="email"], input[type="color_picker"], input[type="range"], input[type="file"], button[type="upload"], textarea, select').each(function () {
vc_wrapper.append(e2pdf.visual.mapper.load(jQuery(this)));
});
vc_content.append(vc_wrapper);
}
},
//e2pdf.visual.mapper.clear
clear: function () {
if (jQuery('.e2pdf-vm-wrapper').length > 0) {
jQuery('.e2pdf-vm-wrapper').remove();
}
},
load: function (el) {
var loaded = false;
jQuery('.e2pdf-vm-field').removeClass('e2pdf-hide');
if (el.is(":visible") && !el.hasClass('e2pdf-no-vm')) {
var width = el.css('width');
var height = el.css('height');
var top = el.offset().top - el.closest('#e2pdf-vm-content').offset().top;
var left = el.offset().left - el.closest('#e2pdf-vm-content').offset().left;
loaded = jQuery('
', {'href': 'javascript:void(0);', 'class': 'e2pdf-vm-element'}).css({
'width': width, 'height': height, 'top': top, 'left': left
});
var name = el.attr('name');
var type = el.attr('type');
var value = el.attr('value');
if (el.is("select")) {
type = 'select';
value = '';
el.find('option').each(function () {
value += jQuery(this).attr('value');
if (jQuery(this)[0] !== el.find('option:last-child')[0]) {
value += "\n";
}
});
}
loaded.data('name', name);
loaded.data('type', type);
loaded.data('value', value);
jQuery('.e2pdf-vm-field').addClass('e2pdf-hide');
}
return loaded;
},
apply: function (el) {
if (e2pdf.visual.mapper.selected) {
var name = el.data('name');
var value = el.data('value');
var type = el.data('type');
if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-checkbox') {
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'option', value);
} else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-radio') {
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'group', name);
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'option', value);
} else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-select') {
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'options', value);
} else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-image') {
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
} else {
e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
}
e2pdf.properties.render(e2pdf.visual.mapper.selected);
e2pdf.visual.mapper.selected = null;
}
e2pdf.dialog.close();
}
}
},
zoom: {
zoom: 1,
click: {
x: 0,
y: 0
},
apply: function (el) {
jQuery('#e2pdf-tpl').removeClass(function (index, className) {
return (className.match(/(^|\s)e2pdf-z\S+/g) || []).join(' ');
});
if (el.val() !== '100') {
jQuery('#e2pdf-tpl').addClass("e2pdf-z" + el.val());
}
e2pdf.zoom.zoom = el.val() / 100;
jQuery('#e2pdf-tpl').scrollLeft(((jQuery('.e2pdf-tpl-inner').width() * e2pdf.zoom.zoom) - jQuery('#e2pdf-tpl').width()) / 2);
}
}
};
jQuery(window).resize(function () {
e2pdf.visual.mapper.clear();
if (this.e2pdfResizeTO)
clearTimeout(this.e2pdfResizeTO);
this.e2pdfResizeTO = setTimeout(function () {
jQuery(this).trigger('e2pdfResizeEnd');
}, 500);
});
jQuery(window).bind('e2pdfResizeEnd', function () {
e2pdf.dialog.rebuild();
});
jQuery(document).ready(function () {
jQuery('a.e2pdf-link[disabled="disabled"]').live('click', function (e) {
e.stopPropagation();
e.preventDefault();
e.stopImmediatePropagation();
return false;
});
jQuery('.e2pdf-action-add').live('click', function (e) {
var actions = jQuery(this).closest('.e2pdf-actions-wrapper').find('.e2pdf-actions');
var element = jQuery(".e2pdf-element[data-element_id='" + jQuery(this).closest('form').find('input[name="element_id"]').val() + "']").first();
e2pdf.actions.add(element, actions);
jQuery(this).trigger('e2pdfResizeEnd');
});
jQuery('.e2pdf-action-condition-add').live('click', function (e) {
var action_conditions = jQuery(this).closest('.e2pdf-action');
var element = jQuery(".e2pdf-element[data-element_id='" + jQuery(this).closest('form').find('input[name="element_id"]').val() + "']").first();
e2pdf.actions.conditions.add(element, action_conditions);
jQuery(this).trigger('e2pdfResizeEnd');
});
jQuery('.e2pdf-action-delete').live('click', function (e) {
if (!confirm(e2pdfLang['Action will be removed! Are you sure want to continue?'])) {
return false;
}
var action = jQuery(this).closest('.e2pdf-action');
e2pdf.actions.delete(action);
});
jQuery('.e2pdf-action-condition-delete').live('click', function (e) {
var action = jQuery(this).closest('.e2pdf-action');
if (action.find('.e2pdf-condition').length === 1) {
alert(e2pdfLang["Last condition can't be removed"]);
return false;
}
if (!confirm(e2pdfLang['Condition will be removed! Are you sure want to continue?'])) {
return false;
}
var condition = jQuery(this).closest('.e2pdf-condition');
e2pdf.actions.conditions.delete(condition);
});
jQuery('#e2pdf-zoom').live('change', function () {
e2pdf.zoom.apply(jQuery(this));
});
jQuery('#e2pdf-extension').live('change', function () {
e2pdf.request.submitRequest('e2pdf_extension', jQuery(this));
});
jQuery('.e2pdf-action-action select, .e2pdf-action-property select').live('change', function () {
var action = jQuery(this).closest('.e2pdf-action');
e2pdf.actions.change(action);
});
jQuery('.e2pdf-tabs a').live('click', function () {
jQuery(this).closest('.e2pdf-tabs-panel').find('.tabs-panel').hide()
var tab = jQuery(this);
tab.closest('ul').find('li').removeClass('active');
tab.parent('li').addClass('active');
jQuery(document.getElementById(tab.attr('data-tab'))).show();
});
jQuery('.e2pdf-hidden-dropdown').live('click', function () {
var parent = jQuery(this).closest('.e2pdf-closed');
if (parent.hasClass('e2pdf-opened')) {
parent.removeClass('e2pdf-opened');
} else {
jQuery('.e2pdf-closed').each(function () {
jQuery(this).removeClass('e2pdf-opened');
});
parent.addClass('e2pdf-opened');
}
});
jQuery('.e2pdf-submit-form').live('click', function (e) {
e.preventDefault();
var el = jQuery(this);
e2pdf.request.submitForm(el);
});
jQuery('.e2pdf-submit-local').live('click', function () {
var el = jQuery(this);
e2pdf.request.submitLocal(el);
});
jQuery('.e2pdf-delete').live('click', function () {
var message = Object.keys(e2pdf.element.selected).length > 1 ? e2pdfLang['Elements will be removed! Are you sure want to continue?'] : e2pdfLang['Element will be removed! Are you sure want to continue?'];
if (!confirm(message)) {
e2pdf.delete('.e2pdf-context');
return false;
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.delete(selected);
}
e2pdf.element.unselect();
});
jQuery('.e2pdf-copy').live('click', function () {
e2pdf.element.unbuffer();
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.copy(selected);
}
});
jQuery('.e2pdf-hidden').live('click', function () {
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.hide(selected);
}
});
jQuery('.e2pdf-unhidden').live('click', function () {
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.show(selected);
}
});
jQuery('.e2pdf-cut').live('click', function () {
e2pdf.element.unbuffer();
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.cut(selected);
}
});
jQuery('.e2pdf-paste').live('click', function () {
e2pdf.element.paste(false);
});
jQuery('.e2pdf-pasteinplace').live('click', function () {
e2pdf.element.paste(true);
});
jQuery('.e2pdf-checkbox').live('click', function () {
return false;
});
jQuery('.e2pdf-radio').live('click', function () {
return false;
});
jQuery('.e2pdf-hide-controls').live('click', function () {
if (jQuery(this).hasClass('e2pdf-inactive')) {
jQuery('html').removeClass('e2pdf-hide-markup');
jQuery(this).removeClass('e2pdf-inactive');
} else {
jQuery('html').addClass('e2pdf-hide-markup');
jQuery(this).addClass('e2pdf-inactive');
}
});
jQuery('.e2pdf-hidden-elements').live('click', function () {
if (jQuery(this).hasClass('e2pdf-inactive')) {
jQuery('html').addClass('e2pdf-show-all-elements');
jQuery(this).removeClass('e2pdf-inactive');
} else {
jQuery('html').removeClass('e2pdf-show-all-elements');
jQuery(this).addClass('e2pdf-inactive');
}
});
jQuery('.e2pdf-add-page').live('click', function () {
if (e2pdf.pdf.settings.get('pdf')) {
alert(e2pdfLang['Adding new pages not available in "Uploaded PDF"']);
} else if (e2pdfParams['license_type'] == 'FREE') {
alert(e2pdfLang['Only 1 page allowed with "FREE" license type']);
} else {
e2pdf.pages.createPage();
}
});
jQuery('.e2pdf-create-pdf').live('click', function () {
e2pdf.createPdf(jQuery(this));
});
jQuery('.e2pdf-up-page').live('click', function () {
e2pdf.pages.movePage(jQuery(this), 'up');
});
jQuery('.e2pdf-down-page').live('click', function () {
e2pdf.pages.movePage(jQuery(this), 'down');
});
jQuery('.e2pdf-delete-page').live('click', function () {
if (e2pdf.pdf.settings.get('pdf')) {
if (!confirm(e2pdfLang['All pages will be removed! Are you sure want to continue?'])) {
return false;
}
jQuery('#e2pdf-tpl .e2pdf-page').each(function () {
var el = jQuery(this);
e2pdf.pages.deletePage(el);
});
} else {
if (!confirm(e2pdfLang['Are you sure want to remove page?'])) {
return false;
}
var el = jQuery(jQuery(this));
e2pdf.pages.deletePage(el);
}
});
jQuery('.e2pdf-delete-all-pages').live('click', function () {
if (!confirm(e2pdfLang['All pages will be removed! Are you sure want to continue?'])) {
return false;
}
jQuery('#e2pdf-tpl .e2pdf-page').each(function () {
var el = jQuery(this);
e2pdf.pages.deletePage(el);
});
});
jQuery('.e2pdf-delete-font').live('click', function () {
if (!confirm(e2pdfLang['Are you sure want to remove font?'])) {
return false;
}
var el = jQuery(jQuery(this));
e2pdf.font.delete(el);
});
jQuery('.e2pdf-modal').live('click', function () {
e2pdf.dialog.create(jQuery(this));
});
jQuery('body').live('click', function (e) {
e2pdf.delete('.e2pdf-context');
});
jQuery('#e2pdf-font').live('change', function () {
e2pdf.font.load(jQuery(this));
e2pdf.font.apply(jQuery('#e2pdf-tpl'), jQuery(this));
});
jQuery('#e2pdf-export-template').live('change', function () {
e2pdf.request.submitRequest('e2pdf_templates', jQuery(this));
});
jQuery('#e2pdf-export-dataset').live('change', function () {
var data = {};
data['template'] = jQuery('#e2pdf-export-template').val();
data['dataset'] = jQuery('#e2pdf-export-dataset').val();
e2pdf.request.submitRequest('e2pdf_dataset', jQuery(this), data);
});
jQuery('#e2pdf-font-size').live('change', function () {
e2pdf.font.size(jQuery('#e2pdf-tpl'), jQuery(this));
});
jQuery('.e2pdf-numbers').live('keydown', function (e) {
if (jQuery.inArray(e.keyCode, [46, 8, 9, 27, 13, 107, 109, 110, 189, 190]) !== -1 ||
((e.keyCode === 65 || e.keyCode === 86 || e.keyCode === 67) && (e.ctrlKey === true || e.metaKey === true)) ||
(e.shiftKey === true && e.keyCode === 187) ||
(e.keyCode >= 35 && e.keyCode <= 40)) {
if ((e.keyCode === 109 || e.keyCode === 189) && !jQuery(this).hasClass('e2pdf-number-negative')) {
e.preventDefault();
} else if ((e.keyCode === 187 || e.keyCode === 107) && !jQuery(this).hasClass('e2pdf-number-positive')) {
e.preventDefault();
} else {
return;
}
}
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
jQuery('.e2pdf-numbers').live('change', function (e) {
var value = jQuery(this).val().trim();
var prefix = '';
if (jQuery(this).hasClass('e2pdf-number-positive') && value.startsWith('+')) {
prefix = '+';
}
value = parseFloat(value);
if (isNaN(value)) {
value = 0;
}
jQuery(this).val(prefix + value);
});
jQuery('#e2pdf-font-color').live('change', function () {
e2pdf.font.fontcolor(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-color'));
});
jQuery('#e2pdf-line-height').live('change', function () {
e2pdf.font.line(jQuery('#e2pdf-tpl'), jQuery(this));
});
jQuery('.e2pdf-upload').live('click', function (e) {
e.preventDefault();
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.mediaUploader.init(selected);
}
});
jQuery('.e2pdf-visual').live('click', function (e) {
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.visual.mapper.init(selected);
}
});
jQuery('.e2pdf-apply-wysiwyg').live('click', function () {
e2pdf.wysiwyg.apply(jQuery(this));
});
jQuery('.e2pdf-apply-wysiwyg-color').live('click', function (e) {
e2pdf.static.selectionRange = e2pdf.wysiwyg.helper.saveSelection();
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
var color_panel = jQuery(this).parent().find('.wp-picker-container');
if (!color_panel.hasClass('wp-picker-active')) {
color_panel.find('.wp-color-result').click();
if (color_panel.find('.wp-color-close').length === 0) {
var close = jQuery('
', {"class": "wp-color-close", "href": "javascript:void(0);", 'onclick': "e2pdf.helper.color.close(this);"});
var width = parseFloat(jQuery(this).css('width'));
var height = parseFloat(jQuery(this).css('height'));
close.css({'width': width, "height": height, "margin-top": -height});
color_panel.append(close);
}
}
});
jQuery('#e2pdf-wysiwyg-font-color').live('change', function (e) {
e2pdf.wysiwyg.apply(jQuery(this));
});
jQuery('#e2pdf_wysiwyg_fontsize').live('change', function () {
e2pdf.wysiwyg.apply(jQuery(this));
});
jQuery('#e2pdf_wysiwyg_font').live('change', function () {
e2pdf.wysiwyg.apply(jQuery(this));
});
jQuery('#e2pdf-upload-pdf').live('change', function () {
e2pdf.request.upload('e2pdf_upload', jQuery('#e2pdf-w-upload'));
});
jQuery('#e2pdf-w-reupload').live('click', function () {
var message = "";
if (e2pdf.static.unsaved) {
message += e2pdfLang['WARNING: Template has changes after last save! Changes will be lost!'] + "\r\n";
}
message += e2pdfLang['Saved Template will be overwritten! Are you sure want to continue?'];
if (!confirm(message)) {
return false;
}
jQuery('#e2pdf-reupload-pdf').click();
});
jQuery('#e2pdf-reupload-pdf').live('change', function () {
e2pdf.request.upload('e2pdf_reupload', jQuery('#e2pdf-w-reupload'));
});
jQuery('.e2pdf-scale-field').live('change', function () {
var value = jQuery(this).val();
var fields = jQuery(this).closest('.e2pdf-el-properties');
fields.find('input[name="height"]').attr('readonly', false);
fields.find('input[name="width"]').attr('readonly', false);
var image = new Image();
image.src = fields.find('*[name="value"]').val();
image.onload = function ()
{
if (value === e2pdf.static.const.WIDTH) {
fields.find('input[name="height"]').attr('readonly', 'readonly');
} else if (value === e2pdf.static.const.HEIGHT) {
fields.find('input[name="width"]').attr('readonly', 'readonly');
}
};
});
jQuery('.e2pdf-el-properties input[name="group"]').live('click', function () {
jQuery(this).autocomplete("search", "");
});
jQuery('.e2pdf-settings-style-change').live('change', function () {
e2pdf.event.fire('after.settings.style.change');
});
jQuery('.e2pdf-settings-template-change').live('change, keyup', function () {
e2pdf.event.fire('after.settings.template.change');
});
jQuery('select[name="preset"]').live('change', function () {
if (jQuery(this).val() !== '') {
var form = jQuery(this).closest('form');
var size = e2pdfTemplateSizes[jQuery(this).val()];
form.find('input[name="width"]').val(size.width);
form.find('input[name="height"]').val(size.height);
}
});
jQuery('.e2pdf-vm-element').live('click', function () {
e2pdf.visual.mapper.apply(jQuery(this));
});
jQuery('.e2pdf-drag').live('click', function (e) {
var el = jQuery(this).closest('.e2pdf-element');
if (e.ctrlKey) {
if (el.hasClass('e2pdf-selected')) {
e2pdf.element.unselect(el);
} else {
e2pdf.element.select(el);
}
} else {
if (el.hasClass('e2pdf-selected')) {
if (Object.keys(e2pdf.element.selected).length > 1) {
e2pdf.element.unselect();
e2pdf.element.select(el);
} else {
e2pdf.element.unselect(el);
}
} else {
if (Object.keys(e2pdf.element.selected).length > 0) {
e2pdf.element.unselect();
e2pdf.element.select(el);
} else {
e2pdf.element.select(el);
}
}
}
});
jQuery('.e2pdf-activate-template').live('click', function () {
var data = {};
data['id'] = jQuery(this).attr('data-id');
e2pdf.request.submitRequest('e2pdf_activate_template', jQuery(this), data);
});
jQuery('.e2pdf-deactivate-template').live('click', function () {
var data = {};
data['id'] = jQuery(this).attr('data-id');
e2pdf.request.submitRequest('e2pdf_deactivate_template', jQuery(this), data);
});
jQuery('.e2pdf-delete-item').live('click', function () {
if (!confirm(e2pdfLang['Dataset will be removed! Are you sure want to continue?'])) {
return false;
}
var data = {};
data['template'] = jQuery(this).attr('template');
data['dataset'] = jQuery(this).attr('dataset');
e2pdf.request.submitRequest('e2pdf_delete_item', jQuery(this), data);
});
jQuery('.e2pdf-delete-items').live('click', function () {
if (!confirm(e2pdfLang['All datasets will be removed! Are you sure want to continue?'])) {
return false;
}
var data = {};
data['template'] = jQuery(this).attr('template');
e2pdf.request.submitRequest('e2pdf_delete_items', jQuery(this), data);
});
jQuery('.e2pdf-copy-field').live('click', function () {
jQuery(this).select();
});
jQuery('.e2pdf-autocomplete-cl').live('click focus', function (e) {
jQuery(this).autocomplete("search", '');
});
if (jQuery('.e2pdf-form-builder > input[name="sub_action"]').length > 0) {
e2pdf.pdf.settings.set('sub_action', jQuery('.e2pdf-form-builder > input[name="sub_action"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="ID"]').length > 0) {
e2pdf.pdf.settings.set('ID', jQuery('.e2pdf-form-builder > input[name="ID"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="width"]').length > 0) {
e2pdf.pdf.settings.set('width', jQuery('.e2pdf-form-builder > input[name="width"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="height"]').length > 0) {
e2pdf.pdf.settings.set('height', jQuery('.e2pdf-form-builder > input[name="height"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="extension"]').length > 0) {
e2pdf.pdf.settings.set('extension', jQuery('.e2pdf-form-builder > input[name="extension"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="item"]').length > 0) {
e2pdf.pdf.settings.set('item', jQuery('.e2pdf-form-builder > input[name="item"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="item"]').length > 0) {
e2pdf.pdf.settings.set('pdf', jQuery('.e2pdf-form-builder > input[name="pdf"]').val());
}
if (jQuery('.e2pdf-form-builder > input[name="format"]').length > 0) {
e2pdf.pdf.settings.set('format', jQuery('.e2pdf-form-builder > input[name="format"]').val());
}
jQuery('#e2pdf-zoom').trigger('change');
if (jQuery('body').hasClass('toplevel_page_e2pdf')) {
if (e2pdf.url.get('template_id')) {
e2pdf.static.autoloadExport = true;
if (jQuery("#e2pdf-export-template option[value=" + e2pdf.url.get('template_id') + "]").length == 0) {
jQuery('#e2pdf-export-template').val('0').change();
} else {
jQuery('#e2pdf-export-template').val(e2pdf.url.get('template_id')).change();
}
}
}
if (jQuery('body').hasClass('e2pdf_page_e2pdf-templates')) {
jQuery('.e2pdf-color-picker-load').each(function () {
jQuery(this).wpColorPicker(
{
defaultColor: function () {
var el = jQuery(event.target).parent().find('.e2pdf-color-picker');
if (el.attr('data-default')) {
return el.attr('data-default');
} else {
return;
}
},
change: function (event, ui) {
jQuery(this).val(ui.color.toString()).change();
}
}
).removeClass('e2pdf-color-picker-load');
});
jQuery(window).bind("beforeunload", function (e) {
if (e2pdf.static.unsaved) {
var confirmationMessage = "\o/";
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}
});
jQuery(document).bind("mousedown", function (e) {
if (jQuery(e.target).hasClass("e2pdf-fade")) {
e2pdf.delete('.e2pdf-fade');
e2pdf.delete('.e2pdf-properties-window');
}
});
if (jQuery('#e2pdf_build_form').length > 0) {
postboxes.add_postbox_toggles(pagenow);
}
if (typeof (jQuery.ui) != 'undefined' && typeof (jQuery.ui.draggable) != 'undefined'
&& typeof (jQuery.ui.droppable) != 'undefined'
&& jQuery('.e2pdf-tpl').length > 0) {
// jQuery UI scale bug fix
jQuery.ui.ddmanager.prepareOffsets = function (t, event) {
var i, j,
m = jQuery.ui.ddmanager.droppables[ t.options.scope ] || [],
type = event ? event.type : null,
list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack();
droppablesLoop: for (i = 0; i < m.length; i++) {
if (m[ i ].options.disabled || (t && !m[ i ].accept.call(m[ i ].element[ 0 ], (t.currentItem || t.element)))) {
continue;
}
for (j = 0; j < list.length; j++) {
if (list[ j ] === m[ i ].element[ 0 ]) {
m[ i ].proportions().height = 0;
continue droppablesLoop;
}
}
m[ i ].visible = m[ i ].element.css("display") !== "none";
if (!m[ i ].visible) {
continue;
}
if (type === "mousedown") {
m[ i ]._activate.call(m[ i ], event);
}
m[ i ].offset = m[ i ].element.offset();
m[ i ].proportions({width: m[ i ].element[ 0 ].offsetWidth * e2pdf.zoom.zoom, height: m[ i ].element[ 0 ].offsetHeight * e2pdf.zoom.zoom});
}
}
jQuery(".e2pdf-load-el").each(function () {
var element = jQuery(this);
var type = element.attr('data-type');
var page = element.closest('.e2pdf-page');
var properties = JSON.parse(element.find('.e2pdf-data-properties').text());
var actions = JSON.parse(element.find('.e2pdf-data-actions').text());
properties['width'] = element.attr('data-width');
properties['height'] = element.attr('data-height');
properties['top'] = element.attr('data-top');
properties['left'] = element.attr('data-left');
if (type == 'e2pdf-html') {
properties['value'] = element.find('.e2pdf-data-value').html();
} else {
properties['value'] = element.find('.e2pdf-data-value').text();
}
//changed
var el = e2pdf.element.create(type, page, properties, actions, false, true, element.attr('data-element_id'));
jQuery(this).replaceWith(el);
e2pdf.properties.render(el);
});
jQuery(".e2pdf-load-page").each(function () {
var page = jQuery(this);
var actions = JSON.parse(page.find('.e2pdf-data-actions').text());
var properties = JSON.parse(page.find('.e2pdf-data-properties').text());
page.find('.e2pdf-data-properties').remove();
page.find('.e2pdf-data-actions').remove();
page.removeClass('e2pdf-load-page');
e2pdf.pages.createPage(page, properties, actions);
});
jQuery(".e2pdf-be").draggable({
helper: function () {
var element = jQuery(this).clone();
var type = element.attr('data-type');
var page = element.closest('.e2pdf-page')
//changed
var el = e2pdf.element.create(type, page, false, false, true);
e2pdf.font.apply(el, jQuery('#e2pdf-font'));
e2pdf.font.size(el, jQuery('#e2pdf-font-size'));
e2pdf.font.line(el, jQuery('#e2pdf-line-height'));
e2pdf.font.fontcolor(el, jQuery('#e2pdf-font-color'));
e2pdf.properties.render(el);
el.css('z-index', 1);
if (e2pdf.zoom.zoom != 1) {
el.css('transform', 'scale(' + e2pdf.zoom.zoom + ')');
el.css('transform-origin', '0 0');
}
return el;
},
start: function (ev, ui) {
e2pdf.static.guide.x = ev.originalEvent.pageX - jQuery(this).offset().left;
e2pdf.static.guide.y = ev.originalEvent.pageY - jQuery(this).offset().top;
e2pdf.element.unselect();
},
stop: function (ev, ui) {
jQuery(".e2pdf-guide-v, .e2pdf-guide-h").hide();
},
drag: function (ev, ui) {
if (e2pdf.static.drag.page !== null) {
var pos = {left: ev.originalEvent.pageX - e2pdf.static.guide.x, top: ev.originalEvent.pageY - e2pdf.static.guide.y};
var guides = {top: {dist: e2pdf.static.guide.distance + 1}, left: {dist: e2pdf.static.guide.distance + 1}};
var w = parseFloat(jQuery(ui.helper).css('width')) * e2pdf.zoom.zoom;
var h = parseFloat(jQuery(ui.helper).css('height')) * e2pdf.zoom.zoom;
var el_guides = e2pdf.guide.calc(null, pos, w, h, true);
jQuery.each(e2pdf.static.guide.guides, function (i, guide) {
jQuery.each(el_guides, function (i, elemGuide) {
if (guide.type == elemGuide.type) {
var prop = guide.type == "h" ? "top" : "left";
var d = Math.abs(elemGuide[prop] - guide[prop]);
if (d < guides[prop].dist) {
guides[prop].dist = d;
guides[prop].offset = elemGuide[prop] - pos[prop];
guides[prop].guide = guide;
}
}
});
});
if (guides.top.dist <= e2pdf.static.guide.distance) {
e2pdf.static.drag.page.find('.e2pdf-guide-h').css("top", guides.top.guide.top / e2pdf.zoom.zoom - e2pdf.static.drag.page.offset().top / e2pdf.zoom.zoom - 1).show();
var snap_top = guides.top.guide.top - guides.top.offset - jQuery(this).offset().top;
ui.position.top = snap_top;
} else {
jQuery(".e2pdf-guide-h").hide();
}
if (guides.left.dist <= e2pdf.static.guide.distance) {
e2pdf.static.drag.page.find('.e2pdf-guide-v').css("left", guides.left.guide.left / e2pdf.zoom.zoom - e2pdf.static.drag.page.offset().left / e2pdf.zoom.zoom - 1).show();
var snap_left = guides.left.guide.left - guides.left.offset - jQuery(this).offset().left + 5;
ui.position.left = snap_left;
} else {
jQuery(".e2pdf-guide-v").hide();
}
}
}
});
e2pdf.welcomeScreen();
}
e2pdf.font.load(jQuery('#e2pdf-font'));
jQuery('.e2pdf-load-font').each(function () {
e2pdf.font.load(jQuery(this));
jQuery(this).remove();
});
e2pdf.font.apply(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font'));
e2pdf.font.size(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-size'));
e2pdf.font.line(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-line-height'));
e2pdf.font.fontcolor(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-color'));
}
jQuery(document).keydown(function (e) {
if (Object.keys(e2pdf.element.selected).length > 0 && jQuery.inArray(e.which, [37, 38, 39, 40, 46]) !== -1) {
e.preventDefault();
switch (e.which) {
case 37:
//left
var diff = 1;
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (parseFloat(selected.css('left')) > 0) {
if (parseFloat(selected.css('left')) - 1 < 0) {
diff = Math.min(diff, selected.css('left'));
}
} else {
diff = Math.min(diff, 0);
}
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
selected.finish().animate({
left: "-=" + diff
}, 0);
e2pdf.properties.set(selected, 'left', parseFloat(selected.css('left').replace('px', '')));
}
break;
case 38:
//top
var diff = 1;
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (parseFloat(selected.css('top')) > 0) {
if (parseFloat(selected.css('top')) - 1 < 0) {
diff = Math.min(diff, selected.css('top'));
}
} else {
diff = Math.min(diff, 0);
}
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
selected.finish().animate({
top: "-=" + diff
}, 0);
e2pdf.properties.set(selected, 'top', parseFloat(selected.css('top').replace('px', '')));
}
break;
case 39:
//right
var diff = 1;
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (parseFloat(selected.css('right')) > 0) {
if (parseFloat(selected.css('right')) - 1 < 0) {
diff = Math.min(diff, selected.css('right'));
}
} else {
diff = Math.min(diff, 0);
}
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
selected.finish().animate({
left: "+=" + diff
}, 0);
e2pdf.properties.set(selected, 'left', parseFloat(selected.css('left').replace('px', '')));
}
break;
case 40:
//down
var diff = 1;
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
if (parseFloat(selected.css('bottom')) > 0) {
if (parseFloat(selected.css('bottom')) - 1 < 0) {
diff = Math.min(diff, selected.css('bottom'));
}
} else {
diff = Math.min(diff, 0);
}
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
selected.finish().animate({
top: "+=" + diff
}, 0);
e2pdf.properties.set(selected, 'top', parseFloat(selected.css('top').replace('px', '')));
}
break;
case 46:
//delete
var message = Object.keys(e2pdf.element.selected).length > 1 ? e2pdfLang['Elements will be removed! Are you sure want to continue?'] : e2pdfLang['Element will be removed! Are you sure want to continue?'];
if (!confirm(message)) {
e2pdf.delete('.e2pdf-context');
return false;
}
for (var key in e2pdf.element.selected) {
var selected = e2pdf.element.selected[key];
e2pdf.element.delete(selected);
}
e2pdf.element.unselect();
break;
}
}
});
jQuery(document).live('click', function (e) {
if (!jQuery(e.target).hasClass('e2pdf-drag') &&
jQuery(e.target).closest('.e2pdf-context-menu').length == 0 &&
jQuery(e.target).closest('.e2pdf-element').length == 0
) {
e2pdf.element.unselect();
}
if (jQuery(e.target).closest('.e2pdf-closed').length == 0) {
jQuery('.e2pdf-closed').each(function () {
jQuery(this).removeClass('e2pdf-opened');
});
}
});
jQuery('.e2pdf-onload .disabled').removeClass('disabled');
jQuery('.e2pdf-onload').removeClass('e2pdf-onload');
});