Files
monisuo/monisuo-admin/dist/assets/RovingFocusItem-4bA-dcrz.js
2026-03-22 23:32:23 +08:00

1 line
1.8 KiB
JavaScript

import{Ct as e,H as t,I as n,L as r,P as i,S as a,g as o,nt as s,v as c,w as l,z as u}from"./vue.runtime.esm-bundler-DQjudA8G.js";import{t as d}from"./Primitive-jhoGcsVx.js";import{t as f}from"./useId-C1k6kJxi.js";import{t as p}from"./Collection-CEQN_ElG.js";import{a as m,i as h,n as g,r as _}from"./RovingFocusGroup-BI5E2MOD.js";var v=l({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(l){let v=l,y=g(),b=f(),x=o(()=>v.tabStopId||b),S=o(()=>y.currentTabStopId.value===x.value),{getItems:C,CollectionItem:w}=p();n(()=>{v.focusable&&y.onFocusableItemAdd()}),r(()=>{v.focusable&&y.onFocusableItemRemove()});function T(e){if(e.key===`Tab`&&e.shiftKey){y.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=h(e,y.orientation.value,y.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!v.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...C().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=y.loop.value?m(n,r+1):n.slice(r+1)}i(()=>_(n))}}return(n,r)=>(u(),c(e(w),null,{default:s(()=>[a(e(d),{tabindex:S.value?0:-1,"data-orientation":e(y).orientation.value,"data-active":n.active?``:void 0,"data-disabled":n.focusable?void 0:``,as:n.as,"as-child":n.asChild,onMousedown:r[0]||=t=>{n.focusable?e(y).onItemFocus(x.value):t.preventDefault()},onFocus:r[1]||=t=>e(y).onItemFocus(x.value),onKeydown:T},{default:s(()=>[t(n.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{v as t};