661 lines
27 KiB
JavaScript
661 lines
27 KiB
JavaScript
/*
|
|
Template Name: Toner eCommerce + Admin HTML Template
|
|
Author: Themesbrand
|
|
Version: 1.2.0
|
|
Website: https://Themesbrand.com/
|
|
Contact: Themesbrand@gmail.com
|
|
File: menu Js File
|
|
*/
|
|
|
|
var default_lang = "en"; // set Default Language
|
|
var language = localStorage.getItem("language");
|
|
|
|
function initLanguage() {
|
|
// Set new language
|
|
(language === null) ? setLanguage(default_lang) : setLanguage(language);
|
|
var languages = document.getElementsByClassName("language");
|
|
languages && Array.from(languages).forEach(function (dropdown) {
|
|
dropdown.addEventListener("click", function (event) {
|
|
setLanguage(dropdown.getAttribute("data-lang"));
|
|
});
|
|
});
|
|
}
|
|
|
|
function setLanguage(lang) {
|
|
if (document.getElementById("header-lang-img")) {
|
|
if (lang == "en") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/us.svg";
|
|
document.getElementById("lang-name").innerHTML = "English"
|
|
} else if (lang == "sp") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/spain.svg";
|
|
document.getElementById("lang-name").innerHTML = "Española"
|
|
} else if (lang == "gr") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/germany.svg";
|
|
document.getElementById("lang-name").innerHTML = "Deutsche"
|
|
} else if (lang == "it") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/italy.svg";
|
|
document.getElementById("lang-name").innerHTML = "Italiana"
|
|
} else if (lang == "ru") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/russia.svg";
|
|
document.getElementById("lang-name").innerHTML = "русский"
|
|
} else if (lang == "ch") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/china.svg";
|
|
document.getElementById("lang-name").innerHTML = "中国人"
|
|
} else if (lang == "fr") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/french.svg";
|
|
document.getElementById("lang-name").innerHTML = "français"
|
|
} else if (lang == "sa") {
|
|
document.getElementById("header-lang-img").src = "../build/images/flags/sa.svg";
|
|
document.getElementById("lang-name").innerHTML = "عربى"
|
|
}
|
|
localStorage.setItem("language", lang);
|
|
language = localStorage.getItem("language");
|
|
getLanguage();
|
|
}
|
|
}
|
|
|
|
// Multi language setting
|
|
function getLanguage() {
|
|
language == null ? setLanguage(default_lang) : false;
|
|
var request = new XMLHttpRequest();
|
|
// Instantiating the request object
|
|
request.open("GET", "../build/lang/" + language + ".json");
|
|
// Defining event listener for readystatechange event
|
|
request.onreadystatechange = function () {
|
|
// Check if the request is compete and was successful
|
|
if (this.readyState === 4 && this.status === 200) {
|
|
var data = JSON.parse(this.responseText);
|
|
Object.keys(data).forEach(function (key) {
|
|
var elements = document.querySelectorAll("[data-key='" + key + "']");
|
|
Array.from(elements).forEach(function (elem) {
|
|
elem.textContent = data[key];
|
|
});
|
|
});
|
|
}
|
|
};
|
|
// Sending the request to the server
|
|
request.send();
|
|
}
|
|
|
|
initLanguage();
|
|
|
|
// Search menu dropdown on Topbar
|
|
function isCustomDropdown() {
|
|
//Search bar
|
|
var searchOptions = document.getElementById("search-close-options");
|
|
var dropdown = document.getElementById("search-dropdown");
|
|
var searchInput = document.getElementById("search-options");
|
|
if (searchInput) {
|
|
searchInput.addEventListener("focus", function () {
|
|
var inputLength = searchInput.value.length;
|
|
if (inputLength > 0) {
|
|
dropdown.classList.add("show");
|
|
searchOptions.classList.remove("d-none");
|
|
} else {
|
|
dropdown.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
|
|
searchInput.addEventListener("keyup", function (event) {
|
|
var inputLength = searchInput.value.length;
|
|
if (inputLength > 0) {
|
|
dropdown.classList.add("show");
|
|
searchOptions.classList.remove("d-none");
|
|
|
|
var inputVal = searchInput.value.toLowerCase();
|
|
var notifyItem = document.getElementsByClassName("notify-item");
|
|
|
|
Array.from(notifyItem).forEach(function (element) {
|
|
var notifiTxt = ''
|
|
if (element.querySelector("h6")) {
|
|
var spantext = element.getElementsByTagName("span")[0].innerText.toLowerCase()
|
|
var name = element.querySelector("h6").innerText.toLowerCase()
|
|
if (name.includes(inputVal)) {
|
|
notifiTxt = name
|
|
} else {
|
|
notifiTxt = spantext
|
|
}
|
|
} else if (element.getElementsByTagName("span")) {
|
|
notifiTxt = element.getElementsByTagName("span")[0].innerText.toLowerCase()
|
|
}
|
|
|
|
if (notifiTxt) {
|
|
if (notifiTxt.includes(inputVal)) {
|
|
element.classList.add("d-block");
|
|
element.classList.remove("d-none");
|
|
} else {
|
|
element.classList.remove("d-block");
|
|
element.classList.add("d-none");
|
|
}
|
|
}
|
|
|
|
Array.from(document.getElementsByClassName("notification-group-list")).forEach(function (element) {
|
|
if (element.querySelectorAll(".notify-item.d-block").length == 0) {
|
|
element.querySelector(".notification-title").style.display = 'none'
|
|
} else {
|
|
element.querySelector(".notification-title").style.display = 'block'
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
dropdown.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
|
|
searchOptions.addEventListener("click", function () {
|
|
searchInput.value = "";
|
|
dropdown.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
});
|
|
|
|
document.body.addEventListener("click", function (e) {
|
|
if (e.target.getAttribute("id") !== "search-options") {
|
|
dropdown.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
}
|
|
|
|
// cart dropdown
|
|
|
|
// input spin
|
|
isData();
|
|
function isData() {
|
|
var plus = document.getElementsByClassName('plus');
|
|
var minus = document.getElementsByClassName('minus');
|
|
var product = document.getElementsByClassName("product");
|
|
|
|
if (plus) {
|
|
Array.from(plus).forEach(function (e) {
|
|
e.addEventListener('click', function (event) {
|
|
// if(event.target.previousElementSibling.value )
|
|
if (parseInt(e.previousElementSibling.value) < event.target.previousElementSibling.getAttribute('max')) {
|
|
event.target.previousElementSibling.value++;
|
|
if (product) {
|
|
Array.from(product).forEach(function (x) {
|
|
updateQuantity(event.target);
|
|
})
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
if (minus) {
|
|
Array.from(minus).forEach(function (e) {
|
|
e.addEventListener('click', function (event) {
|
|
if (parseInt(e.nextElementSibling.value) > event.target.nextElementSibling.getAttribute('min')) {
|
|
event.target.nextElementSibling.value--;
|
|
if (product) {
|
|
Array.from(product).forEach(function (x) {
|
|
updateQuantity(event.target);
|
|
})
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
var taxRate = 0.125;
|
|
var shippingRate = 65.00;
|
|
var discountRate = 0.15;
|
|
|
|
var currencySign = "$";
|
|
var cartList = document.querySelectorAll(".cartlist li").length;
|
|
document.querySelectorAll(".cartitem-badge").forEach(function(item){
|
|
item.innerHTML = cartList
|
|
})
|
|
|
|
document.querySelectorAll(".product-list").forEach(function(elem){
|
|
elem.querySelectorAll(".product-count").forEach(function(subelem){
|
|
subelem.innerHTML = elem.querySelectorAll(".product").length
|
|
})
|
|
recalculateCart(elem);
|
|
})
|
|
|
|
function recalculateCart(elm) {
|
|
var subtotal = 0;
|
|
|
|
Array.from(elm.getElementsByClassName("product")).forEach(function (item) {
|
|
Array.from(item.getElementsByClassName('product-line-price')).forEach(function (e) {
|
|
subtotal += parseFloat(e.innerHTML);
|
|
});
|
|
});
|
|
|
|
/* Calculate totals */
|
|
var tax = subtotal * taxRate;
|
|
var discount = subtotal * discountRate;
|
|
|
|
var shipping = (subtotal > 0 ? shippingRate : 0);
|
|
var total = subtotal + tax + shipping - discount;
|
|
|
|
elm.querySelector(".cart-subtotal").innerHTML = currencySign + subtotal.toFixed(2);
|
|
elm.querySelector(".cart-tax").innerHTML = currencySign + tax.toFixed(2);
|
|
elm.querySelector(".cart-shipping").innerHTML = currencySign + shipping.toFixed(2);
|
|
elm.querySelector(".cart-total").innerHTML = currencySign + total.toFixed(2);
|
|
elm.querySelector(".cart-discount").innerHTML = "-" + currencySign + discount.toFixed(2);
|
|
}
|
|
|
|
function updateQuantity(quantityInput) {
|
|
if(quantityInput.closest('.product')){
|
|
var productRow = quantityInput.closest('.product');
|
|
var productList = quantityInput.closest('.product-list');
|
|
var price;
|
|
if (productRow || productRow.getElementsByClassName('product-price'))
|
|
Array.from(productRow.getElementsByClassName('product-price')).forEach(function (e) {
|
|
price = parseFloat(e.innerHTML);
|
|
});
|
|
|
|
if (quantityInput.previousElementSibling && quantityInput.previousElementSibling.classList.contains("product-quantity")) {
|
|
var quantity = quantityInput.previousElementSibling.value;
|
|
} else if (quantityInput.nextElementSibling && quantityInput.nextElementSibling.classList.contains("product-quantity")) {
|
|
var quantity = quantityInput.nextElementSibling.value;
|
|
}
|
|
var linePrice = price * quantity;
|
|
/* Update line price display and recalc cart totals */
|
|
Array.from(productRow.getElementsByClassName('product-line-price')).forEach(function (e) {
|
|
e.innerHTML = linePrice.toFixed(2);
|
|
recalculateCart(productList);
|
|
});
|
|
}
|
|
}
|
|
|
|
// Remove product from cart
|
|
var removeProduct = document.getElementById('removeItemModal')
|
|
if (removeProduct)
|
|
removeProduct.addEventListener('show.bs.modal', function (e) {
|
|
document.getElementById('remove-product').addEventListener('click', function (event) {
|
|
e.relatedTarget.closest('.product').remove();
|
|
|
|
document.getElementById("close-modal").click();
|
|
document.querySelectorAll(".cartitem-badge").forEach(function(item){
|
|
item.innerHTML = document.querySelectorAll(".cartlist li").length;
|
|
})
|
|
|
|
document.querySelectorAll(".product-list").forEach(function(elem){
|
|
elem.querySelectorAll(".product-count").forEach(function(subelem){
|
|
subelem.innerHTML = elem.querySelectorAll(".product").length
|
|
})
|
|
recalculateCart(elem);
|
|
})
|
|
});
|
|
});
|
|
}
|
|
// search menu dropdown on topbar
|
|
function isCustomDropdownResponsive() {
|
|
//Search bar
|
|
var searchOptions = document.getElementById("search-close-options");
|
|
var dropdownReponsive = document.getElementById("search-dropdown-reponsive");
|
|
var searchInputReponsive = document.getElementById("search-options-reponsive");
|
|
|
|
if (searchOptions && dropdownReponsive && searchInputReponsive) {
|
|
searchInputReponsive.addEventListener("focus", function () {
|
|
var inputLength = searchInputReponsive.value.length;
|
|
if (inputLength > 0) {
|
|
dropdownReponsive.classList.add("show");
|
|
searchOptions.classList.remove("d-none");
|
|
} else {
|
|
dropdownReponsive.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
|
|
searchInputReponsive.addEventListener("keyup", function () {
|
|
var inputLength = searchInputReponsive.value.length;
|
|
if (inputLength > 0) {
|
|
dropdownReponsive.classList.add("show");
|
|
searchOptions.classList.remove("d-none");
|
|
} else {
|
|
dropdownReponsive.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
|
|
searchOptions.addEventListener("click", function () {
|
|
searchInputReponsive.value = "";
|
|
dropdownReponsive.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
});
|
|
|
|
document.body.addEventListener("click", function (e) {
|
|
if (e.target.getAttribute("id") !== "search-options") {
|
|
dropdownReponsive.classList.remove("show");
|
|
searchOptions.classList.add("d-none");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function elementInViewport(el) {
|
|
if (el) {
|
|
var top = el.offsetTop;
|
|
var left = el.offsetLeft;
|
|
var width = el.offsetWidth;
|
|
var height = el.offsetHeight;
|
|
|
|
if (el.offsetParent) {
|
|
while (el.offsetParent) {
|
|
el = el.offsetParent;
|
|
top += el.offsetTop;
|
|
left += el.offsetLeft;
|
|
}
|
|
}
|
|
return (
|
|
top >= window.pageYOffset &&
|
|
left >= window.pageXOffset &&
|
|
top + height <= window.pageYOffset + window.innerHeight &&
|
|
left + width <= window.pageXOffset + window.innerWidth
|
|
);
|
|
}
|
|
}
|
|
|
|
function windowResizeHover() {
|
|
var isElement = document.querySelectorAll(".ecommerce-navbar .navbar-nav li");
|
|
Array.from(isElement).forEach(function (item) {
|
|
item.addEventListener("click", menuItem.bind(this), false);
|
|
item.addEventListener("mouseover", menuItem.bind(this), false);
|
|
});
|
|
|
|
var windowSize = document.documentElement.clientWidth;
|
|
if (windowSize < 992) {
|
|
var currentPath = location.pathname == "/" ? "index" : location.pathname.substring(1);
|
|
currentPath = currentPath.substring(currentPath.lastIndexOf("/") + 1);
|
|
|
|
if (currentPath) {
|
|
var a = document.getElementById("navigation-menu").querySelector('[href="' + currentPath + '"]');
|
|
if (a) {
|
|
var parentCollapseDiv = a.closest(".dropdown-menu");
|
|
|
|
if (parentCollapseDiv) {
|
|
parentCollapseDiv.classList.add("show");
|
|
if (parentCollapseDiv.parentElement) {
|
|
parentCollapseDiv.classList.add("show");
|
|
parentCollapseDiv.parentElement.children[0].classList.add("show");
|
|
parentCollapseDiv.parentElement.children[0].setAttribute("aria-expanded", "true");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.children[0].classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.children[0].setAttribute("aria-expanded", "true");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].setAttribute("aria-expanded", "true");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].classList.add("show");
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].setAttribute("aria-expanded", "true");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
document.querySelectorAll("#navigation-menu .dropdown").forEach(function (elem) {
|
|
if (elem.querySelector(".dropdown-menu").classList.contains("show")) {
|
|
elem.querySelector(".dropdown-menu").classList.remove("show");
|
|
}
|
|
if (elem.querySelector(".dropdown-toggle")) {
|
|
elem.querySelector(".dropdown-toggle").setAttribute("aria-expanded", "false")
|
|
}
|
|
});
|
|
}
|
|
|
|
var myCollapse = document.getElementById("navbarSupportedContent");
|
|
var bsCollapse = new bootstrap.Collapse(myCollapse,{
|
|
toggle: false
|
|
})
|
|
bsCollapse.hide();
|
|
|
|
}
|
|
|
|
window.addEventListener("resize", windowResizeHover);
|
|
|
|
windowResizeHover();
|
|
|
|
function menuItem(e) {
|
|
if (e.target && e.target.matches(".submenu a.nav-link")) {
|
|
if (elementInViewport(e.target.nextElementSibling) == false) {
|
|
e.target.nextElementSibling.classList.add("dropdown-custom-right");
|
|
// e.target.parentElement.parentElement.classList.add("dropdown-custom-right");
|
|
|
|
var eleChild = e.target.nextElementSibling;
|
|
Array.from(eleChild.querySelectorAll(".submenu")).forEach(function (item) {
|
|
item.classList.add("dropdown-custom-right");
|
|
});
|
|
} else if (elementInViewport(e.target.nextElementSibling) == true) {
|
|
if (window.innerWidth >= 1848) {
|
|
var elements = document.getElementsByClassName("dropdown-custom-right");
|
|
while (elements.length > 0) {
|
|
elements[0].classList.remove("dropdown-custom-right");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function initActiveMenu() {
|
|
var currentPath = location.pathname == "/" ? "index" : location.pathname.substring(1);
|
|
currentPath = currentPath.substring(currentPath.lastIndexOf("/") + 1);
|
|
|
|
if (currentPath) {
|
|
var a = document.getElementById("navigation-menu").querySelector('.nav-link[href="' + currentPath + '"]');
|
|
if (a) {
|
|
a.classList.add("active");
|
|
var parentCollapseDiv = a.closest(".dropdown-menu");
|
|
if (parentCollapseDiv) {
|
|
if (parentCollapseDiv.parentElement) {
|
|
parentCollapseDiv.parentElement.children[0].classList.add("active");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.children[0].classList.add("active");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].classList.add("active");
|
|
if (parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement) {
|
|
parentCollapseDiv.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].classList.add("active");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function initMenuItemScroll() {
|
|
setTimeout(function () {
|
|
var sidebarMenu = document.getElementById("navbarSupportedContent");
|
|
if (sidebarMenu) {
|
|
if (sidebarMenu.querySelector(".nav-link.active")) {
|
|
var activeMenu = sidebarMenu.querySelector(".nav-link.active").offsetTop;
|
|
setTimeout(function () {
|
|
sidebarMenu.scrollTop = activeMenu
|
|
}, 0);
|
|
|
|
}
|
|
}
|
|
}, 250);
|
|
}
|
|
initMenuItemScroll();
|
|
|
|
const navbarCollapsible = document.getElementById('navbarSupportedContent')
|
|
navbarCollapsible.addEventListener('shown.bs.collapse', event => {
|
|
initMenuItemScroll()
|
|
})
|
|
|
|
function initModeSetting() {
|
|
if (sessionStorage.getItem("data-bs-theme") && sessionStorage.getItem("data-bs-theme") == "light") {
|
|
document.documentElement.setAttribute('data-bs-theme', 'light');
|
|
}else if (sessionStorage.getItem("data-bs-theme") == "dark") {
|
|
document.documentElement.setAttribute('data-bs-theme', 'dark');
|
|
}
|
|
|
|
var html = document.getElementsByTagName("HTML")[0];
|
|
document.querySelectorAll("#light-dark-mode .dropdown-item").forEach(function (item) {
|
|
item.addEventListener("click", function (event) {
|
|
if (html.hasAttribute("data-bs-theme") && item.getAttribute("data-mode") == "light") {
|
|
sessionStorage.setItem("data-bs-theme", "light");
|
|
} else if (html.hasAttribute("data-bs-theme") && item.getAttribute("data-mode") == "dark") {
|
|
sessionStorage.setItem("data-bs-theme", "dark");
|
|
} else if (html.hasAttribute("data-bs-theme") && item.getAttribute("data-mode") == "auto") {
|
|
const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)");
|
|
if (prefersDarkScheme.matches) {
|
|
sessionStorage.setItem("data-bs-theme", "dark");
|
|
} else {
|
|
sessionStorage.setItem("data-bs-theme", "light");
|
|
}
|
|
}
|
|
|
|
if (sessionStorage.getItem("data-bs-theme") && sessionStorage.getItem("data-bs-theme") == "light") {
|
|
document.documentElement.setAttribute('data-bs-theme', 'light');
|
|
}else if (sessionStorage.getItem("data-bs-theme") == "dark") {
|
|
document.documentElement.setAttribute('data-bs-theme', 'dark');
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
|
|
function init() {
|
|
isCustomDropdown();
|
|
isCustomDropdownResponsive();
|
|
initActiveMenu();
|
|
initMenuItemScroll();
|
|
initModeSetting();
|
|
}
|
|
init();
|
|
|
|
|
|
// Window scroll sticky class add
|
|
function windowScroll() {
|
|
var navbar = document.getElementById("navbar");
|
|
if (navbar) {
|
|
if (document.body.scrollTop >= 50 || document.documentElement.scrollTop >= 50) {
|
|
navbar.classList.add("is-sticky");
|
|
} else {
|
|
navbar.classList.remove("is-sticky");
|
|
}
|
|
}
|
|
}
|
|
|
|
window.addEventListener('scroll', function (ev) {
|
|
ev.preventDefault();
|
|
windowScroll();
|
|
});
|
|
|
|
//modal js
|
|
function firstTimeLoad() {
|
|
|
|
var myModal = new bootstrap.Modal(document.getElementById('subscribeModal'), {
|
|
keyboard: false
|
|
})
|
|
var modalToggle = document.getElementById('subscribeModal') // relatedTarget
|
|
|
|
setTimeout(function () {
|
|
myModal ? myModal.show(modalToggle) : "";
|
|
}, 1000);
|
|
}
|
|
|
|
firstTimeLoad();
|
|
|
|
// var tooltipTriggerList = [].slice.call(
|
|
// document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
|
// );
|
|
// var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
|
// return new bootstrap.Tooltip(tooltipTriggerEl);
|
|
// });
|
|
|
|
function initComponents() {
|
|
// tooltip
|
|
var tooltipTriggerList = [].slice.call(
|
|
document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
|
);
|
|
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
|
return new bootstrap.Tooltip(tooltipTriggerEl);
|
|
});
|
|
|
|
// popover
|
|
var popoverTriggerList = [].slice.call(
|
|
document.querySelectorAll('[data-bs-toggle="popover"]')
|
|
);
|
|
popoverTriggerList.map(function (popoverTriggerEl) {
|
|
return new bootstrap.Popover(popoverTriggerEl);
|
|
});
|
|
}
|
|
|
|
initComponents();
|
|
|
|
setTimeout(function () {
|
|
// === following js will activate the menu in left side bar based on url ====
|
|
var menuItems = document.querySelectorAll(".submenu-item li a");
|
|
menuItems && menuItems.forEach(function (item) {
|
|
var pageUrl = window.location.href.split(/[?#]/)[0];
|
|
|
|
if (item.href == pageUrl) {
|
|
item.classList.add("active");
|
|
}
|
|
});
|
|
}, 0)
|
|
|
|
//
|
|
/********************* scroll top js ************************/
|
|
//
|
|
|
|
var mybutton = document.getElementById("back-to-top");
|
|
|
|
if (mybutton) {
|
|
// When the user scrolls down 20px from the top of the document, show the button
|
|
window.onscroll = function () {
|
|
scrollFunction();
|
|
};
|
|
|
|
function scrollFunction() {
|
|
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
|
|
mybutton.style.display = "block";
|
|
} else {
|
|
mybutton.style.display = "none";
|
|
}
|
|
}
|
|
|
|
// When the user clicks on the button, scroll to the top of the document
|
|
function topFunction() {
|
|
document.body.scrollTop = 0;
|
|
document.documentElement.scrollTop = 0;
|
|
}
|
|
}
|
|
|
|
//chat bot
|
|
function chatBot() {
|
|
var chatbot = document.getElementById("chatBot");
|
|
if (chatbot) {
|
|
chatbot.classList.remove("show");
|
|
}
|
|
}
|
|
|
|
// Scroll to Bottom
|
|
function scrollToBottom(id) {
|
|
setTimeout(function () {
|
|
var simpleBar = (document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper")) ?
|
|
document.getElementById(id).querySelector("#chat-conversation .simplebar-content-wrapper") : ''
|
|
|
|
var offsetHeight = document.getElementsByClassName("chat-conversation-list")[0] ?
|
|
document.getElementById(id).getElementsByClassName("chat-conversation-list")[0].scrollHeight - window.innerHeight + 800 : 0;
|
|
|
|
if (offsetHeight)
|
|
simpleBar.scrollTo({
|
|
top: offsetHeight,
|
|
behavior: "smooth"
|
|
});
|
|
}, 100);
|
|
}
|
|
|
|
|
|
const chatCollapsible = document.getElementById('chatBot')
|
|
chatCollapsible.addEventListener('shown.bs.collapse', event => {
|
|
// chat
|
|
var currentChatId = "users-chat-widget";
|
|
scrollToBottom(currentChatId);
|
|
}) |