UNPKG

squarelink

Version:
59 lines 2.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var iframe_1 = require("./iframe"); var styles_1 = require("./styles"); var POPUP_PARAMS = "scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=375,height=350,left=-500,top=150"; var getPopup = function (_a) { var url = _a.url, params = _a.params; /* INITIALIZE HEADER STYLES */ var style = document.createElement('style'); style.innerHTML = styles_1.default; var head = document.head || document.getElementsByTagName('head')[0]; head.appendChild(style); /* INITIALIZE POPUP DIALOG */ var popup = window.open('', '_blank', POPUP_PARAMS); if (!popup || popup.closed || typeof popup.closed == 'undefined') { try { popup.close(); } catch (err) { } return Promise.resolve({ iframe: new iframe_1.default(url, params) }); } return _loadPopup({ url: url, popup: popup, params: params }); }; var _loadPopup = function (_a) { var url = _a.url, popup = _a.popup, params = _a.params; return new Promise(function (resolve, reject) { popup.location.href = url; var result = false; window.addEventListener('message', function (e) { if (result) return; var _a = e.data, origin = _a.origin, type = _a.type; if (origin === 'squarelink' && type === 'onload') { result = true; popup.postMessage({ origin: 'squarelink-web3-sdk', params: params }, '*'); popup.focus(); _addPageLoader(popup); resolve({ popup: popup }); window.removeEventListener('message', function () { }); } }, false); }); }; var _addPageLoader = function (popup) { var container = document.createElement('div'); container.id = "squarelink-preloader-container"; container.style = "\n position: fixed;\n height: 100%;\n width: 100%;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 2147483647;\n background: rgba(0,0,0,0.5);\n "; /* INITIALIZE PRELOADER */ var preloader = "<div class=\"squarelink-preloader\" id=\"squarelink-preloader\"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div>"; /* INITIALIZE CLOSE BUTTON */ var closeButton = '<div class="squarelink-close" id="squarelink-close-button"></div>'; container.innerHTML = closeButton + preloader; document.body.appendChild(container); document.getElementById('squarelink-close-button').addEventListener('click', function () { popup.close(); }); }; exports.default = getPopup; //# sourceMappingURL=popup.js.map