Initial Commit
This commit is contained in:
143
assets/js/template-previewer.js
Normal file
143
assets/js/template-previewer.js
Normal file
@ -0,0 +1,143 @@
|
||||
(() => {
|
||||
"use strict";
|
||||
const CreateCookie = (name, value, days) => {
|
||||
let expires;
|
||||
if (days) {
|
||||
const date = /* @__PURE__ */ new Date();
|
||||
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1e3);
|
||||
expires = "; expires=" + date.toUTCString();
|
||||
} else {
|
||||
expires = "";
|
||||
}
|
||||
document.cookie = name + "=" + value + expires + "; path=/";
|
||||
};
|
||||
const ReadCookie = (name) => {
|
||||
const nameEQ = name + "=";
|
||||
const ca = document.cookie.split(";");
|
||||
for (let i = 0; i < ca.length; i++) {
|
||||
let c = ca[i];
|
||||
while (c.charAt(0) === " ") {
|
||||
c = c.substring(1, c.length);
|
||||
}
|
||||
if (c.indexOf(nameEQ) === 0) {
|
||||
return c.substring(nameEQ.length, c.length);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
const ListenToCookieChange = (name, callback) => {
|
||||
let cookie_value = ReadCookie(name);
|
||||
setInterval(function() {
|
||||
const new_cookie_value = ReadCookie(name);
|
||||
if (new_cookie_value !== cookie_value) {
|
||||
cookie_value = new_cookie_value;
|
||||
callback(cookie_value);
|
||||
}
|
||||
}, 100);
|
||||
};
|
||||
window.addEventListener("beforeunload", () => {
|
||||
var _a;
|
||||
return (_a = window.top) == null ? void 0 : _a.postMessage("wu_preview_changed", "*");
|
||||
});
|
||||
CreateCookie("wu_template", "");
|
||||
const isIOS = () => {
|
||||
var _a;
|
||||
window.addEventListener("touchstart", () => {
|
||||
});
|
||||
const iDevices = [
|
||||
"iPad Simulator",
|
||||
"iPhone Simulator",
|
||||
"iPod Simulator",
|
||||
"iPad",
|
||||
"iPhone",
|
||||
"iPod"
|
||||
];
|
||||
const platform = ((_a = navigator == null ? void 0 : navigator.userAgentData) == null ? void 0 : _a.platform) || (navigator == null ? void 0 : navigator.platform) || "";
|
||||
return iDevices.includes(platform);
|
||||
};
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
var _a;
|
||||
ListenToCookieChange("wu_selected_products", () => document.location.reload());
|
||||
const iframe = document.getElementById("iframe");
|
||||
const wn = iframe == null ? void 0 : iframe.contentWindow;
|
||||
wn == null ? void 0 : wn.postMessage("Hello to iframe from parent!", "https://" + location.hostname);
|
||||
const elements = document.querySelectorAll("#action-select, #action-select2");
|
||||
elements.forEach((element) => element.addEventListener("click", (event) => {
|
||||
event.preventDefault();
|
||||
const value = document.getElementById("template-selector").value;
|
||||
CreateCookie("wu_template", value);
|
||||
window.close();
|
||||
}));
|
||||
iframe == null ? void 0 : iframe.addEventListener("load", () => {
|
||||
var _a2;
|
||||
if (isIOS()) {
|
||||
const body = (_a2 = document.getElementById("iframe")) == null ? void 0 : _a2.getElementsByTagName("body")[0];
|
||||
body == null ? void 0 : body.classList.add("wu-fix-safari-preview");
|
||||
(body == null ? void 0 : body.style) && Object.assign(body.style, {
|
||||
position: "fixed",
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
"overflow-y": "scroll",
|
||||
"-webkit-overflow-scrolling": "touch"
|
||||
});
|
||||
}
|
||||
});
|
||||
const adjustIframeHeight = () => {
|
||||
var _a2;
|
||||
const ee = ((_a2 = document.getElementById("switcher")) == null ? void 0 : _a2.offsetHeight) || 0;
|
||||
iframe.style.height = document.body.offsetHeight - ee + "px";
|
||||
};
|
||||
window.addEventListener("resize", adjustIframeHeight);
|
||||
adjustIframeHeight();
|
||||
const toggleList = () => {
|
||||
const list = document.querySelectorAll("#theme_list ul");
|
||||
list.forEach((element) => element.style.display = element.style.display === "none" ? "block" : "none");
|
||||
};
|
||||
toggleList();
|
||||
(_a = document.getElementById("template_selector")) == null ? void 0 : _a.addEventListener("click", (event) => {
|
||||
event.preventDefault();
|
||||
toggleList();
|
||||
});
|
||||
document.querySelectorAll("#theme_list ul li a").forEach((element) => element.addEventListener("click", (event) => {
|
||||
event.preventDefault();
|
||||
toggleList();
|
||||
const target = event.currentTarget;
|
||||
const href = target.getAttribute("href") || "";
|
||||
iframe.src = target.getAttribute("data-frame") || "";
|
||||
const selector = document.getElementById("template_selector");
|
||||
const selectorText = selector.firstChild;
|
||||
selectorText.nodeValue = target.getAttribute("data-title") || "";
|
||||
window.history.pushState({}, "", href);
|
||||
}));
|
||||
const headerBar = document.getElementById("header-bar");
|
||||
if (headerBar) {
|
||||
headerBar.style.display = "none";
|
||||
}
|
||||
const screenSizes = {
|
||||
desktop: "100%",
|
||||
tabletlandscape: "1040px",
|
||||
tabletportrait: "788px",
|
||||
mobilelandscape: "500px",
|
||||
mobileportrait: "340px",
|
||||
placebo: "0px"
|
||||
};
|
||||
document.querySelectorAll(".responsive a").forEach((element) => element.addEventListener("click", (event) => {
|
||||
const target = event.currentTarget;
|
||||
const width = Array.from(target.classList).reduce((acc, cur) => {
|
||||
if (screenSizes[cur]) {
|
||||
acc = screenSizes[cur];
|
||||
}
|
||||
return acc;
|
||||
}, "");
|
||||
iframe.style.width = width;
|
||||
iframe.style.transition = "200ms";
|
||||
document.querySelectorAll(".responsive a").forEach((element2) => element2.classList.remove("active"));
|
||||
target.classList.add("active");
|
||||
}));
|
||||
if (navigator.userAgent.match(/iPad/i) !== null) {
|
||||
iframe.style.height = "100%";
|
||||
}
|
||||
});
|
||||
})()
|
Reference in New Issue
Block a user