/*========================================================================================= File Name: customizer.js Description: Template customizer js. ---------------------------------------------------------------------------------------- Item Name: Vuesax HTML Admin Template Version: 1.1 Author: Pixinvent Author URL: hhttp://www.themeforest.net/user/pixinvent ==========================================================================================*/ (function (window, document, $) { 'use strict'; // main menu active gradient colors object var themeColor = { "theme-primary": "linear-gradient(118deg, #7367f0, rgba(115, 103, 240, 0.7))", "theme-success": "linear-gradient(118deg, #28c76f, rgba(40, 199, 111 , 0.7))", "theme-danger": "linear-gradient(118deg, #ea5455, rgba(234, 84, 85, 0.7))", "theme-info": "linear-gradient(118deg, #00cfe8, rgba(0, 207, 232, 0.7))", "theme-warning": "linear-gradient(118deg, #ff9f43, rgba(255, 159, 67, 0.7))", "theme-dark": "linear-gradient(118deg, #1e1e1e, rgba(30, 30, 30, 0.7))" } // main menu active box shadow object var themeBoxShadow = { "theme-primary": "0 0 10px 1px rgba(115, 103, 240, 0.7)", "theme-success": "0 0 10px 1px rgba(40, 199, 111 , 0.7)", "theme-danger": "0 0 10px 1px rgba(234, 84, 85, 0.7)", "theme-info": "0 0 10px 1px rgba(0, 207, 232, 0.7)", "theme-warning": "0 0 10px 1px rgba(255, 159, 67, 0.7)", "theme-dark": "0 0 10px 1px rgba(30, 30, 30, 0.7)" } // colors for navbar header text of main menu var currentColor = { "theme-default": "#fff", "theme-primary": "#7367f0", "theme-success": "#28c76f", "theme-danger": "#ea5455", "theme-info": "#00cfe8", "theme-warning": "#ff9f43", "theme-dark": "#adb5bd" } // Brand Logo Poisitons var LogoPosition = { "theme-primary": "-65px -54px", "theme-success": "-120px -10px", "theme-danger": "-10px -10px", "theme-info": "-10px -54px", "theme-warning": "-120px -54px", "theme-dark": "-65px -10px" } var body = $("body"), appContent = $(".app-content"), mainMenu = $(".main-menu"), mainMenuContent = $(".menu-content"), menuCollapsed = $(".menu-collapsed"), menuExpanded = $(".menu-expanded"), footer = $(".footer"), navbar = $(".header-navbar"), navBarShadow = $(".header-navbar-shadow"), toggleIcon = $(".toggle-icon"), collapseSidebar = $("#collapse-sidebar-switch"), customizer = $(".customizer"), brandLogo = $(".brand-logo"); // Customizer toggle & close button click events [Remove customizer code from production] $('.customizer-toggle').on('click', function (e) { e.preventDefault(); $(customizer).toggleClass('open'); }); $('.customizer-close').on('click', function () { $(customizer).removeClass('open'); }); // perfect scrollbar for customizer if ($('.customizer-content').length > 0) { var customizer_content = new PerfectScrollbar('.customizer-content'); } /***** Theme Colors Options *****/ $(document).on("click", "#customizer-theme-colors .color-box", function () { var $this = $(this); $this.siblings().removeClass('selected'); $this.addClass("selected"); var selectedColor = $(this).data("color"), changeColor = themeColor[selectedColor], selectedShadow = themeBoxShadow[selectedColor], selectedTextColor = currentColor[selectedColor], selectedLogo = LogoPosition[selectedColor]; // main-menu if (mainMenuContent.find("li.active").length) { mainMenuContent.find("li.active").css( { "background": changeColor, "box-shadow": selectedShadow } ); } else { mainMenu.find(".nav-item.active a").css( { "background": changeColor, "box-shadow": selectedShadow } ); } // Text with logo $(".brand-text").css("color", selectedTextColor); // toggle icon toggleIcon.removeClass("primary").css("color", selectedTextColor); // Changes logo color brandLogo.css("background-position", selectedLogo); }); /***** Theme Layout Options *****/ $(".layout-name").on("click", function () { var $this = $(this); var currentLayout = $this.data("layout"); body.removeClass("dark-layout semi-dark-layout").addClass(currentLayout); if (currentLayout === "") { mainMenu.removeClass("menu-dark").addClass("menu-light"); navbar.removeClass("navbar-dark").addClass("navbar-light"); } }) // checks right radio if layout type matches var layout = body.data("layout"); $(".layout-name[data-layout='" + layout + "']").prop('checked', true); /***** Collapse menu switch *****/ collapseSidebar.on("click", function () { if ($(body).hasClass("menu-expanded")) { body.removeClass("menu-expanded").addClass("menu-collapsed"); mainMenu.find(".sidebar-group-active").removeClass("open").addClass("menu-collapsed-open"); toggleIcon.removeClass("feather icon-disc").addClass("feather icon-circle"); } else { body.removeClass("menu-collapsed").addClass("menu-expanded"); mainMenu.find(".sidebar-group-active").addClass("open"); toggleIcon.removeClass("feather icon-circle").addClass("feather icon-disc"); } }) // connects toggle icon with collapse sidebar switch toggleIcon.on("click", function () { collapseSidebar.prop("checked", !collapseSidebar.prop("checked")); }) // checks if main menu is collapsed by default if (body.hasClass("menu-collapsed")) { collapseSidebar.prop("checked", true); } else { collapseSidebar.prop("checked", false); } /***** Navbar Color Options *****/ $("#customizer-navbar-colors .color-box").on("click", function () { var $this = $(this); $this.siblings().removeClass('selected'); $this.addClass("selected"); var navbarColor = $this.data("navbar-color"); // changes navbar colors if (navbarColor) { appContent .find(navbar) .removeClass("bg-primary bg-success bg-danger bg-info bg-warning bg-dark") .addClass(navbarColor + " navbar-dark"); } else { appContent .find(navbar) .removeClass("bg-primary bg-success bg-danger bg-info bg-warning bg-dark navbar-dark"); } if (body.hasClass("dark-layout")) { navbar.addClass("navbar-dark") } }) /***** Navbar Type *****/ // Hides Navbar $("#navbar-hidden").on("click", function () { navbar.addClass("d-none"); navBarShadow.addClass("d-none"); body.removeClass("navbar-static navbar-floating navbar-sticky").addClass("navbar-hidden"); }); // changes to Static navbar $("#navbar-static").on("click", function () { navBarShadow.addClass("d-none"); navbar .removeClass("d-none floating-nav fixed-top") .addClass("navbar-static-top"); body.removeClass("navbar-hidden navbar-floating navbar-sticky").addClass("navbar-static"); }); // change to floating navbar $("#navbar-floating").on("click", function () { navBarShadow.removeClass("d-none"); navbar .removeClass("d-none fixed-top navbar-static-top fixed-top") .addClass("floating-nav"); body.removeClass("navbar-static navbar-hidden navbar-sticky").addClass("navbar-floating"); }); // changes to Static navbar $("#navbar-sticky").on("click", function () { navBarShadow.addClass("d-none"); navbar .removeClass("d-none floating-nav navbar-static-top") .addClass("fixed-top"); body.removeClass("navbar-static navbar-floating navbar-hidden").addClass("navbar-sticky"); }); /***** Footer Type *****/ // Hides footer $("#footer-hidden").on("click", function () { footer.addClass("d-none"); body.removeClass("footer-static fixed-footer").addClass("footer-hidden"); }); // changes to Static footer $("#footer-static").on("click", function () { body.removeClass("fixed-footer"); footer.removeClass("d-none").addClass("footer-static"); body.removeClass("footer-hidden fixed-footer").addClass("footer-static"); }); // changes to Sticky footer $("#footer-sticky").on("click", function () { body.removeClass("footer-static fixed-hidden").addClass("fixed-footer"); footer.removeClass("d-none footer-static"); }); /***** Hide Scroll To Top *****/ $("#hide-scroll-top-switch").on("click", function () { var scrollTopBtn = $(".scroll-top") if ($(this).prop("checked")) { scrollTopBtn.addClass("d-none"); } else { scrollTopBtn.removeClass("d-none"); } }); })(window, document, jQuery);