'use strict';
let styleSection = 'style',
contentSection = 'content',
viWecEditorArea = '#viwec-email-editor-content',
viWecChange = true,
viWecFontWeightOptions = [
{id: 300, text: 300},
{id: 400, text: 400},
{id: 500, text: 500},
{id: 600, text: 600},
{id: 700, text: 700},
{id: 800, text: 800},
{id: 900, text: 900}
],
viWecAlignmentOptions = [
{value: "left", title: "Left", icon: "dashicons dashicons-editor-alignleft", checked: true,},
{value: "center", title: "Center", icon: "dashicons dashicons-editor-aligncenter", checked: false,},
{value: "right", title: "Right", icon: "dashicons dashicons-editor-alignright", checked: false,}
],
viWecFontFamilyOptions = [
{id: "Roboto, RobotoDraft, Helvetica, Arial, sans-serif", text: 'Roboto'},
{id: "'andale mono', monospace", text: 'Andale Mono'},
{id: 'arial, helvetica, sans-serif', text: 'Arial'},
{id: "'arial black', sans-serif", text: 'Arial Black'},
{id: "'book antiqua', palatino, serif", text: 'Book Antiqua'},
{id: "'comic sans ms', sans-serif", text: 'Comic Sans MS'},
{id: "'courier new', courier, monospace", text: 'Courier New'},
{id: 'georgia, palatino, serif', text: 'Georgia'},
{id: 'helvetica, arial, sans-serif', text: 'Helvetica'},
{id: 'impact, sans-serif', text: 'Impact'},
{id: 'symbol', text: 'Symbol'},
{id: 'tahoma, arial, helvetica, sans-serif', text: 'Tahoma'},
{id: 'terminal, monaco, monospace', text: 'Terminal'},
{id: "'times new roman', times, serif", text: 'Times New Roman'},
{id: "'trebuchet ms', geneva, sans-serif", text: 'Trebuchet MS'},
{id: 'verdana, geneva, sans-serif', text: 'Verdana'},
{id: 'webdings', text: 'Webdings'},
{id: "wingdings, 'zapf dingbats'", text: 'Wingdings'},
],
viWecMapObj = viWecParams.shortcode_for_replace;
let viWecShortcodeList = viWecParams.shortcode.map((item) => {
return {text: item, value: item};
});
if (viWecParams.sc_3rd_party_for_text_editor) {
for (let sc in viWecParams.sc_3rd_party_for_text_editor) {
viWecShortcodeList.push(viWecParams.sc_3rd_party_for_text_editor[sc]);
}
}
let viWecShortcodeListValue = '';
if (viWecParams.shortcode) {
for (let sc of viWecParams.shortcode) {
viWecShortcodeListValue += '
' + sc + ''
}
}
if (viWecParams.sc_3rd_party) {
for (let sc of viWecParams.sc_3rd_party) {
viWecShortcodeListValue += '' + sc + ''
}
}
if (ViWec === undefined) {
var ViWec = {};
}
(function () {
var cache = {};
window.viWecTmpl = function viWecTmpl(str, data) {
var fn = /^[-a-zA-Z0-9]+$/.test(str) ? cache[str] = cache[str] || viWecTmpl(document.getElementById(str).innerHTML) :
new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};" + "with(obj){p.push('" +
str.replace(/[\r\t\n]/g, " ")
.split("{%").join("\t")
.replace(/((^|%})[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%}/g, "',$1,'")
.split("\t").join("');")
.split("%}").join("p.push('")
.split("\r").join("\\'")
+ "');}return p.join('');");
// Provide some basic currying to the user
return data ? fn(data) : fn;
};
})();
jQuery(document).ready(function ($) {
window.viWecNoticeBox = (text, color, time = 3000) => {
color = color || 'white';
let box = $('#viwec-notice-box');
box.text(text).css({'color': color, 'bottom': 0});
setTimeout(function () {
box.css({'bottom': '-50px'});
}, time);
};
$.fn.handleRow = function () {
if (this.find('.viwec-layout-handle-outer').length === 0) {
this.append(viWecTmpl('viwec-input-handle-outer', {}));
}
this.on('click', '.viwec-delete-row-btn', () => {
this.remove();
ViWec.Builder.clearTab();
ViWec.Builder.activeTab('components');
});
this.on('click', '.viwec-duplicate-row-btn', () => {
let clone = this.clone();
clone.find('.viwec-column-sortable').columnSortAble();
clone.handleRow().handleColumn();
this.after(clone);
});
this.on('click', '.viwec-edit-outer-row-btn', () => {
ViWec.Builder.removeFocus();
this.addClass('viwec-block-focus');
ViWec.Builder.selectedEl = this.find('.viwec-layout-row');
ViWec.Builder.loadLayoutControl();
});
this.on('click', '.viwec-copy-row-btn', function () {
let row = $(this).closest('.viwec-block');
row = row.prop('outerHTML');
localStorage.setItem('viwecCopyRow', row);
viWecNoticeBox('Copied');
});
this.on('click', '.viwec-paste-row-btn', function () {
let row = localStorage.getItem('viwecCopyRow');
if (row) {
row = $(row);
row.find('.viwec-column-sortable').columnSortAble();
row.handleRow().handleColumn();
$(this).closest('.viwec-block').after(row);
}
});
return this;
};
$.fn.handleElement = function () {
this.append(`
`);
};
$.fn.columnSortAble = function () {
$(this).sortable({
cursor: 'move',
cursorAt: {left: 40, top: 18},
placeholder: 'viwec-placeholder',
connectWith: ".viwec-column-sortable",
thisColumn: '',
accept: '.viwec-content-draggable',
start: function (ev, ui) {
// ui.placeholder.height(30);
ui.helper.addClass('viwec-is-dragging');
this.thisColumn = ui.helper.closest('.viwec-column');
},
stop: function (ev, ui) {
let style = ui.item.get(0).style;
style.position = style.top = style.left = style.right = style.bottom = style.height = style.width = '';
ui.item.removeClass('viwec-is-dragging');
if (ui.item.offsetParent().find('.viwec-element').length) {
ui.item.offsetParent().removeClass('viwec-column-placeholder');
}
if (!(this.thisColumn.find('.viwec-element').length)) {
this.thisColumn.addClass('viwec-column-placeholder');
}
ui.item.click();
viWecChange = true;
}
});
};
$.fn.handleColumn = function () {
this.on('click', (e) => {
if (this.hasClass('viwec-column-placeholder') || this.find('.viwec-column-placeholder').length) {
ViWec.Builder.removeFocus();
ViWec.Builder.selectedEl = this.find('.viwec-column-sortable').addClass('viwec-block-focus');
ViWec.Builder.loadLayoutControl('editColumn');
}
});
this.on('click', '.viwec-column-edit', () => {
ViWec.Builder.removeFocus();
ViWec.Builder.selectedEl = this.find('.viwec-column-sortable').addClass('viwec-block-focus');
ViWec.Builder.loadLayoutControl('editColumn');
});
this.on('click', '.viwec-column-paste', function () {
let item = localStorage.getItem('viwecCopy');
if (item) {
item = $(item);
$(this).closest('.viwec-column').find('.viwec-column-sortable').append(item);
}
});
return this;
};
ViWec.viWecPreventXSS = (text) => {
if (!viWecParams?.DISALLOW_UNFILTERED_HTML){
return text;
}
let $reg, match;
//removing