{"version":3,"file":"paymentbutton.js","mappings":"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","sources":["webpack://askell_subscriptions/./paymentbutton/paymentbutton.js"],"sourcesContent":["import \"./paymentbutton.scss\"\n\nconst ready = (fn) => {\n if (document.readyState != 'loading'){\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n}\n\nconst baseUrl = ASKELL_BASE_URL;\nconst cdnBaseUrl = ASKELL_CDN_BASE_URL;\nconst styleUrl = cdnBaseUrl + 'js/dist/paymentbutton.css';\n\nconst appendStyleSheet = () => {\n var styleElement = document.createElement(\"link\");\n styleElement.setAttribute(\"rel\", \"stylesheet\");\n styleElement.setAttribute(\"href\", styleUrl);\n document.head.appendChild(styleElement);\n}\n\nconst createModal = (brand=true) => {\n var modal = document.createElement(\"div\");\n modal.setAttribute(\"id\", \"askell-modal\");\n var classes = \"askell-modal\"\n if (brand) {\n classes += \" brand\"\n }\n modal.setAttribute(\"class\", classes);\n return modal;\n}\n\n\nconst createModalFooter = () => {\n var modalFooter = document.createElement(\"div\");\n modalFooter.setAttribute(\"id\", \"brand-footer\")\n modalFooter.setAttribute(\"class\", \"brand-footer\")\n modalFooter.innerHTML = '
';\n return modalFooter;\n}\n\nconst createModalOverlay = () => {\n var modalOverlay = document.createElement(\"div\");\n modalOverlay.setAttribute(\"id\", \"askell-modal-overlay\");\n modalOverlay.setAttribute(\"class\", \"askell-modal-overlay\");\n return modalOverlay;\n}\n\nconst createModalCloseButton = () => {\n var button = document.createElement(\"div\");\n var span = document.createElement(\"span\");\n span.setAttribute(\"class\", \"sr-only\");\n span.textContent = \"Loka\"\n button.appendChild(span)\n button.setAttribute(\"class\", \"askell-close-button\")\n button.addEventListener(\"click\", closeModal)\n return button\n}\n\n\nconst createIframe = (planId, reference=null, amount=null, redirect=null) => {\n var url = `${baseUrl}subscribe-button/${planId}/?`;\n var urlParams = {}\n if(amount) {\n urlParams['amount'] = amount\n }\n if(reference) {\n urlParams['reference'] = reference\n }\n if(redirect) {\n urlParams['redirect'] = btoa(redirect)\n }\n for (const [key, value] of Object.entries(urlParams)) {\n url += `&${key}=${value}`\n }\n var div = document.createElement(\"div\");\n div.setAttribute(\"class\", \"askell-iframe-container\")\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"id\", \"askell-iframe\");\n iframe.setAttribute(\"src\", url);\n \n iframe.setAttribute(\"onLoad\", \"this.contentWindow.focus();this.style.visibility='visible';\");\n iframe.style.visibility = \"hidden\";\n div.appendChild(iframe)\n return div\n}\n\nconst openPaymentModal = (configuration, reference, amount, redirect) => {\n var planId = configuration.plan\n var accountId = configuration.account\n var brand = configuration.brand\n var modal = createModal(brand)\n var brandingDiv = document.createElement(\"div\");\n brandingDiv.setAttribute(\"class\", \"askell-branding\")\n document.body.appendChild(modal)\n modal.appendChild(createModalCloseButton())\n modal.appendChild(createIframe(planId, reference, amount, redirect))\n modal.appendChild(brandingDiv)\n \n modal.appendChild(createModalFooter())\n document.body.appendChild(createModalOverlay())\n}\n\nconst closeModal = () => {\n var modal = document.getElementById(\"askell-modal\")\n var modalOverlay = document.getElementById(\"askell-modal-overlay\")\n document.body.removeChild(modal)\n document.body.removeChild(modalOverlay)\n var iframe = document.getElementById(\"askell-iframe\")\n}\n\n\nready(() => {\n if (window.askellPaymentButtons) { return false;}\n appendStyleSheet();\n let buttons = document.querySelectorAll('.askell-payment-button');\n console.log(buttons)\n for(let button of buttons) {\n button.addEventListener(\"click\", () => {\n let key = button.getAttribute(\"data-key\");\n let reference = button.getAttribute(\"data-reference\");\n let amount = button.getAttribute(\"data-amount\");\n let redirect = button.getAttribute(\"data-redirect-url\");\n let configuration = JSON.parse(atob(key))\n openPaymentModal(configuration, reference, amount, redirect)\n })\n }\n window.askellPaymentButtons = true;\n\n window.addEventListener(\"message\", function(event) {\n if (event.data === \"askell-close-modal\") {\n closeModal()\n } else if (event.data && event.data.event && event.data.event === \"askell-sale-complete\") {\n window.location.href = event.data.redirect\n }\n }, false);\n})\n"],"names":["fn","closeModal","modal","document","getElementById","modalOverlay","body","removeChild","window","askellPaymentButtons","styleElement","createElement","setAttribute","cdnBaseUrl","head","appendChild","buttons","querySelectorAll","console","log","_step","_iterator","_createForOfIteratorHelper","_loop","button","value","addEventListener","key","getAttribute","reference","amount","redirect","configuration","span","modalFooter","planId","plan","account","brand","arguments","length","undefined","classes","createModal","brandingDiv","textContent","url","concat","ASKELL_BASE_URL","urlParams","btoa","_i","_Object$entries","Object","entries","_Object$entries$_i","div","iframe","style","visibility","createIframe","innerHTML","openPaymentModal","JSON","parse","atob","s","n","done","err","e","f","event","data","location","href","readyState"],"sourceRoot":""}