288 lines
10 KiB
JavaScript
288 lines
10 KiB
JavaScript
var pageName = page;
|
|
var sidenav_target = to_build + "pages/" + pageName + ".html";
|
|
|
|
var fixedPlugin = document.querySelector("[fixed-plugin]");
|
|
var fixedPluginButton = document.querySelector("[fixed-plugin-button]");
|
|
var fixedPluginButtonNav = document.querySelector("[fixed-plugin-button-nav]");
|
|
var fixedPluginCard = document.querySelector("[fixed-plugin-card]");
|
|
var fixedPluginCloseButton = document.querySelector("[fixed-plugin-close-button]");
|
|
|
|
var navbar = document.querySelector("[navbar-main]");
|
|
|
|
var buttonNavbarFixed = document.querySelector("[navbarFixed]");
|
|
|
|
var sidenav = document.querySelector("aside");
|
|
var sidenav_icons = sidenav.querySelectorAll("li a div");
|
|
|
|
|
|
var transparentBtn = document.querySelector("[transparent-style-btn]");
|
|
var whiteBtn = document.querySelector("[white-style-btn]");
|
|
|
|
var non_active_style = ["bg-none", "bg-transparent", "text-fuchsia-500", "border-fuchsia-500"];
|
|
var active_style = ["bg-gradient-to-tl", "from-purple-700", "to-pink-500", "bg-fuchsia-500", "text-white", "border-transparent"];
|
|
|
|
var transparent_sidenav_classes = ["xl:bg-transparent", "shadow-none"];
|
|
var transparent_sidenav_highlighted = ["shadow-soft-xl"];
|
|
var transparent_sidenav_icons = ["bg-white"];
|
|
|
|
var white_sidenav_classes = ["xl:bg-white", "shadow-soft-xl"];
|
|
var white_sidenav_highlighted = ["shadow-none"];
|
|
var white_sidenav_icons = ["bg-gray-200"];
|
|
|
|
var sidenav_highlight = document.querySelector("a[href=" + CSS.escape(sidenav_target) + "]");
|
|
|
|
// fixed plugin toggle
|
|
if (pageName != "rtl") {
|
|
fixedPluginButton.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-right-90");
|
|
fixedPluginCard.classList.toggle("right-0");
|
|
});
|
|
|
|
fixedPluginButtonNav.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-right-90");
|
|
fixedPluginCard.classList.toggle("right-0");
|
|
});
|
|
|
|
fixedPluginCloseButton.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-right-90");
|
|
fixedPluginCard.classList.toggle("right-0");
|
|
});
|
|
|
|
window.addEventListener("click", function (e) {
|
|
if (!fixedPlugin.contains(e.target) && !fixedPluginButton.contains(e.target) && !fixedPluginButtonNav.contains(e.target)) {
|
|
if (fixedPluginCard.classList.contains("right-0")) {
|
|
fixedPluginCloseButton.click();
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
fixedPluginButton.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-left-90");
|
|
fixedPluginCard.classList.toggle("left-0");
|
|
});
|
|
|
|
fixedPluginButtonNav.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-left-90");
|
|
fixedPluginCard.classList.toggle("left-0");
|
|
});
|
|
|
|
fixedPluginCloseButton.addEventListener("click", function () {
|
|
fixedPluginCard.classList.toggle("-left-90");
|
|
fixedPluginCard.classList.toggle("left-0");
|
|
});
|
|
|
|
window.addEventListener("click", function (e) {
|
|
if (!fixedPlugin.contains(e.target) && !fixedPluginButton.contains(e.target) && !fixedPluginButtonNav.contains(e.target)) {
|
|
if (fixedPluginCard.classList.contains("left-0")) {
|
|
fixedPluginCloseButton.click();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// color sidenav
|
|
|
|
function sidebarColor(a) {
|
|
var color_from = a.getAttribute("data-color-from");
|
|
var color_to = a.getAttribute("data-color-to");
|
|
var parent = a.parentElement.children;
|
|
|
|
var activeColorFrom;
|
|
var activeColorTo;
|
|
var activeSidenavIconColorClassFrom;
|
|
var activeSidenavIconColorClassTo;
|
|
var activeSidenavCardColorClassFrom;
|
|
var activeSidenavCardColorClassTo;
|
|
var activeSidenavCardIconColorClassFrom;
|
|
var activeSidenavCardIconColorClassTo;
|
|
|
|
var checkedSidenavIconColorFrom = "from-" + color_from;
|
|
var checkedSidenavIconColorTo = "to-" + color_to;
|
|
|
|
var checkedSidenavCardColorFrom = "after:from-" + (color_from == "purple-700" ? "slate-600" : color_from);
|
|
var checkedSidenavCardColorTo = "after:to-" + (color_to == "pink-500" ? "slate-300" : color_to);
|
|
|
|
var checkedSidenavCardIconColorClassFrom = "from-" + (color_from == "purple-700" ? "slate-600" : color_from);
|
|
var checkedSidenavCardIconColorClassTo = "to-" + (color_to == "pink-500" ? "slate-300" : color_to);
|
|
|
|
var sidenavCard = document.querySelector("[sidenav-card]");
|
|
var sidenavCardIcon = document.querySelector("[sidenav-card-icon]");
|
|
var sidenavIcon = sidenav_highlight.firstElementChild;
|
|
|
|
for (var i = 0; i < parent.length; i++) {
|
|
if (parent[i].hasAttribute("active-color")) {
|
|
activeColorFrom = parent[i].getAttribute("data-color-from");
|
|
activeColorTo = parent[i].getAttribute("data-color-to");
|
|
|
|
parent[i].classList.toggle("border-white");
|
|
parent[i].classList.toggle("border-slate-700");
|
|
|
|
activeSidenavIconColorClassFrom = "from-" + activeColorFrom;
|
|
activeSidenavIconColorClassTo = "to-" + activeColorTo;
|
|
|
|
activeSidenavIconColorClassFrom = "from-" + activeColorFrom;
|
|
activeSidenavIconColorClassTo = "to-" + activeColorTo;
|
|
|
|
activeSidenavCardIconColorClassFrom = "from-" + (activeColorFrom == "purple-700" ? "slate-600" : activeColorFrom);
|
|
activeSidenavCardIconColorClassTo = "to-" + (activeColorTo == "pink-500" ? "slate-300" : activeColorTo);
|
|
}
|
|
parent[i].removeAttribute("active-color");
|
|
}
|
|
|
|
var att = document.createAttribute("active-color");
|
|
|
|
a.setAttributeNode(att);
|
|
a.classList.toggle("border-white");
|
|
a.classList.toggle("border-slate-700");
|
|
|
|
sidenavCard.classList.remove(activeSidenavCardColorClassFrom);
|
|
sidenavCard.classList.remove(activeSidenavCardColorClassTo);
|
|
|
|
sidenavCardIcon.classList.remove(activeSidenavCardIconColorClassFrom);
|
|
sidenavCardIcon.classList.remove(activeSidenavCardIconColorClassTo);
|
|
|
|
sidenavIcon.classList.remove(activeSidenavIconColorClassFrom);
|
|
sidenavIcon.classList.remove(activeSidenavIconColorClassTo);
|
|
|
|
sidenavCard.classList.add(checkedSidenavCardColorFrom);
|
|
sidenavCard.classList.add(checkedSidenavCardColorTo);
|
|
|
|
sidenavCardIcon.classList.add(checkedSidenavCardIconColorClassFrom);
|
|
sidenavCardIcon.classList.add(checkedSidenavCardIconColorClassTo);
|
|
|
|
sidenavIcon.classList.add(checkedSidenavIconColorFrom);
|
|
sidenavIcon.classList.add(checkedSidenavIconColorTo);
|
|
}
|
|
|
|
// sidenav style
|
|
|
|
transparentBtn.addEventListener("click", function () {
|
|
const active_style_attr = document.createAttribute("active-style");
|
|
if (!this.hasAttribute(active_style_attr)) {
|
|
// change trigger buttons style
|
|
|
|
this.setAttributeNode(active_style_attr);
|
|
|
|
non_active_style.forEach((style_class) => {
|
|
this.classList.remove(style_class);
|
|
});
|
|
|
|
active_style.forEach((style_class) => {
|
|
this.classList.add(style_class);
|
|
});
|
|
|
|
whiteBtn.removeAttribute(active_style_attr);
|
|
|
|
active_style.forEach((style_class) => {
|
|
whiteBtn.classList.remove(style_class);
|
|
});
|
|
|
|
non_active_style.forEach((style_class) => {
|
|
whiteBtn.classList.add(style_class);
|
|
});
|
|
|
|
// change actual styles
|
|
|
|
white_sidenav_classes.forEach((style_class) => {
|
|
sidenav.classList.remove(style_class);
|
|
});
|
|
transparent_sidenav_classes.forEach((style_class) => {
|
|
sidenav.classList.add(style_class);
|
|
});
|
|
|
|
white_sidenav_highlighted.forEach((style_class) => {
|
|
sidenav_highlight.classList.remove(style_class);
|
|
});
|
|
transparent_sidenav_highlighted.forEach((style_class) => {
|
|
sidenav_highlight.classList.add(style_class);
|
|
});
|
|
for (var i = 0; i < sidenav_icons.length; i++) {
|
|
white_sidenav_icons.forEach((style_class) => {
|
|
sidenav_icons[i].classList.remove(style_class);
|
|
});
|
|
transparent_sidenav_icons.forEach((style_class) => {
|
|
sidenav_icons[i].classList.add(style_class);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
whiteBtn.addEventListener("click", function () {
|
|
const active_style_attr = document.createAttribute("active-style");
|
|
if (!this.hasAttribute(active_style_attr)) {
|
|
this.setAttributeNode(active_style_attr);
|
|
non_active_style.forEach((style_class) => {
|
|
this.classList.remove(style_class);
|
|
});
|
|
active_style.forEach((style_class) => {
|
|
this.classList.add(style_class);
|
|
});
|
|
|
|
transparentBtn.removeAttribute(active_style_attr);
|
|
active_style.forEach((style_class) => {
|
|
transparentBtn.classList.remove(style_class);
|
|
});
|
|
non_active_style.forEach((style_class) => {
|
|
transparentBtn.classList.add(style_class);
|
|
});
|
|
|
|
// change actual styles
|
|
|
|
transparent_sidenav_classes.forEach((style_class) => {
|
|
sidenav.classList.remove(style_class);
|
|
});
|
|
white_sidenav_classes.forEach((style_class) => {
|
|
sidenav.classList.add(style_class);
|
|
});
|
|
|
|
transparent_sidenav_highlighted.forEach((style_class) => {
|
|
sidenav_highlight.classList.remove(style_class);
|
|
});
|
|
|
|
white_sidenav_highlighted.forEach((style_class) => {
|
|
sidenav_highlight.classList.add(style_class);
|
|
});
|
|
|
|
for (var i = 0; i < sidenav_icons.length; i++) {
|
|
transparent_sidenav_icons.forEach((style_class) => {
|
|
sidenav_icons[i].classList.remove(style_class);
|
|
});
|
|
white_sidenav_icons.forEach((style_class) => {
|
|
sidenav_icons[i].classList.add(style_class);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
// navbar fixed plugin
|
|
|
|
if (navbar) {
|
|
if (navbar.getAttribute("navbar-scroll") == "true") {
|
|
buttonNavbarFixed.setAttribute("checked", "true");
|
|
}
|
|
buttonNavbarFixed.addEventListener("change", function () {
|
|
if (this.checked) {
|
|
navbar.setAttribute("navbar-scroll", "true");
|
|
navbar.classList.add("sticky");
|
|
navbar.classList.add("top-[1%]");
|
|
navbar.classList.add("backdrop-saturate-[200%]");
|
|
navbar.classList.add("backdrop-blur-[30px]");
|
|
navbar.classList.add("bg-[hsla(0,0%,100%,0.8)]");
|
|
navbar.classList.add("shadow-blur");
|
|
navbar.classList.add("z-110");
|
|
} else {
|
|
navbar.setAttribute("navbar-scroll", "false");
|
|
navbar.classList.remove("sticky");
|
|
navbar.classList.remove("top-[1%]");
|
|
navbar.classList.remove("backdrop-saturate-[200%]");
|
|
navbar.classList.remove("backdrop-blur-[30px]");
|
|
navbar.classList.remove("bg-[hsla(0,0%,100%,0.8)]");
|
|
navbar.classList.remove("shadow-blur");
|
|
navbar.classList.remove("z-110");
|
|
}
|
|
});
|
|
} else {
|
|
// buttonNavbarFixed.setAttribute("checked", "true");
|
|
buttonNavbarFixed.setAttribute("disabled", "true");
|
|
}
|