scanfile/server/web/assets/js/tabs.min.js

1 line
1.2 KiB
JavaScript

(()=>{(function(){function o(e){if(e.hasAttribute("data-initialized"))return;e.setAttribute("data-initialized","true");let i=e.dataset.tabsId;if(!i)return;let d=Array.from(e.querySelectorAll(`[data-tabs-trigger][data-tabs-id="${i}"]`)),u=Array.from(e.querySelectorAll(`[data-tabs-content][data-tabs-id="${i}"]`)),n=e.querySelector(`[data-tabs-marker][data-tabs-id="${i}"]`);function b(t){!n||!t||(n.style.width=t.offsetWidth+"px",n.style.height=t.offsetHeight+"px",n.style.left=t.offsetLeft+"px")}function r(t){let f=null;for(let a of d){let s=a.dataset.tabsValue===t;a.dataset.state=s?"active":"inactive",a.classList.toggle("text-foreground",s),a.classList.toggle("bg-background",s),a.classList.toggle("shadow-xs",s),s&&(f=a)}for(let a of u){let s=a.dataset.tabsValue===t;a.dataset.state=s?"active":"inactive",a.classList.toggle("hidden",!s)}b(f)}let c=d.find(t=>t.dataset.state==="active")||d[0];c&&r(c.dataset.tabsValue);for(let t of d)t.addEventListener("click",()=>{r(t.dataset.tabsValue)})}function l(e=document){e instanceof Element&&e.matches("[data-tabs]")&&o(e);for(let i of e.querySelectorAll("[data-tabs]:not([data-initialized])"))o(i)}window.templUI=window.templUI||{},window.templUI.tabs={init:l},document.addEventListener("DOMContentLoaded",()=>l())})();})();