tfcconnection-zola/static/js/cljs-runtime/goog.window.window.js

131 lines
4.6 KiB
JavaScript

goog.provide("goog.window");
goog.require("goog.dom");
goog.require("goog.dom.TagName");
goog.require("goog.dom.safe");
goog.require("goog.html.SafeUrl");
goog.require("goog.html.uncheckedconversions");
goog.require("goog.labs.userAgent.platform");
goog.require("goog.string");
goog.require("goog.string.Const");
goog.require("goog.userAgent");
goog.requireType("goog.string.TypedString");
goog.window.DEFAULT_POPUP_HEIGHT = 500;
goog.window.DEFAULT_POPUP_WIDTH = 690;
goog.window.DEFAULT_POPUP_TARGET = "google_popup";
goog.window.createFakeWindow_ = function() {
return {};
};
goog.window.open = function(linkRef, opt_options, opt_parentWin) {
if (!opt_options) {
opt_options = {};
}
var parentWin = opt_parentWin || window;
var safeLinkRef;
if (linkRef instanceof goog.html.SafeUrl) {
safeLinkRef = linkRef;
} else {
var url = typeof linkRef.href != "undefined" ? linkRef.href : String(linkRef);
safeLinkRef = goog.html.SafeUrl.sanitize(url);
}
const browserSupportsCoop = self.crossOriginIsolated !== undefined;
let referrerPolicy = "strict-origin-when-cross-origin";
if (window.Request) {
referrerPolicy = (new Request("/")).referrerPolicy;
}
const pageSetsUnsafeReferrerPolicy = referrerPolicy === "unsafe-url";
let noReferrerOption = opt_options["noreferrer"];
if (browserSupportsCoop && noReferrerOption) {
if (pageSetsUnsafeReferrerPolicy) {
throw new Error("Cannot use the noreferrer option on a page that sets a referrer-policy of `unsafe-url` in modern browsers!");
}
noReferrerOption = false;
}
var target = opt_options.target || linkRef.target;
var sb = [];
for (var option in opt_options) {
switch(option) {
case "width":
case "height":
case "top":
case "left":
sb.push(option + "\x3d" + opt_options[option]);
break;
case "target":
case "noopener":
case "noreferrer":
break;
default:
sb.push(option + "\x3d" + (opt_options[option] ? 1 : 0));
}
}
var optionString = sb.join(",");
var newWin;
if (goog.labs.userAgent.platform.isIos() && parentWin.navigator && parentWin.navigator["standalone"] && target && target != "_self") {
var a = goog.dom.createElement(goog.dom.TagName.A);
goog.dom.safe.setAnchorHref(a, safeLinkRef);
a.target = target;
if (noReferrerOption) {
a.rel = "noreferrer";
}
var click = document.createEvent("MouseEvent");
click.initMouseEvent("click", true, true, parentWin, 1);
a.dispatchEvent(click);
newWin = goog.window.createFakeWindow_();
} else if (noReferrerOption) {
newWin = goog.dom.safe.openInWindow("", parentWin, target, optionString);
var sanitizedLinkRef = goog.html.SafeUrl.unwrap(safeLinkRef);
if (newWin) {
if (goog.userAgent.EDGE_OR_IE) {
if (goog.string.contains(sanitizedLinkRef, ";")) {
sanitizedLinkRef = "'" + sanitizedLinkRef.replace(/'/g, "%27") + "'";
}
}
newWin.opener = null;
if (sanitizedLinkRef === "") {
sanitizedLinkRef = "javascript:''";
}
var safeHtml = goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("b/12014412, meta tag with sanitized URL"), '\x3cmeta name\x3d"referrer" content\x3d"no-referrer"\x3e' + '\x3cmeta http-equiv\x3d"refresh" content\x3d"0; url\x3d' + goog.string.htmlEscape(sanitizedLinkRef) + '"\x3e');
var newDoc = newWin.document;
if (newDoc && newDoc.write) {
goog.dom.safe.documentWrite(newDoc, safeHtml);
newDoc.close();
}
}
} else {
newWin = goog.dom.safe.openInWindow(safeLinkRef, parentWin, target, optionString);
if (newWin && opt_options["noopener"]) {
newWin.opener = null;
}
if (newWin && opt_options["noreferrer"]) {
newWin.opener = null;
}
}
return newWin;
};
goog.window.openBlank = function(opt_message, opt_options, opt_parentWin) {
const win = goog.window.open("", opt_options, opt_parentWin);
if (win && opt_message) {
const body = win.document.body;
if (body) {
body.textContent = opt_message;
}
}
return win;
};
goog.window.popup = function(linkRef, opt_options) {
if (!opt_options) {
opt_options = {};
}
opt_options["target"] = opt_options["target"] || linkRef["target"] || goog.window.DEFAULT_POPUP_TARGET;
opt_options["width"] = opt_options["width"] || goog.window.DEFAULT_POPUP_WIDTH;
opt_options["height"] = opt_options["height"] || goog.window.DEFAULT_POPUP_HEIGHT;
var newWin = goog.window.open(linkRef, opt_options);
if (!newWin) {
return true;
}
newWin.focus();
return false;
};
//# sourceMappingURL=goog.window.window.js.map