606 lines
21 KiB
JavaScript
606 lines
21 KiB
JavaScript
"use strict";
|
||
function _createForOfIteratorHelper(e, t) {
|
||
var o =
|
||
("undefined" != typeof Symbol && e[Symbol.iterator]) || e["@@iterator"];
|
||
if (!o) {
|
||
if (
|
||
Array.isArray(e) ||
|
||
(o = _unsupportedIterableToArray(e)) ||
|
||
(t && e && "number" == typeof e.length)
|
||
) {
|
||
o && (e = o);
|
||
var n = 0,
|
||
r = function () {};
|
||
return {
|
||
s: r,
|
||
n: function () {
|
||
return n >= e.length ? { done: !0 } : { done: !1, value: e[n++] };
|
||
},
|
||
e: function (e) {
|
||
throw e;
|
||
},
|
||
f: r,
|
||
};
|
||
}
|
||
throw new TypeError(
|
||
"Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
|
||
);
|
||
}
|
||
var a,
|
||
i = !0,
|
||
c = !1;
|
||
return {
|
||
s: function () {
|
||
o = o.call(e);
|
||
},
|
||
n: function () {
|
||
var e = o.next();
|
||
return (i = e.done), e;
|
||
},
|
||
e: function (e) {
|
||
(c = !0), (a = e);
|
||
},
|
||
f: function () {
|
||
try {
|
||
i || null == o.return || o.return();
|
||
} finally {
|
||
if (c) throw a;
|
||
}
|
||
},
|
||
};
|
||
}
|
||
function _unsupportedIterableToArray(e, t) {
|
||
if (e) {
|
||
if ("string" == typeof e) return _arrayLikeToArray(e, t);
|
||
var o = Object.prototype.toString.call(e).slice(8, -1);
|
||
return (
|
||
"Object" === o && e.constructor && (o = e.constructor.name),
|
||
"Map" === o || "Set" === o
|
||
? Array.from(e)
|
||
: "Arguments" === o ||
|
||
/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)
|
||
? _arrayLikeToArray(e, t)
|
||
: void 0
|
||
);
|
||
}
|
||
}
|
||
function _arrayLikeToArray(e, t) {
|
||
(null == t || t > e.length) && (t = e.length);
|
||
for (var o = 0, n = new Array(t); o < t; o++) n[o] = e[o];
|
||
return n;
|
||
}
|
||
function _typeof(e) {
|
||
return (_typeof =
|
||
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
|
||
? function (e) {
|
||
return typeof e;
|
||
}
|
||
: function (e) {
|
||
return e &&
|
||
"function" == typeof Symbol &&
|
||
e.constructor === Symbol &&
|
||
e !== Symbol.prototype
|
||
? "symbol"
|
||
: typeof e;
|
||
})(e);
|
||
}
|
||
function checkOpen() {}
|
||
function coverColor() {
|
||
var _document$getElementB,
|
||
path =
|
||
null ===
|
||
(_document$getElementB = document.getElementById("post-cover")) ||
|
||
void 0 === _document$getElementB
|
||
? void 0
|
||
: _document$getElementB.src,
|
||
httpRequest;
|
||
void 0 !== path
|
||
? ((httpRequest = new XMLHttpRequest()),
|
||
httpRequest.open("GET", path + "?imageAve", !0),
|
||
httpRequest.send(),
|
||
(httpRequest.onreadystatechange = function () {
|
||
var json, obj, value, value;
|
||
4 == httpRequest.readyState &&
|
||
200 == httpRequest.status &&
|
||
((json = httpRequest.responseText),
|
||
(obj = eval("(" + json + ")")),
|
||
(value = obj.RGB),
|
||
(value = "#" + value.slice(2)),
|
||
"light" == getContrastYIQ(value) &&
|
||
(value = LightenDarkenColor(colorHex(value), -40)),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main:" + value + "!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-op:" + value + "23!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-op-deep:" + value + "dd!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-none:" + value + "00!important"
|
||
),
|
||
heo.initThemeColor(),
|
||
document.getElementById("coverdiv").classList.add("loaded"));
|
||
}))
|
||
: (document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main: var(--heo-theme)!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-op: var(--heo-theme-op)!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-op-deep:var(--heo-theme-op-deep)!important"
|
||
),
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-main-none: var(--heo-theme-none)!important"
|
||
),
|
||
heo.initThemeColor());
|
||
}
|
||
function colorHex(e) {
|
||
var t = e;
|
||
if (/^(rgb|RGB)/.test(t)) {
|
||
for (
|
||
var o = t.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","), n = "#", r = 0;
|
||
r < o.length;
|
||
r++
|
||
) {
|
||
var a = Number(o[r]).toString(16);
|
||
"0" === a && (a += a), (n += a);
|
||
}
|
||
return 7 !== n.length && (n = t), n;
|
||
}
|
||
if (!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)) return t;
|
||
var i = t.replace(/#/, "").split("");
|
||
if (6 === i.length) return t;
|
||
if (3 === i.length) {
|
||
for (var c = "#", r = 0; r < i.length; r += 1) c += i[r] + i[r];
|
||
return c;
|
||
}
|
||
}
|
||
function colorRgb(e) {
|
||
var t = e.toLowerCase();
|
||
if (t && /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)) {
|
||
if (4 === t.length) {
|
||
for (var o = "#", n = 1; n < 4; n += 1)
|
||
o += t.slice(n, n + 1).concat(t.slice(n, n + 1));
|
||
t = o;
|
||
}
|
||
for (var r = [], n = 1; n < 7; n += 2)
|
||
r.push(parseInt("0x" + t.slice(n, n + 2)));
|
||
return "rgb(" + r.join(",") + ")";
|
||
}
|
||
return t;
|
||
}
|
||
function LightenDarkenColor(e, t) {
|
||
var o = !1;
|
||
"#" == e[0] && ((e = e.slice(1)), (o = !0));
|
||
var n = parseInt(e, 16),
|
||
r = (n >> 16) + t;
|
||
255 < r ? (r = 255) : r < 0 && (r = 0);
|
||
var a = ((n >> 8) & 255) + t;
|
||
255 < a ? (a = 255) : a < 0 && (a = 0);
|
||
var i = (255 & n) + t;
|
||
return (
|
||
255 < i ? (i = 255) : i < 0 && (i = 0),
|
||
(o ? "#" : "") +
|
||
String("000000" + (i | (a << 8) | (r << 16)).toString(16)).slice(-6)
|
||
);
|
||
}
|
||
function getContrastYIQ(e) {
|
||
var t = colorRgb(e).match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/),
|
||
o = 299 * t[1] + 587 * t[2] + 114 * t[3];
|
||
return 0.5 <= (o /= 255e3) ? "light" : "dark";
|
||
}
|
||
function navTitle() {
|
||
var e = document.title.replace(" | 张洪Heo", "");
|
||
document.getElementById("page-name-text").innerHTML = e;
|
||
}
|
||
function showcopy() {
|
||
var e;
|
||
void 0 !== GLOBAL_CONFIG.Snackbar
|
||
? btf.snackbarShow(GLOBAL_CONFIG.copy.success)
|
||
: (((e = ctx.previousElementSibling).innerText =
|
||
GLOBAL_CONFIG.copy.success),
|
||
(e.style.opacity = 1),
|
||
setTimeout(function () {
|
||
e.style.opacity = 0;
|
||
}, 700));
|
||
}
|
||
(checkOpen.toString = function () {
|
||
this.opened = !0;
|
||
}),
|
||
(window.onload = function () {
|
||
for (
|
||
var e = document.getElementsByClassName("copybtn"), t = 0;
|
||
t < e.length;
|
||
t++
|
||
)
|
||
document
|
||
.getElementsByClassName("copybtn")
|
||
[t].addEventListener("click", function () {
|
||
showcopy();
|
||
});
|
||
heo.initThemeColor();
|
||
});
|
||
var getTimeState = function () {
|
||
var e = new Date().getHours(),
|
||
t = "";
|
||
return (
|
||
0 <= e && e <= 5
|
||
? (t = "晚安")
|
||
: 5 < e && e <= 10
|
||
? (t = "早上好")
|
||
: 10 < e && e <= 14
|
||
? (t = "中午好")
|
||
: 14 < e && e <= 18
|
||
? (t = "下午好")
|
||
: 18 < e && e <= 24 && (t = "晚上好"),
|
||
t
|
||
);
|
||
};
|
||
function fly_to_top() {
|
||
document.getElementById("guli_top").classList.add("open_wing"),
|
||
setTimeout(function () {
|
||
document.getElementById("guli_top").classList.add("flying"),
|
||
btf.scrollToDest(0, 300);
|
||
}, 300),
|
||
setTimeout(function () {
|
||
document.getElementById("guli_top").classList.remove("flying"),
|
||
document.getElementById("guli_top").classList.remove("open_wing"),
|
||
(document.getElementById("guli_top").style.cssText =
|
||
"opacity: ''; transform: ''");
|
||
}, 600);
|
||
}
|
||
var navFn = {
|
||
switchDarkMode: function () {
|
||
"light" ==
|
||
("dark" === document.documentElement.getAttribute("data-theme")
|
||
? "dark"
|
||
: "light")
|
||
? (activateDarkMode(),
|
||
saveToLocal.set("theme", "dark", 2),
|
||
void 0 !== GLOBAL_CONFIG.Snackbar &&
|
||
btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night, !1, 2e3))
|
||
: (activateLightMode(),
|
||
saveToLocal.set("theme", "light", 2),
|
||
void 0 !== GLOBAL_CONFIG.Snackbar &&
|
||
btf.snackbarShow(GLOBAL_CONFIG.Snackbar.night_to_day, !1, 2e3)),
|
||
"function" == typeof utterancesTheme && utterancesTheme(),
|
||
"object" === ("undefined" == typeof FB ? "undefined" : _typeof(FB)) &&
|
||
window.loadFBComment(),
|
||
window.DISQUS &&
|
||
document.getElementById("disqus_thread").children.length &&
|
||
setTimeout(function () {
|
||
return window.disqusReset();
|
||
}, 200);
|
||
var e,
|
||
t,
|
||
o,
|
||
n =
|
||
"light" === document.documentElement.getAttribute("data-theme")
|
||
? "#363636"
|
||
: "#F7F7FA";
|
||
document.getElementById("posts-chart") &&
|
||
(((e = postsOption).textStyle.color = n),
|
||
(e.title.textStyle.color = n),
|
||
(e.xAxis.axisLine.lineStyle.color = n),
|
||
(e.yAxis.axisLine.lineStyle.color = n),
|
||
postsChart.setOption(e)),
|
||
document.getElementById("tags-chart") &&
|
||
(((t = tagsOption).textStyle.color = n),
|
||
(t.title.textStyle.color = n),
|
||
(t.xAxis.axisLine.lineStyle.color = n),
|
||
(t.yAxis.axisLine.lineStyle.color = n),
|
||
tagsChart.setOption(t)),
|
||
document.getElementById("categories-chart") &&
|
||
(((o = categoriesOption).textStyle.color = n),
|
||
(o.title.textStyle.color = n),
|
||
(o.legend.textStyle.color = n),
|
||
categoriesChart.setOption(o));
|
||
},
|
||
};
|
||
function RemoveRewardMask() {
|
||
$(".reward-main").attr("style", "display: none"),
|
||
$("#quit-box").attr("style", "display: none");
|
||
}
|
||
function AddRewardMask() {
|
||
$(".reward-main").attr("style", "display: flex");
|
||
}
|
||
function travelling() {
|
||
fetch("https://moments.zhheo.com/randomfriend")
|
||
.then(function (e) {
|
||
return e.json();
|
||
})
|
||
.then(function (e) {
|
||
var t = e.name,
|
||
o = e.link,
|
||
n =
|
||
"点击前往按钮进入随机一个友链,不保证跳转网站的安全性和可用性。本次随机到的是本站友链:「" +
|
||
t +
|
||
"」";
|
||
document.styleSheets[0].addRule(
|
||
":root",
|
||
"--heo-snackbar-time:8000ms!important"
|
||
),
|
||
Snackbar.show({
|
||
text: n,
|
||
duration: 8e3,
|
||
pos: "top-center",
|
||
actionText: "前往",
|
||
onActionClick: function (e) {
|
||
$(e).css("opacity", 0), window.open(o, "_blank");
|
||
},
|
||
});
|
||
});
|
||
}
|
||
function toforeverblog() {
|
||
Snackbar.show({
|
||
text: "点击前往按钮进入「十年之约」项目中的成员博客,不保证跳转网站的安全性和可用性",
|
||
duration: 8e3,
|
||
pos: "top-center",
|
||
actionText: "前往",
|
||
onActionClick: function (e) {
|
||
$(e).css("opacity", 0),
|
||
window.open(link, "https://www.foreverblog.cn/go.html");
|
||
},
|
||
});
|
||
}
|
||
function totraveling() {
|
||
btf.snackbarShow(
|
||
"即将跳转到「开往」项目的成员博客,不保证跳转网站的安全性和可用性",
|
||
!1,
|
||
5e3
|
||
),
|
||
setTimeout(function () {
|
||
window.open("https://travellings.link/");
|
||
}, "5000");
|
||
}
|
||
function removeLoading() {
|
||
setTimeout(function () {
|
||
preloader.endLoading();
|
||
}, 3e3);
|
||
}
|
||
function addFriendLink() {
|
||
var e = document.getElementsByClassName("el-textarea__inner")[0],
|
||
t = document.createEvent("HTMLEvents");
|
||
t.initEvent("input", !0, !0),
|
||
(e.value = "昵称:\n网站地址:\n头像图片url:\n描述:\n"),
|
||
e.dispatchEvent(t),
|
||
heo.scrollTo("#post-comment"),
|
||
e.focus(),
|
||
e.setSelectionRange(-1, -1);
|
||
}
|
||
function getArrayItems(e, t) {
|
||
var o = new Array();
|
||
for (var n in e) o.push(e[n]);
|
||
for (var r = new Array(), a = 0; a < t && 0 < o.length; a++) {
|
||
var i = Math.floor(Math.random() * o.length);
|
||
(r[a] = o[i]), o.splice(i, 1);
|
||
}
|
||
return r;
|
||
}
|
||
function owoBig() {
|
||
document
|
||
.getElementById("post-comment")
|
||
.addEventListener("DOMNodeInserted", function (e) {
|
||
var t, o, n, a;
|
||
!e.target.classList ||
|
||
"OwO-body" != e.target.classList.value ||
|
||
((t = e.target) &&
|
||
((n = !(o = "")),
|
||
((a = document.createElement("div")).id = "owo-big"),
|
||
document.querySelector("body").appendChild(a),
|
||
t.addEventListener("contextmenu", function (e) {
|
||
return e.preventDefault();
|
||
}),
|
||
t.addEventListener("mouseover", function (r) {
|
||
"LI" == r.target.tagName &&
|
||
n &&
|
||
((n = !1),
|
||
(o = setTimeout(function () {
|
||
var e = 3 * r.path[0].clientHeight,
|
||
t = 3 * r.path[0].clientWidth,
|
||
o = r.x - r.offsetX - (t - r.path[0].clientWidth) / 2,
|
||
n = r.y - r.offsetY;
|
||
(a.style.height = e + "px"),
|
||
(a.style.width = t + "px"),
|
||
(a.style.left = o + "px"),
|
||
(a.style.top = n + "px"),
|
||
(a.style.display = "flex"),
|
||
(a.innerHTML = '<img src="'.concat(
|
||
r.target.querySelector("img").src,
|
||
'">'
|
||
));
|
||
}, 300)));
|
||
}),
|
||
t.addEventListener("mouseout", function (e) {
|
||
(a.style.display = "none"), (n = !0), clearTimeout(o);
|
||
})));
|
||
});
|
||
}
|
||
function percent() {
|
||
var e = document.documentElement.scrollTop || window.pageYOffset,
|
||
t =
|
||
Math.max(
|
||
document.body.scrollHeight,
|
||
document.documentElement.scrollHeight,
|
||
document.body.offsetHeight,
|
||
document.documentElement.offsetHeight,
|
||
document.body.clientHeight,
|
||
document.documentElement.clientHeight
|
||
) - document.documentElement.clientHeight,
|
||
o = Math.round((e / t) * 100),
|
||
n = document.querySelector("#percent"),
|
||
r = window.scrollY + document.documentElement.clientHeight,
|
||
a =
|
||
document.getElementById("post-tools") ||
|
||
document.getElementById("footer");
|
||
a.offsetTop + a.offsetHeight / 2 < r || 90 < o
|
||
? (document.querySelector("#nav-totop").classList.add("long"),
|
||
(n.innerHTML = "返回顶部"))
|
||
: (document.querySelector("#nav-totop").classList.remove("long"),
|
||
(n.innerHTML = o)),
|
||
(window.onscroll = percent);
|
||
}
|
||
document.addEventListener(
|
||
"touchstart",
|
||
function (e) {
|
||
RemoveRewardMask();
|
||
},
|
||
!1
|
||
),
|
||
$(document)
|
||
.unbind("keydown")
|
||
.bind("keydown", function (e) {
|
||
if ((e.ctrlKey || e.metaKey) && 67 == e.keyCode && "" != selectTextNow)
|
||
return (
|
||
btf.snackbarShow("复制成功,复制和转载请标注本文地址"),
|
||
rm.rightmenuCopyText(selectTextNow),
|
||
!1
|
||
);
|
||
}),
|
||
document.addEventListener(
|
||
"scroll",
|
||
btf.throttle(function () {
|
||
heo.initThemeColor();
|
||
}, 200)
|
||
),
|
||
navigator.serviceWorker.getRegistrations().then(function (e) {
|
||
var t,
|
||
o = _createForOfIteratorHelper(e);
|
||
try {
|
||
for (o.s(); !(t = o.n()).done; ) {
|
||
t.value.unregister();
|
||
}
|
||
} catch (e) {
|
||
o.e(e);
|
||
} finally {
|
||
o.f();
|
||
}
|
||
}),
|
||
(window.onkeydown = function (e) {
|
||
123 === e.keyCode &&
|
||
btf.snackbarShow("开发者模式已打开,请遵循GPL协议", !1, 3e3);
|
||
}),
|
||
document
|
||
.querySelector("#algolia-search")
|
||
.addEventListener("wheel", function (e) {
|
||
e.preventDefault();
|
||
}),
|
||
document.querySelector("#console").addEventListener("wheel", function (e) {
|
||
e.preventDefault();
|
||
}),
|
||
window.addEventListener("resize", function () {
|
||
document.querySelector("#waterfall") && heo.reflashEssayWaterFall();
|
||
}),
|
||
$(".topGroup").hover(
|
||
function () {
|
||
console.log("卡片悬浮");
|
||
},
|
||
function () {
|
||
(hoverOnCommentBarrage = !1),
|
||
document.getElementById("todayCard").classList.remove("hide"),
|
||
(document.getElementById("todayCard").style.zIndex = 1),
|
||
console.log("卡片停止悬浮");
|
||
}
|
||
),
|
||
document.getElementById("post-comment") && owoBig(),
|
||
document.addEventListener(
|
||
"scroll",
|
||
btf.throttle(function () {
|
||
var e,
|
||
t = window.scrollY + document.documentElement.clientHeight,
|
||
o = (window.scrollY, document.getElementById("pagination")),
|
||
n = document.getElementById("post-tools");
|
||
n &&
|
||
o &&
|
||
((e = n.offsetTop + n.offsetHeight / 2),
|
||
1300 < document.body.clientWidth &&
|
||
(e < t
|
||
? o.classList.add("show-window")
|
||
: o.classList.remove("show-window")));
|
||
}, 200)
|
||
),
|
||
"false" !== localStorage.getItem("keyboardToggle")
|
||
? document.querySelector("#consoleKeyboard").classList.add("on")
|
||
: document.querySelector("#consoleKeyboard").classList.remove("on"),
|
||
$(window).on("keydown", function (e) {
|
||
if (
|
||
(27 == e.keyCode &&
|
||
(heo.hideLoading(), heo.hideConsole(), rm.hideRightMenu()),
|
||
heo_keyboard && e.shiftKey && !heo_intype)
|
||
) {
|
||
if (
|
||
(16 == e.keyCode &&
|
||
document.querySelector("#keyboard-tips").classList.add("show"),
|
||
75 == e.keyCode)
|
||
)
|
||
return heo.keyboardToggle(), !1;
|
||
if (65 == e.keyCode) return heo.showConsole(), !1;
|
||
if (77 == e.keyCode) return heo.musicToggle(), !1;
|
||
if (82 == e.keyCode) return toRandomPost(), !1;
|
||
if (72 == e.keyCode) return pjax.loadUrl("/"), !1;
|
||
if (68 == e.keyCode) return rm.switchDarkMode(), !1;
|
||
if (70 == e.keyCode) return pjax.loadUrl("/moments/"), !1;
|
||
if (76 == e.keyCode) return pjax.loadUrl("/link/"), !1;
|
||
if (80 == e.keyCode) return pjax.loadUrl("/about/"), !1;
|
||
if (84 == e.keyCode) return pjax.loadUrl("/tlink/"), !1;
|
||
}
|
||
}),
|
||
$(window).on("keyup", function (e) {
|
||
16 == e.keyCode &&
|
||
document.querySelector("#keyboard-tips").classList.remove("show");
|
||
}),
|
||
(window.onfocus = function () {
|
||
document.querySelector("#keyboard-tips").classList.remove("show");
|
||
}),
|
||
document.addEventListener("pjax:send", function () {
|
||
heo.showLoading();
|
||
}),
|
||
document.addEventListener("pjax:complete", function () {
|
||
coverColor(),
|
||
addRightMenuClickEvent(),
|
||
navTitle(),
|
||
percent(),
|
||
heo.topPostScroll(),
|
||
heo.topCategoriesBarScroll(),
|
||
heo.sayhi(),
|
||
heo.addTag(),
|
||
heo.stopImgRightDrag(),
|
||
heo.addFriendLinksInFooter(),
|
||
heo.qrcodeCreate(),
|
||
heo.hidecookie(),
|
||
heo.onlyHome(),
|
||
heo.addNavBackgroundInit(),
|
||
heo.initIndexEssay(),
|
||
heo.changeTimeInEssay(),
|
||
heo.reflashEssayWaterFall(),
|
||
heo.addMediumInEssay(),
|
||
heo.darkModeStatus(),
|
||
heo.categoriesBarActive(),
|
||
heo.initThemeColor(),
|
||
heo.hideLoading(),
|
||
heo.tagPageActive();
|
||
}),
|
||
$("input").focus(function () {
|
||
heo_intype = !0;
|
||
}),
|
||
$("textarea").focus(function () {
|
||
heo_intype = !0;
|
||
}),
|
||
$("input").focusout(function () {
|
||
heo_intype = !1;
|
||
}),
|
||
$("textarea").focusout(function () {
|
||
heo_intype = !1;
|
||
});
|