Files
conservatorio-tomadini/media/templates/administrator/atum/js/template.min.js
2024-12-17 17:34:10 +01:00

5 lines
6.0 KiB
JavaScript

/**
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/if(!Joomla)throw new Error("Joomla API is not initialized");const getCookie=()=>{var e;return document.cookie.length&&((e=document.cookie.split("; ").find(s=>s.startsWith("atumSidebarState=")))==null?void 0:e.split("=")[1])},mobile=window.matchMedia("(max-width: 992px)"),small=window.matchMedia("(max-width: 575.98px)"),tablet=window.matchMedia("(min-width: 576px) and (max-width:991.98px)"),menu=document.querySelector(".sidebar-menu"),sidebarNav=[].slice.call(document.querySelectorAll(".sidebar-nav")),subhead=document.querySelector("#subhead-container"),wrapper=document.querySelector(".wrapper"),sidebarWrapper=document.querySelector(".sidebar-wrapper"),logo=document.querySelector(".logo"),isLogin=document.querySelector("body.com_login"),menuToggleIcon=document.getElementById("menu-collapse-icon"),navDropDownIcon=document.querySelectorAll('.nav-item.dropdown span[class*="icon-angle-"]'),headerTitleArea=document.querySelector("#header .header-title"),headerItemsArea=document.querySelector("#header .header-items"),headerExpandedItems=[].slice.call(headerItemsArea.children).filter(e=>e.classList.contains("header-item")),headerCondensedItemContainer=document.getElementById("header-more-items"),headerCondensedItems=[].slice.call(headerCondensedItemContainer.querySelectorAll(".header-dd-item"));let headerTitleWidth=headerTitleArea.getBoundingClientRect().width;const headerItemWidths=headerExpandedItems.map(e=>e.getBoundingClientRect().width);headerCondensedItemContainer.classList.remove("d-none"),headerCondensedItemContainer.paddingTop;const ellipsisWidth=headerCondensedItemContainer.getBoundingClientRect().width;headerCondensedItemContainer.classList.add("d-none");function changeLogo(e){if(!logo||isLogin)return;if(small.matches){logo.classList.add("small");return}(e||getCookie())==="closed"?logo.classList.add("small"):logo.classList.remove("small"),menuToggleIcon&&(wrapper.classList.contains("closed")?(menuToggleIcon.classList.add("icon-toggle-on"),menuToggleIcon.classList.remove("icon-toggle-off")):(menuToggleIcon.classList.remove("icon-toggle-on"),menuToggleIcon.classList.add("icon-toggle-off")))}function toggleArrowIcon(e){const s=e?"icon-angle-up":"icon-angle-down",t=e?"icon-angle-down":"icon-angle-up";navDropDownIcon&&navDropDownIcon.forEach(o=>{o.classList.remove(s),o.classList.add(t)})}const getSum=e=>e.reduce((s,t)=>Number(s)+Number(t),0);function headerItemsInDropdown(){headerTitleWidth=headerTitleArea.getBoundingClientRect().width;const e=headerTitleWidth+ellipsisWidth,s=50+getSum(headerItemWidths);headerTitleWidth+s<document.body.getBoundingClientRect().width?(headerExpandedItems.map(t=>t.classList.remove("d-none")),headerCondensedItemContainer.classList.add("d-none")):(headerCondensedItemContainer.classList.remove("d-none"),headerCondensedItems.map(t=>t.classList.add("d-none")),headerCondensedItemContainer.classList.remove("d-none"),headerItemWidths.forEach((t,o)=>{const n=headerItemWidths.slice(o,headerItemWidths.length);e+getSum(n)<document.body.getBoundingClientRect().width||headerExpandedItems[o].children&&!headerExpandedItems[o].children[0].classList.contains("dropdown")&&(headerExpandedItems[o].classList.add("d-none"),headerCondensedItems[o].classList.remove("d-none"))}))}function setMobile(){small.matches?(toggleArrowIcon(),menu&&wrapper.classList.remove("closed")):toggleArrowIcon("top"),tablet.matches&&menu&&wrapper.classList.add("closed"),small.matches?(sidebarNav.map(e=>e.classList.add("collapse")),subhead&&subhead.classList.add("collapse"),sidebarWrapper&&sidebarWrapper.classList.add("collapse")):(sidebarNav.map(e=>e.classList.remove("collapse")),subhead&&subhead.classList.remove("collapse"),sidebarWrapper&&sidebarWrapper.classList.remove("collapse")),changeLogo("closed")}function setDesktop(){sidebarWrapper?(changeLogo(getCookie()||"open"),sidebarWrapper.classList.remove("collapse")):changeLogo("closed"),sidebarNav.map(e=>e.classList.remove("collapse")),subhead&&subhead.classList.remove("collapse"),toggleArrowIcon("top")}function reactToResize(){window.addEventListener("resize",()=>{mobile.matches?setMobile():setDesktop(),headerItemsInDropdown()})}function subheadScrolling(){subhead&&document.addEventListener("scroll",()=>{window.scrollY>0?subhead.classList.add("shadow-sm"):subhead.classList.remove("shadow-sm")})}function darkModeWatch(){const e=document.documentElement;document.addEventListener("joomla:color-scheme-change",()=>{e.dataset.bsTheme=e.dataset.colorScheme}),document.querySelectorAll("button[data-color-scheme-switch]").forEach(c=>{c.addEventListener("click",l=>{l.preventDefault();const{colorScheme:d}=e.dataset,a=d!=="dark"?"dark":"light";e.dataset.colorScheme=a,document.cookie=`userColorScheme=${a};`,document.dispatchEvent(new CustomEvent("joomla:color-scheme-change",{bubbles:!0}))})});const{colorSchemeOs:t}=e.dataset;if(t===void 0)return;const o=window.matchMedia("(prefers-color-scheme: dark)"),n=()=>{const c=o.matches?"dark":"light";e.dataset.colorScheme!==c&&(e.dataset.colorScheme=c,document.cookie=`osColorScheme=${c};`,document.dispatchEvent(new CustomEvent("joomla:color-scheme-change",{bubbles:!0})))};o.addEventListener("change",n),n()}darkModeWatch(),headerItemsInDropdown(),reactToResize(),subheadScrolling(),small.matches&&(changeLogo("closed"),subhead&&(subhead.classList.remove("show"),subhead.classList.add("collapse"))),navigator.cookieEnabled||Joomla.renderMessages({error:[Joomla.Text._("JGLOBAL_WARNCOOKIES")]},void 0,!1,6e3),window.addEventListener("joomla:menu-toggle",e=>{headerItemsInDropdown(),document.cookie=`atumSidebarState=${e.detail};`,mobile.matches?changeLogo("closed"):changeLogo(e.detail)}),document.querySelectorAll('[data-bs-toggle="dropdown"]').forEach(e=>{e.addEventListener("click",()=>{document.querySelectorAll('[data-bs-toggle="collapse"]').forEach(s=>{const t=document.querySelector(s.getAttribute("data-bs-target"));if(t.contains(e))return;(bootstrap.Collapse.getInstance(t)||new bootstrap.Collapse(t,{toggle:!1})).hide()})})});