$(function () { inputChanges(); // Clipboard Copy new Clipboard('#copyCode', { text: function (trigger) { $(".copyLabelPopup").show().delay(1000).fadeOut(500); return inputChanges(); } }); }); function esc(input) { return ('' + input) /* Forces the conversion to string. */ .replace(/&/g, '&') /* This MUST be the 1st replacement. */ .replace(/'/g, ''') /* The 4 other predefined entities, required. */ .replace(/"/g, '"') .replace(//g, '>') /* You may add other replacements here for HTML only (but it's not necessary). Or for XML, only if the named entities are defined in its DTD. */ ; } Vue.use(VeeValidate); var dictionary = { en: { attributes: { price: 'Price', checkoutDesc: 'Checkout Description', orderId: 'Order Id', serverIpn: 'Server IPN', notifyEmail: 'Send Email Notifications', browserRedirect: 'Browser Redirect', payButtonImageUrl: "Pay Button Image Url" } } }; VeeValidate.Validator.localize(dictionary); function getStyles (styles) { return document.getElementById(styles).innerHTML.trim().replace(/\s{2}/g, '') + '\n' } function getScripts(srvModel) { return ""+ ""; } function inputChanges(event, buttonSize) { if (buttonSize !== null && buttonSize !== undefined) { srvModel.buttonSize = buttonSize; } var isFixedAmount = srvModel.buttonType == 0 var isCustomAmount = srvModel.buttonType == 1 var isSlider = srvModel.buttonType == 2 var width = "209px"; var height = "57px"; var widthInput = "3em"; if (srvModel.buttonSize === 0) { width = "146px"; widthInput = "2em"; height = "40px"; } else if (srvModel.buttonSize === 1) { width = "168px"; height = "46px"; } else if (srvModel.buttonSize === 2) { width = "209px"; height = "57px"; } var actionUrl = "api/v1/invoices"; var priceInputName = "price"; var app = srvModel.appIdEndpoint? srvModel.apps.find(value => value.id === srvModel.appIdEndpoint ): null; var allowCurrencySelection = true; if (app) { if (app.appType.toLowerCase() == "pointofsale") { actionUrl = "apps/" + app.id + "/pos"; } else if (app.appType.toLowerCase() == "crowdfund") { actionUrl = "apps/" + app.id + "/crowdfund"; } else { actionUrl = "api/v1/invoices"; app = null; } if (actionUrl != "api/v1/invoices") { priceInputName = "amount"; allowCurrencySelection = false; srvModel.useModal = false; } } var html = //Scripts (srvModel.useModal? getScripts(srvModel) :"") + // Styles getStyles('template-paybutton-styles') + (isSlider ? getStyles('template-slider-styles') : '') + // Form '
'; $("#mainCode").text(html).html(); $("#preview").html(html); var form = document.querySelector("#preview form"); var url = new URL(form.getAttribute("action")); var formData = new FormData(form); formData.forEach((value, key) => { if(key !== "jsonResponse"){ url.searchParams.append(key, value); } }); url = url.href; $("#preview-link").append(`${url}`) $('pre code').each(function (i, block) { hljs.highlightBlock(block); }); return html; } function addInput(name, value) { return ' \n'; } function addPlusMinusButton(type) { return ' \n'; } function addInputPrice(name, price, widthInput, customFn, type, min, max, step) { return ' \n'; } function addSelectCurrency(currency) { return ' \n' } function addSlider(price, min, max, step, width) { return ' \n'; }