| 1 |
import{store as u,getContext as c,getElement as d,withSyncEvent as b}from"@wordpress/interactivity";var{actions:i,state:o}=u("core/tabs",{state:{get tabsList(){let e=c()?.tabsId;return o[e]},get tabIndex(){let{attributes:t}=d(),e=t?.id?.replace("tab__","")||null;if(!e)return null;let{tabsList:n}=o;return n.findIndex(a=>a===e)},get isActiveTab(){let{activeTabIndex:t}=c(),{tabIndex:e}=o;return t===e},get isHidden(){return o.isActiveTab?null:"until-found"},get tabIndexAttribute(){return o.isActiveTab?0:-1}},actions:{handleTabKeyDown:b(t=>{let{tabIndex:e,tabsList:n}=o;e!==null&&(t.key==="ArrowRight"?(t.preventDefault(),i.moveFocus(e+1)):t.key==="ArrowLeft"?(t.preventDefault(),i.moveFocus(e-1)):t.key==="Home"?(t.preventDefault(),i.moveFocus(0)):t.key==="End"&&(t.preventDefault(),i.moveFocus(n.length-1)))}),handleTabClick:b(t=>{t.preventDefault();let{tabIndex:e}=o;e!==null&&i.setActiveTab(e)}),handleBeforeMatch:()=>{let{tabIndex:t}=o;t!==null&&i.setActiveTab(t)},moveFocus:t=>{let{tabsList:e}=o;if(!e||e.length===0)return;let n=t;n<0?n=e.length-1:n>=e.length&&(n=0);let s=e[n],a=document.getElementById("tab__"+s);a&&a.focus()},setActiveTab:(t,e=!1)=>{let{tabsList:n}=o;if(!n||n.length===0)return;let s=t;s<0?s=0:s>=n.length&&(s=n.length-1);let a=c();if(a.activeTabIndex=s,e){let l=n[s],r=document.getElementById(l);r&&setTimeout(()=>{r.scrollIntoView({behavior:"smooth"})},100)}}},callbacks:{activateTabByHash:()=>{let{tabsList:t}=o;if(!t||t.length===0)return;let e=document.querySelector(":target");if(!e)return;let n=t.findIndex(l=>l===e.id);if(n>=0){i.setActiveTab(n,!0);return}let s=e.closest(".wp-block-tab-panel"),a=-1;for(;s&&a<0;)a=t.findIndex(l=>l===s.id),s=s.parentElement?.closest(".wp-block-tab-panel")??null;a<0||(i.setActiveTab(a),window.setTimeout(()=>{e.scrollIntoView()},0))}}},{lock:!0}); |