import bootstrap from "bootstrap/dist/js/bootstrap"; window.bootstrap = bootstrap; import "iconify-icon"; import "simplebar/dist/simplebar"; // import flatpickr from "flatpickr"; // import "flatpickr/dist/flatpickr.min.css"; // class InitDatePicker { // constructor(selector = ".datepicker") { // this.selector = selector; // } // init() { // const elements = document.querySelectorAll(this.selector); // if (elements.length === 0) return; // Skip if no elements found // const today = new Date(); // const minYear = today.getFullYear() - 5; // elements.forEach((element) => { // flatpickr(element, { // enableTime: false, // dateFormat: "Y-m-d", // minDate: `${minYear}-01-01`, // maxDate: today, // }); // }); // } // } class Components { initBootstrapComponents() { [...document.querySelectorAll('[data-bs-toggle="popover"]')].map( (e) => new bootstrap.Popover(e) ), [...document.querySelectorAll('[data-bs-toggle="tooltip"]')].map( (e) => new bootstrap.Tooltip(e) ), [...document.querySelectorAll(".offcanvas")].map( (e) => new bootstrap.Offcanvas(e) ); var e = document.getElementById("toastPlacement"), t = (e && document .getElementById("selectToastPlacement") .addEventListener("change", function () { e.dataset.originalClass || (e.dataset.originalClass = e.className), (e.className = e.dataset.originalClass + " " + this.value); }), [].slice .call(document.querySelectorAll(".toast")) .map(function (e) { return new bootstrap.Toast(e); }), document.getElementById("liveAlertBtn")); t && t.addEventListener("click", () => { alert("Nice, you triggered this alert message!", "success"); }); } initfullScreenListener() { var e = document.querySelector('[data-toggle="fullscreen"]'); e && e.addEventListener("click", function (e) { e.preventDefault(), document.body.classList.toggle("fullscreen-enable"), document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement ? document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen && document.webkitCancelFullScreen() : document.documentElement.requestFullscreen ? document.documentElement.requestFullscreen() : document.documentElement.mozRequestFullScreen ? document.documentElement.mozRequestFullScreen() : document.documentElement.webkitRequestFullscreen && document.documentElement.webkitRequestFullscreen( Element.ALLOW_KEYBOARD_INPUT ); }); } initCounter() { var e = document.querySelectorAll(".counter-value"); function a(e) { return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } e && e.forEach(function (i) { !(function e() { var t = +i.getAttribute("data-target"), n = +i.innerText, o = t / 250; o < 1 && (o = 1), n < t ? ((i.innerText = (n + o).toFixed(0)), setTimeout(e, 1)) : (i.innerText = a(t)), a(i.innerText); })(); }); } init() { this.initBootstrapComponents(), this.initfullScreenListener(), this.initCounter(); } } class FormValidation { initFormValidation() { document.querySelectorAll(".needs-validation").forEach((t) => { t.addEventListener( "submit", (e) => { t.checkValidity() || (e.preventDefault(), e.stopPropagation()), t.classList.add("was-validated"); }, !1 ); }); } init() { this.initFormValidation(); } } document.addEventListener("DOMContentLoaded", function (e) { new Components().init(), new FormValidation().init(); // new InitDatePicker().init(); }); class ThemeLayout { constructor() { (this.html = document.getElementsByTagName("html")[0]), (this.config = {}), (this.defaultConfig = window.config); } initVerticalMenu() { var e = document.querySelectorAll(".navbar-nav li .collapse"); document .querySelectorAll(".navbar-nav li [data-bs-toggle='collapse']") .forEach((e) => { e.addEventListener("click", function (e) { e.preventDefault(); }); }), e.forEach((e) => { e.addEventListener("show.bs.collapse", function (t) { let n = t.target.closest(".collapse.show"); document .querySelectorAll(".navbar-nav .collapse.show") .forEach((e) => { e !== t.target && e !== n && new bootstrap.Collapse(e).hide(); }); }); }), document.querySelector(".navbar-nav") && (document .querySelectorAll(".navbar-nav a") .forEach(function (t) { var e = window.location.href.split(/[?#]/)[0]; if (t.href === e) { t.classList.add("active"), t.parentNode.classList.add("active"); let e = t.closest(".collapse"); for (; e; ) e.classList.add("show"), e.parentElement.children[0].classList.add( "active" ), e.parentElement.children[0].setAttribute( "aria-expanded", "true" ), (e = e.parentElement.closest(".collapse")); } }), setTimeout(function () { var e, n, o, i, a, t = document.querySelector(".nav-item li a.active"); null != t && ((e = document.querySelector( ".app-sidebar .simplebar-content-wrapper" )), (t = t.offsetTop - 300), e) && 100 < t && ((o = (n = e).scrollTop), (i = t - o), (a = 0), (function e() { var t = (a += 20), t = (t /= 300) < 1 ? (i / 2) * t * t + o : (-i / 2) * (--t * (t - 2) - 1) + o; (n.scrollTop = t), a < 600 && setTimeout(e, 20); })()); }, 200)); } initConfig() { (this.defaultConfig = JSON.parse(JSON.stringify(window.defaultConfig))), (this.config = JSON.parse(JSON.stringify(window.config))), this.setSwitchFromConfig(); } changeMenuColor(e) { (this.config.menu.color = e), this.html.setAttribute("data-sidebar-color", e), this.setSwitchFromConfig(); } changeMenuSize(e, t = !0) { this.html.setAttribute("data-sidebar-size", e), t && ((this.config.menu.size = e), this.setSwitchFromConfig()); } changeThemeMode(e) { (this.config.theme = e), this.html.setAttribute("data-bs-theme", e), this.setSwitchFromConfig(); } changeTopbarColor(e) { (this.config.topbar.color = e), this.html.setAttribute("data-topbar-color", e), this.setSwitchFromConfig(); } resetTheme() { (this.config = JSON.parse(JSON.stringify(window.defaultConfig))), this.changeMenuColor(this.config.menu.color), this.changeMenuSize(this.config.menu.size), this.changeThemeMode(this.config.theme), this.changeTopbarColor(this.config.topbar.color), this._adjustLayout(); } initSwitchListener() { var n = this, e = (document .querySelectorAll("input[name=data-sidebar-color]") .forEach(function (t) { t.addEventListener("change", function (e) { n.changeMenuColor(t.value); }); }), document .querySelectorAll("input[name=data-sidebar-size]") .forEach(function (t) { t.addEventListener("change", function (e) { n.changeMenuSize(t.value); }); }), document .querySelectorAll("input[name=data-bs-theme]") .forEach(function (t) { t.addEventListener("change", function (e) { n.changeThemeMode(t.value); }); }), document .querySelectorAll("input[name=data-topbar-color]") .forEach(function (t) { t.addEventListener("change", function (e) { n.changeTopbarColor(t.value); }); }), document.getElementById("light-dark-mode")); e && e.addEventListener("click", function (e) { "light" === n.config.theme ? n.changeThemeMode("light") : n.changeThemeMode("light"); }), (e = document.querySelector("#reset-layout")) && e.addEventListener("click", function (e) { n.resetTheme(); }), (e = document.querySelector(".button-toggle-menu")) && e.addEventListener("click", function () { var e = n.config.menu.size, t = n.html.getAttribute("data-sidebar-size", e); "hidden" !== t ? "condensed" === t ? n.changeMenuSize( "condensed" == e ? "default" : e, !1 ) : n.changeMenuSize("condensed", !1) : n.showBackdrop(), n.html.classList.toggle("sidebar-enable"); }); } showBackdrop() { let t = document.createElement("div"), n = ((t.classList = "offcanvas-backdrop fade show"), document.body.appendChild(t), (document.body.style.overflow = "hidden"), 1040 < window.innerWidth && (document.body.style.paddingRight = "15px"), this); t.addEventListener("click", function (e) { n.html.classList.remove("sidebar-enable"), document.body.removeChild(t), (document.body.style.overflow = null), (document.body.style.paddingRight = null); }); } initWindowSize() { var t = this; window.addEventListener("resize", function (e) { t._adjustLayout(); }); } _adjustLayout() { window.innerWidth <= 1140 ? this.changeMenuSize("hidden", !1) : this.changeMenuSize(this.config.menu.size); } setSwitchFromConfig() { sessionStorage.setItem( "__DARKONE_CONFIG__", JSON.stringify(this.config) ), document .querySelectorAll(".settings-bar input[type=radio]") .forEach(function (e) { e.checked = !1; }); var e, t, n, o = this.config; o && ((e = document.querySelector( "input[type=radio][name=data-bs-theme][value=" + o.theme + "]" )), (t = document.querySelector( "input[type=radio][name=data-topbar-color][value=" + o.topbar.color + "]" )), (n = document.querySelector( "input[type=radio][name=data-sidebar-size][value=" + o.menu.size + "]" )), (o = document.querySelector( "input[type=radio][name=data-sidebar-color][value=" + o.menu.color + "]" )), e && (e.checked = !0), t && (t.checked = !0), n && (n.checked = !0), o) && (o.checked = !0); } init() { this.initVerticalMenu(), this.initConfig(), this.initSwitchListener(), this.initWindowSize(), this._adjustLayout(), this.setSwitchFromConfig(); } } new ThemeLayout().init();