You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
320 lines
15 KiB
320 lines
15 KiB
2 years ago
|
/*!
|
||
|
* docsify-tabs
|
||
|
* v1.5.2
|
||
|
* https://jhildenbiddle.github.io/docsify-tabs/
|
||
|
* (c) 2018-2021 John Hildenbiddle
|
||
|
* MIT license
|
||
|
*/
|
||
|
!(function () {
|
||
|
"use strict";
|
||
|
!(function (t, o) {
|
||
|
void 0 === o && (o = {});
|
||
|
var a = o.insertAt;
|
||
|
if (t && "undefined" != typeof document) {
|
||
|
var e = document.head || document.getElementsByTagName("head")[0],
|
||
|
c = document.createElement("style");
|
||
|
(c.type = "text/css"),
|
||
|
"top" === a && e.firstChild
|
||
|
? e.insertBefore(c, e.firstChild)
|
||
|
: e.appendChild(c),
|
||
|
c.styleSheet
|
||
|
? (c.styleSheet.cssText = t)
|
||
|
: c.appendChild(document.createTextNode(t));
|
||
|
}
|
||
|
})(
|
||
|
':root{--docsifytabs-border-color:#ededed;--docsifytabs-border-px:1px;--docsifytabs-border-radius-px: ;--docsifytabs-margin:1.5em 0;--docsifytabs-tab-background:#f8f8f8;--docsifytabs-tab-background--active:var(--docsifytabs-content-background);--docsifytabs-tab-color:#999;--docsifytabs-tab-color--active:inherit;--docsifytabs-tab-highlight-px:3px;--docsifytabs-tab-highlight-color:var(--theme-color,currentColor);--docsifytabs-tab-padding:0.6em 1em;--docsifytabs-content-background:inherit;--docsifytabs-content-padding:1.5rem}.docsify-tabs:before,.docsify-tabs__tab{z-index:1}.docsify-tabs__tab--active,.docsify-tabs__tab:focus{z-index:2}.docsify-tabs{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.docsify-tabs:before{-ms-flex-order:0;content:"";-ms-flex:1 1;flex:1 1;order:0}.docsify-tabs__tab{-ms-flex-order:-1;appearance:none;font-size:inherit;margin:0;order:-1;position:relative}.docsify-tabs__content{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.docsify-tabs__content :first-child{margin-top:0}.docsify-tabs__content :first-child~:last-child,.docsify-tabs__content :last-child{margin-bottom:0}.docsify-tabs__tab--active+.docsify-tabs__content{height:auto;overflow:auto;position:relative;visibility:visible}[class*=docsify-tabs--]{margin:1.5em 0;margin:var(--docsifytabs-margin)}[class*=docsify-tabs--] .docsify-tabs__tab{background:#f8f8f8;background:var(--docsifytabs-tab-background);color:#999;color:var(--docsifytabs-tab-color);padding:.6em 1em;padding:var(--docsifytabs-tab-padding)}[class*=docsify-tabs--] .docsify-tabs__tab--active{background:inherit;background:var(--docsifytabs-tab-background--active);color:inherit;color:var(--docsifytabs-tab-color--active)}[class*=docsify-tabs--] .docsify-tabs__content{background:inherit;background:var(--docsifytabs-content-background);padding:1.5rem;padding:var(--docsifytabs-content-padding)}.docsify-tabs--classic .docsify-tabs__content,.docsify-tabs--classic .docsify-tabs__tab,.docsify-tabs--classic:before{border-color:#ededed;border-width:1px;border:var(--docsifytabs-border-px) solid var(--docsifytabs-border-color)}.docsify-tabs--classic:before{border-left-width:0;border-right-width:0;border-top-width:0;margin-right:1px;margin-right:var(--docsifytabs-border-px)}.docsify-tabs--classic .docsify-tabs__tab:first-of-type{border-top-left-radius:var(--docsifytabs-border-radius-px)}.docsify-tabs--classic .docsify-tabs__tab:last-of-type{border-top-right-radius:var(--docsifytabs-border-radius-px)}.docsify-tabs--classic .docsify-tabs__tab~.docsify-tabs__tab{margin-left:-1px;margin-left:calc(0px - var(--docsifytabs-border-px))}.docsify-tabs--classic .docsify-tabs__tab--active{border-bottom-width:0;box-shadow:inset 0 3px 0 0 var(--theme-color,currentColor);box-shadow:inset 0 var(--docsifytabs-tab-highlight-px) 0 0 var(--docsifytabs-tab-highlight-color)}.docsify-tabs--classic .docsify-tabs__content{border-radius:0;border-radius:0 var(--docsifytabs-border-radius-px) var(--docsifytabs-border-radius-px) var(--docsifytabs-border-radius-px);border-top:0;margin-top:-1px;margin-top:calc(0px - var(--docsifytabs-border-px))}.docsify-tabs--material .docsify-tabs__tab{background:transparent;border:0;margin-bottom:2px;margin-bottom:calc(var(--docsifytabs-tab-highlight-px) - var(--docsifytabs-border-px))}.docsify-tabs--material .docsify-tabs__tab--active{background:transparent;box-shadow:0 3px 0 0 var(--theme-color,currentColor);box-shadow:0 var(--docsifytabs-tab-highlight-px) 0 0 var(--docsifytabs-tab-highlight-color)}.docsify-tabs--material .docsify-tabs__content{border-color:#ededed;border-width:1px 0;border-bottom:var(--docsifytabs-border-px) solid var(--docsifytabs-border-color);border-left:0 solid var(--docsifytabs-border-color);border-right:0 solid var(--docsifytabs-border-color);border-top:var(--docsifytabs-border-px) solid var(--docsifytabs-border-color)}',
|
||
|
{ insertAt: "top" }
|
||
|
);
|
||
|
var t = "tabs:replace",
|
||
|
o = {
|
||
|
tabsContainer: "content",
|
||
|
tabBlock: "docsify-tabs",
|
||
|
tabButton: "docsify-tabs__tab",
|
||
|
tabButtonActive: "docsify-tabs__tab--active",
|
||
|
tabContent: "docsify-tabs__content",
|
||
|
},
|
||
|
a = {
|
||
|
codeMarkup: /(```[\s\S]*?```)/gm,
|
||
|
commentReplaceMarkup: new RegExp("\x3c!-- ".concat(t, " (.*) --\x3e")),
|
||
|
tabBlockMarkup:
|
||
|
/[\r\n]*(\s*)(<!-+\s+tabs:\s*?start\s+-+>)[\r\n]+([\s|\S]*?)[\r\n\s]+(<!-+\s+tabs:\s*?end\s+-+>)/m,
|
||
|
tabCommentMarkup:
|
||
|
/[\r\n]*(\s*)<!-+\s+tab:\s*(.*)\s+-+>[\r\n]+([\s\S]*?)[\r\n]*\s*(?=<!-+\s+tabs?:(?!replace))/m,
|
||
|
tabHeadingMarkup:
|
||
|
/[\r\n]*(\s*)#{1,6}\s*[*_]{2}\s*(.*[^\s])\s*[*_]{2}[\r\n]+([\s\S]*?)(?=#{1,6}\s*[*_]{2}|<!-+\s+tabs:\s*?end\s+-+>)/m,
|
||
|
},
|
||
|
e = {
|
||
|
persist: !0,
|
||
|
sync: !0,
|
||
|
theme: "classic",
|
||
|
tabComments: !0,
|
||
|
tabHeadings: !0,
|
||
|
};
|
||
|
function c(t, o) {
|
||
|
if (Element.prototype.closest) return t.closest(o);
|
||
|
for (; t; ) {
|
||
|
if (r(t, o)) return t;
|
||
|
t = t.parentNode || null;
|
||
|
}
|
||
|
return t;
|
||
|
}
|
||
|
function r(t, o) {
|
||
|
return (
|
||
|
Element.prototype.matches ||
|
||
|
Element.prototype.msMatchesSelector ||
|
||
|
Element.prototype.webkitMatchesSelector
|
||
|
).call(t, o);
|
||
|
}
|
||
|
function s(t) {
|
||
|
var a = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
|
||
|
r = c(t, ".".concat(o.tabButton));
|
||
|
if (r) {
|
||
|
var n = r.getAttribute("data-tab"),
|
||
|
i = document.querySelector(".".concat(o.tabsContainer)),
|
||
|
d = r.parentNode,
|
||
|
b = Array.apply(null, d.querySelectorAll(".".concat(o.tabButton))),
|
||
|
f = d.offsetTop;
|
||
|
if (
|
||
|
(b.forEach(function (t) {
|
||
|
return t.classList.remove(o.tabButtonActive);
|
||
|
}),
|
||
|
r.classList.add(o.tabButtonActive),
|
||
|
!a)
|
||
|
) {
|
||
|
if (e.persist) {
|
||
|
var l = i
|
||
|
? Array.apply(null, i.querySelectorAll(".".concat(o.tabBlock)))
|
||
|
: [],
|
||
|
u = l.indexOf(d),
|
||
|
y = JSON.parse(sessionStorage.getItem(window.location.href)) || {};
|
||
|
(y[u] = n),
|
||
|
sessionStorage.setItem(window.location.href, JSON.stringify(y));
|
||
|
}
|
||
|
if (e.sync) {
|
||
|
var p = i
|
||
|
? Array.apply(
|
||
|
null,
|
||
|
i.querySelectorAll(
|
||
|
".".concat(o.tabButton, '[data-tab="').concat(n, '"]')
|
||
|
)
|
||
|
)
|
||
|
: [],
|
||
|
m = JSON.parse(sessionStorage.getItem("*")) || [];
|
||
|
p.forEach(function (t) {
|
||
|
s(t, !0);
|
||
|
}),
|
||
|
window.scrollBy(0, 0 - (f - d.offsetTop)),
|
||
|
m.indexOf(n) > 0 && m.splice(m.indexOf(n), 1),
|
||
|
0 !== m.indexOf(n) &&
|
||
|
(m.unshift(n), sessionStorage.setItem("*", JSON.stringify(m)));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
function n() {
|
||
|
var t = decodeURIComponent(
|
||
|
(window.location.hash.match(/(?:id=)([^&]+)/) || [])[1]
|
||
|
),
|
||
|
a = t && ".".concat(o.tabBlock, " #").concat(t);
|
||
|
if (t && document.querySelector(a)) {
|
||
|
var e,
|
||
|
c = document.querySelector("#".concat(t));
|
||
|
if (c.closest) e = c.closest(".".concat(o.tabContent));
|
||
|
else
|
||
|
for (
|
||
|
e = c.parentNode;
|
||
|
e !== document.body && !e.classList.contains("".concat(o.tabContent));
|
||
|
|
||
|
)
|
||
|
e = e.parentNode;
|
||
|
s(e.previousElementSibling);
|
||
|
}
|
||
|
}
|
||
|
window &&
|
||
|
((window.$docsify = window.$docsify || {}),
|
||
|
(window.$docsify.tabs = window.$docsify.tabs || {}),
|
||
|
Object.keys(window.$docsify.tabs).forEach(function (t) {
|
||
|
Object.prototype.hasOwnProperty.call(e, t) &&
|
||
|
(e[t] = window.$docsify.tabs[t]);
|
||
|
}),
|
||
|
(window.$docsify.tabs.version = "1.5.2"),
|
||
|
(e.tabComments || e.tabHeadings) &&
|
||
|
(window.$docsify.plugins = [].concat(function (c, r) {
|
||
|
var i = !1;
|
||
|
c.beforeEach(function (c) {
|
||
|
return (
|
||
|
(i = a.tabBlockMarkup.test(c)) &&
|
||
|
(c = (function (c, r) {
|
||
|
for (
|
||
|
var s,
|
||
|
n,
|
||
|
i = c.match(a.codeMarkup) || [],
|
||
|
d = i.map(function (o, a) {
|
||
|
var e = "\x3c!-- "
|
||
|
.concat(t, " CODEBLOCK")
|
||
|
.concat(a, " --\x3e");
|
||
|
return (
|
||
|
(c = c.replace(o, function () {
|
||
|
return e;
|
||
|
})),
|
||
|
e
|
||
|
);
|
||
|
}),
|
||
|
b = e.theme
|
||
|
? "".concat(o.tabBlock, "--").concat(e.theme)
|
||
|
: "",
|
||
|
f = document.createElement("div"),
|
||
|
l = 1,
|
||
|
u = function () {
|
||
|
var i = s[0],
|
||
|
d = "",
|
||
|
u = "",
|
||
|
y = e.tabComments && a.tabCommentMarkup.test(i),
|
||
|
p = e.tabHeadings && a.tabHeadingMarkup.test(i),
|
||
|
m = s[1],
|
||
|
h = s[2],
|
||
|
g = s[4];
|
||
|
if (y || p) {
|
||
|
(d = "\x3c!-- "
|
||
|
.concat(t, ' <div class="')
|
||
|
.concat([o.tabBlock, b].join(" "), '"> --\x3e')),
|
||
|
(u = "\n"
|
||
|
.concat(m, "\x3c!-- ")
|
||
|
.concat(t, " </div> --\x3e"));
|
||
|
for (
|
||
|
var v = function () {
|
||
|
f.innerHTML = n[2].trim()
|
||
|
? r.compiler.compile(n[2]).replace(/<\/?p>/g, "")
|
||
|
: "Tab ".concat(l);
|
||
|
var a = f.innerHTML,
|
||
|
e = (n[3] || "").trim(),
|
||
|
c = (
|
||
|
f.textContent ||
|
||
|
f.firstChild.getAttribute("alt") ||
|
||
|
f.firstChild.getAttribute("src")
|
||
|
)
|
||
|
.trim()
|
||
|
.toLowerCase();
|
||
|
(i = i.replace(n[0], function () {
|
||
|
return [
|
||
|
"\n"
|
||
|
.concat(m, "\x3c!-- ")
|
||
|
.concat(t, ' <button class="')
|
||
|
.concat(o.tabButton, '" data-tab="')
|
||
|
.concat(c, '">')
|
||
|
.concat(a, "</button> --\x3e"),
|
||
|
"\n"
|
||
|
.concat(m, "\x3c!-- ")
|
||
|
.concat(t, ' <div class="')
|
||
|
.concat(o.tabContent, '" data-tab-content="')
|
||
|
.concat(c, '"> --\x3e'),
|
||
|
"\n\n".concat(m).concat(e),
|
||
|
"\n\n"
|
||
|
.concat(m, "\x3c!-- ")
|
||
|
.concat(t, " </div> --\x3e"),
|
||
|
].join("");
|
||
|
})),
|
||
|
l++;
|
||
|
};
|
||
|
null !==
|
||
|
(n =
|
||
|
(e.tabComments
|
||
|
? a.tabCommentMarkup.exec(i)
|
||
|
: null) ||
|
||
|
(e.tabHeadings
|
||
|
? a.tabHeadingMarkup.exec(i)
|
||
|
: null));
|
||
|
|
||
|
)
|
||
|
v();
|
||
|
}
|
||
|
(i = (i = i.replace(h, function () {
|
||
|
return d;
|
||
|
})).replace(g, function () {
|
||
|
return u;
|
||
|
})),
|
||
|
(c = c.replace(s[0], function () {
|
||
|
return i;
|
||
|
}));
|
||
|
};
|
||
|
null !== (s = a.tabBlockMarkup.exec(c));
|
||
|
|
||
|
)
|
||
|
u();
|
||
|
return (
|
||
|
d.forEach(function (t, o) {
|
||
|
c = c.replace(t, function () {
|
||
|
return i[o];
|
||
|
});
|
||
|
}),
|
||
|
c
|
||
|
);
|
||
|
})(c, r)),
|
||
|
c
|
||
|
);
|
||
|
}),
|
||
|
c.afterEach(function (t, o) {
|
||
|
i &&
|
||
|
(t = (function (t) {
|
||
|
for (
|
||
|
var o,
|
||
|
e = function () {
|
||
|
var a = o[0],
|
||
|
e = o[1] || "";
|
||
|
t = t.replace(a, function () {
|
||
|
return e;
|
||
|
});
|
||
|
};
|
||
|
null !== (o = a.commentReplaceMarkup.exec(t));
|
||
|
|
||
|
)
|
||
|
e();
|
||
|
return t;
|
||
|
})(t)),
|
||
|
o(t);
|
||
|
}),
|
||
|
c.doneEach(function () {
|
||
|
var t, a, c, r;
|
||
|
i &&
|
||
|
((a = (t = document.querySelector(".".concat(o.tabsContainer)))
|
||
|
? Array.apply(null, t.querySelectorAll(".".concat(o.tabBlock)))
|
||
|
: []),
|
||
|
(c =
|
||
|
JSON.parse(sessionStorage.getItem(window.location.href)) || {}),
|
||
|
(r = JSON.parse(sessionStorage.getItem("*")) || []),
|
||
|
n(),
|
||
|
a.forEach(function (t, a) {
|
||
|
var s = t.querySelector(".".concat(o.tabButtonActive));
|
||
|
s ||
|
||
|
(e.sync &&
|
||
|
r.length &&
|
||
|
(s = r
|
||
|
.map(function (a) {
|
||
|
return t.querySelector(
|
||
|
".".concat(o.tabButton, '[data-tab="').concat(a, '"]')
|
||
|
);
|
||
|
})
|
||
|
.filter(function (t) {
|
||
|
return t;
|
||
|
})[0]),
|
||
|
!s &&
|
||
|
e.persist &&
|
||
|
(s = t.querySelector(
|
||
|
".".concat(o.tabButton, '[data-tab="').concat(c[a], '"]')
|
||
|
)),
|
||
|
(s = s || t.querySelector(".".concat(o.tabButton))) &&
|
||
|
s.classList.add(o.tabButtonActive));
|
||
|
}));
|
||
|
}),
|
||
|
c.mounted(function () {
|
||
|
var t = document.querySelector(".".concat(o.tabsContainer));
|
||
|
t &&
|
||
|
t.addEventListener("click", function (t) {
|
||
|
s(t.target);
|
||
|
}),
|
||
|
window.addEventListener("hashchange", n, !1);
|
||
|
});
|
||
|
}, window.$docsify.plugins || [])));
|
||
|
})();
|
||
|
//# sourceMappingURL=docsify-tabs.min.js.map
|