MediaWiki:Common.js: Difference between revisions
From VRChat Wiki
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
(() => { | (() => { | ||
var | var e = Object.defineProperty, __esmMin = (e, t) => () => (e && (t = e(e = 0)), t), __export = (t, n) => { | ||
let r = {}; | |||
for (var i in t) e(r, i, { | |||
let | get: t[i], | ||
for (var | enumerable: !0 | ||
get: | |||
enumerable: | |||
}); | }); | ||
return n && e(r, Symbol.toStringTag, { value: "Module" }), r; | |||
}; | }; | ||
function isPage( | function isPage(e) { | ||
let [t, n] = mw.config.get("wgPageName").split("/"); | |||
return !(!t || !e.includes(t) || n && mw.config.get("wgPageContentLanguage") != n); | |||
} | } | ||
[...document.querySelectorAll(".spoiler")].map(( | [...document.querySelectorAll(".spoiler")].map((e) => { | ||
e.querySelector(".spoiler-overlay")?.addEventListener("click", () => { | |||
e.dataset.open = ""; | |||
}); | }); | ||
}); | }); | ||
function _objectWithoutPropertiesLoose( | function _objectWithoutPropertiesLoose(e, t) { | ||
if ( | if (e == null) return {}; | ||
var | var n = {}; | ||
for (var | for (var r in e) if ({}.hasOwnProperty.call(e, r)) { | ||
if ( | if (t.includes(r)) continue; | ||
n[r] = e[r]; | |||
} | } | ||
return | return n; | ||
} | } | ||
function _objectWithoutProperties(e, t) { | function _objectWithoutProperties(e, t) { | ||
if ( | if (e == null) return {}; | ||
var | var n, r, i = _objectWithoutPropertiesLoose(e, t); | ||
if (Object.getOwnPropertySymbols) { | if (Object.getOwnPropertySymbols) { | ||
var | var a = Object.getOwnPropertySymbols(e); | ||
for (r = 0; r < | for (r = 0; r < a.length; r++) n = a[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (i[n] = e[n]); | ||
} | } | ||
return i; | return i; | ||
} | } | ||
var | var t = ["videoId"]; | ||
[...document.querySelectorAll(".youtube")].map(( | [...document.querySelectorAll(".youtube")].map((e) => { | ||
let n = e.dataset, { videoId: r } = n, i = _objectWithoutProperties(n, t), a = document.createElement("iframe"); | |||
a.setAttribute("width", "560"), a.setAttribute("height", "315"), a.setAttribute("frameborder", "0"), a.setAttribute("allow", [ | |||
"accelerometer", | "accelerometer", | ||
"autoplay", | "autoplay", | ||
| Line 56: | Line 46: | ||
"picture-in-picture", | "picture-in-picture", | ||
"web-share" | "web-share" | ||
].join("; ")) | ].join("; ")), a.setAttribute("referrerpolicy", "strict-origin-when-cross-origin"), a.setAttribute("allowfullscreen", "true"), Object.entries(i).map(([e, t]) => t && a.setAttribute(e, t)), a.setAttribute("style", e.getAttribute("style") || ""), a.src = `https://www.youtube-nocookie.com/embed/${r}?rel=0`, e.replaceWith(a); | ||
}); | }); | ||
let __vitePreload = function(e, t, n) { | |||
let | let r = Promise.resolve(); | ||
function handlePreloadError( | function handlePreloadError(e) { | ||
let t = new Event("vite:preloadError", { cancelable: !0 }); | |||
if (t.payload = e, window.dispatchEvent(t), !t.defaultPrevented) throw e; | |||
} | } | ||
return | return r.then((t) => { | ||
for ( | for (let e of t || []) e.status === "rejected" && handlePreloadError(e.reason); | ||
return e().catch(handlePreloadError); | |||
return | |||
}); | }); | ||
}; | }; | ||
function getArticleFromElement( | function getArticleFromElement(e) { | ||
let { articleId: t, articleTitle: n, articleContent: r } = e.dataset; | |||
return !t || !n || !r ? null : { | |||
id: t, | |||
id: | title: n, | ||
title: | content: atob(r) | ||
content: atob( | |||
}; | }; | ||
} | } | ||
var ArticleDialog | var ArticleDialog, n = __esmMin((() => { | ||
ArticleDialog = class extends OO.ui.ProcessDialog { | ArticleDialog = class extends OO.ui.ProcessDialog { | ||
constructor( | constructor(e) { | ||
super({ size: "large" } | super({ | ||
this.article = | size: "large", | ||
data: { title: e.title } | |||
}), this.article = e; | |||
} | } | ||
initialize() { | initialize() { | ||
super.initialize(); | super.initialize(); | ||
let e = new OO.ui.PanelLayout({ | |||
expanded: | expanded: !1, | ||
padded: | padded: !0, | ||
scrollable: | scrollable: !0 | ||
}); | }); | ||
return e.$element.append(this.article.content), this.$body.append(e.$element), this; | |||
} | } | ||
getActionProcess( | getActionProcess(e) { | ||
switch ( | switch (e) { | ||
case "close": return new OO.ui.Process(() => { | case "close": return new OO.ui.Process(() => { | ||
this.close({ action: "close" }); | this.close({ action: "close" }); | ||
}); | }); | ||
} | } | ||
return super.getActionProcess( | return super.getActionProcess(e); | ||
} | } | ||
} | }, ArticleDialog.static.name = ArticleDialog.name, ArticleDialog.static.actions = [{ | ||
action: "close", | action: "close", | ||
flags: "safe", | flags: "safe", | ||
| Line 124: | Line 98: | ||
label: "Close" | label: "Close" | ||
}]; | }]; | ||
})) | })), r = __esmMin((() => {})); | ||
function asyncGeneratorStep(e, t, n, r, i, a, o) { | |||
function asyncGeneratorStep( | |||
try { | try { | ||
var | var s = e[a](o), c = s.value; | ||
} catch ( | } catch (e) { | ||
e | n(e); | ||
return; | return; | ||
} | } | ||
s.done ? t(c) : Promise.resolve(c).then(r, i); | |||
} | } | ||
function _asyncToGenerator( | function _asyncToGenerator(e) { | ||
return function() { | return function() { | ||
var t = this, | var t = this, n = arguments; | ||
return new Promise(function(r, | return new Promise(function(r, i) { | ||
var a = | var a = e.apply(t, n); | ||
function _next( | function _next(e) { | ||
asyncGeneratorStep(a, r, | asyncGeneratorStep(a, r, i, _next, _throw, "next", e); | ||
} | } | ||
function _throw( | function _throw(e) { | ||
asyncGeneratorStep(a, r, | asyncGeneratorStep(a, r, i, _next, _throw, "throw", e); | ||
} | } | ||
_next(void 0); | _next(void 0); | ||
| Line 150: | Line 123: | ||
}; | }; | ||
} | } | ||
var | var i = __esmMin((() => {})), a = /* @__PURE__ */ __export({}, 1), o, s, c = __esmMin((() => { | ||
n(), r(), i(), o = document.querySelectorAll(".tpl-infopush"), console.log({ infopushes: o }), s = new OO.ui.WindowManager(), $(document.body).append(s.$element); | |||
for (let e of o) { | |||
let t = e.querySelector(".tpl-infopush-content"), n = t.querySelectorAll(".tpl-infopush-item"), r = n.length; | |||
for (let e of n) { | |||
if (e.querySelector("a")) continue; | |||
let t = getArticleFromElement(e); | |||
t && (e.style.cursor = "pointer", e.addEventListener("click", _asyncToGenerator(function* () { | |||
if (!(yield s.getWindow(t.id).then(() => !0).catch(() => !1))) { | |||
let e = new ArticleDialog(t); | |||
s.addWindows({ [t.id]: e }); | |||
for ( | |||
for ( | |||
if ( | |||
if (! | |||
} | } | ||
yield | yield s.openWindow(t.id).opening; | ||
})); | }))); | ||
} | } | ||
let i = e.querySelector(".tpl-infopush-navigation"), a = 0; | |||
function showSlide(e) { | |||
function showSlide( | a = (e + r) % r, t.style.transform = `translateX(-${a * 100}%)`; | ||
} | } | ||
let o; | |||
let | |||
function resetAutoAdvance() { | function resetAutoAdvance() { | ||
o && clearInterval(o), o = setInterval(function() { | |||
showSlide(a + 1); | |||
showSlide( | }, 5e3); | ||
}, | |||
} | } | ||
i.querySelector(".tpl-infopush-navigation-previous").addEventListener("click", () => { | |||
showSlide( | showSlide(a - 1), resetAutoAdvance(); | ||
}), i.querySelector(".tpl-infopush-navigation-next").addEventListener("click", () => { | |||
}) | showSlide(a + 1), resetAutoAdvance(); | ||
}), resetAutoAdvance(), showSlide(0); | |||
showSlide( | |||
}) | |||
} | } | ||
})); | })); | ||
isPage(["Template:MainPageInfopush", "Main_Page"]) && mw.loader.using(["oojs-ui-core", "oojs-ui-windows"]).then(() => __vitePreload(() => Promise.resolve().then(() => (c(), a)), void 0, {}.url)); | |||
var | var l = document.createElement("script"); | ||
l.setAttribute("defer", "defer"), l.setAttribute("data-domain", "wiki.vrchat.com"), l.setAttribute("event-page-name", mw.config.get("wgTitle")), l.setAttribute("event-page-language", mw.config.get("wgPageContentLanguage")); | |||
var u = mw.config.get("wgFormattedNamespaces"); | |||
l.setAttribute("event-page-namespace", u[mw.config.get("wgNamespaceNumber")]), l.setAttribute("event-theme", mw.config.get("skin")), l.setAttribute("event-action", mw.config.get("wgAction")), l.setAttribute("event-is-logged-in", String(mw.config.get("wgUserName") !== null)); | |||
var d = mw.config.get("wgUserGroups"), f = d.includes("community-mod") || d.includes("moderator") || d.includes("sysop"); | |||
var | l.setAttribute("event-is-maintainer", String(f)), l.src = "https://plausible.io/js/script.pageview-props.outbound-links.js", document.head.appendChild(l); | ||
var | |||
})(); | })(); | ||
Revision as of 13:51, 13 December 2025
(() => {
var e = Object.defineProperty, __esmMin = (e, t) => () => (e && (t = e(e = 0)), t), __export = (t, n) => {
let r = {};
for (var i in t) e(r, i, {
get: t[i],
enumerable: !0
});
return n && e(r, Symbol.toStringTag, { value: "Module" }), r;
};
function isPage(e) {
let [t, n] = mw.config.get("wgPageName").split("/");
return !(!t || !e.includes(t) || n && mw.config.get("wgPageContentLanguage") != n);
}
[...document.querySelectorAll(".spoiler")].map((e) => {
e.querySelector(".spoiler-overlay")?.addEventListener("click", () => {
e.dataset.open = "";
});
});
function _objectWithoutPropertiesLoose(e, t) {
if (e == null) return {};
var n = {};
for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
if (t.includes(r)) continue;
n[r] = e[r];
}
return n;
}
function _objectWithoutProperties(e, t) {
if (e == null) return {};
var n, r, i = _objectWithoutPropertiesLoose(e, t);
if (Object.getOwnPropertySymbols) {
var a = Object.getOwnPropertySymbols(e);
for (r = 0; r < a.length; r++) n = a[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (i[n] = e[n]);
}
return i;
}
var t = ["videoId"];
[...document.querySelectorAll(".youtube")].map((e) => {
let n = e.dataset, { videoId: r } = n, i = _objectWithoutProperties(n, t), a = document.createElement("iframe");
a.setAttribute("width", "560"), a.setAttribute("height", "315"), a.setAttribute("frameborder", "0"), a.setAttribute("allow", [
"accelerometer",
"autoplay",
"clipboard-write",
"encrypted-media",
"gyroscope",
"picture-in-picture",
"web-share"
].join("; ")), a.setAttribute("referrerpolicy", "strict-origin-when-cross-origin"), a.setAttribute("allowfullscreen", "true"), Object.entries(i).map(([e, t]) => t && a.setAttribute(e, t)), a.setAttribute("style", e.getAttribute("style") || ""), a.src = `https://www.youtube-nocookie.com/embed/${r}?rel=0`, e.replaceWith(a);
});
let __vitePreload = function(e, t, n) {
let r = Promise.resolve();
function handlePreloadError(e) {
let t = new Event("vite:preloadError", { cancelable: !0 });
if (t.payload = e, window.dispatchEvent(t), !t.defaultPrevented) throw e;
}
return r.then((t) => {
for (let e of t || []) e.status === "rejected" && handlePreloadError(e.reason);
return e().catch(handlePreloadError);
});
};
function getArticleFromElement(e) {
let { articleId: t, articleTitle: n, articleContent: r } = e.dataset;
return !t || !n || !r ? null : {
id: t,
title: n,
content: atob(r)
};
}
var ArticleDialog, n = __esmMin((() => {
ArticleDialog = class extends OO.ui.ProcessDialog {
constructor(e) {
super({
size: "large",
data: { title: e.title }
}), this.article = e;
}
initialize() {
super.initialize();
let e = new OO.ui.PanelLayout({
expanded: !1,
padded: !0,
scrollable: !0
});
return e.$element.append(this.article.content), this.$body.append(e.$element), this;
}
getActionProcess(e) {
switch (e) {
case "close": return new OO.ui.Process(() => {
this.close({ action: "close" });
});
}
return super.getActionProcess(e);
}
}, ArticleDialog.static.name = ArticleDialog.name, ArticleDialog.static.actions = [{
action: "close",
flags: "safe",
icon: "close",
label: "Close"
}];
})), r = __esmMin((() => {}));
function asyncGeneratorStep(e, t, n, r, i, a, o) {
try {
var s = e[a](o), c = s.value;
} catch (e) {
n(e);
return;
}
s.done ? t(c) : Promise.resolve(c).then(r, i);
}
function _asyncToGenerator(e) {
return function() {
var t = this, n = arguments;
return new Promise(function(r, i) {
var a = e.apply(t, n);
function _next(e) {
asyncGeneratorStep(a, r, i, _next, _throw, "next", e);
}
function _throw(e) {
asyncGeneratorStep(a, r, i, _next, _throw, "throw", e);
}
_next(void 0);
});
};
}
var i = __esmMin((() => {})), a = /* @__PURE__ */ __export({}, 1), o, s, c = __esmMin((() => {
n(), r(), i(), o = document.querySelectorAll(".tpl-infopush"), console.log({ infopushes: o }), s = new OO.ui.WindowManager(), $(document.body).append(s.$element);
for (let e of o) {
let t = e.querySelector(".tpl-infopush-content"), n = t.querySelectorAll(".tpl-infopush-item"), r = n.length;
for (let e of n) {
if (e.querySelector("a")) continue;
let t = getArticleFromElement(e);
t && (e.style.cursor = "pointer", e.addEventListener("click", _asyncToGenerator(function* () {
if (!(yield s.getWindow(t.id).then(() => !0).catch(() => !1))) {
let e = new ArticleDialog(t);
s.addWindows({ [t.id]: e });
}
yield s.openWindow(t.id).opening;
})));
}
let i = e.querySelector(".tpl-infopush-navigation"), a = 0;
function showSlide(e) {
a = (e + r) % r, t.style.transform = `translateX(-${a * 100}%)`;
}
let o;
function resetAutoAdvance() {
o && clearInterval(o), o = setInterval(function() {
showSlide(a + 1);
}, 5e3);
}
i.querySelector(".tpl-infopush-navigation-previous").addEventListener("click", () => {
showSlide(a - 1), resetAutoAdvance();
}), i.querySelector(".tpl-infopush-navigation-next").addEventListener("click", () => {
showSlide(a + 1), resetAutoAdvance();
}), resetAutoAdvance(), showSlide(0);
}
}));
isPage(["Template:MainPageInfopush", "Main_Page"]) && mw.loader.using(["oojs-ui-core", "oojs-ui-windows"]).then(() => __vitePreload(() => Promise.resolve().then(() => (c(), a)), void 0, {}.url));
var l = document.createElement("script");
l.setAttribute("defer", "defer"), l.setAttribute("data-domain", "wiki.vrchat.com"), l.setAttribute("event-page-name", mw.config.get("wgTitle")), l.setAttribute("event-page-language", mw.config.get("wgPageContentLanguage"));
var u = mw.config.get("wgFormattedNamespaces");
l.setAttribute("event-page-namespace", u[mw.config.get("wgNamespaceNumber")]), l.setAttribute("event-theme", mw.config.get("skin")), l.setAttribute("event-action", mw.config.get("wgAction")), l.setAttribute("event-is-logged-in", String(mw.config.get("wgUserName") !== null));
var d = mw.config.get("wgUserGroups"), f = d.includes("community-mod") || d.includes("moderator") || d.includes("sysop");
l.setAttribute("event-is-maintainer", String(f)), l.src = "https://plausible.io/js/script.pageview-props.outbound-links.js", document.head.appendChild(l);
})();