squarelink
Version:
Squarelink's Web3 library
59 lines • 2.75 kB
JavaScript
;
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