|
1
|
|
-import{store as d,getContext as i,getElement as u,withSyncEvent as l}from"@wordpress/interactivity";var{actions:c,state:a}=d("core/tabs",{state:{get tabsList(){let t=i()?.tabsId;return a[t]},get tabIndex(){let{attributes:e}=u(),t=e?.id?.replace("tab__","")||null;if(!t)return null;let{tabsList:n}=a;return n.findIndex(o=>o===t)},get isActiveTab(){let{activeTabIndex:e}=i(),{tabIndex:t}=a;return e===t},get tabIndexAttribute(){return a.isActiveTab?0:-1}},actions:{handleTabKeyDown:l(e=>{let{tabIndex:t}=a;t!==null&&(e.key==="ArrowRight"?(e.preventDefault(),c.moveFocus(t+1)):e.key==="ArrowLeft"&&(e.preventDefault(),c.moveFocus(t-1)))}),handleTabClick:l(e=>{e.preventDefault();let{tabIndex:t}=a;t!==null&&c.setActiveTab(t)}),moveFocus:e=>{let{tabsList:t}=a;if(!t||t.length===0)return;let n=e;n<0?n=t.length-1:n>=t.length&&(n=0);let s=t[n],o=document.getElementById("tab__"+s);o&&o.focus()},setActiveTab:(e,t=!1)=>{let{tabsList:n}=a;if(!n||n.length===0)return;let s=e;s<0?s=0:s>=n.length&&(s=n.length-1);let o=i();if(o.activeTabIndex=s,t){let r=n[s],b=document.getElementById(r);b&&setTimeout(()=>{b.scrollIntoView({behavior:"smooth"})},100)}}},callbacks:{onTabsInit:()=>{let{tabsList:e}=a;if(e.length===0)return;let{hash:t}=window.location,n=t.replace("#",""),s=e.findIndex(o=>o===n);s>=0&&c.setActiveTab(s,!0)}}},{lock:!0}); |
|
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}); |